1 00:00:00,000 --> 00:00:02,742 >> [Bermain muzik] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI PENG: Ini adalah CS50, dan dialu-alukan untuk seminggu dua bahagian. 4 00:00:09,090 --> 00:00:11,740 Ini sebenarnya semasa minggu dua daripada class-- kita sebenarnya, 5 00:00:11,740 --> 00:00:14,550 minggu pertama kita telah mempunyai bahagian. 6 00:00:14,550 --> 00:00:18,897 Mengangkat tangan, berapa ramai daripada anda semua datang kepada seksyen super minggu lepas? 7 00:00:18,897 --> 00:00:19,480 OK, itu OK. 8 00:00:19,480 --> 00:00:20,020 Tak apa. 9 00:00:20,020 --> 00:00:23,110 Berapa ramai daripada anda menonton seksyen super minggu lepas? 10 00:00:23,110 --> 00:00:23,610 OKAY. 11 00:00:23,610 --> 00:00:25,702 Dan anda semua lakukan denda pada masalah menetapkan satu? 12 00:00:25,702 --> 00:00:28,660 Jadi saya akan mengambilnya yang kita ada sekumpulan anak-anak benar-benar pintar 13 00:00:28,660 --> 00:00:32,310 di dalam kelas ini dan perkara-perkara akan halus. 14 00:00:32,310 --> 00:00:33,180 OKAY. 15 00:00:33,180 --> 00:00:33,980 Jadi first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Pertama, kita hanya akan secara ringkas pergi ke atas agenda untuk hari ini. 18 00:00:41,090 --> 00:00:42,700 Kami akan bercakap mengenai logistik kursus. 19 00:00:42,700 --> 00:00:45,480 Banyak anda mungkin mempunyai soalan mengenai 20 00:00:45,480 --> 00:00:46,920 bagaimana perkara-perkara yang dikendalikan dalam kursus ini. 21 00:00:46,920 --> 00:00:47,897 Kami akan menjawab mereka. 22 00:00:47,897 --> 00:00:49,730 Kami akan secara ringkas pergi ke gelung dalam kes 23 00:00:49,730 --> 00:00:51,410 apa-apa daripada anda semua terlepas seksyen super. 24 00:00:51,410 --> 00:00:53,240 Kami akan bercakap mengenai pemetaan ASCII. 25 00:00:53,240 --> 00:00:56,180 Kita akan bercakap tentang tatasusunan, fungsi, hujah baris arahan. 26 00:00:56,180 --> 00:01:00,210 Dan akhirnya, apa yang anda semua mungkin semua benar-benar mahu berada di sini untuk mempelajari, 27 00:01:00,210 --> 00:01:01,270 adalah pset2 anda. 28 00:01:01,270 --> 00:01:04,209 Kami akan mempunyai beberapa helah yang bagus dan tips untuk bagaimana untuk berbuat demikian. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> OKAY. 31 00:01:08,690 --> 00:01:11,450 Juga, kedua, kita ada banyak gula-gula di sini. 32 00:01:11,450 --> 00:01:13,583 Sesiapa yang suka gula-gula, hanya datang di sini. 33 00:01:13,583 --> 00:01:14,430 Dapatkan beberapa. 34 00:01:14,430 --> 00:01:15,100 Saya mempunyai sekumpulan. 35 00:01:15,100 --> 00:01:16,390 Kami mempunyai satu tan di pejabat. 36 00:01:16,390 --> 00:01:18,230 Saya tidak benar-benar mahu makan gula-gula sepanjang hari. 37 00:01:18,230 --> 00:01:20,300 Anda semua perlu makan semua gula-gula, kerana saya membawanya ke sini untuk anda semua. 38 00:01:20,300 --> 00:01:20,990 Hanya makan gula-gula. 39 00:01:20,990 --> 00:01:24,080 Akan ada gula-gula setiap bahagian. 40 00:01:24,080 --> 00:01:25,330 >> Jadi pertama, siapakah aku? 41 00:01:25,330 --> 00:01:27,080 Nama saya Andi Peng. 42 00:01:27,080 --> 00:01:30,270 Saya kepala TA CS50 sini di Yale. 43 00:01:30,270 --> 00:01:32,540 Dan sebagai tambahan kepada itu, saya juga akan adalah- 44 00:01:32,540 --> 00:01:35,600 jika ada orang yang like-- anda berjalan rakan, bahu untuk menangis. 45 00:01:35,600 --> 00:01:39,140 Jika pada malam sebelumnya kerana pset anda, anda tidak tahu apa yang berlaku, 46 00:01:39,140 --> 00:01:40,080 pukul saya. 47 00:01:40,080 --> 00:01:42,770 Kami akan simpati bersama-sama, dan sebagainya. 48 00:01:42,770 --> 00:01:46,100 Hanya tahu bahawa saya di sini sebagai sumber untuk anda sebagai barisan hadapan 49 00:01:46,100 --> 00:01:51,830 dalam membantu anda semua memikirkan bagaimana untuk menyelesaikan masalah dalam CS50 dan seterusnya. 50 00:01:51,830 --> 00:01:54,590 >> Emel saya ialah andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Saya juga akan menghantar individu e-mel dengan nombor telefon saya di dalamnya 52 00:01:58,390 --> 00:02:01,860 supaya tidak semua orang pada internet boleh melihat nombor telefon saya. 53 00:02:01,860 --> 00:02:03,640 Jangan ragu untuk menghubungi saya pada bila-bila. 54 00:02:03,640 --> 00:02:07,510 Serius, telefon saya ialah biasanya melekat pada tangan saya. 55 00:02:07,510 --> 00:02:10,240 Saya tidak boleh bertindak balas dalam beberapa minit. 56 00:02:10,240 --> 00:02:11,984 Saya tidak boleh bertindak balas dalam masa beberapa jam. 57 00:02:11,984 --> 00:02:14,400 Tetapi saya boleh menjamin anda, jika anda e-mel kepada saya, jika anda memanggil saya, 58 00:02:14,400 --> 00:02:17,404 teks saya, saya akan bertindak balas dalam tempoh 24 jam. 59 00:02:17,404 --> 00:02:19,820 Sering kali, saya akan bertindak balas sebelum itu, kerana saya memahami 60 00:02:19,820 --> 00:02:23,900 bahawa semua orang mendapat beberapa masalah, dan anda mahu jawapan anda 61 00:02:23,900 --> 00:02:26,110 dijawab dengan cepat. 62 00:02:26,110 --> 00:02:28,945 >> Walau bagaimanapun, jika anda memanggil saya 30 minit sebelum 63 00:02:28,945 --> 00:02:31,570 sekeping yang disebabkan Khamis night-- menjadi seperti, Andi, tolonglah aku, 64 00:02:31,570 --> 00:02:35,380 Saya tidak started-- saya boleh memberi anda bahu yang untuk menangis. 65 00:02:35,380 --> 00:02:41,520 Tetapi ia mungkin masa untuk berfikir tentang bagaimana untuk tidak masa yang akan datang. 66 00:02:41,520 --> 00:02:44,040 OKAY. 67 00:02:44,040 --> 00:02:44,944 Maaf. 68 00:02:44,944 --> 00:02:45,850 Bagaimana saya kembali? 69 00:02:45,850 --> 00:02:48,140 Di sana kami pergi. 70 00:02:48,140 --> 00:02:52,310 >> Jadi, dalam kursus ini, kita mempunyai tan sokongan untuk semua orang. 71 00:02:52,310 --> 00:02:54,640 Selain hanya bahagian di sini, yang anda 72 00:02:54,640 --> 00:02:57,000 setiap minggu dapat meluangkan 90 minit yang indah dengan saya, 73 00:02:57,000 --> 00:02:58,330 kami juga mempunyai waktu pejabat. 74 00:02:58,330 --> 00:03:01,021 Berapa ramai daripada anda semua sudah pernah ke waktu pejabat bantuan? 75 00:03:01,021 --> 00:03:01,520 Yang besar. 76 00:03:01,520 --> 00:03:05,700 Itu benar-benar baik untuk melihat, kerana kita mempunyai kakitangan lebih 45 TA dan CA 77 00:03:05,700 --> 00:03:11,780 dilatih untuk kursus ini yang berada di sini untuk membantu anda semua dengan psets anda. 78 00:03:11,780 --> 00:03:14,580 >> Isnin mereka diadakan di TEAL yang bilik darjah di 17 Hill House di sini 79 00:03:14,580 --> 00:03:15,350 di Yale. 80 00:03:15,350 --> 00:03:17,349 Selasa dan Khamis, mereka diadakan pada orang biasa. 81 00:03:17,349 --> 00:03:20,010 8:00-11:00 cukup banyak setiap hari minggu. 82 00:03:20,010 --> 00:03:21,620 Masuklah, keluar. 83 00:03:21,620 --> 00:03:24,030 Sebarang masalah, tidak problem-- hanya datang dalam, 84 00:03:24,030 --> 00:03:26,650 dan kemudian kami akan membantu anda dengan itu. 85 00:03:26,650 --> 00:03:31,640 >> Kedua, sebagai tambahan kepada waktu pejabat dan bahagian, kami juga mempunyai seluar pendek. 86 00:03:31,640 --> 00:03:35,930 Adakah sesiapa yang pernah melihat beberapa daripada seluar pendek atau walkthroughs dalam video 87 00:03:35,930 --> 00:03:36,750 di laman web? 88 00:03:36,750 --> 00:03:37,250 OKAY. 89 00:03:37,250 --> 00:03:39,510 Supaya ia benar-benar, benar-benar membantu. 90 00:03:39,510 --> 00:03:42,470 Pengeluaran Harvard indah kami pasukan di sana di sekolah yang 91 00:03:42,470 --> 00:03:47,910 ke utara, mereka telah difilemkan dan dihasilkan ini video Walkthrough yang luar biasa. 92 00:03:47,910 --> 00:03:52,290 >> Mereka akan membawa anda langkah demi langkah melalui bagaimana untuk pergi tentang menyelesaikan masalah. 93 00:03:52,290 --> 00:03:56,340 Sering kali, jika anda keliru tentang satu konsep yang mudah, satu konsep tunggal, 94 00:03:56,340 --> 00:03:59,780 kita lihat, kerana kita mungkin mempunyai yang singkat di suatu tempat di laman web kami. 95 00:03:59,780 --> 00:04:03,800 Dan ia biasanya sumber yang besar yang perlu dicari apabila anda pertama 96 00:04:03,800 --> 00:04:06,510 hilang pada bagaimana untuk menangani masalah. 97 00:04:06,510 --> 00:04:09,750 >> Ketiga, kita juga mempunyai study50 dan reference50. 98 00:04:09,750 --> 00:04:15,650 Jadi belajar 50 pada laman web adalah hanya pautan. 99 00:04:15,650 --> 00:04:21,500 Ia adalah, saya fikir, study.cs50.net atau sesuatu seperti itu. 100 00:04:21,500 --> 00:04:22,860 Hanya di Google itu. 101 00:04:22,860 --> 00:04:24,229 Kami mempunyai banyak slaid disediakan. 102 00:04:24,229 --> 00:04:26,770 Kami mempunyai banyak seluar pendek dan perkara walkthroughs-- semua disusun 103 00:04:26,770 --> 00:04:31,070 sangat baik dan kemas untuk anda semua semua melayari, melihat apa-apa konsep 104 00:04:31,070 --> 00:04:32,860 bahawa anda keliru. 105 00:04:32,860 --> 00:04:35,920 Ia mungkin akan dilindungi di sana di study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- sama. 107 00:04:37,640 --> 00:04:41,510 Kami mempunyai banyak pelbagai nota sedia ada untuk anda gunakan. 108 00:04:41,510 --> 00:04:44,450 Dan akhir sekali, kita mempunyai apa yang dipanggil CS50 Bincangkan, 109 00:04:44,450 --> 00:04:48,082 satu forum di mana, jika malam sebelum yang anda lakukan masalah anda, katakan, 110 00:04:48,082 --> 00:04:49,880 anda mempunyai satu soalan. 111 00:04:49,880 --> 00:04:52,340 Masuk ke CS50 Bincangkan. 112 00:04:52,340 --> 00:04:53,190 Hantar soalan anda. 113 00:04:53,190 --> 00:04:55,820 Dan kemudian salah satu hundreds-- yang mungkin, thousands-- rakan-rakan 114 00:04:55,820 --> 00:04:57,960 mengambil talian kelas ini akan masuk. 115 00:04:57,960 --> 00:05:01,182 Dan mungkin seseorang boleh mendapatkan jawapan anda sebelum tin TA. 116 00:05:01,182 --> 00:05:03,390 Ia pada asasnya hanya satu forum online yang kami semua boleh 117 00:05:03,390 --> 00:05:04,556 gunakan untuk membincangkan masalah kami. 118 00:05:04,556 --> 00:05:06,483 Itu sejuk. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> OKAY. 121 00:05:11,550 --> 00:05:13,220 Jadi masalah menetapkan. 122 00:05:13,220 --> 00:05:17,840 Kita kira-kira betul-betul di tebal masalah set dua. 123 00:05:17,840 --> 00:05:20,570 Banyak di antara kita sudah berjuang melalui masalah menetapkan satu. 124 00:05:20,570 --> 00:05:24,460 Kita sudah tahu bahawa mungkin menunggu untuk malam terakhir yang perlu dilakukan pset anda 125 00:05:24,460 --> 00:05:28,170 bukan perkara yang bijak untuk dilakukan dalam CS50. 126 00:05:28,170 --> 00:05:32,380 >> Tips dan petua dasarnya untuk kejayaan sedang membaca keseluruhan spec. 127 00:05:32,380 --> 00:05:36,270 Berapa ramai daripada anda sudah membaca spec untuk pset 2? 128 00:05:36,270 --> 00:05:36,770 OKAY. 129 00:05:36,770 --> 00:05:39,840 Itu jumlah yang kukuh. 130 00:05:39,840 --> 00:05:43,210 Saya tahu anda semua mungkin telah diiktiraf sekarang ciri-ciri komputer yang benar-benar panjang. 131 00:05:43,210 --> 00:05:45,700 Mereka benar-benar, benar-benar panjang. 132 00:05:45,700 --> 00:05:49,630 >> Ia benar-benar sukar untuk membaca setiap baris itu dengan teliti perkataan demi perkataan. 133 00:05:49,630 --> 00:05:52,780 Anda mahu hanya skim di mana ia memberitahu anda untuk melakukan sesuatu. 134 00:05:52,780 --> 00:05:54,459 Saya boleh menjamin anda, jangan berbuat demikian. 135 00:05:54,459 --> 00:05:56,750 Jika anda berbuat demikian, anda mungkin akan terlepas di suatu tempat 136 00:05:56,750 --> 00:05:58,458 di mana ia memberitahu anda bagaimana untuk memulakan masalah 137 00:05:58,458 --> 00:06:01,140 atau ia memberitahu anda apa yang perlu nama masalah atau ia memberitahu anda, 138 00:06:01,140 --> 00:06:03,720 ini mungkin cara yang terbaik untuk mula melakukan masalah anda. 139 00:06:03,720 --> 00:06:05,050 Dan kemudian anda akan hilang. 140 00:06:05,050 --> 00:06:08,219 >> Apabila anda cuba untuk membaca anda spec pertengahan, 141 00:06:08,219 --> 00:06:10,510 banyak yang penting information-- dalam bahawa anda tidak 142 00:06:10,510 --> 00:06:12,260 akan dapat benar-benar percuma. 143 00:06:12,260 --> 00:06:13,219 Jadi membaca keseluruhan spec. 144 00:06:13,219 --> 00:06:15,468 Cuba untuk membaca keseluruhan spec sebelum anda datang ke seksyen, 145 00:06:15,468 --> 00:06:17,360 kerana itu, apabila kita bercakap tentang pset, 146 00:06:17,360 --> 00:06:21,070 kita semua boleh mempunyai idea apa yang sedang berlaku. 147 00:06:21,070 --> 00:06:25,169 >> Kedua, ini adalah satu konsep bahawa saya akan suka untuk rujukan 148 00:06:25,169 --> 00:06:26,710 banyak sepanjang semester kursus. 149 00:06:26,710 --> 00:06:30,070 Tetapi pada dasarnya, arah kita separuh jalan, bukan? 150 00:06:30,070 --> 00:06:33,970 Saya, sebagai TA dan Jason anda padang pengurus dan Scaz sebagai profesor anda 151 00:06:33,970 --> 00:06:37,120 dan David sebagai profesor anda dan semua Tas indah lain dalam kursus ini, 152 00:06:37,120 --> 00:06:39,830 pembantu dalam course-- ini kami akan melakukan yang terbaik 153 00:06:39,830 --> 00:06:42,965 untuk memastikan bahawa anda adalah bersedia sehingga berjaya dalam kursus ini. 154 00:06:42,965 --> 00:06:43,840 Kami akan mengadakan bahagian. 155 00:06:43,840 --> 00:06:44,870 Kami akan mengadakan waktu pejabat. 156 00:06:44,870 --> 00:06:47,087 Kami akan menjawab telefon yang panggilan, menjawab e-mel anda, 157 00:06:47,087 --> 00:06:49,670 melakukan semua yang kami mampu untuk membuat memastikan soalan-soalan anda menjawab. 158 00:06:49,670 --> 00:06:51,460 >> Walau bagaimanapun, membantu kami juga. 159 00:06:51,460 --> 00:06:52,450 Bertemu kita separuh jalan. 160 00:06:52,450 --> 00:06:56,040 Jika anda datang ke waktu pejabat tidak mempunyai pergi ke bahagian, tidak 161 00:06:56,040 --> 00:07:02,060 setelah melihat kuliah, tidak mempunyai tahu apa yang berlaku, menjadi seperti, membantu saya. 162 00:07:02,060 --> 00:07:04,350 Saya akan menjadi seperti, baik, saya minta maaf. 163 00:07:04,350 --> 00:07:06,410 Ia mungkin masa untuk memberi pinjaman bahu yang menangis pada, 164 00:07:06,410 --> 00:07:08,959 kerana saya tidak pasti apa yang boleh saya lakukan untuk membantu anda 165 00:07:08,959 --> 00:07:12,000 jika anda tidak cuba untuk sekurang-kurangnya membantu diri anda sedikit pada mulanya. 166 00:07:12,000 --> 00:07:12,910 Bertemu kita separuh jalan. 167 00:07:12,910 --> 00:07:15,020 Anda tahu, sila datang bersedia untuk menjawab dan mendapatkan 168 00:07:15,020 --> 00:07:16,353 bersedia untuk melibatkan diri dalam bahan. 169 00:07:16,353 --> 00:07:19,342 Ia membuat perkara yang begitu banyak lebih mudah untuk semua orang yang terlibat. 170 00:07:19,342 --> 00:07:22,970 Ya, itu cukup banyak ia. 171 00:07:22,970 --> 00:07:23,720 >> Penggredan. 172 00:07:23,720 --> 00:07:29,250 Maka pada sukatan pelajaran, ia cukup mendalam mengenai bagaimana kita gred. 173 00:07:29,250 --> 00:07:32,440 Tetapi pada dasarnya, butiran dalam hal ini adalah 50% daripada gred anda 174 00:07:32,440 --> 00:07:34,530 akan menjadi psets, yang indah, kerana itulah 175 00:07:34,530 --> 00:07:37,400 di mana anda menghabiskan besar sebahagian besar masa perjalanan anda. 176 00:07:37,400 --> 00:07:39,854 Kuiz 40%, dan anda projek akhir akan 10%. 177 00:07:39,854 --> 00:07:42,520 Terdapat dua kuiz sepanjang perjalanan semester. 178 00:07:42,520 --> 00:07:47,050 Saya rasa masa dan tarikh adalah juga disenaraikan di sukatan pelajaran. 179 00:07:47,050 --> 00:07:49,210 >> Cara yang kita akan dapat penggredan psets anda 180 00:07:49,210 --> 00:07:53,930 adalah bahawa kita mempunyai asasnya empat nilai-nilai yang kita tetapkan untuk setiap gred. 181 00:07:53,930 --> 00:07:57,250 Kami mempunyai nilai skop, ketepatan, reka bentuk, dan gaya. 182 00:07:57,250 --> 00:08:01,530 Jadi seperti yang anda lihat, itulah jenis kami formula untuk mengira psets. 183 00:08:01,530 --> 00:08:03,640 Tiga kami memberi yang paling berat kepada kebenaran, 184 00:08:03,640 --> 00:08:06,140 kerana jelas jurulatih anda perlu ujian bagi kes-kes 185 00:08:06,140 --> 00:08:08,480 yang kita mahu ia untuk menguji. 186 00:08:08,480 --> 00:08:11,000 >> Kalian semua mempunyai check50 termasuk yang arif. 187 00:08:11,000 --> 00:08:13,730 Ia adalah satu fungsi yang sangat berguna bahawa kalian semua boleh 188 00:08:13,730 --> 00:08:17,560 memuat naik kod anda untuk pelayan kami, di mana kita akan menyemak untuk anda. 189 00:08:17,560 --> 00:08:20,800 Dan anda telah melihat orang-orang wajah frowny, muka smiley. 190 00:08:20,800 --> 00:08:22,119 Mereka benar-benar, benar-benar membantu. 191 00:08:22,119 --> 00:08:23,910 Sila jangan menjadi pelajar yang suka try 192 00:08:23,910 --> 00:08:26,230 untuk Hardcode dalam semua jawapan kepada mereka. 193 00:08:26,230 --> 00:08:30,050 Saya pasti melihat pset mana seseorang melihat segala nilai-nilai check50 194 00:08:30,050 --> 00:08:33,429 dan mereka hanya dikodkan dalam- jika jumlah ini, mencetak nombor ini. 195 00:08:33,429 --> 00:08:35,080 Jika jumlah itu, mencetak nombor itu. 196 00:08:35,080 --> 00:08:36,090 Jangan buat begitu. 197 00:08:36,090 --> 00:08:39,360 >> Walaupun secara teknikal check50 betul, 198 00:08:39,360 --> 00:08:41,809 cara anda menyelesaikan masalah tidak betul. 199 00:08:41,809 --> 00:08:45,770 Jadi hanya menggunakan check50 berhati-hati. 200 00:08:45,770 --> 00:08:48,497 Tetapi juga memastikan bahawa anda memahami bagaimana ia berfungsi, 201 00:08:48,497 --> 00:08:50,580 program ini berfungsi sebagai tambahan kepada check50, 202 00:08:50,580 --> 00:08:53,120 kerana kita tidak boleh menguji setiap kes kemungkinan check50. 203 00:08:53,120 --> 00:08:55,440 Kami akan menguji sebahagian daripada mereka. 204 00:08:55,440 --> 00:09:00,390 >> Reka bentuk asasnya, bagaimana direka dengan baik adalah kod anda? 205 00:09:00,390 --> 00:09:04,150 Jika anda daripada disalin menampal pelbagai baris kod ramai, banyak kali. 206 00:09:04,150 --> 00:09:06,960 Mungkin anda tidak mempunyai cukup reka bentuk yang terbaik dalam kod anda. 207 00:09:06,960 --> 00:09:09,470 Mungkin sudah tiba masanya untuk menambah gelung itu. 208 00:09:09,470 --> 00:09:12,090 Pada dasarnya, di sini ia hanya semua tentang cuba untuk melakukan kod anda, 209 00:09:12,090 --> 00:09:17,010 cuba untuk menulis kod anda sebagai cekap mungkin supaya program anda berjalan 210 00:09:17,010 --> 00:09:19,630 secepat yang mungkin. 211 00:09:19,630 --> 00:09:20,996 >> Akhir sekali, kami mempunyai gaya. 212 00:09:20,996 --> 00:09:24,360 Jadi gaya adalah jenis yang sewenang-wenangnya, istilah subjektif. 213 00:09:24,360 --> 00:09:27,470 Saya tahu bahawa kita secara rasmi mempunyai panduan gaya 50 untuk CS50, 214 00:09:27,470 --> 00:09:30,050 di mana ia memberitahu anda, oh, anda harus mempunyai ruang di sini. 215 00:09:30,050 --> 00:09:32,220 Anda perlu jenis format kod anda dengan cara ini. 216 00:09:32,220 --> 00:09:34,070 Anda perlu menamakan sesuatu dengan cara ini. 217 00:09:34,070 --> 00:09:38,180 >> Saya tidak benar-benar peduli, semata-mata, bagaimana anda memilih untuk gaya kod anda, 218 00:09:38,180 --> 00:09:39,840 hanya selagi anda kekal konsisten. 219 00:09:39,840 --> 00:09:43,732 Sebagai contoh, jika anda suka untuk meninggalkan ruang selepas empat anda 220 00:09:43,732 --> 00:09:45,690 sebelum gelung empat anda, hanya melakukan bahawa setiap kali. 221 00:09:45,690 --> 00:09:46,523 Jangan sejenis melakukannya. 222 00:09:46,523 --> 00:09:47,730 Tidak melakukannya masa yang lain. 223 00:09:47,730 --> 00:09:51,046 Jika anda ingin menyimpan kerinting ruang penyokong gigi cara yang tertentu, 224 00:09:51,046 --> 00:09:52,170 hanya sentiasa melakukannya dengan cara itu. 225 00:09:52,170 --> 00:09:54,628 Jangan sejenis melakukannya di suatu tempat di sini dan di suatu tempat tidak ada. 226 00:09:54,628 --> 00:09:57,010 Apabila kita penggredan, ia benar-benar sukar 227 00:09:57,010 --> 00:09:59,420 jika saya tidak mempunyai idea bagaimana anda memformat kod anda, 228 00:09:59,420 --> 00:10:02,064 perkara-perkara yang aneh dan keluar dari tempat. 229 00:10:02,064 --> 00:10:04,980 Jika anda hanya menyimpannya konsisten, ia lebih mudah bagi saya kerana yang lebih besar 230 00:10:04,980 --> 00:10:06,310 dapat membaca kod anda. 231 00:10:06,310 --> 00:10:09,393 Ia lebih mudah untuk anda sebagai pelajar dapat melihat melalui kod anda 232 00:10:09,393 --> 00:10:11,720 dan melihat apa yang salah dengan ia mengurangkan mengapa ada isu. 233 00:10:11,720 --> 00:10:15,740 Gaya adalah salah satu perkara yang paling mudah anda semua boleh lakukan untuk mendapat markah penuh. 234 00:10:15,740 --> 00:10:18,770 Pada dasarnya, jika anda hanya mengambil berat, jika anda bayar lima minit perhatian 235 00:10:18,770 --> 00:10:22,760 kepada kod anda setiap minggu, anda harus menjadi mendapatkan mata gaya penuh. 236 00:10:22,760 --> 00:10:26,020 >> Akhir sekali, kita mempunyai apa yang dipanggil pengganda skop. 237 00:10:26,020 --> 00:10:28,890 Scope-- Saya tahu ia adalah besar perkataan, terutamanya di dalam kelas ini. 238 00:10:28,890 --> 00:10:31,030 Tetapi skop, segala cara yang adalah bahawa anda cuba 239 00:10:31,030 --> 00:10:33,670 yang psets untuk yang terbaik daripada kemampuan anda. 240 00:10:33,670 --> 00:10:37,180 Sekiranya anda menyerah tiga daripada empat masalah anda 241 00:10:37,180 --> 00:10:39,460 dan tidak juga cuba yang terkini, anda mungkin 242 00:10:39,460 --> 00:10:41,630 akan kehilangan beberapa mata pada skop. 243 00:10:41,630 --> 00:10:44,560 >> Walaupun anda hanya mula masalah ini, melakukan yang terbaik untuk berjalan melaluinya. 244 00:10:44,560 --> 00:10:47,691 Walaupun ia tidak berfungsi, mengubahnya dalam, kerana itu menunjukkan dan menunjukkan 245 00:10:47,691 --> 00:10:50,190 kepada kami yang anda cuba, yang anda cuba set masalah 246 00:10:50,190 --> 00:10:51,430 untuk yang terbaik daripada kemampuan anda. 247 00:10:51,430 --> 00:10:53,800 Dan kemudian kita boleh memberikan mata penuh untuk skop. 248 00:10:53,800 --> 00:10:58,715 >> Skop juga sangat penting apabila kita bercakap tentang rendah drop skor pset. 249 00:10:58,715 --> 00:11:02,010 Jadi sepanjang yang semester, anda semua mempunyai sembilan psets. 250 00:11:02,010 --> 00:11:05,340 Dan kita akan benar-benar menjatuhkan skor yang paling rendah daripada orang-orang sembilan, 251 00:11:05,340 --> 00:11:07,670 tetapi hanya jika anda mempunyai mata skop penuh. 252 00:11:07,670 --> 00:11:11,120 >> Jadi, jika anda menghidupkan dalam pset tidak lengkap, malangnya, kami tidak boleh turun satu, 253 00:11:11,120 --> 00:11:13,540 kerana skop anda mata tidak selesai. 254 00:11:13,540 --> 00:11:16,570 Jadi, walaupun anda mempunyai seminggu yang buruk di mana anda mati dan anda sakit 255 00:11:16,570 --> 00:11:20,040 atau anjing mati, kucing anda meninggal dunia, dan anda terlalu banyak kerja rumah, 256 00:11:20,040 --> 00:11:21,074 hanya cuba pset. 257 00:11:21,074 --> 00:11:22,490 Adakah ia untuk yang terbaik daripada kemampuan anda. 258 00:11:22,490 --> 00:11:23,840 Jika ia tidak berfungsi, ia tidak mengapa. 259 00:11:23,840 --> 00:11:24,506 Hanya menghidupkan dalam. 260 00:11:24,506 --> 00:11:26,590 Sekurang-kurangnya kita boleh memberi anda mata untuk usaha. 261 00:11:26,590 --> 00:11:28,510 >> A untuk usaha dalam kelas ini. 262 00:11:28,510 --> 00:11:30,170 Sekurang-kurangnya rendah penurunan skor untuk usaha. 263 00:11:30,170 --> 00:11:32,354 Jadi yeah. 264 00:11:32,354 --> 00:11:33,270 Yang cukup banyak ia. 265 00:11:33,270 --> 00:11:36,521 Adakah sesiapa yang mempunyai soalan supaya ini tentang bagaimana kita gred dalam kelas? 266 00:11:36,521 --> 00:11:37,187 Atau mana-mana? 267 00:11:37,187 --> 00:11:41,220 Mana-mana supaya far-- bahagian, waktu pejabat? 268 00:11:41,220 --> 00:11:41,720 Sejuk. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 OKAY. 271 00:11:47,800 --> 00:11:51,260 >> Jadi ini adalah satu perkara yang tidak salah satu benar-benar suka untuk bercakap tentang. 272 00:11:51,260 --> 00:11:53,084 Saya tidak suka untuk membincangkan perkara itu. 273 00:11:53,084 --> 00:11:55,250 Kalian tidak benar-benar mahu untuk mendengar saya bercakap mengenainya. 274 00:11:55,250 --> 00:11:57,690 Tetapi malangnya, kita semua perlu bercakap mengenainya. 275 00:11:57,690 --> 00:12:00,110 David menghabiskan 20 minit syarahan bercakap mengenainya. 276 00:12:00,110 --> 00:12:02,580 Dan itu adalah subjek kejujuran akademik. 277 00:12:02,580 --> 00:12:08,110 >> Oleh itu, kita semua di sini mungkin telah menulis yang kadang-kadang esei dalam kerjaya Yale kami. 278 00:12:08,110 --> 00:12:11,800 Kita mungkin telah mendapat satu ceramah di mana kami telah telah diberitahu untuk tidak memplagiat esei kami, 279 00:12:11,800 --> 00:12:13,940 kerana kerja-kerja yang tidak kita. 280 00:12:13,940 --> 00:12:18,109 Dalam bidang sains komputer, kami mempunyai jenis yang sama konsep. 281 00:12:18,109 --> 00:12:20,150 Semua kerja yang anda serahkan, semua kod yang anda tulis 282 00:12:20,150 --> 00:12:21,900 perlu kod yang anda telah menulis. 283 00:12:21,900 --> 00:12:24,280 Sekiranya tidak kod yang anda telah disalin dari tempat lain. 284 00:12:24,280 --> 00:12:26,777 Sekiranya tidak kod yang anda telah googled dan plopped dalam 285 00:12:26,777 --> 00:12:28,360 dan anda tidak benar-benar tahu jika ia berfungsi. 286 00:12:28,360 --> 00:12:32,440 Anda jenis mempunyai rasa apa yang ia lakukan tetapi tidak benar-benar. 287 00:12:32,440 --> 00:12:36,562 Apabila ragu-ragu, pada dasarnya, ia hanya munasabah. 288 00:12:36,562 --> 00:12:38,520 Sukatan pelajaran kami, kami mempunyai senarai keseluruhan perkara 289 00:12:38,520 --> 00:12:40,560 kita lihat sebagai munasabah berbanding tidak munasabah. 290 00:12:40,560 --> 00:12:43,820 >> Sebagai contoh, munasabah adalah anda dan rakan anda 291 00:12:43,820 --> 00:12:47,360 membincangkan apa cara terbaik untuk pergi kira-kira secara logik menyelesaikan masalah. 292 00:12:47,360 --> 00:12:48,910 Itulah agak berpatutan. 293 00:12:48,910 --> 00:12:53,244 Apa yang tidak munasabah adalah jika anda lelaki mendapat bersama-sama, taip kod yang sama, 294 00:12:53,244 --> 00:12:54,410 dan bertukar kod yang sama. 295 00:12:54,410 --> 00:12:56,302 Bukan itu munasabah. 296 00:12:56,302 --> 00:12:57,510 Perkara yang sama, jenis esei. 297 00:12:57,510 --> 00:12:59,290 Jika anda ingin membincangkan dengan rakan anda, hey, 298 00:12:59,290 --> 00:13:00,220 ini adalah apa yang saya mahu menulis tentang. 299 00:13:00,220 --> 00:13:02,500 Ini adalah langkah-langkah yang saya ingin mengambil masa untuk menulis tentang hal itu, yang besar. 300 00:13:02,500 --> 00:13:03,208 Itulah indah. 301 00:13:03,208 --> 00:13:04,790 Sila bekerjasama antara satu sama lain. 302 00:13:04,790 --> 00:13:06,540 Jika anda semua mula menulis perkara yang sama, 303 00:13:06,540 --> 00:13:10,020 berubah dalam esei yang sama, yang kurang OK. 304 00:13:10,020 --> 00:13:13,200 Oleh itu, apabila ragu-ragu, hanya tidak melakukannya. 305 00:13:13,200 --> 00:13:16,940 >> Di sini, kita dalam CS50, kami mempunyai skrip jangka yang untuk mengautomasikan untuk menguji 306 00:13:16,940 --> 00:13:21,740 bukan sahaja ketepatan kod anda, tetapi juga keunikan kod anda. 307 00:13:21,740 --> 00:13:25,920 Oleh itu, sila tidak meletakkan kita dalam kedudukan yang mempunyai untuk merujuk kes anda ke EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Sila hanya untuk semua orang, mari kita membuat ini satu pengalaman yang indah. 309 00:13:31,110 --> 00:13:33,600 Semua orang tahu yang lebih baik, kita semua lebih bahagia, 310 00:13:33,600 --> 00:13:37,926 dan kami semua ditubuhkan untuk berjaya dalam kursus ini. 311 00:13:37,926 --> 00:13:39,800 Sesuatu yang amat unik mengenai kelas ini 312 00:13:39,800 --> 00:13:42,660 yang saya rasa semua orang patut benar-benar memberi perhatian kepada adalah yang kita ada 313 00:13:42,660 --> 00:13:44,930 apa yang dipanggil penyesalan klausa dalam sukatan pelajaran kami. 314 00:13:44,930 --> 00:13:50,010 Jadi pada dasarnya, dalam masa 72 jam, jika anda percaya bahawa anda telah melakukan sesuatu yang 315 00:13:50,010 --> 00:13:53,240 anda tidak benar-benar pasti telah sesuai, sila datang kepada kami. 316 00:13:53,240 --> 00:13:57,220 Kami berjanji kepada anda bahawa dalam tempoh 72 jam kami akan mengendalikan kes itu diri kita sendiri 317 00:13:57,220 --> 00:13:59,820 tanpa merujuk kepada yang lebih tinggi kuasa dalam pentadbiran. 318 00:13:59,820 --> 00:14:03,100 >> Jadi, jika anda datang kepada saya dan berkata, Andi, hey, saya minta maaf, 319 00:14:03,100 --> 00:14:07,620 tetapi saya fikir ada beberapa baris dalam saya kod malam tadi bahawa saya jenis googled, 320 00:14:07,620 --> 00:14:10,120 mendapat kira Stack Limpahan, menyalin dan ditampal, 321 00:14:10,120 --> 00:14:13,680 dan saya benar-benar, benar-benar maaf tentang itu, beritahu saya. 322 00:14:13,680 --> 00:14:16,900 Jangan hanya biarkan ia membarah dan hanya berharap bahawa saya menangkapnya. 323 00:14:16,900 --> 00:14:17,784 Kami akan menangkapnya. 324 00:14:17,784 --> 00:14:18,450 Hanya datang kepada saya. 325 00:14:18,450 --> 00:14:20,520 Maklumkan kepada saya dalam masa 72 jam. 326 00:14:20,520 --> 00:14:22,240 Kami akan memikirkan penyelesaian. 327 00:14:22,240 --> 00:14:26,679 Dan kita berjanji bahawa kita tidak akan merujuk kepada pihak universiti pada asasnya. 328 00:14:26,679 --> 00:14:29,220 Jadi ia adalah demi kepentingan terbaik anda untuk hanya menjadi jujur ​​dengan semua orang 329 00:14:29,220 --> 00:14:31,720 yang terlibat dalam kursus ini. 330 00:14:31,720 --> 00:14:34,630 >> OKAY. 331 00:14:34,630 --> 00:14:35,240 OKAY. 332 00:14:35,240 --> 00:14:37,800 Oleh sebab itu, cepat sebelum Saya bergerak, adakah sesiapa 333 00:14:37,800 --> 00:14:42,670 mempunyai soalan mengenai logistik bagaimana kursus kita akan berlari, 334 00:14:42,670 --> 00:14:45,982 bagaimana bahagian akan untuk menjalankan, apa-apa itu? 335 00:14:45,982 --> 00:14:46,711 OKAY. 336 00:14:46,711 --> 00:14:47,210 Yeah. 337 00:14:47,210 --> 00:14:48,126 >> PENONTON: [didengar]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI PENG: Ya. 340 00:14:51,080 --> 00:14:54,850 Jadi quizzes-- bagaimana ramai daripada anda dalam bahagian hari Isnin / Rabu? 341 00:14:54,850 --> 00:14:56,700 Berapa ramai daripada anda berada dalam Selasa / Khamis? 342 00:14:56,700 --> 00:14:58,550 OK, jadi ia adalah perpecahan yang kukuh di sini. 343 00:14:58,550 --> 00:15:00,900 Jadi cara kita menjalankan ia di Yale adalah kita yang 344 00:15:00,900 --> 00:15:04,040 akan mempunyai dua berasingan quizzes-- satu untuk setiap seksyen ini- yang 345 00:15:04,040 --> 00:15:06,160 akan diambil semasa kelas. 346 00:15:06,160 --> 00:15:09,310 Saya fikir ia adalah bulan Oktober, akhir bulan Oktober, sesuatu seperti itu, kerana minggu satu 347 00:15:09,310 --> 00:15:10,794 kuiz. 348 00:15:10,794 --> 00:15:11,960 Ya, jadi hanya datang ke kelas. 349 00:15:11,960 --> 00:15:13,920 Pada yang Isnin atau Rabu, anda akan mengambil kuiz. 350 00:15:13,920 --> 00:15:16,336 Pada yang Selasa atau Khamis, anda akan mengambil kuiz yang berbeza. 351 00:15:16,336 --> 00:15:18,570 Tetapi bahan yang sama akan dilindungi. 352 00:15:18,570 --> 00:15:19,160 Yeah. 353 00:15:19,160 --> 00:15:20,660 Soalan yang baik. 354 00:15:20,660 --> 00:15:21,160 Yeah. 355 00:15:21,160 --> 00:15:23,260 >> PENONTON: Di manakah kita pergi untuk memeriksa gred kita? 356 00:15:23,260 --> 00:15:23,926 >> ANDI PENG: Ya. 357 00:15:23,926 --> 00:15:28,420 Jadi saya akan menghantar satu e-mel apa sahaja setiap minggu 358 00:15:28,420 --> 00:15:31,460 apabila kuiz adalah graded-- atau, maaf, apabila psets digredkan. 359 00:15:31,460 --> 00:15:34,120 Psets biasanya bertukar di tengah hari atau Jumaat. 360 00:15:34,120 --> 00:15:37,540 Jadi saya berjanji bahawa saya akan cuba untuk mendapatkan mereka kembali kepada anda 361 00:15:37,540 --> 00:15:40,000 oleh tengah hari Jumaat berikutnya. 362 00:15:40,000 --> 00:15:44,950 >> Setiap kali saya gred Serangga, saya akan menghantar daripada pemberitahuan pada buku gred 363 00:15:44,950 --> 00:15:47,070 yang memberitahu anda skor anda boleh dilihat dalam talian. 364 00:15:47,070 --> 00:15:52,022 Jadi betul minggu ini, selepas saya menyelesaikan penggredan psets minggu lepas, 365 00:15:52,022 --> 00:15:54,230 anda semua akan mendapat e-mel pemberitahuan memberitahu anda, 366 00:15:54,230 --> 00:15:55,870 hey ini adalah di mana anda pergi untuk melihat gred anda. 367 00:15:55,870 --> 00:15:57,680 Dan anda boleh lihat setiap pecahan gred anda. 368 00:15:57,680 --> 00:15:58,555 Anda boleh lihat komen. 369 00:15:58,555 --> 00:16:00,360 Oh, perkara cepat juga. 370 00:16:00,360 --> 00:16:03,060 Bahagian komen di besar buku adalah di mana saya akan mungkin 371 00:16:03,060 --> 00:16:05,300 menghabiskan sebahagian besar penggredan masa saya. 372 00:16:05,300 --> 00:16:07,094 Jadi satu perkara yang benar-benar penting apabila 373 00:16:07,094 --> 00:16:09,010 anda semua sedang lihat gred anda pada psets anda 374 00:16:09,010 --> 00:16:11,400 bukan hanya mencari pada skor fizikal 375 00:16:11,400 --> 00:16:14,630 tetapi juga mengambil masa untuk benar-benar membaca komen saya. 376 00:16:14,630 --> 00:16:17,820 >> Selalunya yang memberikan anda maklum balas bagaimana anda menyelesaikan masalah. 377 00:16:17,820 --> 00:16:20,480 Jika anda perlu lakukan sesuatu yang sedikit lebih baik, 378 00:16:20,480 --> 00:16:24,080 kritikan membina biasanya adalah terbaik diberikan dalam bahagian komen. 379 00:16:24,080 --> 00:16:26,950 Oleh itu, sila, sila, saya akan menghabiskan masa menulis komen. 380 00:16:26,950 --> 00:16:30,440 Tolong, saya benar-benar akan menghargainya jika anda semua akan membaca komen-komen. 381 00:16:30,440 --> 00:16:31,170 OKAY. 382 00:16:31,170 --> 00:16:34,150 Sejuk. 383 00:16:34,150 --> 00:16:34,680 >> Baiklah. 384 00:16:34,680 --> 00:16:40,680 Oleh itu, kita akan mula bercakap dan hanya mengkaji dengan cepat 385 00:16:40,680 --> 00:16:45,040 beberapa bahan dari minggu sifar hanya jadi kami 386 00:16:45,040 --> 00:16:48,760 di laman yang betul untuk bermula masalah minggu ini. 387 00:16:48,760 --> 00:16:52,600 Jadi gelung sementara adalah salah satu daripada tiga jenis gelung 388 00:16:52,600 --> 00:16:54,510 kita dibincangkan sebelum ini di dalam kelas ini. 389 00:16:54,510 --> 00:16:57,060 >> A gelung sementara dasarnya ditulis dalam sintaks 390 00:16:57,060 --> 00:17:00,666 di mana, manakala keadaan tertentu, melakukan ini berulang kali, bukan? 391 00:17:00,666 --> 00:17:02,040 Fikirkan ia dalam grafik ini di sini. 392 00:17:02,040 --> 00:17:04,780 Anda akan bermula pada titik tertentu dalam kod anda. 393 00:17:04,780 --> 00:17:09,030 Anda akan memasukkan syarat gelung jika- Saya tidak mengetahui x kurang daripada satu. 394 00:17:09,030 --> 00:17:11,677 >> Jika itu adalah benar, anda akan untuk melaksanakan badan gelung. 395 00:17:11,677 --> 00:17:14,010 Dan anda akan terus melakukan itu lagi, sekali lagi, sekali lagi, 396 00:17:14,010 --> 00:17:17,900 berulang-over-- yang adalah mengapa ia adalah satu loop-- sehingga keadaan anda menjadi 397 00:17:17,900 --> 00:17:19,079 palsu. 398 00:17:19,079 --> 00:17:22,140 Jadi dengan cara ini, gelung sementara adalah salah satu cara yang lebih mudah 399 00:17:22,140 --> 00:17:25,619 untuk menulis apa-apa jenis syarat perlu mengulangi berulang-ulang. 400 00:17:25,619 --> 00:17:28,109 Hanya berhati-hati apabila anda menulis apa-apa jenis gelung 401 00:17:28,109 --> 00:17:32,140 bahawa anda mempunyai keadaan keluar sebagai dan kemas kini untuk apa sahaja 402 00:17:32,140 --> 00:17:36,714 adalah supaya gelung anda tidak hanya berjalan lagi dan tak terhingga. 403 00:17:36,714 --> 00:17:38,630 Walau apa pun, anda akan untuk ingin memastikan 404 00:17:38,630 --> 00:17:42,670 bahawa anda menukar beberapa aspek kod atau pada akhir gelung anda 405 00:17:42,670 --> 00:17:46,680 hanya untuk memastikan bahawa anda mempunyai cara yang untuk mara ke arah keadaan 406 00:17:46,680 --> 00:17:48,400 yang anda hendak bertemu untuk akhir. 407 00:17:48,400 --> 00:17:50,239 Adakah ini masuk akal untuk semua orang? 408 00:17:50,239 --> 00:17:52,530 Kita tidak mahu menjadi terperangkap dalam lingkaran ini di mana 409 00:17:52,530 --> 00:17:55,710 kita pergi sekitar dan sekitar dan tidak ada cara untuk memecahkan gelung. 410 00:17:55,710 --> 00:17:58,844 Dan setiap gelung dasarnya mempunyai cara melakukannya. 411 00:17:58,844 --> 00:17:59,344 OKAY. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Kedua, ramai daripada anda dalam psets Mario anda 414 00:18:06,060 --> 00:18:08,910 mungkin terpaksa mengambil kerja jenis gelung. 415 00:18:08,910 --> 00:18:11,802 Ia dipanggil do manakala gelung. 416 00:18:11,802 --> 00:18:14,510 Pertama sekali, boleh sesiapa beritahu saya apa perbezaan antara tugasan yang 417 00:18:14,510 --> 00:18:16,586 manakala gelung dan gelung sementara itu? 418 00:18:16,586 --> 00:18:17,086 Yeah. 419 00:18:17,086 --> 00:18:21,030 >> PENONTON: do manakala gelung berjalan pada pertama [didengar]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI PENG: Ya, betul-betul. 421 00:18:22,120 --> 00:18:27,130 Jadi lakukan semasa gelung sentiasa melakukan apa adalah di dalam do, di dalam kurungan 422 00:18:27,130 --> 00:18:30,520 di sana dan tidak syarat sebelum memeriksa the-- maaf, 423 00:18:30,520 --> 00:18:32,940 tidak kod yang sebelum memeriksa keadaan. 424 00:18:32,940 --> 00:18:37,200 Dan ini adalah amat relevan kepada kami di sini di dalam kelas ini, kerana kebanyakan masa 425 00:18:37,200 --> 00:18:41,450 kita akan mahu meminta pengguna untuk beberapa jenis input. 426 00:18:41,450 --> 00:18:43,520 Dan kemudian, bergantung kepada input yang mereka berikan kepada kami, 427 00:18:43,520 --> 00:18:46,150 maka kita boleh menilai, oh, adakah kita perlu meminta mereka lagi? 428 00:18:46,150 --> 00:18:49,930 >> Jadi dalam Mario, jika pengguna memberi anda ketinggian negatif, sebagai contoh, 429 00:18:49,930 --> 00:18:52,990 anda akan segera pertama dan melakukan apa sahaja yang ada di dalam. 430 00:18:52,990 --> 00:18:54,820 Maka anda akan untuk memeriksa sementara. 431 00:18:54,820 --> 00:18:57,570 Anda tahu, adalah negatif 1, ialah nombor positif? 432 00:18:57,570 --> 00:19:00,680 Jika tidak, saya akan pergi ke belakang dan mengulangi do dan ulangi 433 00:19:00,680 --> 00:19:03,950 dan mengulangi dan mengulangi sehingga mereka akhirnya memberikan anda beberapa yang anda suka, 434 00:19:03,950 --> 00:19:07,002 yang kita semua boleh mengambil kod kami. 435 00:19:07,002 --> 00:19:09,210 Ia agak penting bagi dasarnya input pengguna ada. 436 00:19:09,210 --> 00:19:11,760 Saya boleh menjamin apa-apa anda masa dalam pset mana 437 00:19:11,760 --> 00:19:15,070 kami meminta anda untuk memasukkan apa-apa jenis kod, kami 438 00:19:15,070 --> 00:19:17,540 mungkin akan memberikan anda kes ujian di mana kita berada 439 00:19:17,540 --> 00:19:21,200 akan memberi anda sesuatu yang tidak baik itulah akan cuba untuk memecahkan kod anda. 440 00:19:21,200 --> 00:19:25,044 >> Jika kita cuba untuk meminta anda untuk input integer, kita hanya boleh memberi anda rentetan 441 00:19:25,044 --> 00:19:26,460 dan melihat bagaimana anda akan mengendalikan itu. 442 00:19:26,460 --> 00:19:30,610 Jika kami meminta anda untuk mengambil usia, kami boleh memberikan anda satu nombor negatif 443 00:19:30,610 --> 00:19:32,340 untuk melihat bagaimana anda akan mengendalikan itu. 444 00:19:32,340 --> 00:19:37,260 Hanya pastikan anda semua ujian untuk kes di mana anda tidak mendapatkan yang terbaik 445 00:19:37,260 --> 00:19:38,590 input, mari kita hanya mengatakan. 446 00:19:38,590 --> 00:19:40,510 Dan do manakala gelung sering kali terbaik 447 00:19:40,510 --> 00:19:45,260 cara untuk mereka bentuk kod anda supaya ia memenuhi skop itu. 448 00:19:45,260 --> 00:19:45,760 OKAY. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> OKAY. 451 00:19:49,470 --> 00:19:53,270 Jadi ini mungkin adalah yang paling gelung kompleks daripada tiga 452 00:19:53,270 --> 00:19:54,990 yang kita telah melihat setakat ini. 453 00:19:54,990 --> 00:19:56,689 Dan ia kelihatan sangat menakutkan pada mulanya. 454 00:19:56,689 --> 00:19:59,730 Tetapi saya jamin anda, sebaik sahaja anda semua memahamkan bagaimana untuk menggunakan untuk gelung, 455 00:19:59,730 --> 00:20:03,320 ia adalah salah satu perkara yang paling berguna, paling alat yang berguna dalam senjata anda 456 00:20:03,320 --> 00:20:05,300 untuk bergerak ke hadapan dalam kelas ini. 457 00:20:05,300 --> 00:20:09,920 >> Jadi, sebagai contoh, di Awal, kita mempunyai blok yang sangat mudah ini 458 00:20:09,920 --> 00:20:13,180 yang hanya berkata mengulangi tertentu frasa beberapa kali. 459 00:20:13,180 --> 00:20:16,260 Dengan cara ini, SAJ-- itulah Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 Kami sering kali log SAJ e-mel kami. 461 00:20:18,740 --> 00:20:20,360 Jika kita mengatakan SAJ, jangan keliru. 462 00:20:20,360 --> 00:20:22,630 Itu hanya kita. 463 00:20:22,630 --> 00:20:28,600 >> Jadi dalam Awal, kita dapat mempunyai blok yang menyatakan, ulang Saya suka SAJ! 464 00:20:28,600 --> 00:20:29,430 10 kali. 465 00:20:29,430 --> 00:20:30,130 Sangat mudah. 466 00:20:30,130 --> 00:20:32,302 Logik di sebalik itu adalah sangat, sangat mudah, bukan? 467 00:20:32,302 --> 00:20:35,260 Saya hendak pergi dahulu melalui pertama masa dan melihat bahawa, kali kedua 468 00:20:35,260 --> 00:20:38,510 dan melihat bahawa, kali ketiga, sebagainya dan sebagainya, sehingga anda memukul hingga 10. 469 00:20:38,510 --> 00:20:41,960 >> Dan cara kita akan menyatakan bahawa dalam kod adalah hanya melalui yang mudah untuk gelung. 470 00:20:41,960 --> 00:20:45,440 Jadi untuk, anda akan mengisytiharkan variabel sini, dalam kes ini, 471 00:20:45,440 --> 00:20:46,349 dengan int. 472 00:20:46,349 --> 00:20:47,390 Kami akan nama itu i. 473 00:20:47,390 --> 00:20:49,500 Kami akan memulakan ia kepada 0. 474 00:20:49,500 --> 00:20:52,490 Dan edisi berhenti adalah akan menjadi i adalah kurang daripada 10. 475 00:20:52,490 --> 00:20:54,622 Dan kemas kini akan menjadi i ++. 476 00:20:54,622 --> 00:20:57,750 >> Dan dalam gelung, ia akan untuk melaksanakan sehingga akhirnya ia 477 00:20:57,750 --> 00:21:01,490 sangat akhir condition-- di mana kes, ia akan memecahkan gelung. 478 00:21:01,490 --> 00:21:04,600 Perlu ada barangan yang anda lelaki itu mempunyai semua jenis dilihat sebelum ini 479 00:21:04,600 --> 00:21:07,270 dan terpaksa lakukan untuk masalah anda menetapkan satu. 480 00:21:07,270 --> 00:21:12,310 Adakah sesiapa yang mempunyai sebarang pertanyaan mengenai untuk gelung sekarang? 481 00:21:12,310 --> 00:21:12,930 OKAY. 482 00:21:12,930 --> 00:21:13,430 Yang besar. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> OKAY. 485 00:21:18,620 --> 00:21:22,270 Jadi bagi anda yang mempunyai membaca spec pset untuk minggu ini 486 00:21:22,270 --> 00:21:27,690 tahu bahawa kita akan mempunyai untuk mengambil kerja sesuatu yang dinamakan ASCII dan jadual ASCII. 487 00:21:27,690 --> 00:21:32,380 Lalu Daud dalam syarahan pergi ke sana secara ringkas bagaimana komputer essentially-- segala-galanya 488 00:21:32,380 --> 00:21:35,410 dikodkan dalam komputer di binari, dalam sifar dan satu. 489 00:21:35,410 --> 00:21:39,740 Dan cara bahawa komputer dapat untuk menyimpan nilai yang berbeza di samping 490 00:21:39,740 --> 00:21:44,360 kepada sifar dan satu adalah melalui pemetaan nombor-nombor untuk mewakili digit lain 491 00:21:44,360 --> 00:21:47,220 atau watak-watak dasarnya lain. 492 00:21:47,220 --> 00:21:49,810 >> Jadi dalam kes ini, seorang ASCII table-- semua ia 493 00:21:49,810 --> 00:21:53,600 adalah peta aksara, atau aksara, untuk nombor. 494 00:21:53,600 --> 00:21:57,385 Oleh itu, fail kod sumber dalam anda computer-- ia melihat, 495 00:21:57,385 --> 00:22:00,010 hey, sekumpulan sifar dan satu, sifar dan satu, sifar dan satu. 496 00:22:00,010 --> 00:22:02,350 Itulah yang disimpan di dalam memori sebenar komputer anda. 497 00:22:02,350 --> 00:22:04,750 >> Tetapi apabila kita manusia mahu berkomunikasi dengan komputer, 498 00:22:04,750 --> 00:22:08,249 kita want-- berkata, sebagai contoh, jika saya ingin huruf besar A, 499 00:22:08,249 --> 00:22:10,540 Saya akan memerlukan beberapa cara memberitahu komputer, oh, 500 00:22:10,540 --> 00:22:16,300 apabila saya menaip huruf besar A, maksud saya perwakilan ini dalam perduaan. 501 00:22:16,300 --> 00:22:22,260 >> Dan begitu cara kita melakukan yang melemparkan Perkara yang sewenang-wenangnya dipanggil jadual ASCII, 502 00:22:22,260 --> 00:22:25,020 di mana kita, sebagai manusia, kerana pengaturcara, sedikit masa lalu, 503 00:22:25,020 --> 00:22:28,660 kita sewenang-wenangnya memutuskan bahawa kita telah pergi untuk memberi nombor ini 504 00:22:28,660 --> 00:22:30,960 nilai kepada watak-watak ini. 505 00:22:30,960 --> 00:22:32,720 >> Jadi, anda semua boleh google dalam talian ini. 506 00:22:32,720 --> 00:22:37,120 Saya fikir ada pautan ke dalam anda pset-- hanya jadual ASCII peta, ASCII 507 00:22:37,120 --> 00:22:37,720 meja. 508 00:22:37,720 --> 00:22:40,722 Ia hanya diterjemahkan binari nombor ke dalam watak-watak. 509 00:22:40,722 --> 00:22:42,930 Dan ia akan menjadi sangat berguna untuk set masalah anda 510 00:22:42,930 --> 00:22:45,470 apabila anda mahu mengira apa-apa atau jika anda 511 00:22:45,470 --> 00:22:47,880 ingin memaparkan tertentu aksara atau integer 512 00:22:47,880 --> 00:22:50,327 atau memanipulasi watak-watak tertentu. 513 00:22:50,327 --> 00:22:52,160 Ia akan menjadi sangat penting untuk anda semua 514 00:22:52,160 --> 00:22:55,140 tahu bagaimana untuk mengemudi jadual ASCII. 515 00:22:55,140 --> 00:23:01,260 >> Jadi sebagai contoh, huruf besar A diwakili dengan jumlah 65. 516 00:23:01,260 --> 00:23:04,207 Dan huruf kecil diwakili oleh 97. 517 00:23:04,207 --> 00:23:07,040 Oleh itu, ia adalah penting untuk mengetahui bahawa Perbezaan di antara dua nilai 518 00:23:07,040 --> 00:23:08,320 ialah 32. 519 00:23:08,320 --> 00:23:13,210 Sering kali, jika anda perlu menukar daripada satu kepada yang lain, perbezaan adalah 32. 520 00:23:13,210 --> 00:23:15,710 Dan jangan bimbang jika anda jenis keliru mengenai perkara ini pada mulanya. 521 00:23:15,710 --> 00:23:20,230 Kami akan pergi ke atas bagaimana kita akan mengambil kerja ini dalam kod yang sebenar. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> OKAY. 524 00:23:26,380 --> 00:23:30,770 Jadi bagi anda dengan komputer riba keluar, berasa bebas untuk tarik sehingga jadual ASCII, 525 00:23:30,770 --> 00:23:36,030 kerana ini akan mungkin memerlukan anda semua untuk rujukan 526 00:23:36,030 --> 00:23:38,100 apa yang watak-watak yang. 527 00:23:38,100 --> 00:23:38,640 OKAY. 528 00:23:38,640 --> 00:23:42,840 >> Jadi mengetahui bahawa tertentu Watak peta ke nombor tertentu, 529 00:23:42,840 --> 00:23:47,240 jika saya berjalan hanya yang pertama garis yang code-- printf yang, 530 00:23:47,240 --> 00:23:50,900 huruf kecil, tolak huruf besar A. Adakah sesiapa 531 00:23:50,900 --> 00:23:55,880 mempunyai tekaan pada apa yang akan menjadi mencetak skrin sekarang? 532 00:23:55,880 --> 00:23:58,190 >> Jadi pertama sekali, apa yang tidak huruf kecil mewakili? 533 00:23:58,190 --> 00:24:00,990 Apa nombor ialah dikodkan dalam jadual ASCII. 534 00:24:00,990 --> 00:24:01,490 Maaf? 535 00:24:01,490 --> 00:24:02,630 >> PENONTON: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI PENG: 97, yang besar. 537 00:24:03,630 --> 00:24:05,077 Dan apa yang huruf besar A? 538 00:24:05,077 --> 00:24:06,330 >> PENONTON: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI PENG: Jadi apa yang 97 tolak 65? 540 00:24:08,255 --> 00:24:09,227 >> PENONTON: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI PENG: OK. 542 00:24:09,810 --> 00:24:13,530 Jadi, apa yang anda semua berfikir akan berlaku apabila saya input yang baris kod 543 00:24:13,530 --> 00:24:14,670 ke dalam komputer saya? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> PENONTON: [didengar]. 546 00:24:19,896 --> 00:24:21,020 ANDI PENG: Maaf, bersuara. 547 00:24:21,020 --> 00:24:22,520 Tidak risau. 548 00:24:22,520 --> 00:24:25,750 Ini adalah sangat selamat alam sekitar, tolak kamera. 549 00:24:25,750 --> 00:24:27,550 Kita semua akan supaya- tiada kebimbangan. 550 00:24:27,550 --> 00:24:30,940 Hanya kita semua akan berpura-pura seperti ia hanya kita penyejukan dalam bilik ini. 551 00:24:30,940 --> 00:24:31,480 Tidak risau. 552 00:24:31,480 --> 00:24:33,410 Tiada soalan terlalu bodoh. 553 00:24:33,410 --> 00:24:35,300 Tiada jawapan adalah jawapan yang bodoh. 554 00:24:35,300 --> 00:24:38,260 Saya mungkin akan membuat kesilapan dalam perjalanan pengajaran saya. 555 00:24:38,260 --> 00:24:40,740 Serius, lelaki, hanya berkata tanpa berpikir ia keluar. 556 00:24:40,740 --> 00:24:43,092 Yakinlah pada diri sendiri, anda tahu? 557 00:24:43,092 --> 00:24:43,800 Oleh itu, apa itu? 558 00:24:43,800 --> 00:24:47,990 Yang mengatakan bahawa jawapan yang lepas? 559 00:24:47,990 --> 00:24:48,540 OKAY. 560 00:24:48,540 --> 00:24:50,380 Menjerit bahawa baik dan jelas. 561 00:24:50,380 --> 00:24:51,220 >> PENONTON: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI PENG: 32. 563 00:24:51,850 --> 00:24:54,141 OK, mari kita berjalan kod ini dan melihat jika itu yang berlaku. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 OKAY. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Jadi seperti yang anda semua boleh jenis lihat, notasi biasa saya telah 568 00:25:06,360 --> 00:25:12,250 ditubuhkan di sini untuk bagaimana kita akan menggunakan apa-apa jenis program dalam komputer kita. 569 00:25:12,250 --> 00:25:14,770 Kami mempunyai fungsi utama kami dalam fungsi utama kami. 570 00:25:14,770 --> 00:25:17,265 Saya hanya akan menyalin dan paste baris ini kod. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Juga berhati-hati apabila anda semua menyalin dan menampal kod. 573 00:25:23,540 --> 00:25:28,750 Kadang-kadang pengusaha tertentu jangan paste lebih betul. 574 00:25:28,750 --> 00:25:31,397 Dalam kes itu, tolak tanda sebenarnya sengkang. 575 00:25:31,397 --> 00:25:32,980 Dan supaya komputer tidak mengambilnya. 576 00:25:32,980 --> 00:25:35,870 Jadi saya terpaksa berulang- fizikal taip semula itu. 577 00:25:35,870 --> 00:25:37,846 Hanya berhati-hati apabila kamu lakukan itu. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> OKAY. 580 00:25:42,660 --> 00:25:43,980 Kami akan menjalankan ini di sini. 581 00:25:43,980 --> 00:25:45,670 Oleh itu, kita akan cd ke dalam section2 kami. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Saya telah dipanggil asciimath program ini. 584 00:25:52,030 --> 00:25:55,690 Jadi ingat, apabila kita menjalankan apa-apa program, kami ingin pertama menyusun 585 00:25:55,690 --> 00:25:57,150 dengan menjalankan melalui make kami. 586 00:25:57,150 --> 00:26:00,030 Dan kemudian kita mahu benar-benar menjalankan program ini dengan melakukan dot-slash. 587 00:26:00,030 --> 00:26:01,280 Oleh itu, kita akan ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Betul, ada kita pergi. 590 00:26:06,590 --> 00:26:07,410 Dan kita melihat 32. 591 00:26:07,410 --> 00:26:07,930 Bagus. 592 00:26:07,930 --> 00:26:10,340 Anda berhak mendapat sekeping gula-gula. 593 00:26:10,340 --> 00:26:11,160 Gula-gula untuk anda. 594 00:26:11,160 --> 00:26:11,900 Maaf. 595 00:26:11,900 --> 00:26:13,100 Baiklah. 596 00:26:13,100 --> 00:26:13,670 OKAY. 597 00:26:13,670 --> 00:26:18,070 Oleh itu, kita boleh kembali kepada contoh kami di sini. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Aah, tidak. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Aah. 602 00:26:31,090 --> 00:26:32,490 OKAY. 603 00:26:32,490 --> 00:26:34,610 Saya hanya akan menyimpannya seperti itu. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 OKAY. 606 00:26:51,240 --> 00:26:51,740 OKAY. 607 00:26:51,740 --> 00:26:55,340 Jadi seperti yang anda semua boleh lihat, kita boleh lakukan banyak perkara yang sangat menarik, 608 00:26:55,340 --> 00:26:58,880 banyak perkara yang sangat sejuk, banyak perkara yang sangat rumit yang melibatkan 609 00:26:58,880 --> 00:27:02,720 Aksara ASCII dan nombor. 610 00:27:02,720 --> 00:27:05,890 Setelah anda mendapatkan ke bawah untuk beratur lima, yang banyak untuk mengikuti bersama-sama. 611 00:27:05,890 --> 00:27:07,640 Kami tidak akan pergi melalui bahagian. 612 00:27:07,640 --> 00:27:10,720 Jangan ragu untuk, jika anda boleh, sebab ia di atas kertas 613 00:27:10,720 --> 00:27:14,750 pertama pada apa yang sepatutnya berlaku apabila anda masukkan seperti rentetan nilai. 614 00:27:14,750 --> 00:27:19,720 Sebagai contoh, di garisan terakhir, kami mempunyai z-- yang mewakili number-- tertentu 615 00:27:19,720 --> 00:27:24,740 a-- yang juga mewakili tertentu number-- campur 1 modulos 26 616 00:27:24,740 --> 00:27:26,750 ditambah huruf kecil a. 617 00:27:26,750 --> 00:27:29,220 >> Jika anda semua terus membaca melalui ini, anda 618 00:27:29,220 --> 00:27:34,009 boleh melihat corak yang datang dalam bagaimana kita memanipulasi kod. 619 00:27:34,009 --> 00:27:36,050 Saya sangat, sangat menyarankan selepas seksyen kamu semua 620 00:27:36,050 --> 00:27:38,160 seorang lelaki pergi ke depan dan input mereka semua dalam komputer anda 621 00:27:38,160 --> 00:27:40,060 dan melihat apa jenis nombor yang keluar 622 00:27:40,060 --> 00:27:43,090 dan pemikiran melalui mengapa mereka adalah berlaku, kerana bagi psets anda 623 00:27:43,090 --> 00:27:45,060 ia akan menjadi benar-benar penting untuk anda memahami 624 00:27:45,060 --> 00:27:47,132 mengapa perkara-perkara tertentu yang berlaku. 625 00:27:47,132 --> 00:27:48,590 Kesemua kuliah ini akan berada dalam talian. 626 00:27:48,590 --> 00:27:51,510 Jadi tidak ada kebimbangan tentang cuba untuk fizikal tulis nota. 627 00:27:51,510 --> 00:27:52,510 Talian segala-galanya. 628 00:27:52,510 --> 00:27:54,050 Seksyen ini sendiri akan berada dalam talian. 629 00:27:54,050 --> 00:27:57,500 Semua kod sumber saya bahawa Saya berjalan akan berada dalam talian. 630 00:27:57,500 --> 00:27:58,180 Yeah. 631 00:27:58,180 --> 00:27:59,430 Adakah anda masih mempunyai soalan? 632 00:27:59,430 --> 00:28:00,587 PENONTON: Apakah modulos? 633 00:28:00,587 --> 00:28:01,170 ANDI PENG: OK. 634 00:28:01,170 --> 00:28:05,620 Jadi modulo merupakan pengendali yang akan cukup penting untuk pset lelaki anda 635 00:28:05,620 --> 00:28:06,690 di sini. 636 00:28:06,690 --> 00:28:12,280 Jadi cara pengusaha dalam C dan dalam kerja-kerja pengaturcaraan 637 00:28:12,280 --> 00:28:16,360 adalah bahawa anda mempunyai apa yang dipanggil simbol bahagian dan simbol modulus, 638 00:28:16,360 --> 00:28:18,350 yang hanya seperti tanda peratus. 639 00:28:18,350 --> 00:28:24,840 >> Jadi, dalam C, apabila anda melakukan integer dibahagikan dengan bilangan bulat dengan tanda palang, 640 00:28:24,840 --> 00:28:27,720 C mempunyai kecenderungan untuk mahu mengurangkan off semua mata perpuluhan, 641 00:28:27,720 --> 00:28:30,290 kerana integer mahu untuk menukar kepada integer. 642 00:28:30,290 --> 00:28:33,550 Ia tidak akan mahu menjadi dua dengan sekumpulan perpuluhan semua selepas itu. 643 00:28:33,550 --> 00:28:39,322 >> Jadi, jika saya melakukan 3 dibahagikan dengan 2, ia akan untuk memotong 0.5 dan hanya memberikan 1. 644 00:28:39,322 --> 00:28:41,530 Jadi, itu sesuatu yang boleh sangat berhati-hati apabila anda berada 645 00:28:41,530 --> 00:28:45,294 melakukan apa-apa jenis matematik dalam pengaturcaraan, adalah bahawa nombor anda 646 00:28:45,294 --> 00:28:47,210 mungkin tidak nombor bahawa anda telah berfikir, 647 00:28:47,210 --> 00:28:50,190 itulah sebabnya pembundaran dalam anda Serangga lepas adalah sangat penting. 648 00:28:50,190 --> 00:28:51,980 >> Modulo memberikan anda bakinya. 649 00:28:51,980 --> 00:28:56,200 Jadi, sebagai contoh, jika saya 3 modulo 2-- jadi 3 tanda peratus 2-- 650 00:28:56,200 --> 00:28:58,020 ia akan memberi anda baki itu. 651 00:28:58,020 --> 00:29:00,460 Jadi 3 dibahagikan dengan 2 1.5. 652 00:29:00,460 --> 00:29:01,410 Ia adalah 1 baki 1. 653 00:29:01,410 --> 00:29:04,600 Ia akan memberikan anda 1, yang adalah baki itu. 654 00:29:04,600 --> 00:29:07,361 >> Oleh itu, apabila kamu bergerak melalui jadual ASCII, 655 00:29:07,361 --> 00:29:09,735 modulo akan berakhir menjadi sesuatu yang sangat penting, 656 00:29:09,735 --> 00:29:11,240 dan kami akan berbincang di kemudian hari. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> OKAY. 659 00:29:19,040 --> 00:29:27,300 Jadi sesuatu yang cantik, agak baru dan cantik unik 660 00:29:27,300 --> 00:29:31,920 yang kita telah dibincangkan pada minggu ini konsep apa array adalah. 661 00:29:31,920 --> 00:29:34,370 Jadi pelbagai adalah yang pertama jenis struktur data 662 00:29:34,370 --> 00:29:36,320 bahawa kita akan hadapi dalam kelas ini. 663 00:29:36,320 --> 00:29:40,010 Semua struktur data adalah semacam sewenang-wenangnya, 664 00:29:40,010 --> 00:29:43,370 benar-benar perkara-perkara seperti struktur bahawa kita sebagai pengaturcara telah diwujudkan, 665 00:29:43,370 --> 00:29:47,890 bahawa kita telah dimasukkan ke dalam kod kami yang boleh mengandungi bahagian-bahagian lain kod. 666 00:29:47,890 --> 00:29:51,090 >> Jadi dalam hal ini, array-- yang menganggapnya sebagai kabinet fail, 667 00:29:51,090 --> 00:29:53,470 di mana jika anda membuka berbeza rak kabinet fail anda, 668 00:29:53,470 --> 00:29:55,630 anda boleh mengakses perkara yang berbeza. 669 00:29:55,630 --> 00:29:58,630 Dalam ingatan, array adalah hanya melakukan perkara yang sama pada komputer anda. 670 00:29:58,630 --> 00:30:01,730 Anda boleh mempunyai blocks-- kita berbeza memanggil mereka indices-- array. 671 00:30:01,730 --> 00:30:04,210 Ia hanya seperti satu blok, rak memori 672 00:30:04,210 --> 00:30:07,580 bahawa kami telah diwujudkan dalam anda komputer yang anda boleh memasukkan 673 00:30:07,580 --> 00:30:10,270 perkara-perkara tertentu dalam ruang yang berbeza. 674 00:30:10,270 --> 00:30:18,000 >> Jadi dengan array, anda sentiasa perlu specify-- 675 00:30:18,000 --> 00:30:22,360 anda perlu nyatakan mengisytiharkan pelbagai dalam format berikut. 676 00:30:22,360 --> 00:30:24,290 Anda akan pertama menentukan jenis data 677 00:30:24,290 --> 00:30:25,831 bahawa anda ingin membuat array. 678 00:30:25,831 --> 00:30:28,870 Jika saya mahu pelbagai integer, Saya akan meletakkan int di sana. 679 00:30:28,870 --> 00:30:32,079 Jika saya mahu pelbagai rentetan, Saya akan meletakkan tali di sana, 680 00:30:32,079 --> 00:30:34,995 nama array anda, dan kemudian anda akan mempunyai tanda kurung siku. 681 00:30:34,995 --> 00:30:39,580 Dan di dalam tanda kurung siku, anda akan mempunyai saiz array anda. 682 00:30:39,580 --> 00:30:42,900 >> Sesuatu yang benar-benar penting untuk perlu diingat apabila membuat array adalah 683 00:30:42,900 --> 00:30:46,530 bahawa, apabila anda membuat pelbagai, saiz yang tidak boleh berubah. 684 00:30:46,530 --> 00:30:50,180 Jadi, jika anda tahu bahawa sekarang anda mempunyai pelbagai saiz 10, 685 00:30:50,180 --> 00:30:54,550 anda tahu bahawa saya akan mempunyai 10 sel-sel dalam atau 10 indeks dalam pelbagai ini, 686 00:30:54,550 --> 00:30:56,830 dan ia tidak akan untuk mengembangkan atau mengurangkan 687 00:30:56,830 --> 00:30:59,850 tidak kira apa, dan bahawa ada kini hanya 10 blok ruang 688 00:30:59,850 --> 00:31:04,490 diperuntukkan dalam ingatan anda yang boleh menyimpan sehingga 10 perkara apa sahaja yang anda telah meletakkan. 689 00:31:04,490 --> 00:31:08,790 >> Jadi dengan cara ini, satu jenis data pelbagai, struktur data yang array 690 00:31:08,790 --> 00:31:13,392 adalah sangat berbeza daripada beberapa orang lain kita akan dapat meliputi kemudian di dalam kursus ini. 691 00:31:13,392 --> 00:31:15,170 Yeah. 692 00:31:15,170 --> 00:31:20,080 Sebagai contoh, jika anda mahu mencipta pelbagai saiz 3 yang 693 00:31:20,080 --> 00:31:23,670 terkandung pembolehubah integer-- oh, maaf, sudah temperature-- 694 00:31:23,670 --> 00:31:25,640 dan suhu, daripada sudah tentu, adalah integer. 695 00:31:25,640 --> 00:31:28,710 >> Oleh itu, kita akan mewujudkan int, yang merupakan jenis data apa yang kita mahu untuk menyimpan. 696 00:31:28,710 --> 00:31:32,680 Kami akan memanggil suhu ini demi tatanama penamaan 697 00:31:32,680 --> 00:31:34,200 sesuatu yang kita semua faham. 698 00:31:34,200 --> 00:31:35,900 Dan kita akan mempunyai tanda kurung siku. 699 00:31:35,900 --> 00:31:37,200 Dan kita mahu tiga nombor. 700 00:31:37,200 --> 00:31:39,000 Oleh itu, kita akan meletakkan tiga di dalamnya. 701 00:31:39,000 --> 00:31:41,041 >> Sesuatu yang benar-benar penting yang perlu diingat 702 00:31:41,041 --> 00:31:43,530 adalah bahawa tatasusunan adalah sifar diindeks. 703 00:31:43,530 --> 00:31:46,410 Apa yang bermakna bahawa anda mula dengan indeks 0, 704 00:31:46,410 --> 00:31:49,800 dan anda berlari melalui saiz array tolak 1. 705 00:31:49,800 --> 00:31:52,730 Jadi, sebagai contoh di sini, kita mempunyai pelbagai saiz 3. 706 00:31:52,730 --> 00:31:54,680 Ia akan dapat untuk mengadakan tiga nilai. 707 00:31:54,680 --> 00:31:57,450 Tetapi nombor themselves-- yang nombor, array, indeks itu, 708 00:31:57,450 --> 00:32:00,271 array, 0 melalui 2. 709 00:32:00,271 --> 00:32:03,520 Jadi lelaki, benar-benar, benar-benar berhati-hati apabila anda akan melalui masalah anda menetapkan 710 00:32:03,520 --> 00:32:06,500 dan mewujudkan apa-apa jenis pelbagai, kerana banyak daripada masa-masa itu 711 00:32:06,500 --> 00:32:08,490 benar-benar, benar-benar mudah untuk lupa bahawa. 712 00:32:08,490 --> 00:32:11,840 Saya sebenarnya tidak mempunyai indeks 3, yang saya kini hanya 713 00:32:11,840 --> 00:32:13,130 mempunyai indeks 2. 714 00:32:13,130 --> 00:32:16,046 Dan jika anda cuba untuk mengakses indeks ketiga, 715 00:32:16,046 --> 00:32:18,170 ia akan menjadi apa yang dipanggil terminator nol. 716 00:32:18,170 --> 00:32:19,990 Ia tidak akan benar-benar wujud dalam array. 717 00:32:19,990 --> 00:32:21,781 Dan komputer adalah tidak akan seperti itu. 718 00:32:21,781 --> 00:32:24,570 Jadi berhati-hati apabila anda mengakses perkara yang hanya 719 00:32:24,570 --> 00:32:28,070 untuk memastikan bahawa anda masih ingat yang tatasusunan adalah sifar-diindeks. 720 00:32:28,070 --> 00:32:28,880 >> OKAY. 721 00:32:28,880 --> 00:32:34,030 Jadi contoh yang pertama adalah hanya salah satu cara untuk mewujudkan array. 722 00:32:34,030 --> 00:32:36,790 Contoh yang kedua, saya mempunyai di bawah adalah cara yang berasingan 723 00:32:36,790 --> 00:32:40,210 mewujudkan apa yang data yang sama struktur yang kita baru sahaja dimasukkan. 724 00:32:40,210 --> 00:32:44,347 Jadi, daripada segi fizikal berjalan melalui dan meletakkan dalam suhu 0 725 00:32:44,347 --> 00:32:47,180 sama dengan apa sahaja, suhu 1 sama dengan apa sahaja, suhu 2 setaraf 726 00:32:47,180 --> 00:32:50,950 apa sahaja, saya boleh sebenarnya hanya terus mencipta semuanya dalam satu baris 727 00:32:50,950 --> 00:32:53,010 ke dalam suhu kurungan persegi sama. 728 00:32:53,010 --> 00:32:56,536 >> Dan notis dalam kes ini, anda tidak perlu untuk menentukan berapa besar lokasi anda, 729 00:32:56,536 --> 00:32:59,160 kerana komputer akan pergi melalui dan melihat bahawa ada 730 00:32:59,160 --> 00:33:01,570 tiga elemen dalam orang-orang pendakap kerinting. 731 00:33:01,570 --> 00:33:04,000 Dan ia akan tahu, OK, Saya memerlukan pelbagai saiz 3. 732 00:33:04,000 --> 00:33:07,440 Anda tidak akan perlu input dengan cara yang berikut. 733 00:33:07,440 --> 00:33:10,170 >> Dan juga, ya, cara itu. 734 00:33:10,170 --> 00:33:12,610 Adakah sesiapa yang mempunyai soalan mengenai bagaimana kita membuat array 735 00:33:12,610 --> 00:33:17,391 atau bagaimana struktur array berfungsi? 736 00:33:17,391 --> 00:33:17,890 Yeah. 737 00:33:17,890 --> 00:33:18,806 >> PENONTON: [didengar]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI PENG: Ya, betul-betul. 740 00:33:22,690 --> 00:33:26,150 Jadi jika anda adalah untuk mengisytiharkan dan memulakan pelbagai kaedah berikut, 741 00:33:26,150 --> 00:33:28,477 yang merupakan cara yang kedua, anda hanya boleh meninggalkan mereka. 742 00:33:28,477 --> 00:33:30,310 Dan komputer secara automatik tahu bahawa ia 743 00:33:30,310 --> 00:33:33,950 perlu mengira berapa banyak unsur sedang dalam orang-orang pendakap kerinting, dipisahkan 744 00:33:33,950 --> 00:33:34,930 dengan tanda koma. 745 00:33:34,930 --> 00:33:37,517 >> Jadi di sini mereka melihat 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Jadi komputer tahu, oh, ada tiga integer. 747 00:33:39,600 --> 00:33:45,960 Yang saya tahu untuk mencipta nama lokasi suhu dengan tiga elemen di dalamnya. 748 00:33:45,960 --> 00:33:46,590 Soalan yang baik. 749 00:33:46,590 --> 00:33:47,090 Yeah. 750 00:33:47,090 --> 00:33:51,590 >> PENONTON: Bukankah ia mungkin untuk mewujudkan pelbagai dengan pelbagai jenis data 751 00:33:51,590 --> 00:33:53,021 yang boleh dimasukkan ke dalamnya? 752 00:33:53,021 --> 00:33:56,746 Sebagai contoh, dengan bilangan bulat [didengar]? 753 00:33:56,746 --> 00:33:59,120 ANDI PENG: Bagi maksud kelas ini, tidak, sekarang. 754 00:33:59,120 --> 00:34:03,070 Apabila anda membuat data struktur seperti array, 755 00:34:03,070 --> 00:34:04,990 anda memberitahu komputer, hey, saya memerlukan anda 756 00:34:04,990 --> 00:34:08,159 untuk memperuntukkan sebanyak ini memori di dalam pemacu keras saya, 757 00:34:08,159 --> 00:34:10,690 dengan setiap sel menjadi sebilangan bit. 758 00:34:10,690 --> 00:34:13,429 >> Ingat kita belajar pada minggu sifar yang data yang berbeza 759 00:34:13,429 --> 00:34:15,300 jenis mempunyai saiz yang berbeza? 760 00:34:15,300 --> 00:34:17,630 Jadi, sebagai contoh, tali adalah satu jumlah yang berbeza 761 00:34:17,630 --> 00:34:20,719 ruang dari char, yang adalah satu jumlah yang berbeza ruang 762 00:34:20,719 --> 00:34:21,830 daripada integer. 763 00:34:21,830 --> 00:34:25,534 Dan jadi jika anda tidak menentukan dan anda mencampur dan sepadan dengan apa jenis pemboleh ubah 764 00:34:25,534 --> 00:34:27,659 anda ada, komputer ini akan menjadi sangat keliru. 765 00:34:27,659 --> 00:34:29,950 Dan ia tidak akan tahu berapa banyak memori untuk memberikannya kepadamu. 766 00:34:29,950 --> 00:34:32,480 Jadi untuk tujuan yang betul sekarang, komputer hanya boleh 767 00:34:32,480 --> 00:34:36,120 mengenali satu jenis array. 768 00:34:36,120 --> 00:34:37,940 Soalan yang baik. 769 00:34:37,940 --> 00:34:38,440 OKAY. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Jadi secara semula jadi, Soalan kedua kita ada 772 00:34:47,120 --> 00:34:50,760 adalah, baik, sekarang kita telah membuat satu pelbagai dan kami telah meletakkan semua perkara-perkara ini 773 00:34:50,760 --> 00:34:54,190 dalam array, bagaimana kita akan dapat mengaksesnya? 774 00:34:54,190 --> 00:34:59,710 Jadi struktur biasa yang kita selalu mengakses array indah kami untuk gelung. 775 00:34:59,710 --> 00:35:03,830 Saya berjanji kepada anda semua bahawa kita mungkin akan melihat banyak orang ini di sini. 776 00:35:03,830 --> 00:35:06,470 >> Pada dasarnya, bila-bila masa yang anda mahu untuk memasukkan nilai ke dalam pelbagai 777 00:35:06,470 --> 00:35:09,940 atau anda mahu untuk mengakses mereka, Cara terbaik untuk melakukannya adalah untuk gelung, 778 00:35:09,940 --> 00:35:13,730 kerana dalam untuk gelung, anda tahu berapa kali anda berada 779 00:35:13,730 --> 00:35:17,290 akan mahu untuk menjalankan melalui array, kerana anda mempunyai edisi berhenti, bukan? 780 00:35:17,290 --> 00:35:19,680 Dan setiap kali anda menjalankan melalui, anda boleh mengakses 781 00:35:19,680 --> 00:35:21,310 elemen yang berbeza array. 782 00:35:21,310 --> 00:35:26,920 >> Dan juga, ini adalah sebab mengapa biasanya kita mula kami untuk gelung pada nilai 0, 783 00:35:26,920 --> 00:35:30,080 kerana apabila anda mengakses tatasusunan, anda boleh mengakses indeks sifar. 784 00:35:30,080 --> 00:35:32,070 Dan supaya ia selari dengan sangat baik. 785 00:35:32,070 --> 00:35:35,295 Kalian mungkin mahu menulis untuk int i sama dengan 1. 786 00:35:35,295 --> 00:35:37,330 i adalah kurang daripada atau sama dengan 3. 787 00:35:37,330 --> 00:35:39,890 >> Tetapi ia tidak akan bekerja cukup baik di sini, kerana anda hanya 788 00:35:39,890 --> 00:35:42,010 mempunyai unsur-unsur 0, 1, dan 2. 789 00:35:42,010 --> 00:35:45,815 Dan jadi jika anda adalah untuk mula i anda di elemen 1, 2, dan 3, 790 00:35:45,815 --> 00:35:48,440 anda akan berakhir berjalan daripada batas-batas lokasi anda, 791 00:35:48,440 --> 00:35:50,440 dan perkara-perkara yang tidak baik akan berlaku. 792 00:35:50,440 --> 00:35:54,480 >> Jadi saya berharap anda semua melihat Shalawat yang mengapa dalam kelas yang lebih awal 793 00:35:54,480 --> 00:35:58,560 kami mengajar anda semua bagaimana untuk menjalankan dan memformat untuk gelung cara yang kami naiki. 794 00:35:58,560 --> 00:36:01,900 Ini kerana, kini kami telah beralih ke dalam tatasusunan, 795 00:36:01,900 --> 00:36:06,760 anda boleh melihat mengapa 0 Bei sendiri sangat baik untuk mengakses. 796 00:36:06,760 --> 00:36:09,880 >> Jadi cara kita melakukan yang bahawa- Saya hanya mencetak it out di sini demi 797 00:36:09,880 --> 00:36:10,830 mencetak ia keluar. 798 00:36:10,830 --> 00:36:13,750 Tetapi saya mempunyai pemegang tempat saya, koma. 799 00:36:13,750 --> 00:36:15,645 Dan pengaksesan sebenar bahagian yang sedang berlaku. 800 00:36:15,645 --> 00:36:17,520 Nama array dipanggil suhu. 801 00:36:17,520 --> 00:36:21,570 Jadi ia adalah suhu dan i-ke-elemen array. 802 00:36:21,570 --> 00:36:24,400 >> Jadi sebagai untuk gelung berjalan melalui, ia akan bermula dari 0. 803 00:36:24,400 --> 00:36:27,640 Ia akan mencetak Indeks 0 array ini. 804 00:36:27,640 --> 00:36:29,599 Kemudian ia akan mencetak daripada elemen pertama. 805 00:36:29,599 --> 00:36:31,431 Kemudian ia akan mencetak daripada yang kedua. 806 00:36:31,431 --> 00:36:32,880 Dan kemudian kita akan pecah. 807 00:36:32,880 --> 00:36:36,718 Adakah semua orang jelas mengenai bagaimana yang yang berlaku? 808 00:36:36,718 --> 00:36:37,217 Yang besar. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> Baiklah. 811 00:36:44,100 --> 00:36:47,270 Jadi di sini kita mempunyai cara berkata, jika kita tidak mahu 812 00:36:47,270 --> 00:36:50,020 untuk keras-kod dalam- saya sebagai pengaturcara. 813 00:36:50,020 --> 00:36:53,320 Saya tidak mahu untuk benar-benar secara fizikal dimasukkan ke dalam setiap elemen individu 814 00:36:53,320 --> 00:36:54,020 array ini. 815 00:36:54,020 --> 00:36:56,500 Jika saya mahu dan bukannya mempunyai nilai-nilai input pengguna, 816 00:36:56,500 --> 00:36:58,100 apakah cara yang terbaik untuk berbuat demikian? 817 00:36:58,100 --> 00:37:00,920 >> Nah, di sini saya telah mencipta fungsi ini indah, 818 00:37:00,920 --> 00:37:03,560 di mana saya boleh mengisytiharkan array. 819 00:37:03,560 --> 00:37:06,210 Jadi int scores-- mari katakan kita ingin 820 00:37:06,210 --> 00:37:10,660 pelbagai yang memegang gred semua 18 daripada pelajar-pelajar di sini dalam bahagian ini. 821 00:37:10,660 --> 00:37:12,670 Saya fikir kami mempunyai sedikit lebih daripada 18 kanak-kanak hari ini. 822 00:37:12,670 --> 00:37:16,460 Tetapi demi contoh ini, mari kita menganggap kita mempunyai 18. 823 00:37:16,460 --> 00:37:21,580 Saya akan mewujudkan skor nama pelbagai dengan jenis int, kerana skor, sudah tentu, 824 00:37:21,580 --> 00:37:22,987 ialah nombor. 825 00:37:22,987 --> 00:37:24,820 Dan saya akan mempunyai 18 dalam kurungan persegi, 826 00:37:24,820 --> 00:37:29,900 kerana itulah bagaimana ramai pelajar saya mahu dapat untuk menyimpan puluhan. 827 00:37:29,900 --> 00:37:32,206 >> Dan cara saya mengisi array adalah bahawa saya 828 00:37:32,206 --> 00:37:35,572 berjalan melalui untuk gelung, sudah Sudah tentu, dengan 0 yang indeks 0 saya. 829 00:37:35,572 --> 00:37:38,030 Dan kemudian dengan 18 yang saya berhenti edisi, kerana ada 830 00:37:38,030 --> 00:37:39,690 18 elemen dalam array. 831 00:37:39,690 --> 00:37:44,620 Dan kemudian saya akan melakukan printf, Masukkan skor bagi student-- yada yada yada. 832 00:37:44,620 --> 00:37:51,171 >> Bolehkah sesiapa beritahu saya mengapa di sini Saya mencetak i ditambah 1 dan tidak i? 833 00:37:51,171 --> 00:37:52,920 Ia adalah jenis helah soalan, tidak benar-benar. 834 00:37:52,920 --> 00:37:56,020 Ia tidak benar-benar secara fizikal menjejaskan perjalanan kod. 835 00:37:56,020 --> 00:37:56,520 Yeah. 836 00:37:56,520 --> 00:37:57,909 >> PENONTON: [didengar] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI PENG: Ya, betul-betul. 838 00:37:58,950 --> 00:38:02,620 Ia agak janggal untuk mengatakan, hey, anda seorang pelajar yang 0 dalam kelas ini. 839 00:38:02,620 --> 00:38:03,780 Ia agak pelik. 840 00:38:03,780 --> 00:38:08,340 Jadi kita, sebagai manusia, tidak benar-benar suka untuk memikirkan bagaimana komputer berfikir. 841 00:38:08,340 --> 00:38:10,930 Jadi, walaupun dalam komputer, ia menyimpan nilai-nilai 842 00:38:10,930 --> 00:38:13,310 indeks 0-th, apabila kita manusia, kita tidak benar-benar 843 00:38:13,310 --> 00:38:15,520 ingin merujuk kepada diri kita sebagai sifar. 844 00:38:15,520 --> 00:38:18,119 Oleh itu, apabila saya hanya mencetak itu, Saya akan mencetak dan menambah 845 00:38:18,119 --> 00:38:19,410 1 hanya demi kejelasan. 846 00:38:19,410 --> 00:38:22,447 Oleh itu, apabila saya mencetak, saya akan menjadi boleh mencetak pelajar 1 hingga 18. 847 00:38:22,447 --> 00:38:24,530 Ia tidak memberi kesan sebenarnya pengendalian kod di 848 00:38:24,530 --> 00:38:27,110 dalam apa jua cara, cara saya mencetak. 849 00:38:27,110 --> 00:38:30,380 >> Tetapi berhati-hati apabila anda berada sebenarnya mengakses array. 850 00:38:30,380 --> 00:38:32,780 Apabila anda melihat markah i, perhatikan di sini saya sebenarnya 851 00:38:32,780 --> 00:38:38,200 mengakses indeks 0 dan bukan 1 tambah 0-- atau 1 campur 1, 852 00:38:38,200 --> 00:38:45,530 dalam kes ini, indeks supaya bahawa ia sebenarnya jelas. 853 00:38:45,530 --> 00:38:48,870 Adakah semua orang jenis OK pada bagaimana ini sedang berjalan melalui 854 00:38:48,870 --> 00:38:51,470 dan dengan segala indeks Saya meletakkan nilai ke dalam pelbagai 855 00:38:51,470 --> 00:38:55,340 dan mewujudkan pelbagai dengan 18 nombor bahawa pengguna akan input? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 OKAY. 858 00:38:59,821 --> 00:39:00,321 Sejuk. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> OKAY. 861 00:39:07,400 --> 00:39:12,220 Kami sedang bergerak ke dalam sesuatu yang cantik berkaitan untuk bahagian ini ditetapkan juga. 862 00:39:12,220 --> 00:39:15,020 Saya tahu dalam kuliah, David-- maaf, anda mempunyai soalan? 863 00:39:15,020 --> 00:39:16,840 >> PENONTON: Bolehkah anda membesarkan ia? 864 00:39:16,840 --> 00:39:18,080 >> ANDI PENG: Ya, jadi saya cuba. 865 00:39:18,080 --> 00:39:18,788 Tetapi saya tidak tahu. 866 00:39:18,788 --> 00:39:21,437 Untuk sebab-sebab tertentu, ini versi PowerPoint 867 00:39:21,437 --> 00:39:23,270 adalah benar-benar tidak berfungsi baik dengan paparan. 868 00:39:23,270 --> 00:39:25,260 Oleh itu, kita hanya akan untuk memastikan ia seperti ini. 869 00:39:25,260 --> 00:39:27,280 Semua ini akan dimuat naik dalam talian. 870 00:39:27,280 --> 00:39:28,218 Maaf, guys. 871 00:39:28,218 --> 00:39:30,090 Yeah. 872 00:39:30,090 --> 00:39:30,980 OKAY. 873 00:39:30,980 --> 00:39:35,530 >> Oleh itu, kita juga boleh mempunyai tali. 874 00:39:35,530 --> 00:39:39,320 Jadi, jika anda seorang lelaki sebenarnya notice-- Saya tahu Rob pergi ke ini dalam syarahan yang 875 00:39:39,320 --> 00:39:43,652 bahawa dia did-- rentetan sebenarnya hanya pelbagai aksara, 876 00:39:43,652 --> 00:39:44,860 jika anda berfikir tentang hal itu, bukan? 877 00:39:44,860 --> 00:39:47,500 Rentetan adalah nama atau ayat atau perkataan, bukan? 878 00:39:47,500 --> 00:39:52,975 >> Jika saya membuat rentetan bernama Hanya nama Andi-- saya, A-N-D-I. 879 00:39:52,975 --> 00:39:55,460 Anda fikir itu sebagai hanya satu pembolehubah. 880 00:39:55,460 --> 00:39:58,630 Tetapi sebenarnya, ia dipecahkan ke hanya pelbagai aksara. 881 00:39:58,630 --> 00:40:01,910 Jadi ia mendapat watak yang disimpan di dalam nilai array. 882 00:40:01,910 --> 00:40:05,420 Ia mempunyai watak n disimpan dalam indeks kedua dan seterusnya dan sebagainya. 883 00:40:05,420 --> 00:40:08,660 >> Jadi, dalam apa-apa cara, kita sebenarnya mempunyai jenis ini 884 00:40:08,660 --> 00:40:10,970 struktur yang ditetapkan dalam meletakkan untuk tali kami. 885 00:40:10,970 --> 00:40:14,660 Jadi di sini, jika saya input perkataan "makan" - jadi rentetan perkataan sama 886 00:40:14,660 --> 00:40:15,540 mendapatkan tali. 887 00:40:15,540 --> 00:40:19,260 Jika saya input perkataan "makan," bahawa segi fizikal cara bahawa komputer saya 888 00:40:19,260 --> 00:40:21,870 adalah menyimpan bahawa rentetan dalam ingatan saya. 889 00:40:21,870 --> 00:40:27,140 >> Dan jika saya mahu untuk menjalankan melalui itu dan cetak yang out-- jadi untuk ke i 890 00:40:27,140 --> 00:40:30,890 sama dengan sifar, ingat, dalam kuliah, kita sesuatu yang dilindungi yang dinamakan strlen, 891 00:40:30,890 --> 00:40:32,990 atau panjang tali. 892 00:40:32,990 --> 00:40:36,520 Oleh kerana saya tidak benar-benar tahu berapa besar array adalah 893 00:40:36,520 --> 00:40:38,210 apa jua inputting-- pengguna 894 00:40:38,210 --> 00:40:40,370 >> Sebagai contoh, saya diinput perkataan "makan", dan saya tahu 895 00:40:40,370 --> 00:40:41,870 itulah tiga aksara, bukan? 896 00:40:41,870 --> 00:40:44,700 Jadi saya boleh dimasukkan ke dalam tiga terdapat dan semua akan halus. 897 00:40:44,700 --> 00:40:49,290 Tetapi jika sesuatu input pengguna anda itulah nombor yang berbeza nilai, 898 00:40:49,290 --> 00:40:52,760 anda akan tidak dapat benar-benar tahu bahawa apabila anda program kod anda. 899 00:40:52,760 --> 00:40:56,040 >> Jadi cara kita mengendalikan kes-kes ujian seperti itu adalah bahawa kita mempunyai sesuatu 900 00:40:56,040 --> 00:41:00,070 dipanggil strlen, yang hanya satu majlis yang memberitahu anda berapa lama tali adalah. 901 00:41:00,070 --> 00:41:02,080 Jadi strlen dengan perkataan. 902 00:41:02,080 --> 00:41:03,470 Kata-kata saya makan. 903 00:41:03,470 --> 00:41:05,990 n sama strlen dengan perkataan. 904 00:41:05,990 --> 00:41:08,930 Bolehkah seseorang beritahu saya apa yang nilai sebenarnya di sana? 905 00:41:08,930 --> 00:41:12,550 Apa n mewakili hak kini, dalam contoh ini, jika saya terpaksa makan? 906 00:41:12,550 --> 00:41:13,530 >> PENONTON: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI PENG: 3, betul-betul. 908 00:41:14,520 --> 00:41:18,820 Oleh itu, kita ada untuk int i sama sifar, n bersamaan 3, pada asasnya. 909 00:41:18,820 --> 00:41:22,355 Dan saya akan menjalankan sehingga ia kurang daripada 3i ++. 910 00:41:22,355 --> 00:41:24,980 Dan ia akan pada dasarnya pergi melalui dan melakukan perkara yang sama. 911 00:41:24,980 --> 00:41:26,979 Ia akan mencetak setiap nilai dan memberi anda 912 00:41:26,979 --> 00:41:29,700 E-A-T. Ia hanya menandakan satu cara yang berbeza daripada menulis. 913 00:41:29,700 --> 00:41:31,170 Itu akan sangat membantu. 914 00:41:31,170 --> 00:41:31,670 Yeah. 915 00:41:31,670 --> 00:41:35,174 PENONTON: Apa manfaat meletakkan n yang sama dengan perkataan strlen di dalam yang 916 00:41:35,174 --> 00:41:36,894 untuk gelung [didengar]? 917 00:41:36,894 --> 00:41:37,560 ANDI PENG: Ya. 918 00:41:37,560 --> 00:41:44,880 Jadi jika saya supaya- berkata, sebagai contoh, jika saya berbuat demikian dan kemudian 919 00:41:44,880 --> 00:41:51,935 do-- oop-- itu, kod saya, ia akan benar-benar menjadi seperti melakukan perkara yang sama. 920 00:41:51,935 --> 00:41:55,060 Walau bagaimanapun, cara yang dibentangkan Daud menjelaskan ia semasa kuliah, jika ada daripada anda semua 921 00:41:55,060 --> 00:41:57,854 ingat, adalah bahawa, sebagai manusia, sebagai pengaturcara, 922 00:41:57,854 --> 00:42:00,270 kita benar-benar cuba untuk program kami kod supaya komputer kita mempunyai 923 00:42:00,270 --> 00:42:04,070 untuk bekerja sebagai minimum yang mungkin, supaya bahawa kod kami adalah sangat cekap. 924 00:42:04,070 --> 00:42:06,850 >> Jadi, jika saya mempunyai bahawa di sana, apa yang akan berlaku melalui gelung saya 925 00:42:06,850 --> 00:42:10,790 ialah saya pertama akan mengisytiharkan pembolehubah yang dinamakan i akan menjadi 0. 926 00:42:10,790 --> 00:42:13,350 Aku pergi untuk memeriksa, oh, apakah strlen dengan perkataan? 927 00:42:13,350 --> 00:42:15,000 Oh, strlen ialah 3. 928 00:42:15,000 --> 00:42:16,191 Begitu juga saya kurang daripada tiga? 929 00:42:16,191 --> 00:42:16,690 Ya betul. 930 00:42:16,690 --> 00:42:17,870 Saya akan berjalan. 931 00:42:17,870 --> 00:42:21,130 >> Dan kemudian kali kedua kembali sekitar gelung, saya akan kenaikan i. 932 00:42:21,130 --> 00:42:22,550 i akan menjadi satu. 933 00:42:22,550 --> 00:42:25,600 Dan saya akan menyemak, oh, tetapi apa yang strlen dengan perkataan? 934 00:42:25,600 --> 00:42:26,839 Oh, ia adalah tiga. 935 00:42:26,839 --> 00:42:29,880 Dan adakah itu seolah-olah jenis membazir, setiap kali anda berjalan melalui gelung, 936 00:42:29,880 --> 00:42:33,340 untuk memeriksa majlis itu, walaupun strlen perkataan 937 00:42:33,340 --> 00:42:35,490 pernah benar-benar berubah? 938 00:42:35,490 --> 00:42:38,590 >> Jadi ia adalah kuasa tambahan untuk komputer. 939 00:42:38,590 --> 00:42:42,180 Apabila anda mula bercakap tentang perkara-perkara yang berbilion-bilion 940 00:42:42,180 --> 00:42:44,431 dan berbilion-bilion tempat-tempat panjang, bayangkan komputer anda 941 00:42:44,431 --> 00:42:47,430 perlu secara fizikal melalui dan menyemak semua bahawa setiap kali tunggal. 942 00:42:47,430 --> 00:42:53,170 Oleh itu, untuk membuat hanya demi kecekapan, 943 00:42:53,170 --> 00:42:57,620 kita cenderung untuk hanya melakukan ini, kerana dengan cara ini kami hanya 944 00:42:57,620 --> 00:42:59,850 memanggil fungsi yang sekali pada mulanya, 945 00:42:59,850 --> 00:43:01,766 dan setiap kali ia akan melalui ia akan 946 00:43:01,766 --> 00:43:03,789 untuk menyimpan nilai 3 di sana, bahawa anda tidak 947 00:43:03,789 --> 00:43:05,330 perlu terus-menerus memeriksa setiap masa. 948 00:43:05,330 --> 00:43:05,743 Yeah. 949 00:43:05,743 --> 00:43:06,409 >> PENONTON: Maaf. 950 00:43:06,409 --> 00:43:09,070 Hanya [didengar]. 951 00:43:09,070 --> 00:43:13,985 Bolehkah anda int n sama strlen dan meletakkan yang di atas di luar untuk gelung 952 00:43:13,985 --> 00:43:15,364 juga? 953 00:43:15,364 --> 00:43:16,030 ANDI PENG: Ya. 954 00:43:16,030 --> 00:43:17,100 Anda boleh berbuat demikian, sama sekali. 955 00:43:17,100 --> 00:43:19,970 Sebab kita ada dalam sini adalah kerana cara untuk kerja-kerja gelung 956 00:43:19,970 --> 00:43:23,500 adalah bahawa ia dipanggil pembolehubah tempatan dalam erti kata 957 00:43:23,500 --> 00:43:26,150 bahawa semua yang anda berada mewujudkan bahagian dalam gelung 958 00:43:26,150 --> 00:43:27,890 hanya wujud di dalam satu gelung. 959 00:43:27,890 --> 00:43:31,530 >> Jadi pembolehubah i sahaja wujud dalam orang-orang kurungan. 960 00:43:31,530 --> 00:43:35,260 Dan di sini pembolehubah n juga hanya wujud dalam orang-orang kurungan. 961 00:43:35,260 --> 00:43:39,350 Jadi jika anda adalah untuk menggunakan strlen daripada perkataan beberapa kali ke bawah di bawah, 962 00:43:39,350 --> 00:43:42,230 sememangnya cara terbaik untuk berbuat demikian adalah untuk mengisytiharkan ia sehingga bahagian atas 963 00:43:42,230 --> 00:43:43,563 supaya anda tidak perlu melakukannya sekali. 964 00:43:43,563 --> 00:43:45,420 Yeah. 965 00:43:45,420 --> 00:43:47,670 PENONTON: Kenapa anda mempunyai baris baru selepas peratus 966 00:43:47,670 --> 00:43:51,300 melihat jika anda mahu meletakkan semua huruf sebelahnya memisahkan? 967 00:43:51,300 --> 00:43:54,140 >> ANDI PENG: Oh, saya mahu mencetak mereka semua pada setiap baris. 968 00:43:54,140 --> 00:43:54,890 Tidak kira. 969 00:43:54,890 --> 00:43:55,890 Ya, ia pemformatan a. 970 00:43:55,890 --> 00:43:57,181 Itu satu soalan yang baik, walaupun. 971 00:43:57,181 --> 00:43:59,360 Ya, jika saya mahu untuk mencetak semuanya pada hanya satu baris, 972 00:43:59,360 --> 00:44:02,731 Saya tidak akan mempunyai melontarkan yang masuk. 973 00:44:02,731 --> 00:44:03,230 OKAY. 974 00:44:03,230 --> 00:44:06,880 Semua orang yang baik? 975 00:44:06,880 --> 00:44:07,500 OKAY. 976 00:44:07,500 --> 00:44:08,000 Sejuk. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Jadi saya fikir saya telah bercakap cukup. 979 00:44:14,750 --> 00:44:20,040 Giliran anda semua untuk berjalan melalui kod dan beritahu saya apa yang salah di sini. 980 00:44:20,040 --> 00:44:21,560 Di mana pepijat? 981 00:44:21,560 --> 00:44:26,920 Jadi seperti yang anda lihat, saya telah mengisytiharkan lokasi baru jenis tali dinamakan kelas. 982 00:44:26,920 --> 00:44:30,220 Dan saya telah diinput Sam, Jess, dan Kim ke dalamnya. 983 00:44:30,220 --> 00:44:33,400 Dan saya cuba untuk mencetak semua elemen array. 984 00:44:33,400 --> 00:44:36,796 Bolehkah seseorang beritahu saya mengapa ini akan memberi saya masalah? 985 00:44:36,796 --> 00:44:39,320 Saya akan memberikan anda semua 10 saat untuk berfikir tentang perkara ini. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> OKAY. 988 00:44:56,619 --> 00:44:57,118 Ya? 989 00:44:57,118 --> 00:45:01,972 >> PENONTON: Adakah pusat di sebelah kiri sama dengan 3 atau [didengar]? 990 00:45:01,972 --> 00:45:02,680 ANDI PENG: Betul. 991 00:45:02,680 --> 00:45:06,784 Jadi berapa kali yang ini sebenarnya akan berjalan melalui gelung ini? 992 00:45:06,784 --> 00:45:07,620 >> PENONTON: Empat. 993 00:45:07,620 --> 00:45:08,070 >> ANDI PENG: Tepat sekali. 994 00:45:08,070 --> 00:45:09,445 Ia akan ke melalui empat kali. 995 00:45:09,445 --> 00:45:12,250 Ia akan berjalan melalui pada 0, 1, 2, dan 3, 996 00:45:12,250 --> 00:45:15,200 kerana elemen mereka i adalah kurang daripada atau sama dengan 3. 997 00:45:15,200 --> 00:45:16,960 Ia tidak akan berhenti apabila ia adalah 2. 998 00:45:16,960 --> 00:45:18,800 Ia akan menjaga usaha sehingga ia mencecah 3. 999 00:45:18,800 --> 00:45:21,720 Dan seperti yang kita tahu, hanya ada tiga elemen dalam array kita yang sebenarnya. 1000 00:45:21,720 --> 00:45:27,260 >> Jika kita cuba untuk mengakses keempat elemen atau indeks 3, 1001 00:45:27,260 --> 00:45:30,357 anda akan melanda di suatu tempat dalam memori yang tidak wujud. 1002 00:45:30,357 --> 00:45:31,690 Ia dipanggil terminator nol. 1003 00:45:31,690 --> 00:45:32,856 Tiada apa-apa akan berada di sana. 1004 00:45:32,856 --> 00:45:35,324 Komputer anda tidak akan sangat gembira dengan anda. 1005 00:45:35,324 --> 00:45:36,170 Yeah. 1006 00:45:36,170 --> 00:45:38,430 Adakah sesiapa yang mempunyai soalan kenapa yang telah berlaku? 1007 00:45:38,430 --> 00:45:39,679 Itu satu kawasan yang sama untuk mengelakkan. 1008 00:45:39,679 --> 00:45:40,712 Yeah. 1009 00:45:40,712 --> 00:45:45,777 >> PENONTON: Tidakkah pertama slaid juga mempunyai rentetan 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: No. 1011 00:45:46,360 --> 00:45:49,610 Jadi pada asasnya, apabila anda membuat array, 1012 00:45:49,610 --> 00:45:51,540 hak kurungan di sana, yang number-- semua 1013 00:45:51,540 --> 00:45:53,480 ia memberitahu anda adalah bagaimana banyak unsur yang saya ada. 1014 00:45:53,480 --> 00:45:55,840 Ia tidak benar-benar memberitahu saya indeks apa-apa. 1015 00:45:55,840 --> 00:45:58,760 Jadi dalam kes ini, saya tahu saya mahu untuk menulis dengan tiga tempat, 1016 00:45:58,760 --> 00:46:02,690 dengan tiga tempat fizikal kepada memegang apa sahaja yang saya mahu untuk memegang. 1017 00:46:02,690 --> 00:46:04,510 Jadi itulah sebabnya nombor tiga di sana. 1018 00:46:04,510 --> 00:46:06,560 Walau bagaimanapun, jika saya mahu untuk benar-benar mengaksesnya, 1019 00:46:06,560 --> 00:46:11,220 jika saya mahu mengatakan, printf jumlah pendakap kelas, kemudian 1020 00:46:11,220 --> 00:46:14,560 anda akan benar-benar meletakkan indeks fizikal di sana. 1021 00:46:14,560 --> 00:46:16,330 Ya, soalan yang baik. 1022 00:46:16,330 --> 00:46:20,065 >> PENONTON: Begitu juga dengan fizikal indeks sepatutnya [didengar]? 1023 00:46:20,065 --> 00:46:20,940 ANDI PENG: Saya minta maaf. 1024 00:46:20,940 --> 00:46:21,500 Bolehkah anda bercakap sedikit? 1025 00:46:21,500 --> 00:46:24,208 >> PENONTON: Jadi adalah indeks fizikal [Didengar] setiap kotak? 1026 00:46:24,208 --> 00:46:25,260 [Didengar]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI PENG: Ya. 1028 00:46:26,040 --> 00:46:28,970 Jadi, saya akan kembali ke sini. 1029 00:46:28,970 --> 00:46:31,120 Fikirkan di sini. 1030 00:46:31,120 --> 00:46:32,820 Kami mempunyai pelbagai saiz 3. 1031 00:46:32,820 --> 00:46:35,540 Ada tiga tempat, seperti, ruang letak fizikal di sini. 1032 00:46:35,540 --> 00:46:37,620 Tetapi mereka yang bernama 0, 1, dan 2. 1033 00:46:37,620 --> 00:46:40,700 Jadi, jika saya mahu untuk mengaksesnya, cara yang saya mengaksesnya 1034 00:46:40,700 --> 00:46:43,480 printf adalah daripada apa yang saya mahu di sini. 1035 00:46:43,480 --> 00:46:45,485 Anda perlu mencetak daripada nama itu, 1036 00:46:45,485 --> 00:46:47,610 kerana maka komputer tahu, oh, saya perlu melihat 1037 00:46:47,610 --> 00:46:51,391 dalam pelbagai ini untuk indeks 0. 1038 00:46:51,391 --> 00:46:51,890 Yeah. 1039 00:46:51,890 --> 00:46:53,306 Tetapi saiz ia tidak berubah. 1040 00:46:53,306 --> 00:46:55,492 Saiz adalah 3, tidak kira bagaimana anda melabelkan mereka. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 OKAY. 1043 00:46:58,820 --> 00:47:01,387 Semua orang yang baik? 1044 00:47:01,387 --> 00:47:02,970 PENONTON: Jadi setiap kali saya [didengar]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI PENG: OK. 1047 00:47:06,940 --> 00:47:13,270 Jadi dalam kes ini, kita tidak benar-benar masuk ke dalam sekarang dalam perjalanan. 1048 00:47:13,270 --> 00:47:16,760 Tetapi tahu bahawa rentetan seperti saya katakan sebelum ini, rentetan pada dasarnya 1049 00:47:16,760 --> 00:47:18,440 pelbagai watak. 1050 00:47:18,440 --> 00:47:21,430 Jadi, jika saya membuat array tali, saya jenis 1051 00:47:21,430 --> 00:47:24,430 mempunyai pelbagai array watak-watak, bukan? 1052 00:47:24,430 --> 00:47:27,720 >> Jadi dalam kes ini, kerana saya mempunyai pelbagai tali, 1053 00:47:27,720 --> 00:47:31,340 jika anda adalah untuk input perkataan yang benar-benar panjang, yang masih mengambil satu ruangan sahaja, 1054 00:47:31,340 --> 00:47:33,230 kerana itulah tali satu. 1055 00:47:33,230 --> 00:47:37,492 Tetapi jika anda adalah untuk memikirkan watak-watak array itu, 1056 00:47:37,492 --> 00:47:40,450 kemudian yang yang mengambil lebih banyak watak-watak daripada mana-mana perkataan lain 1057 00:47:40,450 --> 00:47:41,372 berada. 1058 00:47:41,372 --> 00:47:42,830 Tidak benar-benar penting untuk sekarang. 1059 00:47:42,830 --> 00:47:44,921 Tetapi itu hanya secara umum bagaimana ia bekerja. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> OKAY. 1062 00:47:50,560 --> 00:47:55,840 Jadi ini adalah sesuatu yang saya akan memberitahu anda lakukan banyak sepanjang semester. 1063 00:47:55,840 --> 00:47:57,500 Saya perlu berehat suara saya. 1064 00:47:57,500 --> 00:47:59,530 Kalian perlu merangsang diri kamu sendiri. 1065 00:47:59,530 --> 00:48:02,300 Banyak anda mungkin perlu tidur sekarang. 1066 00:48:02,300 --> 00:48:05,960 Saya memasukkan masalah rawak di mana kita sebagai kelas atau anda 1067 00:48:05,960 --> 00:48:09,480 dengan rakan kongsi di sebelah anda akan untuk menghabiskan beberapa minit berbincang 1068 00:48:09,480 --> 00:48:14,980 bagaimana kita akan pergi tentang menyelesaikan atau mewujudkan program seperti ini. 1069 00:48:14,980 --> 00:48:17,100 >> Jadi sekarang, kita mahu untuk mewujudkan program-- yang 1070 00:48:17,100 --> 00:48:19,560 kita akan memanggilnya upper.c-- yang mualaf 1071 00:48:19,560 --> 00:48:24,787 perkataan huruf kecil untuk kelas atas yang huruf besar rentetan, maaf. 1072 00:48:24,787 --> 00:48:26,370 Perkataan dalam tali, maaf, sinonim. 1073 00:48:26,370 --> 00:48:28,370 Saya akan menukar mereka bermaksud perkara yang sama. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Yeah. 1076 00:48:33,499 --> 00:48:34,540 Mengambil masa beberapa minit. 1077 00:48:34,540 --> 00:48:37,130 Ia tidak perlu ditulis dalam mana-mana bahasa. 1078 00:48:37,130 --> 00:48:39,890 Hanya kod pseudo atau secara logik bagaimana kita lakukan walaupun 1079 00:48:39,890 --> 00:48:42,083 pergi tentang melakukan apa-apa masalah. 1080 00:48:42,083 --> 00:48:42,583 Yeah. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE PERBUALAN] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Saya juga perasan bahawa anda semua can-- Saya jenis lihat sudah program ini. 1085 00:49:22,130 --> 00:49:24,600 Saya rasa kekurangan saya mod penyampai menjadi masalah. 1086 00:49:24,600 --> 00:49:27,410 Tetapi ia OK. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE PERBUALAN] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Ya, sila, guys. 1090 00:50:04,380 --> 00:50:05,400 Datang mendapatkan gula-gula. 1091 00:50:05,400 --> 00:50:06,372 Datang mendapatkan gula-gula. 1092 00:50:06,372 --> 00:50:07,698 >> PENONTON: Ya! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE PERBUALAN] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI PENG: Juga, ya, Saya akan mula membuang gula-gula 1096 00:50:18,100 --> 00:50:20,280 pada orang yang tidak menjawab soalan. 1097 00:50:20,280 --> 00:50:22,260 Jadi, anda perlu semua soalan jawapan. 1098 00:50:22,260 --> 00:50:24,895 Atau, saya rasa orang yang jangan menjawab soalan. 1099 00:50:24,895 --> 00:50:26,070 Ya, cara lain di seluruh. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE PERBUALAN] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 PENONTON: [didengar] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI PENG: Ya. 1105 00:51:18,340 --> 00:51:19,340 Yeah. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE PERBUALAN] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Baiklah, guys. 1109 00:51:41,590 --> 00:51:44,731 Mengambil, seperti, 10 lagi saat. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE PERBUALAN] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> OK, guys. 1113 00:52:11,750 --> 00:52:14,920 Jadi sebelum kita mula cuba untuk sebenarnya fizikal menulis kod, 1114 00:52:14,920 --> 00:52:20,650 tabiat yang baik untuk membangunkan ialah kita mahu jenis pertama sebab 1115 00:52:20,650 --> 00:52:22,737 keluar secara logik bagaimana kita akan melakukannya. 1116 00:52:22,737 --> 00:52:24,570 Anda ingin memastikan, sebelum anda secara fizikal 1117 00:52:24,570 --> 00:52:27,210 mula cuba untuk kod di Mario, yang anda buat 1118 00:52:27,210 --> 00:52:28,870 memastikan bahawa anda mempunyai kod pseudo anda. 1119 00:52:28,870 --> 00:52:31,235 Yang membawa anda melalui apa yang anda perlu buat begitu 1120 00:52:31,235 --> 00:52:33,360 itu, apabila anda secara fizikal menulis program anda kemudian, 1121 00:52:33,360 --> 00:52:36,640 anda lebih baik dapat menangkap kesilapan kod dan perkara-perkara seperti itu anda. 1122 00:52:36,640 --> 00:52:40,460 >> Oleh itu, kita akan hanya mula oleh- dalam bahasa Inggeris, dalam kod pseudo, 1123 00:52:40,460 --> 00:52:43,320 adakah sesiapa yang mahu memberi saya penjelasan yang generik 1124 00:52:43,320 --> 00:52:46,250 bagaimana kita akan pergi tentang melakukan ini? 1125 00:52:46,250 --> 00:52:48,102 Yeah. 1126 00:52:48,102 --> 00:52:49,664 >> PENONTON: [didengar]. 1127 00:52:49,664 --> 00:52:50,830 ANDI PENG: Pasti, tidak ada kebimbangan. 1128 00:52:50,830 --> 00:52:57,233 PENONTON: Bolehkah anda bertanya kepada atau meminta seseorang untuk mendapatkan tali 1-- yeah, tali, 1129 00:52:57,233 --> 00:52:58,160 dan then-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI PENG: Ya, jadi ini adalah permulaan yang baik. 1131 00:52:59,826 --> 00:53:01,972 Saya akan mula menaip, maaf, seperti yang anda bercakap. 1132 00:53:01,972 --> 00:53:02,471 So-- 1133 00:53:02,471 --> 00:53:05,698 >> PENONTON: huruf kecil --Di nombor-nombor yang lebih tinggi, bukan? 1134 00:53:05,698 --> 00:53:08,519 Atau huruf kecil mempunyai jumlah yang tinggi? 1135 00:53:08,519 --> 00:53:09,310 ANDI PENG: Tepat sekali. 1136 00:53:09,310 --> 00:53:16,156 PENONTON: Sebab itu kita tolak 32 dari apa sahaja [didengar]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI PENG: Great. 1139 00:53:29,870 --> 00:53:35,020 Oleh itu, kita jenis mempunyai pengertian umum bagaimana untuk bekerja kira-kira masalah ini. 1140 00:53:35,020 --> 00:53:40,060 Mengetahui bahawa kita telah jenis belajar cara fizikal yang tali 1141 00:53:40,060 --> 00:53:43,320 disimpan dalam ingatan, apa yang anda sudah 1142 00:53:43,320 --> 00:53:45,920 tahu bahawa anda akan mungkin perlu menulis dalam kod anda 1143 00:53:45,920 --> 00:53:48,288 untuk bergerak melalui tali? 1144 00:53:48,288 --> 00:53:49,259 >> PENONTON: Untuk gelung. 1145 00:53:49,259 --> 00:53:50,550 ANDI PENG: A untuk gelung, betul-betul. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Yang besar. 1148 00:53:57,220 --> 00:54:00,539 Oleh itu, kita jenis mempunyai generik pseudokod diturunkan 1149 00:54:00,539 --> 00:54:02,330 yang jenis memberi anda catatan dalam bagaimana anda 1150 00:54:02,330 --> 00:54:03,900 akan bergerak menyelesaikan masalah ini. 1151 00:54:03,900 --> 00:54:06,150 Sekarang bahawa anda mempunyai ini, anda boleh rujukan untuk masa lain 1152 00:54:06,150 --> 00:54:08,233 apabila anda cuba untuk benar-benar menulis kod anda. 1153 00:54:08,233 --> 00:54:10,240 Oleh itu, kita sebenarnya boleh pergi di sini. 1154 00:54:10,240 --> 00:54:25,130 Dan saya telah mendapat fungsi yang dipanggil upper.c-- ada ia is-- hanya template kosong 1155 00:54:25,130 --> 00:54:28,510 sekarang bahawa anda semua akan membantu saya memikirkan bagaimana untuk menulis 1156 00:54:28,510 --> 00:54:30,430 baris ini tidak code-- baris kod. 1157 00:54:30,430 --> 00:54:32,890 Ia akan menjadi banyak baris kod. 1158 00:54:32,890 --> 00:54:35,710 >> Apabila memulakan apa-apa jenis daripada pset kosong, apa yang 1159 00:54:35,710 --> 00:54:37,418 perkara pertama yang saya perlu ingat untuk melakukan? 1160 00:54:37,418 --> 00:54:39,290 >> PENONTON: [didengar]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI PENG: Great Ya. 1162 00:54:41,000 --> 00:54:41,500 Termasuk. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Sering kali ini adalah di kalangan kesilapan orang yang paling mudah 1166 00:54:49,640 --> 00:54:51,598 akan membuat apabila mereka menulis, adalah bahawa mereka akan 1167 00:54:51,598 --> 00:54:54,180 lupa untuk memasukkan perpustakaan penting yang mereka perlukan. 1168 00:54:54,180 --> 00:54:57,689 Jadi, jika ia waktu pejabat dan anda seperti, Saya tidak tahu mengapa kod saya tidak berfungsi. 1169 00:54:57,689 --> 00:54:59,230 Bolehkah anda beritahu saya mengapa ia tidak berfungsi? 1170 00:54:59,230 --> 00:55:00,730 Kami akan mengatakan adakah anda # include? 1171 00:55:00,730 --> 00:55:02,520 Anda harus # include ia. 1172 00:55:02,520 --> 00:55:03,270 OKAY. 1173 00:55:03,270 --> 00:55:07,230 >> Jadi kami mempunyai standard I / O di sini. 1174 00:55:07,230 --> 00:55:10,740 Adakah itu satu-satunya perpustakaan kita akan perlukan di sini? 1175 00:55:10,740 --> 00:55:12,681 Apa lagi yang kita akan lakukan? 1176 00:55:12,681 --> 00:55:13,180 Maaf. 1177 00:55:13,180 --> 00:55:14,562 Seseorang hanya menjerit itu? 1178 00:55:14,562 --> 00:55:15,666 >> PENONTON: [didengar]. 1179 00:55:15,666 --> 00:55:16,666 ANDI PENG: Terdapat anda pergi. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 OKAY. 1182 00:55:21,440 --> 00:55:26,070 Dan bagaimana saya pergi tentang memulakan apa-apa jenis fungsi, apa-apa jenis fungsi utama 1183 00:55:26,070 --> 00:55:28,760 dalam program kami? 1184 00:55:28,760 --> 00:55:30,020 Int utama. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 OKAY. 1187 00:55:35,030 --> 00:55:35,970 Apa yang saya diletakkan di dalam sini? 1188 00:55:35,970 --> 00:55:37,640 Apakah perkara pertama yang anda mahu lakukan? 1189 00:55:37,640 --> 00:55:39,910 Jika kita ingin mendapatkan rentetan daripada pengguna, 1190 00:55:39,910 --> 00:55:43,870 apa yang kita akan mempunyai yang perlu dilakukan pada baris pertama ini? 1191 00:55:43,870 --> 00:55:46,120 Maaf, anda semua hanya berasa bebas untuk bersuara dan kuat. 1192 00:55:46,120 --> 00:55:47,123 Hanya melaungkan apa sahaja. 1193 00:55:47,123 --> 00:55:48,772 >> PENONTON: Minta pengguna? 1194 00:55:48,772 --> 00:55:49,980 ANDI PENG: Bagaimanakah kita boleh berbuat demikian? 1195 00:55:49,980 --> 00:55:51,873 Ask-- aku akan menaip "meminta pengguna"? 1196 00:55:51,873 --> 00:55:52,600 >> PENONTON: Printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI PENG: OK. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Apa yang saya mahu untuk printf? 1200 00:55:57,372 --> 00:55:58,776 >> PENONTON: Taip sesuatu. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI PENG: Seperti itu? 1203 00:56:03,840 --> 00:56:05,430 Guys, berpura-pura seperti saya komputer. 1204 00:56:05,430 --> 00:56:08,475 Secara fizikal beritahu saya setiap langkah bahawa saya perlu menaip di sini? 1205 00:56:08,475 --> 00:56:09,600 Adakah saya melakukan sesuatu yang salah? 1206 00:56:09,600 --> 00:56:10,743 Sekiranya saya sudah menaip sesuatu? 1207 00:56:10,743 --> 00:56:11,690 >> PENONTON: Anda perlu sebut harga. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI PENG: Saya memerlukan sebut harga? 1209 00:56:12,380 --> 00:56:12,880 OKAY. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 OKAY. 1212 00:56:16,297 --> 00:56:17,698 >> PENONTON: Dan garis kemudian baru. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Koma bertitik. 1215 00:56:22,465 --> 00:56:23,340 ANDI PENG: koma bernoktah? 1216 00:56:23,340 --> 00:56:24,060 OKAY. 1217 00:56:24,060 --> 00:56:24,560 Yang baik. 1218 00:56:24,560 --> 00:56:27,060 >> PENONTON: Dan mungkin menentukan yang anda mahu dalam huruf kecil? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI PENG: Great. 1221 00:56:31,415 --> 00:56:33,540 Kalian ketawakan saya lupa untuk meletakkan koma bernoktah. 1222 00:56:33,540 --> 00:56:36,350 Saya jamin anda di suatu tempat dalam perjalanan kelas ini, 1223 00:56:36,350 --> 00:56:38,260 anda akan lupa untuk meletakkan koma bertitik, dan ia 1224 00:56:38,260 --> 00:56:41,116 akan membawa anda tiga jam untuk memikirkan mengapa kod anda tidak berfungsi. 1225 00:56:41,116 --> 00:56:42,240 Ia berlaku kepada kita semua. 1226 00:56:42,240 --> 00:56:43,950 Ia mungkin akan berlaku kepada anda. 1227 00:56:43,950 --> 00:56:46,352 Dapatkan dalam tabiat yang baik dengan menggunakan koma bertitik. 1228 00:56:46,352 --> 00:56:46,852 OKAY. 1229 00:56:46,852 --> 00:56:49,010 >> PENONTON: Adakah anda ingin untuk melakukan garis sendeng terbalik di dalam? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI PENG: Pasti. 1231 00:56:50,398 --> 00:56:51,856 Adakah anda mahu lakukan garis sendeng terbalik di dalam? 1232 00:56:51,856 --> 00:56:53,020 >> PENONTON: Ya. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI PENG: Great. 1234 00:56:54,330 --> 00:56:54,830 OKAY. 1235 00:56:54,830 --> 00:56:57,872 Apa yang perlu saya lakukan seterusnya? 1236 00:56:57,872 --> 00:56:58,964 >> PENONTON: Dapatkan tali. 1237 00:56:58,964 --> 00:56:59,880 ANDI PENG: Dapatkan tali. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Jadi, apa yang saya menaip? 1240 00:57:03,830 --> 00:57:04,233 Seseorang? 1241 00:57:04,233 --> 00:57:05,040 >> PENONTON: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI PENG: String s. 1243 00:57:05,873 --> 00:57:07,251 PENONTON: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI PENG: Somebody, anda boleh beritahu saya di mana 1245 00:57:09,000 --> 00:57:12,000 fungsi GetString ini adalah datang dari? 1246 00:57:12,000 --> 00:57:13,660 >> PENONTON: string.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI PENG: string.h? 1248 00:57:15,256 --> 00:57:16,715 Anda fikir ia adalah dari string.h? 1249 00:57:16,715 --> 00:57:17,830 >> PENONTON: [didengar]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI PENG: Terdapat anda pergi. 1251 00:57:18,830 --> 00:57:21,280 Ia dari CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Jika anda sentiasa keliru di mana satu Fail perpustakaan adalah atau fail header adalah, 1253 00:57:24,530 --> 00:57:28,450 google secara literal string.h, dan saya akan memberitahu anda 1254 00:57:28,450 --> 00:57:30,450 apakah semua fungsi yang berada dalam string.h. 1255 00:57:30,450 --> 00:57:31,340 OKAY. 1256 00:57:31,340 --> 00:57:35,210 >> Jadi sekarang bahawa saya telah mencipta tali dan saya telah meminta pengguna untuk itu, 1257 00:57:35,210 --> 00:57:38,770 Saya telah disimpan dalam pembolehubah bernama s, apa yang perlu saya buat sekarang? 1258 00:57:38,770 --> 00:57:40,652 >> PENONTON: Semak jika ia dalam huruf kecil. 1259 00:57:40,652 --> 00:57:41,360 ANDI PENG: Maaf? 1260 00:57:41,360 --> 00:57:42,545 PENONTON: Semak jika ia dalam huruf kecil. 1261 00:57:42,545 --> 00:57:44,045 ANDI PENG: Baiklah, mari kita buat itu. 1262 00:57:44,045 --> 00:57:45,857 Bagaimana saya boleh berbuat demikian? 1263 00:57:45,857 --> 00:57:47,940 Sebenarnya, bagi maksud kelas sekarang, 1264 00:57:47,940 --> 00:57:50,330 kita hanya akan menganggap semua yang 1265 00:57:50,330 --> 00:57:52,620 bahawa input kita sudah dalam huruf kecil. 1266 00:57:52,620 --> 00:57:55,430 Jika anda mahu untuk memeriksa, anda akan hanya tambah kenyataan bersyarat 1267 00:57:55,430 --> 00:57:59,640 yang diperiksa, yang berlari melalui setiap elemen pelbagai tunggal 1268 00:57:59,640 --> 00:58:02,540 dan ditanda jika ia antara nilai-nilai tertentu. 1269 00:58:02,540 --> 00:58:05,627 Saya terlupa apa jumlah daripada nilai-nilai huruf kecil berada. 1270 00:58:05,627 --> 00:58:07,210 Anda boleh melihat ia di atas meja ASCII. 1271 00:58:07,210 --> 00:58:08,800 Tetapi yeah, itu adalah satu titik benar-benar baik. 1272 00:58:08,800 --> 00:58:11,758 Tetapi sekarang, kita hanya akan menganggap bahawa semua tali kita input 1273 00:58:11,758 --> 00:58:13,130 berada di dalam huruf kecil. 1274 00:58:13,130 --> 00:58:13,870 OKAY. 1275 00:58:13,870 --> 00:58:18,069 >> Jadi bagaimana saya akan pergi tentang masalah ini akan datang? 1276 00:58:18,069 --> 00:58:18,860 PENONTON: Untuk gelung. 1277 00:58:18,860 --> 00:58:19,340 ANDI PENG: Untuk gelung? 1278 00:58:19,340 --> 00:58:19,839 OKAY. 1279 00:58:19,839 --> 00:58:20,847 Beritahu saya apa yang perlu menaip. 1280 00:58:20,847 --> 00:58:25,230 >> PENONTON: Untuk int i sama dengan 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI PENG: OK. 1282 00:58:27,230 --> 00:58:36,350 >> PENONTON: Oh, sebenarnya, maka anda melakukan koma dan melakukan n bersamaan strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI PENG: perkara itu penting yang saya rasa dia perasan di sini 1284 00:58:38,940 --> 00:58:42,936 adalah bahawa kita tidak perlu mengatakan int n kali kedua kita lakukan ini. 1285 00:58:42,936 --> 00:58:45,060 Hanya tahu bahawa dalam untuk gelung apabila anda mengisytiharkan, 1286 00:58:45,060 --> 00:58:47,934 anda sebenarnya tidak memerlukan int daripada kali kedua yang anda lakukan pembolehubah. 1287 00:58:47,934 --> 00:58:51,202 Anda boleh mengatakan n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> PENONTON: Of s. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI PENG: s. 1290 00:58:53,510 --> 00:58:54,706 OKAY. 1291 00:58:54,706 --> 00:58:58,370 >> PENONTON: Kemudian koma bernoktah. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI PENG: Pasti. 1293 00:59:00,130 --> 00:59:04,050 >> PENONTON: Kemudian [didengar] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Kemudian saya ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI PENG: Great. 1297 00:59:11,780 --> 00:59:12,280 Baiklah. 1298 00:59:12,280 --> 00:59:14,690 Apa yang kita mahu di dalam ini untuk gelung sekarang? 1299 00:59:14,690 --> 00:59:17,820 Ingat, jika kita akan berjalan melalui rentetan dan berjalan melalui pelbagai, 1300 00:59:17,820 --> 00:59:19,287 kita mahu untuk memeriksa perkara di dalamnya. 1301 00:59:19,287 --> 00:59:20,370 Apa yang kita akan perlukan? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Ini adalah jenis bahagian yang agak rumit sekarang. 1304 00:59:26,900 --> 00:59:27,960 Sesiapa yang mempunyai tekaan? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> OKAY. 1307 00:59:34,690 --> 00:59:37,830 Jadi pertama, bagaimana kita walaupun mengakses? 1308 00:59:37,830 --> 00:59:41,610 Bagaimana kita walaupun cek pertama atau mengakses elemen dalam array? 1309 00:59:41,610 --> 00:59:42,920 Bagaimana kita berbuat demikian? 1310 00:59:42,920 --> 00:59:47,120 Apa yang notasi yang kita gunakan untuk berbuat demikian? 1311 00:59:47,120 --> 00:59:50,920 Apa nama array ini dipanggil? 1312 00:59:50,920 --> 00:59:52,400 Ia dipanggil s, bukan? 1313 00:59:52,400 --> 00:59:54,850 >> Ingat, apa-apa tali sentiasa array. 1314 00:59:54,850 --> 00:59:58,210 Jadi s kurungan i, kan? 1315 00:59:58,210 --> 01:00:01,360 Kerana itu adalah nilai semasa atau nilai indeks kita memeriksa. 1316 01:00:01,360 --> 01:00:05,156 Dan kita akan menetapkan bahawa sama supaya- kita mahu nilai huruf kecil, bukan? 1317 01:00:05,156 --> 01:00:07,530 Kami mahu menghidupkan yang lower-- maaf, kami mahu huruf besar yang. 1318 01:00:07,530 --> 01:00:10,014 Kami mahu menghidupkan huruf kecil nilai ke dalam huruf besar yang. 1319 01:00:10,014 --> 01:00:11,805 Dan sebagainya like-- Saya minta maaf, apa nama awak? 1320 01:00:11,805 --> 01:00:12,580 >> PENONTON: Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI PENG: Maaf? 1322 01:00:12,940 --> 01:00:13,280 >> PENONTON: Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI PENG: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Seperti Heidi berkata pada mulanya, kami mungkin 1325 01:00:15,850 --> 01:00:20,330 akan memerlukan the-- kami mungkin akan perlu tolak 1326 01:00:20,330 --> 01:00:22,630 32 dari apa sahaja charc iaitu, bukan? 1327 01:00:22,630 --> 01:00:24,680 Kerana pada ASCII yang meja, perbezaan 1328 01:00:24,680 --> 01:00:27,790 antara huruf kecil dan huruf besar adalah 32. 1329 01:00:27,790 --> 01:00:31,290 Oleh itu, apabila kita lakukan ini, kami mungkin akan mahu tolak 32, bukan? 1330 01:00:31,290 --> 01:00:33,910 >> Oleh itu, kita akan melakukan s i. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Adakah semua orang faham kenapa saya berbuat demikian? 1333 01:00:41,200 --> 01:00:45,760 Kerana sekarang, dalam pelbagai kami, kita memeriksa indeks 0, bukan? 1334 01:00:45,760 --> 01:00:49,190 Dan dalam indeks 0 daripada tali, itulah watak yang pertama. 1335 01:00:49,190 --> 01:00:51,820 Dan watak yang kita akan untuk menganggap ia kecil. 1336 01:00:51,820 --> 01:00:55,980 Jika kita mahu menjadikannya huruf besar, kita perlu tolak 32 daripada nilainya, 1337 01:00:55,980 --> 01:00:58,620 kerana dalam ASCII kami meja, itulah bagaimana kita mendapatkannya 1338 01:00:58,620 --> 01:01:01,600 ke depan sepadan nilai yang menjadikan ia huruf besar. 1339 01:01:01,600 --> 01:01:03,714 Adakah semua orang memahami bahawa? 1340 01:01:03,714 --> 01:01:04,213 Yeah. 1341 01:01:04,213 --> 01:01:06,530 >> PENONTON: Bolehkah anda juga jangan huruf kecil minus-- yang 1342 01:01:06,530 --> 01:01:08,080 >> ANDI PENG: Ya, supaya sebenarnya benar-benar baik. 1343 01:01:08,080 --> 01:01:10,455 Saya akan kembali kepada itu soalan selepas kita melakukan ini. 1344 01:01:10,455 --> 01:01:11,060 Yeah. 1345 01:01:11,060 --> 01:01:13,940 Dan kemudian jika saya mahu melihat apa yang berlaku, 1346 01:01:13,940 --> 01:01:16,180 Saya mungkin akan mahu cetak, bukan? 1347 01:01:16,180 --> 01:01:19,930 Seseorang memberitahu saya apa Saya ingin mencetak di sini. 1348 01:01:19,930 --> 01:01:29,160 >> PENONTON: printf peratus c garis sendeng terbalik [didengar]. 1349 01:01:29,160 --> 01:01:33,570 Itulah nilai [didengar] s i. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI PENG: s i, maaf? 1351 01:01:34,614 --> 01:01:35,530 PENONTON: [didengar]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI PENG: Saya tidak tahu. 1354 01:01:39,550 --> 01:01:40,600 Apa pendapat kamu? 1355 01:01:40,600 --> 01:01:44,016 >> PENONTON: Baiklah, saya wouldn't-- Saya rasa saya tidak akan bring-- 1356 01:01:44,016 --> 01:01:46,944 Saya akan mengambil ia keluar di dalam, kerana [didengar]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI PENG: Oh, yang dapat kamu lakukan itu? 1359 01:01:51,392 --> 01:01:53,867 PENONTON: Ya. 1360 01:01:53,867 --> 01:01:56,700 ANDI PENG: Mari kita meninggalkan dengan cara yang ia adalah, dan saya akan menjelaskan mengapa kemudian. 1361 01:01:56,700 --> 01:01:58,533 Ingat, walaupun anda mempunyai pemegang tempat, 1362 01:01:58,533 --> 01:02:00,701 anda ingin meletakkan kurungan di sekitarnya. 1363 01:02:00,701 --> 01:02:01,200 Baiklah. 1364 01:02:01,200 --> 01:02:04,810 Jadi ini harus menjadi fungsi yang kukuh di sini. 1365 01:02:04,810 --> 01:02:06,370 Mari kita berjalan dan lihat jika ia menyusun. 1366 01:02:06,370 --> 01:02:08,750 Membuat atas. 1367 01:02:08,750 --> 01:02:09,250 Uh-oh. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 Yang tidak kelihatan terlalu baik. 1370 01:02:13,340 --> 01:02:14,507 Kenapa ini berlaku? 1371 01:02:14,507 --> 01:02:17,340 Seperti mana-mana kesilapan, anda mahu pergi kembali dan bermula dengan yang pertama, 1372 01:02:17,340 --> 01:02:20,630 kerana biasanya sebab-sebab satu kesilapan banyak kesilapan lain selepas itu. 1373 01:02:20,630 --> 01:02:26,700 Di sini kita melihat upper.c: 18: 25, yang memberitahu saya dalam program ini dinamakan upper.c, 1374 01:02:26,700 --> 01:02:33,800 pada baris 18, kesilapan tersirat mengisytiharkan perpustakaan fungsi strlen dengan jenis 1375 01:02:33,800 --> 01:02:36,330 blah unassigned--, saya tidak tahu apa yang berlaku selepas itu. 1376 01:02:36,330 --> 01:02:39,990 >> Semua ia memberitahu saya sekarang sedang sesuatu perkara yang berlaku di strlen itu. 1377 01:02:39,990 --> 01:02:43,520 Dan komputer keliru, kerana ia seperti, saya tidak tahu apa yang strlen adalah? 1378 01:02:43,520 --> 01:02:45,520 Apakah yang mungkin memberitahu anda anda hilang? 1379 01:02:45,520 --> 01:02:46,490 >> PENONTON: Anda hilang [didengar]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI PENG: Anda betul. 1381 01:02:47,630 --> 01:02:49,510 Tepat sekali. 1382 01:02:49,510 --> 01:02:52,140 Jadi ini adalah di mana ia penting untuk memastikan 1383 01:02:52,140 --> 01:02:56,970 bahawa setiap fungsi yang anda gunakan dalam anda kod ini mempunyai header yang betul 1384 01:02:56,970 --> 01:02:59,660 memfailkan perpustakaan, atau pun anda akan mendapat banyak kesilapan 1385 01:02:59,660 --> 01:03:01,150 dan kod anda tidak akan untuk mengetahui apa yang sedang berlaku. 1386 01:03:01,150 --> 01:03:03,050 Jadi, kita akan termasuk string.h sini. 1387 01:03:03,050 --> 01:03:06,270 >> Sekarang apabila kita cuba untuk menyusun atas. 1388 01:03:06,270 --> 01:03:08,410 Menyusun dengan betul. 1389 01:03:08,410 --> 01:03:09,960 Mari kita menjalankan program ini. 1390 01:03:09,960 --> 01:03:12,000 Jadi menaip sesuatu dalam huruf kecil. 1391 01:03:12,000 --> 01:03:14,920 Apa yang anda semua mahu menaip? 1392 01:03:14,920 --> 01:03:16,546 Melaungkan sesuatu. 1393 01:03:16,546 --> 01:03:17,920 Baiklah, Charly hanya berjalan masuk. 1394 01:03:17,920 --> 01:03:18,990 Kami akan menaip nama Charly. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly dalam huruf kecil. 1397 01:03:22,840 --> 01:03:27,742 Dan mudah-mudahan, mudah-mudahan, ini adalah akan melaungkan dan meludah keluar 1398 01:03:27,742 --> 01:03:28,575 Charly dalam huruf besar. 1399 01:03:28,575 --> 01:03:30,830 Yay! 1400 01:03:30,830 --> 01:03:33,430 tidak semua orang memahami bagaimana Saya pergi tentang menyelesaikan itu? 1401 01:03:33,430 --> 01:03:36,190 Cara yang saya boleh memanipulasi menggunakan integer 1402 01:03:36,190 --> 01:03:39,410 untuk menyelesaikan sesuatu yang Saya mahu lakukan dalam tali, 1403 01:03:39,410 --> 01:03:44,390 kerana watak-watak dan integer boleh dirujuk dengan cara yang sama kerana 1404 01:03:44,390 --> 01:03:45,540 pemetaan ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> Jadi untuk kembali ke tempat anda, jika saya mahu meletakkan di sini dan bukannya 32 1406 01:03:52,890 --> 01:03:58,959 huruf besar A tolak huruf kecil yang sama seperti itu, yang akan bekerja sama juga, 1407 01:03:58,959 --> 01:04:01,750 kerana itulah hanya sekadar yang Perbezaan antara kedua-dua nilai. 1408 01:04:01,750 --> 01:04:09,570 Jika saya ingin charly again-- ini. 1409 01:04:09,570 --> 01:04:10,320 Oh tidak. 1410 01:04:10,320 --> 01:04:11,820 Saya rasa kita pergi dengan cara yang salah, ya? 1411 01:04:11,820 --> 01:04:13,260 >> PENONTON: [didengar] huruf kecil a. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI PENG: Terdapat anda pergi. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Ya. 1415 01:04:22,880 --> 01:04:24,920 Dan dari memuntahkannya charly. 1416 01:04:24,920 --> 01:04:28,020 Jadi berhati-hati apabila anda menolak nilai-nilai 1417 01:04:28,020 --> 01:04:30,400 ingat yang mana satu lebih besar dari yang lain. 1418 01:04:30,400 --> 01:04:35,220 Sebagai contoh, di sini saya terlupa yang kecil yang sebenarnya 1419 01:04:35,220 --> 01:04:38,540 lebih besar daripada A. huruf besar itu, apabila saya cuba tolak mereka dengan cara yang lain 1420 01:04:38,540 --> 01:04:40,600 sekeliling, saya mendapat negatif 32. 1421 01:04:40,600 --> 01:04:42,800 Dan komputer saya adalah seperti, Saya tidak tahu apa itu. 1422 01:04:42,800 --> 01:04:45,810 Ia kebarangkalian hanya beberapa rawak nilai yang tidak begitu baik. 1423 01:04:45,810 --> 01:04:48,760 Dan jadi pastikan bahawa anda menolak panjang yang betul 1424 01:04:48,760 --> 01:04:52,831 untuk mencari aksara yang anda mahu. 1425 01:04:52,831 --> 01:04:53,330 OKAY. 1426 01:04:53,330 --> 01:04:58,550 Adakah sesiapa yang keliru tentang bagaimana kami pergi tentang menulis fungsi ini? 1427 01:04:58,550 --> 01:04:59,180 OKAY. 1428 01:04:59,180 --> 01:05:04,830 Jadi sebenarnya, fungsi yang sudah wujud dalam ctype.h perpustakaan dipanggil. 1429 01:05:04,830 --> 01:05:06,417 Perpustakaan yang dikenali sebagai ctype.h. 1430 01:05:06,417 --> 01:05:08,500 Fungsi ini sebenarnya adalah telah ditulis untuk anda. 1431 01:05:08,500 --> 01:05:10,820 Ia dipanggil ke atas. 1432 01:05:10,820 --> 01:05:13,027 >> Dan sebagainya untuk tujuan Serangga ini, anda akan 1433 01:05:13,027 --> 01:05:15,860 untuk mendapati bahawa anda benar-benar mahu menggunakan banyak fungsi-fungsi terkandung 1434 01:05:15,860 --> 01:05:17,390 dalam perpustakaan ctype itu. 1435 01:05:17,390 --> 01:05:21,040 Untuk bahagian atas, yang lebih rendah, adalah atas, adalah lower-- mereka adalah semua fungsi 1436 01:05:21,040 --> 01:05:24,914 bahawa anda akan dapat menggunakan yang sangat, sangat cepat dalam kod anda sendiri yang 1437 01:05:24,914 --> 01:05:26,080 betul-betul apa ini tidak. 1438 01:05:26,080 --> 01:05:28,941 Kami menulis bagaimana untuk menukar rentetan kepada huruf besar. 1439 01:05:28,941 --> 01:05:31,440 Tetapi ini adalah benar-benar kod di bahawa orang lain telah menulis 1440 01:05:31,440 --> 01:05:33,800 dan bahawa anda boleh mengakses melalui fungsi yang berbeza. 1441 01:05:33,800 --> 01:05:34,300 Ya? 1442 01:05:34,300 --> 01:05:39,570 >> PENONTON: Jadi, anda hanya menyalin A di sana dan melakukannya untuk setiap huruf tunggal? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI PENG: Ya, kerana saya tidak mengambil berat tentang nilai a. 1444 01:05:42,070 --> 01:05:44,540 Saya hanya peduli bahawa perbezaan di antara mereka adalah 32, bukan? 1445 01:05:44,540 --> 01:05:48,210 Perbezaan antara huruf kecil b dan huruf besar B juga 32. 1446 01:05:48,210 --> 01:05:50,860 Dan perbezaan antara c dan huruf besar C sentiasa 32. 1447 01:05:50,860 --> 01:05:53,235 >> Saya hanya perlu mengambil berat tentang Perbezaan antara kedua-dua, 1448 01:05:53,235 --> 01:05:56,666 kerana semua surat-surat mengikuti pola yang sama, bukan? 1449 01:05:56,666 --> 01:05:58,540 Jika saya mempunyai perbezaan antara salah seorang daripada mereka, 1450 01:05:58,540 --> 01:06:01,050 Saya tahu apa perbezaan antara semua daripada mereka adalah. 1451 01:06:01,050 --> 01:06:01,740 Soalan yang baik. 1452 01:06:01,740 --> 01:06:04,090 Yeah. 1453 01:06:04,090 --> 01:06:06,660 Semua orang yang baik? 1454 01:06:06,660 --> 01:06:09,080 OKAY. 1455 01:06:09,080 --> 01:06:09,580 Oop. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> OKAY. 1458 01:06:15,270 --> 01:06:20,310 Jadi satu lagi konsep itu akan menjadi sangat berguna kerana anda 1459 01:06:20,310 --> 01:06:22,570 terus membangunkan kod anda adalah idea ini 1460 01:06:22,570 --> 01:06:25,430 mewujudkan fungsi atau abstrak. 1461 01:06:25,430 --> 01:06:28,479 Jadi sekarang, kita semua telah diambil algebra. 1462 01:06:28,479 --> 01:06:31,770 Dalam algebra, anda diajar bahawa terdapat Perkara ini dipanggil fungsi 1463 01:06:31,770 --> 01:06:35,300 mesin, di mana jika anda input satu jenis nombor, 1464 01:06:35,300 --> 01:06:38,720 ia berjalan melalui fungsi ini dan keluar timbul output yang berbeza, bukan? 1465 01:06:38,720 --> 01:06:42,220 Dalam kod, perkara yang sama berlaku dalam apa-apa jenis fungsi. 1466 01:06:42,220 --> 01:06:48,230 >> Jadi saya boleh secara fizikal menulis dalam badan saya kod saya 1467 01:06:48,230 --> 01:06:52,357 kenyataan utama yang sebenarnya tidak apa sahaja mayat kod di lakukan. 1468 01:06:52,357 --> 01:06:54,940 Tetapi di luar itu, saya juga boleh menulis fungsi yang berbeza 1469 01:06:54,940 --> 01:06:56,320 yang melakukan banyak perkara yang berbeza. 1470 01:06:56,320 --> 01:06:58,570 Sebagai contoh, kami telah pun mula menggunakan sebahagian daripada mereka. 1471 01:06:58,570 --> 01:07:00,610 Printf-- yang merupakan fungsi yang orang lain 1472 01:07:00,610 --> 01:07:02,870 telah menulis bahawa kita boleh memanggil kod kami. 1473 01:07:02,870 --> 01:07:05,410 Untuk upper-- dalam kes ini, upper-- adalah fungsi yang lain 1474 01:07:05,410 --> 01:07:07,330 kami telah menulis bahawa kita boleh memanggil kod kami. 1475 01:07:07,330 --> 01:07:09,520 Oleh itu, saya rasa mengapa kami juga mempunyai fungsi? 1476 01:07:09,520 --> 01:07:12,100 Apa kata kita hanya mencebur ia semua dalam baris yang sama kod? 1477 01:07:12,100 --> 01:07:13,730 Ia menjadikannya mudah untuk semua orang. 1478 01:07:13,730 --> 01:07:19,200 >> Well, maka falsafah yang adalah, pertama sekali, organisasi. 1479 01:07:19,200 --> 01:07:21,880 Ia benar-benar menjengkelkan akan melalui kod seseorang itu 1480 01:07:21,880 --> 01:07:25,110 dan satu fungsi seperti printf. 1481 01:07:25,110 --> 01:07:28,570 Jika anda semua benar-benar tahu apa yang fungsi printf melibatkan menulis, 1482 01:07:28,570 --> 01:07:30,530 itu, seperti, 1000 baris kod. 1483 01:07:30,530 --> 01:07:32,357 >> Jika setiap kali saya mahu printf sesuatu, 1484 01:07:32,357 --> 01:07:35,440 Saya terpaksa menulis 1,000 baris kod, yang akan menjadi benar-benar menjengkelkan untuk membaca, 1485 01:07:35,440 --> 01:07:36,290 bukan? 1486 01:07:36,290 --> 01:07:38,860 Sebab itu kita baru sahaja dicipta fungsi abstrak ini 1487 01:07:38,860 --> 01:07:41,670 yang kita ada pun seseorang lagi yang telah menulis di tempat lain. 1488 01:07:41,670 --> 01:07:44,920 Dan setiap kali kita perlu menggunakannya dalam kod kita, kita hanya perlu untuk mengatakan printf. 1489 01:07:44,920 --> 01:07:48,070 Dan yang mampu untuk menggunakan fungsi orang lain telah menulis kod kami. 1490 01:07:48,070 --> 01:07:51,020 Ia menjadikannya lebih mudah organisasi untuk membaca kod. 1491 01:07:51,020 --> 01:07:53,460 >> Kedua, ia memudahkan. 1492 01:07:53,460 --> 01:07:56,750 Ia memudahkan langkah-langkah yang kita ada yang perlu diambil untuk menyelesaikan masalah kita. 1493 01:07:56,750 --> 01:07:59,300 Printf, fungsi seperti printf, fungsi seperti ke atas 1494 01:07:59,300 --> 01:08:03,560 segala sesuatu yang membolehkan kita untuk memudahkan kod kami ke bawah supaya ia lebih mudah. 1495 01:08:03,560 --> 01:08:05,830 Dan perkara terakhir yang boleh gunapakai. 1496 01:08:05,830 --> 01:08:08,710 >> Jadi hakikat yang kita ada yang printf fungsi dipanggil 1497 01:08:08,710 --> 01:08:11,990 yang kita boleh memanggil yang berbeza masa dan membolehkan ia menjadi boleh diguna semula. 1498 01:08:11,990 --> 01:08:14,980 Jika saya menulis printf, Saya hanya menulis sekali. 1499 01:08:14,980 --> 01:08:16,439 Ia wujud hanya dalam satu tempat itu. 1500 01:08:16,439 --> 01:08:19,890 Jika saya mahu melakukannya sekali lagi, saya akan perlu copy dan paste semua itu 1501 01:08:19,890 --> 01:08:21,760 ke dalam talian kedua saya kod. 1502 01:08:21,760 --> 01:08:24,880 Itulah sebabnya jika kita mewujudkan fungsi yang wujud di luar utama kami, 1503 01:08:24,880 --> 01:08:26,880 kita hanya boleh memanggil dan menggunakan semula bila-bila masa 1504 01:08:26,880 --> 01:08:29,604 kita perlu supaya ia lebih mudah bagi kami kerana program untuk menulis. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Jadi cara yang kita benar-benar akan menulis fungsi yang hampir sama, bukan? 1507 01:08:35,549 --> 01:08:37,590 Ini adalah jenis yang pertama contoh di mana kita akan 1508 01:08:37,590 --> 01:08:42,830 melihat fungsi mengambil pada gaya berbeza daripada tidak sah utama int kami. 1509 01:08:42,830 --> 01:08:46,779 Dalam kes ini, jika saya mahu menulis fungsi yang dipanggil q, bukan? 1510 01:08:46,779 --> 01:08:49,370 >> Dan nilai int di sini adalah semua memberitahu saya, 1511 01:08:49,370 --> 01:08:51,649 apa yang saya mahu ini berfungsi untuk kembali kepada saya? 1512 01:08:51,649 --> 01:08:54,484 Jika saya mahu kiub integer, Saya akan mahu input. 1513 01:08:54,484 --> 01:08:55,525 Ini adalah parameter. 1514 01:08:55,525 --> 01:08:58,490 Saya akan input bernilai jenis int. 1515 01:08:58,490 --> 01:09:01,300 Dan saya akan kembali satu lagi nilai jenis int. 1516 01:09:01,300 --> 01:09:03,050 Dan di sini, kerana anda boleh lihat, semua yang saya lakukan 1517 01:09:03,050 --> 01:09:07,300 adalah cubing apa-apa input saya ialah sebagai output saya dan mengembalikannya. 1518 01:09:07,300 --> 01:09:10,790 >> Jadi semua fungsi ini tidak adalah mengambil beberapa jenis integer. 1519 01:09:10,790 --> 01:09:14,979 Ia membiak dengan sendirinya dua kali supaya ia kiub berkuat kuasa. 1520 01:09:14,979 --> 01:09:17,729 Dan kemudian ia mengembalikan apa sahaja output yang. 1521 01:09:17,729 --> 01:09:20,540 Jadi dalam kes ini, ia adalah dua baris kod yang kita terpaksa menulis tambahan. 1522 01:09:20,540 --> 01:09:22,880 Tetapi jika kita mahu memanggil apabila ini beberapa kali, 1523 01:09:22,880 --> 01:09:26,210 ia lebih mudah untuk menaip satu yang talian di sini yang dalam kiub daripada 1524 01:09:26,210 --> 01:09:28,830 perlu melalui beberapa kali. 1525 01:09:28,830 --> 01:09:34,180 >> Jadi cara yang pada dasarnya apa-apa pemformatan untuk apa-apa jenis fungsi 1526 01:09:34,180 --> 01:09:36,420 akan wujud adalah seperti di sini. 1527 01:09:36,420 --> 01:09:38,659 Oleh itu, kita mempunyai nama fungsi. 1528 01:09:38,659 --> 01:09:39,950 Dalam kes ini, ia dipanggil kuasa tiga. 1529 01:09:39,950 --> 01:09:42,033 Dan kita sebut sahaja kiub kerana ia adalah mudah untuk diingati. 1530 01:09:42,033 --> 01:09:44,220 Anda boleh menamakan ia persegi dan ia benar-benar boleh cubed. 1531 01:09:44,220 --> 01:09:45,500 Tidak mengapa. 1532 01:09:45,500 --> 01:09:48,020 Hanya nama yang anda berada memberikan fungsi anda. 1533 01:09:48,020 --> 01:09:51,660 >> Hak ini di sini, int, adalah jenis parameter yang anda perlukan. 1534 01:09:51,660 --> 01:09:54,149 Jadi apakah fungsi ini perlukan untuk beroperasi? 1535 01:09:54,149 --> 01:09:55,990 Nah, ia memerlukan input. 1536 01:09:55,990 --> 01:09:56,704 Saya menamakannya input. 1537 01:09:56,704 --> 01:09:58,120 Anda boleh menamakan apa sahaja yang anda mahu. 1538 01:09:58,120 --> 01:10:00,500 Tetapi saya memerlukan sesuatu jenis int. 1539 01:10:00,500 --> 01:10:03,730 Ia akan benar-benar melaksanakan apa yang ada di dalam dari sini, 1540 01:10:03,730 --> 01:10:04,990 badan fungsi. 1541 01:10:04,990 --> 01:10:07,847 Dan kemudian jenis pulangan di sini, int-- ini 1542 01:10:07,847 --> 01:10:09,680 semua ia memberitahu saya adalah fungsi ini 1543 01:10:09,680 --> 01:10:11,250 akan kembali kepada saya dalam int. 1544 01:10:11,250 --> 01:10:14,460 Jadi ia akan ke luar int, dan ia akan memberikan anda kembali int. 1545 01:10:14,460 --> 01:10:17,750 Adakah semua orang memahami bagaimana format seperti ini berfungsi? 1546 01:10:17,750 --> 01:10:18,250 Sejuk. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> OKAY. 1549 01:10:25,740 --> 01:10:31,770 Jadi jangan bimbang jika ini seolah-olah hak abstrak sedikit sekarang. 1550 01:10:31,770 --> 01:10:33,450 Ini adalah sesuatu yang kita akan bercakap tentang. 1551 01:10:33,450 --> 01:10:36,310 Kami akan menyelam lebih dalam kemudian di dalam kursus ini. 1552 01:10:36,310 --> 01:10:41,170 Cara bahawa apa-apa jenis tahap yang lebih tinggi abstraksi ini kerja perkara 1553 01:10:41,170 --> 01:10:43,530 adalah bahawa, dalam ingatan, dalam komputer anda, segala-galanya 1554 01:10:43,530 --> 01:10:47,660 disimpan dalam jenis ini timbunan, hendaklah yang saya katakan. 1555 01:10:47,660 --> 01:10:49,070 >> Jadi di sana di bahagian atas. 1556 01:10:49,070 --> 01:10:50,861 Saya tidak tahu jika anda semua boleh melihat bahawa juga. 1557 01:10:50,861 --> 01:10:52,590 Saya akan cuba untuk zum masuk. 1558 01:10:52,590 --> 01:10:55,111 Di sini, di bahagian atas, kita mempunyai teks fizikal 1559 01:10:55,111 --> 01:10:57,860 apa komputer adalah interpreting-- semua sifar dan orang-orang yang 1560 01:10:57,860 --> 01:10:59,540 wujud dalam komputer kita. 1561 01:10:59,540 --> 01:11:03,390 Dan kemudian kami yang dimulakan data dan tidak diisytiharkan data, 1562 01:11:03,390 --> 01:11:05,340 apa yang kita panggil pembolehubah global. 1563 01:11:05,340 --> 01:11:08,200 Jadi pembolehubah yang wujud di semua program 1564 01:11:08,200 --> 01:11:11,815 dan merentasi keseluruhan anda, pada dasarnya, kod. 1565 01:11:11,815 --> 01:11:13,940 Jangan bimbang jika anda semua jenis tidak jelas mengenai perkara ini. 1566 01:11:13,940 --> 01:11:16,060 Ia tidak benar-benar perkara sekarang. 1567 01:11:16,060 --> 01:11:18,680 >> Dan kemudian kita mempunyai apa yang dipanggil timbunan dalam timbunan. 1568 01:11:18,680 --> 01:11:21,140 Fikirkan timbunan secara literal sebagai seperti timbunan perkara, 1569 01:11:21,140 --> 01:11:23,098 timbunan berbeza perkara yang ditolak di atas 1570 01:11:23,098 --> 01:11:27,870 antara satu sama lain yang menyimpan pelbagai pembolehubah dan sintaks dalam kod anda. 1571 01:11:27,870 --> 01:11:31,460 Dan maka di sini di bahagian paling bawah, kita mempunyai pembolehubah persekitaran 1572 01:11:31,460 --> 01:11:35,480 daripada apa yang anda melaksanakan dalam hanya talian kecil anda kod. 1573 01:11:35,480 --> 01:11:40,510 >> Dan kami hanya akan zum dalam di pihak timbunan yang sebenar. 1574 01:11:40,510 --> 01:11:43,880 Jadi di sini, jika kita untuk zum dalam pada hanya kawasan ini tindanan, 1575 01:11:43,880 --> 01:11:45,140 ini adalah apa yang kelihatan seperti. 1576 01:11:45,140 --> 01:11:48,590 Dan ini sebenarnya cukup penting apabila kamu bercakap tentang fungsi, 1577 01:11:48,590 --> 01:11:52,330 kerana notis bahawa memori komputer anda 1578 01:11:52,330 --> 01:11:55,600 adalah menyimpan pembolehubah dan fungsi-fungsi 1579 01:11:55,600 --> 01:11:58,790 dan parameter kedua-dua anda fungsi dan pembolehubah utama anda 1580 01:11:58,790 --> 01:12:00,190 di tempat-tempat yang berbeza. 1581 01:12:00,190 --> 01:12:03,390 >> Jadi sekarang, utama adalah fungsi sebenar 1582 01:12:03,390 --> 01:12:04,780 bahawa anda melaksanakan dalam kod. 1583 01:12:04,780 --> 01:12:08,050 Anda telah parameternya disimpan di sini dan pembolehubah tempatan disimpan di sini. 1584 01:12:08,050 --> 01:12:12,270 Pembolehubah tempatan hanya bermakna apa-apa ubah yang wujud hanya dalam fungsi itu. 1585 01:12:12,270 --> 01:12:15,610 Dan di atas, anda mempunyai ini fungsi berasingan yang dipanggil kuasa tiga. 1586 01:12:15,610 --> 01:12:18,240 Anda perlu itulah parameter serta orang-orang penduduk tempatan. 1587 01:12:18,240 --> 01:12:21,540 >> Dan sebab yang anda boleh lihat di sini ialah apa yang 1588 01:12:21,540 --> 01:12:25,030 berlaku apabila kiub mengambil dalam nilai daripada fungsi utama anda 1589 01:12:25,030 --> 01:12:27,640 adalah bahawa sebenarnya ia menyalin bahawa lebih. 1590 01:12:27,640 --> 01:12:31,470 Jadi, jika saya mahu kiub 2 dan kembali 8, yang 2 1591 01:12:31,470 --> 01:12:33,730 sebenarnya diinput sebagai parameter dan ia 1592 01:12:33,730 --> 01:12:37,690 disalin supaya anda mempunyai ia sedia ada di dua tempat yang berbeza dalam ingatan. 1593 01:12:37,690 --> 01:12:40,520 Dan anda perlu berhati-hati pada mengingat yang salah seorang daripada mereka 1594 01:12:40,520 --> 01:12:42,520 anda sebenarnya memanipulasi. 1595 01:12:42,520 --> 01:12:47,170 Dan satu contoh apa yang berlaku yang akan sangat, sangat buruk 1596 01:12:47,170 --> 01:12:48,050 wujud di sini. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Jadi di sini, saya peroleh, dalam teori, program di sini, fungsi utama 1599 01:12:58,650 --> 01:13:02,180 bahawa saya mengisytiharkan int x sama dengan 1. 1600 01:13:02,180 --> 01:13:04,505 Saya mengisytiharkan int lain y bersamaan 2. 1601 01:13:04,505 --> 01:13:06,380 Dan kemudian saya berjalan ia melalui fungsi ini 1602 01:13:06,380 --> 01:13:09,647 dipanggil pertukaran, di mana saya menganggap bahawa ia bertukar-tukar dua nilai. 1603 01:13:09,647 --> 01:13:11,480 Dan kemudian saya akan mencetak mereka keluar, kan? 1604 01:13:11,480 --> 01:13:13,220 Itulah yang saya mahu program ini perlu dilakukan. 1605 01:13:13,220 --> 01:13:15,180 >> Jadi mari kita turun dan membaca. 1606 01:13:15,180 --> 01:13:18,200 Jadi, jika saya benar-benar menulis yang berbeza fungsi, seperti yang anda lihat, 1607 01:13:18,200 --> 01:13:19,750 kita mempunyai fungsi utama kami di sini. 1608 01:13:19,750 --> 01:13:22,860 Dan kemudian kita mempunyai kami Fungsi kedua di sini. 1609 01:13:22,860 --> 01:13:24,520 Swap tidak sah. 1610 01:13:24,520 --> 01:13:27,090 Tidak sah hanya bermakna bahawa itu tidak akan kembali apa-apa. 1611 01:13:27,090 --> 01:13:28,930 Nama berfungsi dipanggil swap, dan ia 1612 01:13:28,930 --> 01:13:33,730 akan pengambilan dua pembolehubah, int dan int b, dari [didengar] fungsi anda. 1613 01:13:33,730 --> 01:13:39,010 >> Jadi pada asasnya di sini, kami lulus x dan y ke dalam fungsi ini. 1614 01:13:39,010 --> 01:13:40,760 Dan jika kita mewujudkan this-- jadi kami mahu 1615 01:13:40,760 --> 01:13:42,420 untuk mewujudkan nilai sementara, bukan? 1616 01:13:42,420 --> 01:13:43,930 Kami akan memberikan yang a. 1617 01:13:43,930 --> 01:13:45,388 Dan kemudian akan kini sama b. 1618 01:13:45,388 --> 01:13:47,660 Dan b akan kembali di mana nilai temp adalah, 1619 01:13:47,660 --> 01:13:51,070 yang merupakan, kerana apabila anda mahu untuk menukar perkara, 1620 01:13:51,070 --> 01:13:52,320 anda tidak boleh hanya suka menukar mereka. 1621 01:13:52,320 --> 01:13:54,360 >> Anda perlu menjaga satu daripada di sini supaya ia ingat 1622 01:13:54,360 --> 01:13:56,485 apa itu, kerana sekali anda menukar satu, anda lupa 1623 01:13:56,485 --> 01:13:58,200 apa yang nilai asal, bukan? 1624 01:13:58,200 --> 01:14:00,990 Jadi dalam teori, program ini harus bekerja, bukan? 1625 01:14:00,990 --> 01:14:03,630 Jika saya mahu menukar seorang, maka mereka perlu menukar. 1626 01:14:03,630 --> 01:14:05,490 Jadi mari kita berjalan dan melihat jika ia berfungsi. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Jadi seperti yang anda semua boleh lihat, x pernah 1 dan y pernah 2. 1629 01:14:16,940 --> 01:14:21,475 Dan jika saya mencetak, x masih 1 dan y ialah 2. 1630 01:14:21,475 --> 01:14:25,970 Hmm, program ini tidak seolah-olah menjadi kerja-cara yang saya mahu ia berfungsi. 1631 01:14:25,970 --> 01:14:29,950 Adakah sesiapa yang mahu mengambil pukulan pada meneka mengapa ini berlaku? 1632 01:14:29,950 --> 01:14:34,430 Ia mempunyai kaitan dengan cara barang-barang yang berbeza 1633 01:14:34,430 --> 01:14:38,172 disimpan di tempat yang berbeza dalam ingatan. 1634 01:14:38,172 --> 01:14:39,377 >> OKAY. 1635 01:14:39,377 --> 01:14:41,960 Jadi anda semua tidak perlu bimbang terlalu banyak tentang ini sekarang. 1636 01:14:41,960 --> 01:14:46,610 Tetapi tahu bahawa kiub yang tempatan pembolehubah adalah a dan b, 1637 01:14:46,610 --> 01:14:49,230 kerana di sini dalam fungsi kami, kami telah diisytiharkan a dan b 1638 01:14:49,230 --> 01:14:53,570 sebagai pemboleh ubah yang wujud dalam kiub, fungsi itu. 1639 01:14:53,570 --> 01:14:59,490 Tetapi seperti yang anda boleh lihat, parameter yang ia mengambil dalam sedang disimpan di sini. 1640 01:14:59,490 --> 01:15:01,370 Tetapi kita tidak sebenarnya kembali apa-apa. 1641 01:15:01,370 --> 01:15:03,120 Kami sebenarnya tidak berubah x dan y. 1642 01:15:03,120 --> 01:15:04,440 Kami hanya menukar a dan b. 1643 01:15:04,440 --> 01:15:08,340 >> Kami telah disalin x dan y ke dalam sesuatu yang dinamakan a dan b. 1644 01:15:08,340 --> 01:15:11,092 Tetapi kita tidak pernah benar-benar dimanipulasi x dan y diri mereka sendiri. 1645 01:15:11,092 --> 01:15:12,800 Adakah anda semua melihat bagaimana yang yang berlaku? 1646 01:15:12,800 --> 01:15:16,140 Adalah bahawa kita telah hanya disalin ke atas, tetapi kita tidak benar-benar disimpan 1647 01:15:16,140 --> 01:15:18,030 mengesan di mana mereka berada dalam ingatan. 1648 01:15:18,030 --> 01:15:20,127 >> Dan sehingga kini komputer sedang, oh, saya telah 1649 01:15:20,127 --> 01:15:21,960 menjalankan perkara ini melalui ini fungsi yang indah. 1650 01:15:21,960 --> 01:15:23,690 Tetapi x dan y masih x dan y. 1651 01:15:23,690 --> 01:15:26,240 Tiada apa-apa yang berlaku kepada mereka kerana fakta 1652 01:15:26,240 --> 01:15:28,340 bahawa orang-parameter dan pembolehubah tempatan 1653 01:15:28,340 --> 01:15:30,150 disimpan dalam yang berbeza meletakkan dalam ingatan. 1654 01:15:30,150 --> 01:15:32,030 Dan ini adalah peringkat yang lebih tinggi-a konsep yang kita akan 1655 01:15:32,030 --> 01:15:34,300 mula melihat di kemudian hari dalam perjalanan. 1656 01:15:34,300 --> 01:15:36,950 Tetapi hanya tahu bahawa ini adalah satu masalah yang boleh berlaku 1657 01:15:36,950 --> 01:15:41,400 dan kita akan memikirkan jalan bagaimana untuk berurusan dengan ini di kemudian hari dalam perjalanan. 1658 01:15:41,400 --> 01:15:41,900 OKAY. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 Baiklah. 1661 01:15:48,250 --> 01:15:51,780 Jadi konsep terakhir kami benar-benar akan meliputi 1662 01:15:51,780 --> 01:15:53,880 yang akan menjadi berguna untuk pset minggu ini 1663 01:15:53,880 --> 01:15:56,060 adalah apa yang dipanggil hujah baris arahan. 1664 01:15:56,060 --> 01:16:00,820 Jadi Rob dalam syarahannya telah melalui sejenis secara ringkas bagaimana kerja ini. 1665 01:16:00,820 --> 01:16:02,770 Pada dasarnya tahu bahawa apabila anda menulis 1666 01:16:02,770 --> 01:16:06,280 seperti fungsi utama, apabila kita menulis fungsi sebelum pada masa lalu, 1667 01:16:06,280 --> 01:16:07,804 kami mempunyai kekosongan utama int. 1668 01:16:07,804 --> 01:16:10,470 Dan sebab itu kami terpaksa tidak sah di sana kerana program kami tidak 1669 01:16:10,470 --> 01:16:12,520 perlu nilai input untuk berlari, bukan? 1670 01:16:12,520 --> 01:16:16,020 Apabila saya berlari Mario, saya tidak perlu untuk benar-benar hanya menaip sesuatu 1671 01:16:16,020 --> 01:16:16,970 apabila saya berlari Mario. 1672 01:16:16,970 --> 01:16:20,170 Saya boleh meminta pengguna di kemudian hari. 1673 01:16:20,170 --> 01:16:22,450 Tetapi itu tidak akan sentiasa menjadi kes itu. 1674 01:16:22,450 --> 01:16:24,980 >> Sebagai contoh, dalam hal ini masalah minggu ini menetapkan, 1675 01:16:24,980 --> 01:16:28,365 anda akan diminta bahawa, Selain menjalankan program anda, 1676 01:16:28,365 --> 01:16:30,990 anda akan mahu untuk input perkara-perkara tertentu dalam lurus seperti yang anda 1677 01:16:30,990 --> 01:16:32,050 menjalankan program anda. 1678 01:16:32,050 --> 01:16:34,720 Jadi cara kita melakukan yang dipanggil hujah baris arahan, yang 1679 01:16:34,720 --> 01:16:37,280 adalah seperti hujah anda boleh memasukkan secara terus 1680 01:16:37,280 --> 01:16:39,260 seperti yang anda sedang cuba untuk menjalankan program anda. 1681 01:16:39,260 --> 01:16:44,680 >> Jadi notasi untuk ini, ia agak kompleks yang berpandangan, 1682 01:16:44,680 --> 01:16:47,320 tetapi ia benar-benar tidak bahawa sukar. Jadi int main-- 1683 01:16:47,320 --> 01:16:48,910 itu hanya fungsi utama anda. 1684 01:16:48,910 --> 01:16:52,110 Ke argc koma kurungan tali argv. 1685 01:16:52,110 --> 01:16:56,040 Jadi semua itu katakan ialah ini int argc-- semua yang memberitahu anda 1686 01:16:56,040 --> 01:17:00,560 adalah bahawa mereka adalah jumlah hujah-hujah komputer patut harapkan. 1687 01:17:00,560 --> 01:17:03,130 >> Jadi satu perkara yang benar-benar penting untuk mengesan 1688 01:17:03,130 --> 01:17:07,080 adalah nama yang fizikal program anda tuduhan sebagai salah satu hujah. 1689 01:17:07,080 --> 01:17:11,080 Jadi, jika saya mahu mempunyai program saya menjalankan tambah satu baris arahan tambahan 1690 01:17:11,080 --> 01:17:13,310 hujah, saya sebenarnya akan mempunyai dua. 1691 01:17:13,310 --> 01:17:15,080 Argc sebenarnya akan menjadi dua. 1692 01:17:15,080 --> 01:17:18,010 Dan kemudian rentetan argv bracket-- semua yang lakukan, 1693 01:17:18,010 --> 01:17:20,410 ia memberi saya satu pelbagai rentetan itulah 1694 01:17:20,410 --> 01:17:24,870 akan hanya memaparkan dan menyimpan apa semua orang-orang hujah baris arahan berada. 1695 01:17:24,870 --> 01:17:34,090 >> Jadi, sebagai contoh, jika saya mahu untuk mempunyai ini program, ./copy infile outfile, bukan? 1696 01:17:34,090 --> 01:17:37,330 Itu hanya arahan Linux biasa. 1697 01:17:37,330 --> 01:17:38,830 Apa yang sebenarnya adalah argc? 1698 01:17:38,830 --> 01:17:41,320 Berapa banyak hujah baris arahan berada di sana benar-benar dalam perkara ini? 1699 01:17:41,320 --> 01:17:45,130 Semua ini dilakukan adalah membuat salinan yang infile daripada nama satu fail 1700 01:17:45,130 --> 01:17:47,070 dan salinan ke dalam fail lain, bukan? 1701 01:17:47,070 --> 01:17:48,700 Itu semua ini lakukan. 1702 01:17:48,700 --> 01:17:53,080 Seperti yang anda lihat, saya melakukannya dalam satu baris tanpa benar-benar memerlukan program ini. 1703 01:17:53,080 --> 01:17:55,380 >> Apakah argc kami dalam kes ini? 1704 01:17:55,380 --> 01:17:58,968 Berapa banyak hujah-hujah yang kita ada? 1705 01:17:58,968 --> 01:17:59,634 PENONTON: Tiga? 1706 01:17:59,634 --> 01:18:01,200 ANDI PENG: Kami mempunyai tiga, betul-betul. 1707 01:18:01,200 --> 01:18:05,030 Jadi ia amat intuitif untuk hanya berfikir bahawa ia hanya 1708 01:18:05,030 --> 01:18:06,290 yang infile dan outfile itu. 1709 01:18:06,290 --> 01:18:10,190 Tetapi tahu bahawa nama fizikal program anda menjalankan tuduhan sebagai satu. 1710 01:18:10,190 --> 01:18:13,220 Jadi dalam kes ini, argc sebenarnya tiga. 1711 01:18:13,220 --> 01:18:15,860 Bagaimana pula, apa yang argv 0? 1712 01:18:15,860 --> 01:18:18,180 Ingat, semua hujah baris arahan 1713 01:18:18,180 --> 01:18:20,500 disimpan dalam pelbagai tali. 1714 01:18:20,500 --> 01:18:24,140 Jadi, jika saya cuba untuk mengaksesnya, apa akan argv kurungan 0 memberi saya? 1715 01:18:24,140 --> 01:18:25,364 >> PENONTON: [didengar]. 1716 01:18:25,364 --> 01:18:26,155 ANDI PENG: Tepat sekali. 1717 01:18:26,155 --> 01:18:28,550 Ia akan memberi saya titik mengurangkan salinan, kerana itulah 1718 01:18:28,550 --> 01:18:31,070 unsur 0, yang Elemen pertama array saya. 1719 01:18:31,070 --> 01:18:33,236 Bagaimana pula argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> PENONTON: Infile. 1721 01:18:33,945 --> 01:18:35,070 ANDI PENG: Infile, betul-betul. 1722 01:18:35,070 --> 01:18:36,272 Bagaimana pula argv 2? 1723 01:18:36,272 --> 01:18:37,022 PENONTON: Outfile. 1724 01:18:37,022 --> 01:18:38,190 ANDI PENG: Outfile. 1725 01:18:38,190 --> 01:18:39,290 Ini adalah agak sukar sekarang. 1726 01:18:39,290 --> 01:18:42,630 Apa yang anda semua berfikir argv 3 akan dapat memberi saya 1727 01:18:42,630 --> 01:18:45,522 jika saya cuba untuk mencetak yang keluar? 1728 01:18:45,522 --> 01:18:48,260 >> PENONTON: [didengar]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI PENG: Adakah anda mempunyai tangan sehingga? 1730 01:18:50,164 --> 01:18:50,663 Yeah. 1731 01:18:50,663 --> 01:18:51,550 >> PENONTON: Satu alternatif. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI PENG: Tepat sekali. 1733 01:18:52,341 --> 01:18:55,440 Jadi ingat dalam kuliah yang kita mempunyai pada akhir sesuatu bangsa 1734 01:18:55,440 --> 01:18:56,640 dipanggil terminator null? 1735 01:18:56,640 --> 01:18:58,890 Kami akan masuk ke dalam ini juga lanjut dalam kelas. 1736 01:18:58,890 --> 01:19:02,472 Tetapi tahu bahawa dalam notasi, cara komputer anda 1737 01:19:02,472 --> 01:19:04,430 tahu bahawa itu akhirnya array adalah bahawa ia 1738 01:19:04,430 --> 01:19:07,310 meletakkan sesuatu yang dinamakan null yang terminator atau sengkang sifar. 1739 01:19:07,310 --> 01:19:12,047 >> Jadi, jika anda cuba untuk mengakses argv 3, anda akan melanda dash ini 0. 1740 01:19:12,047 --> 01:19:13,630 Ini adalah lebih daripada satu soalan helah. 1741 01:19:13,630 --> 01:19:17,020 Bagaimana pula argv 4? 1742 01:19:17,020 --> 01:19:20,920 Jadi ini adalah terminator null lalu, lalu batas-batas pelbagai kami. 1743 01:19:20,920 --> 01:19:24,380 Apa yang anda fikir akan berlaku apabila kita cuba untuk berbuat demikian? 1744 01:19:24,380 --> 01:19:25,842 >> PENONTON: [didengar]? 1745 01:19:25,842 --> 01:19:26,550 ANDI PENG: Maaf? 1746 01:19:26,550 --> 01:19:28,025 Mengatakan bahawa sedikit lebih kuat? 1747 01:19:28,025 --> 01:19:29,086 >> PENONTON: [didengar]. 1748 01:19:29,086 --> 01:19:29,710 ANDI PENG: Ya. 1749 01:19:29,710 --> 01:19:32,420 Itulah nama kawasan anda kemungkinan besar akan mendapat. 1750 01:19:32,420 --> 01:19:36,610 Tetapi tahu argv yang 4-- yang membolehkan anda untuk akses 1751 01:19:36,610 --> 01:19:38,610 tempat di komputer anda memori yang anda benar-benar 1752 01:19:38,610 --> 01:19:41,650 tidak boleh menyentuh, kerana sekarang anda tahu apa argv adalah. 1753 01:19:41,650 --> 01:19:46,220 Anda tahu bahawa ia adalah pelbagai saiz 3 yang mempunyai salinan dot, infile dan outfile. 1754 01:19:46,220 --> 01:19:50,200 >> Jika anda cuba untuk pergi sejauh lebih dari itu bahawa anda lalu terminator nol, 1755 01:19:50,200 --> 01:19:53,050 komputer anda mempunyai mungkin sesuatu yang disimpan di dalam argv 4. 1756 01:19:53,050 --> 01:19:55,790 Dan anda benar-benar tidak perlu dibenarkan akses ke dalam argv 4, 1757 01:19:55,790 --> 01:19:58,130 kerana anda mempunyai fail kabinet dan anda hanya 1758 01:19:58,130 --> 01:19:59,790 dibenarkan akses kepada ketiga-tiga rak. 1759 01:19:59,790 --> 01:20:02,870 Tetapi jika anda cuba untuk mencapai jalan di luar rak di mana anda dibenarkan, 1760 01:20:02,870 --> 01:20:04,930 anda akan mula bermain-main dengan perkara-perkara lain dalam memori komputer anda. 1761 01:20:04,930 --> 01:20:06,690 Itu akan menjadi benar-benar, benar-benar buruk. 1762 01:20:06,690 --> 01:20:07,440 Jadi hanya tahu bahawa. 1763 01:20:07,440 --> 01:20:10,370 Berhati-hati bahawa anda tidak hanya secara rawak mula 1764 01:20:10,370 --> 01:20:14,772 mengakses elemen dalam array yang tidak berada dalam apa yang anda hendak buat. 1765 01:20:14,772 --> 01:20:17,114 Ya. 1766 01:20:17,114 --> 01:20:18,430 >> OKAY. 1767 01:20:18,430 --> 01:20:26,360 Jadi, kita akan melakukan satu lagi contoh terminal di sini. 1768 01:20:26,360 --> 01:20:27,300 OKAY. 1769 01:20:27,300 --> 01:20:29,900 Jadi Rob cepat dalam kuliah hari yang lain pergi 1770 01:20:29,900 --> 01:20:35,040 melalui contoh ini, di mana beliau mempunyai int utama int argc rentetan argv 1771 01:20:35,040 --> 01:20:39,090 kurungan, yang memberitahu saya bahawa saya akan mempunyai hujah baris arahan. 1772 01:20:39,090 --> 01:20:41,860 >> Beliau mempunyai, jika argc sama sama 2-- ingat, 1773 01:20:41,860 --> 01:20:45,070 sama sama bermakna perbandingan. 1774 01:20:45,070 --> 01:20:47,980 Jika ia sama 2, maka saya akan mencetak hello, 1775 01:20:47,980 --> 01:20:51,190 apa sahaja yang pertama elemen array adalah. 1776 01:20:51,190 --> 01:20:54,100 Cetak yang lain, hello dunia. 1777 01:20:54,100 --> 01:20:56,300 Apakah ini akan berlaku pada dasarnya? 1778 01:20:56,300 --> 01:21:00,570 Bolehkah seseorang hanya menjelaskan secara Bahasa apa yang program ini lakukan? 1779 01:21:00,570 --> 01:21:01,272 Yeah. 1780 01:21:01,272 --> 01:21:08,160 >> PENONTON: Jika seseorang ditaip pada arahan dan berkata nama pertama dan terakhir mereka, 1781 01:21:08,160 --> 01:21:12,096 ia bukan sahaja akan mencetak pertama seseorang dan berkata, hello, 1782 01:21:12,096 --> 01:21:14,090 apa jua nama pertama anda. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI PENG: OK, mari kita menjalankannya. 1784 01:21:15,410 --> 01:21:22,470 Jadi, sebagai contoh, jika saya membuat fail ini membuat hello hello supaya- 1785 01:21:22,470 --> 01:21:24,500 supaya- apa yang anda mahu saya untuk input? 1786 01:21:24,500 --> 01:21:25,900 >> PENONTON: Pertama dan nama akhir. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI PENG: Pertama dan nama akhir? 1788 01:21:27,280 --> 01:21:28,180 Ruang? 1789 01:21:28,180 --> 01:21:29,690 >> PENONTON: Ya. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI PENG: Bolehkah seseorang beritahu saya sekarang, apakah argc? 1791 01:21:33,490 --> 01:21:35,630 Hanya di sana? 1792 01:21:35,630 --> 01:21:36,290 Oops, maaf. 1793 01:21:36,290 --> 01:21:37,920 Biar saya kembali. 1794 01:21:37,920 --> 01:21:40,740 Berapa banyak hujah baris arahan ialah- anda semua tidak boleh benar-benar melihat. 1795 01:21:40,740 --> 01:21:43,760 Tetapi saya akan cuba untuk zum masuk. 1796 01:21:43,760 --> 01:21:44,290 Saya sedang mencuba. 1797 01:21:44,290 --> 01:21:45,414 Ya, ada tiga, bukan? 1798 01:21:45,414 --> 01:21:48,750 Ia slash dot hello, ia Andi, dan ia Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Jadi, apa yang anda semua rasa ini program akan mencetak keluar? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Oh. 1802 01:21:56,060 --> 01:21:57,120 Oh maaf. 1803 01:21:57,120 --> 01:21:57,810 Nama salah. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 Ia mencetak, hello dunia. 1806 01:22:06,130 --> 01:22:09,603 Adakah sesiapa yang mahu menjelaskan mengapa yang yang berlaku? 1807 01:22:09,603 --> 01:22:10,103 Ya? 1808 01:22:10,103 --> 01:22:11,019 >> PENONTON: [didengar]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI PENG: Tepat sekali. 1811 01:22:15,230 --> 01:22:19,940 Jadi di sini, adalah bersyarat Iaitu, jika argc sama sama 2. 1812 01:22:19,940 --> 01:22:23,650 Jadi hanya dalam kes yang ada dua hujah baris arahan. 1813 01:22:23,650 --> 01:22:25,850 Kemudian saya akan mencetak, hello, apa sahaja. 1814 01:22:25,850 --> 01:22:28,210 Tetapi yang lain, saya akan mencetak adil, hello dunia. 1815 01:22:28,210 --> 01:22:30,040 Jadi adakah seseorang mahu untuk memberi saya contoh 1816 01:22:30,040 --> 01:22:35,050 bagaimana saya akan dapat benar-benar mendapatkan ia untuk mencetak nilai argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Apa yang perlu saya masukkan di sini? 1818 01:22:38,600 --> 01:22:39,840 Hanya satu perkara, bukan? 1819 01:22:39,840 --> 01:22:42,900 Kerana hello dot ke sudah tuduhan sebagai hujah pertama. 1820 01:22:42,900 --> 01:22:43,930 Saya hanya mempunyai satu lagi. 1821 01:22:43,930 --> 01:22:46,470 Jadi dot hello jika saya hanya melakukan Andi. 1822 01:22:46,470 --> 01:22:47,270 Hello, Andi. 1823 01:22:47,270 --> 01:22:49,186 Adakah semua orang faham mengapa yang yang berlaku? 1824 01:22:49,186 --> 01:22:49,602 Yeah. 1825 01:22:49,602 --> 01:22:52,500 >> PENONTON: Jadi ruang antara arahan garis ini-- adalah ia [didengar]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: No. 1828 01:22:56,830 --> 01:23:03,810 Jadi ruang dalam baris arahan hujah, x, untuk memberitahu komputer anda 1829 01:23:03,810 --> 01:23:06,820 bahawa ini adalah permulaan rentetan baru. 1830 01:23:06,820 --> 01:23:11,130 Jadi rentetan argv sini-- ia kedai segala perintah hujah baris anda 1831 01:23:11,130 --> 01:23:13,110 dalam tali. 1832 01:23:13,110 --> 01:23:17,420 Dan supaya ruang dalam baris arahan argument-- semua yang dilakukan adalah memberitahu anda, 1833 01:23:17,420 --> 01:23:21,030 ini adalah pada akhir satu rentetan dan sudah tiba masanya untuk beralih kepada yang lain. 1834 01:23:21,030 --> 01:23:21,990 >> Yeah. 1835 01:23:21,990 --> 01:23:23,530 Ini adalah cukup penting bagi Serangga anda, kerana anda 1836 01:23:23,530 --> 01:23:24,613 akan ujian ini. 1837 01:23:24,613 --> 01:23:29,300 Jadi adakah sesiapa yang mempunyai sebarang pertanyaan mengenai perkara ini? 1838 01:23:29,300 --> 01:23:30,016 OK, sejuk. 1839 01:23:30,016 --> 01:23:30,515 Ya? 1840 01:23:30,515 --> 01:23:35,008 >> PENONTON: Jadi anda sebab akan meletakkan integer hujah calc sebaliknya 1841 01:23:35,008 --> 01:23:40,059 [didengar] akan apabila anda mahu menaip maklumat tambahan kepada 1842 01:23:40,059 --> 01:23:41,030 [Didengar]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI PENG: Ya, betul-betul. 1844 01:23:42,090 --> 01:23:45,370 Beberapa program akan memerlukan anda kepada input hujah baris arahan 1845 01:23:45,370 --> 01:23:47,732 bahawa ia berlalu di dalam dan yang menggunakan itu. 1846 01:23:47,732 --> 01:23:49,035 Yeah. 1847 01:23:49,035 --> 01:23:50,410 PENONTON: Jadi apa jika [didengar]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI PENG: Sebenarnya, apa yang saya perlu untuk menukar kemudian dalam program saya? 1850 01:23:58,870 --> 01:23:59,870 >> PENONTON: Hanya 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI PENG: Kenapa yang berlaku, yang anda fikir? 1853 01:24:15,020 --> 01:24:18,940 >> PENONTON: Kerana [didengar]. 1854 01:24:18,940 --> 01:24:22,370 >> PENONTON: Anda harus menukar kepada 2 [didengar]. 1855 01:24:22,370 --> 01:24:23,484 >> PENONTON: 1 dan 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI PENG: 1 dan 2, betul-betul. 1857 01:24:24,650 --> 01:24:29,150 Jadi dalam kes ini, anda akan mungkin mahu ada dua printf statements-- 1858 01:24:29,150 --> 01:24:32,601 satu yang dicetak argv 1 dan salah satu yang dicetak argv 2. 1859 01:24:32,601 --> 01:24:33,100 Di sini. 1860 01:24:33,100 --> 01:24:34,516 Saya benar-benar boleh melakukan itu sangat cepat. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Itupun dia. 1863 01:24:47,320 --> 01:24:48,287 Oh. 1864 01:24:48,287 --> 01:24:49,370 Tidak cukup apa yang anda mahu. 1865 01:24:49,370 --> 01:24:52,590 Tetapi jika anda semua keadaan huru-hara di sekitar dengan memformat, ia akan keluar. 1866 01:24:52,590 --> 01:24:54,981 Yeah. 1867 01:24:54,981 --> 01:24:55,480 Sejuk. 1868 01:24:55,480 --> 01:24:57,670 Saya tahu kami agak kesuntukan masa. 1869 01:24:57,670 --> 01:25:02,469 Tetapi saya hanya akan menghabiskan dengan cepat yang beberapa minit melalui helpful-- 1870 01:25:02,469 --> 01:25:03,760 PENONTON: Anda mempunyai dua minit. 1871 01:25:03,760 --> 01:25:05,010 ANDI PENG: Saya mempunyai dua minit? 1872 01:25:05,010 --> 01:25:06,340 Terima kasih. 1873 01:25:06,340 --> 01:25:09,180 Beberapa tips pset cepat. 1874 01:25:09,180 --> 01:25:13,100 Jadi untuk pset ini, saya sangat mengesyorkan, seperti yang saya katakan, semua orang untuk membaca spesifikasi. 1875 01:25:13,100 --> 01:25:16,804 Anda akan menulis tiga satu programs-- dipanggil initials.c, satu dipanggil caesar.c, 1876 01:25:16,804 --> 01:25:17,720 satu dipanggil vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Beberapa tips penting yang anda semua benar-benar mahu 1879 01:25:22,340 --> 01:25:25,040 yang perlu mind-- supaya terdapat fungsi ini 1880 01:25:25,040 --> 01:25:27,770 dipanggil atoi-- kerana saya suka untuk mengatakan, trois a. 1881 01:25:27,770 --> 01:25:29,520 Tidak jelas jika itu sebenarnya bagaimana anda mengatakan ia. 1882 01:25:29,520 --> 01:25:32,510 Tetapi semua yang ia lakukan, ia memasukkan. 1883 01:25:32,510 --> 01:25:34,320 Ia menukar rentetan kepada int. 1884 01:25:34,320 --> 01:25:37,490 Jadi mewakili ASCII ke i integer. 1885 01:25:37,490 --> 01:25:40,310 Ia hanya menukarkan ASCII nilai kepada integer nilai. 1886 01:25:40,310 --> 01:25:44,510 Jadi ingat argv, array yang menyimpan semua arahan anda beratur arguments-- 1887 01:25:44,510 --> 01:25:46,300 ia menyimpan mereka semua sebagai tali. 1888 01:25:46,300 --> 01:25:50,010 Dan jadi jika anda mahu menjadi mampu untuk mempunyai salah seorang daripada mereka menjadi integer, 1889 01:25:50,010 --> 01:25:52,750 anda akan mempunyai untuk menggunakan nilai ini di sini. 1890 01:25:52,750 --> 01:25:56,690 >> Modulo, seperti yang kita dilindungi sebelum ini di dalam kelas hari ini, 1891 01:25:56,690 --> 01:25:59,550 membolehkan anda untuk mempunyai baki apa sahaja yang anda mempunyai. 1892 01:25:59,550 --> 01:26:03,620 Jadi, jika kita telah benar-benar, benar-benar jumlah yang besar di Caesar, 1893 01:26:03,620 --> 01:26:06,117 bagaimana jika kita ada akhirnya daripada rentetan Vigenere? 1894 01:26:06,117 --> 01:26:08,450 Bagaimana anda akan dapat untuk mendapatkan bahawa untuk membalut di sekitar? 1895 01:26:08,450 --> 01:26:11,330 Jika saya tekan z dan saya mahu ia kembali kepada, 1896 01:26:11,330 --> 01:26:13,650 bagaimana saya akan mendapat bahawa untuk membungkus? 1897 01:26:13,650 --> 01:26:15,960 Mungkin mahu menggunakan modulo di sana. 1898 01:26:15,960 --> 01:26:19,190 >> Kedua, melihat-lihat sekitar perpustakaan anda. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 Itulah perpustakaan baru yang kita ada. 1900 01:26:20,680 --> 01:26:25,270 Anda akan mendapati banyak benar-benar, benar-benar isupper functions-- berguna, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, tolower, isalpha, dan sebagainya. 1902 01:26:27,681 --> 01:26:30,680 Semua fungsi yang akan menjadi sangat berguna apabila anda cuba untuk memikirkan, 1903 01:26:30,680 --> 01:26:33,780 adalah watak ini huruf kecil? 1904 01:26:33,780 --> 01:26:35,730 Bagaimana saya boleh menukar ini tali untuk huruf besar yang? 1905 01:26:35,730 --> 01:26:38,146 Semuanya itu akan menjadi sangat, sangat berguna untuk pset anda. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 OKAY. 1908 01:26:45,500 --> 01:26:49,644 >> Waktu pejabat malam ini adalah 08:00 kepada 11:00 di dalam kelas TEAL esok 1909 01:26:49,644 --> 01:26:51,310 serta Rabu dan Khamis malam. 1910 01:26:51,310 --> 01:26:53,280 Waktu pejabat adalah dalam biasa. 1911 01:26:53,280 --> 01:26:56,180 Sangat menyarankan anda semua semua mula sekarang juga, 1912 01:26:56,180 --> 01:27:00,490 kerana anda tidak mahu menjadi kanak-kanak yang malam khamis mempunyai masalah 1913 01:27:00,490 --> 01:27:03,870 mengemukakan pset anda dan seperti, saya tidak tahu apa yang perlu dilakukan. 1914 01:27:03,870 --> 01:27:05,870 Saya mula, saya selesai, saya dikemukakan. 1915 01:27:05,870 --> 01:27:09,737 Cuba untuk memberi diri anda sedikit ruang, kerana dalam masalah kod sentiasa berlaku. 1916 01:27:09,737 --> 01:27:11,570 Anda ingin memastikan bahawa anda memberikan diri anda 1917 01:27:11,570 --> 01:27:14,810 banyak masa untuk dapat untuk melengkapkan psets. 1918 01:27:14,810 --> 01:27:15,310 Sejuk. 1919 01:27:15,310 --> 01:27:16,720 Saya akan berkeliaran di sini. 1920 01:27:16,720 --> 01:27:18,226 >> PENONTON: Adakah online ini sudah? 1921 01:27:18,226 --> 01:27:20,850 ANDI PENG: Saya tidak tahu jika ia talian sudah, tetapi ia akan menjadi. 1922 01:27:20,850 --> 01:27:23,500 Saya akan berkeliaran di sini jika sesiapa mempunyai apa-apa soalan sudah. 1923 01:27:23,500 --> 01:27:25,390 Terima kasih kerana datang. 1924 01:27:25,390 --> 01:27:27,105