1 00:00:00,000 --> 00:00:12,410 >> [Bermain muzik] 2 00:00:12,410 --> 00:00:12,830 >> DAVID MALAN: Baiklah. 3 00:00:12,830 --> 00:00:13,370 Selamat kembali. 4 00:00:13,370 --> 00:00:16,510 Ini adalah CS50, dan ini adalah Minggu Satu, berterusan. 5 00:00:16,510 --> 00:00:20,050 Jadi salah satu daripada sebab-sebab kita telah lulus teknologi-teknologi seperti 6 00:00:20,050 --> 00:00:24,120 Google Kaca adalah bahawa mereka datang dengan sesuatu yang dikenali sebagai API, sebuah 7 00:00:24,120 --> 00:00:25,980 Permohonan Pengaturcaraan Antaramuka. 8 00:00:25,980 --> 00:00:28,830 Dan apakah ini bermakna bahawa dengan fail yang betul dan dengan hak 9 00:00:28,830 --> 00:00:32,850 dokumentasi, anda benar-benar boleh menulis perisian untuk peranti walaupun seperti ini. 10 00:00:32,850 --> 00:00:36,200 >> Dan supaya apa yang kita ada di dalam fikiran ke arah semester akhir, jika projek 11 00:00:36,200 --> 00:00:39,310 melibatkan, mengatakan, Google Kaca mungkin rayuan, kita akan melihat apa yang boleh kita lakukan dalam 12 00:00:39,310 --> 00:00:42,220 segi hooking anda dengan beberapa perkakasan loaner serta 13 00:00:42,220 --> 00:00:46,500 API awam diakses supaya anda boleh sebenarnya mula mencipta perisian 14 00:00:46,500 --> 00:00:48,630 yang berjalan di Google Glass sama. 15 00:00:48,630 --> 00:00:51,710 >> Peranti lain yang kita telah bermain dengan akhir-akhir ini yang kita fikir mungkin 16 00:00:51,710 --> 00:00:53,910 bersenang-senang di akhir semester adalah perkara ini sedikit di sini. 17 00:00:53,910 --> 00:00:56,860 Ia dipanggil Usul Leap, dan apa yang anda kira-kira untuk melihat secara teknikal yang 18 00:00:56,860 --> 00:01:00,280 iklan untuk peranti, tetapi ia tidak bercakap dengan apa yang khusus ini 19 00:01:00,280 --> 00:01:01,240 peranti mampu. 20 00:01:01,240 --> 00:01:05,550 Dan ia juga datang dengan API melalui yang anda boleh menulis perisian untuk 21 00:01:05,550 --> 00:01:10,545 mengawal komputer anda sendiri dengan cara yang agak suka filem ini satu minit di sini. 22 00:01:10,545 --> 00:01:12,070 >> [MAIN SEMULA VIDEO] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [AKHIR VIDEO MAIN SEMULA] 25 00:02:08,590 --> 00:02:11,190 >> Jadi sekarang, peranti ini berlaku kepada dilaksanakan sebagai USB sedikit 26 00:02:11,190 --> 00:02:14,290 penyambung yang anda boleh dimasukkan ke dalam anda komputer, tetapi saya tidak akan terkejut 27 00:02:14,290 --> 00:02:17,930 jika sebelum lama kita mempunyai jenis-jenis teknologi dalam kumpulan seterusnya PC 28 00:02:17,930 --> 00:02:20,510 dan Mac supaya anda boleh, sesungguhnya, berinteraksi dengan dalam 29 00:02:20,510 --> 00:02:21,650 cara seperti itu. 30 00:02:21,650 --> 00:02:24,250 Malah, apa yang saya fikir saya akan lakukan, juga, adalah Saya ditarik ke atas satu demonstrasi kecil 31 00:02:24,250 --> 00:02:25,860 program yang datang dengan perisian ini. 32 00:02:25,860 --> 00:02:28,700 Jadi, saya telah meletakkan sensor kecil di hadapan komputer riba saya. 33 00:02:28,700 --> 00:02:32,420 >> Dan seperti yang anda lihat, ia telah menyedari yang tangan saya ada 34 00:02:32,420 --> 00:02:33,400 mengawal ia. 35 00:02:33,400 --> 00:02:37,900 Dan semua permohonan ini adalah tidak dgn perkara-perkara kecil seperti ini. 36 00:02:37,900 --> 00:02:41,080 Tetapi, anda boleh melihat bahawa, sesungguhnya, Saya mempunyai lima jari di sana. 37 00:02:41,080 --> 00:02:44,270 Jika kita boleh mendapatkan untuk melakukan semua 10, anda boleh bayangkan piano kemas 38 00:02:44,270 --> 00:02:45,390 permohonan atau sebagainya. 39 00:02:45,390 --> 00:02:47,820 Jadi, jika anda ingin datang selepas kelas hari ini dan bermain dengan itu sebagai 40 00:02:47,820 --> 00:02:49,720 Selain itu, anda dialu-alukan untuk. 41 00:02:49,720 --> 00:02:52,930 Jadi lebih pada itu ke arah akhir semester. 42 00:02:52,930 --> 00:02:54,420 >> Jadi beberapa pentadbiran pengumuman. 43 00:02:54,420 --> 00:02:58,690 Satu, melakukan bahagian dengan Jumaat ini pada tengah hari di cs60.net/section. 44 00:02:58,690 --> 00:03:01,260 Itu URL adalah pada kursus yang laman web juga. 45 00:03:01,260 --> 00:03:04,010 Dalam pada itu, walaupun, supersections akan debut Ahad ini. 46 00:03:04,010 --> 00:03:07,800 Supersections adalah satu perkara yang satu masa, kerana ia membawa kita sedikit masa untuk bekerja 47 00:03:07,800 --> 00:03:09,470 siapa yang dalam yang seksyen dan di mana. 48 00:03:09,470 --> 00:03:12,280 >> Jadi Ahad akan datang ini, akan menjadi salah satu bahagian untuk mereka yang kurang selesa, 49 00:03:12,280 --> 00:03:14,040 satu bahagian untuk mereka lebih selesa. 50 00:03:14,040 --> 00:03:16,110 Dan orang-orang di antara kamu di suatu tempat di antara dialu-alukan untuk pergi ke 51 00:03:16,110 --> 00:03:17,850 salah satu atau kedua-duanya atau tidak. 52 00:03:17,850 --> 00:03:19,150 Kedua-dua ini akan difilemkan. 53 00:03:19,150 --> 00:03:22,740 Mereka akan berada di dalam auditorium yang lebih besar daripada bahagian yang biasanya akan masuk 54 00:03:22,740 --> 00:03:26,110 Tetapi matlamat di sini adalah untuk melengkapkan anda dengan beberapa keselesaan dengan masalah menetapkan satu, 55 00:03:26,110 --> 00:03:29,910 dengan C, dengan perkakas CS50, ini hujung minggu, walaupun sebelum anda mengetahui anda 56 00:03:29,910 --> 00:03:31,050 seksyen formal tugasan. 57 00:03:31,050 --> 00:03:34,700 Jadi, anda akan bertemu TF anda dan yang lebih kecil anda kumpulan sectionmates dalam kira-kira 58 00:03:34,700 --> 00:03:36,350 masa seminggu. 59 00:03:36,350 --> 00:03:38,200 >> Waktu pejabat, Sementara itu, telah berlaku. 60 00:03:38,200 --> 00:03:41,020 Adakah mengambil kesempatan daripada mereka malam ini atau malam esok jika anda ingin. 61 00:03:41,020 --> 00:03:43,460 Set Masalah 0 adalah disebabkan pada hari Jumaat. 62 00:03:43,460 --> 00:03:46,680 Ini adalah hari yang lewat daripada kerap-dijadualkan Khamis. 63 00:03:46,680 --> 00:03:50,410 Tetapi dengan set masalah 1, anda akan melihat bahawa ia termasuk beberapa memanaskan badan 64 00:03:50,410 --> 00:03:52,770 latihan yang anda sendiri anda boleh melanjutkan 65 00:03:52,770 --> 00:03:54,660 Khamis Tarikh akhir Jumaat. 66 00:03:54,660 --> 00:03:58,410 Set Masalah 1 Sementara itu, akan debut di laman web kursus yang akan datang 67 00:03:58,410 --> 00:04:02,000 Friday, jika anda ingin untuk melenting dengan ia seperti yang saya lakukan satu ketika dahulu lewat 68 00:04:02,000 --> 00:04:04,370 Malam Jumaat di dalam bilik anda. 69 00:04:04,370 --> 00:04:07,660 >> Jadi cs50.net/appliance adalah tempat di mana anda boleh mendapatkan perkakas CS50 70 00:04:07,660 --> 00:04:09,040 kita mula menggunakan pada hari Isnin. 71 00:04:09,040 --> 00:04:10,140 Kami akan menggunakan ia sedikit lebih hari ini. 72 00:04:10,140 --> 00:04:14,040 Tetapi yakinlah bahawa masalah set 1 spesifikasi akan berjalan anda melalui 73 00:04:14,040 --> 00:04:16,490 tepat langkah-langkah yang perlu untuk mendapatkan dan berjalan. 74 00:04:16,490 --> 00:04:22,120 Jadi jangan bimbang melakukan bahawa sebelum Pset 1 jika anda lebih suka tidak. 75 00:04:22,120 --> 00:04:22,660 >> Baiklah. 76 00:04:22,660 --> 00:04:27,180 Jadi kita melihat pada hari Isnin di kod sumber, tetapi dalam konteks yang baru 77 00:04:27,180 --> 00:04:30,895 bahasa pengaturcaraan, iaitu C. Dan C, tidak seperti Awal, bukan grafik. 78 00:04:30,895 --> 00:04:32,270 Ia tidak teka-teki keping. 79 00:04:32,270 --> 00:04:34,450 Ia lebih bahasa Inggeris seperti sintaksis. 80 00:04:34,450 --> 00:04:37,140 Dan ada beberapa langkah yang terlibat dalam sebenarnya menulis dan menjalankan 81 00:04:37,140 --> 00:04:41,650 program dalam C, kerana selain sumber kod seperti ini, anda memerlukan sesuatu 82 00:04:41,650 --> 00:04:42,890 dipanggil pengkompil. 83 00:04:42,890 --> 00:04:46,682 Dan dari segi orang biasa itu, apa tidak pengkompil lakukan untuk kami? 84 00:04:46,682 --> 00:04:47,650 Yeah. 85 00:04:47,650 --> 00:04:51,040 >> PELAJAR: Ia menukarkan kod bahawa anda menulis kepada 0 dan 1s. 86 00:04:51,040 --> 00:04:51,151 >> DAVID MALAN: Baik. 87 00:04:51,151 --> 00:04:53,580 Jadi ia menukarkan kod yang kita menulis kepada 0 dan 1s. 88 00:04:53,580 --> 00:04:57,730 Ia menukarkan dipanggil kod sumber untuk kod objek, kedua yang kelihatan 89 00:04:57,730 --> 00:04:59,140 sesuatu yang kecil seperti ini. 90 00:04:59,140 --> 00:05:02,860 Dan ia CPU anda, otak dalam komputer anda, bahawa kerana 91 00:05:02,860 --> 00:05:06,280 orang yang mencipta mereka komputer, tahu apa yang mereka urutan 92 00:05:06,280 --> 00:05:07,460 min 0 dan 1s. 93 00:05:07,460 --> 00:05:08,640 >> Mungkin ia bermakna cetak. 94 00:05:08,640 --> 00:05:10,265 Mungkin ia bermakna tambahan. 95 00:05:10,265 --> 00:05:11,610 Mungkin ia bermakna penolakan. 96 00:05:11,610 --> 00:05:13,350 Mungkin ia bermakna memaparkan grafik. 97 00:05:13,350 --> 00:05:16,870 Terdapat corak yang telah ditetapkan bit bahawa dunia telah memutuskan bermakna 98 00:05:16,870 --> 00:05:17,700 perkara-perkara tertentu. 99 00:05:17,700 --> 00:05:20,760 Tetapi bagi sebahagian yang paling dalam kursus ini, kita akan bekerja pada tahap yang lebih tinggi, dan 100 00:05:20,760 --> 00:05:24,180 kita akan mengambil mudah bahawa wujud perkara-perkara seperti penyusun yang boleh 101 00:05:24,180 --> 00:05:27,670 membuat fungsi kod sumber kami dalam cara kita berniat. 102 00:05:27,670 --> 00:05:31,660 >> Jadi program ini kita menulis pertama minggu lalu dan kemudian mula port, jadi untuk 103 00:05:31,660 --> 00:05:33,920 berucap, C lepas ini Monday, adalah ini. 104 00:05:33,920 --> 00:05:35,700 Apabila bendera hijau klik, bertanya khabar. 105 00:05:35,700 --> 00:05:37,430 Ini, sudah tentu, ditulis dalam Scratch. 106 00:05:37,430 --> 00:05:40,710 Dan saya mendakwa bahawa bersamaan program dalam C kelihatan sedikit 107 00:05:40,710 --> 00:05:41,520 sesuatu seperti ini. 108 00:05:41,520 --> 00:05:45,050 >> Jadi apa yang saya fikir kita akan lakukan pada mulanya ialah, mari kita mengusik selain apa yang kelihatan, pada mulanya 109 00:05:45,050 --> 00:05:48,790 pandangan, diakui, kerana agak batin sintaksis, tetapi anda akan mula notis 110 00:05:48,790 --> 00:05:50,160 corak agak cepat. 111 00:05:50,160 --> 00:05:53,770 Apa yang kita juga akan lakukan hari ini ialah menyediakan anda dengan model mental untuk beberapa 112 00:05:53,770 --> 00:05:57,280 berkanun, beberapa membina standard dalam pengaturcaraan. 113 00:05:57,280 --> 00:06:00,420 Dan kemudian kita benar-benar akan mendapatkan tangan kita kotor dengan beberapa contoh juga. 114 00:06:00,420 --> 00:06:04,140 >> Jadi bagi orang-orang yang anda lebih selesa, menyedari bahawa minggu ini dan kemudian seterusnya 115 00:06:04,140 --> 00:06:05,940 minggu dengan baik boleh menjadi sedikit kajian. 116 00:06:05,940 --> 00:06:08,810 Tetapi terutama apabila edisi penggodam masalah 1 set keluar pada 117 00:06:08,810 --> 00:06:12,330 kursus laman web pada hari Jumaat, saya berfikir anda akan mendapati bahawa walaupun anda mengisi 118 00:06:12,330 --> 00:06:15,390 beberapa kosong selama minggu depan atau dua, anda akan mula mendapat yang lebih 119 00:06:15,390 --> 00:06:18,410 mencabar dan menghadapi sesuatu yang baru dan baru. 120 00:06:18,410 --> 00:06:21,310 >> Jadi mari kita mengusik program ini selain beberapa baris pada satu masa. 121 00:06:21,310 --> 00:06:24,140 Di bahagian paling atas, kita mempunyai apa yang teknikal dipanggil 122 00:06:24,140 --> 00:06:25,950 arahan prapemproses. 123 00:06:25,950 --> 00:06:30,510 Ini hanyalah satu baris kod yang mengatakan untuk memasukkan kandungan fail, 124 00:06:30,510 --> 00:06:35,080 dipanggil standard I / N, input standard - atau, maaf, standard I / O, standard 125 00:06:35,080 --> 00:06:38,670 input / output. h, di dalam program saya sendiri. 126 00:06:38,670 --> 00:06:41,670 >> Jadi, dalam erti kata lain, jika saya menulis ini program dengan editor teks yang mudah seperti 127 00:06:41,670 --> 00:06:45,260 gedit, bersamaan lebih mudah daripada sesuatu seperti Microsoft Word, yang 128 00:06:45,260 --> 00:06:50,970 arahan # include stdio.h, hanya akan memberitahu pengkompil, merebut 129 00:06:50,970 --> 00:06:56,080 kandungan fail yang lain, stdio.h, dan tampal di sini. 130 00:06:56,080 --> 00:06:57,090 >> Sekarang, mengapa saya penjagaan? 131 00:06:57,090 --> 00:07:01,850 Apa yang kita dakwa di dalam fail ini dipanggil stdio.h, yang disimpan 132 00:07:01,850 --> 00:07:05,490 di suatu tempat pada cakera keras saya, atau dalam kes, di suatu tempat di dalam perkakas CS50? 133 00:07:05,490 --> 00:07:06,635 Orang lain meletakkan di sana untuk saya. 134 00:07:06,635 --> 00:07:09,910 Tetapi apa yang di dalamnya? 135 00:07:09,910 --> 00:07:13,020 >> Ya, maka ia adalah satu pengisytiharan fungsi printf dipanggil. 136 00:07:13,020 --> 00:07:17,400 Jadi printf mengimbas kembali fungsi yang memaparkan kata-kata dan huruf dan 137 00:07:17,400 --> 00:07:20,160 nombor pada skrin pada bidaan saya. 138 00:07:20,160 --> 00:07:21,220 Tetapi saya tidak menulisnya. 139 00:07:21,220 --> 00:07:22,230 CS50 tidak menulisnya. 140 00:07:22,230 --> 00:07:26,990 Seseorang tahun lalu menulis, dan mereka dasarnya memberikan kita resipi untuk ia 141 00:07:26,990 --> 00:07:29,110 dalam fail yang dipanggil stdio.h. 142 00:07:29,110 --> 00:07:33,240 Supaya baris pertama hanya memberikan saya akses kepada fungsi-fungsi yang orang lain 143 00:07:33,240 --> 00:07:36,500 menulis tahun lalu, di kalangan yang printf. 144 00:07:36,500 --> 00:07:39,450 >> Sekarang, baris seterusnya saya akan melambai saya tangan di, sekurang-kurangnya sehingga minggu depan. 145 00:07:39,450 --> 00:07:43,620 Tetapi untuk sekarang, tahu bahawa int utama (tidak sah) adalah dasarnya bersamaan ini 146 00:07:43,620 --> 00:07:46,310 sekeping teka-teki kuning apabila bendera hijau diklik. 147 00:07:46,310 --> 00:07:49,510 Dunia, tahun lalu, memutuskan bahawa jika anda menulis program dalam 148 00:07:49,510 --> 00:07:53,150 bahasa yang dikenali sebagai C, anda mula program anda dengan garis 149 00:07:53,150 --> 00:07:54,410 yang kelihatan seperti itu. 150 00:07:54,410 --> 00:07:57,650 Dalam masa hanya kira-kira seminggu, ia akan membuat rasa apa int, apa yang tidak sah adalah. 151 00:07:57,650 --> 00:08:00,840 Tetapi untuk sekarang, hanya memikirkan ia kerana ini sekeping teka-teki kuning. 152 00:08:00,840 --> 00:08:04,550 >> Sekarang akan datang, kita perlu bersedia kerinting diikuti oleh yang lain bersedia kerinting rapat, 153 00:08:04,550 --> 00:08:05,240 jadi untuk bercakap. 154 00:08:05,240 --> 00:08:07,430 Dan kita akan melihat ini sepanjang program dalam C, serta 155 00:08:07,430 --> 00:08:08,930 JavaScript dan PHP. 156 00:08:08,930 --> 00:08:11,345 Dan ini hanya merangkumi garisan yang berkaitan dengan kod. 157 00:08:11,345 --> 00:08:14,600 Kerinting bersedia terbuka dasarnya berkata, di sini datang beberapa kod. 158 00:08:14,600 --> 00:08:17,590 Dan bersedia kerinting tertutup, yang merupakan bersudut ke arah yang lain, hanya 159 00:08:17,590 --> 00:08:19,920 cara, itu sahaja untuk kod yang berkaitan. 160 00:08:19,920 --> 00:08:22,970 >> Jadi garis berair dalam pertama program adalah yang terakhir, printf, 161 00:08:22,970 --> 00:08:25,080 quote-unquote, hello dunia. 162 00:08:25,080 --> 00:08:30,670 Dan saya dipanggil perkara antara sebut apa masa lepas? 163 00:08:30,670 --> 00:08:31,285 Jadi ia adalah rentetan. 164 00:08:31,285 --> 00:08:35,309 Dan rentetan hanya techie yang panjang bagi urutan 165 00:08:35,309 --> 00:08:37,169 watak-watak, perkataan, frasa. 166 00:08:37,169 --> 00:08:39,380 Walaupun satu huruf boleh boleh double dipetik. 167 00:08:39,380 --> 00:08:41,840 Tetapi ia adalah satu urutan sifar atau lebih watak-watak. 168 00:08:41,840 --> 00:08:43,650 >> Garis sendeng terbalik-n, walaupun, kelihatan agak pelik. 169 00:08:43,650 --> 00:08:46,290 Tetapi ia hanya bermakna sesuatu mudah untuk komputer. 170 00:08:46,290 --> 00:08:48,060 Apa backslash-n? 171 00:08:48,060 --> 00:08:48,570 Barisan baru. 172 00:08:48,570 --> 00:08:52,490 Jadi itu hanya urutan khas watak-watak yang dunia telah memutuskan 173 00:08:52,490 --> 00:08:56,880 cara meletakkan satu baris di sana, kerana pengkompil sebenarnya akan mendapat 174 00:08:56,880 --> 00:09:02,280 keliru, biasanya, jika anda, sangat difahami, tetapi tidak betul, hanya 175 00:09:02,280 --> 00:09:04,570 mula memukul Masukkan meletakkan baris baru dalam kod anda. 176 00:09:04,570 --> 00:09:07,150 Anda perlu lebih sedikit jelas dengan garis sendeng terbalik-n. 177 00:09:07,150 --> 00:09:10,540 >> Dan kita akan melihat ada beberapa yang lain seperti corak untuk aksara khas. 178 00:09:10,540 --> 00:09:14,340 Sebagai contoh, jika anda mahu untuk membiarkan anda fikiran merayau kepada kes sudut, 179 00:09:14,340 --> 00:09:18,080 menganggap bahawa saya mahu untuk mencetak petikan berganda pada skrin untuk 180 00:09:18,080 --> 00:09:21,840 apa-apa sebab, yang akan seolah-olah menjadi sedikit bermasalah, bukan? 181 00:09:21,840 --> 00:09:24,990 Kerana jika saya meletakkan petikan berganda dalam tengah-tengah "hello, dunia," untuk apa-apa 182 00:09:24,990 --> 00:09:30,120 sebab, mengapa yang kelihatan berpotensi bermasalah? 183 00:09:30,120 --> 00:09:32,180 Ia pecah tali. 184 00:09:32,180 --> 00:09:34,700 >> Pengkompil hanya program. 185 00:09:34,700 --> 00:09:37,210 Satu program seperti pengkompil hanya akan membaca atas kod anda ke bawah, 186 00:09:37,210 --> 00:09:37,990 kiri ke kanan. 187 00:09:37,990 --> 00:09:41,850 Dan jika melihat tiga petikan berganda bukannya dua, ia tidak akan tahu 188 00:09:41,850 --> 00:09:45,210 jika anda bermakna bahawa perkara yang kiri harus tali, atau perkara yang perlu 189 00:09:45,210 --> 00:09:46,570 yang betul, atau segala-galanya. 190 00:09:46,570 --> 00:09:50,560 Ia adalah samar-samar, dan jadi apa yang biasa pengkompil akan lakukan adalah hanya aneh keluar, 191 00:09:50,560 --> 00:09:53,710 dan memberikan anda beberapa mesej ralat, dan membuat anda menangani masalah tersebut. 192 00:09:53,710 --> 00:09:58,120 >> Jadi memandangkan backslash-n bermakna baru line, apa yang akan naluri anda sekarang 193 00:09:58,120 --> 00:10:02,610 mula jika anda mahu termasuk sesuatu yang ganjil seperti dua 194 00:10:02,610 --> 00:10:06,210 memetik dalam ini sebaliknya dipetik rentetan? 195 00:10:06,210 --> 00:10:07,640 Quote garis sendeng terbalik-double. 196 00:10:07,640 --> 00:10:09,630 Dan dengan itu kita akan melihat ini jenis corak juga. 197 00:10:09,630 --> 00:10:12,490 >> Jika anda mahu melakukan sesuatu yang sedikit pelik, anda akan mendapati bahawa 198 00:10:12,490 --> 00:10:15,060 penyelesaian yang sering mengikuti corak, dan garis sendeng terbalik di 199 00:10:15,060 --> 00:10:17,150 menandakan urutan melarikan diri. 200 00:10:17,150 --> 00:10:20,320 Dan ia hanya bermaksud sesuatu yang istimewa bahawa kita perlu untuk mewakili dalam 201 00:10:20,320 --> 00:10:21,060 cara yang berbeza. 202 00:10:21,060 --> 00:10:23,830 Adapun bagaimana anda mewakili backslash, baik, kami akan 203 00:10:23,830 --> 00:10:24,550 kembali kepada itu. 204 00:10:24,550 --> 00:10:26,930 Tetapi jawapan itu juga, sebenarnya agak jelas. 205 00:10:26,930 --> 00:10:31,080 >> Jadi mari kita kini memperkenalkan beberapa lain membina pengaturcaraan 206 00:10:31,080 --> 00:10:31,915 yang anda lihat dalam Scratch. 207 00:10:31,915 --> 00:10:34,790 Anda mungkin telah diambil untuk diberikan pun jika anda sudah menyelam ke 208 00:10:34,790 --> 00:10:36,060 masalah set 0. 209 00:10:36,060 --> 00:10:40,950 Tetapi mari kita kini memperkenalkan sintaks dalam C bagi sebaliknya agak intuitif 210 00:10:40,950 --> 00:10:42,300 idea-idea, sekurang-kurangnya sebahagian daripada mereka. 211 00:10:42,300 --> 00:10:45,570 >> Jadi tanggapan ini keadaan atau cawangan, sedangkan sebelum ini kita 212 00:10:45,570 --> 00:10:49,330 diwakili dengan kod yang kelihatan seperti ini di sebelah kiri dalam Scratch - 213 00:10:49,330 --> 00:10:52,200 jika x adalah kurang daripada y, maka berkata demikian - 214 00:10:52,200 --> 00:10:56,760 sebaliknya kini C - biarlah saya mengasah di atas mana-mana yang mudah - 215 00:10:56,760 --> 00:11:01,235 kita hanya akan berkata, jika, membuka kurung, sesuatu yang benar - satu 216 00:11:01,235 --> 00:11:04,190 Ungkapan Boolean akan pergi di mana saya telah berkata keadaan - 217 00:11:04,190 --> 00:11:08,170 kurungan rapat, maka apa yang dalam orang-orang pendakap kerinting. 218 00:11:08,170 --> 00:11:11,020 >> Jadi di sini, juga, pendakap kerinting adalah jenis seperti itu Scratch 219 00:11:11,020 --> 00:11:12,460 Kepingan teka-teki berbentuk U. 220 00:11:12,460 --> 00:11:14,890 Adakah apa yang di dalam ini pendakap kerinting. 221 00:11:14,890 --> 00:11:16,790 Dalam kes ini, mengurangkan mengurangkan. 222 00:11:16,790 --> 00:11:19,720 Dan notis ini ke hadapan mengurangkan, tidak backslash a. 223 00:11:19,720 --> 00:11:21,440 Italik, italik, bagi mereka yang telah diprogramkan 224 00:11:21,440 --> 00:11:23,370 sebelum ini, hanya bermaksud - 225 00:11:23,370 --> 00:11:24,190 ia hanya komen. 226 00:11:24,190 --> 00:11:26,630 Komen bukanlah garis kod, per se. 227 00:11:26,630 --> 00:11:30,200 Ia adalah satu garis Bahasa Inggeris yang anda, manusia, telah menulis kepada diri sendiri untuk 228 00:11:30,200 --> 00:11:33,540 mungkin mengingatkan anda untuk melakukan sesuatu, untuk menjelaskan kepada diri sendiri, untuk menerangkan kepada 229 00:11:33,540 --> 00:11:35,260 orang lain, apa kod anda lakukan. 230 00:11:35,260 --> 00:11:37,050 Ia hanya satu komen deskriptif. 231 00:11:37,050 --> 00:11:40,880 >> Kini, sudah tentu, kita boleh mempunyai cara dua garpu di jalan raya hanya dengan melakukan ini, 232 00:11:40,880 --> 00:11:43,930 tiga cara garpu di jalan raya dengan melakukan ini, dan jika anda terus ini 233 00:11:43,930 --> 00:11:47,570 corak, anda boleh mempunyai empat cara, lima cara, enam cara garpu di jalan raya jika 234 00:11:47,570 --> 00:11:50,150 anda perlu untuk mengendalikan, sesungguhnya, bahawa keadaan banyak. 235 00:11:50,150 --> 00:11:52,010 Dan kemudian melihat keselarian di sini - 236 00:11:52,010 --> 00:11:55,070 jika (keadaan), lain jika (keadaan), dan hanya satu yang sedikit 237 00:11:55,070 --> 00:11:58,010 aneh adalah yang terakhir, yang hanya itu yang lain. 238 00:11:58,010 --> 00:12:01,170 Tetapi sekali lagi, ini adalah sama, konsep, dengan apa yang kita lakukan 239 00:12:01,170 --> 00:12:04,690 sudah, walaupun sintaks akan mengambil sedikit untuk membiasakan diri. 240 00:12:04,690 --> 00:12:07,730 >> Sekarang, dalam contoh ini, terdapat beberapa sintaks pelik yang lain. 241 00:12:07,730 --> 00:12:11,220 Kita melihat printf lagi, kurungan terbuka, dan kurung dekat. 242 00:12:11,220 --> 00:12:13,190 Dan di dalam terdapat tali dipetik. 243 00:12:13,190 --> 00:12:17,060 Kurungan, dalam konteks daripada printf, pergi di sebelah kiri 244 00:12:17,060 --> 00:12:18,160 dan kanan apa? 245 00:12:18,160 --> 00:12:22,190 Apa yang kita menggambarkan yang dipetik tali sebagai lebih umum? 246 00:12:22,190 --> 00:12:23,320 >> Jadi ia adalah hujah. 247 00:12:23,320 --> 00:12:26,620 Mana-mana masa yang anda perlu fungsi, seperti printf, dan kemudian paren terbuka dan 248 00:12:26,620 --> 00:12:30,330 paren rapat dan sesuatu yang di dalam , sama ada ia adalah rentetan, atau 249 00:12:30,330 --> 00:12:34,420 integer, atau apa-apa lagi, perkara di antara orang-orang kurungan dipanggil 250 00:12:34,420 --> 00:12:35,110 pertengkaran. 251 00:12:35,110 --> 00:12:37,910 >> Dan hujah hanya mempengaruhi tingkah laku fungsi ini. 252 00:12:37,910 --> 00:12:39,990 Dalam kes ini, ia cukup jelas bagaimana. 253 00:12:39,990 --> 00:12:44,480 x 00:12:47,720 Dan printf akan mencetak tepat. 255 00:12:47,720 --> 00:12:51,590 Kerana sesungguhnya, tahun-tahun orang yang lalu yang dilaksanakan printf tidak tahu 256 00:12:51,590 --> 00:12:55,000 apa yang kita manusia adalah pengganti akan menggunakan printf untuk. 257 00:12:55,000 --> 00:12:58,610 Jadi itulah sebabnya hujah wujud, mempengaruhi tingkah laku selepas majlis itu 258 00:12:58,610 --> 00:12:59,450 telah ditulis. 259 00:12:59,450 --> 00:13:00,780 >> Sekarang, ungkapan Boolean. 260 00:13:00,780 --> 00:13:02,470 Kami telah melihat ini sebelum di calar. 261 00:13:02,470 --> 00:13:06,680 Ternyata dalam C anda juga boleh "atau" mereka bersama-sama, jadi untuk bercakap. 262 00:13:06,680 --> 00:13:10,930 Dua bar menegak bermakna blok ini kod, ini melakukan ini, akan 263 00:13:10,930 --> 00:13:15,350 melaksanakan jika keadaan yang pertama adalah benar atau keadaan yang kedua adalah benar. 264 00:13:15,350 --> 00:13:17,710 Dan walaupun anda mungkin tidak dilakukan ini Awal, anda boleh benar-benar 265 00:13:17,710 --> 00:13:20,580 melakukan ini dengan Awal, Dan anda juga boleh meluahkan diri anda berbeza - 266 00:13:20,580 --> 00:13:25,300 jika keadaan yang pertama dan kedua keadaan adalah benar, maka apa yang 267 00:13:25,300 --> 00:13:27,160 dalam pendakap kerinting. 268 00:13:27,160 --> 00:13:31,210 >> Dan hanya sebagai diketepikan, sebab ia a #: glib double dan 269 00:13:31,210 --> 00:13:34,610 bar menegak, kita akan melihat akhirnya bahawa bar tunggal menegak dan 270 00:13:34,610 --> 00:13:38,710 Ampersand tunggal sebenarnya telah berbeza makna dalam C. Jadi buat masa ini, 271 00:13:38,710 --> 00:13:41,840 bahawa pertindihan simbol sengaja. 272 00:13:41,840 --> 00:13:45,070 >> Jadi mari kita memperkenalkan, secara ringkas, ini sedikit lain sintaksis. 273 00:13:45,070 --> 00:13:48,940 Ini tidak cukup membawa kepada Awal, tetapi saya mendakwa bahawa saya boleh 274 00:13:48,940 --> 00:13:55,190 melaksanakan idea jika lain, jika lagi, jika yang lain, jika kenyataan lain yang menggunakan 275 00:13:55,190 --> 00:13:56,760 sesuatu yang dinamakan kenyataan suis. 276 00:13:56,760 --> 00:14:00,820 Dan satu-satunya sebab ini benar-benar wujud adalah untuk hanya memberi anda, programmer, satu 277 00:14:00,820 --> 00:14:05,470 cara yang sedikit berbeza menyelesaikan beberapa masalah, walaupun secara logiknya ia 278 00:14:05,470 --> 00:14:07,340 tidak memberikan apa-apa keupayaan baru. 279 00:14:07,340 --> 00:14:08,530 >> Oleh yang saya maksudkan ini. 280 00:14:08,530 --> 00:14:13,330 Apabila kamu berkata switch, dan kemudian ruang, dan kemudian sepasang kurungan, di dalam 281 00:14:13,330 --> 00:14:14,570 yang pergi ungkapan - 282 00:14:14,570 --> 00:14:18,010 dan ini mungkin menjadi sedikit tidak jelas pada mulanya, tetapi ini bukanlah hujah, 283 00:14:18,010 --> 00:14:20,680 teknikal, kerana suis bukan fungsi. 284 00:14:20,680 --> 00:14:24,230 Jadi buat masa ini, hanya menganggap bahawa kita menggunakan kurungan di tempat-tempat yang berbeza 285 00:14:24,230 --> 00:14:25,250 atas sebab-sebab yang berbeza. 286 00:14:25,250 --> 00:14:29,310 >> Jadi hidupkan ungkapan bermakna saya boleh meletakkan dalam ubah mereka 287 00:14:29,310 --> 00:14:31,350 kurungan di mana ia mengatakan bersuara. 288 00:14:31,350 --> 00:14:33,090 Dan kemudian jika yang berubah-ubah - 289 00:14:33,090 --> 00:14:35,400 andaikan ia dipanggil x, dan ia hanya integer - 290 00:14:35,400 --> 00:14:38,900 Saya kemudian boleh menghitung dalam slaid saya di sini sesuatu seperti ini. 291 00:14:38,900 --> 00:14:41,690 Jika x ialah pembolehubah saya, dan saya mahu melakukan sesuatu jika x 292 00:14:41,690 --> 00:14:43,480 sama dengan 1, saya boleh berbuat demikian. 293 00:14:43,480 --> 00:14:46,660 >> Jika saya bukan mahu melakukan sesuatu jika x ialah 2, saya boleh berbuat demikian. 294 00:14:46,660 --> 00:14:50,390 Lain, jika saya ingin melakukan sesuatu yang lain sepenuhnya, saya boleh mempunyai kes ingkar 295 00:14:50,390 --> 00:14:52,750 mana saya melakukan perkara ini lain. 296 00:14:52,750 --> 00:14:58,730 Jadi dalam erti kata itu, ia adalah bersamaan dengan jika x sama sama 1, lain jika yang lain, 297 00:14:58,730 --> 00:15:01,150 tetapi saya menyebut ini sekarang hanya kerana kita akan melihat sekali lagi. 298 00:15:01,150 --> 00:15:03,720 Tetapi untuk sekarang, hanya tahu bahawa ia wujud. 299 00:15:03,720 --> 00:15:04,220 >> Baiklah. 300 00:15:04,220 --> 00:15:07,660 Jadi pasangan ini terakhir adalah lebih sedikit kompleks pada pandangan pertama, tetapi mereka 301 00:15:07,660 --> 00:15:09,385 sesuatu yang agak mudah. 302 00:15:09,385 --> 00:15:14,410 A untuk gelung dalam C adalah sebahagian daripada kod yang hanya melakukan sesuatu lagi dan 303 00:15:14,410 --> 00:15:15,330 lagi dan lagi. 304 00:15:15,330 --> 00:15:17,590 Dan satu-satunya perkara yang menjengkelkan tentang ia adalah itu adalah bahawa ia adalah sedikit samar 305 00:15:17,590 --> 00:15:21,380 untuk menyatakan diri dalam kitaran corak, tetapi dunia yang selaras mengenai 306 00:15:21,380 --> 00:15:22,450 cara berikut. 307 00:15:22,450 --> 00:15:25,760 >> Apabila anda menggunakan untuk gelung, anda mempunyai sepasang kurung lagi. 308 00:15:25,760 --> 00:15:27,570 Dan notis dua koma bertitik di sana. 309 00:15:27,570 --> 00:15:34,380 Kedua-dua koma bertitik berasingan tiga ungkapan yang berbeza di dalam satu 310 00:15:34,380 --> 00:15:35,020 kurungan. 311 00:15:35,020 --> 00:15:37,170 Satu adalah initializations kononnya. 312 00:15:37,170 --> 00:15:38,830 Satu keadaan yang dipanggil. 313 00:15:38,830 --> 00:15:40,210 Dan satu maklumat kononnya. 314 00:15:40,210 --> 00:15:43,240 >> Melihat dalam abstrak, ini adalah benar-benar tidak jelas, jadi mari kita lihat 315 00:15:43,240 --> 00:15:44,630 pada satu contoh yang konkrit. 316 00:15:44,630 --> 00:15:46,720 Dalam Scratch kami mempunyai blok berulang. 317 00:15:46,720 --> 00:15:50,670 Dan blok ini berkata mengulangi 10 kali, berkata "Hello, dunia." Biar saya menuntut 318 00:15:50,670 --> 00:15:53,810 sekarang, dan kita akan kembali kepada ini, dan ini juga akan mendapatkan lebih biasa kepada 319 00:15:53,810 --> 00:15:57,345 anda tidak lama lagi, bersamaan C kod boleh dikatakan ini - 320 00:15:57,345 --> 00:16:02,320 bagi kenyataan dan ruang, sepasang kurungan, notis koma bertitik dalam 321 00:16:02,320 --> 00:16:05,730 sana, yang memisahkan tiga berbeza perkara, pengawalan itu, 322 00:16:05,730 --> 00:16:07,320 keadaan, dan kemas kini. 323 00:16:07,320 --> 00:16:08,840 >> Dan mengambil meneka apa pertama lakukan. 324 00:16:08,840 --> 00:16:10,690 Int i = 0. 325 00:16:10,690 --> 00:16:15,120 Dari segi orang biasa kasar, apakah yang lakukan untuk kita, mungkin? 326 00:16:15,120 --> 00:16:15,590 Jadi yeah. 327 00:16:15,590 --> 00:16:19,630 Ia mengisytiharkan pembolehubah yang dipanggil i, dan ia memberi apa nilai itu? 328 00:16:19,630 --> 00:16:20,220 0. 329 00:16:20,220 --> 00:16:24,280 Jadi ia mewujudkan ubah yang dipanggil i, menyimpan nilai 0 di dalamnya. 330 00:16:24,280 --> 00:16:26,420 Itulah pengawalan kononnya. 331 00:16:26,420 --> 00:16:29,360 >> Baiklah, sekarang saya mendakwa sebelum bahawa perkara yang pertengahan, i 332 00:16:29,360 --> 00:16:31,760 <10, adalah keadaan. 333 00:16:31,760 --> 00:16:32,730 Jadi apa yang lakukan? 334 00:16:32,730 --> 00:16:36,560 Nah, apa yang gelung untuk tidak apabila program dengan gelung untuk dijalankan, adalah 335 00:16:36,560 --> 00:16:41,050 setiap kali komputer berjalan melalui gelung ini, atas ke bawah, atas ke 336 00:16:41,050 --> 00:16:43,740 bawah, sama seperti anda lakukan apabila lelaki mengira diri kamu dan duduk, 337 00:16:43,740 --> 00:16:47,090 lagi dan lagi dan lagi, komputer akan 338 00:16:47,090 --> 00:16:48,560 untuk memeriksa keadaan itu. 339 00:16:48,560 --> 00:16:51,140 Dan jika i adalah kurang daripada 10, ia akan melakukannya sekali lagi. 340 00:16:51,140 --> 00:16:53,100 Jika saya adalah kurang daripada 10, ia akan melakukannya sekali lagi. 341 00:16:53,100 --> 00:16:55,030 Jika saya adalah kurang daripada sepuluh, ia akan melakukannya sekali lagi. 342 00:16:55,030 --> 00:16:57,330 Jadi seolah-olah mencadangkan bahawa mudah-mudahan i berubah. 343 00:16:57,330 --> 00:16:59,010 Jika tidak, kita akan mempunyai gelung tak terhingga. 344 00:16:59,010 --> 00:17:02,590 Dan sesungguhnya, saya berubah, kerana Perkara terakhir selepas koma bernoktah di sana 345 00:17:02,590 --> 00:17:05,569 adalah sintaks yang agak samar i + +. 346 00:17:05,569 --> 00:17:07,630 Tetapi mereka yang telah melakukan ini sebelum ini, bahawa hanya bermaksud 347 00:17:07,630 --> 00:17:08,609 cukup sekadar apa? 348 00:17:08,609 --> 00:17:09,730 >> PELAJAR: [INTERPOSING suara]. 349 00:17:09,730 --> 00:17:10,740 >> DAVID MALAN: Tambah 1 i. 350 00:17:10,740 --> 00:17:11,819 Kenaikan i. 351 00:17:11,819 --> 00:17:13,910 Oleh itu, kita menyaksikan teka-teki Scratch sekeping untuk itu, sebenarnya. 352 00:17:13,910 --> 00:17:18,230 Ia tidak kelihatan seperti i + +, tetapi yang hanya bermakna, agak mudah, kenaikan yang 353 00:17:18,230 --> 00:17:24,040 menghargai i sebanyak 1 setiap kali anda melakukan ini. 354 00:17:24,040 --> 00:17:26,910 Jadi benar-benar, anda mulakan dengan Memulakan i kepada 0. 355 00:17:26,910 --> 00:17:29,520 Anda kemudian memeriksa keadaan anda. 356 00:17:29,520 --> 00:17:31,070 Adalah 0 kurang daripada 10? 357 00:17:31,070 --> 00:17:31,730 Ya. 358 00:17:31,730 --> 00:17:32,910 Kita melalui gelung. 359 00:17:32,910 --> 00:17:35,150 >> Perkara seterusnya yang saya menuntut komputer ini akan lakukan ialah ia akan 360 00:17:35,150 --> 00:17:35,910 untuk kenaikan i. 361 00:17:35,910 --> 00:17:37,080 Jadi saya kini 1. 362 00:17:37,080 --> 00:17:37,940 Ia memeriksa keadaan. 363 00:17:37,940 --> 00:17:39,290 1 kurang daripada 10? 364 00:17:39,290 --> 00:17:39,930 Sudah tentu. 365 00:17:39,930 --> 00:17:41,030 Begitu juga sekali lagi. 366 00:17:41,030 --> 00:17:43,580 Kemudian ia kenaikan i + + 2. 367 00:17:43,580 --> 00:17:44,610 2 adalah kurang daripada 10? 368 00:17:44,610 --> 00:17:45,230 Ya. 369 00:17:45,230 --> 00:17:46,670 Dan sekali lagi dan lagi dan lagi. 370 00:17:46,670 --> 00:17:50,070 Dan akhirnya, kerana plus-plussing, kita dapat i sama 10. 371 00:17:50,070 --> 00:17:51,675 10 kurang daripada 10? 372 00:17:51,675 --> 00:17:52,990 Nah, jelas tidak. 373 00:17:52,990 --> 00:17:55,320 Dan itulah titik di mana untuk gelung hanya berhenti. 374 00:17:55,320 --> 00:17:58,320 Dan jika anda mempunyai kod lanjut mengenai skrin ke bawah, komputer 375 00:17:58,320 --> 00:18:01,620 hasil untuk menjalankan kod yang sebaliknya. 376 00:18:01,620 --> 00:18:05,380 >> Jadi sekali lagi, walaupun ini akan kelihatan dan berasa sedikit pelik pada 377 00:18:05,380 --> 00:18:07,830 pertama, sudah tentu bagi mereka yang tidak pernah diprogramkan sebelum ini, ia 378 00:18:07,830 --> 00:18:11,640 benar-benar mengurangkan konsep kepada apa yang sebaliknya sangat 379 00:18:11,640 --> 00:18:14,330 teka-teki yang mudah sekeping dalam Scratch. 380 00:18:14,330 --> 00:18:19,130 >> Baiklah, saya berjanji bahawa akan menjadi analog lain di calar. 381 00:18:19,130 --> 00:18:20,060 Ada satu ini juga. 382 00:18:20,060 --> 00:18:21,700 Dan kita melihat masa lalu secara ringkas ini. 383 00:18:21,700 --> 00:18:23,530 Tetapi ingat selama-lamanya menghalang dalam Scratch? 384 00:18:23,530 --> 00:18:25,490 Ia hanya melakukan sesuatu yang selama-lamanya? 385 00:18:25,490 --> 00:18:27,470 Saya mendakwa bahawa anda boleh melaksanakan ini dengan cara ini. 386 00:18:27,470 --> 00:18:29,740 Dan anda sebenarnya boleh melaksanakan ini dalam banyak cara yang berbeza. 387 00:18:29,740 --> 00:18:34,260 >> Tetapi gelung manakala hanya yang berbeza cara C menyatakan diri. 388 00:18:34,260 --> 00:18:37,080 Pada akhir hari, anda tidak boleh berbuat apa-apa dengan gelung sementara anda 389 00:18:37,080 --> 00:18:38,360 tidak boleh dengan untuk gelung. 390 00:18:38,360 --> 00:18:41,430 Jadi mereka berada di akhir hari fungsi yang sama. 391 00:18:41,430 --> 00:18:43,840 Tetapi ia membolehkan anda untuk meluahkan diri anda sedikit berbeza dalam 392 00:18:43,840 --> 00:18:44,850 cara berikut. 393 00:18:44,850 --> 00:18:49,720 >> Dengan gelung sementara, ia adalah apa yang di dalam kurungan itu diperiksa sekali lagi dan 394 00:18:49,720 --> 00:18:51,050 lagi dan lagi. 395 00:18:51,050 --> 00:18:55,100 Dan sebaik sahaja ungkapan itu adalah palsu, maka gelung berhenti melaksanakan, 396 00:18:55,100 --> 00:18:57,890 dan komputer bertindak untuk menjalankan apa-apa kod lain yang anda 397 00:18:57,890 --> 00:18:59,230 ada dalam fail anda. 398 00:18:59,230 --> 00:19:02,180 >> Tetapi apa yang menarik di sini bahawa saya benar-benar ditaip benar. 399 00:19:02,180 --> 00:19:06,680 Dan yang benar adalah sejenis nilai Boolean, nilai benar atau palsu. 400 00:19:06,680 --> 00:19:09,750 Jadi boleh benar pernah menjadi palsu jika saya telah benar-benar 401 00:19:09,750 --> 00:19:11,970 keras dikodkan ke dalam program saya? 402 00:19:11,970 --> 00:19:12,470 Jadi tidak. 403 00:19:12,470 --> 00:19:13,730 Ia sedikit pelik yang saya lakukan ini. 404 00:19:13,730 --> 00:19:15,190 Tetapi benar adalah benar. 405 00:19:15,190 --> 00:19:16,320 Tidak ada campur-plussing. 406 00:19:16,320 --> 00:19:17,820 Tiada penggunaan pembolehubah di sini. 407 00:19:17,820 --> 00:19:22,740 Jadi kerana saya keras berkod manakala benar, ini gelung sentiasa akan menilai 408 00:19:22,740 --> 00:19:24,090 lagi dan lagi dan lagi. 409 00:19:24,090 --> 00:19:27,660 >> Jadi berapa banyak kali adalah dunia hello akan mencetak pada skrin? 410 00:19:27,660 --> 00:19:28,170 Selama-lamanya. 411 00:19:28,170 --> 00:19:31,980 Nombor terhingga kali sehingga mati bateri atau beberapa luaran yang lain 412 00:19:31,980 --> 00:19:32,730 peristiwa yang berlaku. 413 00:19:32,730 --> 00:19:35,880 Jadi ini mungkin tidak program yang terbaik untuk menulis, kerana jika pengguna 414 00:19:35,880 --> 00:19:38,660 tidak boleh berhenti program anda, mungkin tidak apa yang anda inginkan. 415 00:19:38,660 --> 00:19:41,070 >> Tetapi kadang-kadang, program perlu mempunyai gelung tak terhingga. 416 00:19:41,070 --> 00:19:44,050 Sebagai contoh, jika komputer anda mempunyai jam di atasnya, ia pasti akan menjadi 417 00:19:44,050 --> 00:19:48,130 bagus jika jam anda ia terus mengemaskini sendiri selama-lamanya, walaupun sekali 418 00:19:48,130 --> 00:19:50,500 kedua atau sekali satu minit atau sesuatu seperti itu. 419 00:19:50,500 --> 00:19:53,690 Jadi, walaupun gelung tak terhingga mempunyai tempat mereka. 420 00:19:53,690 --> 00:19:54,360 >> Baiklah. 421 00:19:54,360 --> 00:19:55,190 Akhir sekali, yang satu ini. 422 00:19:55,190 --> 00:19:57,770 Dan yang satu ini yang sedikit berbeza fungsi, dan kami akan kembali kepada 423 00:19:57,770 --> 00:19:59,460 ini mungkin dalam Pset 1. 424 00:19:59,460 --> 00:20:02,370 Tetapi ada satu lagi jenis gelung dipanggil lakukan semasa gelung. 425 00:20:02,370 --> 00:20:07,100 Dan satu-satunya perbezaan di sini antara lakukan semasa gelung dan, berkata, gelung sementara, 426 00:20:07,100 --> 00:20:11,120 adalah bahawa keadaan ini tidak diperiksa sebelum anda melaksanakan kod, tetapi selepas 427 00:20:11,120 --> 00:20:12,080 anda melaksanakan kod. 428 00:20:12,080 --> 00:20:15,380 Jadi di atas untuk sementara gelung, manakala lakukan semasa 429 00:20:15,380 --> 00:20:16,560 memeriksa ia di bawah. 430 00:20:16,560 --> 00:20:21,370 >> Dan ini hanya bererti bahawa gelung sementara biasanya akan melaksanakan lebih banyak kali 431 00:20:21,370 --> 00:20:24,630 atau kurang kali daripada gelung sementara? 432 00:20:24,630 --> 00:20:30,810 Berpotensi lebih masa, kerana melakukan gelung while jelas mengatakan melakukan ini, 433 00:20:30,810 --> 00:20:34,600 hanya selepas yang menunjukkan anda menyemak jika di dalam keadaan yang 434 00:20:34,600 --> 00:20:35,980 kurungan adalah benar. 435 00:20:35,980 --> 00:20:37,940 >> Oleh itu, kita akan melihat ini lagi mungkin dalam Pset 1. 436 00:20:37,940 --> 00:20:41,150 Jika anda mahu melakukan sesuatu di kurangnya sekali dan maka mungkin ada yang lebih 437 00:20:41,150 --> 00:20:43,350 kali, ini adalah baik membina untuk digunakan. 438 00:20:43,350 --> 00:20:46,970 Tetapi gelung sementara, sebaliknya, akan memeriksa keadaan yang pertama. 439 00:20:46,970 --> 00:20:50,660 Dan itu sahaja untuk gelung dalam C, jangan sementara, sementara, dan bagi gelung. 440 00:20:50,660 --> 00:20:54,700 Dan sekali lagi, mereka merancang cukup baik kembali untuk Gores, kecuali satu ini tidak 441 00:20:54,700 --> 00:20:57,350 cukup mempunyai analog yang sama di calar. 442 00:20:57,350 --> 00:20:58,880 >> Nah, bagaimana pula, kini, pembolehubah? 443 00:20:58,880 --> 00:21:02,600 Jadi ini adalah bagaimana saya mengisytiharkan pembolehubah sintaksis pada hari yang lain. 444 00:21:02,600 --> 00:21:06,440 Saya mempunyai int, yang saya mendakwa adalah integer. 445 00:21:06,440 --> 00:21:09,690 Saya kemudian telah dipanggil kaunter berubah-ubah, dan kemudian koma bernoktah. 446 00:21:09,690 --> 00:21:11,070 Jadi, apakah ini selaras kod lakukan? 447 00:21:11,070 --> 00:21:14,540 Ini adalah, cukup mudah, mengisytiharkan berubah-ubah - 448 00:21:14,540 --> 00:21:17,940 iaitu, meminta komputer, memberi saya memori tertentu, berikan saya beberapa bit - dalam 449 00:21:17,940 --> 00:21:19,450 yang saya boleh menyimpan apa? 450 00:21:19,450 --> 00:21:20,300 Satu int. 451 00:21:20,300 --> 00:21:23,570 Dan koma bertitik hanya bermakna akhir baris kod. 452 00:21:23,570 --> 00:21:25,500 >> Sekarang, baris kedua mungkin cukup diteka. 453 00:21:25,500 --> 00:21:29,710 Apakah kaunter = 0; lakukan? 454 00:21:29,710 --> 00:21:31,690 Ia memberikan 0 hingga kaunter. 455 00:21:31,690 --> 00:21:33,470 Dan jadi ini adalah perkara yang lain itulah sedikit menjengkelkan 456 00:21:33,470 --> 00:21:34,540 berbanding, katakan, algebra. 457 00:21:34,540 --> 00:21:39,110 Manakala dalam algebra, tanda yang sama bermakna sama, di sini di C, yang sama 458 00:21:39,110 --> 00:21:40,470 tanda bermakna tugasan. 459 00:21:40,470 --> 00:21:45,380 Jadi ia bermakna meletakkan apa yang di sebelah kanan ke dalam apa yang di sebelah kiri. 460 00:21:45,380 --> 00:21:49,030 Dan kita akan melihat simbol yang lain, sama sama, apabila kita mahu untuk benar-benar menguji 461 00:21:49,030 --> 00:21:50,570 untuk kualiti, agak annoyingly. 462 00:21:50,570 --> 00:21:52,590 >> Tetapi ini adalah sedikit tidak cekap. 463 00:21:52,590 --> 00:21:55,090 Ia adalah jenis menjengkelkan bahawa saya mempunyai untuk mengisytiharkan pembolehubah dan 464 00:21:55,090 --> 00:21:56,110 kemudian memberikan nilai. 465 00:21:56,110 --> 00:21:59,380 Jadi C sebenarnya membolehkan kita memudahkan ini dan hanya melakukannya semua sekali gus. 466 00:21:59,380 --> 00:22:01,330 Anda boleh mengisytiharkan pembolehubah di sebelah kiri. 467 00:22:01,330 --> 00:22:04,590 Anda masih boleh melakukan tugasan pada betul dengan meletakkan bahawa tanda yang sama dalam 468 00:22:04,590 --> 00:22:05,030 tengah-tengah. 469 00:22:05,030 --> 00:22:08,740 Jadi, pada akhir hari, kedua-dua adalah sama, tetapi yang satu ini, terus-terang, 470 00:22:08,740 --> 00:22:11,840 mungkin tabiat yang lebih baik untuk masuk ke dalam hanya kerana ia adalah sedikit kurang 471 00:22:11,840 --> 00:22:15,040 kod, ia sedikit lebih mudah untuk membaca, dan ia hanya mengetatkan sehingga 472 00:22:15,040 --> 00:22:17,470 kod anda, jadi untuk bercakap. 473 00:22:17,470 --> 00:22:22,120 >> Sebarang pertanyaan setakat di gelung, pada pembolehubah, kepada keadaan, pada 474 00:22:22,120 --> 00:22:27,001 Booleans, sama ada dari segi teknikal atau konsep? 475 00:22:27,001 --> 00:22:28,010 Baiklah. 476 00:22:28,010 --> 00:22:30,690 Jadi sekarang yang satu ini seterusnya mendapat sedikit lebih menarik. 477 00:22:30,690 --> 00:22:34,790 Dan ini adalah contoh yang saya meletakkan lalu masa yang hanya memetakan contoh Scratch 478 00:22:34,790 --> 00:22:35,820 kepada C. 479 00:22:35,820 --> 00:22:36,580 >> Jadi fungsi. 480 00:22:36,580 --> 00:22:38,110 Dari segi orang biasa itu, apa fungsi? 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 Mendapat menjadi lebih berani dengan jawapan anda. 483 00:22:44,350 --> 00:22:45,020 Apa fungsi? 484 00:22:45,020 --> 00:22:46,320 >> PELAJAR: Adakah sesuatu. 485 00:22:46,320 --> 00:22:46,780 >> DAVID MALAN: Apakah itu? 486 00:22:46,780 --> 00:22:48,000 >> PELAJAR: Adakah sesuatu. 487 00:22:48,000 --> 00:22:48,710 >> DAVID MALAN: Adakah sesuatu. 488 00:22:48,710 --> 00:22:49,000 OK. 489 00:22:49,000 --> 00:22:49,590 Kami akan bermula di sana. 490 00:22:49,590 --> 00:22:51,270 Jadi fungsi melakukan sesuatu. 491 00:22:51,270 --> 00:22:55,160 Jadi ia adalah sekeping kod itu dasarnya dilaksanakan di tempat lain yang 492 00:22:55,160 --> 00:22:56,620 memang melakukan sesuatu. 493 00:22:56,620 --> 00:23:00,180 Kini, apa yang menarik mengenai fungsi adalah bahawa ia boleh mengambil input, 494 00:23:00,180 --> 00:23:02,710 dan ia boleh menghasilkan output. 495 00:23:02,710 --> 00:23:05,090 Dan mari kita sebenarnya mengambil lihat ini. 496 00:23:05,090 --> 00:23:09,030 >> Jadi orang di belakang tabir adalah sengaja sebentar tadi. 497 00:23:09,030 --> 00:23:10,320 Di sini kita mempunyai jadual. 498 00:23:10,320 --> 00:23:13,010 Tetapi menganggap bahawa sebenarnya ini merupakan satu kotak besar. 499 00:23:13,010 --> 00:23:14,940 Jadi ini adalah satu kotak kononnya hitam. 500 00:23:14,940 --> 00:23:19,800 Dan secara umum, dalam reka bentuk, dalam komputer sains, kotak hitam hanya merujuk kepada 501 00:23:19,800 --> 00:23:22,510 keping fungsi yang seseorang telah dilaksanakan, dan anda tidak 502 00:23:22,510 --> 00:23:26,140 semestinya tahu atau peduli bagaimana ia dilaksanakan di bawah hood. 503 00:23:26,140 --> 00:23:28,960 Anda hanya peduli bahawa kotak hitam ini, yang kini kita akan mula memanggil 504 00:23:28,960 --> 00:23:30,730 fungsi, adakah sesuatu. 505 00:23:30,730 --> 00:23:34,710 >> Maka, misalnya, jika kotak hitam ini pada peringkat di sini mewakili printf, satu 506 00:23:34,710 --> 00:23:38,040 fungsi, saya tahu dari contoh yang lepas printf yang mengambil masa satu atau lebih 507 00:23:38,040 --> 00:23:40,910 hujah-hujah, dan yang pertama dari orang-orang hujah-hujah yang perlu tali, seperti 508 00:23:40,910 --> 00:23:44,780 "Hello, dunia." Nah, jika saya seorang yang bertulis program ini, dan saya mahu 509 00:23:44,780 --> 00:23:50,460 menggunakan printf, saya, sebagai contoh, mungkin mengambil sekeping kertas kosong di sini dan 510 00:23:50,460 --> 00:23:55,060 penanda hitam dan menulis di atasnya - 511 00:23:55,060 --> 00:23:56,580 Saya silap eja "dunia" - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O. 513 00:23:59,560 --> 00:24:04,220 >> Jadi saya akan mengambil penanda hitam saya dan saya akan menulis, sebagai besar dan dengan jelas seperti yang saya boleh pada 514 00:24:04,220 --> 00:24:07,260 ini sekeping kertas, "hello, dunia," Dan kini saya menuntut ini adalah hujah saya. 515 00:24:07,260 --> 00:24:09,740 Ini adalah rentetan diwakili dengan sehelai kertas putih. 516 00:24:09,740 --> 00:24:13,030 Dan input saya sekarang untuk fungsi printf akan menjadi ini. 517 00:24:13,030 --> 00:24:18,250 Oleh itu, saya menyeru printf, lulus hujah bahawa input kepadanya. 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> Dan sekarang, saya tidak tahu bagaimana orang yang menulis printf melakukannya tahun lalu, tetapi 520 00:24:26,740 --> 00:24:31,110 Saya tahu dari dokumentasi yang tujuan dalam hidup adalah untuk mencetak apa yang saya 521 00:24:31,110 --> 00:24:34,410 memberikan kepadanya sebagai input. 522 00:24:34,410 --> 00:24:40,630 Dan sebagainya, walaupun pelaksanaan ini adalah tanpa pengetahuan saya 523 00:24:40,630 --> 00:24:44,170 di bawah hood, kini Saya melihat, oh, ia dilakukan. 524 00:24:44,170 --> 00:24:45,740 Ia telah dicetak sesuatu pada skrin. 525 00:24:45,740 --> 00:24:49,070 Dan kini mengawal program ini, jika terdapat lebih baris kod, akan 526 00:24:49,070 --> 00:24:51,070 kini telah kembali kepada saya. 527 00:24:51,070 --> 00:24:52,290 Dan supaya hakikat bahawa Colton - 528 00:24:52,290 --> 00:24:55,370 memberkati hatinya, bersembunyi di sini di bawah meja di hadapan anda semua - 529 00:24:55,370 --> 00:24:59,530 adalah sengaja yang saya tidak tahu dan saya tidak peduli bagaimana printf adalah 530 00:24:59,530 --> 00:25:00,100 dilaksanakan. 531 00:25:00,100 --> 00:25:03,390 Saya hanya tahu, sekali lagi, dari itu dokumentasi, apakah ia dan bagaimana saya 532 00:25:03,390 --> 00:25:05,040 saya sepatutnya untuk menggunakannya. 533 00:25:05,040 --> 00:25:09,140 >> Sekarang, ingat bahawa printf boleh mendapatkan sedikit lebih canggih. 534 00:25:09,140 --> 00:25:12,220 Sekali lagi, kami hanya bercakap tentang bersamaan blok Katakanlah calar itu. 535 00:25:12,220 --> 00:25:14,230 Tetapi saya juga tidak kali ini lepas. 536 00:25:14,230 --> 00:25:17,270 Saya mahu membuat program hello saya a sedikit lebih dinamik dan tidak hanya keras 537 00:25:17,270 --> 00:25:19,740 kod sesuatu seperti "dunia", dan pasti tidak kod sesuatu yang keras 538 00:25:19,740 --> 00:25:22,520 sewenang-wenangnya seperti D-A-V-I-D ke dalam program ini. 539 00:25:22,520 --> 00:25:27,510 Saya ingin bertanya kepada pengguna untuk beliau nama, dan kemudian lakukan sesuatu dengan 540 00:25:27,510 --> 00:25:29,720 rentetan bahawa mereka menyediakan. 541 00:25:29,720 --> 00:25:32,690 >> Jadi ada sesuatu yang berbeza di sini. printf, masa yang lalu, 542 00:25:32,690 --> 00:25:35,860 tidak, sesungguhnya, melakukan sesuatu, tetapi ia tidak kembali apa-apa kepada saya. 543 00:25:35,860 --> 00:25:36,020 Betul? 544 00:25:36,020 --> 00:25:38,910 Colton tidak tangan saya apa-apa kembali, tiada sehelai kertas. 545 00:25:38,910 --> 00:25:40,320 Terdapat hanya kesan sampingan. 546 00:25:40,320 --> 00:25:44,510 Saya menyediakan "hello, dunia" sebagai hujah untuk Colton menyebabkan 547 00:25:44,510 --> 00:25:48,420 kesan sampingan perkataan, beberapa perkataan, muncul pada skrin. 548 00:25:48,420 --> 00:25:51,350 >> getstring, walaupun, adalah sedikit berbeza. getstring juga 549 00:25:51,350 --> 00:25:54,590 berfungsi, tetapi ia kembali beberapa nilai. 550 00:25:54,590 --> 00:25:56,370 Ia bukan sahaja mempunyai kesan sampingan estetik. 551 00:25:56,370 --> 00:26:00,230 Ia sebenarnya memberi saya, orang yang memanggil atau menggunakan fungsi, 552 00:26:00,230 --> 00:26:01,320 sesuatu kembali. 553 00:26:01,320 --> 00:26:05,740 Jadi dalam kes ini, adalah getstring dipanggil dengan getstring terbuka 554 00:26:05,740 --> 00:26:07,510 paren, paren dekat. 555 00:26:07,510 --> 00:26:11,370 Adakah getstring, oleh itu, mengambil apa-apa hujah atau input? 556 00:26:11,370 --> 00:26:12,340 Tidak, ia tidak kelihatan. 557 00:26:12,340 --> 00:26:14,460 Tujuan dalam hidup adalah hanya untuk mendapatkan rentetan. 558 00:26:14,460 --> 00:26:16,910 Ia memerlukan detail tidak lebih daripada itu. 559 00:26:16,910 --> 00:26:20,430 Jadi biarlah saya pergi ke hadapan dan berpura-pura bahawa, lagi, kotak hitam ini tidak printf, 560 00:26:20,430 --> 00:26:25,160 tetapi getstring, dan beritahu saya, orang yang bertulis program ini, sila hubungi atau menggunakan 561 00:26:25,160 --> 00:26:29,720 getstring dengan hanya menulis G-E-T-S-T-R-I-N-G, terbuka paren, berhampiran 562 00:26:29,720 --> 00:26:32,170 paren, getstring. 563 00:26:32,170 --> 00:26:36,920 >> Sekarang, saya tidak mempunyai idea bagaimana kakitangan CS50 dilaksanakan getstring, tetapi saya tahu bahawa 564 00:26:36,920 --> 00:26:41,240 jika saya menunggu cukup lama, ia akan melakukan yang perkara di bawah hood, mungkin menggunakan 565 00:26:41,240 --> 00:26:44,940 beberapa pembolehubah, mungkin menggunakan beberapa keadaan, mungkin menggunakan beberapa gelung, 566 00:26:44,940 --> 00:26:48,170 mungkin menggunakan beberapa fungsi, mungkin menggunakan - 567 00:26:48,170 --> 00:26:52,290 hanya cuba untuk gerai - mungkin menggunakan beberapa ciri-ciri pengaturcaraan yang lain. 568 00:26:52,290 --> 00:26:55,350 Tetapi jika saya menunggu cukup lama - dalam realiti, dalam komputer, ini berlaku 569 00:26:55,350 --> 00:26:56,270 super cepat - 570 00:26:56,270 --> 00:26:59,910 jika saya menunggu cukup lama, fungsi ini getstring akan mendapat tali 571 00:26:59,910 --> 00:27:04,060 daripada pengguna, yang mungkin menaip ia keluar pada keyboard mereka, dan 572 00:27:04,060 --> 00:27:08,090 kemudian, apabila anda getstring dilakukan mendapat mereka watak-watak dari pengguna 573 00:27:08,090 --> 00:27:14,080 dan menyimpan mereka ke dalam tali, yang fungsi, getstring, akan mempunyai 574 00:27:14,080 --> 00:27:17,990 bersedia untuk saya beberapa output yang saya akan mendapatkan dengan cara 575 00:27:17,990 --> 00:27:19,470 operator tugasan. 576 00:27:19,470 --> 00:27:25,390 >> Dan jika saya pergi, memang, ke output di sini, Obosi mempunyai murah hati 577 00:27:25,390 --> 00:27:29,900 mengambil bahagian, tanpa mengetahui ini maju, dengan menulis namanya ke ini 578 00:27:29,900 --> 00:27:33,100 berubah-ubah, yang mewakili rentetan. 579 00:27:33,100 --> 00:27:35,640 Sekarang, pengendali tugasan bermakna, walaupun walaupun ini mungkin merasa sedikit 580 00:27:35,640 --> 00:27:38,790 berlebihan, saya sebenarnya memang memerlukan untuk membuat salinan saya sendiri ini. 581 00:27:38,790 --> 00:27:40,700 Kerana pada tangan kiri side - Oops! - 582 00:27:40,700 --> 00:27:45,760 perhatian bahawa saya pada dasarnya mempunyai tali nama di sebelah kiri. 583 00:27:45,760 --> 00:27:48,280 Jadi, saya juga akan membuat salinan saya sendiri ini. 584 00:27:48,280 --> 00:27:50,990 Dan ini adalah sedikit dusta putih, kerana kita akan melihat dalam satu atau dua minggu ini 585 00:27:50,990 --> 00:27:54,100 masa itu rentetan tidak sebenarnya apa yang mereka kelihatan. 586 00:27:54,100 --> 00:27:56,700 >> Tetapi untuk sekarang, di sini adalah nilai pulangan. 587 00:27:56,700 --> 00:28:00,160 Berikut adalah salinan saya sendiri selepas menggunakan operator tugasan. 588 00:28:00,160 --> 00:28:01,790 Dan kini, apa yang saya mahu lakukan seterusnya? 589 00:28:01,790 --> 00:28:04,080 Kami kini mempunyai kedua dua baris kod. 590 00:28:04,080 --> 00:28:05,640 Jadi sekarang saya mahu panggil printf. 591 00:28:05,640 --> 00:28:08,500 Mari kita berpura-pura sekarang bahawa hitam kotak kembali lagi untuk menjadi 592 00:28:08,500 --> 00:28:10,210 printf dan tidak getstring. 593 00:28:10,210 --> 00:28:12,200 >> Printf masa ini akan mengambil berapa banyak hujah? 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 Jadi melihat, ia seperti dua. 596 00:28:16,770 --> 00:28:18,860 Terdapat dua koma di sana, tetapi salah seorang daripada mereka koma, ia 597 00:28:18,860 --> 00:28:20,220 bahagian dalam petikan. 598 00:28:20,220 --> 00:28:23,190 Jadi hujah pertama adalah benar-benar akan menjadi ini. 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O, koma, peratus s, garis sendeng terbalik-n. 600 00:28:31,850 --> 00:28:36,560 Dan sekarang saya menyediakan bukan satu hujah, tetapi dua hujah untuk printf. 601 00:28:36,560 --> 00:28:39,530 >> Dan apa yang printf sepatutnya dilakukan dengan kedua-dua input selepas saya lulus mereka dalam 602 00:28:39,530 --> 00:28:42,050 sebagai hujah? 603 00:28:42,050 --> 00:28:45,360 Ia sepatutnya mengambil kedua mereka, yang saya dipanggil nama, jadi 604 00:28:45,360 --> 00:28:48,660 sekeping kertas kedua saya menulis daripada masa lalu dipanggil nama. 605 00:28:48,660 --> 00:28:53,550 Ia akan plug daripada nilai dalam itu berubah-ubah ke dalam ruang letak, 606 00:28:53,550 --> 00:28:58,310 % S, supaya, sekali lagi, hanya dalam masa yang masa, kita akan melihat kesan sampingan 607 00:28:58,310 --> 00:29:04,180 setelah dipanggil printf, di mana kini kita lihat bukan "hello, dunia," tetapi "hello, 608 00:29:04,180 --> 00:29:04,710 Obosi. " 609 00:29:04,710 --> 00:29:08,730 >> Jadi pusingan besar tepukan untuk kedua-dua sukarelawan kami, hanya satu daripada mereka tahu 610 00:29:08,730 --> 00:29:12,010 ini akan berlaku. 611 00:29:12,010 --> 00:29:12,990 Baiklah. 612 00:29:12,990 --> 00:29:16,480 Jadi, mungkin, mudah kerana itu, sudah tentu, jika anda sudah biasa 613 00:29:16,480 --> 00:29:20,190 dengan apa-apa, mudah-mudahan anda tidak akan lupa bahawa visual tertentu bagaimana 614 00:29:20,190 --> 00:29:21,220 fungsi bekerja. 615 00:29:21,220 --> 00:29:23,000 >> Jadi, terdapat lebih daripada sekadar getstring. 616 00:29:23,000 --> 00:29:26,020 Di dalam perpustakaan CS50, terdapat keseluruhan sekumpulan fungsi, semua yang 617 00:29:26,020 --> 00:29:29,510 dipermodalkan hanya untuk membuat jelas bahawa kita menulis fungsi ini. 618 00:29:29,510 --> 00:29:33,610 Biasanya, dalam C, hampir setiap lain fungsi yang anda akan digunakan adalah huruf kecil. 619 00:29:33,610 --> 00:29:36,190 Tetapi kita sengaja menggunakan huruf besar hanya untuk membuat jelas bahawa 620 00:29:36,190 --> 00:29:39,880 adalah roda latihan jenis yang kita akan digunakan untuk hanya beberapa minggu yang 621 00:29:39,880 --> 00:29:42,890 memudahkan proses mendapatkan input daripada pengguna. 622 00:29:42,890 --> 00:29:46,740 >> Perpustakaan CS50 tidak berbuat apa-apa yang kamu sendiri tidak dapat lakukan oleh 623 00:29:46,740 --> 00:29:50,230 hanya menggunakan kod C daripada buku teks oldschool. 624 00:29:50,230 --> 00:29:53,310 Tetapi, sekali lagi, kita menggunakan mereka sebagai latihan roda pelbagai untuk hanya beberapa 625 00:29:53,310 --> 00:29:57,250 minggu supaya kita dapat menghilangkan kerumitan yang anda tidak lama lagi akan memahami 626 00:29:57,250 --> 00:30:00,460 diri daripada melakukan sesuatu yang agak mudah kerana mendapat 627 00:30:00,460 --> 00:30:02,080 input daripada pengguna. 628 00:30:02,080 --> 00:30:05,540 >> Maka ketahuilah, bahawa anda akan mempunyai akses untuk GetChar, GetDouble - 629 00:30:05,540 --> 00:30:06,050 dua kali ganda. 630 00:30:06,050 --> 00:30:07,050 What's - dan kemudian GetFloat. 631 00:30:07,050 --> 00:30:07,600 Apa apungan? 632 00:30:07,600 --> 00:30:09,382 Mari kita mulakan di sana. 633 00:30:09,382 --> 00:30:10,600 >> PELAJAR: [didengar]. 634 00:30:10,600 --> 00:30:10,790 >> DAVID MALAN: Ya. 635 00:30:10,790 --> 00:30:12,120 Ia adalah satu nombor dengan titik perpuluhan. 636 00:30:12,120 --> 00:30:15,930 Jadi sedangkan int adalah integer, yang hanya beberapa dengan 0 hingga 9, 637 00:30:15,930 --> 00:30:18,940 beberapa nombor ulangan itu, float adalah sesuatu 638 00:30:18,940 --> 00:30:20,100 dengan titik perpuluhan. 639 00:30:20,100 --> 00:30:26,090 Dan dua, sementara itu, juga merupakan nombor dengan titik perpuluhan, tetapi lebih 640 00:30:26,090 --> 00:30:28,160 nombor selepas perpuluhan titik, yang berpotensi. 641 00:30:28,160 --> 00:30:30,040 >> Oleh itu, kita akan kembali kepada ini tidak lama lagi. 642 00:30:30,040 --> 00:30:34,560 Tetapi biasanya, setiap jenis data, setiap jenis pembolehubah 643 00:30:34,560 --> 00:30:39,380 bahawa perpustakaan seperti kita boleh kembali ke anda, menggunakan nombor yang berbeza bit untuk 644 00:30:39,380 --> 00:30:40,290 menyimpan maklumat. 645 00:30:40,290 --> 00:30:43,910 Biasanya, Char, yang hanya bermakna satu watak, menggunakan 8 bit. 646 00:30:43,910 --> 00:30:47,490 Dan itulah sebenarnya konsisten dengan kami bait sukarelawan minggu lepas yang 647 00:30:47,490 --> 00:30:50,410 datang dan mewakili satu Watak Ascii pada satu masa. 648 00:30:50,410 --> 00:30:51,850 Jadi Char ialah 8 bit. 649 00:30:51,850 --> 00:30:54,430 >> Float A kebetulan 32 bit, biasanya. 650 00:30:54,430 --> 00:30:59,230 Dan dua, seperti yang anda sangka, adalah sebenarnya 64-bit, yang hanya lebih, 651 00:30:59,230 --> 00:31:01,360 yang bermakna anda boleh mempunyai lebih besar nombor atau lebih tepat. 652 00:31:01,360 --> 00:31:03,000 Tetapi sekali lagi, lebih pada masa yang lain. 653 00:31:03,000 --> 00:31:06,550 GetLongLong Sementara itu, walaupun bodoh dinamakan, adalah benar-benar hanya 654 00:31:06,550 --> 00:31:10,770 integer itu dua kali ganda lebih besar, dua kali ganda panjang, berpotensi, sebagai tetap 655 00:31:10,770 --> 00:31:12,940 integer, 64 bit dan bukannya 32. 656 00:31:12,940 --> 00:31:14,560 Dan GetString kita telah menggunakan. 657 00:31:14,560 --> 00:31:18,870 >> Tetapi ternyata, di perpustakaan CS50, yang dilaksanakan, seperti yang kita akan lihat, 658 00:31:18,870 --> 00:31:23,560 bentuk kedua-dua gambar, yang dipanggil cs50.h, mempunyai dua lagi 659 00:31:23,560 --> 00:31:24,770 jenis data di dalamnya. 660 00:31:24,770 --> 00:31:29,700 Booleans tidak wujud dalam C. Anda boleh meniru mereka dengan hanya menggunakan 0 dan 1s 661 00:31:29,700 --> 00:31:30,850 sepanjang program anda. 662 00:31:30,850 --> 00:31:35,500 Tetapi kita di perpustakaan CS50 telah mencipta simbol-simbol "benar" dan "palsu" 663 00:31:35,500 --> 00:31:38,580 untuk mewakili 1 dan 0 supaya anda tidak perlu kod sesuatu yang keras 664 00:31:38,580 --> 00:31:39,810 benar-benar seperti 1 dan 0. 665 00:31:39,810 --> 00:31:40,980 Tetapi kita akan melihat orang-orang lagi. 666 00:31:40,980 --> 00:31:42,330 >> Tali, juga, tidak wujud. 667 00:31:42,330 --> 00:31:44,520 Dan itulah sebabnya saya nyatakan ia sedikit dusta putih untuk sekarang. 668 00:31:44,520 --> 00:31:46,660 Tetapi kita akan mengupas kembali bahawa lapisan tidak lama lagi. 669 00:31:46,660 --> 00:31:49,540 Tetapi untuk sekarang, rentetan adalah jujukan aksara. 670 00:31:49,540 --> 00:31:51,790 >> Sementara itu, dalam C, anda benar-benar mempunyai jenis data yang berbeza. 671 00:31:51,790 --> 00:31:53,200 Notis ini adalah kecil. 672 00:31:53,200 --> 00:31:56,960 Oleh itu, fungsi-fungsi yang anda lihat sebentar tadi fungsi yang ditulis oleh CS50 yang 673 00:31:56,960 --> 00:32:02,310 akan kembali kepada anda dengan nilai yang jatuh menjadi salah satu kategori ini. 674 00:32:02,310 --> 00:32:06,730 >> Satu lembaran menipu pasangan hanya untuk menanam benih di sini. printf tidak hanya 675 00:32:06,730 --> 00:32:08,600 mengambil% s sebagai ruang letak. 676 00:32:08,600 --> 00:32:13,490 Ia mengambil% d bagi integer perpuluhan, atau% i akan bekerja juga. 677 00:32:13,490 --> 00:32:19,450 % F terapung nilai mata. % C adalah untuk a char, jika anda mahu hanya pasangkan satu 678 00:32:19,450 --> 00:32:23,510 watak ke dalam tali diformat seperti yang kita telah lakukan, anda boleh menggunakan% c. 679 00:32:23,510 --> 00:32:28,490 >> Dan kemudian, agak annoyingly,% LLD adalah bagi yang panjang, integer perpuluhan panjang, 680 00:32:28,490 --> 00:32:31,050 yang hanya bermakna jika anda perlu benar-benar jumlah yang besar dan anda menggunakan sesuatu 681 00:32:31,050 --> 00:32:35,450 dipanggil yang lama, yang kita akan datang kembali ke dalam pset, anda boleh menggunakan% untuk LLD 682 00:32:35,450 --> 00:32:40,700 memberitahu printf, pasangkan yang benar-benar besar integer di sini dengan cara yang kedua atau 683 00:32:40,700 --> 00:32:41,830 beberapa hujah lain. 684 00:32:41,830 --> 00:32:45,700 >> Dan akhir sekali, saya berjanji bahawa ada melarikan diri yang lain beberapa 685 00:32:45,700 --> 00:32:47,670 urutan yang printf menyokong. 686 00:32:47,670 --> 00:32:49,160 Kami telah melihat backslash-n. 687 00:32:49,160 --> 00:32:50,510 Garis sendeng terbalik-r anda boleh melihat. 688 00:32:50,510 --> 00:32:51,780 Ia semacam satu perkara yang lama-sekolah. 689 00:32:51,780 --> 00:32:55,920 Jika anda pernah menggunakan mesin taip tahun sebenar yang lalu dan anda menarik pada engkol 690 00:32:55,920 --> 00:32:59,810 yang bukan sahaja berputar roda untuk bergerak barisan, ia juga memindahkan 691 00:32:59,810 --> 00:33:03,730 segala-galanya semua perjalanan pulang ke kiri, baik, backslash-r hanya 692 00:33:03,730 --> 00:33:06,480 dasarnya bergerak ke belakang kursor anda ke permulaan baris 693 00:33:06,480 --> 00:33:07,830 tanpa bergerak ke bawah. 694 00:33:07,830 --> 00:33:09,780 Tetapi sekali lagi, lebih pada itu, mungkin, pada masa hadapan. 695 00:33:09,780 --> 00:33:13,670 >> Garis sendeng terbalik-quote, quote backslash-dua, backslash backslash-adalah 696 00:33:13,670 --> 00:33:16,600 penyelesaian untuk teka-teki kecil sedikit Saya katakan sebelum ini. 697 00:33:16,600 --> 00:33:18,920 Dan garis sendeng terbalik-0 sebenarnya agak menarik. 698 00:33:18,920 --> 00:33:21,470 Tetapi kita akan kembali ke yang tidak lama lagi. 699 00:33:21,470 --> 00:33:25,640 >> Jadi biarlah saya pergi ke dalam, kini, CS50 perkakas, dan membiarkan sebenarnya kita buat 700 00:33:25,640 --> 00:33:28,930 cepat memanaskan badan dengan satu contoh kami tidak sudah dan kemudian beralih kepada 701 00:33:28,930 --> 00:33:31,160 sesuatu yang lebih kompleks. 702 00:33:31,160 --> 00:33:34,980 Jadi jika saya membuka program saya dipanggil gedit - 703 00:33:34,980 --> 00:33:36,840 ini adalah editor grafik saya. 704 00:33:36,840 --> 00:33:38,460 Dan saya boleh berbuat demikian - 705 00:33:38,460 --> 00:33:39,820 biarlah saya menutup tetingkap yang ada - 706 00:33:39,820 --> 00:33:42,720 melalui ikon ini ke sini, gedit, di bahagian bawah kiri 707 00:33:42,720 --> 00:33:44,170 sudut sebelah menu. 708 00:33:44,170 --> 00:33:48,670 >> Saya akan pergi ke hadapan dan maju, dan menyelamatkan contoh ini ke dalam, berkata, John 709 00:33:48,670 --> 00:33:49,660 Folder Harvard. 710 00:33:49,660 --> 00:33:52,690 Folder John Harvard hanya rumahnya direktori di mana semua fail hidup 711 00:33:52,690 --> 00:33:53,340 secara lalai. 712 00:33:53,340 --> 00:33:58,410 Dan saya akan untuk menyelamatkan ini sebagai fail yang dipanggil hello-0.c. 713 00:33:58,410 --> 00:34:01,260 Dan saya telah memilih nama ini hanya supaya ia garis dengan kod sampel pada 714 00:34:01,260 --> 00:34:04,210 kursus laman web ini dan di Video YouTube dalam talian. 715 00:34:04,210 --> 00:34:06,320 >> Jadi sekarang saya akan mula menulis program pertama saya. 716 00:34:06,320 --> 00:34:08,469 Biar saya mengezum masuk untuk kebolehbacaan. 717 00:34:08,469 --> 00:34:12,760 Dan saya akan pergi ke hadapan dan mengatakan int tidak sah utama, yang hanya suka bahawa 718 00:34:12,760 --> 00:34:14,900 sekeping teka-teki kuning yang bermula program. 719 00:34:14,900 --> 00:34:18,290 Saya telah mendapat ke tabiat itu sejak tahun pembukaan bersedia saya kerinting, maka 720 00:34:18,290 --> 00:34:22,000 juga menutup dan kemudian akan kembali ke di mana saya mahu meletakkan kod saya, hanya 721 00:34:22,000 --> 00:34:24,630 kerana ia membantu saya menyimpan semua seimbang, terutama kerana saya 722 00:34:24,630 --> 00:34:25,880 program mendapat lama. 723 00:34:25,880 --> 00:34:29,239 >> Dan kini, di sini, saya akan pergi ke hadapan dan berkata, printf, quote unquote, 724 00:34:29,239 --> 00:34:34,330 hello dunia, backslash-n, quote rapat, kurung penutup, koma bertitik. 725 00:34:34,330 --> 00:34:38,100 Jadi saya hanya mengulangi segala yang kita telah telah mengambil untuk diberikan setakat ini. 726 00:34:38,100 --> 00:34:39,270 Sekarang saya akan untuk zum keluar. 727 00:34:39,270 --> 00:34:43,030 >> Dan tingkap terminal ini ke sini, apa saya dibenarkan untuk dilakukan di hitam ini 728 00:34:43,030 --> 00:34:44,389 dan tingkap putih? 729 00:34:44,389 --> 00:34:46,977 Apa yang boleh saya menggunakannya untuk? 730 00:34:46,977 --> 00:34:49,770 Jadi, ini adalah di mana saya menjalankan arahan dan di mana saya boleh menyusun sesuatu. 731 00:34:49,770 --> 00:34:50,620 Dan saya akan pastikan ia mudah. 732 00:34:50,620 --> 00:34:52,780 Saya akan menggunakan program Buat yang dipanggil, yang tidak 733 00:34:52,780 --> 00:34:54,020 teknikal compiler. 734 00:34:54,020 --> 00:34:56,360 Dipanggil dilafaz yang mengkompilasi, tetapi kita akan kembali kepada bahawa dalam 735 00:34:56,360 --> 00:34:57,190 minggu atau masa dua ini. 736 00:34:57,190 --> 00:35:03,410 >> Buat masa ini, saya hanya akan membuat menaip hello-0, Tetapi mereka yang telah 737 00:35:03,410 --> 00:35:07,050 membandingkan dalam minda anda apa yang saya ditaip dengan apa yang saya sepatutnya ditaip boleh 738 00:35:07,050 --> 00:35:10,180 sudah tahu yang saya lakukan sesuatu yang tidak kena di sini. 739 00:35:10,180 --> 00:35:12,160 Kini, terdapat dengan jelas beberapa kesilapan. 740 00:35:12,160 --> 00:35:16,742 Sebelum saya juga melihat apa yang mereka, apa-apa pemikiran tentang apa yang saya lakukan salah? 741 00:35:16,742 --> 00:35:18,590 >> PELAJAR: [INTERPOSING suara]. 742 00:35:18,590 --> 00:35:18,840 >> DAVID MALAN: Ya. 743 00:35:18,840 --> 00:35:20,640 Saya hilang file kepala perpustakaan. 744 00:35:20,640 --> 00:35:24,240 Mana-mana. H fail dipanggil header fail, dan mereka secara kolektif 745 00:35:24,240 --> 00:35:25,680 tergolong dalam perkara-perkara yang dipanggil perpustakaan. 746 00:35:25,680 --> 00:35:28,030 Perpustakaan hanya ketulan kod bahawa orang lain menulis. 747 00:35:28,030 --> 00:35:32,140 Jadi [standard? i?] perpustakaan adalah koleksi fail yang mengandungi kod 748 00:35:32,140 --> 00:35:33,330 bahawa orang lain menulis. 749 00:35:33,330 --> 00:35:34,820 >> Jadi, saya hilang itu. 750 00:35:34,820 --> 00:35:36,520 Jadi mengapa saya mendapat satu kesilapan? 751 00:35:36,520 --> 00:35:40,840 Baiklah, biar saya tatal kembali dalam tetingkap terminal saya di sini. 752 00:35:40,840 --> 00:35:44,310 Dan malangnya, dalam C, seperti dalam banyak bahasa pengaturcaraan, terutamanya 753 00:35:44,310 --> 00:35:47,830 jika itu semua baru untuk anda, kesilapan mesej yang tepat, tetapi mereka juga 754 00:35:47,830 --> 00:35:48,620 agak samar. 755 00:35:48,620 --> 00:35:51,720 Dan kesilapan di sini, dalam merah, "Tersirat mengisytiharkan fungsi perpustakaan 756 00:35:51,720 --> 00:35:57,660 printf dengan jenis, "dan kemudian ia skrol ke baris seterusnya, "int malar char *, 757 00:35:57,660 --> 00:36:00,220 ... "Ia hanya akan benar-benar besar dengan cepat. 758 00:36:00,220 --> 00:36:04,420 >> Tetapi apa yang anda perlu bermula untuk berbuat demikian, jika, sekali lagi, baru kepada semua ini, adalah hanya untuk 759 00:36:04,420 --> 00:36:06,010 mula mencari kata kunci. 760 00:36:06,010 --> 00:36:08,770 Jelas sekali, saya tidak mungkin memahami separuh kata-kata yang saya lihat hanya lagi. 761 00:36:08,770 --> 00:36:10,140 Anda akan, walaupun, dalam masa seminggu. 762 00:36:10,140 --> 00:36:11,230 Tetapi saya melihat printf. 763 00:36:11,230 --> 00:36:14,310 Dan yang perlu bermula, lama lagi, untuk berjoging memori anda, semua hak, printf. 764 00:36:14,310 --> 00:36:15,210 Sesuatu yang tidak kena dengan printf. 765 00:36:15,210 --> 00:36:16,580 Adakah saya mengeja ia salah? 766 00:36:16,580 --> 00:36:18,130 Tidak, ia tidak kelihatan seperti - oh. 767 00:36:18,130 --> 00:36:21,350 Saya tidak boleh menggunakan melainkan saya mengajar pengkompil bahawa ia wujud. 768 00:36:21,350 --> 00:36:25,220 Dan sebagainya, sekali lagi, pergi dengan naluri anda, walaupun anda tidak benar-benar memahami 769 00:36:25,220 --> 00:36:26,510 mesej ralat sebenar. 770 00:36:26,510 --> 00:36:30,240 >> Dan sesungguhnya, penyelesaian di sini adalah untuk hanya termasuk di bahagian atas fail 771 00:36:30,240 --> 00:36:34,340 seperti itu, resaving fail saya dengan Kawalan-S atau menu Fail. 772 00:36:34,340 --> 00:36:36,730 Dan jika saya kini kembali ke sini, Saya akan menjelaskan ini. 773 00:36:36,730 --> 00:36:39,150 Kawalan-L adalah hanya cara yang baik untuk mengosongkan skrin. 774 00:36:39,150 --> 00:36:44,870 Dan kemudian saya akan menaip "membuat hello 0 "Masukkan, dan kini saya masih melihat 775 00:36:44,870 --> 00:36:47,710 urutan samar simbol, tetapi kita akan kembali kepada itu. 776 00:36:47,710 --> 00:36:49,230 Itulah yang Buat lakukan untuk anda. 777 00:36:49,230 --> 00:36:52,590 Ia mengautomasikan proses mengambil arahan agak menjengkelkan melibatkan 778 00:36:52,590 --> 00:36:54,050 Dilafaz, pengkompil sebenar. 779 00:36:54,050 --> 00:36:57,460 Tetapi hakikat bahawa saya tiada kesilapan bermakna bahawa perkara ini harus bekerja. 780 00:36:57,460 --> 00:37:00,630 >> Jadi, saya kini akan lakukan - biarlah saya mengezum masuk lagi - 781 00:37:00,630 --> 00:37:07,070 ./hello-0 Masukkan, dan sesungguhnya, saya melihat "Hello, dunia." Jadi mari kita kini meningkatkan 782 00:37:07,070 --> 00:37:12,105 ini pernah jadi sedikit hanya untuk meniru langkah-langkah yang kita dimaksudkan. 783 00:37:12,105 --> 00:37:15,370 Saya akan menukar nama ini dengan Simpan Sebagai untuk hello1.c. 784 00:37:15,370 --> 00:37:20,300 Dan sekarang saya akan mengisytiharkan pembolehubah dipanggil nama, jadi nama tali, 785 00:37:20,300 --> 00:37:23,420 dan saya akan meletakkan di dalamnya nilai quote-unquote 786 00:37:23,420 --> 00:37:27,030 D-A-V-I-D dekat quote koma bertitik. 787 00:37:27,030 --> 00:37:31,150 Dan sekarang saya akan menggantikan "dunia" dengan apa placeholder untuk rentetan? 788 00:37:31,150 --> 00:37:32,200 % S. 789 00:37:32,200 --> 00:37:35,040 >> Dan kini, berapa banyak hujah-hujah yang perlu printf mengambil masa ini? 790 00:37:35,040 --> 00:37:35,700 Jadi kedua-duanya. 791 00:37:35,700 --> 00:37:37,090 Jadi saya pergi ke luar daripada petikan. 792 00:37:37,090 --> 00:37:39,330 Saya menaip "nama" selepas koma. 793 00:37:39,330 --> 00:37:41,550 Tetapi saya telah melakukan sesuatu yang lain salah masa ini. 794 00:37:41,550 --> 00:37:43,940 Tetapi mari kita andaikan bahawa saya tidak menyedari bahawa yet. 795 00:37:43,940 --> 00:37:44,910 Biar saya pergi di sini. 796 00:37:44,910 --> 00:37:48,850 >> Dan notis, juga, saya mendapat sedikit bosan dengan menaip "membuat hello 0" semua 797 00:37:48,850 --> 00:37:50,180 masa, "membuat" dan semua ini. 798 00:37:50,180 --> 00:37:53,270 Jadi, ternyata, dalam Linus anda boleh sering melanda arrow Up pada anda 799 00:37:53,270 --> 00:37:56,850 papan kekunci, dan anda sebenarnya boleh menatal melalui semua arahan yang saya telah 800 00:37:56,850 --> 00:37:58,830 dilaksanakan sebelum ini hanya sekarang. 801 00:37:58,830 --> 00:38:02,040 Jadi, jika saya berbuat demikian, Up, Up, ada membuat hello 0. 802 00:38:02,040 --> 00:38:02,610 Saya tidak mahu itu. 803 00:38:02,610 --> 00:38:05,450 Saya hanya mahu untuk menukar bahawa untuk hello 1 kali ini, Enter. 804 00:38:05,450 --> 00:38:07,620 Akhirnya, yang akan menjimatkan masa. 805 00:38:07,620 --> 00:38:08,150 >> Baiklah. 806 00:38:08,150 --> 00:38:09,520 Malangnya, ada yang ralat. 807 00:38:09,520 --> 00:38:10,980 Jadi biarlah saya tatal ke atas. 808 00:38:10,980 --> 00:38:13,120 Ini kelihatan seperti saya benar-benar disembelih program ini. 809 00:38:13,120 --> 00:38:16,530 Maksud saya, Tuhan saya, ia adalah dua baris kod, dan 10 baris daripada kesilapan. 810 00:38:16,530 --> 00:38:18,800 Tetapi melihat yang pertama atas. 811 00:38:18,800 --> 00:38:21,640 Gunakan tali pengecam tidak diisytiharkan. 812 00:38:21,640 --> 00:38:23,270 Adakah saya maksudkan standard i n? 813 00:38:23,270 --> 00:38:23,930 Tidak, saya tidak. 814 00:38:23,930 --> 00:38:24,940 Saya maksudkan tali. 815 00:38:24,940 --> 00:38:29,390 >> Tetapi di manakah pembolehubah rentetan Jenis diisytiharkan, DD kita katakan? 816 00:38:29,390 --> 00:38:30,730 Jadi ia adalah dalam CS50 perpustakaan. 817 00:38:30,730 --> 00:38:33,740 Jadi ia tidak mencukupi, dalam pertama beberapa minggu, hanya untuk menggunakan 818 00:38:33,740 --> 00:38:34,860 apa C memberikan kita. 819 00:38:34,860 --> 00:38:38,120 Saya juga akan pergi di sini, dan saya boleh meletakkan ia di atas atau di bawah, tetapi saya akan 820 00:38:38,120 --> 00:38:40,340 hanya menyimpan ia abjad untuk menjaga perkara yang teratur. 821 00:38:40,340 --> 00:38:43,470 Saya akan termasuk cs50.h, yang pra-dipasang untuk 822 00:38:43,470 --> 00:38:44,900 anda pada perkakas CS50. 823 00:38:44,900 --> 00:38:47,640 Dan ia adalah sumber terbuka, jadi walaupun orang di internet boleh menggunakannya pada mereka 824 00:38:47,640 --> 00:38:48,450 komputer sendiri. 825 00:38:48,450 --> 00:38:50,700 Tetapi ia datang dengan perkakas CS50. 826 00:38:50,700 --> 00:38:55,320 >> Jadi sekarang biarlah saya kembali dan susun semula ini dengan membuat hello 1. 827 00:38:55,320 --> 00:38:55,710 Celaka. 828 00:38:55,710 --> 00:38:57,240 Masih satu lagi kesilapan. 829 00:38:57,240 --> 00:38:59,370 Biar saya tatal ke atas yang pertama, walaupun. 830 00:38:59,370 --> 00:39:00,630 Yang ini agak kompleks. 831 00:39:00,630 --> 00:39:03,830 Multi watak-watak yang berterusan. 832 00:39:03,830 --> 00:39:04,890 Itu tidak membantu saya. 833 00:39:04,890 --> 00:39:08,220 Tetapi notis, dilafaz adalah sekurang-kurangnya sedikit agak baik, di mana dengan sedikit 834 00:39:08,220 --> 00:39:11,890 hijau tanda sisipan simbol, ia berkata di sini adalah di mana saya kacau sehingga. 835 00:39:11,890 --> 00:39:16,160 Mengapa ia menunjuk, dengan sedikit hijau arrow, untuk quote tunggal seterusnya 836 00:39:16,160 --> 00:39:18,290 kepada nama saya? 837 00:39:18,290 --> 00:39:20,880 >> Jadi ini adalah salah satu perkara yang anda hanya digunakan untuk mendapatkan, terutamanya jika anda telah 838 00:39:20,880 --> 00:39:23,980 pengaturcaraan dalam Python, atau JavaScript, atau bahasa lain yang terperinci ini 839 00:39:23,980 --> 00:39:24,560 tidak mengapa. 840 00:39:24,560 --> 00:39:25,740 Dalam C, ia tidak perkara itu. 841 00:39:25,740 --> 00:39:29,520 Jika anda sedang mengisytiharkan tali, yang merupakan urutan 0 atau lebih watak-watak, 842 00:39:29,520 --> 00:39:32,280 anda sebenarnya perlu menggunakan tanda petikan berganda. 843 00:39:32,280 --> 00:39:36,670 Jadi saya benar-benar perlu untuk menukar kembali ini untuk membuka quote, menutup quote, dengan 844 00:39:36,670 --> 00:39:37,800 petikan berganda. 845 00:39:37,800 --> 00:39:41,610 Petikan tunggal mempunyai tempat mereka, tetapi hanya apabila anda menggunakan individu 846 00:39:41,610 --> 00:39:44,100 aksara, tetapi lebih kepada yang masa yang lain. 847 00:39:44,100 --> 00:39:46,550 Buat masa ini, tanda petikan berganda perlu. 848 00:39:46,550 --> 00:39:50,460 >> Jadi sekarang, biarlah saya kembali ke terminal saya tingkap, membuat hello 1. 849 00:39:50,460 --> 00:39:51,450 Dan siapa yang yakin? 850 00:39:51,450 --> 00:39:53,800 Adakah program ini sekarang akan untuk menyusun dengan betul? 851 00:39:53,800 --> 00:39:58,250 852 00:39:58,250 --> 00:39:58,540 OK. 853 00:39:58,540 --> 00:39:59,780 Jadi kami bertiga rasa ini. 854 00:39:59,780 --> 00:40:00,280 Baiklah. 855 00:40:00,280 --> 00:40:01,190 Enter. 856 00:40:01,190 --> 00:40:02,440 Dan ia sebenarnya tidak. 857 00:40:02,440 --> 00:40:05,130 Jadi tidak ada kesilapan masa ini, walaupun walaupun program ini yang mendapat sedikit 858 00:40:05,130 --> 00:40:05,840 lebih kompleks. 859 00:40:05,840 --> 00:40:10,110 Jika saya kini melakukan dot slash hello 1, Enter, ia akan berkata "hello, Daud." 860 00:40:10,110 --> 00:40:11,750 >> Tetapi mari kita buat lelaran ketiga ini, di mana 861 00:40:11,750 --> 00:40:13,380 program yang benar-benar dinamik. 862 00:40:13,380 --> 00:40:16,770 Biar saya pergi ke hadapan dan mengubah fail nama, hanya untuk konsisten dengan 863 00:40:16,770 --> 00:40:20,410 fail yang anda akan telah disediakan kepada anda kemudian dalam talian. 864 00:40:20,410 --> 00:40:21,620 Enter. 865 00:40:21,620 --> 00:40:25,510 Dan sekarang saya akan pergi dan tidak menyimpan "David" keras berkod di sini. 866 00:40:25,510 --> 00:40:28,826 Apa yang saya boleh lakukan untuk sangat mudah meningkatkan program ini? 867 00:40:28,826 --> 00:40:30,520 >> Saya boleh memanggil getstring. 868 00:40:30,520 --> 00:40:33,240 Ia mungkin yang sedikit tidak jelas adalah akan berlaku, jadi saya akan 869 00:40:33,240 --> 00:40:38,470 untuk benar-benar menambah satu lagi talian, printf, dan menyebut nama, kolon, quote dekat, hanya 870 00:40:38,470 --> 00:40:40,790 untuk memberikan pengguna dengan segera pada skrin. 871 00:40:40,790 --> 00:40:42,980 Dan sekarang saya akan pergi di sini, dan saya akan menggunakan jalan pintas papan kekunci saya. 872 00:40:42,980 --> 00:40:47,680 Saya akan pergi Up, Up, dan menukar hello 1 hello 2, Enter. 873 00:40:47,680 --> 00:40:49,260 Dan bersyukur, saya membuat kemajuan. 874 00:40:49,260 --> 00:40:52,720 >> Dan sekarang saya akan naik ke titik slash khabar dan 875 00:40:52,720 --> 00:40:54,690 perubahan itu kepada 2, Enter. 876 00:40:54,690 --> 00:40:55,650 Dan kini program saya - 877 00:40:55,650 --> 00:40:57,700 Saya akan zoom in - semakin sedikit lebih cantik. 878 00:40:57,700 --> 00:41:02,190 Nama akan menjadi, katakan Rob masa ini, Masukkan, hello, Rob. 879 00:41:02,190 --> 00:41:03,260 Kami boleh melakukannya sekali lagi. 880 00:41:03,260 --> 00:41:05,360 Nama, Lauren, Enter. 881 00:41:05,360 --> 00:41:07,820 Nama, Joseph, Enter. 882 00:41:07,820 --> 00:41:11,596 Nama, mari kita cuba untuk menjadi sukar, Enter. 883 00:41:11,596 --> 00:41:12,410 Eh. 884 00:41:12,410 --> 00:41:14,680 Ia tidak benar-benar bug. 885 00:41:14,680 --> 00:41:16,090 Jadi ia hanya hodoh sedikit. 886 00:41:16,090 --> 00:41:18,640 Jadi mungkin kita boleh menyelesaikan masalah ini pada masa depan, bukan sekarang. 887 00:41:18,640 --> 00:41:20,840 >> Tetapi bagaimana akan anda naluri pergi tentang menangani 888 00:41:20,840 --> 00:41:21,990 bahawa cabaran tertentu? 889 00:41:21,990 --> 00:41:23,710 Ia hanya kelihatan bodoh. 890 00:41:23,710 --> 00:41:27,320 Bagaimana anda mengelakkan perkara-perkara mencari bodoh? 891 00:41:27,320 --> 00:41:29,890 Jadi, kita boleh lakukan, OK, saya mendengar beberapa perkara, keadaan dan gelung. 892 00:41:29,890 --> 00:41:33,340 Kita boleh menggunakan, satu, syarat, untuk memeriksa apa yang panjang rentetan 893 00:41:33,340 --> 00:41:34,190 pengguna memberikan kita? 894 00:41:34,190 --> 00:41:37,100 Dan jika ia adalah 0, ia hanya quote unquote, mereka hanya tekan Enter, maka 895 00:41:37,100 --> 00:41:38,930 mungkin saya patut menjerit pada mereka dan meminta mereka lagi. 896 00:41:38,930 --> 00:41:39,970 Tetapi bagaimana yang meminta mereka lagi? 897 00:41:39,970 --> 00:41:44,230 Nah, saya juga mendengar gelung, dan saya boleh melakukannya sekali lagi dan lagi dan lagi 898 00:41:44,230 --> 00:41:47,010 mendorong pengguna untuk perkara yang sama. 899 00:41:47,010 --> 00:41:48,880 >> Nah, mari kita buat satu contoh lain menggunakan yang berbeza 900 00:41:48,880 --> 00:41:50,620 fungsi di perpustakaan CS50. 901 00:41:50,620 --> 00:41:52,330 Izinkan saya menutup fail ini. 902 00:41:52,330 --> 00:41:53,510 Izinkan saya membuat yang baru. 903 00:41:53,510 --> 00:41:58,510 Dan saya akan memanggilnya adder.c, hanya kerana ia adalah mudah untuk melakukan aritmetik mudah, 904 00:41:58,510 --> 00:42:00,890 walaupun ini akan benar-benar underwhelming dengan apa yang anda boleh lakukan 905 00:42:00,890 --> 00:42:02,250 dengan mana-mana komputer moden. 906 00:42:02,250 --> 00:42:03,750 >> Tetapi biarlah saya pergi ke hadapan sekarang dan - 907 00:42:03,750 --> 00:42:10,680 Saya belajar pelajaran saya masa lalu - termasuk cs50.h, termasuk stdio.h, int 908 00:42:10,680 --> 00:42:14,170 tidak sah utama, yang, buat masa ini, saya akan hanya mengambil iman buta, tetapi kita akan menganggap 909 00:42:14,170 --> 00:42:16,380 yang akan memahami apa ini bermakna tidak lama lagi. 910 00:42:16,380 --> 00:42:21,030 Dan saya akan mengatakan sesuatu seperti "memberi saya int an." 911 00:42:21,030 --> 00:42:22,140 >> Dan kini, bagaimana saya boleh mendapatkan int an? 912 00:42:22,140 --> 00:42:26,820 Saya mahu akhirnya mengisytiharkan pembolehubah dipanggil x jenis int 913 00:42:26,820 --> 00:42:29,240 menyimpan dalam suatu integer dari pengguna. 914 00:42:29,240 --> 00:42:29,970 Jadi itu adalah hal yg penting. 915 00:42:29,970 --> 00:42:35,680 Tetapi jika seseorang mahu untuk mencadangkan, bagaimana saya mengisytiharkan integer dipanggil x? 916 00:42:35,680 --> 00:42:36,310 X Int. 917 00:42:36,310 --> 00:42:37,430 >> Jadi ia benar-benar adalah mudah itu. 918 00:42:37,430 --> 00:42:38,240 Berikan saya int an. 919 00:42:38,240 --> 00:42:39,070 Memanggilnya x. 920 00:42:39,070 --> 00:42:40,580 Sekarang saya menggunakan operator tugasan. 921 00:42:40,580 --> 00:42:43,400 Dan bagaimana saya menyimpan daripada meninggalkan nilai pengguna? 922 00:42:43,400 --> 00:42:47,310 Saya tidak mahu untuk memanggil getstring, jelas, tetapi getint. 923 00:42:47,310 --> 00:42:49,060 Mana-mana hujah? 924 00:42:49,060 --> 00:42:49,350 No 925 00:42:49,350 --> 00:42:51,870 Jadi ia terbuka paren, paren berhampiran serta-merta, dan kemudian 926 00:42:51,870 --> 00:42:53,440 koma bertitik berakhir baris. 927 00:42:53,440 --> 00:42:54,930 >> Sekarang biarlah saya melakukan ini lagi. 928 00:42:54,930 --> 00:42:57,070 Berikan saya int lain. 929 00:42:57,070 --> 00:43:01,850 Kali ini saya akan melakukan int, mari kita memanggilnya y, sama getint. 930 00:43:01,850 --> 00:43:05,060 Dan sekarang biarlah saya melakukan sesuatu yang super-mudah seperti beberapa matematik. 931 00:43:05,060 --> 00:43:14,340 Jadi printf, jumlah% d adalah placeholder untuk int an. 932 00:43:14,340 --> 00:43:20,030 Dan% d, tempoh, backslash-n. 933 00:43:20,030 --> 00:43:20,360 >> Baiklah. 934 00:43:20,360 --> 00:43:21,670 Jadi itu bukan sebenarnya matematik. 935 00:43:21,670 --> 00:43:25,500 Tetapi jika saya mahu mengatakan jumlah ini nilai ditambah nilai ini sama ini 936 00:43:25,500 --> 00:43:29,320 nilai yang lain, berapa banyak hujah ke jumlah yang perlu saya akan memberi printf, 937 00:43:29,320 --> 00:43:30,520 akhirnya? 938 00:43:30,520 --> 00:43:31,420 Jadi empat, bukan? 939 00:43:31,420 --> 00:43:33,790 Rentetan ini dan kemudian tiga nilai. 940 00:43:33,790 --> 00:43:37,560 Jadi x adalah yang pertama saya mahu menjadi dipasang pertama ke% d. 941 00:43:37,560 --> 00:43:39,270 y akan menjadi yang seterusnya. 942 00:43:39,270 --> 00:43:42,030 >> Dan kini saya jenis mahu mengatakan z, z tetapi tidak wujud. 943 00:43:42,030 --> 00:43:43,190 Tetapi itu bukan satu masalah besar. 944 00:43:43,190 --> 00:43:45,440 Kerana apa yang anda akan lakukan dengan naluri, terutamanya jika anda mempunyai 945 00:43:45,440 --> 00:43:47,820 grafik kalkulator, apa yang anda menaip? 946 00:43:47,820 --> 00:43:48,760 Bagaimana kira-kira x campur y? 947 00:43:48,760 --> 00:43:50,200 Jadi ia bukan satu pembolehubah sebenar. 948 00:43:50,200 --> 00:43:51,820 Ia hanya sejumlah dua pembolehubah lain. 949 00:43:51,820 --> 00:43:53,170 Dan yang sempurna yang sah. 950 00:43:53,170 --> 00:43:56,630 C pasti memahami mudah aritmetik seperti ini. 951 00:43:56,630 --> 00:43:58,450 >> Koma bertitik, menjimatkan. 952 00:43:58,450 --> 00:44:02,080 Sekarang saya akan turun di sini dan menaip membuat penambah, Enter. 953 00:44:02,080 --> 00:44:04,100 Tiada kesilapan, supaya kemajuan juga. 954 00:44:04,100 --> 00:44:04,890 Taip penambah. 955 00:44:04,890 --> 00:44:07,100 Dan satu lagi jalan pintas papan kekunci, jika anda mula bosan 956 00:44:07,100 --> 00:44:08,760 dengan semua arahan - 957 00:44:08,760 --> 00:44:12,650 jika anda mula menaip arahan, seperti dot mengurangkan iklan, dan di mana anda 958 00:44:12,650 --> 00:44:16,020 kebosanan menendang, anda biasanya boleh mencecah Tab untuk mempunyai komputer menyelesaikan 959 00:44:16,020 --> 00:44:20,510 berehat frasa untuk anda jika ia tidak samar-samar apa yang harus datang selepas iklan. 960 00:44:20,510 --> 00:44:23,950 >> Jadi biarlah saya pergi ke hadapan sekarang dan anda klik Masuk. 961 00:44:23,950 --> 00:44:27,490 Berikan saya int, 1, 2, dan bersyukur, ia adalah 3. 962 00:44:27,490 --> 00:44:29,900 Tetapi seperti biasa, menguji program tidak perlu untuk mengurangkan 963 00:44:29,900 --> 00:44:30,820 hanya cuba sekali. 964 00:44:30,820 --> 00:44:35,560 Biar saya cuba kes sudut, seperti negatif 1, memberi saya 1, dan yang satu 965 00:44:35,560 --> 00:44:36,210 cek keluar juga. 966 00:44:36,210 --> 00:44:38,870 Dan saya mungkin mahu melakukan lebih ujian yang ketat, tetapi saya cukup 967 00:44:38,870 --> 00:44:40,630 selesa dengan mana itu di. 968 00:44:40,630 --> 00:44:43,110 >> Nah, sekarang mari kita cuba program lain kali ini menggunakan 969 00:44:43,110 --> 00:44:44,620 sedikit sintaks lain. 970 00:44:44,620 --> 00:44:46,100 Izinkan saya membuat fail baru. 971 00:44:46,100 --> 00:44:51,050 Saya akan panggil conditions0.c ini untuk beratur dengan beberapa kod dalam talian sampel. 972 00:44:51,050 --> 00:44:55,550 Dan biarlah saya pergi ke hadapan dan melakukan termasuk cs50.h, termasuk 973 00:44:55,550 --> 00:45:00,320 stdio.h, dalam tidak sah utama - 974 00:45:00,320 --> 00:45:01,030 OK. 975 00:45:01,030 --> 00:45:01,850 Ada kita pergi. 976 00:45:01,850 --> 00:45:03,010 Kami mempunyai boilerplate standard kami. 977 00:45:03,010 --> 00:45:08,170 >> Dan kali ini saya akan mengatakan printf, "Saya ingin satu int, sila," hanya untuk 978 00:45:08,170 --> 00:45:10,030 membuat segera sedikit lebih mesra. 979 00:45:10,030 --> 00:45:11,620 Dan kini saya ingin mendapatkan int dari pengguna. 980 00:45:11,620 --> 00:45:15,010 Saya akan memanggilnya n masa ini, hanya kerana n bunyi seperti nombor. 981 00:45:15,010 --> 00:45:18,140 getint, dan sekarang, apa yang Saya mahu lakukan dengan ia? 982 00:45:18,140 --> 00:45:21,640 Nah, jika n - dan saya akan zoom in - 983 00:45:21,640 --> 00:45:25,930 jika n adalah lebih besar daripada 0, saya ingin untuk melakukan perkara berikut - 984 00:45:25,930 --> 00:45:36,060 printf "Anda mengambil nombor positif." Yang lain, saya akan menaip printf "Anda 985 00:45:36,060 --> 00:45:37,870 mengambil yang negatif 986 00:45:37,870 --> 00:45:39,650 nombor. "Baiklah. 987 00:45:39,650 --> 00:45:44,410 Jadi program ini, walaupun saya telah melakukannya cepat, kelihatan betul sintaksis. 988 00:45:44,410 --> 00:45:45,010 Biar saya cuba ini. 989 00:45:45,010 --> 00:45:46,890 Membuat keadaan 0. 990 00:45:46,890 --> 00:45:47,710 Seolah-olah berjalan. 991 00:45:47,710 --> 00:45:49,230 Keadaan 0, masuk. 992 00:45:49,230 --> 00:45:51,910 Mari kita memberikan satu int 50. 993 00:45:51,910 --> 00:45:53,160 Saya mengambil nombor positif. 994 00:45:53,160 --> 00:45:54,230 Mari kita cuba sekali lagi. 995 00:45:54,230 --> 00:45:54,930 Keadaan 0. 996 00:45:54,930 --> 00:45:56,260 Negatif 50. 997 00:45:56,260 --> 00:45:57,290 Saya mengambil nombor negatif. 998 00:45:57,290 --> 00:46:00,350 >> Tetapi sekarang, saya mengambil apa yang kita akan terus memanggil mana-mana sudut, yang lebih 999 00:46:00,350 --> 00:46:04,702 satu kes yang menarik yang anda fikir mungkin memberi anda beberapa masalah, 0. 1000 00:46:04,702 --> 00:46:07,940 Sekarang, saya cukup pasti ini adalah salah satu kes-kes di mana sudut sifar 1001 00:46:07,940 --> 00:46:12,330 tidak positif atau negatif, jadi saya program, walaupun dalam sintaksis 1002 00:46:12,330 --> 00:46:15,440 betul - ia menyusun, ia berjalan - secara logiknya tidak betul. 1003 00:46:15,440 --> 00:46:21,050 Jadi apa yang menetapkan yang mudah di sini jika saya mahu untuk mengesan, jika saya mahu untuk mengendalikan n 1004 00:46:21,050 --> 00:46:23,840 sama dengan 0 berasingan? 1005 00:46:23,840 --> 00:46:32,980 >> Jadi, jika n sama dengan 0, maka saya ingin katakan sesuatu seperti printf "Anda dipilih 0." 1006 00:46:32,980 --> 00:46:33,990 Biar saya cuba ini sekarang. 1007 00:46:33,990 --> 00:46:38,320 Biar saya kembali di sini, jelas tingkap saya, dan susun semula. 1008 00:46:38,320 --> 00:46:38,690 Hm. 1009 00:46:38,690 --> 00:46:39,770 Satu kesilapan menjana. 1010 00:46:39,770 --> 00:46:41,630 Tetapi saya yang anda mahu untuk memeriksa jika n sama dengan 0. 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> Jadi sekali lagi, satu lagi perkara yang bodoh untuk mendapatkan digunakan untuk, tanda sama adalah 1013 00:46:47,720 --> 00:46:48,910 pengendali tugasan. 1014 00:46:48,910 --> 00:46:52,240 Jadi ini adalah sebenarnya kesilapan itu, teknikal, walaupun pengkompil 1015 00:46:52,240 --> 00:46:56,450 dilindungi saya daripada diri saya sendiri, kita akan teknikal akan menyalin 0 ke n, yang 1016 00:46:56,450 --> 00:46:57,590 tidak apa yang saya mahu. 1017 00:46:57,590 --> 00:47:00,950 Saya mahu menguji untuk kesaksamaan dengan sama sama. 1018 00:47:00,950 --> 00:47:03,390 Dan sebagainya yang kini mungkin penyelesaian saya lebih baik. 1019 00:47:03,390 --> 00:47:07,810 >> Biar saya sebenarnya resave ini sebagai, berkata, conditions1, untuk menjadi baru dan lebih baik. 1020 00:47:07,810 --> 00:47:10,480 Jadi sekarang jika saya susun semula ini, ia akan membuat syarat - 1021 00:47:10,480 --> 00:47:16,960 Oops - membuat conditions1 dot slash conditions1, Masukkan, "Saya ingin int an, 1022 00:47:16,960 --> 00:47:18,760 please. "Saya akan pergi hadapan dan menaip 50. 1023 00:47:18,760 --> 00:47:19,660 Ia masih baik. 1024 00:47:19,660 --> 00:47:21,200 Negatif 50, masih baik. 1025 00:47:21,200 --> 00:47:24,920 0, dan ia, sesungguhnya, dikesan yang saya meningkat 0. 1026 00:47:24,920 --> 00:47:28,200 >> Jadi apa lagi yang boleh saya lakukan sekarang dengan ini? 1027 00:47:28,200 --> 00:47:32,280 Nah, kita pasti boleh melakukan semakin perkara-perkara yang kompleks. 1028 00:47:32,280 --> 00:47:37,240 Tetapi apa yang saya ingin mencadangkan adalah bahawa kita berakhir pada nota ini di sini. 1029 00:47:37,240 --> 00:47:41,680 Jika kita tarik ke atas ini, anda akan melihat, mungkin, kartun kegemaran anda 1030 00:47:41,680 --> 00:47:43,326 sehingga hari ini anda mungkin tidak pernah difahami. 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 Dan itu tentang kualiti ketawa anda perlu mendapatkan dengan jenaka CS. 1033 00:47:49,520 --> 00:47:51,060 Jadi itu kira-kira yang betul. 1034 00:47:51,060 --> 00:47:54,900 >> Tetapi yang lebih compellingly, saya fikir saya akan memberi kita penggoda sedikit untuk hari ini. 1035 00:47:54,900 --> 00:47:56,430 Jadi kami mula menggunakan integer. 1036 00:47:56,430 --> 00:47:57,510 Kami telah dirujuk terapung. 1037 00:47:57,510 --> 00:48:00,120 Kami juga disebut beregu, yang, sekali lagi, memberikan nombor 1038 00:48:00,120 --> 00:48:01,390 selepas titik perpuluhan. 1039 00:48:01,390 --> 00:48:04,230 >> Tetapi ternyata bahawa terapung dan beregu, dan benar-benar, komputer, 1040 00:48:04,230 --> 00:48:08,470 asasnya, tidak dapat meluahkan nilai-nilai yang tepat. 1041 00:48:08,470 --> 00:48:12,840 Kita tahu daripada kelas matematik yang anda boleh mempunyai apa-apa bilangan nombor selepas 1042 00:48:12,840 --> 00:48:13,510 titik perpuluhan. 1043 00:48:13,510 --> 00:48:16,460 Dan anda juga boleh meletakkan bar menegak untuk mengatakan ini pergi selama-lamanya. 1044 00:48:16,460 --> 00:48:18,810 >> Malangnya, anda tidak boleh benar-benar berbuat demikian dalam komputer. 1045 00:48:18,810 --> 00:48:20,400 Dan supaya kes sudut timbul. 1046 00:48:20,400 --> 00:48:23,120 Sebagai contoh, andaikan anda melakukan sesuatu yang kewangan. 1047 00:48:23,120 --> 00:48:25,700 Anda lakukan matematik dengan peratusan, dan 1048 00:48:25,700 --> 00:48:27,030 dengan dolar dan sen. 1049 00:48:27,030 --> 00:48:29,230 Dan orang-orang sen tidak line semestinya up. 1050 00:48:29,230 --> 00:48:34,120 Nah, ternyata bahawa pecahan sen boleh mula untuk menambah sehingga apabila 1051 00:48:34,120 --> 00:48:37,250 dimodelkan dengan sistem komputer dalam apa-apa cara yang bijak 1052 00:48:37,250 --> 00:48:39,100 manusia boleh mengambil kesempatan. 1053 00:48:39,100 --> 00:48:42,650 >> Dan orang-orang yang tidak pernah melihat, saya akan suka untuk memberikan anda penggoda 30-kedua 1054 00:48:42,650 --> 00:48:48,290 sebuah filem yang indah dikenali sebagai Ruang Pejabat, yang akan melukis sekeping gambar 1055 00:48:48,290 --> 00:48:51,205 masalah kita akan menangani Perkara pertama pada hari Isnin. 1056 00:48:51,205 --> 00:48:53,960 Jika kita boleh meningkatkan jumlah sedikit, saya memberikan anda 30 1057 00:48:53,960 --> 00:48:55,495 saat Ruang Pejabat. 1058 00:48:55,495 --> 00:48:55,770 >> [MAIN SEMULA VIDEO] 1059 00:48:55,770 --> 00:48:59,000 >> -Maksud saya, anda, anda tidak menunjukkan dan anda boleh menyimpan kerja anda. 1060 00:48:59,000 --> 00:49:00,620 >> -Sebenarnya, saya dinaikkan pangkat. 1061 00:49:00,620 --> 00:49:03,240 >> -Saya dapat program virus yang akan merobek tempat yang luar masa yang besar. 1062 00:49:03,240 --> 00:49:04,430 >> -Nah, bagaimana ia berfungsi? 1063 00:49:04,430 --> 00:49:06,782 >> -Setiap kali ada transaksi bank di mana faedah dikira, dan terdapat 1064 00:49:06,782 --> 00:49:10,160 beribu-ribu sehari, komputer berakhir dengan ini pecahan sen. 1065 00:49:10,160 --> 00:49:12,030 >> -Tetapi saya tidak akan melakukan apa-apa haram. 1066 00:49:12,030 --> 00:49:12,660 >> -Haram? 1067 00:49:12,660 --> 00:49:15,075 Samir, ini adalah Amerika. 1068 00:49:15,075 --> 00:49:16,570 >> -Kita perlu bersumpah kepada Tuhan. 1069 00:49:16,570 --> 00:49:19,070 >> -Jika tiada siapa yang tahu tentang perkara ini tetapi kita, betul? 1070 00:49:19,070 --> 00:49:21,920 Tiada ahli keluarga, tidak teman wanita, tiada siapa. 1071 00:49:21,920 --> 00:49:22,700 >> -Sudah tentu. 1072 00:49:22,700 --> 00:49:23,320 >> -Setuju. 1073 00:49:23,320 --> 00:49:24,280 >> -Jangan bimbang, manusia. 1074 00:49:24,280 --> 00:49:25,640 Saya tidak akan memberitahu sesiapa sahaja sama ada. 1075 00:49:25,640 --> 00:49:26,504 >> [AKHIR VIDEO MAIN SEMULA] 1076 00:49:26,504 --> 00:49:30,030 >> DAVID MALAN: Jadi ini, maka, adalah CS50, yang Ruang Pejabat, dan ia akan semua 1077 00:49:30,030 --> 00:49:31,465 masuk akal pada hari Isnin. 1078 00:49:31,465 --> 00:49:33,940 Lihat anda kemudian. 1079 00:49:33,940 --> 00:49:37,880 >> Pencerita: Pada CS50 seterusnya, Rob menyesuaikan untuk menjadi luar 1080 00:49:37,880 --> 00:49:39,130 Rancangan makanan Harvard. 1081 00:49:39,130 --> 00:49:56,160