1 00:00:00,000 --> 00:00:05,530 2 00:00:05,530 --> 00:00:09,790 >> PROFESOR: Jadi agenda untuk minggu ini, tidak banyak barangan. 3 00:00:09,790 --> 00:00:12,801 Tetapi diharapkan sangat, sangat membantu dan relevan untuk anda semua minggu ini. 4 00:00:12,801 --> 00:00:15,550 Tetapi kita akan menghabiskan mungkin 15, 20 minit hanya dengan cepat bercakap 5 00:00:15,550 --> 00:00:17,370 mengenai senarai link. 6 00:00:17,370 --> 00:00:19,694 Senarai pautan akan ditutup pada kuiz. 7 00:00:19,694 --> 00:00:22,610 Jadi mungkin ia akan menjadi sangat berguna untuk belajar serba sedikit tentang apa yang. 8 00:00:22,610 --> 00:00:25,210 >> Kami akan menghabiskan besar majoriti seksyen hari ini 9 00:00:25,210 --> 00:00:27,640 akan lebih kuiz sifar masalah amalan. 10 00:00:27,640 --> 00:00:30,970 Dan kemudian kita akan menjimatkan mungkin 20, 30 minit pada akhir untuk sebarang pertanyaan yang terlintas 11 00:00:30,970 --> 00:00:32,850 sesiapa yang mempunyai. 12 00:00:32,850 --> 00:00:34,610 >> Kemudian, yang terakhir lima minit, saya akan 13 00:00:34,610 --> 00:00:36,467 untuk memberikan pam ucapan untuk kuiz. 14 00:00:36,467 --> 00:00:38,050 Kalian semua mahu berada di sini untuk itu. 15 00:00:38,050 --> 00:00:39,591 Kerana ia akan menjadi masa yang baik. 16 00:00:39,591 --> 00:00:42,650 17 00:00:42,650 --> 00:00:49,230 >> Baiklah, jadi beberapa bahan dalam senarai link. 18 00:00:49,230 --> 00:00:52,620 Bagaimana mereka biasanya berstruktur adalah anda mempunyai apa yang dipanggil nod, bukan? 19 00:00:52,620 --> 00:00:54,870 Anda mempunyai perkara-perkara ini dipanggil nod, yang structs. 20 00:00:54,870 --> 00:00:57,360 Saya akan pergi ke atas bagaimana untuk mewujudkan nod dalam slaid seterusnya. 21 00:00:57,360 --> 00:01:00,680 Tetapi pada dasarnya semua berkaitan senarai adalah ialah data yang 22 00:01:00,680 --> 00:01:03,340 telah digantung bersama-sama melalui petunjuk. 23 00:01:03,340 --> 00:01:09,110 >> Dan supaya kelebihan yang kita ada menggunakan senarai berpaut ke atas, 24 00:01:09,110 --> 00:01:11,280 mungkin, seperti pelbagai, adalah hakikat bahawa dalam array 25 00:01:11,280 --> 00:01:15,000 anda memerlukan satu blok berdampingan memori semua di tempat yang sama, satu 26 00:01:15,000 --> 00:01:16,870 selepas yang lain, untuk dapat mempunyai. 27 00:01:16,870 --> 00:01:20,200 Manakala senarai berpaut, anda boleh mempunyai bit sedikit rawak memori 28 00:01:20,200 --> 00:01:23,020 seluruh komputer anda digantung bersama-sama dengan petunjuk. 29 00:01:23,020 --> 00:01:26,270 >> Dan dengan cara ini anda boleh mengakses maklumat 30 00:01:26,270 --> 00:01:28,610 yang datang satu demi satu lain, selepas yang lain 31 00:01:28,610 --> 00:01:32,720 tanpa perlu hanya sebahagian besar memori dalam komputer anda di suatu tempat. 32 00:01:32,720 --> 00:01:35,910 Dan hal ini adalah salah satu yang utama sebab mengapa kita menggunakan senarai link. 33 00:01:35,910 --> 00:01:40,300 >> Kedua, ia sangat mudah untuk secara dinamik mengubah saiz senarai Pautan kerana dalam array, 34 00:01:40,300 --> 00:01:44,720 apabila anda mengisytiharkan array, anda mempunyai nilai yang ditetapkan tertentu. 35 00:01:44,720 --> 00:01:47,340 Katakan saya mahu mencipta pelbagai 10 integer. 36 00:01:47,340 --> 00:01:49,970 Saya membuat pelbagai 10 integer, dan itu sahaja. 37 00:01:49,970 --> 00:01:50,580 Ia adalah 10. 38 00:01:50,580 --> 00:01:52,038 Saya tidak tahu apa yang perlu dilakukan selepas itu. 39 00:01:52,038 --> 00:01:53,680 Jika saya mahu menjadikannya 11, tidak boleh melakukannya. 40 00:01:53,680 --> 00:01:55,710 Jika saya mahu menjadikannya 9, tidak boleh melakukannya. 41 00:01:55,710 --> 00:01:59,910 >> Sedangkan pada senarai link, anda boleh menambah dan memadam dan memasukkan mana sahaja yang anda mahu. 42 00:01:59,910 --> 00:02:04,940 Anda dinamik boleh mengubah saiz anda menstrukturkan sini, struktur data anda. 43 00:02:04,940 --> 00:02:08,370 Dan yang memberikan kita banyak lebih fleksibiliti tambahan 44 00:02:08,370 --> 00:02:11,320 bahawa kita tidak biasanya mempunyai dengan tatasusunan. 45 00:02:11,320 --> 00:02:15,210 >> Sesiapa pun keliru pada asas struktur bagaimana senarai link adalah 46 00:02:15,210 --> 00:02:17,930 atau mengapa kita perlu menggunakan satu lebih array? 47 00:02:17,930 --> 00:02:20,330 Ya, kami akan pergi lebih terperinci bagaimana untuk benar-benar membuat satu. 48 00:02:20,330 --> 00:02:24,121 Tetapi ini adalah hanya jenis pengertian umum sekarang. 49 00:02:24,121 --> 00:02:24,620 Sejuk. 50 00:02:24,620 --> 00:02:28,770 Dan sebagainya tatasusunan sedang digantung bersama-sama perkara-perkara kecil yang indah 51 00:02:28,770 --> 00:02:29,960 dipanggil nod. 52 00:02:29,960 --> 00:02:32,210 Semua nod ini adalah jenis struct. 53 00:02:32,210 --> 00:02:36,090 Ingat, struct adalah jika anda mahu untuk mewujudkan satu jenis tertentu berubah-ubah 54 00:02:36,090 --> 00:02:39,850 dalam C yang tidak sudah wujud, anda, sebagai seorang programmer, 55 00:02:39,850 --> 00:02:42,030 sebenarnya boleh membuat bahawa diri anda. 56 00:02:42,030 --> 00:02:46,540 >> Dan jadi ini jenis data struktur dipanggil nod, 57 00:02:46,540 --> 00:02:50,770 sebenarnya telah dicipta oleh kami, yang tidak wujud dalam C dengan sendiri. 58 00:02:50,770 --> 00:02:53,150 Dan cara yang anda membuat satu adalah anda perlu 59 00:02:53,150 --> 00:02:57,170 header typedef struct, yang memberitahu pengkompil Saya 60 00:02:57,170 --> 00:02:59,640 hendak menciptakan struct. 61 00:02:59,640 --> 00:03:00,830 >> Kami akan namakannya "nod." 62 00:03:00,830 --> 00:03:03,350 Dan di dalam kita akan mengisytiharkan pembolehubah dalam, 63 00:03:03,350 --> 00:03:05,060 yang akan menyimpan nilai. 64 00:03:05,060 --> 00:03:09,320 Dan kemudian kita juga akan telah penunjuk yang dipanggil "akan datang" 65 00:03:09,320 --> 00:03:12,090 yang menunjuk ke depan nod dalam senarai pautan. 66 00:03:12,090 --> 00:03:14,730 Dan kemudian anda selesai yang luar dengan hanya mengulangi nod lagi jadi 67 00:03:14,730 --> 00:03:17,490 pengkompil tahu, OK itulah akhir struct saya. 68 00:03:17,490 --> 00:03:22,540 >> Jadi dengan cara ini, kami jenis mewujudkan pelbagai kecil yang lucu 69 00:03:22,540 --> 00:03:25,450 jenis perkara dengan nilai dan dengan penunjuk. 70 00:03:25,450 --> 00:03:27,757 Dan anda boleh menghubungkan mereka semua bersama-sama dengan mereka petunjuk. 71 00:03:27,757 --> 00:03:30,090 Supaya mereka boleh menjadi semua jenis digantung bersama-sama dalam rantai. 72 00:03:30,090 --> 00:03:32,920 73 00:03:32,920 --> 00:03:34,162 >> Sejuk. 74 00:03:34,162 --> 00:03:35,453 Bolehkah anda mendengar bahawa bit yang lebih baik? 75 00:03:35,453 --> 00:03:36,140 >> PENONTON: Ya. 76 00:03:36,140 --> 00:03:38,540 >> PROFESOR: Baiklah. 77 00:03:38,540 --> 00:03:44,280 Jadi cara itu, seperti yang anda semua boleh lihat, senarai pautan yang biasa distrukturkan 78 00:03:44,280 --> 00:03:45,500 adalah anda perlu kepala. 79 00:03:45,500 --> 00:03:49,460 Anda mempunyai nilai kepala yang tidak yang menunjuk oleh mana-mana penunjuk lain. 80 00:03:49,460 --> 00:03:53,177 Tetapi ia akan tunjuk pada, atau rujukan, nod yang lain. 81 00:03:53,177 --> 00:03:56,510 Nod selepas akan rujukan nod selepas itu, dan sebagainya dan sebagainya 82 00:03:56,510 --> 00:03:59,170 sehingga anda akhirnya melanda akhir senarai link anda. 83 00:03:59,170 --> 00:04:00,980 Dan anda tidak akan mempunyai penunjuk di sana. 84 00:04:00,980 --> 00:04:04,659 >> Dan sebagainya, berfikir seperti, pada rantai, atau jika mana-mana anda semua buat, saya tidak tahu, 85 00:04:04,659 --> 00:04:06,450 seperti dengan buah gelung apabila anda sedikit. 86 00:04:06,450 --> 00:04:08,590 Anda akan tali mereka bersama-sama dan memakainya di leher anda. 87 00:04:08,590 --> 00:04:09,840 Fikir ia adalah perkara yang sama. 88 00:04:09,840 --> 00:04:12,964 Anda mempunyai perkara-perkara kecil yang anda boleh tali bersama-sama ketika itu untuk satu 89 00:04:12,964 --> 00:04:15,291 selepas itu, dengan yang selepas , dan sebagainya dan sebagainya 90 00:04:15,291 --> 00:04:17,040 sehingga anda mempunyai rantai struktur data 91 00:04:17,040 --> 00:04:21,190 yang boleh anda gunakan bagaimanapun anda suka. 92 00:04:21,190 --> 00:04:27,370 >> Jadi cara ini kita akan biasanya memasukkan atau memadam 93 00:04:27,370 --> 00:04:30,020 mana-mana nod dari pautan senarai adalah sangat berbeza 94 00:04:30,020 --> 00:04:31,970 bergantung di mana nod yang. 95 00:04:31,970 --> 00:04:34,880 Jadi, sebagai contoh, kerana petunjuk sentiasa 96 00:04:34,880 --> 00:04:38,645 menunjuk pada nilai tertentu, apabila anda memadam atau memasukkan nod, 97 00:04:38,645 --> 00:04:41,770 anda ingin memastikan bahawa penunjuk adalah semua menghala ke arah perkara yang betul. 98 00:04:41,770 --> 00:04:46,200 >> Jadi, jika anda mahu berpotensi memasukkan nod baru dengan nilai satu 99 00:04:46,200 --> 00:04:48,379 dalam pautan disusun senarai, kita semua kenali di sini 100 00:04:48,379 --> 00:04:51,170 dari gambar yang akan pergi di antara kepala dan dua, bukan? 101 00:04:51,170 --> 00:04:52,620 Kerana satu sesuai di sana. 102 00:04:52,620 --> 00:04:59,060 Tetapi cara yang di mana kami akan berbuat demikian ialah dengan terlebih dahulu dereferencing penunjuk 103 00:04:59,060 --> 00:05:02,160 dari kepala dan menghantar yang satu. 104 00:05:02,160 --> 00:05:05,040 >> Tetapi kita datang ke dalam masalah di sini. 105 00:05:05,040 --> 00:05:08,280 Sesiapa sahaja boleh melihat apa masalah adalah jika kita dereference pertama 106 00:05:08,280 --> 00:05:10,090 penunjuk dari kepala hingga ke satu? 107 00:05:10,090 --> 00:05:14,202 Apa masalah mungkin kita masuk ke dalam jika kita cuba untuk menambahnya ke hadapan pelbagai kami? 108 00:05:14,202 --> 00:05:15,409 >> PENONTON: [didengar] 109 00:05:15,409 --> 00:05:16,200 PROFESOR: Tepat sekali. 110 00:05:16,200 --> 00:05:20,000 Jadi di sini kita mempunyai penunjuk yang merupakan sekali menunjuk dari kepala ke dua. 111 00:05:20,000 --> 00:05:23,120 Tetapi jika anda menghilangkan yang penunjuk, anda menunjukkan kepada orang, 112 00:05:23,120 --> 00:05:26,500 kini kita tidak tahu di mana untuk pergi untuk mencari dua. 113 00:05:26,500 --> 00:05:29,850 Kerana seperti yang saya katakan sebelum ini, anda telah mendapat satu sebahagian besar ingatan dalam komputer anda. 114 00:05:29,850 --> 00:05:31,860 Semua nod ini boleh dapat diselingi secara rawak 115 00:05:31,860 --> 00:05:33,350 di mana-mana tempat dalam komputer anda. 116 00:05:33,350 --> 00:05:36,140 Dan anda tidak tahu bagaimana untuk pergi tentang mencari tempat itu. 117 00:05:36,140 --> 00:05:40,420 >> Dan jadi anda perlu untuk mempunyai petunjuk menunjuk ke semua nod pada akhir. 118 00:05:40,420 --> 00:05:42,420 Atau yang lain jika anda secara tidak sengaja dereference satu 119 00:05:42,420 --> 00:05:44,485 tanpa mempersekutukan pertama nilai yang pertama, anda 120 00:05:44,485 --> 00:05:47,410 hanya akan kehilangan segala-galanya selepas itu. 121 00:05:47,410 --> 00:05:49,720 >> Jadi apa yang kita akan lakukan ialah, anda lakukan pertama 122 00:05:49,720 --> 00:05:53,270 ingin membuat penunjuk pada nod yang anda mahu masukkan. 123 00:05:53,270 --> 00:05:55,270 Menunjukkan kepada di mana anda mahu masukkan ke, 124 00:05:55,270 --> 00:05:59,410 dan kemudian selepas itu anda boleh menunjukkan kepala kembali kepada satu. 125 00:05:59,410 --> 00:06:02,800 >> Adakah ini masuk akal untuk semua orang di sini? 126 00:06:02,800 --> 00:06:03,346 Yang besar. 127 00:06:03,346 --> 00:06:04,720 Anggaplah ia sebagai sama seperti rantai. 128 00:06:04,720 --> 00:06:07,420 Jika anda menambah rantai, ia adalah jenis intuitif 129 00:06:07,420 --> 00:06:10,742 bagaimana anda akan pergi tentang memasukkan itu. 130 00:06:10,742 --> 00:06:15,274 >> OK, jadi yang sebenarnya banyak lebih pendek daripada yang saya fikir ia akan menjadi, 131 00:06:15,274 --> 00:06:16,690 satu omongan lima minit di senarai link. 132 00:06:16,690 --> 00:06:19,960 Hanya supaya anda semua mempunyai Idea asas apa yang. 133 00:06:19,960 --> 00:06:23,580 >> Di sini kita mempunyai agenda untuk kuiz sifar. 134 00:06:23,580 --> 00:06:24,895 Jangan biarkan ini menakut-nakutkan anda. 135 00:06:24,895 --> 00:06:26,270 Saya tahu ia banyak maklumat. 136 00:06:26,270 --> 00:06:27,580 Ia kelihatan sangat menakutkan. 137 00:06:27,580 --> 00:06:33,130 Ia juga banyak, saya berfikir, jenis CSC istilah. 138 00:06:33,130 --> 00:06:37,440 Perkara seperti tali perenambelasan, petunjuk, peruntukan memori dinamik 139 00:06:37,440 --> 00:06:40,120 adalah istilah yang berbunyi sangat menakutkan. 140 00:06:40,120 --> 00:06:42,700 >> Tetapi kita akan memecahkan mereka ke bawah, melakukan beberapa masalah amalan 141 00:06:42,700 --> 00:06:44,980 supaya kalian semua bersedia untuk ujian ini. 142 00:06:44,980 --> 00:06:47,104 Berapa ramai daripada anda semua mempunyai sudah mula belajar? 143 00:06:47,104 --> 00:06:50,040 144 00:06:50,040 --> 00:06:53,670 >> OK, anda semua mungkin mahu untuk mula bermula 145 00:06:53,670 --> 00:06:56,480 pada itu, kerana kuiz esok. 146 00:06:56,480 --> 00:06:58,739 Atau Khamis untuk sebahagian dari kamu. 147 00:06:58,739 --> 00:07:01,030 Ya, jadi kita akan pergi atas beberapa masalah amalan. 148 00:07:01,030 --> 00:07:04,600 Jika kalian semua mahu mengambil keluar sehelai kertas, pensil. 149 00:07:04,600 --> 00:07:07,310 Kami akan hanya menghabiskan Sebahagian besar bahagian hari ini 150 00:07:07,310 --> 00:07:11,590 pergi ke atas beberapa yang jadi anda semua mempunyai idea tentang apa yang diharapkan pada kuiz. 151 00:07:11,590 --> 00:07:14,957 152 00:07:14,957 --> 00:07:16,890 >> OKAY. 153 00:07:16,890 --> 00:07:19,730 Beberapa logistik butiran juga, untuk sesiapa 154 00:07:19,730 --> 00:07:25,120 yang belum pernah ke link yang di sana, jika anda pergi ke cs50.yale.edu, di bahagian depan 155 00:07:25,120 --> 00:07:28,566 halaman ini terdapat pautan mengatakan "Tentang Kuiz Zero." 156 00:07:28,566 --> 00:07:29,440 Link akan membawa anda ke sana. 157 00:07:29,440 --> 00:07:31,065 Jika anda belum membacanya, sila membacanya. 158 00:07:31,065 --> 00:07:34,470 Kerana ia memberitahu anda benar-benar penting maklumat mengenai kuiz. 159 00:07:34,470 --> 00:07:37,410 >> Saya akan menarik ini keluar dari bahawa hanya kerana, dari segi fizikal, 160 00:07:37,410 --> 00:07:40,200 jika anda semua tidak tahu di mana untuk pergi, kita akan menghadapi masalah. 161 00:07:40,200 --> 00:07:44,220 Dan jadi jika terakhir anda dari segi dengan A kepada N, pergi ke auditorium sekolah undang-undang. 162 00:07:44,220 --> 00:07:47,500 Dan jika bermula terakhir anda dengan P to Z, pergi ke Auditorium Davies. 163 00:07:47,500 --> 00:07:50,240 Dan ini hanya terpakai untuk orang dalam seksyen Rabu. 164 00:07:50,240 --> 00:07:53,420 >> Jika anda mengambil kuiz pada Khamis, anda pergi ke SSS 114 165 00:07:53,420 --> 00:07:55,078 mana kuliah anda biasanya adalah. 166 00:07:55,078 --> 00:07:55,953 PENONTON: [didengar] 167 00:07:55,953 --> 00:07:59,316 168 00:07:59,316 --> 00:08:01,940 PROFESOR: Wahai to Z, anda akan untuk pergi ke auditorium Davies. 169 00:08:01,940 --> 00:08:03,273 Saya akan mengubah itu, bukan? 170 00:08:03,273 --> 00:08:05,670 171 00:08:05,670 --> 00:08:09,698 >> Oh, ya, anda hanya gagal secara automatik. 172 00:08:09,698 --> 00:08:11,753 >> Oh yeah, itulah anda Christa. 173 00:08:11,753 --> 00:08:15,190 174 00:08:15,190 --> 00:08:16,030 Yeah, buruk saya. 175 00:08:16,030 --> 00:08:17,610 Ya, ya ke Z, anda akan untuk pergi ke Davies Auditorim. 176 00:08:17,610 --> 00:08:19,140 Saya akan menetapkan ini sebaik sahaja saya muat naik. 177 00:08:19,140 --> 00:08:20,320 Yeah. 178 00:08:20,320 --> 00:08:22,160 >> Dan kemudian juga sesuatu penting untuk minda 179 00:08:22,160 --> 00:08:25,290 ialah Rabu, jika anda secara rasmi mendaftar dalam seksyen Rabu, 180 00:08:25,290 --> 00:08:26,832 anda mesti mengambil kuiz anda pada hari Rabu. 181 00:08:26,832 --> 00:08:29,706 Dan jika anda mendaftar di Khamis, anda mesti mengambil kuiz anda hari ini. 182 00:08:29,706 --> 00:08:31,000 Dan ia pada masa kelas. 183 00:08:31,000 --> 00:08:35,970 Di mana, saya rasa ia seperti 01:00 untuk 2:15 pada hari Rabu dan 2:30-3:45 184 00:08:35,970 --> 00:08:37,220 pada hari Khamis. 185 00:08:37,220 --> 00:08:41,710 >> Jika anda mempunyai konflik selari, Alasan Dekan adalah perkara sahaja, 186 00:08:41,710 --> 00:08:43,030 malangnya, kami boleh mengambil. 187 00:08:43,030 --> 00:08:45,560 Oleh kerana kita telah mempunyai Sebahagian besar daripada permintaan 188 00:08:45,560 --> 00:08:47,970 untuk beralih dari Rabu hingga Khamis. 189 00:08:47,970 --> 00:08:51,265 Yang kita tidak boleh menghormati kecuali kita mempunyai permintaan, Dekan. 190 00:08:51,265 --> 00:08:52,650 >> OKAY. 191 00:08:52,650 --> 00:08:57,000 Jadi sebelum kita bermula pada beberapa masalah amalan, 192 00:08:57,000 --> 00:09:00,540 Saya hanya akan pergi ke atas Tips berguna Andy untuk berjaya. 193 00:09:00,540 --> 00:09:04,140 Anda semua, apabila anda belajar, anda benar-benar mahu amalan menulis kod dengan tangan. 194 00:09:04,140 --> 00:09:07,050 Yang pertama kali saya pernah mengambil kuiz CS, saya tidak mempunyai 195 00:09:07,050 --> 00:09:09,960 kod amalan bertulis dengan tangan sebelum ini dan ia amat 196 00:09:09,960 --> 00:09:11,890 mengejutkan bagaimana sukarnya. 197 00:09:11,890 --> 00:09:16,125 >> Apabila anda lelaki tidak masuk ke dalam tabiat menaip segala-galanya, 198 00:09:16,125 --> 00:09:20,260 ia datang sangat yang secara semula jadi dapat telah dengan auto 199 00:09:20,260 --> 00:09:22,015 kurungan dan koma bertitik di sana. 200 00:09:22,015 --> 00:09:23,890 Apabila anda menulis keluar dengan tangan, kadang-kadang ia 201 00:09:23,890 --> 00:09:27,100 sangat, sangat mudah untuk lupa koma bertitik, atau lupa untuk menutup kurungan, 202 00:09:27,100 --> 00:09:30,970 atau lupa untuk menutup kolon, atau sesuatu seperti itu. 203 00:09:30,970 --> 00:09:34,322 >> Oleh itu, apabila anda menulis kod dengan tangan, ia adalah rasa yang sangat berbeza. 204 00:09:34,322 --> 00:09:37,280 Jadi anda semua, apabila anda bekerja melalui beberapa masalah amalan, 205 00:09:37,280 --> 00:09:38,904 ia akan baik untuk benar-benar mengamalkan hari ini. 206 00:09:38,904 --> 00:09:41,770 Atau esok, saya rasa, jika anda mengambil kuiz pada hari Khamis. 207 00:09:41,770 --> 00:09:45,280 >> Kedua, kita mempunyai yang terakhir, seperti, bernilai lapan tahun ini amalan 208 00:09:45,280 --> 00:09:47,070 kuiz dalam talian. 209 00:09:47,070 --> 00:09:50,759 Kuiz tahun ini mungkin akan menjadi sangat, hampir sama dengan mereka semua. 210 00:09:50,759 --> 00:09:51,800 Mereka semua sama. 211 00:09:51,800 --> 00:09:54,220 Anda jenis masuk ke dalam gaya bentuk soalan 212 00:09:54,220 --> 00:09:57,250 yang dapat kita minta, jenis fungsi yang kami akan menulis dalam, 213 00:09:57,250 --> 00:09:58,580 dan sebagainya, dan sebagainya. 214 00:09:58,580 --> 00:10:01,980 >> Oleh itu, mengambil kuiz amalan, terutamanya di bawah kekangan masa. 215 00:10:01,980 --> 00:10:05,390 75 minit untuk melakukan kuiz adalah tidak banyak jumlah masa. 216 00:10:05,390 --> 00:10:07,254 Ia sangat, sangat panjang. 217 00:10:07,254 --> 00:10:09,670 Dan supaya anda semua benar-benar mahu memastikan bahawa anda semua 218 00:10:09,670 --> 00:10:11,990 dalam tabiat bertulis kod dengan tangan cepat. 219 00:10:11,990 --> 00:10:15,070 Kerana anda tidak mahu pertama masa untuk melihat kuiz panjang yang 220 00:10:15,070 --> 00:10:16,560 berada di kuiz anda. 221 00:10:16,560 --> 00:10:20,540 Kalian benar-benar ingin memastikan bahawa anda mengamalkan terlebih dahulu. 222 00:10:20,540 --> 00:10:24,550 >> Keempat, anda mahu untuk mengkaji semula kuliah dan seksyen slaid. 223 00:10:24,550 --> 00:10:25,980 Anda tidak perlu menghafal sesuatu. 224 00:10:25,980 --> 00:10:30,430 Sebenarnya, semua orang dibenarkan satu lembaran wang kertas putih, 225 00:10:30,430 --> 00:10:31,090 depan dan belakang. 226 00:10:31,090 --> 00:10:32,920 Kalian boleh menaip atau menulis. 227 00:10:32,920 --> 00:10:37,070 Jika anda mendapati diri anda perlu untuk menghafal apa-apa, meletakkan ia ke bawah di dalam lembaran itu. 228 00:10:37,070 --> 00:10:40,810 >> Saya jamin anda, anda tidak mahu terperangkap di tengah-tengah kuiz yang 229 00:10:40,810 --> 00:10:43,890 menjadi seperti, oh yeah, apa runtime seperti ini berbanding seperti itu. 230 00:10:43,890 --> 00:10:46,490 Hanya meletakkan ia ke bawah dan menyalinnya lurus dari lembaran komen anda. 231 00:10:46,490 --> 00:10:50,420 Kemudian anda boleh sebenarnya hanya menggunakan anda otak untuk berfikir tentang masalah 232 00:10:50,420 --> 00:10:52,190 daripada harus ingat fakta. 233 00:10:52,190 --> 00:10:55,250 Dan supaya benar-benar mengambil kesempatan apa-apa butir-butir khusus 234 00:10:55,250 --> 00:11:00,140 yang anda fikir anda perlu untuk menghafal, mencebur ke bawah di dalam lembaran kajian. 235 00:11:00,140 --> 00:11:02,680 >> OK, sebarang pertanyaan logistik mengenai kuiz 236 00:11:02,680 --> 00:11:05,510 sebelum kita memulakan beberapa masalah kuiz mengamalkan? 237 00:11:05,510 --> 00:11:06,416 Ya? 238 00:11:06,416 --> 00:11:10,040 >> PENONTON: Saya tidak mempunyai peluang melihat kuiz [didengar] 239 00:11:10,040 --> 00:11:11,757 tetapi ia akan menjadi Aplikasi biasanya, 240 00:11:11,757 --> 00:11:14,090 atau ada juga akan menjadi, seperti, soalan pengetahuan? 241 00:11:14,090 --> 00:11:14,940 >> PROFESOR: Ia banyak. 242 00:11:14,940 --> 00:11:16,731 Jadi, cara yang saya akan diterangkan kuiz 243 00:11:16,731 --> 00:11:18,810 is-- saya meletakkan bersama-sama beberapa masalah amalan 244 00:11:18,810 --> 00:11:20,960 bahawa saya menarik diri dari semua kuiz. 245 00:11:20,960 --> 00:11:25,210 Tetapi anda akan melihat bahawa ada dua utama jenis soalan kami akan bertanya kepada anda. 246 00:11:25,210 --> 00:11:28,750 >> One ialah detail tahap yang sangat rendah barangan. 247 00:11:28,750 --> 00:11:31,720 Kami akan memberikan anda sebahagian kecil kod dan berkata, ada kesilapan di sini? 248 00:11:31,720 --> 00:11:33,110 Apa yang akan mencetak di sini? 249 00:11:33,110 --> 00:11:35,980 Apa yang akan menghasilkan kod ini, dan sebagainya. 250 00:11:35,980 --> 00:11:38,710 Jadi tahap yang sangat rendah butiran maklumat. 251 00:11:38,710 --> 00:11:42,700 >> Dan di sebelah flip, kami akan mempunyai sangat soalan berasaskan pengetahuan tahap tinggi. 252 00:11:42,700 --> 00:11:45,190 Bolehkah anda terangkan apa itu Perbezaan antara carian binari 253 00:11:45,190 --> 00:11:46,148 dan carian linear adalah? 254 00:11:46,148 --> 00:11:48,500 Mengapa kita mahu menggunakan berbanding dengan yang lain? 255 00:11:48,500 --> 00:11:49,960 Mungkin, apa yang GDB? 256 00:11:49,960 --> 00:11:51,560 Mengapa kita mahu menggunakan GDB? 257 00:11:51,560 --> 00:11:54,590 Tahap yang lebih tinggi, lebih asas soalan pemahaman. 258 00:11:54,590 --> 00:11:58,240 Jadi, anda akan melihat campuran kedua-dua mereka pada kuiz anda. 259 00:11:58,240 --> 00:12:01,462 >> Apa-apa lagi sebelum kita kepala terus ke dalamnya? 260 00:12:01,462 --> 00:12:02,879 OKAY. 261 00:12:02,879 --> 00:12:03,670 PENONTON: Salah lagi. 262 00:12:03,670 --> 00:12:04,030 PROFESOR: Oh, satu lagi. 263 00:12:04,030 --> 00:12:04,340 Maaf. 264 00:12:04,340 --> 00:12:05,631 >> PENONTON: Ya, ia adalah hak semua. 265 00:12:05,631 --> 00:12:10,140 Jadi, anda katakan 75 minit adalah terlalu pendek, seperti ia tidak mungkin 266 00:12:10,140 --> 00:12:11,640 bahawa kita akan selesai? 267 00:12:11,640 --> 00:12:13,571 Atau, seperti, 75 minit betul-betul banyak masa 268 00:12:13,571 --> 00:12:15,700 seperti yang kita perlu jika kita sewajarnya disediakan? 269 00:12:15,700 --> 00:12:17,450 PROFESOR: OK, jadi kuiz adalah mencabar. 270 00:12:17,450 --> 00:12:19,550 Ia pasti mencabar. 271 00:12:19,550 --> 00:12:21,092 Anda akan mendapati diri anda kesuntukan masa. 272 00:12:21,092 --> 00:12:24,341 Anda mungkin akan melanda, seperti 10, 15 minit untuk pergi, dan menjadi seperti najis. 273 00:12:24,341 --> 00:12:25,520 Saya telah begitu banyak yang perlu dilakukan. 274 00:12:25,520 --> 00:12:26,520 Dan itu betul-betul halus. 275 00:12:26,520 --> 00:12:28,740 Semua orang akan berasa cara yang sama. 276 00:12:28,740 --> 00:12:31,074 >> Hanya berhati-sedar berapa banyak masa yang anda ada. 277 00:12:31,074 --> 00:12:33,490 Dan jadi sebab itu saya memberitahu anda seorang lelaki melakukan kuiz amalan. 278 00:12:33,490 --> 00:12:36,672 Oleh kerana ia benar-benar memberi erti yang besar apa kuiz akan menjadi seperti. 279 00:12:36,672 --> 00:12:39,130 Jadi, jika anda mendapati diri anda dapat selesai amalan 280 00:12:39,130 --> 00:12:41,671 kuiz dalam jumlah yang baik masa, anda boleh langkah anda sendiri dengan baik, 281 00:12:41,671 --> 00:12:45,695 maka anda tidak akan mempunyai masalah pada hari Rabu atau Khamis. 282 00:12:45,695 --> 00:12:46,575 >> Sejuk. 283 00:12:46,575 --> 00:12:49,200 Jadi, jika semua orang wants-- saya fikir kebanyakan orang mempunyai helaian kertas 284 00:12:49,200 --> 00:12:49,810 keluar sudah. 285 00:12:49,810 --> 00:12:52,604 Saya akan dasarnya hanya memberikan contoh soalan, 286 00:12:52,604 --> 00:12:54,520 memberi anda semua, seperti, beberapa minit untuk melakukannya. 287 00:12:54,520 --> 00:12:59,610 Dan kita akan pergi sebagai kelas apa jawaban mereka adalah. 288 00:12:59,610 --> 00:13:02,860 >> Jadi ini adalah sangat lazim soalan awal kami akan 289 00:13:02,860 --> 00:13:06,720 bertanya kepada anda, hanya menukarkan nombor antara asas yang berbeza. 290 00:13:06,720 --> 00:13:09,070 Perduaan, kerana anda semua boleh ingat, adalah asas dua. 291 00:13:09,070 --> 00:13:12,470 Decimal adalah asas 10, atau apa yang kita sebagai manusia biasanya mentafsir. 292 00:13:12,470 --> 00:13:17,120 Perenambelasan adalah asas 16, yang adalah sifar melalui sembilan dan juga A hingga F. 293 00:13:17,120 --> 00:13:19,990 >> Jadi ada empat nombor Saya meminta anda semua untuk menukar sini. 294 00:13:19,990 --> 00:13:23,909 Saya akan memberikan anda suka, tiga hingga empat minit untuk memikirkan bagaimana 295 00:13:23,909 --> 00:13:25,200 kita akan pergi tentang menyelesaikan ini. 296 00:13:25,200 --> 00:13:32,832 297 00:13:32,832 --> 00:13:35,710 >> PENONTON: Adakah kita dibenarkan kalkulator? 298 00:13:35,710 --> 00:13:37,630 >> PROFESOR: Anda tidak akan memerlukan kalkulator, yeah. 299 00:13:37,630 --> 00:13:42,420 Saya rasa selain asas, saya fikir, adalah semua kamu akan diminta untuk lakukan. 300 00:13:42,420 --> 00:14:41,700 301 00:14:41,700 --> 00:14:45,070 >> Dan hanya jadi saya jenis mempunyai rasa yang bila semua orang sedang dilakukan, mencari, 302 00:14:45,070 --> 00:14:47,429 gelombang, saya tidak tahu, tersenyum, kelihatan gembira jika anda selesai. 303 00:14:47,429 --> 00:14:47,929 Yeah. 304 00:14:47,929 --> 00:17:21,680 305 00:17:21,680 --> 00:17:23,945 Mungkin pasangan yang lebih minit. 306 00:17:23,945 --> 00:18:28,080 307 00:18:28,080 --> 00:18:29,600 >> OK, mari kita menyelaraskannya. 308 00:18:29,600 --> 00:18:31,580 Saya sengaja akan memberikan anda semua masa yang kurang 309 00:18:31,580 --> 00:18:33,760 daripada apa yang anda mungkin perlu sebahagian dari masalah, 310 00:18:33,760 --> 00:18:37,124 hanya kerana saya mahu memastikan bahawa kita akan mendapat melalui sekumpulan masalah. 311 00:18:37,124 --> 00:18:39,290 Jadi tidak perlu bimbang jika anda tidak mempunyai peluang untuk menyelesaikan. 312 00:18:39,290 --> 00:18:43,770 Totally OK selagi anda mempunyai idea tentang bagaimana untuk pergi tentang perkara ini. 313 00:18:43,770 --> 00:18:45,850 Jadi mari kita pergi ke depan dan melakukan yang pertama. 314 00:18:45,850 --> 00:18:52,690 315 00:18:52,690 --> 00:18:57,870 >> Jadi pertama, adakah sesiapa yang mahu beritahu saya dalam binari, apa yang setiap digit ini 316 00:18:57,870 --> 00:19:00,484 mewakili dari segi nilai-nilai mereka? 317 00:19:00,484 --> 00:19:01,250 Ya? 318 00:19:01,250 --> 00:19:03,349 >> PENONTON: dua kepada kuasa sifar, 2-1. 319 00:19:03,349 --> 00:19:04,140 PROFESOR: Tepat sekali. 320 00:19:04,140 --> 00:19:04,640 So. 321 00:19:04,640 --> 00:19:13,430 322 00:19:13,430 --> 00:19:16,430 >> Betul, jadi biasanya apabila kita berada dalam asas 10 323 00:19:16,430 --> 00:19:20,580 semua ini mewakili adalah, seperti, 10 ke pangkal sifar, bukan? 324 00:19:20,580 --> 00:19:21,810 Itulah satu tempat anda. 325 00:19:21,810 --> 00:19:24,520 Semua tempat 10 ini anda adalah 10 kuasa satu. 326 00:19:24,520 --> 00:19:26,600 Tempat anda 100 adalah 10 kepada kuasa dua. 327 00:19:26,600 --> 00:19:29,570 >> Apa asas anda berada dalam akan kaitan dengan perkara yang sama, 328 00:19:29,570 --> 00:19:31,480 hanya dengan asas yang berbeza. 329 00:19:31,480 --> 00:19:34,130 Jadi binari, segala yang ada adalah asas dua. 330 00:19:34,130 --> 00:19:37,110 Anda akan menukar semua digit kepada dua kepada apa sahaja kuasa 331 00:19:37,110 --> 00:19:38,190 digit itu. 332 00:19:38,190 --> 00:19:41,450 Dan sebagainya dalam hal ini, kita boleh mempunyai cara yang lebih mudah 333 00:19:41,450 --> 00:19:43,800 yang dapat menambah atau jumlah semua nombor dalam urutan 334 00:19:43,800 --> 00:19:46,010 untuk menukar ke asas 10. 335 00:19:46,010 --> 00:19:50,362 >> Jadi adakah sesiapa yang mahu untuk memberitahu saya apa yang Jawapan kepada yang pertama adalah dalam asas sepuluh? 336 00:19:50,362 --> 00:19:51,674 >> PENONTON: Dua, [didengar] 337 00:19:51,674 --> 00:19:52,340 PROFESOR: Ya. 338 00:19:52,340 --> 00:19:53,230 PENONTON: 42. 339 00:19:53,230 --> 00:19:56,560 PROFESOR: 42, di sana anda pergi. 340 00:19:56,560 --> 00:20:00,660 Jadi cara kita mendapat jawapan ini adalah dengan melakukan dua yang pertama, yang merupakan dua. 341 00:20:00,660 --> 00:20:02,760 Plus dua pertiga, yang lapan. 342 00:20:02,760 --> 00:20:07,590 Plus dua hingga kelima, yang adalah apa sahaja yang ditinggalkan. 343 00:20:07,590 --> 00:20:09,390 Anda kesimpulan mereka dan ia 42. 344 00:20:09,390 --> 00:20:12,000 >> Ada seorang keliru tentang bagaimana kita dapat itu? 345 00:20:12,000 --> 00:20:15,630 Selain itu, asas, seperti Saya berkata, anda akan OK. 346 00:20:15,630 --> 00:20:17,410 Jika tidak, baik, kita boleh mengamalkan itu juga. 347 00:20:17,410 --> 00:20:18,720 Tetapi itu semua betul. 348 00:20:18,720 --> 00:20:20,560 Sejuk. 349 00:20:20,560 --> 00:20:25,570 >> Adakah sesiapa yang mahu memberi saya menjawab kepada yang kedua juga? 350 00:20:25,570 --> 00:20:26,860 >> 50? 351 00:20:26,860 --> 00:20:27,600 Yang baik. 352 00:20:27,600 --> 00:20:30,044 Sesiapa pun keliru mengenai cara kami mendapat yang sama ada? 353 00:20:30,044 --> 00:20:31,960 Hebat, saya akan mempunyai jawapan pada slaid seterusnya. 354 00:20:31,960 --> 00:20:34,440 Jadi tidak ada kebimbangan jika anda perlu menyalin ke bawah. 355 00:20:34,440 --> 00:20:38,860 >> OK, jadi perenambelasan adalah sedikit lebih sukar. 356 00:20:38,860 --> 00:20:41,840 tetapi saya akan menunjukkan kepada anda semua jalan pintas untuk bagaimana untuk melakukannya. 357 00:20:41,840 --> 00:20:44,800 Jadi perenambelasan, kerana anda ingat, semua itu adalah menjadi 16. 358 00:20:44,800 --> 00:20:48,920 Dan kerana kita sebagai manusia tidak benar-benar mempunyai 16 nombor untuk menyatakan bahawa, 359 00:20:48,920 --> 00:20:56,940 kita pergi dari sifar hingga sembilan, yang pertama kami 10 nilai, dan kemudian kita melakukan A hingga F, 360 00:20:56,940 --> 00:20:58,630 yang merupakan enam nilai yang akan datang. 361 00:20:58,630 --> 00:21:03,040 >> Dan sebagainya cara yang paling mudah untuk pergi dari mana-mana nombor perduaan kepada perenambelasan 362 00:21:03,040 --> 00:21:05,350 adalah untuk memecahkan mereka ke dalam bahagian. 363 00:21:05,350 --> 00:21:10,042 Dan supaya mana-mana nombor binari kami akan memberikan anda mungkin akan mempunyai lapan digit. 364 00:21:10,042 --> 00:21:11,750 Anda hanya boleh memecahkan mereka di tengah-tengah. 365 00:21:11,750 --> 00:21:17,460 >> Jadi pertama one-- salah satu, salah satu, satu, satu, satu satu. 366 00:21:17,460 --> 00:21:21,340 Jenis fikir ia, anda tahu, menarik tanda palang atau koma dalam antara mereka. 367 00:21:21,340 --> 00:21:23,800 Dan anda hanya boleh menukar langsung apa sahaja 368 00:21:23,800 --> 00:21:26,670 ini adalah untuk pertama beberapa perenambelasan, 369 00:21:26,670 --> 00:21:29,880 dan apa sahaja di sini adalah untuk kedua perenambelasan. 370 00:21:29,880 --> 00:21:37,584 >> Jadi ingat dari notasi yang sama, apa nilai perenambelasan bermula dengan? 371 00:21:37,584 --> 00:21:38,460 >> PENONTON: Zero. 372 00:21:38,460 --> 00:21:39,270 >> PROFESOR: 0x. 373 00:21:39,270 --> 00:21:45,210 Jadi kita tahu bahawa bila-bila masa kami meminta anda untuk menukar mana-mana nombor untuk perenambelasan, 374 00:21:45,210 --> 00:21:48,230 atau bila-bila masa anda melihat apa-apa nombor yang bermula dengan 0x, 375 00:21:48,230 --> 00:21:50,230 anda tahu bahawa ia adalah satu nilai perenambelasan. 376 00:21:50,230 --> 00:21:54,160 >> Dan kemudian anda akan diminta untuk menentukan apa dua digit berada. 377 00:21:54,160 --> 00:21:59,690 Dan cara yang anda lakukan itu, penjumlahan undi sehingga yang separuh dan penjumlahan undi setengah itu. 378 00:21:59,690 --> 00:22:02,870 Jadi, dalam contoh ini, apa akan satu, satu, satu, satu boleh? 379 00:22:02,870 --> 00:22:04,890 Apakah nilai yang yang boleh? 380 00:22:04,890 --> 00:22:06,040 Yang akan menjadi F, bukan? 381 00:22:06,040 --> 00:22:08,050 Yang akan menjadi 15. 382 00:22:08,050 --> 00:22:11,780 >> Jadi ini akan menjadi F. Satu, satu, satu, satu di sini juga 383 00:22:11,780 --> 00:22:21,270 F. Jadi satu, satu, satu, satu, satu, satu, satu, satu dalam perenambelasan, semua itu adalah 0xFF. 384 00:22:21,270 --> 00:22:25,350 Kerana separuh ini diwakili F, nilai 15, 385 00:22:25,350 --> 00:22:27,331 setengah ini diwakili F, nilai 15. 386 00:22:27,331 --> 00:22:29,456 Kerana ingat, kami mengira dari sifar hingga sembilan. 387 00:22:29,456 --> 00:22:35,290 A adalah seperti 10, B adalah seperti 11, F ialah 15. 388 00:22:35,290 --> 00:22:41,690 >> Adakah ini masuk akal untuk semua orang bagaimana kita dapat dari perduaan kepada perenambelasan? 389 00:22:41,690 --> 00:22:44,595 >> PENONTON: Dan bagaimana kita dapat 15 daripada satu, satu, satu, satu? 390 00:22:44,595 --> 00:22:46,220 PROFESOR: Ya, ini adalah binari, bukan? 391 00:22:46,220 --> 00:22:48,090 Bayangkan ini adalah hanya satu nombor binari. 392 00:22:48,090 --> 00:22:50,792 Jadi, anda mempunyai dua orang ke 0, yang merupakan salah. 393 00:22:50,792 --> 00:22:51,500 PENONTON: Oh, OK. 394 00:22:51,500 --> 00:22:51,670 Jadi anda hanya total keluar. 395 00:22:51,670 --> 00:22:52,670 >> PROFESOR: Ya, dan kemudian anda hanya jumlah yang keluar. 396 00:22:52,670 --> 00:22:53,380 Itu sahaja yang ia adalah. 397 00:22:53,380 --> 00:22:54,890 >> PENONTON: OK. 398 00:22:54,890 --> 00:22:55,830 >> PROFESOR: OK. 399 00:22:55,830 --> 00:23:00,740 >> PENONTON: Jadi yang anda pergi dari binari kepada perpuluhan kepada perenambelasan? 400 00:23:00,740 --> 00:23:04,590 >> PROFESOR: Itulah Cara yang paling mudah untuk berbuat demikian, ya. 401 00:23:04,590 --> 00:23:11,390 Anda tidak akan perpuluhan kerana perpuluhan hanya mempunyai sifar hingga sembilan. 402 00:23:11,390 --> 00:23:13,410 Kami hanya jenis membelah ini kepada dua. 403 00:23:13,410 --> 00:23:15,201 >> PENONTON: [didengar] menggunakan perpuluhan untuk mencari 404 00:23:15,201 --> 00:23:17,809 apa yang ia perlawanan sehingga dalam perenambelasan. 405 00:23:17,809 --> 00:23:20,100 PROFESOR: Maksud saya, anda penjumlahan undi dengan menggunakan matematik asas. 406 00:23:20,100 --> 00:23:20,725 PENONTON: Ya. 407 00:23:20,725 --> 00:23:22,300 PROFESOR: Ya, cukup banyak. 408 00:23:22,300 --> 00:23:23,630 Ia adalah agak mengelirukan. 409 00:23:23,630 --> 00:23:26,410 Tetapi hanya tahu bahawa anda boleh membahagikan apa sahaja 410 00:23:26,410 --> 00:23:28,160 nilai ini ke dalam hanya bahagian. 411 00:23:28,160 --> 00:23:29,570 , Sesungguhnya yang demikian dalam binari? 412 00:23:29,570 --> 00:23:30,610 Apa nombor itu? 413 00:23:30,610 --> 00:23:33,270 Ia akan menjadi sesuatu yang dari sifar hingga F. 414 00:23:33,270 --> 00:23:35,722 >> Di sini juga akan menjadi sesuatu yang dari sifar hingga F. 415 00:23:35,722 --> 00:23:37,722 Dan kemudian anda hanya boleh meletakkan kedua-dua di sana. 416 00:23:37,722 --> 00:23:38,263 >> PENONTON: OK. 417 00:23:38,263 --> 00:23:38,910 PROFESOR: Ya. 418 00:23:38,910 --> 00:23:39,410 OKAY. 419 00:23:39,410 --> 00:23:42,320 Jadi, anda lelaki mahu cuba yang seterusnya itu? 420 00:23:42,320 --> 00:23:49,601 Sifar, satu, sifar satu, satu, sifar, satu sifar. 421 00:23:49,601 --> 00:23:52,350 Saya akan memberikan anda semua suka 30 saat, kerana anda mungkin tidak tahu 422 00:23:52,350 --> 00:23:53,850 helah untuk bagaimana untuk melakukan ini lebih awal. 423 00:23:53,850 --> 00:24:24,950 424 00:24:24,950 --> 00:24:27,381 >> OK, sesiapa ingin mendapatkan satu ini pukulan? 425 00:24:27,381 --> 00:24:28,774 >> 0X5A. 426 00:24:28,774 --> 00:24:29,440 PROFESOR: 0X5A. 427 00:24:29,440 --> 00:24:30,470 5a. 428 00:24:30,470 --> 00:24:31,340 Yang baik. 429 00:24:31,340 --> 00:24:37,050 Jadi ini di sini akan adalah- anda mahu untuk memberitahu kami bagaimana anda mendapat bahawa? 430 00:24:37,050 --> 00:24:38,920 Pertama, bagaimana engkau masuk ke lima? 431 00:24:38,920 --> 00:24:42,030 >> PENONTON: Kerana sifar, satu, sifar, satu ialah lima. 432 00:24:42,030 --> 00:24:45,170 >> PROFESOR: Adakah semua orang faham mengapa sifar, satu, sifar, satu lima? 433 00:24:45,170 --> 00:24:46,260 Anda telah mendapat satu di sini. 434 00:24:46,260 --> 00:24:48,010 Anda mempunyai apa-apa dalam dua yang pertama. 435 00:24:48,010 --> 00:24:50,300 Dalam dua hingga kedua, anda mempunyai satu, yang empat. 436 00:24:50,300 --> 00:24:52,600 Jadi, anda menambah empat campur satu, anda mempunyai lima. 437 00:24:52,600 --> 00:24:53,600 Semua orang yang baik? 438 00:24:53,600 --> 00:24:54,100 OKAY. 439 00:24:54,100 --> 00:24:56,570 Dan kemudian apa ini menjadi dan mengapa? 440 00:24:56,570 --> 00:24:58,350 Apakah nombor yang tidak sesuai dengan A? 441 00:24:58,350 --> 00:24:59,350 >> PENONTON: 10. 442 00:24:59,350 --> 00:25:00,976 >> PROFESOR: Dan apa ini dalam asas dua? 443 00:25:00,976 --> 00:25:01,850 PENONTON: [didengar] 444 00:25:01,850 --> 00:25:03,010 PROFESOR: Tepat sekali. 445 00:25:03,010 --> 00:25:06,370 Jadi nilai kedua ini di sini akan menjadi 0X5A. 446 00:25:06,370 --> 00:25:08,410 >> Semua orang yang baik tentang bagaimana untuk menukar? 447 00:25:08,410 --> 00:25:10,770 Ia lebih mudah daripada anda fikir ia. 448 00:25:10,770 --> 00:25:13,330 Saya hanya ingin memastikan anda tahu tips berguna 449 00:25:13,330 --> 00:25:14,950 dan cara untuk bagaimana untuk berbuat demikian. 450 00:25:14,950 --> 00:25:18,432 >> PENONTON: Kenapa anda hanya berpecah ia di tengah-tengah seperti itu? 451 00:25:18,432 --> 00:25:21,390 Hanya menjadi seperti, OK, saya hanya akan mengambil berat mengenai pertama [didengar]? 452 00:25:21,390 --> 00:25:24,240 >> PROFESOR: Kerana itulah sebenarnya cara nilai perenambelasan diwakili. 453 00:25:24,240 --> 00:25:26,890 0x, yang sebenarnya bermaksud apa-apa selain daripada memberitahu anda 454 00:25:26,890 --> 00:25:28,710 bahawa itu nombor perenambelasan. 455 00:25:28,710 --> 00:25:31,580 Dan ini sentiasa mewakili yang pertama empat digit. 456 00:25:31,580 --> 00:25:34,330 Dan ini sentiasa mewakili empat digit terakhir. 457 00:25:34,330 --> 00:25:37,835 Dan supaya kedua-dua digit sahaja sesuai dengan bit yang berbeza. 458 00:25:37,835 --> 00:25:39,200 >> PENONTON: Oleh itu, kita akan always-- 459 00:25:39,200 --> 00:25:41,830 >> PROFESOR: Anda sentiasa akan mendapat lapan bit nilai. 460 00:25:41,830 --> 00:25:44,580 >> PENONTON: Adakah itu sama seperti perkara yang sini atau bahawa satu perkara yang seluruh badan? 461 00:25:44,580 --> 00:25:46,883 PROFESOR: Itu hanya satu perkara dalam komputer, yep. 462 00:25:46,883 --> 00:25:47,424 PENONTON: OK. 463 00:25:47,424 --> 00:25:48,240 Awesome. 464 00:25:48,240 --> 00:25:51,290 >> PROFESOR: Juga, jadi dalam contoh ini kita ditukar dari perduaan kepada perpuluhan, 465 00:25:51,290 --> 00:25:53,290 dan dari perduaan kepada perenambelasan. 466 00:25:53,290 --> 00:25:56,610 Kalian ingin memastikan anda juga mengamalkan berlaku dengan cara yang lain di seluruh. 467 00:25:56,610 --> 00:26:03,370 Jadi, jika aku telah memberi 0xFF, anda boleh menarik bahawa di dalam binari, bukan? 468 00:26:03,370 --> 00:26:06,820 >> Anda menukar F ke dalam binari, yang merupakan salah satu, satu, satu, satu, 469 00:26:06,820 --> 00:26:09,380 menukar F kepada perduaan, yang adalah satu, satu, satu, satu. 470 00:26:09,380 --> 00:26:11,310 >> Oleh itu, kita mungkin meminta anda untuk melakukan sebaliknya. 471 00:26:11,310 --> 00:26:14,817 Jadi perpuluhan kepada perduaan, atau perenambelasan kepada binari. 472 00:26:14,817 --> 00:26:16,650 Jadi, anda ingin pasti anda tahu kedua-dua cara. 473 00:26:16,650 --> 00:26:19,371 Kita mungkin akan meminta anda gabungan kedua-duanya. 474 00:26:19,371 --> 00:26:20,660 >> Ya, anda mempunyai soalan? 475 00:26:20,660 --> 00:26:22,724 Saya boleh see-- anda baik? 476 00:26:22,724 --> 00:26:23,348 PENONTON: Ya. 477 00:26:23,348 --> 00:26:24,560 PROFESOR: OK. 478 00:26:24,560 --> 00:26:26,101 Am I baik untuk memadam ini? 479 00:26:26,101 --> 00:26:26,600 Yang besar. 480 00:26:26,600 --> 00:26:33,965 481 00:26:33,965 --> 00:26:40,437 >> Baiklah, jadi jawapan di sini jika sesiapa Adalah menghairankan kemudian hari dan keliru. 482 00:26:40,437 --> 00:26:41,844 OKAY. 483 00:26:41,844 --> 00:26:46,070 >> PENONTON: Adakah ia perkara jika kita meletakkan surat kami di gedung DPR atau huruf kecil? 484 00:26:46,070 --> 00:26:50,360 >> PROFESOR: Ia lakukan, kerana dalam perenambelasan, melalui konvensyen, 485 00:26:50,360 --> 00:26:52,840 semua watak-watak yang huruf besar. 486 00:26:52,840 --> 00:26:54,650 Jadi A hingga F adalah akan menjadi huruf besar. 487 00:26:54,650 --> 00:26:58,660 Jika anda meletakkan huruf kecil, saya tidak tahu jika kita semestinya akan menandakan kesilapan. 488 00:26:58,660 --> 00:27:00,679 Tetapi secara teori, itu bukan teknikal 489 00:27:00,679 --> 00:27:01,970 bagaimana anda sepatutnya mempunyai. 490 00:27:01,970 --> 00:27:03,303 Jadi mereka semua harus huruf besar. 491 00:27:03,303 --> 00:27:05,910 Ya, soalan yang baik. 492 00:27:05,910 --> 00:27:07,780 >> OKAY. 493 00:27:07,780 --> 00:27:08,790 Soalan kedua. 494 00:27:08,790 --> 00:27:12,750 Anggaplah program ini indah di sini. 495 00:27:12,750 --> 00:27:15,180 Saya akan bertanya soalan, Saya akan kembali ini. 496 00:27:15,180 --> 00:27:23,170 >> Jadi, pertama, apa yang di dalam standard io.h itu menarik minat program ini? 497 00:27:23,170 --> 00:27:26,640 Kedua, apa yang tidak sah menandakan selaras tiga? 498 00:27:26,640 --> 00:27:30,572 Dan ketiga, apa yang kembali dari sifar utama, sebagai garis enam, biasanya menandakan? 499 00:27:30,572 --> 00:27:33,280 Jika anda semua mahu menulis mereka ke bawah, kerana saya mempunyai untuk menukar kembali 500 00:27:33,280 --> 00:27:36,810 ke slaid hanya supaya anda boleh melihat kod. 501 00:27:36,810 --> 00:27:40,400 Ini adalah satu contoh, seperti, mungkin soalan tahap lebih tinggi di mana kami meminta anda 502 00:27:40,400 --> 00:27:42,435 apa artinya dalam program. 503 00:27:42,435 --> 00:27:47,290 504 00:27:47,290 --> 00:27:49,215 >> Semua orang baik bagi saya untuk kembali ke slaid? 505 00:27:49,215 --> 00:27:53,400 506 00:27:53,400 --> 00:27:54,361 OK, sejuk. 507 00:27:54,361 --> 00:27:57,610 Jadi saya akan memberikan anda semua suka mungkin tiga minit untuk melihat cepat satu ini nyata. 508 00:27:57,610 --> 00:28:41,330 509 00:28:41,330 --> 00:28:44,140 >> OK, jadi ini seseorang seperti agak mudah, dari segi konsep. 510 00:28:44,140 --> 00:28:49,280 Adakah sesiapa yang ingin memberitahu saya apa yang pertama dalam oleh hash termasuk 511 00:28:49,280 --> 00:28:52,630 Fail perpustakaan io.h standard kami? 512 00:28:52,630 --> 00:28:55,510 Mengapa kita memerlukan perpustakaan yang termasuk untuk program ini? 513 00:28:55,510 --> 00:28:56,930 Apa yang di sini kita memerlukannya untuk? 514 00:28:56,930 --> 00:28:56,980 >> Ya? 515 00:28:56,980 --> 00:28:58,340 >> PENONTON: Adakah itu apabila anda meletakkan printf itu? 516 00:28:58,340 --> 00:28:59,131 >> PROFESOR: Tepat sekali. 517 00:28:59,131 --> 00:29:01,780 Jadi printf, bila-bila masa anda mengambil input daripada pengguna 518 00:29:01,780 --> 00:29:04,140 dan mencetak sesuatu ke skrin, itu 519 00:29:04,140 --> 00:29:05,600 input standard, perpustakaan output. 520 00:29:05,600 --> 00:29:07,170 Fikirkan ia yang way-- input, output. 521 00:29:07,170 --> 00:29:08,430 >> Adakah saya perlu output? 522 00:29:08,430 --> 00:29:09,207 Ya saya. 523 00:29:09,207 --> 00:29:12,040 Jadi saya tahu bahawa saya sentiasa akan memerlukan perpustakaan Standardize i.o. 524 00:29:12,040 --> 00:29:16,400 >> Jadi printf adalah fungsi yang mana kita perlu untuk mengakses 525 00:29:16,400 --> 00:29:19,370 dan hashtag termasuk perpustakaan i.o standard. 526 00:29:19,370 --> 00:29:20,280 OKAY. 527 00:29:20,280 --> 00:29:22,660 >> Kedua, apakah sah menandakan? 528 00:29:22,660 --> 00:29:26,970 Kami mempunyai int main (tidak sah), apakah tidak sah di sini bermakna di sini pada baris tiga? 529 00:29:26,970 --> 00:29:28,080 Ya, di belakang. 530 00:29:28,080 --> 00:29:29,020 >> PENONTON: [didengar] 531 00:29:29,020 --> 00:29:29,920 >> PROFESOR: Tepat sekali. 532 00:29:29,920 --> 00:29:33,320 Jadi ingat, kita telah belajar bermula dengan pset kami 533 00:29:33,320 --> 00:29:35,360 bahawa anda boleh sebenarnya menentukan baris arahan 534 00:29:35,360 --> 00:29:39,010 hujah-hujah yang program anda, bahawa anda fungsi utama, mengambil masa anda, pengguna, 535 00:29:39,010 --> 00:29:39,650 memanggilnya. 536 00:29:39,650 --> 00:29:42,650 Jika kita mempunyai tidak sah, yang bermakna bahawa anda hanya boleh menjalankan program ini secara langsung 537 00:29:42,650 --> 00:29:44,680 tanpa apa-apa hujah baris arahan. 538 00:29:44,680 --> 00:29:46,160 Semua orang jelas pada itu? 539 00:29:46,160 --> 00:29:46,660 OKAY. 540 00:29:46,660 --> 00:29:52,850 >> Dan akhir sekali mengapa kita bersusah payah melakukan Perkara pulangan sifar ini di sini? 541 00:29:52,850 --> 00:29:54,740 Mengapa kita walaupun mempunyai utama int? 542 00:29:54,740 --> 00:29:57,330 Mengapa tidak boleh kita hanya perlu sah utama tidak sah? 543 00:29:57,330 --> 00:29:59,216 Ya? 544 00:29:59,216 --> 00:30:01,590 PENONTON: Hanya supaya kita dapat pastikan bahawa program ini adalah 545 00:30:01,590 --> 00:30:04,247 keluar dengan jayanya, sebagai berbanding dengan jika ia bernombor. 546 00:30:04,247 --> 00:30:06,580 Dan kita akan tahu bahawa itulah pelbagai jenis kesalahan. 547 00:30:06,580 --> 00:30:07,621 >> PROFESOR: Ya, betul-betul. 548 00:30:07,621 --> 00:30:10,670 Ini hanyalah sangat perkara konvensional yang kita lakukan, 549 00:30:10,670 --> 00:30:13,840 adalah bahawa hanya pada akhir program anda, hanya untuk memastikan 550 00:30:13,840 --> 00:30:15,830 bahawa fungsi utama anda sedang berjalan dengan betul, 551 00:30:15,830 --> 00:30:17,940 kita sentiasa mahu lakukan pulangan sifar. 552 00:30:17,940 --> 00:30:21,160 Walaupun kita boleh semestinya tidak melihat bahawa dicetak di mana sahaja. 553 00:30:21,160 --> 00:30:25,092 >> Kerana sebagai pengaturcara, anda tahu, jika anda mempunyai banyak laluan yang berbeza kod 554 00:30:25,092 --> 00:30:27,050 dan anda tidak tahu di mana ini berlaku salah, 555 00:30:27,050 --> 00:30:30,240 dan jika ralat berlaku anda mahu memastikan bahawa anda mendapat ralat itu. 556 00:30:30,240 --> 00:30:33,240 Dan sebagainya biasanya jika ada masalah salah kita akan mempunyai pulangan sebanyak satu hanya 557 00:30:33,240 --> 00:30:34,669 memastikan kita tahu bahawa ia adalah. 558 00:30:34,669 --> 00:30:36,460 Jadi jika anda melihat pulangan yang sifar, yang biasanya 559 00:30:36,460 --> 00:30:38,293 bermakna program anda adalah dilaksanakan dengan jayanya. 560 00:30:38,293 --> 00:30:40,490 561 00:30:40,490 --> 00:30:40,990 Baik? 562 00:30:40,990 --> 00:30:45,180 563 00:30:45,180 --> 00:30:45,680 Sejuk. 564 00:30:45,680 --> 00:30:48,710 565 00:30:48,710 --> 00:30:52,680 >> OK, program kedua di sini. 566 00:30:52,680 --> 00:30:54,827 Pertimbangkan bahawa. 567 00:30:54,827 --> 00:30:56,910 Dan jika anda semua melihat terapung, anda semua boleh mungkin 568 00:30:56,910 --> 00:31:00,810 mempunyai idea yang baik dari apa yang Saya akan bertanya kepada anda. 569 00:31:00,810 --> 00:31:05,200 >> Oleh itu, apabila program ini melaksanakan, seperti yang anda lihat, 570 00:31:05,200 --> 00:31:09,330 Aku memberitahu apungan dalam fungsi utama saya. 571 00:31:09,330 --> 00:31:13,470 Saya menamakan ia "menjawab," dan saya menetapkan yang sama dengan satu dibahagikan dengan 10. 572 00:31:13,470 --> 00:31:17,860 Saya mencetak keluar, untuk satu tempat perpuluhan, float itu. 573 00:31:17,860 --> 00:31:19,880 Dan kemudian saya kembali sifar. 574 00:31:19,880 --> 00:31:24,470 >> Oleh itu, apabila melaksanakan program ini, berfikir kembali kepada tamak sekarang, 575 00:31:24,470 --> 00:31:26,550 program ini mencetak 0.0. 576 00:31:26,550 --> 00:31:29,993 Seperti yang kita semua tahu, mudah-mudahan kita semua tahu, satu dibahagikan dengan 10 bukan 0.00, 577 00:31:29,993 --> 00:31:32,350 ia adalah 0.1. 578 00:31:32,350 --> 00:31:37,810 Tetapi menjelaskan mengapa program ini difikirkan bahawa 1 dibahagikan dengan 10 cetakan kepada 0.1 lain 579 00:31:37,810 --> 00:31:39,504 daripada 0.1? 580 00:31:39,504 --> 00:31:42,545 Saya akan memberikan anda semua mungkin seperti 30 saat untuk hanya cepat berfikir tentang itu 581 00:31:42,545 --> 00:31:43,878 dan saya akan kembali kepada program ini. 582 00:31:43,878 --> 00:32:17,800 583 00:32:17,800 --> 00:32:20,290 >> OKAY. 584 00:32:20,290 --> 00:32:22,205 Sesiapa yang mahu mencuba? 585 00:32:22,205 --> 00:32:24,330 Dalam tiga ayat atau kurang, kerana biasanya kami 586 00:32:24,330 --> 00:32:27,650 akan menyekat semua jawapan hingga tiga ayat atau kurang 587 00:32:27,650 --> 00:32:31,130 supaya anda tidak hanya muntah benda-benda rawak ke kuiz anda. 588 00:32:31,130 --> 00:32:32,740 >> Ya, mengambil pukulan. 589 00:32:32,740 --> 00:32:36,390 >> PENONTON: Jadi saya fikir ada ini Perkara yang dipanggil, seperti, [didengar] 590 00:32:36,390 --> 00:32:42,320 Jadi mungkin terdapat, misalnya, mungkin ada, seperti, 0.09, 591 00:32:42,320 --> 00:32:47,250 bahawa jika anda mencetak pertama angka, ia akan menjadi kepada 0.0? 592 00:32:47,250 --> 00:32:49,100 >> PROFESOR: Tutup, tidak cukup. 593 00:32:49,100 --> 00:32:49,810 Christabell? 594 00:32:49,810 --> 00:32:51,770 >> PENONTON: Anda membahagi satu dan 10, dan mereka kedua-dua integer. 595 00:32:51,770 --> 00:32:54,610 Dan jadi cara bahawa ia akan untuk menyimpannya seperti integer. 596 00:32:54,610 --> 00:32:56,480 Dan sebagainya integer yang paling hampir akan menjadi 0.0. 597 00:32:56,480 --> 00:32:57,471 Dan supaya 0.1. 598 00:32:57,471 --> 00:32:58,970 PROFESOR: Ya, itu benar-benar baik. 599 00:32:58,970 --> 00:33:00,040 Itulah jawapan yang betul. 600 00:33:00,040 --> 00:33:03,597 Jadi ini adalah sangat mengelirukan konsep untuk banyak anak-anak. 601 00:33:03,597 --> 00:33:06,680 Dan saya benar-benar mahu memastikan bahawa ini diperkukuh di kepala semua orang. 602 00:33:06,680 --> 00:33:10,090 >> Jadi apa yang kita panggil terapung titik ketakpersisan, 603 00:33:10,090 --> 00:33:12,800 mana sebab mengapa banyak program anda dalam tamak 604 00:33:12,800 --> 00:33:17,010 tidak berjaya pada mulanya kerana anda terlupa untuk membuang variabel. 605 00:33:17,010 --> 00:33:19,370 Jadi apa Christabell berkata adalah betul. 606 00:33:19,370 --> 00:33:21,990 >> Float A adalah sifat yang tidak tepat. 607 00:33:21,990 --> 00:33:26,400 Kerana dalam komputer, betul, kita mempunyai jumlah yang terhad bit memori 608 00:33:26,400 --> 00:33:28,480 kita boleh menggunakan untuk mewakili nombor. 609 00:33:28,480 --> 00:33:33,480 Jadi, sebagai contoh, ID CS50 ini is-- Saya fikir ia adalah satu komputer 64-bit. 610 00:33:33,480 --> 00:33:37,520 >> Float hanya boleh diwakili dengan jumlah yang terhingga bit-bit. 611 00:33:37,520 --> 00:33:42,260 Dan sebagainya 0.1 dengan sifar tak terhingga, bahawa adalah 0.1 adalah, bukan? 612 00:33:42,260 --> 00:33:45,450 Tetapi kita tidak boleh benar-benar menyimpan jumlah itu dalam komputer kita. 613 00:33:45,450 --> 00:33:47,810 Kami hanya tidak mempunyai memori yang cukup untuk berbuat demikian. 614 00:33:47,810 --> 00:33:52,340 >> Dan sebagainya penghampiran terdekat apa yang disimpan dalam memori sebenarnya 615 00:33:52,340 --> 00:33:55,390 sesuatu seperti 0,000 sesuatu, sesuatu, sesuatu, sesuatu. 616 00:33:55,390 --> 00:34:01,240 Yang, sebaik sahaja anda memendekkan itu, pusingan turun ke 0.0. 617 00:34:01,240 --> 00:34:05,640 >> Dan sebagainya contoh ini hanya salah satu yang menunjukkan banyak isu-isu 618 00:34:05,640 --> 00:34:08,469 kita ada setiap kali kita berada cuba untuk tidak betul melakukan matematik 619 00:34:08,469 --> 00:34:11,000 tanpa pemutus sebagai integer yang berbeza. 620 00:34:11,000 --> 00:34:14,870 Jadi hanya berhati-hati dengan perkara ini berlaku. 621 00:34:14,870 --> 00:34:18,239 >> Pada kuiz, jika kita memberikan anda satu blok kod dan ia seperti, 622 00:34:18,239 --> 00:34:19,510 apa yang mencetak keluar pada akhir? 623 00:34:19,510 --> 00:34:24,096 Dan jika ia beberapa nilai rawak anda lelaki perlu tahu mengapa yang berlaku. 624 00:34:24,096 --> 00:34:24,909 Ya? 625 00:34:24,909 --> 00:34:27,926 >> PENONTON: Truncate adalah menghilangkan segala-galanya selepas titik tertentu? 626 00:34:27,926 --> 00:34:28,513 [Didengar] 627 00:34:28,513 --> 00:34:30,929 PROFESOR: Ya, jadi sebenarnya ini adalah satu contoh yang benar-benar buruk, 628 00:34:30,929 --> 00:34:37,870 kerana 0.100 apa sebenarnya akan memendekkan turun ke 0.1. 629 00:34:37,870 --> 00:34:41,389 Tetapi jika anda adalah untuk menjalankan kitab itu saya tidak ingat, kerana tahun lalu mereka 630 00:34:41,389 --> 00:34:42,830 berlari pada program yang berbeza. 631 00:34:42,830 --> 00:34:45,300 Mereka berlari dalam sesuatu dipanggil Appliance CS50, yang 632 00:34:45,300 --> 00:34:46,389 berbeza dengan ID. 633 00:34:46,389 --> 00:34:48,520 Mereka itu adalah satu sistem 32-bit, saya fikir. 634 00:34:48,520 --> 00:34:50,290 Dan sebagainya terdapat nombor yang berlainan. 635 00:34:50,290 --> 00:34:53,330 >> Tetapi pada dasarnya, hanya tahu bahawa keseluruhan konsep pemangkasan 636 00:34:53,330 --> 00:34:54,815 dan bagaimana ia hanya memotong berselindung. 637 00:34:54,815 --> 00:34:55,690 Dan jadi jika ia rounds-- 638 00:34:55,690 --> 00:34:56,300 >> PENONTON: Tanpa penggenapan. 639 00:34:56,300 --> 00:34:57,370 >> PROFESOR: Tepat sekali. 640 00:34:57,370 --> 00:34:57,870 Yeah. 641 00:34:57,870 --> 00:35:02,330 642 00:35:02,330 --> 00:35:04,380 Sejuk. 643 00:35:04,380 --> 00:35:05,250 >> Hi, di belakang. 644 00:35:05,250 --> 00:35:07,634 Kami hanya pergi ke atas beberapa kajian kuiz soalan. 645 00:35:07,634 --> 00:35:08,430 >> Baiklah. 646 00:35:08,430 --> 00:35:10,150 Oleh itu fikirkanlah program yang berbeza di sini. 647 00:35:10,150 --> 00:35:12,797 648 00:35:12,797 --> 00:35:15,380 Saya akan memberikan anda semua yang beberapa minit untuk membaca lebih ini. 649 00:35:15,380 --> 00:35:18,588 Ini adalah sesuatu yang adalah untuk yang sangat baru-baru ini yang saya rasa meniup banyak daripada anda 650 00:35:18,588 --> 00:35:19,142 fikiran lelaki itu. 651 00:35:19,142 --> 00:35:21,100 Tetapi kita akan bercakap melalui ini sekali lagi hanya 652 00:35:21,100 --> 00:35:24,152 untuk memastikan anda memahami sepenuhnya. 653 00:35:24,152 --> 00:35:24,652 OKAY. 654 00:35:24,652 --> 00:35:41,280 655 00:35:41,280 --> 00:35:41,780 OKAY. 656 00:35:41,780 --> 00:35:44,342 Sesiapa sahaja memerlukan lebih masa untuk membaca kod ini? 657 00:35:44,342 --> 00:35:45,650 OKAY. 658 00:35:45,650 --> 00:35:50,630 >> Oleh itu, ia seolah-olah saya bahawa dalam program ini saya 659 00:35:50,630 --> 00:35:53,460 mewujudkan dua tali dengan menggunakan GetString. 660 00:35:53,460 --> 00:35:55,180 Satu dipanggil s dan satu dipanggil t. 661 00:35:55,180 --> 00:35:58,680 Dan jika mereka sama sama dengan satu sama lain, 662 00:35:58,680 --> 00:36:00,880 ia perlu mencetak "Anda menaip perkara yang sama. " 663 00:36:00,880 --> 00:36:04,170 >> Tetapi elsewise, ia akan mencetak, "Anda ditaip perkara yang berbeza, "kan? 664 00:36:04,170 --> 00:36:05,990 Seolah-olah sangat, sangat mudah. 665 00:36:05,990 --> 00:36:08,720 Tetapi, bagaimanapun, jika saya benar-benar cuba untuk menulis program ini, 666 00:36:08,720 --> 00:36:12,230 ia seolah-olah bahawa walaupun saya input tali sama, 667 00:36:12,230 --> 00:36:15,490 ia masih mencetak keluar, "Anda ditaip perkara yang berbeza! " 668 00:36:15,490 --> 00:36:18,020 Adakah sesiapa yang mahu mengambil pukulan pada mengapa program ini sentiasa 669 00:36:18,020 --> 00:36:20,370 respons bahawa input adalah berbeza, walaupun 670 00:36:20,370 --> 00:36:22,090 apabila perkataan itu sendiri adalah sama? 671 00:36:22,090 --> 00:36:24,870 672 00:36:24,870 --> 00:36:29,170 >> Jadi jika saya input-- David cinta menggunakan contoh seperti ibu, bukan? 673 00:36:29,170 --> 00:36:37,890 Huruf kecil M-O-M untuk S, T sama dengan huruf kecil M-O-M. 674 00:36:37,890 --> 00:36:40,340 Jika saya berlari ini melalui kod yang, mengapa ia 675 00:36:40,340 --> 00:36:44,180 mencetak "anda taip perkara yang berbeza?" 676 00:36:44,180 --> 00:36:46,336 >> Adakah sesiapa yang memerlukan lebih banyak masa untuk berfikir tentang perkara ini? 677 00:36:46,336 --> 00:36:47,294 OK, saya rasa kita baik. 678 00:36:47,294 --> 00:36:48,716 Ya? 679 00:36:48,716 --> 00:36:53,930 >> PENONTON: OK, jadi ia sesuatu tentang di mana ia disimpan dalam memori, bukan? 680 00:36:53,930 --> 00:36:54,890 >> PROFESOR: Ya. 681 00:36:54,890 --> 00:37:00,400 >> PENONTON: Di mana ia seperti, jika ini rentetan s disimpan di ingatan spot-- 682 00:37:00,400 --> 00:37:01,689 Saya mencipta this-- adalah sifar. 683 00:37:01,689 --> 00:37:02,355 PROFESOR: Pasti. 684 00:37:02,355 --> 00:37:05,290 PENONTON: Dan tali t disimpan di tempat ingatan, 685 00:37:05,290 --> 00:37:11,000 seperti, 167, dan kemudian sifar tidak sama 167. 686 00:37:11,000 --> 00:37:12,610 >> PROFESOR: Tepat sekali. 687 00:37:12,610 --> 00:37:18,350 OK, jadi ingat ini yang luar biasa wahyu yang kami terangkan kepada anda semua 688 00:37:18,350 --> 00:37:21,530 ini minggu lalu, yang tali tidak benar-benar wujud? 689 00:37:21,530 --> 00:37:25,380 Apabila kita membuat sesuatu yang dinamakan rentetan kita, pada hakikatnya, 690 00:37:25,380 --> 00:37:29,330 mewujudkan sesuatu yang dinamakan char bintang. 691 00:37:29,330 --> 00:37:34,470 Yang semua itu adalah penunjuk kepada rentetan atau pelbagai aksara. 692 00:37:34,470 --> 00:37:39,480 >> Dan sebagainya dalam contoh ini, jika saya adalah untuk input M-O-M cara 693 00:37:39,480 --> 00:37:49,350 bahawa komputer saya akan menyimpannya adalah dalam memori backslash sifar, bukan? 694 00:37:49,350 --> 00:37:53,180 Mereka empat aksara, aksara, akan disimpan di suatu tempat. 695 00:37:53,180 --> 00:37:59,290 >> Dan kemudian keempat-empat aksara, garis sendeng terbalik sifar, 696 00:37:59,290 --> 00:38:01,275 disimpan di tempat lain, bukan? 697 00:38:01,275 --> 00:38:04,685 Saya tidak tahu di mana alamat adalah, mereka di suatu tempat di komputer saya. 698 00:38:04,685 --> 00:38:07,080 Tetapi saya tidak betul-betul tahu di mana mereka berada. 699 00:38:07,080 --> 00:38:10,170 >> Apabila saya membuat rentetan s, semua yang benar-benar adalah 700 00:38:10,170 --> 00:38:15,550 adalah penunjuk kepada mula tali ini. 701 00:38:15,550 --> 00:38:21,130 Dan apabila saya mencipta nilai t ini, segala yang ada penunjuk ke sini. 702 00:38:21,130 --> 00:38:23,980 Dan apabila anda cuba untuk menyamakan dan memeriksa 703 00:38:23,980 --> 00:38:27,710 untuk melihat jika s adalah sama rata sama dengan t, komputer 704 00:38:27,710 --> 00:38:31,635 adalah benar-benar hanya kembali ke anda alamat m ini 705 00:38:31,635 --> 00:38:33,390 dan alamat m itu. 706 00:38:33,390 --> 00:38:36,230 Dan kerana mereka dua keping berasingan data 707 00:38:36,230 --> 00:38:38,750 yang disimpan di dua alamat dalam komputer anda, 708 00:38:38,750 --> 00:38:41,750 komputer anda tidak pernah akan mengiktiraf mereka sebagai adalah sama. 709 00:38:41,750 --> 00:38:43,500 Adakah sesiapa yang mahu memberikan satu pukulan pada apa yang kita 710 00:38:43,500 --> 00:38:46,900 perlu dilakukan jika kita mahu membetulkan ini dan mempunyai program yang betul berjalan 711 00:38:46,900 --> 00:38:49,360 bukan? 712 00:38:49,360 --> 00:38:52,070 Fikirkan tentang itu selama beberapa saat. 713 00:38:52,070 --> 00:38:54,929 Apa yang kita perlu berubah untuk mendapatkan fungsi program ini 714 00:38:54,929 --> 00:38:56,220 cara yang kita mahu ia berfungsi? 715 00:38:56,220 --> 00:39:17,260 716 00:39:17,260 --> 00:39:18,918 >> Ya, mahu mengambil tikaman di ia? 717 00:39:18,918 --> 00:39:24,082 >> PENONTON: Bolehkah kita cuba untuk dereference yang penunjuk dan memeriksa melalui array? 718 00:39:24,082 --> 00:39:25,540 PROFESOR: Itu salah satu cara untuk melakukannya. 719 00:39:25,540 --> 00:39:27,880 Jadi, apa nama anda lagi? 720 00:39:27,880 --> 00:39:29,010 Saya minta maaf, mengingatkan saya. 721 00:39:29,010 --> 00:39:29,589 >> Zee Zee. 722 00:39:29,589 --> 00:39:32,130 PROFESOR: Ya, jadi apa Zee dicadangkan benar-benar akan bekerja. 723 00:39:32,130 --> 00:39:32,629 Betul? 724 00:39:32,629 --> 00:39:35,730 Kita boleh dereference penunjuk dan benar-benar pergi dan akses 725 00:39:35,730 --> 00:39:38,460 data fizikal dalam dari sini. 726 00:39:38,460 --> 00:39:40,300 Dan kita hanya boleh membuat perbandingan seluruh skrin. 727 00:39:40,300 --> 00:39:43,670 >> Kita boleh berkata, OK, penunjuk, memberi saya apa yang di dalam sini. 728 00:39:43,670 --> 00:39:44,960 Ia akan kembali m yang. 729 00:39:44,960 --> 00:39:47,168 Dan saya akan berkata, penunjuk, memberi saya apa yang di dalam sini. 730 00:39:47,168 --> 00:39:47,750 Kembali m yang. 731 00:39:47,750 --> 00:39:48,410 Adakah perlawanan mereka? 732 00:39:48,410 --> 00:39:49,410 Ya. 733 00:39:49,410 --> 00:39:50,340 Kemudian kami meneruskan perjalanan. 734 00:39:50,340 --> 00:39:54,240 >> Kami terus memeriksa keseluruhan dua tali sepanjang jalan sehingga sehingga akhir 735 00:39:54,240 --> 00:39:56,635 dan lihat jika mereka adalah sama, jika semua nilai adalah sama. 736 00:39:56,635 --> 00:39:59,680 Dan jika semua nilai adalah sama, maka kita tahu tali adalah benar. 737 00:39:59,680 --> 00:40:01,600 Tentu sekali, itulah bagaimana kita akan melakukannya? 738 00:40:01,600 --> 00:40:03,930 >> Adakah sesiapa yang keliru di mana-mana ini? 739 00:40:03,930 --> 00:40:06,970 Konsep keseluruhan bagaimana tali benar-benar hanya petunjuk, 740 00:40:06,970 --> 00:40:08,440 dan bagaimana mereka tidak benar-benar wujud? 741 00:40:08,440 --> 00:40:10,480 Dan mengapa kita mendapat ralat seperti cara kita mendapatkannya? 742 00:40:10,480 --> 00:40:15,070 Oleh kerana saya jamin anda semua, petunjuk dan peruntukan dan ingatan rentetan 743 00:40:15,070 --> 00:40:16,470 akan datang. 744 00:40:16,470 --> 00:40:17,410 >> Ya? 745 00:40:17,410 --> 00:40:21,072 >> PENONTON: [didengar] dereference , anda hanya meletakkan bintang [didengar] 746 00:40:21,072 --> 00:40:21,780 PROFESOR: Betul. 747 00:40:21,780 --> 00:40:28,430 Jadi untuk derererence satu cara penunjuk pergi ke alamat penunjuk 748 00:40:28,430 --> 00:40:30,390 dan mendapatkan data, nilai di sana. 749 00:40:30,390 --> 00:40:32,700 Dan cara untuk berbuat demikian adalah penunjuk bintang. 750 00:40:32,700 --> 00:40:34,262 Jangan mengelirukan itu. 751 00:40:34,262 --> 00:40:35,186 >> PENONTON: [didengar]. 752 00:40:35,186 --> 00:40:35,852 >> PROFESOR: Ya. 753 00:40:35,852 --> 00:40:39,750 PENONTON: Jadi anda hanya boleh menulis jika sama t bintang s setaraf bintang. 754 00:40:39,750 --> 00:40:40,630 >> PROFESOR: Sebenarnya, tidak. 755 00:40:40,630 --> 00:40:40,960 No. 756 00:40:40,960 --> 00:40:41,640 >> PENONTON: Bukan itu cukup baik, bukan? 757 00:40:41,640 --> 00:40:43,760 >> PROFESOR: Ia bukan, kerana anda hanya memeriksa surat pertama. 758 00:40:43,760 --> 00:40:46,010 Anda mungkin akan memerlukan beberapa jenis gelung yang 759 00:40:46,010 --> 00:40:49,055 iterates melalui setiap tunggal watak dalam kedua-dua tali. 760 00:40:49,055 --> 00:40:49,837 Yeah. 761 00:40:49,837 --> 00:40:52,920 Jadi, jika anda mahu hanya menyemak untuk melihat jika mereka bermula dengan perkara yang sama, 762 00:40:52,920 --> 00:40:58,220 anda boleh lakukan jika, bintang s adalah sama dengan bintang t. 763 00:40:58,220 --> 00:41:01,300 Maka anda tahu bahawa sekurang-kurangnya mereka bermula dengan watak yang sama. 764 00:41:01,300 --> 00:41:01,952 >> Ya? 765 00:41:01,952 --> 00:41:04,056 >> PENONTON: Jadi cara anda yang akan menjadi 766 00:41:04,056 --> 00:41:06,064 seperti terbenam untuk gelung atau penunjuk? 767 00:41:06,064 --> 00:41:06,730 PROFESOR: Ya. 768 00:41:06,730 --> 00:41:08,170 Cukup banyak hanya untuk gelung. 769 00:41:08,170 --> 00:41:12,430 Ingat, David dalam kelas yang dinyatakan gula sintaksis percuma? 770 00:41:12,430 --> 00:41:17,690 Dan dia mempunyai ini sangat Perkara yang mengelirukan bintang t 771 00:41:17,690 --> 00:41:22,030 tambah satu, di mana ia akan mengintegrasikan melalui dan ia bergerak penunjuk? 772 00:41:22,030 --> 00:41:29,910 Cara yang lebih mudah untuk berbuat ini hanyalah t i. 773 00:41:29,910 --> 00:41:31,090 >> Jadi ia hanya array. 774 00:41:31,090 --> 00:41:34,630 Cara yang anda akan mempunyai untuk gelung yang berlari dari sifar hingga i, di mana 775 00:41:34,630 --> 00:41:36,580 i adalah panjang tali, anda boleh hanya 776 00:41:36,580 --> 00:41:39,510 menulis bahawa daripada melakukan yang keseluruhan penunjuk, perkara rujukan. 777 00:41:39,510 --> 00:41:43,510 Jadi perkara-perkara ini adalah betul-betul setara dalam komputer anda. 778 00:41:43,510 --> 00:41:45,905 >> Kalian mungkin tidak akan perlu tahu bahawa, 779 00:41:45,905 --> 00:41:48,280 tetapi ia adalah baik untuk hanya jenis ada di belakang minda anda. 780 00:41:48,280 --> 00:41:52,630 Hanya tahu bahawa komputer mengiktiraf blok yang berbeza kod 781 00:41:52,630 --> 00:41:53,890 sebagai perkara yang sama. 782 00:41:53,890 --> 00:41:57,510 Kerana ini adalah hanya lebih pengguna mesra bagi kita untuk menghadiahkan seperti ia 783 00:41:57,510 --> 00:41:58,150 pelbagai. 784 00:41:58,150 --> 00:42:00,990 Ia hanya lebih mudah. 785 00:42:00,990 --> 00:42:02,719 >> PENONTON: Jadi menggunakan strlen untuk suka, get-- 786 00:42:02,719 --> 00:42:03,385 PROFESOR: Ya. 787 00:42:03,385 --> 00:42:03,926 PENONTON: OK. 788 00:42:03,926 --> 00:42:05,940 PROFESOR: Anda boleh menggunakan strlen atau, jika anda 789 00:42:05,940 --> 00:42:10,420 tidak mempunyai strlen anda hanya boleh melakukan sehingga sehingga anda memukul backslash sifar bagi kedua-duanya. 790 00:42:10,420 --> 00:42:11,568 Sama ada akan bekerja. 791 00:42:11,568 --> 00:42:12,068 Yeah. 792 00:42:12,068 --> 00:42:14,871 793 00:42:14,871 --> 00:42:17,996 PENONTON: Jadi ia adalah untuk setiap dereference aksara tunggal jika kita benar-benar 794 00:42:17,996 --> 00:42:21,044 menulis kod ini, kami hanya boleh melakukan t kurungan i 795 00:42:21,044 --> 00:42:22,460 suka dengan bintang di hadapannya? 796 00:42:22,460 --> 00:42:27,700 >> PROFESOR: Ya, sama sama s kurungan i, dan kemudian menjaga i bergerak 797 00:42:27,700 --> 00:42:29,790 ke bawah sehingga anda memukul akhir. 798 00:42:29,790 --> 00:42:31,286 Ya, itulah yang anda akan lakukan. 799 00:42:31,286 --> 00:42:33,660 Dan saya benar-benar akan mempunyai berikut contoh apabila kita benar-benar 800 00:42:33,660 --> 00:42:36,740 menulis strlen supaya anda semua akan baik untuk dapat bermain-main dengan sedikit. 801 00:42:36,740 --> 00:42:43,567 >> Begitu juga semua orang yang jelas di ingatan adil, tali, petunjuk, alamat yang berkualiti? 802 00:42:43,567 --> 00:42:46,650 Beberapa konsep tahap yang lebih tinggi yang anda wasiat untuk keperluan yang pasti untuk mengetahui kuiz 803 00:42:46,650 --> 00:42:48,928 esok. 804 00:42:48,928 --> 00:42:49,904 >> Baiklah. 805 00:42:49,904 --> 00:42:50,404 Yang baik. 806 00:42:50,404 --> 00:42:54,824 807 00:42:54,824 --> 00:42:55,324 Ya. 808 00:42:55,324 --> 00:42:58,770 809 00:42:58,770 --> 00:43:04,180 OK, jadi satu perkara yang kami akan juga meminta anda, seperti yang kita lakukan setiap tahun pada kuiz, adalah, 810 00:43:04,180 --> 00:43:08,340 menganggap bahawa anda terlupa (yang kita seolah-olah lupa untuk melakukan setiap tahun) 811 00:43:08,340 --> 00:43:10,810 di mana fail header strlen diisytiharkan. 812 00:43:10,810 --> 00:43:13,860 Dan dengan itu kita perlu menulis semula diri kita sendiri. 813 00:43:13,860 --> 00:43:16,350 >> Berikut adalah senarai garis panduan bahawa kita boleh hadir anda 814 00:43:16,350 --> 00:43:20,660 seorang lelaki di mana anda boleh menganggap bahawa s tali tidak akan null. 815 00:43:20,660 --> 00:43:23,830 Anda boleh menganggap bahawa s akan menjadi ditamatkan dengan garis sendeng terbalik sifar. 816 00:43:23,830 --> 00:43:26,670 Jadi, anda tahu itulah yang ia akan berakhir dengan. 817 00:43:26,670 --> 00:43:29,500 >> Dan, sebagai contoh, bahawa panjang hello berjumlah lima. 818 00:43:29,500 --> 00:43:32,890 Jadi, anda boleh mengandaikan bahawa hello akan menjadi lima, H-E-L-L-O. 819 00:43:32,890 --> 00:43:35,890 Anda tidak perlu menganggap bahawa Bahagian belakang akaun sifar untuk panjang. 820 00:43:35,890 --> 00:43:39,720 821 00:43:39,720 --> 00:43:42,300 >> Ini perkara terakhir di sini, tidak bimbang tentang limpahan integer. 822 00:43:42,300 --> 00:43:45,270 Adakah sesiapa ingat apa integer limpahan? 823 00:43:45,270 --> 00:43:48,041 >> PENONTON: Goes luar panjang [didengar]. 824 00:43:48,041 --> 00:43:50,740 >> PROFESOR: Ya, anda boleh menerangkan sedikit, apa maksudnya? 825 00:43:50,740 --> 00:43:55,330 >> PENONTON: Jadi, saya rasa ia kembali kepada contoh di memendekkan lebih awal. 826 00:43:55,330 --> 00:43:58,380 Tetapi jika anda mempunyai hanya begitu banyak nombor yang melampaui bilangan bit 827 00:43:58,380 --> 00:44:01,409 bahawa anda sebenarnya boleh sediakan bahawa ia akan hanya jenis terputus. 828 00:44:01,409 --> 00:44:04,242 PROFESOR: Ya, sebagainya yang biasa komputer, berapa banyak bit yang kita ada? 829 00:44:04,242 --> 00:44:05,306 PENONTON: 32? 830 00:44:05,306 --> 00:44:06,430 PROFESOR: Ya, 32, betul. 831 00:44:06,430 --> 00:44:10,030 Dan supaya, apa, empat bilion, dua bilion? 832 00:44:10,030 --> 00:44:13,579 Empat bilion, sehingga empat bilion integer positif, bukan? 833 00:44:13,579 --> 00:44:15,370 Dua bilion negatif, dua bilion positif, 834 00:44:15,370 --> 00:44:16,900 bergantung kepada bagaimana anda mahu melakukannya. 835 00:44:16,900 --> 00:44:21,470 >> Dan jadi pada dasarnya kita boleh mempunyai integer cukup yang boleh naik 836 00:44:21,470 --> 00:44:25,800 kepada dua hingga 31 tolak 1, bukan? 837 00:44:25,800 --> 00:44:27,980 Kerana apabila kita mencapai dua ke-32, kita tidak 838 00:44:27,980 --> 00:44:30,040 mempunyai memori banyak dalam komputer kita. 839 00:44:30,040 --> 00:44:32,310 >> Dan sebagainya, secara teori, saya boleh datang dengan sebilangan 840 00:44:32,310 --> 00:44:34,560 iaitu, seperti, dua hingga ke-46. 841 00:44:34,560 --> 00:44:38,040 Ia adalah satu besar-keldai, tetapi secara teorinya anda boleh. 842 00:44:38,040 --> 00:44:42,730 Dan limpahan jadi integer adalah jika anda cuba untuk membuat integer yang melampaui apa 843 00:44:42,730 --> 00:44:44,790 komputer anda mampu menyimpan. 844 00:44:44,790 --> 00:44:46,590 >> Dan supaya anda semua untuk contoh ini tidak mempunyai 845 00:44:46,590 --> 00:44:51,330 bimbang tentang kami memberikan anda gergasi tali itu adalah dua kepada aksara 32 846 00:44:51,330 --> 00:44:51,830 panjang. 847 00:44:51,830 --> 00:44:54,010 Yang akan benar-benar bermakna. 848 00:44:54,010 --> 00:44:59,430 >> Baiklah, jadi saya hanya akan memberikan anda semua struktur asas ini. 849 00:44:59,430 --> 00:45:02,020 Anda akan membuat fungsi dipanggil int strlen mana 850 00:45:02,020 --> 00:45:08,436 yang lulus dalam, bintang char, atau tali, penunjuk kepada tali dipanggil s. 851 00:45:08,436 --> 00:45:10,820 >> Baiklah, setiap orang yang menyalin ke bawah. 852 00:45:10,820 --> 00:45:13,550 853 00:45:13,550 --> 00:45:14,850 Sejuk. 854 00:45:14,850 --> 00:45:17,020 Oops-- cara lain. 855 00:45:17,020 --> 00:45:21,360 >> Jadi ini adalah jenis seperti sekeping sukar masalah, 856 00:45:21,360 --> 00:45:25,320 jadi saya akan memberikan anda semua mungkin lima hingga enam minit untuk jenis brainstorm 857 00:45:25,320 --> 00:45:27,478 dan menulis fungsi ini keluar. 858 00:45:27,478 --> 00:45:29,710 >> PENONTON: Kami tidak akaun untuk [didengar], 859 00:45:29,710 --> 00:45:30,200 kita tidak perlu menggunakan integer? 860 00:45:30,200 --> 00:45:31,241 >> PROFESOR: Tidak, anda tidak. 861 00:45:31,241 --> 00:48:05,847 862 00:48:05,847 --> 00:48:06,930 Saya akan memberikan anda semua petunjuk. 863 00:48:06,930 --> 00:48:12,325 A gelung sementara mungkin sangat berguna di sini. 864 00:48:12,325 --> 00:48:12,825 Yeah. 865 00:48:12,825 --> 00:48:44,995 866 00:48:44,995 --> 00:48:45,495 Berikut adalah 867 00:48:45,495 --> 00:48:45,995 gula-gula. 868 00:48:45,995 --> 00:48:49,980 869 00:48:49,980 --> 00:48:53,410 Gula-gula juga boleh didapati untuk kuiz, saya fikir. 870 00:48:53,410 --> 00:48:55,315 Jadi anda semua akan semua bergula esok. 871 00:48:55,315 --> 00:49:01,110 872 00:49:01,110 --> 00:49:02,962 Boleh saya-- anda mendapat ia. 873 00:49:02,962 --> 00:49:03,718 >> PENONTON: OK. 874 00:49:03,718 --> 00:49:04,384 PROFESOR: Ya. 875 00:49:04,384 --> 00:49:10,550 876 00:49:10,550 --> 00:49:11,870 >> Mungkin lebih 30 saat atau lebih. 877 00:49:11,870 --> 00:50:02,220 878 00:50:02,220 --> 00:50:07,340 >> Baiklah, jika anda tidak dilakukan, tidak ada kebimbangan. 879 00:50:07,340 --> 00:50:08,810 Kami akan bergerak melalui ini bersama-sama. 880 00:50:08,810 --> 00:50:09,310 OKAY. 881 00:50:09,310 --> 00:50:13,800 Jadi, saya akan hanya susun atur yang struktur asas untuk fungsi ini di sini. 882 00:50:13,800 --> 00:50:17,255 Int strlen. 883 00:50:17,255 --> 00:50:20,040 884 00:50:20,040 --> 00:50:23,460 Pertama, adakah sesiapa yang ingin memberitahu saya apa int yang melambangkan? 885 00:50:23,460 --> 00:50:25,160 Kita perlu ada dalam fungsi ini. 886 00:50:25,160 --> 00:50:26,709 >> PENONTON: strlen [didengar]. 887 00:50:26,709 --> 00:50:27,500 PROFESOR: Tepat sekali. 888 00:50:27,500 --> 00:50:31,140 Jadi apa yang berlaku di sini, kita perlu kembali integer. 889 00:50:31,140 --> 00:50:36,367 Dan sebagaimana yang dinyatakan dalam spec, kami mahu return-- 890 00:50:36,367 --> 00:50:37,700 Pergi untuk itu seorang lelaki, hanya menyimpan berterusan. 891 00:50:37,700 --> 00:50:40,480 Itu semua baik. 892 00:50:40,480 --> 00:50:42,960 Makan semua jadi saya tidak mempunyai untuk mengambil kembali, sebenarnya. 893 00:50:42,960 --> 00:50:46,022 894 00:50:46,022 --> 00:50:48,855 Int itu hanya menunjukkan bahawa anda berada akan kembali integer. 895 00:50:48,855 --> 00:50:55,350 896 00:50:55,350 --> 00:50:57,106 >> Apa yang bintang ini s char? 897 00:50:57,106 --> 00:50:58,640 Apa maksudnya? 898 00:50:58,640 --> 00:51:00,879 >> PENONTON: Seperti, apa yang menjadi input dalam. 899 00:51:00,879 --> 00:51:01,670 PROFESOR: Tepat sekali. 900 00:51:01,670 --> 00:51:04,142 Dan apa yang hampir perkara yang sama seperti char bintang? 901 00:51:04,142 --> 00:51:04,850 PENONTON: String? 902 00:51:04,850 --> 00:51:05,641 PROFESOR: Tepat sekali. 903 00:51:05,641 --> 00:51:09,080 Jadi semua yang kita lakukan adalah memberi ini penunjuk kepada rentetan. 904 00:51:09,080 --> 00:51:09,580 OKAY. 905 00:51:09,580 --> 00:51:12,860 906 00:51:12,860 --> 00:51:13,360 Sejuk. 907 00:51:13,360 --> 00:51:16,650 >> Juga, jangan lupa, jika kita lupa untuk memberikan anda kurungan ini, 908 00:51:16,650 --> 00:51:18,330 jangan lupa untuk menulis mereka sendiri. 909 00:51:18,330 --> 00:51:20,720 Kerana secara teori, kod anda adalah tidak betul jika anda terlupa untuk menulis mereka. 910 00:51:20,720 --> 00:51:21,803 Hanya sentiasa memberi perhatian. 911 00:51:21,803 --> 00:51:23,750 Seperti, perkara-perkara kecil bahawa anda tidak notis 912 00:51:23,750 --> 00:51:26,917 apabila anda pengaturcaraan pada laptop anda, kerana komputer riba anda tidak untuk anda? 913 00:51:26,917 --> 00:51:28,624 Jangan lupa apabila anda menulis dengan tangan. 914 00:51:28,624 --> 00:51:29,170 Ya? 915 00:51:29,170 --> 00:51:30,954 >> PENONTON: Tetapi bagaimana tidak betul? 916 00:51:30,954 --> 00:51:33,190 Seperti, kita mendapat keseluruhan masalah yang salah? 917 00:51:33,190 --> 00:51:34,190 >> PROFESOR: Tidak, tidak. 918 00:51:34,190 --> 00:51:34,860 Jangan bimbang. 919 00:51:34,860 --> 00:51:39,270 Ia sebenarnya secara teori mungkin untuk anda untuk mendapatkan mata penuh mengenai sesuatu persoalan 920 00:51:39,270 --> 00:51:41,980 walaupun kod anda akan pernah menjalankan dalam kehidupan sebenar. 921 00:51:41,980 --> 00:51:46,052 Saya cadangkan anda jangan cuba untuk membuat yang berlaku. 922 00:51:46,052 --> 00:51:48,260 Sebagai contoh, seperti jika segala-galanya itulah di sini adalah betul, 923 00:51:48,260 --> 00:51:51,850 tetapi anda terlupa kolon atau kurungan, kod anda tidak akan benar-benar berjalan. 924 00:51:51,850 --> 00:51:53,740 Tetapi kita mungkin mengasihani. 925 00:51:53,740 --> 00:51:54,394 >> Ya? 926 00:51:54,394 --> 00:51:56,050 >> PENONTON: Adakah anda perlu mengulas mengenai tulisan tangan kita? 927 00:51:56,050 --> 00:51:57,758 >> PROFESOR: Tidak, tidak, tidak kebimbangan tentang itu. 928 00:51:57,758 --> 00:51:58,440 Tiada mengulas. 929 00:51:58,440 --> 00:51:59,400 Gaya perlu baik. 930 00:51:59,400 --> 00:52:01,470 Seperti, tidak Smush segala-galanya di satu baris. 931 00:52:01,470 --> 00:52:04,580 Kami tidak akan gembira dengan anda jika anda berbuat demikian. 932 00:52:04,580 --> 00:52:07,250 >> Adakah sesiapa yang mahu memberi saya baris pertama? 933 00:52:07,250 --> 00:52:08,633 Tanda-tanda, ia sangat mudah. 934 00:52:08,633 --> 00:52:09,320 >> Ya? 935 00:52:09,320 --> 00:52:11,920 >> PENONTON: Int, n sama dengan sifar. 936 00:52:11,920 --> 00:52:13,734 Hanya sediakan kaunter. 937 00:52:13,734 --> 00:52:15,900 PROFESOR: Oleh itu, kita mahu beberapa jenis kaunter, bukan? 938 00:52:15,900 --> 00:52:19,780 Saya hanya akan menamakan ia "mengira" demi kebolehbacaan. 939 00:52:19,780 --> 00:52:21,265 Apa yang kita mahu untuk menetapkan ia sama dengan? 940 00:52:21,265 --> 00:52:21,890 >> PENONTON: Zero. 941 00:52:21,890 --> 00:52:23,840 PROFESOR: Ya. 942 00:52:23,840 --> 00:52:24,340 Koma bertitik. 943 00:52:24,340 --> 00:52:26,250 Ia juga koma bertitik lukisan yang sangat pelik. 944 00:52:26,250 --> 00:52:28,870 Hanya berlatih melakukannya. 945 00:52:28,870 --> 00:52:31,990 >> Oleh itu, kita mahu terlebih dahulu kaunter jenis int. 946 00:52:31,990 --> 00:52:35,360 Kerana kita mahu menghitung bagaimana banyak aksara atau huruf 947 00:52:35,360 --> 00:52:36,780 dalam rentetan ini, bukan? 948 00:52:36,780 --> 00:52:38,330 Langkah pertama yang sangat mudah. 949 00:52:38,330 --> 00:52:42,140 >> OK, mungkin sedikit lebih kompleks sekarang, bagaimana kita akan berbuat demikian? 950 00:52:42,140 --> 00:52:45,400 Adakah sesiapa yang mahu memberi saya baris kod 951 00:52:45,400 --> 00:52:48,450 yang mungkin dapat membantu gelung melalui apa ini? 952 00:52:48,450 --> 00:52:54,540 953 00:52:54,540 --> 00:52:56,900 >> Ya, jiwa yang berani di belakang? 954 00:52:56,900 --> 00:53:06,832 >> PENONTON: OK, jadi sementara titik tanda bintang, yang yeah, bintang s, 955 00:53:06,832 --> 00:53:09,465 tidak sama dengan sifar, maka melakukan sesuatu? 956 00:53:09,465 --> 00:53:11,090 PROFESOR: Itu benar-benar, benar-benar rapat. 957 00:53:11,090 --> 00:53:11,835 Benar-benar rapat. 958 00:53:11,835 --> 00:53:13,710 Jadi saya akan untuk menangani dua perkara dengan itu. 959 00:53:13,710 --> 00:53:18,240 Pertama sekali, ia tidak betul-betul sifar. 960 00:53:18,240 --> 00:53:20,110 Apakah ia? 961 00:53:20,110 --> 00:53:22,550 Ia terminator null, yang merupakan garis sendeng terbalik sifar. 962 00:53:22,550 --> 00:53:24,960 Jadi mereka yang berbeza dalam segi bagaimana ia disimpan. 963 00:53:24,960 --> 00:53:26,270 Jadi, anda benar-benar rapat. 964 00:53:26,270 --> 00:53:30,330 >> Dan kedua, kita tidak mahu untuk hanya bergerak penunjuk. 965 00:53:30,330 --> 00:53:32,320 Kami mahu sebenarnya mengakses nilai, bukan? 966 00:53:32,320 --> 00:53:34,050 Dan jadi bagaimana kita berbuat demikian? 967 00:53:34,050 --> 00:53:34,550 Sangat mudah. 968 00:53:34,550 --> 00:53:36,841 Jangan berfikir tentang petunjuk, tidak berfikir tentang kenangan. 969 00:53:36,841 --> 00:53:38,525 Kembali ke minggu dua daripada kursus ini. 970 00:53:38,525 --> 00:53:39,555 >> PENONTON: [didengar]. 971 00:53:39,555 --> 00:53:40,680 PROFESOR: Sehingga, ingat? 972 00:53:40,680 --> 00:53:41,400 Apakah rentetan? 973 00:53:41,400 --> 00:53:42,650 Bagaimana mereka disimpan dalam ingatan? 974 00:53:42,650 --> 00:53:43,300 >> PENONTON: Mereka yang dibangkitkan. 975 00:53:43,300 --> 00:53:43,810 >> PROFESOR: mereka dibangkitkan. 976 00:53:43,810 --> 00:53:45,550 Jadi bagaimana kita mengakses setiap watak di dalam? 977 00:53:45,550 --> 00:53:46,466 >> PENONTON: [didengar]. 978 00:53:46,466 --> 00:53:47,530 PROFESOR: Tepat sekali. 979 00:53:47,530 --> 00:53:53,195 Jadi while-- apa yang berlaku di dalam sini? 980 00:53:53,195 --> 00:53:54,940 S dari - 981 00:53:54,940 --> 00:53:55,920 >> PENONTON: I. 982 00:53:55,920 --> 00:53:58,216 >> PROFESOR: Oh, saya tidak wujud, adakah ia? 983 00:53:58,216 --> 00:53:59,620 >> PENONTON: Oh, mengira? 984 00:53:59,620 --> 00:54:01,640 >> PROFESOR: Kita boleh hanya menggunakan kiraan, tidak boleh kita? 985 00:54:01,640 --> 00:54:03,050 >> PENONTON: Maaf, saya memanggilnya i. 986 00:54:03,050 --> 00:54:04,341 >> PROFESOR: Ya, itu semua baik. 987 00:54:04,341 --> 00:54:06,710 988 00:54:06,710 --> 00:54:10,760 Kami mempunyai pembolehubah di sini itulah telah diisytiharkan sebagai kaunter. 989 00:54:10,760 --> 00:54:13,650 Jadi mengapa tidak kita hanya menggunakan bahawa untuk bergerak melalui gelung sementara? 990 00:54:13,650 --> 00:54:15,230 Adakah ini masuk akal? 991 00:54:15,230 --> 00:54:20,864 >> Oleh itu, sambil sebanyak count-- adakah sesiapa yang mahu untuk memberi saya apa yang berlaku selepas di sini? 992 00:54:20,864 --> 00:54:22,030 PENONTON: Ia tidak sama. 993 00:54:22,030 --> 00:54:23,405 PROFESOR: Adakah tidak sama, bukan? 994 00:54:23,405 --> 00:54:26,200 Ia bang sama, tanda seru sama, 995 00:54:26,200 --> 00:54:28,500 apa sahaja yang anda lelaki mahu memanggil ia tidak equal-- 996 00:54:28,500 --> 00:54:29,496 >> PENONTON: [didengar]. 997 00:54:29,496 --> 00:54:30,990 >> PROFESOR: Ya. 998 00:54:30,990 --> 00:54:37,110 Ingat petikan tunggal adalah untuk char, tanda petik adalah untuk rentetan. 999 00:54:37,110 --> 00:54:38,630 Berhati-hati apabila menggunakannya. 1000 00:54:38,630 --> 00:54:42,430 Oleh itu, apabila kita melihat melalui array, aksara terakhir, 1001 00:54:42,430 --> 00:54:46,420 kita tahu kita tidak mahu ia menjadi garis sendeng terbalik sifar. 1002 00:54:46,420 --> 00:54:47,340 >> Oleh itu, sambil. 1003 00:54:47,340 --> 00:54:48,840 Kami tidak pada akhir tali. 1004 00:54:48,840 --> 00:54:52,335 Apa yang kami mahu lakukan di dalam? 1005 00:54:52,335 --> 00:54:55,269 >> PENONTON: Kami mahu menambah kaunter supaya ia dikira plus plus? 1006 00:54:55,269 --> 00:54:56,060 PROFESOR: Tepat sekali. 1007 00:54:56,060 --> 00:55:03,064 Jadi di sini kita akan lakukan mengira, mengira plus plus. 1008 00:55:03,064 --> 00:55:03,980 Hilang satu baris lagi. 1009 00:55:03,980 --> 00:55:05,090 Kita sudah hampir. 1010 00:55:05,090 --> 00:55:07,398 Apa yang kita lupa untuk lakukan? 1011 00:55:07,398 --> 00:55:08,770 >> PENONTON: Kembali sifar? 1012 00:55:08,770 --> 00:55:10,820 >> PROFESOR: Anda mahu kembali sifar? 1013 00:55:10,820 --> 00:55:12,962 >> PENONTON: Tiada, kembali ke strlen. 1014 00:55:12,962 --> 00:55:13,511 Menunggu. 1015 00:55:13,511 --> 00:55:14,760 PROFESOR: Yang disimpan di dalam? 1016 00:55:14,760 --> 00:55:15,090 PENONTON: Pengiraan. 1017 00:55:15,090 --> 00:55:15,589 Mengira. 1018 00:55:15,589 --> 00:55:17,150 PROFESOR: Tepat sekali. 1019 00:55:17,150 --> 00:55:20,760 Jadi di sini kita akan kembali kiraan. 1020 00:55:20,760 --> 00:55:23,450 1021 00:55:23,450 --> 00:55:25,380 >> Kerana apa yang kita buat di sini ultimately-- 1022 00:55:25,380 --> 00:55:29,780 kita mempunyai pembolehubah kaunter itu akan kenaikan melalui rentetan kami. 1023 00:55:29,780 --> 00:55:33,050 Kami akan terus pergi, menjaga pergi, di sekeliling dan sekitar dalam gelung ini. 1024 00:55:33,050 --> 00:55:37,700 Dan ketika kita tidak berada di akhir ini tali, yang terminator nol. 1025 00:55:37,700 --> 00:55:40,410 >> Dan setiap kali kita melalui itu, kami menambah ke kaunter kami. 1026 00:55:40,410 --> 00:55:42,640 Dan kita akan terus bersama-sama dalam pelbagai ini. 1027 00:55:42,640 --> 00:55:44,880 Dan pada akhirnya, apabila kita memukul terminator nol, 1028 00:55:44,880 --> 00:55:48,469 yang kita tahu, oh, kita boleh memecahkan, kembali kiraan. 1029 00:55:48,469 --> 00:55:49,260 Kami mempunyai strlen kami. 1030 00:55:49,260 --> 00:55:52,280 1031 00:55:52,280 --> 00:55:56,400 >> Adakah semua orang mendapatkan bagaimana ini telah dilaksanakan? 1032 00:55:56,400 --> 00:55:58,830 Walaupun loops-- Saya tahu bahawa kita tidak mempunyai dilakukan terlalu banyak dengan mereka, 1033 00:55:58,830 --> 00:56:01,240 tetapi ia biasanya sangat, sangat berguna jika anda 1034 00:56:01,240 --> 00:56:05,390 tidak tahu apa yang anda berhenti keadaan semestinya mempunyai untuk menjadi. 1035 00:56:05,390 --> 00:56:06,220 >> Soalan? 1036 00:56:06,220 --> 00:56:10,080 >> PENONTON: Bolehkah kita menulis null dengan syarat sementara? 1037 00:56:10,080 --> 00:56:10,940 >> PROFESOR: Semasa? 1038 00:56:10,940 --> 00:56:15,304 Ya, jadi dalam masalah ini saya mempunyai anda lelaki menganggap bahawa s tidak akan null. 1039 00:56:15,304 --> 00:56:17,220 Kerana ingat, secara teori, jika aku telah memberi 1040 00:56:17,220 --> 00:56:21,180 penunjuk yang terlalu besar memori, ia akan memberikan anda batal, bukan? 1041 00:56:21,180 --> 00:56:23,770 Itulah yang operasi sistem akan lakukan. 1042 00:56:23,770 --> 00:56:26,960 >> Jadi, jika saya tidak memberitahu anda untuk mengambil alih s akan menjadi batal, anda perlu menyemak. 1043 00:56:26,960 --> 00:56:32,050 Jadi di sini, anda akan lakukan, jika s sama sama null, kembali satu. 1044 00:56:32,050 --> 00:56:33,028 Sesuatu seperti itu. 1045 00:56:33,028 --> 00:56:34,153 PENONTON: [didengar] sifar. 1046 00:56:34,153 --> 00:56:37,287 1047 00:56:37,287 --> 00:56:39,370 PROFESOR: OK, saya akan memberitahu anda mengapa kita tidak boleh berbuat demikian. 1048 00:56:39,370 --> 00:56:43,357 Kerana ingat dalam ingatan, betul, di sini. 1049 00:56:43,357 --> 00:56:43,940 Kami akan pergi di sini. 1050 00:56:43,940 --> 00:56:49,940 1051 00:56:49,940 --> 00:56:54,090 >> Anda telah mendapat blok gergasi memori semua dengan grid 1052 00:56:54,090 --> 00:56:56,680 bahawa kedai nilai yang berbeza, bukan? 1053 00:56:56,680 --> 00:57:00,110 Dan supaya semua rentetan is-- untuk Sebagai contoh, jika kita ingin input hello, 1054 00:57:00,110 --> 00:57:05,490 ia akan menjadi H-E-L-L-O garis miring sifar, bukan? 1055 00:57:05,490 --> 00:57:09,570 Dan kemudian siapa tahu, seperti rawak yang terjadi di sini selepas itu. 1056 00:57:09,570 --> 00:57:11,220 >> Kami tidak benar-benar tahu apa yang ada. 1057 00:57:11,220 --> 00:57:13,350 Dan jadi jika anda melakukannya bukannya garis sendeng terbalik sifar, 1058 00:57:13,350 --> 00:57:15,590 null, ia mungkin tidak null. 1059 00:57:15,590 --> 00:57:17,680 Kerana ia hanya boleh bermakna beberapa perkara lain secara rawak 1060 00:57:17,680 --> 00:57:19,270 yang tidak tergolong dalam rentetan anda. 1061 00:57:19,270 --> 00:57:23,219 Dan sebagainya cara yang kita sentiasa tahu bahawa rentetan berakhir adalah dengan garis sendeng terbalik sifar. 1062 00:57:23,219 --> 00:57:25,760 Dan sebagainya yang sentiasa bagaimana kita semak untuk melihat akhir rentetan. 1063 00:57:25,760 --> 00:57:30,820 >> Null, segala cara yang jika anda mempunyai penunjuk tidak wujud, pertama sekali, 1064 00:57:30,820 --> 00:57:36,160 atau jika ingatan anda hanya begitu besar yang anda tidak boleh kembali, maka ia akan menjadi null. 1065 00:57:36,160 --> 00:57:40,150 Jadi berhati-hati apabila membezakan perbezaan antara null 1066 00:57:40,150 --> 00:57:42,130 dan garis sendeng terbalik sifar. 1067 00:57:42,130 --> 00:57:43,670 Yeah. 1068 00:57:43,670 --> 00:57:46,886 >> Semua orang OK dengan ini? 1069 00:57:46,886 --> 00:57:48,150 OKAY. 1070 00:57:48,150 --> 00:57:50,440 >> Jadi saya terpaksa kamu menulis strlen. 1071 00:57:50,440 --> 00:57:53,790 Layak di kami juga boleh meminta anda menulis daripada A kepada saya, ingat bahawa "Atwoa" 1072 00:57:53,790 --> 00:57:55,400 atau apa sahaja yang anda lelaki mahu memanggilnya? 1073 00:57:55,400 --> 00:57:58,010 Bahawa fungsi dalam Vigenere dan Caesar, yang 1074 00:57:58,010 --> 00:58:00,900 menukarkan nilai Ascii kepada integer? 1075 00:58:00,900 --> 00:58:04,360 Yang juga telah datang pada masa lalu kuiz fungsi kami telah meminta anda untuk menulis. 1076 00:58:04,360 --> 00:58:08,280 >> Cukup banyak apa-apa fungsi yang anda telah digunakan dan adalah 1077 00:58:08,280 --> 00:58:11,660 sangat mudah untuk menulis sendiri, sensor suka lebih rendah, 1078 00:58:11,660 --> 00:58:14,620 adalah atas, yang lebih rendah, yang atas. 1079 00:58:14,620 --> 00:58:17,964 Fungsi-fungsi yang akan menukar rentetan daripada huruf kecil kepada huruf besar. 1080 00:58:17,964 --> 00:58:19,380 Kita semua tahu bagaimana untuk melakukannya, bukan? 1081 00:58:19,380 --> 00:58:21,100 Ia agak mudah. 1082 00:58:21,100 --> 00:58:24,770 Hanya ingin memastikan bahawa anda can-- ia adalah satu proses pemikiran yang sama. 1083 00:58:24,770 --> 00:58:26,940 Anda hanya melelar melalui dan anda menghidupkan sesuatu. 1084 00:58:26,940 --> 00:58:30,190 Samada anda mengira atau apabila anda menghidupkan sesuatu yang berbeza. 1085 00:58:30,190 --> 00:58:32,280 >> Saya akan suggest-- Saya tidak tahu sama ada kita akan 1086 00:58:32,280 --> 00:58:39,080 untuk meminta anda untuk menghafal apa modal A atau Z modal, atau huruf kecil atau huruf kecil A 1087 00:58:39,080 --> 00:58:42,640 z berada dalam Ascii, tetapi saya akan mencadangkan mungkin menulis yang turun dalam kes 1088 00:58:42,640 --> 00:58:44,124 kami buat. 1089 00:58:44,124 --> 00:58:45,540 Hanya supaya anda semua mempunyai rujukan. 1090 00:58:45,540 --> 00:58:47,180 Seperti huruf besar A adalah, apa, 197? 1091 00:58:47,180 --> 00:58:51,320 Dan kemudian huruf kecil seperti 50 sesuatu. 1092 00:58:51,320 --> 00:58:52,492 65, ya, di sana anda pergi. 1093 00:58:52,492 --> 00:58:54,950 Jadi hanya cukup banyak mengetahui Perbezaan di antara mereka 32. 1094 00:58:54,950 --> 00:58:57,670 Itu cukup penting. 1095 00:58:57,670 --> 00:58:58,170 Yeah. 1096 00:58:58,170 --> 00:59:01,445 Am I baik mengenai perkara ini? 1097 00:59:01,445 --> 00:59:01,945 OKAY. 1098 00:59:01,945 --> 00:59:03,109 >> PENONTON: Kita boleh secara teori menulis beberapa 1099 00:59:03,109 --> 00:59:04,410 ini turun dan juga di little-- kami 1100 00:59:04,410 --> 00:59:07,035 >> PROFESOR: Anda secara teori hanya boleh menyalin fungsi ke bawah. 1101 00:59:07,035 --> 00:59:08,482 Itu betul. 1102 00:59:08,482 --> 00:59:11,080 >> PENONTON: Tidak [didengar]. 1103 00:59:11,080 --> 00:59:12,720 >> PROFESOR: Anda lelaki itu mempunyai sheet. 1104 00:59:12,720 --> 00:59:14,194 Kalian mempunyai lembaran nota. 1105 00:59:14,194 --> 00:59:14,860 Anda boleh menaipnya. 1106 00:59:14,860 --> 00:59:15,490 Anda boleh menulis. 1107 00:59:15,490 --> 00:59:17,031 Anda boleh melakukan apa sahaja yang anda mahu dengan ia. 1108 00:59:17,031 --> 00:59:18,530 Yeah. 1109 00:59:18,530 --> 00:59:21,406 Jadi secara teori, jika anda mahu, pergi untuk. 1110 00:59:21,406 --> 00:59:23,338 >> PENONTON: [didengar] tetapi kita tidak benar-benar 1111 00:59:23,338 --> 00:59:25,994 semestinya perlu ingat nilai, kita boleh hanya 1112 00:59:25,994 --> 00:59:28,914 menggunakan ke atas atau ke fungsi yang lebih rendah, bukan? 1113 00:59:28,914 --> 00:59:29,580 PROFESOR: Ya. 1114 00:59:29,580 --> 00:59:32,740 Tetapi jika kita memberikan satu soalan yang mengatakan menulis kepada atas, 1115 00:59:32,740 --> 00:59:34,350 maka anda perlu menulisnya. 1116 00:59:34,350 --> 00:59:38,150 Jadi, anda semua boleh menganggap bahawa anda lelaki itu mempunyai akses kepada semua fungsi, 1117 00:59:38,150 --> 00:59:41,523 tetapi jika anda mahu gunakan untuk atas atau ke yang lebih rendah, apa yang anda juga perlu lakukan? 1118 00:59:41,523 --> 00:59:43,840 >> PENONTON: [didengar] menggunakan CS50 [didengar] 1119 00:59:43,840 --> 00:59:44,840 >> PROFESOR: Adakah CS50.h? 1120 00:59:44,840 --> 00:59:47,320 1121 00:59:47,320 --> 00:59:48,310 Berhati-hati di sana. 1122 00:59:48,310 --> 00:59:50,640 >> Jadi untuk atas, yang lebih rendah, adalah atas, adalah lebih rendah, 1123 00:59:50,640 --> 00:59:52,990 fungsi yang melibatkan manipulasi rentetan adalah 1124 00:59:52,990 --> 00:59:55,490 semua dalam memuat Ascii yang atau dalam perpustakaan matematik 1125 00:59:55,490 --> 00:59:57,350 atau dalam perpustakaan tali. 1126 00:59:57,350 --> 01:00:00,290 Jadi, jika anda seorang lelaki menggunakan orang-orang fungsi, berhati-hati untuk ingat 1127 01:00:00,290 --> 01:00:01,451 untuk memasukkan kepala yang. 1128 01:00:01,451 --> 01:00:03,950 Jadi mungkin juga sesuatu yang anda mahu termasuk dalam kunci anda, 1129 01:00:03,950 --> 01:00:04,892 apakah tajuk? 1130 01:00:04,892 --> 01:00:06,600 Apakah perpustakaan anda telah gunakan? 1131 01:00:06,600 --> 01:00:08,550 Apa fungsi adalah dalam perpustakaan tersebut? 1132 01:00:08,550 --> 01:00:09,230 Adalah penting. 1133 01:00:09,230 --> 01:00:10,420 >> Ya? 1134 01:00:10,420 --> 01:00:12,570 >> PENONTON: Bolehkah kita hanya polis keluar dan melakukan hashtag 1135 01:00:12,570 --> 01:00:14,955 melalui sama sekali setiap surat kami telah pernah 1136 01:00:14,955 --> 01:00:17,340 dilihat seperti pada semua soalan? 1137 01:00:17,340 --> 01:00:18,320 >> PROFESOR: Anda boleh. 1138 01:00:18,320 --> 01:00:20,361 Saya tidak tahu bagaimana gembira kita akan adalah untuk gred 1139 01:00:20,361 --> 01:00:25,090 kuiz yang apabila setiap sekeping kod adalah dua kali lebih lama kerana ia perlu. 1140 01:00:25,090 --> 01:00:27,200 Saya tidak tahu, kita mungkin mengambil kira mata untuk gaya. 1141 01:00:27,200 --> 01:00:28,790 Tetapi secara teori anda kod adalah betul. 1142 01:00:28,790 --> 01:00:30,915 Kalian boleh menolak tugas-tugas dan hanya termasuk segala-galanya. 1143 01:00:30,915 --> 01:00:32,044 Itu baik juga, ya. 1144 01:00:32,044 --> 01:00:32,960 PENONTON: [didengar]. 1145 01:00:32,960 --> 01:00:33,270 PROFESOR: Ya. 1146 01:00:33,270 --> 01:00:34,900 Saya cadangkan tidak berbuat demikian walaupun. 1147 01:00:34,900 --> 01:00:35,505 Yeah. 1148 01:00:35,505 --> 01:00:36,130 PENONTON: Cool. 1149 01:00:36,130 --> 01:00:36,620 PROFESOR: Soalan yang baik. 1150 01:00:36,620 --> 01:00:37,480 PENONTON: Jadi, kes yang teruk. 1151 01:00:37,480 --> 01:00:38,563 PROFESOR: Kes paling teruk. 1152 01:00:38,563 --> 01:00:40,350 Jika anda benar-benar lupa, anda boleh berbuat demikian. 1153 01:00:40,350 --> 01:00:40,850 Yeah. 1154 01:00:40,850 --> 01:00:43,870 1155 01:00:43,870 --> 01:00:45,400 >> Ya, kod adalah di sana. 1156 01:00:45,400 --> 01:00:49,176 Saya pernah n bukannya kiraan tetapi, anda tahu, apa sahaja yang terapung bot anda. 1157 01:00:49,176 --> 01:00:51,092 PENONTON: Tunggu, jadi kami tidak perlu hashtag 1158 01:00:51,092 --> 01:00:53,460 termasuk kerana kami bermula dari int? 1159 01:00:53,460 --> 01:00:56,150 1160 01:00:56,150 --> 01:00:59,924 >> PROFESOR: Ya, saya hanya menganggap bahawa kami diminta untuk menulis fungsi. 1161 01:00:59,924 --> 01:01:02,340 Jika anda mahu selamat, anda mungkin boleh meletakkannya di sana. 1162 01:01:02,340 --> 01:01:05,650 Tetapi saya tidak mengganggu, ya. 1163 01:01:05,650 --> 01:01:09,919 >> Saya tidak tahu jika anda perlu mana-mana perpustakaan untuk ini. 1164 01:01:09,919 --> 01:01:12,710 Kerana anda tidak benar-benar percetakan daripada apa-apa atau apa-apa, kan? 1165 01:01:12,710 --> 01:01:16,500 1166 01:01:16,500 --> 01:01:19,568 Ya, saya tidak tahu sama ada anda perlu perpustakaan. 1167 01:01:19,568 --> 01:01:22,400 >> OKAY. 1168 01:01:22,400 --> 01:01:26,020 Ini juga sedikit lebih bersama-sama garis manipulasi ingatan. 1169 01:01:26,020 --> 01:01:27,400 Ini jenis sedikit rumit. 1170 01:01:27,400 --> 01:01:28,960 Fikirkan tentang perkara ini. 1171 01:01:28,960 --> 01:01:30,580 Anda mempunyai fungsi yang dipanggil func. 1172 01:01:30,580 --> 01:01:33,570 Saya boleh menamakannya apa sahaja, tetapi saya memilih untuk nama itu func. 1173 01:01:33,570 --> 01:01:36,000 Saya ada di atas utama saya. 1174 01:01:36,000 --> 01:01:39,790 Ingat, anda ingin mempunyai fungsi selepas utama anda, 1175 01:01:39,790 --> 01:01:42,370 anda ingin memastikan anda termasuk prototaip atas. 1176 01:01:42,370 --> 01:01:45,750 >> Tetapi dalam kes ini ia begitu pendek yang saya rasa yang saya boleh hanya 1177 01:01:45,750 --> 01:01:47,260 memasukkannya di puncak utama. 1178 01:01:47,260 --> 01:01:51,170 Saya tidak perlu mempunyai prototaip, kerana ia telah ditulis di atas. 1179 01:01:51,170 --> 01:01:55,430 Jadi semua yang saya lakukan dalam fungsi utama saya mewujudkan integer x sama 10. 1180 01:01:55,430 --> 01:02:00,490 Saya memanggil fungsi func saya, dan kemudian mencetak sesuatu. 1181 01:02:00,490 --> 01:02:02,840 >> Dan kemudian yang sebenarnya apa func lakukan. 1182 01:02:02,840 --> 01:02:04,340 Kalian mahu berfikir melalui ini. 1183 01:02:04,340 --> 01:02:05,423 Kerana ia agak rumit. 1184 01:02:05,423 --> 01:02:07,220 Ia amat, sangat rumit, sebenarnya. 1185 01:02:07,220 --> 01:02:09,549 Berfikir melalui apa ini program akan Outputting. 1186 01:02:09,549 --> 01:02:10,840 Saya akan memberikan anda semua dua minit. 1187 01:02:10,840 --> 01:03:36,660 1188 01:03:36,660 --> 01:03:37,891 >> Perbincangan yang baik? 1189 01:03:37,891 --> 01:03:38,853 >> PENONTON: Ya. 1190 01:03:38,853 --> 01:03:39,815 >> PROFESOR: Ya. 1191 01:03:39,815 --> 01:03:42,220 Baiklah, jadi ini adalah sukar untuk sebab. 1192 01:03:42,220 --> 01:03:44,845 Dan ini adalah mengapa saya mahu membawa ini kepada perhatian semua orang. 1193 01:03:44,845 --> 01:03:47,870 1194 01:03:47,870 --> 01:03:51,147 Adakah sesiapa yang mahu memberikan saya cadangan, cuba? 1195 01:03:51,147 --> 01:03:52,230 Apa yang akan mencetak? 1196 01:03:52,230 --> 01:03:53,930 Benar-benar baik jika anda salah. 1197 01:03:53,930 --> 01:03:55,619 Ya? 1198 01:03:55,619 --> 01:03:59,483 >> PENONTON: Saya fikir ia adalah 100 dan kemudian 10 pada dua baris yang berbeza. 1199 01:03:59,483 --> 01:04:00,940 >> PROFESOR: Dan 10? 1200 01:04:00,940 --> 01:04:03,154 Adakah sesiapa yang mempunyai apa-apa tekaan yang lain? 1201 01:04:03,154 --> 01:04:04,150 Ya? 1202 01:04:04,150 --> 01:04:09,040 >> PENONTON: Mungkin hanya 10 kerana func tidak kembali apa-apa? 1203 01:04:09,040 --> 01:04:11,610 >> PROFESOR: OK, jadi kami mempunyai nombor meneka satu 1204 01:04:11,610 --> 01:04:14,990 adalah bahawa jumlah tekaan dua adalah hanya akan mencetak 10. 1205 01:04:14,990 --> 01:04:17,623 Adakah sesiapa yang mempunyai apa-apa tekaan yang lain? 1206 01:04:17,623 --> 01:04:19,654 OKAY. 1207 01:04:19,654 --> 01:04:21,070 Jadi mari kita berjalan melalui ini, bukan? 1208 01:04:21,070 --> 01:04:23,903 Setiap kali anda mendapatkan sekeping kod, jangan hanya melihat dan menjadi seperti, 1209 01:04:23,903 --> 01:04:25,060 ah, itu barangan begitu banyak! 1210 01:04:25,060 --> 01:04:26,460 Saya jadi keliru! 1211 01:04:26,460 --> 01:04:28,220 Seperti, menenangkan diri anda ke bawah. 1212 01:04:28,220 --> 01:04:31,602 Hanya tahu bahawa anda boleh hanya melihat melalui garis kod demi baris. 1213 01:04:31,602 --> 01:04:32,310 Itu sahaja yang ia adalah. 1214 01:04:32,310 --> 01:04:33,840 Ia seperti membaca buku. 1215 01:04:33,840 --> 01:04:38,000 >> Jadi dengan apa-apa fungsi, kita sentiasa bermula utama. 1216 01:04:38,000 --> 01:04:40,860 Oleh itu, kita akan bermula dari sah utama int, 1217 01:04:40,860 --> 01:04:43,010 walaupun program ini sudah lari ke bawah, bukan? 1218 01:04:43,010 --> 01:04:45,070 Mula di dalam kekosongan utama. 1219 01:04:45,070 --> 01:04:48,030 Int x sama 10. 1220 01:04:48,030 --> 01:04:50,400 >> Jadi saya akan untuk memadam ini. 1221 01:04:50,400 --> 01:04:55,179 1222 01:04:55,179 --> 01:04:58,470 Saya akan menarik memori hanya supaya anda lelaki jenis boleh melihat apa yang berlaku. 1223 01:04:58,470 --> 01:05:02,190 >> Ingat turun di sini kita mempunyai timbunan kami? 1224 01:05:02,190 --> 01:05:05,810 Di sini kami ada kami ditimbunkannya di suatu tempat di sini. 1225 01:05:05,810 --> 01:05:07,470 Stack membesar, bukan? 1226 01:05:07,470 --> 01:05:10,150 Dan dalam timbunan, anda perlu sesalur berfungsi serta 1227 01:05:10,150 --> 01:05:12,230 semua pembolehubah tempatan kuasa. 1228 01:05:12,230 --> 01:05:14,310 >> Jadi di sini, int x sama dengan 10. 1229 01:05:14,310 --> 01:05:17,670 Dalam fungsi utama kami kami mewujudkan pembolehubah yang dipanggil x. 1230 01:05:17,670 --> 01:05:20,590 Kami menetapkan yang sama dengan 10. 1231 01:05:20,590 --> 01:05:24,200 Di sini anda telah mendapat beberapa x, dan anda menetapkan yang sama dengan 10, ke kanan, 1232 01:05:24,200 --> 01:05:25,400 dalam utama. 1233 01:05:25,400 --> 01:05:27,430 Semua orang yang baik? 1234 01:05:27,430 --> 01:05:28,070 >> Fungsi. 1235 01:05:28,070 --> 01:05:30,330 Oleh sebab itu, dalam utama kami fungsi, kami memanggil 1236 01:05:30,330 --> 01:05:31,810 majlis itu kami telah menulis di atas. 1237 01:05:31,810 --> 01:05:34,550 Oleh itu, kita sedang memasukkan fungsi kedua. 1238 01:05:34,550 --> 01:05:40,120 Kami akan mewujudkan satu lagi pembolehubah int x sama 100. 1239 01:05:40,120 --> 01:05:42,410 Apa yang berlaku di sini pada tindanan? 1240 01:05:42,410 --> 01:05:46,980 Apa yang berlaku apabila anda memanggil fungsi yang mencipta pembolehubah baru? 1241 01:05:46,980 --> 01:05:50,038 Apa yang berlaku di sini pada tindanan? 1242 01:05:50,038 --> 01:05:52,134 >> PENONTON: [didengar] timbunan di atas? 1243 01:05:52,134 --> 01:05:52,800 PROFESOR: Ya. 1244 01:05:52,800 --> 01:05:54,050 Jadi ia sebenarnya mewujudkan satu salinan. 1245 01:05:54,050 --> 01:05:56,560 1246 01:05:56,560 --> 01:05:57,740 Serta berbuat baik ia cerucuk di atas. 1247 01:05:57,740 --> 01:06:00,700 Fikirkan stack-- timbunan buku, timbunan apa-apa. 1248 01:06:00,700 --> 01:06:06,520 Buasir di atas, pertama di lepas keluar, bertahan, keluar dahulu. 1249 01:06:06,520 --> 01:06:08,471 >> Jadi ia akan mewujudkan x di sini. 1250 01:06:08,471 --> 01:06:12,080 1251 01:06:12,080 --> 01:06:14,450 >> Yang akan mempunyai semua pembolehubah funcs. 1252 01:06:14,450 --> 01:06:14,950 Yang besar. 1253 01:06:14,950 --> 01:06:20,980 Jadi sekarang kita mempunyai dua x yang berbeza ini yang mewakili dua perkara yang sangat berbeza. 1254 01:06:20,980 --> 01:06:24,470 Kemudian kami akan mencetak keluar integer x. 1255 01:06:24,470 --> 01:06:26,430 Jadi mari kita mencetak 100, bukan? 1256 01:06:26,430 --> 01:06:29,389 Kerana di sini ia adalah 100. 1257 01:06:29,389 --> 01:06:31,680 Jadi itulah perkara pertama bahawa ia akan mencetak. 1258 01:06:31,680 --> 01:06:35,710 Oleh kerana ini apa-apa pulangan fungsi, sekarang bahawa fungsi, bahawa garis di utama 1259 01:06:35,710 --> 01:06:37,070 dilakukan. 1260 01:06:37,070 --> 01:06:39,160 Semua orang baik dengan saya setakat ini? 1261 01:06:39,160 --> 01:06:43,034 >> Jadi kita sekarang melalui dua daripada tiga barisan fungsi utama kami. 1262 01:06:43,034 --> 01:06:44,450 Sekarang kita akan ke baris ketiga. 1263 01:06:44,450 --> 01:06:46,350 Kami akan printf. 1264 01:06:46,350 --> 01:06:48,222 Apa yang x ini dalam utama? 1265 01:06:48,222 --> 01:06:49,263 Apa yang mewakili? 1266 01:06:49,263 --> 01:06:52,720 1267 01:06:52,720 --> 01:06:54,280 >> Apa nilai x sekarang? 1268 01:06:54,280 --> 01:06:55,220 >> PENONTON: 100. 1269 01:06:55,220 --> 01:06:56,799 >> PROFESOR: Ia 100? 1270 01:06:56,799 --> 01:06:57,590 PENONTON: Masih 10. 1271 01:06:57,590 --> 01:06:58,878 PROFESOR: Still 10. 1272 01:06:58,878 --> 01:07:00,870 Yeah. 1273 01:07:00,870 --> 01:07:06,810 Kerana ingat, dalam func kita, x sama 100. 1274 01:07:06,810 --> 01:07:09,690 Tetapi jika kita kembali fungsi utama kami, 1275 01:07:09,690 --> 01:07:12,440 pembolehubah yang disimpan di dalam tempat yang berbeza pada timbunan kami. 1276 01:07:12,440 --> 01:07:16,250 >> Jadi sekarang kita perlu kembali kepada timbunan utama, sesalur pembolehubah tempatan. 1277 01:07:16,250 --> 01:07:18,460 Dan di sini x sama dengan 10. 1278 01:07:18,460 --> 01:07:20,300 Dan sebagainya kita akan mencetak 10. 1279 01:07:20,300 --> 01:07:22,530 >> Jadi dia benar-benar betul. 1280 01:07:22,530 --> 01:07:25,053 Kita akan mempunyai output 100 dan 10. 1281 01:07:25,053 --> 01:07:25,553 Ya? 1282 01:07:25,553 --> 01:07:28,700 PENONTON: Apabila anda malloc, adakah ia longgokan atau timbunan yang [didengar]? 1283 01:07:28,700 --> 01:07:31,950 PROFESOR: Apabila anda malloc, anda mengambil ingatan dari timbunan itu 1284 01:07:31,950 --> 01:07:32,830 dan memperuntukkan ia. 1285 01:07:32,830 --> 01:07:34,950 Supaya anda tidak perlu kucar-kacir dengan mana-mana ini. 1286 01:07:34,950 --> 01:07:38,100 Jadi saya rasa bawa pulang yang lebih besar di sini ialah sesuatu yang dinamakan skop. 1287 01:07:38,100 --> 01:07:39,650 >> Bagi anda yang berada di sesi kajian malam tadi, 1288 01:07:39,650 --> 01:07:41,080 kita bercakap secara ringkas tentang perkara ini. 1289 01:07:41,080 --> 01:07:45,380 Skop mentakrifkan bagaimana dan apabila pembolehubah anda wujud. 1290 01:07:45,380 --> 01:07:48,050 Atau dalam apa bingkai melakukan pembolehubah anda wujud. 1291 01:07:48,050 --> 01:07:51,690 >> Cukup banyak amalan biasa secara amnya adalah, variables-- anda jika anda membuat mereka 1292 01:07:51,690 --> 01:07:56,660 dalam braces-- kerinting wujud hanya di dalam orang-orang pendakap kerinting. 1293 01:07:56,660 --> 01:08:00,312 >> Jadi, sebagai contoh dalam fungsi kami func, anda lihat kedua-dua penyokong gigi. 1294 01:08:00,312 --> 01:08:02,020 Jika anda membuat apa-apa yang di dalamnya, 1295 01:08:02,020 --> 01:08:06,500 kemungkinan semua yang anda lakukan adalah mewujudkan timbunan dan menyimpan bahawa terdapat. 1296 01:08:06,500 --> 01:08:07,430 Perkara yang sama dalam utama. 1297 01:08:07,430 --> 01:08:09,950 Itu hanya disimpan dalam utama. 1298 01:08:09,950 --> 01:08:13,560 >> Juga anda mahu sangat, sangat berhati-hati di sini. 1299 01:08:13,560 --> 01:08:18,310 Kerana skop juga meminjamkan dirinya kepada contoh-contoh yang berbeza. 1300 01:08:18,310 --> 01:08:25,950 Jadi, sebagai contoh untuk gelung, untuk int i sama dengan 0. 1301 01:08:25,950 --> 01:08:28,460 Saya adalah kurang daripada, saya tidak tahu, 10. 1302 01:08:28,460 --> 01:08:32,111 Saya plus plus. 1303 01:08:32,111 --> 01:08:34,560 Dan anda telah mendapat kod di dalamnya, bukan? 1304 01:08:34,560 --> 01:08:38,830 >> Di manakah pembolehubah ini, i, sebenarnya hanya wujud? 1305 01:08:38,830 --> 01:08:40,510 Hanya bahagian dalam untuk anda gelung. 1306 01:08:40,510 --> 01:08:43,640 Jadi saya pasti ramai daripada anda semua mempunyai mungkin menghadapi masalah ini apabila 1307 01:08:43,640 --> 01:08:45,930 yang anda lakukan program psets anda. 1308 01:08:45,930 --> 01:08:49,990 Berapa ramai daripada anda semua telah cuba menggunakan i luar untuk gelung dan mempunyai kesilapan? 1309 01:08:49,990 --> 01:08:53,310 Seperti bilangan bulat mempunyai rujukan atau sesuatu seperti itu? 1310 01:08:53,310 --> 01:08:56,069 >> Sebab mengapa ini berlaku adalah kerana di sini anda 1311 01:08:56,069 --> 01:08:59,109 mewujudkan sesuatu yang hanya wujud dalam untuk anda gelung. 1312 01:08:59,109 --> 01:09:01,972 Dan jika anda cuba untuk menggunakannya, i tidak benar-benar wujud di luarnya. 1313 01:09:01,972 --> 01:09:04,930 Jadi, pada asasnya komputer berkata, 'Saya tidak tahu apa yang anda bercakap tentang. 1314 01:09:04,930 --> 01:09:08,689 Apa yang saya tahu bahawa saya adalah di sini, tetapi sekarang tidak lagi. 1315 01:09:08,689 --> 01:09:12,580 >> Jadi jika saya membuat untuk gelung dalam, bukan? 1316 01:09:12,580 --> 01:09:19,080 Dan saya akan mewujudkan satu lagi, seperti int j, dan ia melakukan apa sahaja. 1317 01:09:19,080 --> 01:09:23,689 Dan anda mempunyai kod di dalam gelung itu, j hanya wujud di sini. 1318 01:09:23,689 --> 01:09:26,029 Tetapi itu juga wujud di dalam i. 1319 01:09:26,029 --> 01:09:29,310 Dan sebagainya j hanya wujud dalam tempoh ini untuk gelung, 1320 01:09:29,310 --> 01:09:33,850 manakala i wujud dalam segala-galanya. 1321 01:09:33,850 --> 01:09:34,500 >> Semua orang jelas? 1322 01:09:34,500 --> 01:09:37,416 Perkara yang sama dengan kenyataan bersyarat jika anda ingin membuat apa-apa. 1323 01:09:37,416 --> 01:09:40,390 Perkara yang sama dengan gelung manakala jika anda ingin membuat apa-apa. 1324 01:09:40,390 --> 01:09:42,390 Itulah sesuatu yang boleh sangat, sangat berhati-hati. 1325 01:09:42,390 --> 01:09:45,681 Jadi ini adalah satu masalah yang benar-benar baik dalam merasakan bahawa ia menunjukkan dua perkara. 1326 01:09:45,681 --> 01:09:47,160 Ia menunjukkan pertama, skop. 1327 01:09:47,160 --> 01:09:49,550 Dan ia menunjukkan juga peruntukan ingatan. 1328 01:09:49,550 --> 01:09:54,130 Kerana anda semua perlu tahu bahawa fungsi tumbuh ke atas dalam timbunan. 1329 01:09:54,130 --> 01:09:56,710 Dan apabila kamu menyeru fungsi, anda mewujudkan 1330 01:09:56,710 --> 01:09:59,060 dasarnya timbunan baru memori. 1331 01:09:59,060 --> 01:10:02,100 Yang sangat berbeza daripada apa memori utama anda. 1332 01:10:02,100 --> 01:10:03,300 Yeah. 1333 01:10:03,300 --> 01:10:03,800 Huh! 1334 01:10:03,800 --> 01:10:05,470 Semua orang OK pada itu? 1335 01:10:05,470 --> 01:10:06,750 Itu adalah mengelirukan. 1336 01:10:06,750 --> 01:10:09,380 Topik yang sangat baik untuk pergi ke atas, kerana anda mungkin 1337 01:10:09,380 --> 01:10:12,255 akan mendapatkan beberapa rumit perkara seperti itu pada kuiz. 1338 01:10:12,255 --> 01:10:13,350 Yeah. 1339 01:10:13,350 --> 01:10:13,850 Sejuk. 1340 01:10:13,850 --> 01:10:16,014 1341 01:10:16,014 --> 01:10:18,430 Saya akan meletakkan anda mendapat 100 pada satu garis dan kemudian 10 di pihak yang lain. 1342 01:10:18,430 --> 01:10:21,468 Yeah, sangat baik. 1343 01:10:21,468 --> 01:10:26,350 >> OK, sekarang anda semua akan mendapat peluang untuk menjadi TA. 1344 01:10:26,350 --> 01:10:30,600 Anda dapat menjawab semua indah e-mel yang kadang-kadang saya dapat. 1345 01:10:30,600 --> 01:10:34,290 >> Jadi, Dear Andi, saya lihat Saya berfikir sesuatu yang yang salah dengan pengkompil saya. 1346 01:10:34,290 --> 01:10:37,910 Saya pasti bahawa kod saya adalah betul, tetapi saya terus mendapat kesalahan segmentasi 1347 01:10:37,910 --> 01:10:39,074 setiap kali saya berjalan. 1348 01:10:39,074 --> 01:10:39,740 Apa yang berlaku? 1349 01:10:39,740 --> 01:10:42,844 Sila membantu, kasih sayang. 1350 01:10:42,844 --> 01:10:45,740 1351 01:10:45,740 --> 01:10:49,410 >> Jika anda semua mendapat sesuatu seperti bahawa bagaimana anda akan bertindak balas? 1352 01:10:49,410 --> 01:10:51,860 Ini adalah sebenarnya perkara biasa soalan kami akan bertanya kepada anda. 1353 01:10:51,860 --> 01:10:54,090 Adalah jika, kami akan memberikan anda satu senario, kami akan memberikan kami 1354 01:10:54,090 --> 01:10:56,350 tekaan terbaik anda apa yang sedang berlaku. 1355 01:10:56,350 --> 01:11:00,710 Sesiapa yang mempunyai menikam apa yang berlaku? 1356 01:11:00,710 --> 01:11:02,654 Ya? 1357 01:11:02,654 --> 01:11:06,056 >> PENONTON: Mungkin dereferenced yang null, sesuatu seperti penunjuk 1358 01:11:06,056 --> 01:11:08,924 menunjuk pada sesuatu null. 1359 01:11:08,924 --> 01:11:11,590 PROFESOR: Ya, itu akan menjadi satu contoh apabila yang akan berlaku. 1360 01:11:11,590 --> 01:11:14,467 Tetapi apa yang gambar yang lebih besar apa yang berlaku di sini? 1361 01:11:14,467 --> 01:11:17,050 PENONTON: Adakah anda cuba untuk mengakses memori yang anda tidak 1362 01:11:17,050 --> 01:11:18,175 sepatutnya mempunyai akses kepada? 1363 01:11:18,175 --> 01:11:19,200 PROFESOR: Tepat sekali. 1364 01:11:19,200 --> 01:11:24,800 Jadi berfikir kesalahan seg, di luar yang had, kawasan terhad dalam ingatan 1365 01:11:24,800 --> 01:11:27,780 bahawa anda tidak perlu menyentuh. 1366 01:11:27,780 --> 01:11:31,670 >> Jadi cukup banyak apabila anda cuba untuk index-- seperti contohnya, 1367 01:11:31,670 --> 01:11:34,110 anda telah mengisytiharkan array dari sifar hingga sembilan. 1368 01:11:34,110 --> 01:11:37,360 Tetapi anda cuba untuk menyentuh ke-10 yang nilai, anda tidak mempunyai akses kepada itu. 1369 01:11:37,360 --> 01:11:38,694 Kerana anda tidak diisytiharkan. 1370 01:11:38,694 --> 01:11:40,943 Dan supaya komputer anda akan melihat bahawa menjadi seperti, 1371 01:11:40,943 --> 01:11:43,440 uh oh, anda cuba untuk pergi di luar batas-batas indeks. 1372 01:11:43,440 --> 01:11:45,270 Saya akan memberikan anda kesalahan segmentasi. 1373 01:11:45,270 --> 01:11:46,590 >> Fikirkan sebagai segmen, bukan? 1374 01:11:46,590 --> 01:11:49,665 Segmen tambahan, kesalahan adalah apabila anda cuba untuk melanggar sesuatu 1375 01:11:49,665 --> 01:11:50,790 dan anda tidak perlu berada di sana. 1376 01:11:50,790 --> 01:11:53,660 Segmentasi kesalahan adalah bila-bila masa anda cuba untuk menyentuh perkara-perkara 1377 01:11:53,660 --> 01:11:54,970 bahawa anda tidak perlu menyentuh. 1378 01:11:54,970 --> 01:11:56,815 >> Contoh Jadi biasa ialah indeks. 1379 01:11:56,815 --> 01:11:58,940 Sudah tentu, jika anda cuba menyentuh bahawa adalah tidak sah, 1380 01:11:58,940 --> 01:12:00,220 yang juga akan berfungsi dengan baik. 1381 01:12:00,220 --> 01:12:02,300 Jika penunjuk anda cuba menyentuh perkara-perkara yang tidak boleh disentuh, 1382 01:12:02,300 --> 01:12:03,730 yang juga boleh berfungsi dengan baik. 1383 01:12:03,730 --> 01:12:07,120 Kebanyakan biasanya anda akan melihat ini dalam array. 1384 01:12:07,120 --> 01:12:07,740 Semua orang yang baik? 1385 01:12:07,740 --> 01:12:10,374 >> PENONTON: Jadi, jika anda mahu untuk mengakses titik-10 1386 01:12:10,374 --> 01:12:12,290 dan hanya ada had sembilan atau sesuatu. 1387 01:12:12,290 --> 01:12:13,160 >> PROFESOR: Ya, betul-betul. 1388 01:12:13,160 --> 01:12:13,660 Agak banyak. 1389 01:12:13,660 --> 01:12:15,930 1390 01:12:15,930 --> 01:12:16,430 Sejuk. 1391 01:12:16,430 --> 01:12:19,070 1392 01:12:19,070 --> 01:12:19,920 >> Dear Andi. 1393 01:12:19,920 --> 01:12:23,440 Jadi kita telah mendapat ini indah perkara yang dipanggil macam. 1394 01:12:23,440 --> 01:12:25,472 Jika Gabung sort-- seperti yang kita saw dalam contoh apabila 1395 01:12:25,472 --> 01:12:27,180 Oleh Daud, seluruh perkara dalam class-- mengapa, 1396 01:12:27,180 --> 01:12:29,760 jika ia lebih cepat daripada mana-mana jenis lain, 1397 01:12:29,760 --> 01:12:33,310 mengapa kita peduli mengetahui mana-mana jenis lain? 1398 01:12:33,310 --> 01:12:35,100 >> Apakah soalan ini benar-benar meminta anda? 1399 01:12:35,100 --> 01:12:36,659 Apakah tiga word-- yang 1400 01:12:36,659 --> 01:12:37,950 PENONTON: Apakah yang dimaksudkan dengan keseimbangan? 1401 01:12:37,950 --> 01:12:38,530 PROFESOR: Tepat sekali. 1402 01:12:38,530 --> 01:12:39,946 Itulah apa soalan bertanyakan. 1403 01:12:39,946 --> 01:12:43,682 Apakah yang dimaksudkan dengan keseimbangan antara Bergabung apapun ayat apa-apa jenis lain? 1404 01:12:43,682 --> 01:12:45,850 >> PENONTON: Mengambil ingatan, bukan? 1405 01:12:45,850 --> 01:12:47,720 >> PROFESOR: Adakah anda menjelaskan bahawa sedikit lebih? 1406 01:12:47,720 --> 01:12:49,490 Pertama mari kita menjelaskan kedai Merge. 1407 01:12:49,490 --> 01:12:50,970 Bagaimanakah Gabung jenis berfungsi? 1408 01:12:50,970 --> 01:12:55,220 >> PENONTON: Jadi ia berfungsi dengan membahagikan segala-galanya ke separuh 1409 01:12:55,220 --> 01:13:00,660 dan kemudian meletakkan bersama-sama dan pembahagian semula dalam keadaan baik, 1410 01:13:00,660 --> 01:13:02,862 seperti setiap kali anda menggabungkan set. 1411 01:13:02,862 --> 01:13:03,820 PROFESOR: Pretty banyak. 1412 01:13:03,820 --> 01:13:06,861 Jadi saya boleh menarik ini, tetapi ia akan membawa saya lima minit untuk menarik keluar. 1413 01:13:06,861 --> 01:13:10,220 Melihat kembali kepada slaid seksyen di mana kami meliputi jenis Merge. 1414 01:13:10,220 --> 01:13:10,790 Tepat sekali. 1415 01:13:10,790 --> 01:13:13,406 >> Jadi cara Gabung kerja semacam adalah ia membahagikan perkara pada separuh, 1416 01:13:13,406 --> 01:13:15,780 dan kemudian ia hanya melihat kepada Nilai pertama sekali daripada mereka 1417 01:13:15,780 --> 01:13:17,000 dan macam itu sahaja. 1418 01:13:17,000 --> 01:13:20,364 Secara berterusan mewujudkan barisan baru dan meletakkan perkara yang lebih dan lebih teratur. 1419 01:13:20,364 --> 01:13:23,030 Dan jadi sementara itu benar-benar, benar-benar cepat kerana it's-- yang anda tahu, 1420 01:13:23,030 --> 01:13:25,380 carian binari adalah n log n. 1421 01:13:25,380 --> 01:13:27,880 Anda mencipta banyak array berbeza yang anda berada 1422 01:13:27,880 --> 01:13:29,700 menggunakan sejumlah besar memori. 1423 01:13:29,700 --> 01:13:33,080 Dan supaya semasa ia adalah lebih cepat, perdagangan luar di sini adalah bahawa anda menggunakan lebih banyak memori. 1424 01:13:33,080 --> 01:13:38,490 >> Dan sebagainya, tanda-tanda, macam dan carian ditutup lebih banyak tahun ini 1425 01:13:38,490 --> 01:13:41,610 daripada mereka telah dalam tahun-tahun sebelumnya. 1426 01:13:41,610 --> 01:13:45,100 Kalian harus melihat bahawa diambilkira dalam kuiz. 1427 01:13:45,100 --> 01:13:49,160 Saya pasti akan menghabiskan masa akan atas apa yang semua jenis yang berbeza 1428 01:13:49,160 --> 01:13:52,320 adalah, carian bagaimana binari, bagaimana linear kerja carian. 1429 01:13:52,320 --> 01:13:54,750 Bagaimana mungkin pseudokod kod mereka keluar. 1430 01:13:54,750 --> 01:13:55,950 Apakah kali berjalan? 1431 01:13:55,950 --> 01:13:59,210 Sesuatu seperti berjalan kali adalah sangat mudah untuk tulis atas lembaran nota, 1432 01:13:59,210 --> 01:13:59,710 bukan? 1433 01:13:59,710 --> 01:14:01,420 >> Ia benar-benar sukar apabila anda berada di tengah-tengah ujian 1434 01:14:01,420 --> 01:14:02,390 dan anda perlu memikirkan yang keluar. 1435 01:14:02,390 --> 01:14:03,160 Salin ke bawah. 1436 01:14:03,160 --> 01:14:05,550 Saya jamin anda anda akan perlu tahu bahawa. 1437 01:14:05,550 --> 01:14:06,860 Apakah keseimbangan? 1438 01:14:06,860 --> 01:14:10,064 Kes paling teruk, senario kes terbaik untuk mereka semua, sangat mengenali. 1439 01:14:10,064 --> 01:14:10,564 Ya? 1440 01:14:10,564 --> 01:14:12,730 >> PENONTON: Adakah kita perlu tahu bagaimana untuk kod jenis Merge? 1441 01:14:12,730 --> 01:14:15,470 Seperti, kita perlu ingat rekursif tersebut? 1442 01:14:15,470 --> 01:14:18,950 >> PROFESOR: Saya sangat ragu-ragu, hanya kerana ia seperti agak rumit. 1443 01:14:18,950 --> 01:14:22,282 Tetapi ia mungkin tidak infeasible jika kita meminta anda untuk menggunakan kod pseudo keluar. 1444 01:14:22,282 --> 01:14:22,781 Yeah. 1445 01:14:22,781 --> 01:14:25,470 1446 01:14:25,470 --> 01:14:29,170 >> Yep, OK, satu lagi. 1447 01:14:29,170 --> 01:14:31,387 Ini mungkin datang dalam anda sekeping terakhir dalam sedikit. 1448 01:14:31,387 --> 01:14:42,101 1449 01:14:42,101 --> 01:14:43,090 Ya? 1450 01:14:43,090 --> 01:14:44,930 Adakah semua orang mendengar bahawa? 1451 01:14:44,930 --> 01:14:48,360 >> OK, jadi cukup banyak pertama semua, jenis program apa 1452 01:14:48,360 --> 01:14:51,000 akan memberikan anda output seperti ini? 1453 01:14:51,000 --> 01:14:54,350 Ingat kita meminta anda untuk belajar tentang jenis ini baru alat debugging? 1454 01:14:54,350 --> 01:14:57,340 Apakah nama itu? 1455 01:14:57,340 --> 01:14:59,460 Valgrind, hak 1456 01:14:59,460 --> 01:15:02,600 >> Ia adalah program di mana anda boleh memanggil yang boleh 1457 01:15:02,600 --> 01:15:05,940 mengesan semua memori anda menggunakan dalam program anda dan yang berlaku. 1458 01:15:05,940 --> 01:15:11,090 Jadi jika anda telah mendapat sesuatu, seperti, pasti hilang, 40 bait dalam satu blok. 1459 01:15:11,090 --> 01:15:14,870 Mungkin anda tidak mengingat untuk membebaskan. 1460 01:15:14,870 --> 01:15:18,710 Kerana jika anda menggunakan bait ingatan, ini bermakna anda telah diakses memori, 1461 01:15:18,710 --> 01:15:20,240 tetapi kamu tidak dapat membebaskan. 1462 01:15:20,240 --> 01:15:21,948 Jadi, anda ingin memastikan bahawa anda juga 1463 01:15:21,948 --> 01:15:31,420 menggunakan free-- itu adalah satu function-- untuk membebaskan semua 1464 01:15:31,420 --> 01:15:34,930 memori yang diperuntukkan semula oleh malloc. 1465 01:15:34,930 --> 01:15:35,500 >> Sejuk. 1466 01:15:35,500 --> 01:15:37,140 Jadi slaid ini, saya akan mempunyai ia sehingga. 1467 01:15:37,140 --> 01:15:41,050 Ia adalah di mana-mana dalam banyak ceramah, dalam banyak bahagian slaid. 1468 01:15:41,050 --> 01:15:44,254 Anda benar-benar ingin memastikan anda hanya tahu semua ini. 1469 01:15:44,254 --> 01:15:47,170 Sama ada dalam lembaran komen anda atau jika anda ingin menghafalnya, berasa bebas untuk. 1470 01:15:47,170 --> 01:15:48,836 Itu benar-benar, benar-benar, benar-benar penting. 1471 01:15:48,836 --> 01:15:53,200 1472 01:15:53,200 --> 01:15:56,890 >> Juga yang sangat baik soalan yang kita boleh meminta. 1473 01:15:56,890 --> 01:16:00,320 Mengapa rupa Pemilihan sort-- di Pemilihan sort-- semua runtimes 1474 01:16:00,320 --> 01:16:02,060 adalah n kuasa dua. 1475 01:16:02,060 --> 01:16:06,714 Tidak kira berapa senarai datang kepada anda sebagai, jadi mengapa Pemilihan sort-- 1476 01:16:06,714 --> 01:16:08,630 Saya akan memberikan anda semua 30 kedua berfikir tentang perkara ini. 1477 01:16:08,630 --> 01:16:10,700 Oleh kerana ia adalah jenis mengelirukan. 1478 01:16:10,700 --> 01:16:12,710 Ia melibatkan beberapa pemikiran konseptual. 1479 01:16:12,710 --> 01:16:16,470 Mengapa masa larian akan sama dalam kedua-dua senario kes terburuk dan terbaik? 1480 01:16:16,470 --> 01:16:28,850 1481 01:16:28,850 --> 01:16:30,000 >> Ya? 1482 01:16:30,000 --> 01:16:38,084 >> PENONTON: Kerana Pemilihan jenis setiap kedudukan atau ruang dalam pelbagai kecil ini 1483 01:16:38,084 --> 01:16:40,350 benda atau apa sahaja. 1484 01:16:40,350 --> 01:16:44,430 Jadi, walaupun dalam kes senario yang terbaik, walaupun ia sempurna disusun, 1485 01:16:44,430 --> 01:16:47,380 ia masih akan menjadi seperti, OK, satu. 1486 01:16:47,380 --> 01:16:49,000 Di tempat pertama saya, saya mempunyai satu. 1487 01:16:49,000 --> 01:16:50,250 Dan pergi melalui semua daripada mereka. 1488 01:16:50,250 --> 01:16:51,249 OK, satu adalah yang paling kecil. 1489 01:16:51,249 --> 01:16:53,053 Kemudian ia pergi lagi dan adalah seperti, OK, dua 1490 01:16:53,053 --> 01:16:54,594 yang paling kecil dari semua perkara. 1491 01:16:54,594 --> 01:16:56,804 Tetapi ia masih perlu memeriksa setiap dan tiap-tiap satu. 1492 01:16:56,804 --> 01:16:57,470 PROFESOR: Ya. 1493 01:16:57,470 --> 01:17:00,490 Sebagai contoh, mari kita hanya mengatakan kami senarai, sudah disusun, 1494 01:17:00,490 --> 01:17:03,390 pelbagai 04:59. 1495 01:17:03,390 --> 01:17:07,100 Cara yang macam Pemilihan adalah bahawa ia akan melalui, ia memeriksa kedua-dua. 1496 01:17:07,100 --> 01:17:08,234 Kemudian ia memeriksa kedua-dua. 1497 01:17:08,234 --> 01:17:09,650 Dan kemudian ia memeriksa, dan ia memeriksa. 1498 01:17:09,650 --> 01:17:13,285 Ia terus memeriksa semua daripada mereka, tidak kira sama ada atau tidak 1499 01:17:13,285 --> 01:17:14,160 ia sebenarnya disusun. 1500 01:17:14,160 --> 01:17:16,450 Kerana itulah hanya cara jenis ini berfungsi. 1501 01:17:16,450 --> 01:17:19,530 >> Dan supaya soalan ini adalah jenis seperti soalan konsep kami akan meminta. 1502 01:17:19,530 --> 01:17:21,430 Di mana pertama, anda tahu apa Pemilihan jenis 1503 01:17:21,430 --> 01:17:23,304 adalah, betul, dapat untuk menjawab soalan. 1504 01:17:23,304 --> 01:17:26,200 Anda perlu dapat memahami dari segi konsep apa yang sedang berlaku. 1505 01:17:26,200 --> 01:17:30,760 Dan kemudian anda boleh memohon dan berfikir, OK mari kita bayangkan senario paling buruk. 1506 01:17:30,760 --> 01:17:32,230 Mereka semua dalam tertib menurun. 1507 01:17:32,230 --> 01:17:33,290 Bagaimana yang akan mempengaruhinya? 1508 01:17:33,290 --> 01:17:34,650 >> Bagaimana jika ia menaik perintah? 1509 01:17:34,650 --> 01:17:35,640 Jika ia sudah disusun? 1510 01:17:35,640 --> 01:17:37,240 Bagaimana yang akan mempengaruhi runtimes? 1511 01:17:37,240 --> 01:17:40,270 Dan kemudian semacam Pemilihan, anda akan notis bahawa ia tidak benar-benar perkara itu. 1512 01:17:40,270 --> 01:17:43,500 Kerana anda memeriksa semua nilai-nilai tidak kira apa yang berlaku. 1513 01:17:43,500 --> 01:17:45,810 >> Dan sebagainya yang baik-baik ingat. 1514 01:17:45,810 --> 01:17:50,290 Mengapa sesetengah jenis berbeza daripada orang lain dan cara terbaik dan senario kes terburuk 1515 01:17:50,290 --> 01:17:52,740 akan memberi kesan kepada mereka semua. 1516 01:17:52,740 --> 01:17:56,700 >> Saya akan benar-benar memukul dalam pelbagai kerana yang akan dalam kuiz. 1517 01:17:56,700 --> 01:17:57,199 Yeah. 1518 01:17:57,199 --> 01:18:00,820 1519 01:18:00,820 --> 01:18:01,320 OKAY. 1520 01:18:01,320 --> 01:18:05,590 Ada enam minit. 1521 01:18:05,590 --> 01:18:09,880 Saya boleh mengambil masa tiga minit soalan. 1522 01:18:09,880 --> 01:18:12,290 Saya juga boleh berkeliaran untuk seperti 20 minit selepas seksyen 1523 01:18:12,290 --> 01:18:13,850 jika anda ingin bertanya soalan juga. 1524 01:18:13,850 --> 01:18:16,330 Adakah sesiapa yang benar-benar hanya perlu ringkas soalan atau isu-isu konsep 1525 01:18:16,330 --> 01:18:17,360 mereka tidak jelas tentang sekarang? 1526 01:18:17,360 --> 01:18:17,832 Ya? 1527 01:18:17,832 --> 01:18:19,720 >> PENONTON: Bolehkah anda bercakap sedikit sedikit tentang pengendali Bitwise? 1528 01:18:19,720 --> 01:18:20,280 >> PROFESOR: Ya. 1529 01:18:20,280 --> 01:18:22,446 Pengendali Jadi bitwise adalah sesuatu yang anda mungkin 1530 01:18:22,446 --> 01:18:24,170 hanya mungkin mahu meletakkan dalam kunci anda. 1531 01:18:24,170 --> 01:18:27,540 Jadi quickly-- Saya tidak mahu pergi terlalu jauh lebih mendalam 1532 01:18:27,540 --> 01:18:31,164 kerana Harvard, dalam kajian mereka sesi, menutupinya dengan baik. 1533 01:18:31,164 --> 01:18:33,080 Pengendali Bitwise, ada lima daripada mereka, bukan? 1534 01:18:33,080 --> 01:18:41,370 >> Ada ini, yang x atau fungsi, ada Ampersand, iaitu dan. 1535 01:18:41,370 --> 01:18:44,050 Paip, yang adalah atau yang. 1536 01:18:44,050 --> 01:18:46,790 Dan kemudian anda perlu kedua-dua jenis syif. 1537 01:18:46,790 --> 01:18:50,610 >> Dan apabila aku memberi dua nilai, jika Aku memberi, seperti, satu dan satu. 1538 01:18:50,610 --> 01:18:52,390 Apa yang akan menilai kepada? 1539 01:18:52,390 --> 01:18:55,490 Dan apabila aku memberi benar dan benar, benar? 1540 01:18:55,490 --> 01:18:56,930 Bagaimana pula dengan benar atau salah? 1541 01:18:56,930 --> 01:18:57,830 Masih benar, bukan? 1542 01:18:57,830 --> 01:18:59,762 Kerana ada atau. 1543 01:18:59,762 --> 01:19:01,220 Kita kemungkinan besar akan memberikan anda nombor. 1544 01:19:01,220 --> 01:19:03,780 Jadi ingat, satu sama benar, sifar sama palsu. 1545 01:19:03,780 --> 01:19:07,407 Dan kita boleh memberikan anda perkara-perkara ini dan meminta anda untuk memberitahu kita apa yang berlaku. 1546 01:19:07,407 --> 01:19:10,240 Harvard meliputi dalam tempoh pertama 10 minit sesi pengajian 1547 01:19:10,240 --> 01:19:11,230 benar-benar, benar-benar baik. 1548 01:19:11,230 --> 01:19:14,260 Jadi anda semua ingin pasti anda melihat kembali pada itu. 1549 01:19:14,260 --> 01:19:16,387 >> PENONTON: Adakah pisa5 akan berada di kuiz? 1550 01:19:16,387 --> 01:19:16,970 PROFESOR: No. 1551 01:19:16,970 --> 01:19:18,240 Bahkan tidak melihat pisa5 sekarang. 1552 01:19:18,240 --> 01:19:18,810 Ia sukar. 1553 01:19:18,810 --> 01:19:22,830 Hanya tidak peduli melihat pisa5. 1554 01:19:22,830 --> 01:19:25,665 >> Walau bagaimanapun, seperti beberapa petunjuk dan cadangan, saya 1555 01:19:25,665 --> 01:19:28,320 cadangkan anda mula pisa5 secepat kuiz berakhir. 1556 01:19:28,320 --> 01:19:30,319 Ini akan menjadi yang paling sukar minggu, tetapi kemudian kamu semua 1557 01:19:30,319 --> 01:19:34,590 akan menyampaikannya di atas bukit hijau dan anak anjing bergolek, 1558 01:19:34,590 --> 01:19:36,115 dan ia adalah baik. 1559 01:19:36,115 --> 01:19:39,810 >> Kelas ini mendapat ketara lebih mudah selepas pset kelima. 1560 01:19:39,810 --> 01:19:41,560 Waktu pejabat: PENONTON di Ahad, Isnin? 1561 01:19:41,560 --> 01:19:44,260 PROFESOR: Ya, jadi waktu pejabat akan hari Ahad hingga Isnin untuk pset. 1562 01:19:44,260 --> 01:19:47,009 Waktu pejabat malam ini pada dasarnya hanya akan menjadi ulasan kuiz. 1563 01:19:47,009 --> 01:19:50,350 Jikalau ada orang yang datang dan bertanya Tas soalan, kami akan berada di sana. 1564 01:19:50,350 --> 01:19:53,220 >> Saya akan mengambil mungkin satu lagi soalan sesiapa yang mempunyai soalan? 1565 01:19:53,220 --> 01:19:53,809 Ya? 1566 01:19:53,809 --> 01:19:55,850 PENONTON: Apabila anda nod menentukan, [didengar] 1567 01:19:55,850 --> 01:20:00,700 jika anda mengatakan bintang nod dan kemudian akan datang, tidak komputer secara automatik 1568 01:20:00,700 --> 01:20:03,610 memahami bahawa anda merujuk kepada penunjuk yang lain? 1569 01:20:03,610 --> 01:20:04,580 >> PROFESOR: No. 1570 01:20:04,580 --> 01:20:06,710 >> PENONTON: Anda perlu relink ia [didengar]? 1571 01:20:06,710 --> 01:20:09,270 >> PROFESOR: Jadi pada dasarnya struct nod seorang, ingat, 1572 01:20:09,270 --> 01:20:12,620 ia seperti anda membuat nod dan maka anda mempunyai penunjuk yang dipanggil datang. 1573 01:20:12,620 --> 01:20:14,630 Semua yang anda lakukan adalah mempunyai struktur di sana. 1574 01:20:14,630 --> 01:20:16,387 Anda perlu menetapkan bahawa penunjuk di suatu tempat. 1575 01:20:16,387 --> 01:20:18,470 Oleh itu, komputer tidak tahu apa yang ia lakukan lagi. 1576 01:20:18,470 --> 01:20:20,250 Anda perlu untuk benar-benar sediakan apabila anda mencipta senarai berpaut anda. 1577 01:20:20,250 --> 01:20:22,170 Dan itulah yang terutamanya pset 5 akan. 1578 01:20:22,170 --> 01:20:24,106 Jadi tidak ada kebimbangan mengenai apa-apa hak yang sekarang. 1579 01:20:24,106 --> 01:20:26,380 >> PENONTON: Oleh itu, kita tidak perlu memberi tumpuan terlalu banyak pada senarai link, hanya 1580 01:20:26,380 --> 01:20:27,440 konsep umum? 1581 01:20:27,440 --> 01:20:30,980 >> PROFESOR: Hanya cukup banyak susunan, beratur, senarai pautan, pokok-pokok, jadual hash. 1582 01:20:30,980 --> 01:20:33,639 Hanya dapat mengetahui apa yang mereka. 1583 01:20:33,639 --> 01:20:35,680 Kami tidak akan bertanya anda suka apa-apa yang khusus 1584 01:20:35,680 --> 01:20:39,300 kerana kita tidak benar-benar melakukan Serangga yang meliputi mana-mana yang belum. 1585 01:20:39,300 --> 01:20:45,540 >> Jadi, dalam dua minit terakhir sebelum Saya lepaskan kamu untuk membunuh kuiz ini. 1586 01:20:45,540 --> 01:20:49,370 Cukup banyak, seperti, berfikir tentang bagaimana jauh anda semua telah datang dalam kelas ini. 1587 01:20:49,370 --> 01:20:52,820 >> Saya masih ingat ketika minggu dua kelas ini, sebahagian dari kamu 1588 01:20:52,820 --> 01:20:55,720 menghabiskan masa tiga jam menulis air. 1589 01:20:55,720 --> 01:20:57,970 Berapa lama ia akan membawa anda seorang lelaki untuk menulis air sekarang? 1590 01:20:57,970 --> 01:20:59,670 30 saat, mungkin? 1591 01:20:59,670 --> 01:21:01,810 Fikirkan tentang berapa banyak anda semua telah dipelajari. 1592 01:21:01,810 --> 01:21:04,320 CS adalah satu perkara yang benar-benar, benar-benar keras. 1593 01:21:04,320 --> 01:21:06,190 Tidak ada keraguan itu. 1594 01:21:06,190 --> 01:21:09,160 Sukar, sebab itu tidak ada kajian itu. 1595 01:21:09,160 --> 01:21:10,730 Ia hanya keras. 1596 01:21:10,730 --> 01:21:11,650 Dan ia benar-benar baik. 1597 01:21:11,650 --> 01:21:14,150 >> Dan saya benar-benar bangga kerana semua orang telah membuat sejauh ini. 1598 01:21:14,150 --> 01:21:16,380 Psets tidak mudah. 1599 01:21:16,380 --> 01:21:17,790 Mereka mengambil banyak masa. 1600 01:21:17,790 --> 01:21:22,580 Anda semua, saya tidak akan meminta anda untuk menulis permainan 15 atau Vigenere di pset. 1601 01:21:22,580 --> 01:21:24,160 Tidak perlu hanya dimarahi tentang itu. 1602 01:21:24,160 --> 01:21:28,080 Apa yang kami sedang menguji di sini adalah untuk menilai pengetahuan konseptual anda, dan juga 1603 01:21:28,080 --> 01:21:31,524 sebagai sebahagian daripada kemahiran asas anda pengkodan. 1604 01:21:31,524 --> 01:21:33,440 Ujian ini direka untuk menjadi benar-benar mencabar. 1605 01:21:33,440 --> 01:21:36,180 Seperti, ia direka untuk anda untuk tidak mendapat 100. 1606 01:21:36,180 --> 01:21:39,880 Ia juga direka untuk anda untuk mungkin tidak dapat menyelesaikan dalam 75 minit. 1607 01:21:39,880 --> 01:21:41,995 Dan itu betul-betul halus. 1608 01:21:41,995 --> 01:21:42,870 Saya seorang pelajar sendiri. 1609 01:21:42,870 --> 01:21:45,960 Saya tahu, saya benci apabila saya berjalan daripada kuiz menjadi seperti, najis. 1610 01:21:45,960 --> 01:21:47,044 Itu adalah benar-benar keras. 1611 01:21:47,044 --> 01:21:49,460 Mungkin apa yang akan happen-- dan itu benar-benar halus, 1612 01:21:49,460 --> 01:21:50,751 Saya memberitahu anda semua sekarang. 1613 01:21:50,751 --> 01:21:53,190 Cara yang pada perkara-perkara tidak tinggi sama sekali. 1614 01:21:53,190 --> 01:21:55,360 >> Dan bagi orang-orang yang telah mendapat, seperti, 1615 01:21:55,360 --> 01:21:57,870 bertiga di set masalah anda, itu tidak bermakna anda berada 1616 01:21:57,870 --> 01:21:59,536 akan mendapat 60 peratus dalam kelas ini. 1617 01:21:59,536 --> 01:22:01,440 Jika anda mendapat 60% ke atas kuiz, yang tidak 1618 01:22:01,440 --> 01:22:03,330 bermakna anda akan mendapatkan D dalam kelas ini. 1619 01:22:03,330 --> 01:22:05,740 Yang kita lihat, terutamanya saya, untuk Juga dalam bahagian saya, 1620 01:22:05,740 --> 01:22:07,406 Saya melihat bagaimana keras anda semua sedang berusaha. 1621 01:22:07,406 --> 01:22:09,190 Dan saya menjejaki itu. 1622 01:22:09,190 --> 01:22:11,420 >> Kalian akan halus. 1623 01:22:11,420 --> 01:22:14,580 Tidak ada memori institusi kebahagiaan pada akhir semester. 1624 01:22:14,580 --> 01:22:16,840 Oleh kerana semua anak-anak Harvard memberitahu rakan-rakan mereka, oh, anda akan selamat. 1625 01:22:16,840 --> 01:22:18,381 Tiada siapa yang memberitahu anda semua bahawa di sini. 1626 01:22:18,381 --> 01:22:20,950 Jadi saya perlu memberitahu anda semua bahawa di sini. 1627 01:22:20,950 --> 01:22:22,280 >> Kalian akan halus. 1628 01:22:22,280 --> 01:22:24,080 Saya amat berbangga dengan anda semua lelaki. 1629 01:22:24,080 --> 01:22:25,680 Ujian ini akan menjadi sukar. 1630 01:22:25,680 --> 01:22:28,140 Belajar untuk itu, dan selepas itu hanya membuang ia jauh. 1631 01:22:28,140 --> 01:22:31,280 Dapatkan bersedia untuk belajar sesuatu yang baru. 1632 01:22:31,280 --> 01:22:33,990 Dan makan gula-gula. 1633 01:22:33,990 --> 01:22:35,940 Kami telah mempunyai banyak gula-gula. 1634 01:22:35,940 --> 01:22:37,760 >> Dapatkan tidur yang nyenyak. 1635 01:22:37,760 --> 01:22:40,420 Jangan tidak tidur, kerana yang akan menjadi benar-benar buruk. 1636 01:22:40,420 --> 01:22:41,490 CS adalah banyak logik. 1637 01:22:41,490 --> 01:22:44,960 Jika anda tidak tidur, anda tidak boleh berfungsi, dan otak anda tidak dapat berfungsi. 1638 01:22:44,960 --> 01:22:48,780 Dan saya akan berada di sini sejak 20 yang akan datang minit jika ada orang yang berkeliaran. 1639 01:22:48,780 --> 01:22:51,150 Kalian akan membunuhnya. 1640 01:22:51,150 --> 01:22:53,000 Semoga berjaya. 1641 01:22:53,000 --> 01:22:55,663