1 00:00:00,000 --> 00:00:02,742 >> [MUSIC PLAYING] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI PENG: Ini adalah CS50, dan Selamat datang untuk minggu dua bagian. 4 00:00:09,090 --> 00:00:11,740 Ini sebenarnya sementara minggu dua class-- kami sebenarnya, 5 00:00:11,740 --> 00:00:14,550 minggu pertama kami sudah bagian. 6 00:00:14,550 --> 00:00:18,897 Menunjukkan tangan, berapa banyak dari Anda semua datang super seksi minggu lalu? 7 00:00:18,897 --> 00:00:19,480 OK, itu OK. 8 00:00:19,480 --> 00:00:20,020 Tidak apa-apa. 9 00:00:20,020 --> 00:00:23,110 Berapa banyak dari Anda menyaksikan Super Bagian minggu lalu? 10 00:00:23,110 --> 00:00:23,610 OKE. 11 00:00:23,610 --> 00:00:25,702 Dan kalian lakukan baik pada masalah menetapkan satu? 12 00:00:25,702 --> 00:00:28,660 Jadi aku akan mengambil bahwa kita memiliki sekelompok anak-anak benar-benar cerdas 13 00:00:28,660 --> 00:00:32,310 di kelas ini dan hal-hal akan baik-baik. 14 00:00:32,310 --> 00:00:33,180 OKE. 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, kami hanya akan sebentar pergi agenda untuk hari ini. 18 00:00:41,090 --> 00:00:42,700 Kita akan berbicara tentang kursus logistik. 19 00:00:42,700 --> 00:00:45,480 Banyak dari Anda mungkin memiliki pertanyaan tentang 20 00:00:45,480 --> 00:00:46,920 bagaimana hal-hal berjalan 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 Kita akan secara singkat pergi loop dalam kasus 23 00:00:49,730 --> 00:00:51,410 ada dari kalian merindukan Super bagian. 24 00:00:51,410 --> 00:00:53,240 Kita akan berbicara tentang pemetaan ASCII. 25 00:00:53,240 --> 00:00:56,180 Kita akan berbicara tentang array, fungsi, argumen baris perintah. 26 00:00:56,180 --> 00:01:00,210 Dan akhirnya, apa yang kalian mungkin semua benar-benar ingin berada di sini untuk belajar tentang, 27 00:01:00,210 --> 00:01:01,270 adalah pset2 Anda. 28 00:01:01,270 --> 00:01:04,209 Kami akan memiliki beberapa trik yang bagus dan tips untuk bagaimana untuk melakukan itu. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> OKE. 31 00:01:08,690 --> 00:01:11,450 Juga, kedua, kita memiliki banyak permen di sini. 32 00:01:11,450 --> 00:01:13,583 Siapa saja yang suka permen, hanya datang ke sini. 33 00:01:13,583 --> 00:01:14,430 Ambil beberapa. 34 00:01:14,430 --> 00:01:15,100 Saya memiliki banyak. 35 00:01:15,100 --> 00:01:16,390 Kami memiliki ton di kantor. 36 00:01:16,390 --> 00:01:18,230 Saya tidak benar-benar ingin makan permen sepanjang hari. 37 00:01:18,230 --> 00:01:20,300 Kalian harus makan semua permen, karena saya membawanya ke sini untuk kalian. 38 00:01:20,300 --> 00:01:20,990 Hanya makan permen. 39 00:01:20,990 --> 00:01:24,080 Akan ada permen setiap bagian. 40 00:01:24,080 --> 00:01:25,330 >> Jadi pertama, siapa 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 dari CS50 sini di Yale. 43 00:01:30,270 --> 00:01:32,540 Dan di samping itu, saya juga akan be-- 44 00:01:32,540 --> 00:01:35,600 jika ada orang yang like-- Anda berjalan teman, bahu Anda untuk menangis. 45 00:01:35,600 --> 00:01:39,140 Jika malam sebelumnya karena pset Anda, Anda tidak tahu apa yang terjadi, 46 00:01:39,140 --> 00:01:40,080 memukul saya. 47 00:01:40,080 --> 00:01:42,770 Kami akan simpati bersama-sama, dan lain-lain. 48 00:01:42,770 --> 00:01:46,100 Hanya tahu bahwa aku di sini sebagai sumber daya untuk Anda sebagai garis depan 49 00:01:46,100 --> 00:01:51,830 dalam membantu kalian mengetahui bagaimana untuk memecahkan masalah dalam CS50 dan seterusnya. 50 00:01:51,830 --> 00:01:54,590 >> Email saya adalah andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Saya juga akan mengirimkan seorang individu email dengan nomor telepon saya di dalamnya 52 00:01:58,390 --> 00:02:01,860 sehingga tidak semua orang pada internet dapat melihat nomor telepon saya. 53 00:02:01,860 --> 00:02:03,640 Jangan ragu untuk menghubungi saya kapan saja. 54 00:02:03,640 --> 00:02:07,510 Serius, telepon saya adalah biasanya menempel pada tangan saya. 55 00:02:07,510 --> 00:02:10,240 Saya mungkin tidak merespon dalam beberapa menit. 56 00:02:10,240 --> 00:02:11,984 Saya mungkin tidak merespon dalam beberapa jam. 57 00:02:11,984 --> 00:02:14,400 Tapi saya bisa menjamin Anda, jika Anda e-mail saya, jika Anda memanggil saya, 58 00:02:14,400 --> 00:02:17,404 teks saya, saya akan merespon dalam waktu 24 jam. 59 00:02:17,404 --> 00:02:19,820 Sering kali, saya akan merespon sebelum itu, karena saya mengerti 60 00:02:19,820 --> 00:02:23,900 bahwa setiap orang punya beberapa masalah, dan Anda ingin jawaban Anda 61 00:02:23,900 --> 00:02:26,110 harus dijawab dengan sangat cepat. 62 00:02:26,110 --> 00:02:28,945 >> Namun, jika Anda memanggil saya 30 menit sebelum 63 00:02:28,945 --> 00:02:31,570 potongan yang dirilis Kamis night-- seperti, Andi, membantu saya, 64 00:02:31,570 --> 00:02:35,380 Saya belum started-- saya dapat memberikan Anda bahu yang menangis di. 65 00:02:35,380 --> 00:02:41,520 Tapi mungkin sudah saatnya untuk berpikir tentang bagaimana tidak melakukan waktu berikutnya. 66 00:02:41,520 --> 00:02:44,040 OKE. 67 00:02:44,040 --> 00:02:44,944 Ups. 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, kami memiliki ton dukungan untuk semua orang. 71 00:02:52,310 --> 00:02:54,640 Selain hanya bagian di sini, yang Anda 72 00:02:54,640 --> 00:02:57,000 setiap minggu bisa menghabiskan 90 indah menit dengan saya, 73 00:02:57,000 --> 00:02:58,330 kami juga memiliki jam kantor. 74 00:02:58,330 --> 00:03:01,021 Berapa banyak dari kalian sudah berkunjung ke kantor jam untuk bantuan? 75 00:03:01,021 --> 00:03:01,520 Besar. 76 00:03:01,520 --> 00:03:05,700 Itu benar-benar baik untuk melihat, karena kami memiliki staf lebih dari 45 TA dan CA 77 00:03:05,700 --> 00:03:11,780 dilatih untuk kursus ini yang ada disini untuk membantu kalian dengan psets Anda. 78 00:03:11,780 --> 00:03:14,580 >> Senin mereka diadakan di TEAL yang kelas di 17 Hill House sini 79 00:03:14,580 --> 00:03:15,350 di Yale. 80 00:03:15,350 --> 00:03:17,349 Selasa dan Kamis, mereka diadakan di commons. 81 00:03:17,349 --> 00:03:20,010 8:00-11:00 cukup banyak setiap hari kerja. 82 00:03:20,010 --> 00:03:21,620 Datang, keluar. 83 00:03:21,620 --> 00:03:24,030 Setiap masalah, tidak ada problem-- hanya datang di 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, selain jam kantor dan bagian, kami juga memiliki celana pendek. 86 00:03:31,640 --> 00:03:35,930 Apakah ada yang pernah melihat beberapa dari celana pendek atau penelusuran di video 87 00:03:35,930 --> 00:03:36,750 di website? 88 00:03:36,750 --> 00:03:37,250 OKE. 89 00:03:37,250 --> 00:03:39,510 Jadi mereka benar-benar, benar-benar membantu. 90 00:03:39,510 --> 00:03:42,470 Produksi Harvard indah kami tim di sana pada sekolah yang 91 00:03:42,470 --> 00:03:47,910 ke utara, mereka telah difilmkan dan diproduksi ini video walkthrough yang luar biasa. 92 00:03:47,910 --> 00:03:52,290 >> Mereka akan membawa Anda langkah demi langkah melalui bagaimana cara memecahkan masalah. 93 00:03:52,290 --> 00:03:56,340 Sering kali, jika Anda bingung tentang konsep sederhana, konsep tunggal, 94 00:03:56,340 --> 00:03:59,780 kita lihat, karena kita mungkin memiliki pendek pada suatu tempat di website kami. 95 00:03:59,780 --> 00:04:03,800 Dan biasanya sumber daya yang besar harus dicari ketika Anda pertama kali 96 00:04:03,800 --> 00:04:06,510 hilang pada bagaimana menangani masalah. 97 00:04:06,510 --> 00:04:09,750 >> Ketiga, kami juga memiliki study50 dan reference50. 98 00:04:09,750 --> 00:04:15,650 Jadi mempelajari 50 pada website ini hanya link. 99 00:04:15,650 --> 00:04:21,500 Ini, saya pikir, study.cs50.net atau semacam itu. 100 00:04:21,500 --> 00:04:22,860 Hanya Google itu. 101 00:04:22,860 --> 00:04:24,229 Kami memiliki banyak slide disiapkan. 102 00:04:24,229 --> 00:04:26,770 Kami memiliki banyak celana pendek dan hal walkthroughs-- semua dikompilasi 103 00:04:26,770 --> 00:04:31,070 sangat bagus dan rapi untuk kalian semua untuk menelusuri, melihat konsep 104 00:04:31,070 --> 00:04:32,860 bahwa Anda bingung tentang. 105 00:04:32,860 --> 00:04:35,920 Ini mungkin akan ditutup di sana di study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- serupa. 107 00:04:37,640 --> 00:04:41,510 Kami memiliki banyak berbagai catatan tersedia untuk pembuangan Anda. 108 00:04:41,510 --> 00:04:44,450 Dan terakhir, kita memiliki apa yang disebut CS50 Diskusikan, 109 00:04:44,450 --> 00:04:48,082 sebuah forum di mana, jika malam sebelumnya Anda melakukan masalah Anda, mengatakan, 110 00:04:48,082 --> 00:04:49,880 Anda memiliki pertanyaan. 111 00:04:49,880 --> 00:04:52,340 Login ke CS50 Diskusikan. 112 00:04:52,340 --> 00:04:53,190 Posting pertanyaan Anda. 113 00:04:53,190 --> 00:04:55,820 Dan kemudian salah satu hundreds-- mungkin, thousands-- rekan-rekan 114 00:04:55,820 --> 00:04:57,960 mengambil kelas ini secara online akan login. 115 00:04:57,960 --> 00:05:01,182 Dan mungkin seseorang bisa mendapatkan jawaban Anda sebelum sekaleng TA. 116 00:05:01,182 --> 00:05:03,390 Ini pada dasarnya hanya sebuah forum online yang kita semua bisa 117 00:05:03,390 --> 00:05:04,556 gunakan untuk membahas masalah-masalah kita. 118 00:05:04,556 --> 00:05:06,483 Keren. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> OKE. 121 00:05:11,550 --> 00:05:13,220 Jadi masalah set. 122 00:05:13,220 --> 00:05:17,840 Kami tentang benar dalam tebal masalah menetapkan dua. 123 00:05:17,840 --> 00:05:20,570 Banyak dari kita sudah berjuang melalui masalah menetapkan satu. 124 00:05:20,570 --> 00:05:24,460 Kita sudah tahu bahwa mungkin menunggu untuk malam terakhir untuk melakukan pset Anda 125 00:05:24,460 --> 00:05:28,170 bukan hal terbaik untuk dilakukan di CS50. 126 00:05:28,170 --> 00:05:32,380 >> Tips dan kiat dasarnya untuk Keberhasilan dibaca seluruh spec. 127 00:05:32,380 --> 00:05:36,270 Berapa banyak dari Anda sudah membaca spec untuk pset 2? 128 00:05:36,270 --> 00:05:36,770 OKE. 129 00:05:36,770 --> 00:05:39,840 Itu jumlah yang solid. 130 00:05:39,840 --> 00:05:43,210 Aku tahu kalian mungkin telah diakui sekarang spesifikasi yang sangat panjang. 131 00:05:43,210 --> 00:05:45,700 Mereka benar-benar, benar-benar lama. 132 00:05:45,700 --> 00:05:49,630 >> Ini benar-benar sulit untuk membaca setiap baris itu hati-hati kata demi kata. 133 00:05:49,630 --> 00:05:52,780 Anda ingin hanya skim ke mana ia memberitahu Anda untuk melakukan sesuatu. 134 00:05:52,780 --> 00:05:54,459 Saya dapat menjamin Anda, jangan lakukan itu. 135 00:05:54,459 --> 00:05:56,750 Jika Anda melakukannya, Anda mungkin akan merindukan suatu tempat 136 00:05:56,750 --> 00:05:58,458 di mana ia memberitahu Anda bagaimana memulai masalah 137 00:05:58,458 --> 00:06:01,140 atau memberitahu Anda apa yang harus nama masalah Anda atau memberitahu Anda, 138 00:06:01,140 --> 00:06:03,720 ini mungkin adalah cara terbaik untuk mulai 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 >> Ketika Anda mencoba untuk membaca Anda spek setengah jalan, 141 00:06:08,219 --> 00:06:10,510 banyak yang penting information-- bahwa Anda tidak 142 00:06:10,510 --> 00:06:12,260 akan dapat benar-benar akses. 143 00:06:12,260 --> 00:06:13,219 Jadi membaca seluruh spec. 144 00:06:13,219 --> 00:06:15,468 Cobalah untuk membaca seluruh spesifikasi sebelum Anda datang ke bagian, 145 00:06:15,468 --> 00:06:17,360 karena itu, ketika kita berbicara tentang pset itu, 146 00:06:17,360 --> 00:06:21,070 kita semua dapat memiliki gagasan dari apa yang terjadi. 147 00:06:21,070 --> 00:06:25,169 >> Kedua, ini adalah sebuah konsep bahwa saya akan ingin referensi 148 00:06:25,169 --> 00:06:26,710 banyak sepanjang semester saja. 149 00:06:26,710 --> 00:06:30,070 Tapi pada dasarnya, menemui kami di tengah jalan, kan? 150 00:06:30,070 --> 00:06:33,970 Saya, sebagai TA dan Jason karena kursus Manajer dan Scaz sebagai dosen Anda 151 00:06:33,970 --> 00:06:37,120 dan David sebagai guru dan semua yang TA indah lainnya dalam kursus ini, 152 00:06:37,120 --> 00:06:39,830 asisten di course-- ini kami akan melakukan yang terbaik 153 00:06:39,830 --> 00:06:42,965 untuk memastikan bahwa Anda ditetapkan hingga berhasil dalam kursus ini. 154 00:06:42,965 --> 00:06:43,840 Kami akan mengadakan bagian. 155 00:06:43,840 --> 00:06:44,870 Kami akan terus jam kantor. 156 00:06:44,870 --> 00:06:47,087 Kami akan menjawab telepon Anda panggilan, menjawab e-mail Anda, 157 00:06:47,087 --> 00:06:49,670 melakukan segala yang kami bisa untuk membuat Pastikan pertanyaan Anda dijawab. 158 00:06:49,670 --> 00:06:51,460 >> Namun, membantu kami keluar juga. 159 00:06:51,460 --> 00:06:52,450 Temui kami di tengah jalan. 160 00:06:52,450 --> 00:06:56,040 Jika Anda datang ke kantor jam tidak memiliki pergi ke bagian, tidak 161 00:06:56,040 --> 00:07:02,060 setelah melihat ceramah, tidak memiliki tahu apa yang terjadi, seperti, membantu saya. 162 00:07:02,060 --> 00:07:04,350 Aku akan menjadi seperti, baik, aku minta maaf. 163 00:07:04,350 --> 00:07:06,410 Mungkin sudah saatnya untuk meminjamkan bahu yang menangis pada, 164 00:07:06,410 --> 00:07:08,959 karena saya tidak yakin apa yang bisa saya lakukan untuk membantu Anda 165 00:07:08,959 --> 00:07:12,000 jika Anda tidak mencoba untuk setidaknya bantuan sendiri sedikit di awal. 166 00:07:12,000 --> 00:07:12,910 Temui kami di tengah jalan. 167 00:07:12,910 --> 00:07:15,020 Anda tahu, silakan datang siap untuk menjawab dan mendapatkan 168 00:07:15,020 --> 00:07:16,353 siap untuk terlibat dalam materi. 169 00:07:16,353 --> 00:07:19,342 Itu membuat hal-hal begitu banyak lebih mudah bagi semua orang yang terlibat. 170 00:07:19,342 --> 00:07:22,970 Ya, itu cukup banyak itu. 171 00:07:22,970 --> 00:07:23,720 >> Grading. 172 00:07:23,720 --> 00:07:29,250 Jadi pada silabus, itu cukup mendalam mengenai bagaimana kita kelas. 173 00:07:29,250 --> 00:07:32,440 Tapi pada dasarnya, rinciannya dalam hal ini adalah 50% dari kelas Anda 174 00:07:32,440 --> 00:07:34,530 akan menjadi psets, yang indah, karena itu 175 00:07:34,530 --> 00:07:37,400 di mana Anda menghabiskan besar sebagian besar waktu saja Anda. 176 00:07:37,400 --> 00:07:39,854 Kuis 40%, dan Anda tugas akhir akan menjadi 10%. 177 00:07:39,854 --> 00:07:42,520 Akan ada dua kuis seluruh kursus semester. 178 00:07:42,520 --> 00:07:47,050 Saya pikir waktu dan tanggal yang juga terdaftar di silabus. 179 00:07:47,050 --> 00:07:49,210 >> Cara yang kita akan akan kadar psets Anda 180 00:07:49,210 --> 00:07:53,930 adalah bahwa kita memiliki dasarnya empat nilai-nilai yang kita tetapkan untuk setiap kelas. 181 00:07:53,930 --> 00:07:57,250 Kami memiliki nilai lingkup, kebenaran, desain, dan gaya. 182 00:07:57,250 --> 00:08:01,530 Jadi seperti yang Anda lihat, itu semacam kami rumus untuk menghitung psets. 183 00:08:01,530 --> 00:08:03,640 Tiga kami memberikan paling bobot kebenaran, 184 00:08:03,640 --> 00:08:06,140 karena jelas pelatih Anda harus menguji untuk kasus 185 00:08:06,140 --> 00:08:08,480 bahwa kita ingin menguji. 186 00:08:08,480 --> 00:08:11,000 >> Kalian semua memiliki check50 Anda inginkan. 187 00:08:11,000 --> 00:08:13,730 Ini adalah fungsi yang sangat berguna bahwa kalian semua bisa 188 00:08:13,730 --> 00:08:17,560 meng-upload kode Anda ke server kami, di mana kita akan memeriksa untuk Anda. 189 00:08:17,560 --> 00:08:20,800 Dan Anda telah melihat orang-orang wajah frowny, wajah 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 Jangan menjadi mahasiswa yang suka mencoba 192 00:08:23,910 --> 00:08:26,230 hardcode di semua jawaban kepada mereka. 193 00:08:26,230 --> 00:08:30,050 Saya pasti telah melihat pset mana seseorang melihat semua nilai-nilai check50 194 00:08:30,050 --> 00:08:33,429 dan mereka hanya sulit kode in-- jika nomor ini, mencetak nomor ini. 195 00:08:33,429 --> 00:08:35,080 Jika jumlah itu, mencetak angka tersebut. 196 00:08:35,080 --> 00:08:36,090 Jangan lakukan itu. 197 00:08:36,090 --> 00:08:39,360 >> Meskipun secara teknis check50 benar, 198 00:08:39,360 --> 00:08:41,809 cara Anda memecahkan masalah adalah tidak benar. 199 00:08:41,809 --> 00:08:45,770 Jadi hanya menggunakan check50 hemat. 200 00:08:45,770 --> 00:08:48,497 Tetapi juga memastikan bahwa Anda memahami bagaimana hal itu berfungsi, 201 00:08:48,497 --> 00:08:50,580 program ini berfungsi selain check50, 202 00:08:50,580 --> 00:08:53,120 karena kita tidak dapat menguji setiap mungkin kasus check50. 203 00:08:53,120 --> 00:08:55,440 Kami akan menguji beberapa dari mereka. 204 00:08:55,440 --> 00:09:00,390 >> Desain dasarnya, bagaimana dirancang dengan baik adalah kode Anda? 205 00:09:00,390 --> 00:09:04,150 Jika Anda copy-paste beberapa baris kode banyak, banyak kali. 206 00:09:04,150 --> 00:09:06,960 Mungkin Anda tidak memiliki cukup desain terbaik dalam kode Anda. 207 00:09:06,960 --> 00:09:09,470 Mungkin sudah waktunya untuk menambahkan lingkaran itu. 208 00:09:09,470 --> 00:09:12,090 Pada dasarnya, di sini itu hanya semua tentang mencoba untuk melakukan kode Anda, 209 00:09:12,090 --> 00:09:17,010 mencoba untuk menulis kode Anda seefisien mungkin agar program berjalan 210 00:09:17,010 --> 00:09:19,630 secepat mungkin. 211 00:09:19,630 --> 00:09:20,996 >> Terakhir, kita memiliki gaya. 212 00:09:20,996 --> 00:09:24,360 Jadi gaya adalah jenis sewenang-wenang, istilah subjektif. 213 00:09:24,360 --> 00:09:27,470 Aku tahu kita resmi memiliki panduan gaya 50 untuk CS50, 214 00:09:27,470 --> 00:09:30,050 di mana ia memberitahu Anda, oh, Anda harus memiliki ruang di sini. 215 00:09:30,050 --> 00:09:32,220 Anda harus jenis format kode Anda dengan cara ini. 216 00:09:32,220 --> 00:09:34,070 Anda harus nama hal-hal seperti ini. 217 00:09:34,070 --> 00:09:38,180 >> Saya tidak benar-benar peduli, per se, bagaimana Anda memilih untuk gaya kode Anda, 218 00:09:38,180 --> 00:09:39,840 seperti selama Anda tetap konsisten. 219 00:09:39,840 --> 00:09:43,732 Sebagai contoh, jika Anda ingin meninggalkan ruang setelah empat Anda 220 00:09:43,732 --> 00:09:45,690 sebelum empat loop, hanya melakukan itu setiap kali. 221 00:09:45,690 --> 00:09:46,523 Jangan semacam melakukannya. 222 00:09:46,523 --> 00:09:47,730 Jangan lakukan itu lain kali. 223 00:09:47,730 --> 00:09:51,046 Jika Anda ingin tetap keriting kawat gigi ruang dengan cara tertentu, 224 00:09:51,046 --> 00:09:52,170 hanya selalu melakukannya dengan cara itu. 225 00:09:52,170 --> 00:09:54,628 Jangan semacam melakukannya di tempat di sini dan di suatu tempat tidak ada. 226 00:09:54,628 --> 00:09:57,010 Ketika kita dengan kadar, itu benar-benar sulit 227 00:09:57,010 --> 00:09:59,420 jika saya tidak tahu bagaimana Anda format kode Anda, 228 00:09:59,420 --> 00:10:02,064 hal-hal yang aneh dan keluar dari tempat. 229 00:10:02,064 --> 00:10:04,980 Jika Anda hanya tetap konsisten, itu jauh lebih mudah bagi saya sebagai besar 230 00:10:04,980 --> 00:10:06,310 untuk dapat membaca kode Anda. 231 00:10:06,310 --> 00:10:09,393 Ini jauh lebih mudah bagi Anda sebagai mahasiswa untuk dapat melihat melalui kode Anda 232 00:10:09,393 --> 00:10:11,720 dan melihat apa yang salah dengan itu memangkas mengapa ada masalah. 233 00:10:11,720 --> 00:10:15,740 Gaya adalah salah satu hal yang paling mudah kalian bisa lakukan untuk mendapatkan nilai penuh. 234 00:10:15,740 --> 00:10:18,770 Pada dasarnya, jika Anda hanya peduli, jika Anda membayar lima menit perhatian 235 00:10:18,770 --> 00:10:22,760 untuk kode Anda setiap minggu, Anda harus menjadi semakin gaya poin penuh. 236 00:10:22,760 --> 00:10:26,020 >> Terakhir, kita memiliki apa yang disebut multiplier dari lingkup. 237 00:10:26,020 --> 00:10:28,890 Scope-- Aku tahu itu besar kata, terutama di kelas ini. 238 00:10:28,890 --> 00:10:31,030 Tapi ruang lingkup, segala cara yang adalah bahwa Anda mencoba 239 00:10:31,030 --> 00:10:33,670 yang psets untuk yang terbaik dari kemampuan Anda. 240 00:10:33,670 --> 00:10:37,180 Jika Anda menyerahkan tiga empat masalah Anda 241 00:10:37,180 --> 00:10:39,460 dan bahkan tidak mencoba yang yang terakhir, Anda mungkin 242 00:10:39,460 --> 00:10:41,630 akan kehilangan beberapa poin di lingkup. 243 00:10:41,630 --> 00:10:44,560 >> Bahkan jika Anda hanya mulai masalah, lakukan yang terbaik untuk berjalan melalui itu. 244 00:10:44,560 --> 00:10:47,691 Bahkan jika tidak bekerja, mengubahnya, karena yang menunjukkan dan menunjukkan 245 00:10:47,691 --> 00:10:50,190 kepada kami bahwa Anda sedang berusaha, bahwa Anda mencoba mengatur masalah 246 00:10:50,190 --> 00:10:51,430 untuk yang terbaik dari kemampuan Anda. 247 00:10:51,430 --> 00:10:53,800 Dan kemudian kami dapat memberikan poin penuh untuk lingkup. 248 00:10:53,800 --> 00:10:58,715 >> Lingkup juga sangat penting bagi ketika kita berbicara tentang termurah penurunan nilai pset. 249 00:10:58,715 --> 00:11:02,010 Jadi selama satu semester, kalian memiliki sembilan psets. 250 00:11:02,010 --> 00:11:05,340 Dan kita akan benar-benar menjatuhkan skor terendah dari sembilan, 251 00:11:05,340 --> 00:11:07,670 tetapi hanya jika Anda memiliki ruang lingkup poin penuh. 252 00:11:07,670 --> 00:11:11,120 >> Jadi jika Anda menghidupkan dalam pset tidak lengkap, sayangnya, kita tidak bisa drop satu itu, 253 00:11:11,120 --> 00:11:13,540 karena lingkup Anda poin tidak selesai. 254 00:11:13,540 --> 00:11:16,570 Jadi bahkan jika Anda memiliki minggu yang mengerikan di mana Anda sedang sekarat dan sedang sakit 255 00:11:16,570 --> 00:11:20,040 atau anjing Anda meninggal, kucing Anda meninggal, dan Anda dipenuhi dengan pekerjaan, 256 00:11:20,040 --> 00:11:21,074 hanya mencoba pset tersebut. 257 00:11:21,074 --> 00:11:22,490 Melakukannya untuk yang terbaik dari kemampuan Anda. 258 00:11:22,490 --> 00:11:23,840 Jika tidak bekerja, tidak masalah. 259 00:11:23,840 --> 00:11:24,506 Hanya mengubahnya. 260 00:11:24,506 --> 00:11:26,590 Setidaknya kita dapat memberikan Anda poin untuk usaha. 261 00:11:26,590 --> 00:11:28,510 >> A untuk usaha di kelas ini. 262 00:11:28,510 --> 00:11:30,170 Setidaknya penurunan nilai terendah untuk usaha. 263 00:11:30,170 --> 00:11:32,354 Jadi ya. 264 00:11:32,354 --> 00:11:33,270 Itu cukup banyak itu. 265 00:11:33,270 --> 00:11:36,521 Apakah ada yang punya pertanyaan sehingga jauh tentang bagaimana kami kelas di kelas? 266 00:11:36,521 --> 00:11:37,187 Atau semua ini? 267 00:11:37,187 --> 00:11:41,220 Semua ini begitu far-- bagian, jam kantor? 268 00:11:41,220 --> 00:11:41,720 Keren. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 OKE. 271 00:11:47,800 --> 00:11:51,260 >> Jadi ini adalah subjek yang ada yang benar-benar suka berbicara tentang. 272 00:11:51,260 --> 00:11:53,084 Saya tidak benar-benar ingin berbicara tentang hal itu. 273 00:11:53,084 --> 00:11:55,250 Kalian tidak benar-benar ingin mendengar saya berbicara tentang hal itu. 274 00:11:55,250 --> 00:11:57,690 Tapi sayangnya, kita semua harus membicarakannya. 275 00:11:57,690 --> 00:12:00,110 David menghabiskan 20 menit kuliah berbicara tentang hal itu. 276 00:12:00,110 --> 00:12:02,580 Dan itu adalah subjek kejujuran akademik. 277 00:12:02,580 --> 00:12:08,110 >> Jadi kita semua di sini telah mungkin ditulis sebuah esai kadang-kadang dalam karir Yale kami. 278 00:12:08,110 --> 00:12:11,800 Kita mungkin sudah mendapatkan ceramah di mana kita sudah telah diberitahu untuk tidak menjiplak tulisan esai kami, 279 00:12:11,800 --> 00:12:13,940 karena pekerjaan yang bukan milik kita. 280 00:12:13,940 --> 00:12:18,109 Dalam ilmu komputer, kita memiliki jenis yang sama dari konsep. 281 00:12:18,109 --> 00:12:20,150 Semua pekerjaan yang Anda kirimkan, semua kode yang Anda tulis 282 00:12:20,150 --> 00:12:21,900 harus kode yang telah Anda tulis. 283 00:12:21,900 --> 00:12:24,280 Tidak boleh kode yang Anda sudah disalin dari tempat lain. 284 00:12:24,280 --> 00:12:26,777 Tidak boleh kode yang Anda sudah googled dan menjatuhkan di 285 00:12:26,777 --> 00:12:28,360 dan Anda tidak benar-benar tahu jika bekerja. 286 00:12:28,360 --> 00:12:32,440 Anda jenis memiliki rasa apa yang dilakukannya tetapi tidak benar-benar. 287 00:12:32,440 --> 00:12:36,562 Jika ragu, pada dasarnya, itu hanya masuk akal. 288 00:12:36,562 --> 00:12:38,520 Pada silabus kami, kami memiliki daftar seluruh hal-hal 289 00:12:38,520 --> 00:12:40,560 kita lihat sebagai wajar dibandingkan tidak wajar. 290 00:12:40,560 --> 00:12:43,820 >> Misalnya, wajar adalah Anda dan teman Anda 291 00:12:43,820 --> 00:12:47,360 membahas apa cara terbaik untuk pergi tentang logika pemecahan masalah. 292 00:12:47,360 --> 00:12:48,910 Itu cukup masuk akal. 293 00:12:48,910 --> 00:12:53,244 Apa yang tidak akan masuk akal adalah jika Anda orang berkumpul, mengetik kode yang sama, 294 00:12:53,244 --> 00:12:54,410 dan berbalik dalam kode yang sama. 295 00:12:54,410 --> 00:12:56,302 Itu tidak masuk akal. 296 00:12:56,302 --> 00:12:57,510 Hal yang sama, jenis esai. 297 00:12:57,510 --> 00:12:59,290 Jika Anda ingin membahas dengan teman Anda, hey, 298 00:12:59,290 --> 00:13:00,220 ini adalah apa yang saya ingin menulis tentang. 299 00:13:00,220 --> 00:13:02,500 Ini adalah langkah-langkah yang saya ingin mengambil untuk menulis tentang hal itu, besar. 300 00:13:02,500 --> 00:13:03,208 Indah sekali. 301 00:13:03,208 --> 00:13:04,790 Silakan berkolaborasi satu sama lain. 302 00:13:04,790 --> 00:13:06,540 Jika kalian mulai menulis hal yang sama, 303 00:13:06,540 --> 00:13:10,020 menyerahkan esai yang sama, yang kurang OK. 304 00:13:10,020 --> 00:13:13,200 Jadi bila ragu, hanya tidak melakukannya. 305 00:13:13,200 --> 00:13:16,940 >> Di sini, kita di CS50, kami memiliki skrip run yang untuk mengotomatisasi untuk menguji 306 00:13:16,940 --> 00:13:21,740 tidak hanya kebenaran kode Anda, tetapi juga keunikan kode Anda. 307 00:13:21,740 --> 00:13:25,920 Jadi tolong jangan menempatkan kami dalam posisi karena harus merujuk kasus Anda ke EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Silahkan saja untuk semua orang, mari kita membuat pengalaman yang indah. 309 00:13:31,110 --> 00:13:33,600 Semua orang belajar lebih baik, kita semua bahagia, 310 00:13:33,600 --> 00:13:37,926 dan kita semua dibentuk untuk berhasil dalam kursus ini. 311 00:13:37,926 --> 00:13:39,800 Sesuatu yang sangat unik tentang kelas ini 312 00:13:39,800 --> 00:13:42,660 yang saya pikir semua orang harus benar-benar memperhatikan adalah bahwa kita memiliki 313 00:13:42,660 --> 00:13:44,930 apa yang disebut penyesalan klausul dalam silabus kami. 314 00:13:44,930 --> 00:13:50,010 Jadi pada dasarnya, dalam waktu 72 jam, jika Anda yakin telah melakukan sesuatu 315 00:13:50,010 --> 00:13:53,240 Anda tidak benar-benar yakin itu sesuai, silakan datang ke kami. 316 00:13:53,240 --> 00:13:57,220 Kami berjanji bahwa dalam waktu 72 jam kami akan menangani kasus diri kita sendiri 317 00:13:57,220 --> 00:13:59,820 tanpa mengacu pada tinggi otoritas dalam pemerintahan. 318 00:13:59,820 --> 00:14:03,100 >> Jadi, jika Anda datang ke saya dan berkata, Andi, hey, aku benar-benar minta maaf, 319 00:14:03,100 --> 00:14:07,620 tapi saya pikir ada beberapa baris di saya Kode semalam bahwa saya jenis googled, 320 00:14:07,620 --> 00:14:10,120 turun dari Stack Overflow, copy dan paste, 321 00:14:10,120 --> 00:14:13,680 dan aku benar-benar, benar-benar menyesal tentang itu, beritahu saya. 322 00:14:13,680 --> 00:14:16,900 Jangan biarkan itu bercokol dan hanya berharap bahwa aku 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 Biar saya tahu dalam waktu 72 jam. 326 00:14:20,520 --> 00:14:22,240 Kami akan mencari tahu solusi. 327 00:14:22,240 --> 00:14:26,679 Dan kami berjanji bahwa kami tidak akan merujuk otoritas universitas dasarnya. 328 00:14:26,679 --> 00:14:29,220 Jadi itu dalam kepentingan terbaik Anda hanya jujur ​​dengan semua orang 329 00:14:29,220 --> 00:14:31,720 terlibat dalam kursus. 330 00:14:31,720 --> 00:14:34,630 >> OKE. 331 00:14:34,630 --> 00:14:35,240 OKE. 332 00:14:35,240 --> 00:14:37,800 Jadi sekarang, dengan cepat sebelum Aku pindah, apakah ada 333 00:14:37,800 --> 00:14:42,670 memiliki pertanyaan tentang logistik bagaimana program kita akan menjalankan, 334 00:14:42,670 --> 00:14:45,982 bagaimana bagian akan untuk menjalankan, semua itu? 335 00:14:45,982 --> 00:14:46,711 OKE. 336 00:14:46,711 --> 00:14:47,210 Ya. 337 00:14:47,210 --> 00:14:48,126 >> AUDIENCE: [tidak terdengar]? 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-- berapa banyak dari Anda yang di bagian Senin / Rabu? 341 00:14:54,850 --> 00:14:56,700 Berapa banyak dari Anda berada di Selasa / Kamis? 342 00:14:56,700 --> 00:14:58,550 OK, jadi split padat di sini. 343 00:14:58,550 --> 00:15:00,900 Jadi cara yang kita jalankan itu di Yale adalah kita bahwa 344 00:15:00,900 --> 00:15:04,040 akan memiliki dua terpisah quizzes-- satu untuk setiap section-- yang 345 00:15:04,040 --> 00:15:06,160 akan diambil selama kelas. 346 00:15:06,160 --> 00:15:09,310 Saya pikir itu Oktober, akhir Oktober, sesuatu seperti itu, sebagai salah satu minggu 347 00:15:09,310 --> 00:15:10,794 dari kuis. 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 hari Senin atau Rabu, Anda akan mengambil kuis. 350 00:15:13,920 --> 00:15:16,336 Pada hari Selasa atau Kamis, Anda akan mengambil kuis yang berbeda. 351 00:15:16,336 --> 00:15:18,570 Tapi bahan yang sama akan dibahas. 352 00:15:18,570 --> 00:15:19,160 Ya. 353 00:15:19,160 --> 00:15:20,660 Pertanyaan bagus. 354 00:15:20,660 --> 00:15:21,160 Ya. 355 00:15:21,160 --> 00:15:23,260 >> AUDIENCE: Di mana kita pergi untuk memeriksa nilai 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 mengirimkan sebuah e-mail apa pun setiap minggu 358 00:15:28,420 --> 00:15:31,460 ketika kuis yang graded-- atau, Maaf, saat psets yang dinilai. 359 00:15:31,460 --> 00:15:34,120 Psets biasanya berubah di siang atau Jumat. 360 00:15:34,120 --> 00:15:37,540 Jadi saya berjanji bahwa saya akan mencoba untuk mendapatkan mereka kembali kepada Anda 361 00:15:37,540 --> 00:15:40,000 oleh siang dari hari Jumat berikutnya. 362 00:15:40,000 --> 00:15:44,950 >> Setiap kali saya kelas pset, saya akan mengirim keluar pemberitahuan pada buku kelas 363 00:15:44,950 --> 00:15:47,070 yang memberitahu Anda skor Anda dapat dilihat secara online. 364 00:15:47,070 --> 00:15:52,022 Jadi benar minggu ini, setelah saya menyelesaikan kadar psets pekan lalu, 365 00:15:52,022 --> 00:15:54,230 kalian akan mendapatkan e-mail pemberitahuan memberitahu Anda, 366 00:15:54,230 --> 00:15:55,870 hey ini adalah di mana Anda pergi untuk melihat nilai Anda. 367 00:15:55,870 --> 00:15:57,680 Dan Anda dapat melihat setiap pemecahan nilai Anda. 368 00:15:57,680 --> 00:15:58,555 Anda dapat melihat komentar. 369 00:15:58,555 --> 00:16:00,360 Oh, hal cepat juga. 370 00:16:00,360 --> 00:16:03,060 Bagian komentar di besar Buku adalah di mana mungkin aku akan 371 00:16:03,060 --> 00:16:05,300 menghabiskan sebagian besar waktu saya grading. 372 00:16:05,300 --> 00:16:07,094 Jadi satu hal yang benar-benar penting ketika 373 00:16:07,094 --> 00:16:09,010 kalian melihat nilai Anda pada psets Anda 374 00:16:09,010 --> 00:16:11,400 tidak hanya mencari di nilai fisik 375 00:16:11,400 --> 00:16:14,630 tetapi juga mengambil waktu untuk benar-benar membaca komentar saya. 376 00:16:14,630 --> 00:16:17,820 >> Seringkali yang memberikan umpan balik tentang bagaimana Anda memecahkan masalah. 377 00:16:17,820 --> 00:16:20,480 Jika Anda perlu melakukan sesuatu yang sedikit lebih baik, 378 00:16:20,480 --> 00:16:24,080 kritik konstruktif biasanya terbaik diberikan pada mereka bagian komentar. 379 00:16:24,080 --> 00:16:26,950 Jadi tolong, tolong, aku akan menghabiskan waktu menulis komentar. 380 00:16:26,950 --> 00:16:30,440 Silakan, saya benar-benar akan menghargai itu jika kalian akan membaca komentar orang-orang. 381 00:16:30,440 --> 00:16:31,170 OKE. 382 00:16:31,170 --> 00:16:34,150 Keren. 383 00:16:34,150 --> 00:16:34,680 >> Baiklah. 384 00:16:34,680 --> 00:16:40,680 Jadi kita akan mulai berbicara dan hanya meninjau cepat 385 00:16:40,680 --> 00:16:45,040 beberapa materi dari minggu nol hanya jadi kita 386 00:16:45,040 --> 00:16:48,760 di sebelah kanan halaman untuk mulai masalah minggu ini. 387 00:16:48,760 --> 00:16:52,600 Jadi sementara loop adalah salah satu dari tiga jenis loop 388 00:16:52,600 --> 00:16:54,510 kita bahas sebelumnya di kelas ini. 389 00:16:54,510 --> 00:16:57,060 >> Sebuah loop sementara dasarnya ditulis dalam sintaks 390 00:16:57,060 --> 00:17:00,666 di mana, sementara kondisi tertentu, melakukan ini berulang kali, kan? 391 00:17:00,666 --> 00:17:02,040 Anggap saja di grafis ini di sini. 392 00:17:02,040 --> 00:17:04,780 Anda akan mulai pada titik tertentu dalam kode Anda. 393 00:17:04,780 --> 00:17:09,030 Anda akan memasuki kondisi loop if-- Saya tidak tahu-- x kurang dari satu. 394 00:17:09,030 --> 00:17:11,677 >> Jika itu benar, Anda akan untuk mengeksekusi badan loop. 395 00:17:11,677 --> 00:17:14,010 Dan Anda akan tetap melakukan itu lagi, lagi, lagi, 396 00:17:14,010 --> 00:17:17,900 lebih dan over-- yang mengapa itu adalah loop-- sampai kondisi Anda menjadi 397 00:17:17,900 --> 00:17:19,079 Salah. 398 00:17:19,079 --> 00:17:22,140 Jadi dengan cara ini, sementara loop adalah salah satu cara sederhana 399 00:17:22,140 --> 00:17:25,619 menulis apapun kondisi yang perlu mengulang berulang-ulang. 400 00:17:25,619 --> 00:17:28,109 Hanya berhati-hati setiap kali Anda sedang menulis apapun lingkaran 401 00:17:28,109 --> 00:17:32,140 bahwa Anda memiliki kondisi keluar sebagai serta update untuk apa pun 402 00:17:32,140 --> 00:17:36,714 adalah agar loop Anda tidak hanya menjalankan berulang jauh. 403 00:17:36,714 --> 00:17:38,630 Dalam hal apapun, Anda akan untuk ingin memastikan 404 00:17:38,630 --> 00:17:42,670 bahwa Anda mengubah beberapa aspek kode Anda atau di akhir loop 405 00:17:42,670 --> 00:17:46,680 hanya untuk memastikan bahwa Anda memiliki cara untuk maju menuju kondisi 406 00:17:46,680 --> 00:17:48,400 bahwa Anda ingin bertemu untuk akhir. 407 00:17:48,400 --> 00:17:50,239 Apakah itu masuk akal untuk semua orang? 408 00:17:50,239 --> 00:17:52,530 Kami hanya tidak ingin menjadi terperangkap dalam spiral ini di mana 409 00:17:52,530 --> 00:17:55,710 kita pergi sekitar dan sekitar dan tidak ada cara untuk memecahkan loop. 410 00:17:55,710 --> 00:17:58,844 Dan setiap lingkaran dasarnya memiliki cara untuk melakukan itu. 411 00:17:58,844 --> 00:17:59,344 OKE. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Kedua, banyak dari Anda di Mario psets Anda 414 00:18:06,060 --> 00:18:08,910 mungkin harus mempekerjakan jenis loop. 415 00:18:08,910 --> 00:18:11,802 Hal ini disebut do while. 416 00:18:11,802 --> 00:18:14,510 Pertama-tama, bisa ada yang bilang saya apa perbedaan antara do a 417 00:18:14,510 --> 00:18:16,586 while dan loop sementara adalah? 418 00:18:16,586 --> 00:18:17,086 Ya. 419 00:18:17,086 --> 00:18:21,030 >> AUDIENCE: The do while berjalan pada awalnya [tidak terdengar]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI PENG: Ya, persis. 421 00:18:22,120 --> 00:18:27,130 Jadi do a while selalu melakukan apa saja adalah dalam bentuk do, dalam kurung 422 00:18:27,130 --> 00:18:30,520 ada dan melakukan kondisi yang sebelum memeriksa the-- maaf, 423 00:18:30,520 --> 00:18:32,940 melakukan kode yang sebelumnya memeriksa kondisi. 424 00:18:32,940 --> 00:18:37,200 Dan ini sangat relevan untuk kita di sini di kelas ini, karena sebagian besar kali 425 00:18:37,200 --> 00:18:41,450 kita akan ingin meminta pengguna untuk semacam masukan. 426 00:18:41,450 --> 00:18:43,520 Dan kemudian, tergantung pada input mereka memberi kita, 427 00:18:43,520 --> 00:18:46,150 maka kita dapat mengevaluasi, oh, melakukan kita perlu meminta mereka lagi? 428 00:18:46,150 --> 00:18:49,930 >> Jadi di Mario, jika pengguna memberi Anda ketinggian negatif, misalnya, 429 00:18:49,930 --> 00:18:52,990 Anda akan cepat pertama dan melakukan apa pun yang ada di dalam. 430 00:18:52,990 --> 00:18:54,820 Kemudian Anda akan memeriksa sementara. 431 00:18:54,820 --> 00:18:57,570 Anda tahu, adalah negatif 1, adalah bahwa angka positif? 432 00:18:57,570 --> 00:19:00,680 Jika tidak, aku akan pergi kembali dan ulangi do dan ulangi 433 00:19:00,680 --> 00:19:03,950 dan ulangi dan ulangi sampai mereka akhirnya memberikan nomor yang Anda sukai, 434 00:19:03,950 --> 00:19:07,002 bahwa kita semua dapat mempekerjakan dalam kode kami. 435 00:19:07,002 --> 00:19:09,210 Ini cukup penting bagi dasarnya setiap input pengguna. 436 00:19:09,210 --> 00:19:11,760 Saya dapat menjamin Anda setiap waktu di mana pset 437 00:19:11,760 --> 00:19:15,070 kami meminta Anda untuk memasukkan apapun kode, kami 438 00:19:15,070 --> 00:19:17,540 mungkin akan memberi Anda kasus uji yang kami 439 00:19:17,540 --> 00:19:21,200 akan memberikan sesuatu yang buruk yang akan mencoba untuk memecahkan kode Anda. 440 00:19:21,200 --> 00:19:25,044 >> Jika kita mencoba untuk meminta Anda untuk memasukkan sebuah integer, kita mungkin hanya memberikan string 441 00:19:25,044 --> 00:19:26,460 dan melihat bagaimana Anda akan menangani itu. 442 00:19:26,460 --> 00:19:30,610 Jika kami meminta Anda untuk mempekerjakan usia, kami dapat memberikan angka negatif 443 00:19:30,610 --> 00:19:32,340 untuk melihat bagaimana Anda akan menangani itu. 444 00:19:32,340 --> 00:19:37,260 Pastikan kalian pengujian untuk kasus di mana Anda tidak mendapatkan yang terbaik 445 00:19:37,260 --> 00:19:38,590 input, katakan saja. 446 00:19:38,590 --> 00:19:40,510 Dan do while adalah seringkali yang terbaik 447 00:19:40,510 --> 00:19:45,260 cara untuk merancang kode Anda sehingga bahwa memenuhi ruang lingkup itu. 448 00:19:45,260 --> 00:19:45,760 OKE. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> OKE. 451 00:19:49,470 --> 00:19:53,270 Jadi ini mungkin adalah yang paling lingkaran kompleks dari tiga 452 00:19:53,270 --> 00:19:54,990 bahwa kita telah melihat sejauh ini. 453 00:19:54,990 --> 00:19:56,689 Dan tampaknya sangat menakutkan pada awalnya. 454 00:19:56,689 --> 00:19:59,730 Tapi saya jamin, sekali kalian mendapatkan memahamkan bagaimana menggunakan untuk loop, 455 00:19:59,730 --> 00:20:03,320 itu salah satu hal yang paling berguna, kebanyakan alat yang berguna dalam gudang senjata Anda 456 00:20:03,320 --> 00:20:05,300 untuk bergerak maju di kelas ini. 457 00:20:05,300 --> 00:20:09,920 >> Jadi misalnya, di Scratch, kami memiliki blok yang sangat sederhana ini 458 00:20:09,920 --> 00:20:13,180 yang hanya mengatakan mengulang ini tertentu frase sejumlah kali. 459 00:20:13,180 --> 00:20:16,260 By the way, SAJ-- itu Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 Kami seringkali menandatangani email SAJ kami. 461 00:20:18,740 --> 00:20:20,360 Jika kita berkata SAJ, jangan bingung. 462 00:20:20,360 --> 00:20:22,630 Itu hanya kami. 463 00:20:22,630 --> 00:20:28,600 >> Jadi dalam Scratch, kami mampu memiliki blok yang mengatakan, ulangi Saya suka SAJ! 464 00:20:28,600 --> 00:20:29,430 10 kali. 465 00:20:29,430 --> 00:20:30,130 Sangat sederhana. 466 00:20:30,130 --> 00:20:32,302 Logika di balik itu adalah sangat, sangat sederhana, kan? 467 00:20:32,302 --> 00:20:35,260 Saya ingin pertama pergi melalui pertama waktu dan melihat bahwa, kedua kalinya 468 00:20:35,260 --> 00:20:38,510 dan melihat bahwa, ketiga kalinya, sebagainya dan seterusnya, sampai Anda menekan ke 10. 469 00:20:38,510 --> 00:20:41,960 >> Dan cara kita akan menyatakan bahwa di Kode ini hanya melalui sederhana untuk loop. 470 00:20:41,960 --> 00:20:45,440 Jadi untuk, Anda akan mendeklarasikan variabel Anda di sini, dalam hal ini, 471 00:20:45,440 --> 00:20:46,349 dengan int. 472 00:20:46,349 --> 00:20:47,390 Kita akan nama itu saya. 473 00:20:47,390 --> 00:20:49,500 Kita akan menginisialisasi ke 0. 474 00:20:49,500 --> 00:20:52,490 Dan edisi berhenti adalah akan saya kurang dari 10. 475 00:20:52,490 --> 00:20:54,622 Dan update akan menjadi i ++. 476 00:20:54,622 --> 00:20:57,750 >> Dan dalam loop, itu akan untuk mengeksekusi sampai akhirnya 477 00:20:57,750 --> 00:21:01,490 hits akhir condition-- di mana kasus, itu akan memecahkan loop. 478 00:21:01,490 --> 00:21:04,600 Harus ada hal-hal yang Anda orang telah semua jenis terlihat sebelumnya 479 00:21:04,600 --> 00:21:07,270 dan harus lakukan untuk masalah Anda menetapkan satu. 480 00:21:07,270 --> 00:21:12,310 Apakah ada yang punya pertanyaan tentang untuk loop sekarang? 481 00:21:12,310 --> 00:21:12,930 OKE. 482 00:21:12,930 --> 00:21:13,430 Besar. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> OKE. 485 00:21:18,620 --> 00:21:22,270 Jadi bagi anda yang memiliki membaca pset spec untuk minggu ini 486 00:21:22,270 --> 00:21:27,690 tahu bahwa kita akan harus mempekerjakan sesuatu yang disebut ASCII dan meja ASCII. 487 00:21:27,690 --> 00:21:32,380 Jadi Daud dalam kuliah pergi sebentar bagaimana komputer essentially-- segalanya 488 00:21:32,380 --> 00:21:35,410 dikodekan dalam komputer di biner, di nol dan satu. 489 00:21:35,410 --> 00:21:39,740 Dan cara bahwa komputer dapat untuk menyimpan nilai yang berbeda di samping 490 00:21:39,740 --> 00:21:44,360 untuk nol dan satu yang melalui pemetaan angka-angka untuk mewakili angka lainnya 491 00:21:44,360 --> 00:21:47,220 atau karakter dasarnya lainnya. 492 00:21:47,220 --> 00:21:49,810 >> Jadi dalam hal ini, ASCII table-- semua hal ini 493 00:21:49,810 --> 00:21:53,600 adalah karakter peta, atau karakter, untuk nomor. 494 00:21:53,600 --> 00:21:57,385 Jadi file kode sumber di Anda computer-- yang dilihatnya, 495 00:21:57,385 --> 00:22:00,010 hey, sekelompok nol dan yang, nol dan satu, nol dan satu. 496 00:22:00,010 --> 00:22:02,350 Itulah yang disimpan dalam memori sebenarnya komputer Anda. 497 00:22:02,350 --> 00:22:04,750 >> Tetapi ketika kita manusia ingin berkomunikasi dengan komputer, 498 00:22:04,750 --> 00:22:08,249 kami want-- mengatakan, misalnya, jika saya ingin huruf besar A, 499 00:22:08,249 --> 00:22:10,540 Aku akan perlu beberapa cara memberitahu komputer, oh, 500 00:22:10,540 --> 00:22:16,300 ketika saya ketik huruf A, I mean representasi ini dalam biner. 501 00:22:16,300 --> 00:22:22,260 >> Dan cara kita melakukan yang melemparkan Hal sewenang-wenang disebut tabel ASCII, 502 00:22:22,260 --> 00:22:25,020 di mana kita, sebagai manusia, sebagai programmer, beberapa waktu lalu, 503 00:22:25,020 --> 00:22:28,660 kita sewenang-wenang memutuskan bahwa kami akan menetapkan nomor ini 504 00:22:28,660 --> 00:22:30,960 nilai-nilai karakter tersebut. 505 00:22:30,960 --> 00:22:32,720 >> Jadi kalian bisa google online ini. 506 00:22:32,720 --> 00:22:37,120 Saya pikir ada link ke dalam Anda pset-- hanya meja peta ASCII, ASCII 507 00:22:37,120 --> 00:22:37,720 meja. 508 00:22:37,720 --> 00:22:40,722 Itu hanya menerjemahkan biner angka ke karakter. 509 00:22:40,722 --> 00:22:42,930 Dan itu akan menjadi sangat berguna untuk mengatur masalah Anda 510 00:22:42,930 --> 00:22:45,470 setiap kali Anda ingin menghitung sesuatu atau jika Anda 511 00:22:45,470 --> 00:22:47,880 ingin menampilkan tertentu karakter atau bilangan bulat 512 00:22:47,880 --> 00:22:50,327 atau memanipulasi karakter tertentu. 513 00:22:50,327 --> 00:22:52,160 Ini akan menjadi sangat penting bahwa Anda semua 514 00:22:52,160 --> 00:22:55,140 tahu cara menavigasi tabel ASCII. 515 00:22:55,140 --> 00:23:01,260 >> Jadi misalnya, huruf besar A diwakili dengan jumlah 65. 516 00:23:01,260 --> 00:23:04,207 Dan huruf kecil a diwakili oleh 97. 517 00:23:04,207 --> 00:23:07,040 Jadi penting untuk mengetahui bahwa Perbedaan antara dua nilai 518 00:23:07,040 --> 00:23:08,320 adalah 32. 519 00:23:08,320 --> 00:23:13,210 Sering kali, jika Anda perlu untuk mengkonversi dari satu ke yang lain, perbedaannya adalah 32. 520 00:23:13,210 --> 00:23:15,710 Dan jangan khawatir jika Anda jenis dari bingung tentang ini pada awalnya. 521 00:23:15,710 --> 00:23:20,230 Kita akan pergi atas bagaimana kita akan mempekerjakan ini dalam kode aktual. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> OKE. 524 00:23:26,380 --> 00:23:30,770 Jadi bagi anda dengan laptop keluar, merasa bebas untuk menarik meja ASCII, 525 00:23:30,770 --> 00:23:36,030 karena mungkin ini akan memerlukan kalian untuk referensi 526 00:23:36,030 --> 00:23:38,100 apa karakter yang. 527 00:23:38,100 --> 00:23:38,640 OKE. 528 00:23:38,640 --> 00:23:42,840 >> Jadi mengetahui bahwa tertentu karakter peta ke nomor-nomor tertentu, 529 00:23:42,840 --> 00:23:47,240 jika saya harus menjalankan hanya yang pertama garis yang code-- printf sebuah, 530 00:23:47,240 --> 00:23:50,900 huruf kecil a, dikurangi huruf A. Apakah ada 531 00:23:50,900 --> 00:23:55,880 memiliki menebak pada apa yang akan menjadi mencetak layar sekarang? 532 00:23:55,880 --> 00:23:58,190 >> Jadi pertama-tama, apa huruf kecil mewakili? 533 00:23:58,190 --> 00:24:00,990 Apa nomor adalah bahwa dikodekan dalam tabel ASCII. 534 00:24:00,990 --> 00:24:01,490 Maaf? 535 00:24:01,490 --> 00:24:02,630 >> AUDIENCE: 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 huruf A? 538 00:24:05,077 --> 00:24:06,330 >> AUDIENCE: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI PENG: Jadi apa 97 dikurangi 65? 540 00:24:08,255 --> 00:24:09,227 >> AUDIENCE: 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 berpikir kalian akan terjadi ketika saya masukan baris kode 543 00:24:13,530 --> 00:24:14,670 ke komputer saya? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> AUDIENCE: [tidak terdengar]. 546 00:24:19,896 --> 00:24:21,020 ANDI PENG: Maaf, berbicara. 547 00:24:21,020 --> 00:24:22,520 Jangan khawatir. 548 00:24:22,520 --> 00:24:25,750 Ini adalah sangat aman lingkungan, minus kamera. 549 00:24:25,750 --> 00:24:27,550 Kita semua akan to-- tidak ada kekhawatiran. 550 00:24:27,550 --> 00:24:30,940 Hanya kita semua akan berpura-pura seperti itu hanya kami bersantai di ruangan ini. 551 00:24:30,940 --> 00:24:31,480 Jangan khawatir. 552 00:24:31,480 --> 00:24:33,410 Tidak ada pertanyaan yang terlalu bodoh. 553 00:24:33,410 --> 00:24:35,300 Tidak ada jawaban adalah jawaban yang bodoh. 554 00:24:35,300 --> 00:24:38,260 Aku mungkin akan membuat kesalahan dalam perjalanan mengajar saya. 555 00:24:38,260 --> 00:24:40,740 Serius, guys, hanya berkata tanpa berpikir itu. 556 00:24:40,740 --> 00:24:43,092 Jadilah percaya diri dalam diri Anda, Anda tahu? 557 00:24:43,092 --> 00:24:43,800 Jadi apa itu? 558 00:24:43,800 --> 00:24:47,990 Yang mengatakan bahwa jawaban terakhir? 559 00:24:47,990 --> 00:24:48,540 OKE. 560 00:24:48,540 --> 00:24:50,380 Berteriak bahwa bagus dan jelas. 561 00:24:50,380 --> 00:24:51,220 >> AUDIENCE: 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 menjalankan kode ini dan melihat apakah itu yang terjadi. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 OKE. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Sehingga kalian bisa jenis lihat, notasi khas saya sudah 568 00:25:06,360 --> 00:25:12,250 mengatur di sini bagaimana kita akan mempekerjakan apapun program di komputer kita. 569 00:25:12,250 --> 00:25:14,770 Kami memiliki fungsi utama kami dalam fungsi utama kami. 570 00:25:14,770 --> 00:25:17,265 Aku hanya akan menyalin dan menyisipkan baris kode ini. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Juga hati-hati ketika kalian menyalin dan menyisipkan kode. 573 00:25:23,540 --> 00:25:28,750 Operator kadang-kadang tertentu tidak menyisipkan lebih benar. 574 00:25:28,750 --> 00:25:31,397 Dalam hal ini, minus tanda itu sebenarnya tanda hubung. 575 00:25:31,397 --> 00:25:32,980 Dan komputer tidak mengambilnya. 576 00:25:32,980 --> 00:25:35,870 Jadi saya harus kembali dan fisik mengetik ulang itu. 577 00:25:35,870 --> 00:25:37,846 Hanya berhati-hati saat kalian melakukan hal itu. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> OKE. 580 00:25:42,660 --> 00:25:43,980 Kita akan menjalankan ini di sini. 581 00:25:43,980 --> 00:25:45,670 Jadi kita akan cd ke section2 kami. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Saya sudah menelepon Program asciimath ini. 584 00:25:52,030 --> 00:25:55,690 Jadi ingat, ketika kita menjalankan Program, kami ingin pertama kompilasi 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 ingin benar-benar menjalankan program dengan melakukan dot-garis miring. 587 00:26:00,030 --> 00:26:01,280 Jadi kita akan ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Benar, di sana kita pergi. 590 00:26:06,590 --> 00:26:07,410 Dan kita lihat 32. 591 00:26:07,410 --> 00:26:07,930 Bagus sekali. 592 00:26:07,930 --> 00:26:10,340 Anda layak sepotong permen. 593 00:26:10,340 --> 00:26:11,160 Permen 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 OKE. 597 00:26:13,670 --> 00:26:18,070 Jadi kita bisa kembali ke contoh kita di sini. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Aah, tidak ada. 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 OKE. 603 00:26:32,490 --> 00:26:34,610 Aku hanya akan tetap seperti itu. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 OKE. 606 00:26:51,240 --> 00:26:51,740 OKE. 607 00:26:51,740 --> 00:26:55,340 Sehingga kalian bisa lihat, kita dapat melakukan banyak hal yang sangat menarik, 608 00:26:55,340 --> 00:26:58,880 banyak hal yang sangat dingin, banyak hal yang sangat rumit yang melibatkan 609 00:26:58,880 --> 00:27:02,720 Karakter ASCII dan nomor. 610 00:27:02,720 --> 00:27:05,890 Setelah Anda mendapatkan ke garis lima, yang banyak untuk mengikuti. 611 00:27:05,890 --> 00:27:07,640 Kami tidak akan pergi melalui bagian. 612 00:27:07,640 --> 00:27:10,720 Jangan ragu untuk, jika Anda bisa, alasan itu di atas kertas 613 00:27:10,720 --> 00:27:14,750 pertama pada apa yang harus terjadi ketika Anda masukan string seperti nilai-nilai. 614 00:27:14,750 --> 00:27:19,720 Misalnya, dalam baris terakhir, kita memiliki z-- yang merupakan number-- tertentu 615 00:27:19,720 --> 00:27:24,740 a-- yang juga merupakan number-- ditambah 1 tertentu 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 kalian terus membaca melalui ini, Anda 618 00:27:29,220 --> 00:27:34,009 mungkin melihat sebuah pola muncul dalam bagaimana kita memanipulasi kode. 619 00:27:34,009 --> 00:27:36,050 Saya sangat, sangat menyarankan setelah bagian kalian semua 620 00:27:36,050 --> 00:27:38,160 orang pergi ke depan dan masukan mereka semua di komputer Anda 621 00:27:38,160 --> 00:27:40,060 dan melihat jenis nomor yang keluar 622 00:27:40,060 --> 00:27:43,090 dan penalaran melalui mengapa mereka adalah terjadi, karena untuk psets Anda 623 00:27:43,090 --> 00:27:45,060 itu akan benar-benar penting bagi Anda untuk memahami 624 00:27:45,060 --> 00:27:47,132 mengapa hal-hal tertentu yang terjadi. 625 00:27:47,132 --> 00:27:48,590 Semua slide ini akan online. 626 00:27:48,590 --> 00:27:51,510 Sehingga tidak ada kekhawatiran tentang mencoba untuk fisik menyalin catatan. 627 00:27:51,510 --> 00:27:52,510 Secara online semuanya. 628 00:27:52,510 --> 00:27:54,050 Bagian ini sendiri akan online. 629 00:27:54,050 --> 00:27:57,500 Semua kode sumber yang Aku berlari akan online. 630 00:27:57,500 --> 00:27:58,180 Ya. 631 00:27:58,180 --> 00:27:59,430 Apakah Anda masih memiliki pertanyaan? 632 00:27:59,430 --> 00:28:00,587 AUDIENCE: Apa 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 operator yang akan cukup penting untuk pset orang Anda 635 00:28:05,620 --> 00:28:06,690 sini. 636 00:28:06,690 --> 00:28:12,280 Jadi cara yang operator di C dan dalam pekerjaan pemrograman 637 00:28:12,280 --> 00:28:16,360 adalah bahwa Anda memiliki apa yang disebut simbol perpecahan dan simbol modulus, 638 00:28:16,360 --> 00:28:18,350 yang seperti tanda persen. 639 00:28:18,350 --> 00:28:24,840 >> Jadi dalam C, ketika Anda melakukan integer dibagi dengan bilangan bulat dengan garis miring, 640 00:28:24,840 --> 00:28:27,720 C memiliki kecenderungan untuk ingin memotong off semua poin desimal, 641 00:28:27,720 --> 00:28:30,290 karena integer ingin untuk mengkonversi ke integer. 642 00:28:30,290 --> 00:28:33,550 Ini tidak akan ingin menjadi ganda dengan sekelompok desimal semua setelah. 643 00:28:33,550 --> 00:28:39,322 >> Jadi jika saya melakukan 3 dibagi 2, itu akan untuk memotong 0,5 dan hanya memberikan 1. 644 00:28:39,322 --> 00:28:41,530 Jadi itu sesuatu yang harus sangat berhati-hati ketika Anda 645 00:28:41,530 --> 00:28:45,294 melakukan apapun matematika dalam pemrograman, adalah bahwa nomor yang anda peroleh 646 00:28:45,294 --> 00:28:47,210 mungkin bukan angka yang Anda pikirkan, 647 00:28:47,210 --> 00:28:50,190 yang mengapa pembulatan dalam Anda pset terakhir adalah sangat penting. 648 00:28:50,190 --> 00:28:51,980 >> Modulo memberikan sisanya. 649 00:28:51,980 --> 00:28:56,200 Jadi misalnya, jika saya melakukan 3 modulo 2-- jadi 3 persen tanda 2-- 650 00:28:56,200 --> 00:28:58,020 itu akan memberikan sisa itu. 651 00:28:58,020 --> 00:29:00,460 Jadi 3 dibagi 2 adalah 1,5. 652 00:29:00,460 --> 00:29:01,410 Ini 1 sisa 1. 653 00:29:01,410 --> 00:29:04,600 Ini akan memberi Anda 1, yang adalah sisa itu. 654 00:29:04,600 --> 00:29:07,361 >> Jadi, ketika kalian bergerak melalui tabel 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 membahasnya nanti. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> OKE. 659 00:29:19,040 --> 00:29:27,300 Jadi sesuatu yang cukup, cukup baru dan cukup unik 660 00:29:27,300 --> 00:29:31,920 bahwa kita telah membahas minggu ini konsep apa array adalah. 661 00:29:31,920 --> 00:29:34,370 Jadi array pertama jenis struktur data 662 00:29:34,370 --> 00:29:36,320 bahwa kita akan temui di kelas ini. 663 00:29:36,320 --> 00:29:40,010 Semua struktur data adalah semacam sewenang-wenang, 664 00:29:40,010 --> 00:29:43,370 harfiah hal-hal seperti struktur bahwa kita sebagai programer telah menciptakan, 665 00:29:43,370 --> 00:29:47,890 bahwa kita telah dimasukkan ke dalam kode kita yang dapat berisi potongan lain dari kode. 666 00:29:47,890 --> 00:29:51,090 >> Jadi dalam hal ini, sebuah array-- menganggapnya sebagai lemari arsip, 667 00:29:51,090 --> 00:29:53,470 di mana jika Anda membuka berbeda rak-rak lemari arsip Anda, 668 00:29:53,470 --> 00:29:55,630 Anda dapat mengakses hal-hal yang berbeda. 669 00:29:55,630 --> 00:29:58,630 Dalam memori, array hanya melakukan hal yang sama pada komputer Anda. 670 00:29:58,630 --> 00:30:01,730 Anda dapat memiliki kita blocks-- berbeda memanggil mereka indices-- dari array. 671 00:30:01,730 --> 00:30:04,210 Ini seperti blok, rak memori 672 00:30:04,210 --> 00:30:07,580 bahwa kita telah dibuat dalam Anda komputer yang Anda dapat memasukkan 673 00:30:07,580 --> 00:30:10,270 hal-hal tertentu di ruang yang berbeda. 674 00:30:10,270 --> 00:30:18,000 >> Jadi dengan array, Anda selalu harus specify-- 675 00:30:18,000 --> 00:30:22,360 Anda harus menentukan mendeklarasikan array dalam format berikut. 676 00:30:22,360 --> 00:30:24,290 Anda akan pertama menentukan tipe data 677 00:30:24,290 --> 00:30:25,831 Anda ingin membuat array. 678 00:30:25,831 --> 00:30:28,870 Jika saya ingin sebuah array bilangan bulat, Aku akan menempatkan int di sana. 679 00:30:28,870 --> 00:30:32,079 Jika saya ingin sebuah array string, Aku akan menempatkan string di sana, 680 00:30:32,079 --> 00:30:34,995 nama array, dan kemudian Anda akan memiliki tanda kurung persegi. 681 00:30:34,995 --> 00:30:39,580 Dan di dalam kurung persegi, Anda akan memiliki ukuran array Anda. 682 00:30:39,580 --> 00:30:42,900 >> Sesuatu yang benar-benar penting untuk diingat saat membuat array adalah 683 00:30:42,900 --> 00:30:46,530 bahwa, setelah Anda membuat array, ukuran yang tidak dapat berubah. 684 00:30:46,530 --> 00:30:50,180 Jadi jika Anda tahu bahwa sekarang Anda memiliki sebuah array dari ukuran 10, 685 00:30:50,180 --> 00:30:54,550 Anda tahu bahwa aku akan memiliki 10 sel dalam atau 10 indeks dalam array ini, 686 00:30:54,550 --> 00:30:56,830 dan itu tidak pernah terjadi untuk memperluas atau mengurangi 687 00:30:56,830 --> 00:30:59,850 tidak peduli apa, dan bahwa ada Saat ini hanya 10 blok ruang 688 00:30:59,850 --> 00:31:04,490 dialokasikan dalam memori Anda yang dapat menyimpan hingga 10 hal dari apa pun yang Anda telah menempatkan. 689 00:31:04,490 --> 00:31:08,790 >> Jadi dengan cara ini, tipe data array, struktur data yang merupakan array 690 00:31:08,790 --> 00:31:13,392 sangat berbeda dari beberapa orang lain kita akan akan mencakup nanti dalam kursus ini. 691 00:31:13,392 --> 00:31:15,170 Ya. 692 00:31:15,170 --> 00:31:20,080 Sebagai contoh, jika Anda ingin membuat sebuah array ukuran 3 yang 693 00:31:20,080 --> 00:31:23,670 terkandung variabel integer-- oh, maaf, dari temperature-- 694 00:31:23,670 --> 00:31:25,640 dan suhu, dari Tentu saja, adalah bilangan bulat. 695 00:31:25,640 --> 00:31:28,710 >> Jadi kita akan menciptakan int, yang merupakan Jenis data apa yang kita ingin menyimpan. 696 00:31:28,710 --> 00:31:32,680 Kita akan memanggil suhu ini demi nomenklatur penamaan 697 00:31:32,680 --> 00:31:34,200 sesuatu yang kita semua mengerti. 698 00:31:34,200 --> 00:31:35,900 Dan kita akan memiliki tanda kurung persegi. 699 00:31:35,900 --> 00:31:37,200 Dan kami ingin tiga angka. 700 00:31:37,200 --> 00:31:39,000 Jadi kita akan menempatkan tiga di dalamnya. 701 00:31:39,000 --> 00:31:41,041 >> Sesuatu yang benar-benar penting untuk diingat 702 00:31:41,041 --> 00:31:43,530 adalah bahwa array nol diindeks. 703 00:31:43,530 --> 00:31:46,410 Semua itu berarti adalah bahwa Anda mulai dengan indeks 0, 704 00:31:46,410 --> 00:31:49,800 dan Anda berlari melalui ukuran array minus 1. 705 00:31:49,800 --> 00:31:52,730 Jadi misalnya di sini, kami memiliki sebuah array ukuran 3. 706 00:31:52,730 --> 00:31:54,680 Ini akan dapat menahan tiga nilai. 707 00:31:54,680 --> 00:31:57,450 Tapi angka-angka yang themselves-- nomor, array, indeks, 708 00:31:57,450 --> 00:32:00,271 array, adalah 0 sampai 2. 709 00:32:00,271 --> 00:32:03,520 Jadi guys, benar-benar, benar-benar hati-hati saat Anda akan melalui masalah Anda mengatur 710 00:32:03,520 --> 00:32:06,500 dan menciptakan apapun array, karena banyak kali itu 711 00:32:06,500 --> 00:32:08,490 benar-benar, benar-benar mudah untuk melupakan itu. 712 00:32:08,490 --> 00:32:11,840 Aku benar-benar tidak memiliki indeks dari 3, yang saya saat ini hanya 713 00:32:11,840 --> 00:32:13,130 memiliki indeks 2. 714 00:32:13,130 --> 00:32:16,046 Dan jika Anda mencoba untuk mengakses indeks ketiga, 715 00:32:16,046 --> 00:32:18,170 itu akan menjadi apa disebut null terminator. 716 00:32:18,170 --> 00:32:19,990 Ini tidak akan benar-benar ada di array. 717 00:32:19,990 --> 00:32:21,781 Dan komputer tidak akan seperti itu. 718 00:32:21,781 --> 00:32:24,570 Jadi hati-hati setiap kali Anda mengakses hal-hal hanya 719 00:32:24,570 --> 00:32:28,070 untuk memastikan bahwa Anda ingat bahwa array adalah nol-diindeks. 720 00:32:28,070 --> 00:32:28,880 >> OKE. 721 00:32:28,880 --> 00:32:34,030 Jadi contoh pertama hanya salah satu cara untuk menciptakan sebuah array. 722 00:32:34,030 --> 00:32:36,790 Contoh kedua yang saya miliki bawah ini hanya cara terpisah 723 00:32:36,790 --> 00:32:40,210 menciptakan apa data yang sama struktur yang baru saja kita diinput. 724 00:32:40,210 --> 00:32:44,347 Jadi, bukannya fisik berjalan melalui dan menempatkan dalam suhu 0 725 00:32:44,347 --> 00:32:47,180 sama dengan apa pun, suhu 1 sama dengan apa pun, suhu 2 equals 726 00:32:47,180 --> 00:32:50,950 apapun, aku bisa benar-benar hanya langsung membuat semuanya dalam satu baris 727 00:32:50,950 --> 00:32:53,010 dalam suhu kurung sama. 728 00:32:53,010 --> 00:32:56,536 >> Dan pemberitahuan dalam hal ini, Anda tidak perlu untuk menentukan seberapa besar array adalah, 729 00:32:56,536 --> 00:32:59,160 karena komputer akan pergi melalui dan melihat bahwa ada 730 00:32:59,160 --> 00:33:01,570 tiga elemen pada mereka kurung kurawal. 731 00:33:01,570 --> 00:33:04,000 Dan itu akan tahu, OK, Saya perlu array ukuran 3. 732 00:33:04,000 --> 00:33:07,440 Anda tidak akan perlu masukan dengan cara berikut. 733 00:33:07,440 --> 00:33:10,170 >> Dan juga, ya, seperti itu. 734 00:33:10,170 --> 00:33:12,610 Apakah ada yang punya pertanyaan tentang bagaimana kita membuat array 735 00:33:12,610 --> 00:33:17,391 atau bagaimana struktur array bekerja? 736 00:33:17,391 --> 00:33:17,890 Ya. 737 00:33:17,890 --> 00:33:18,806 >> AUDIENCE: [tidak terdengar]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI PENG: Ya, persis. 740 00:33:22,690 --> 00:33:26,150 Jadi jika Anda adalah untuk mendeklarasikan dan menginisialisasi array metode berikut, 741 00:33:26,150 --> 00:33:28,477 yang merupakan cara kedua, Anda hanya bisa meninggalkan mereka. 742 00:33:28,477 --> 00:33:30,310 Dan komputer otomatis tahu bahwa itu 743 00:33:30,310 --> 00:33:33,950 perlu menghitung berapa banyak elemen yang pada mereka kurung kurawal, dipisahkan 744 00:33:33,950 --> 00:33:34,930 dengan 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 bilangan bulat. 747 00:33:39,600 --> 00:33:45,960 Aku tahu untuk membuat sebuah nama array suhu dengan tiga elemen di dalamnya. 748 00:33:45,960 --> 00:33:46,590 Pertanyaan bagus. 749 00:33:46,590 --> 00:33:47,090 Ya. 750 00:33:47,090 --> 00:33:51,590 >> AUDIENCE: Apakah tidak mungkin untuk membuat array dengan tipe data yang berbeda 751 00:33:51,590 --> 00:33:53,021 yang bisa masuk ke dalamnya? 752 00:33:53,021 --> 00:33:56,746 Misalnya, dengan bilangan bulat [tak terdengar]? 753 00:33:56,746 --> 00:33:59,120 ANDI PENG: Untuk keperluan kelas ini, tidak ada, sekarang. 754 00:33:59,120 --> 00:34:03,070 Bila Anda membuat data struktur seperti sebuah array, 755 00:34:03,070 --> 00:34:04,990 Anda memberitahu komputer, hey, aku membutuhkanmu 756 00:34:04,990 --> 00:34:08,159 untuk mengalokasikan sebanyak ini memori di hard drive saya, 757 00:34:08,159 --> 00:34:10,690 dengan masing-masing sel menjadi sejumlah bit. 758 00:34:10,690 --> 00:34:13,429 >> Ingat kita pelajari dalam seminggu nol bahwa data yang berbeda 759 00:34:13,429 --> 00:34:15,300 jenis memiliki ukuran yang berbeda? 760 00:34:15,300 --> 00:34:17,630 Jadi misalnya, string adalah jumlah yang berbeda 761 00:34:17,630 --> 00:34:20,719 ruang dari char, yang adalah jumlah yang berbeda ruang 762 00:34:20,719 --> 00:34:21,830 dari integer. 763 00:34:21,830 --> 00:34:25,534 Dan jadi jika Anda tidak menentukan dan Anda mencampur dan mencocokkan jenis apa variabel 764 00:34:25,534 --> 00:34:27,659 Anda memiliki, komputer akan menjadi sangat bingung. 765 00:34:27,659 --> 00:34:29,950 Dan itu tidak akan tahu berapa banyak memori untuk memberikan. 766 00:34:29,950 --> 00:34:32,480 Jadi untuk tujuan yang tepat sekarang, komputer hanya dapat 767 00:34:32,480 --> 00:34:36,120 mengenali satu jenis array. 768 00:34:36,120 --> 00:34:37,940 Pertanyaan bagus. 769 00:34:37,940 --> 00:34:38,440 OKE. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Jadi secara alami, Pertanyaan kedua kami memiliki 772 00:34:47,120 --> 00:34:50,760 adalah, baik, sekarang kita telah membuat sebuah array dan kami telah membuat semua hal 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 Sehingga struktur khas yang kita selalu mengakses array adalah indah kami untuk loop. 775 00:34:59,710 --> 00:35:03,830 Aku berjanji kalian bahwa kami akan melihat banyak orang ini di sini. 776 00:35:03,830 --> 00:35:06,470 >> Pada dasarnya, kapan saja Anda inginkan input nilai ke dalam array 777 00:35:06,470 --> 00:35:09,940 atau Anda ingin mengakses mereka, Cara terbaik untuk melakukannya adalah untuk loop, 778 00:35:09,940 --> 00:35:13,730 karena dalam untuk loop, Anda tahu berapa kali Anda 779 00:35:13,730 --> 00:35:17,290 akan ingin menjalankan melalui array, karena Anda memiliki edisi berhenti, kan? 780 00:35:17,290 --> 00:35:19,680 Dan setiap kali Anda menjalankan melalui, Anda dapat mengakses 781 00:35:19,680 --> 00:35:21,310 elemen yang berbeda dari array. 782 00:35:21,310 --> 00:35:26,920 >> Dan juga, ini adalah alasan mengapa biasanya kita mulai untuk loop di 0 nilai, 783 00:35:26,920 --> 00:35:30,080 karena ketika Anda mengakses array, Anda dapat mengakses indeks nol. 784 00:35:30,080 --> 00:35:32,070 Dan sehingga sejajar dengan sangat baik. 785 00:35:32,070 --> 00:35:35,295 Kalian mungkin ingin menulis untuk int i sama dengan 1. 786 00:35:35,295 --> 00:35:37,330 i kurang dari atau sama dengan 3. 787 00:35:37,330 --> 00:35:39,890 >> Tapi itu tidak akan bekerja cukup sebagai baik di sini, karena Anda hanya 788 00:35:39,890 --> 00:35:42,010 memiliki elemen 0, 1, dan 2. 789 00:35:42,010 --> 00:35:45,815 Dan jika Anda adalah untuk memulai i Anda di elemen 1, 2, dan 3, 790 00:35:45,815 --> 00:35:48,440 Anda akan berakhir berjalan keluar dari batas-batas array, 791 00:35:48,440 --> 00:35:50,440 dan hal-hal buruk yang akan terjadi. 792 00:35:50,440 --> 00:35:54,480 >> Jadi saya harap kalian melihat Shalawat yang mengapa di kelas sebelumnya 793 00:35:54,480 --> 00:35:58,560 kami mengajar kalian bagaimana menjalankan dan memformat untuk loop cara kami. 794 00:35:58,560 --> 00:36:01,900 Itu karena, sekarang kita sudah dialihkan ke array, 795 00:36:01,900 --> 00:36:06,760 Anda dapat melihat mengapa 0 meminjamkan sendiri sangat baik untuk mengakses. 796 00:36:06,760 --> 00:36:09,880 >> Jadi cara kita melakukannya adalah itu-- aku hanya mencetaknya di sini demi 797 00:36:09,880 --> 00:36:10,830 pencetakan itu. 798 00:36:10,830 --> 00:36:13,750 Tapi aku punya pengganti saya, koma. 799 00:36:13,750 --> 00:36:15,645 Dan mengakses aktual Bagian yang terjadi. 800 00:36:15,645 --> 00:36:17,520 Nama array disebut temperatur. 801 00:36:17,520 --> 00:36:21,570 Jadi suhu dan i-th elemen dari array. 802 00:36:21,570 --> 00:36:24,400 >> Sehingga untuk loop berjalan melalui, itu akan dimulai dari 0. 803 00:36:24,400 --> 00:36:27,640 Ini akan mencetak Indeks 0 dari array ini. 804 00:36:27,640 --> 00:36:29,599 Maka itu akan mencetak keluar elemen pertama. 805 00:36:29,599 --> 00:36:31,431 Maka itu akan mencetak keluar yang kedua. 806 00:36:31,431 --> 00:36:32,880 Dan kemudian kita akan istirahat. 807 00:36:32,880 --> 00:36:36,718 Apakah setiap orang yang jelas tentang bagaimana yang terjadi? 808 00:36:36,718 --> 00:36:37,217 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 memiliki cara mengatakan, jika kita tidak ingin 812 00:36:47,270 --> 00:36:50,020 ke hard-kode in-- saya sebagai programmer. 813 00:36:50,020 --> 00:36:53,320 Saya tidak ingin benar-benar secara fisik 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 ingin bukannya memiliki nilai-nilai input pengguna, 816 00:36:56,500 --> 00:36:58,100 apa cara terbaik untuk melakukannya? 817 00:36:58,100 --> 00:37:00,920 >> Nah, di sini saya telah menciptakan Fungsi ini indah, 818 00:37:00,920 --> 00:37:03,560 di mana saya dapat mendeklarasikan array. 819 00:37:03,560 --> 00:37:06,210 Jadi int scores-- mari hanya mengatakan kami ingin membuat 820 00:37:06,210 --> 00:37:10,660 array yang memegang nilai dari semua 18 siswa di sini di bagian ini. 821 00:37:10,660 --> 00:37:12,670 Saya pikir kami punya sedikit lebih dari 18 anak-anak hari ini. 822 00:37:12,670 --> 00:37:16,460 Tapi demi contoh ini, mari kita hanya berasumsi kami memiliki 18. 823 00:37:16,460 --> 00:37:21,580 Saya akan membuat sebuah nama array skor dengan tipe int, karena skor, tentu saja, 824 00:37:21,580 --> 00:37:22,987 adalah nomor. 825 00:37:22,987 --> 00:37:24,820 Dan aku akan memiliki 18 dalam kurung persegi, 826 00:37:24,820 --> 00:37:29,900 karena itulah berapa banyak siswa saya ingin dapat menyimpan puluhan. 827 00:37:29,900 --> 00:37:32,206 >> Dan cara saya mengisi array adalah bahwa saya akan 828 00:37:32,206 --> 00:37:35,572 menjalankannya melalui untuk loop, dari Tentu saja, dengan 0 menjadi indeks 0 saya. 829 00:37:35,572 --> 00:37:38,030 Dan kemudian dengan 18 menjadi saya menghentikan edisi, karena 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 aku akan melakukan printf, Masukkan skor untuk student-- bla bla bla. 832 00:37:44,620 --> 00:37:51,171 >> Bisa ada yang bilang saya mengapa saya di sini mencetak i ditambah 1 dan tidak saya? 833 00:37:51,171 --> 00:37:52,920 Ini semacam trik pertanyaan, tidak benar-benar. 834 00:37:52,920 --> 00:37:56,020 Ini tidak benar-benar secara fisik mempengaruhi menjalankan kode. 835 00:37:56,020 --> 00:37:56,520 Ya. 836 00:37:56,520 --> 00:37:57,909 >> AUDIENCE: [tidak terdengar] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI PENG: Ya, persis. 838 00:37:58,950 --> 00:38:02,620 Ini agak canggung untuk mengatakan, hey, Anda siswa 0 di kelas ini. 839 00:38:02,620 --> 00:38:03,780 Ini sedikit aneh. 840 00:38:03,780 --> 00:38:08,340 Jadi kita, sebagai manusia, tidak terlalu suka memikirkan bagaimana komputer berpikir. 841 00:38:08,340 --> 00:38:10,930 Jadi meskipun di komputer, itu menyimpan nilai-nilai 842 00:38:10,930 --> 00:38:13,310 dalam indeks 0-th, ketika kami manusia, kita tidak benar-benar 843 00:38:13,310 --> 00:38:15,520 ingin merujuk diri sebagai nol. 844 00:38:15,520 --> 00:38:18,119 Jadi ketika saya hanya mencetak itu, Aku akan mencetak dan menambahkan 845 00:38:18,119 --> 00:38:19,410 1 hanya demi kejelasan. 846 00:38:19,410 --> 00:38:22,447 Jadi ketika saya mencetak, aku akan menjadi mampu mencetak siswa 1 sampai 18. 847 00:38:22,447 --> 00:38:24,530 Ini tidak benar-benar berdampak menjalankan kode 848 00:38:24,530 --> 00:38:27,110 dengan cara apapun, cara saya mencetak. 849 00:38:27,110 --> 00:38:30,380 >> Tapi hati-hati bila Anda benar-benar mengakses array. 850 00:38:30,380 --> 00:38:32,780 Bila Anda melihat skor i, perhatikan di sini aku benar-benar 851 00:38:32,780 --> 00:38:38,200 mengakses indeks 0 dan bukan 1 ditambah 0-- atau 1 ditambah 1, 852 00:38:38,200 --> 00:38:45,530 dalam kasus ini, indeks sehingga bahwa itu benar-benar jelas. 853 00:38:45,530 --> 00:38:48,870 Apakah setiap orang semacam OK pada bagaimana ini berjalan melalui 854 00:38:48,870 --> 00:38:51,470 dan dengan setiap indeks Aku menempatkan nilai ke array 855 00:38:51,470 --> 00:38:55,340 dan menciptakan sebuah array dengan 18 angka bahwa pengguna akan masukan? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 OKE. 858 00:38:59,821 --> 00:39:00,321 Keren. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> OKE. 861 00:39:07,400 --> 00:39:12,220 Kita sekarang pindah ke sesuatu yang cukup relevan untuk bagian ini diatur juga. 862 00:39:12,220 --> 00:39:15,020 Aku tahu di kuliah, David-- Maaf, Anda punya pertanyaan? 863 00:39:15,020 --> 00:39:16,840 >> AUDIENCE: Dapatkah Anda memperbesar itu? 864 00:39:16,840 --> 00:39:18,080 >> ANDI PENG: Ya, jadi saya mencoba. 865 00:39:18,080 --> 00:39:18,788 Tapi aku tidak tahu. 866 00:39:18,788 --> 00:39:21,437 Untuk beberapa alasan, ini versi PowerPoint 867 00:39:21,437 --> 00:39:23,270 adalah benar-benar tidak bekerja baik dengan layar. 868 00:39:23,270 --> 00:39:25,260 Jadi kita hanya akan untuk tetap seperti ini. 869 00:39:25,260 --> 00:39:27,280 Semua ini akan di-upload secara online. 870 00:39:27,280 --> 00:39:28,218 Maaf, guys. 871 00:39:28,218 --> 00:39:30,090 Ya. 872 00:39:30,090 --> 00:39:30,980 OKE. 873 00:39:30,980 --> 00:39:35,530 >> Jadi kita juga dapat memiliki string. 874 00:39:35,530 --> 00:39:39,320 Jadi jika kalian benar-benar notice-- Saya tahu Rob pergi ini di kuliah yang 875 00:39:39,320 --> 00:39:43,652 bahwa ia did-- string sebenarnya hanya sebuah array karakter, 876 00:39:43,652 --> 00:39:44,860 jika Anda berpikir tentang hal itu, kan? 877 00:39:44,860 --> 00:39:47,500 Sebuah string adalah nama atau kalimat atau kata, kan? 878 00:39:47,500 --> 00:39:52,975 >> Jika saya harus membuat string bernama Andi-- hanya nama saya, A-N-D-I. 879 00:39:52,975 --> 00:39:55,460 Anda berpikir itu hanya sebagai salah satu variabel. 880 00:39:55,460 --> 00:39:58,630 Tapi sebenarnya, itu dipecah menjadi hanya sebuah array karakter. 881 00:39:58,630 --> 00:40:01,910 Jadi itu punya karakter yang tersimpan dalam sebuah nilai array. 882 00:40:01,910 --> 00:40:05,420 Itu punya karakter n disimpan dalam Indeks kedua dan seterusnya dan sebagainya. 883 00:40:05,420 --> 00:40:08,660 >> Jadi sedemikian rupa, kita benar-benar memiliki jenis 884 00:40:08,660 --> 00:40:10,970 struktur diatur dalam menempatkan string kami. 885 00:40:10,970 --> 00:40:14,660 Jadi di sini, jika saya harus input Kata "makan" - sehingga string yang sama dengan kata 886 00:40:14,660 --> 00:40:15,540 mendapatkan tali. 887 00:40:15,540 --> 00:40:19,260 Jika saya masukan kata "makan," yang secara fisik cara bahwa komputer saya 888 00:40:19,260 --> 00:40:21,870 adalah menyimpan string dalam memori saya. 889 00:40:21,870 --> 00:40:27,140 >> Dan jika saya ingin menjalankan melalui yang dan cetak yang out-- jadi untuk ke saya 890 00:40:27,140 --> 00:40:30,890 sama dengan nol, ingat, dalam kuliah, kami ditutupi sesuatu yang disebut strlen, 891 00:40:30,890 --> 00:40:32,990 atau panjang string. 892 00:40:32,990 --> 00:40:36,520 Karena aku tidak benar-benar tahu seberapa besar array adalah 893 00:40:36,520 --> 00:40:38,210 apa pun inputting-- pengguna 894 00:40:38,210 --> 00:40:40,370 >> Sebagai contoh, saya diinput kata "makan," dan aku tahu 895 00:40:40,370 --> 00:40:41,870 itu tiga karakter, kan? 896 00:40:41,870 --> 00:40:44,700 Jadi saya bisa dimasukkan ke dalam tiga ada dan semuanya akan baik-baik. 897 00:40:44,700 --> 00:40:49,290 Tetapi jika input pengguna Anda sesuatu itu nomor yang berbeda dari nilai-nilai, 898 00:40:49,290 --> 00:40:52,760 Anda akan tidak dapat benar-benar tahu bahwa ketika Anda program kode Anda. 899 00:40:52,760 --> 00:40:56,040 >> Jadi cara kita menangani kasus uji seperti itu adalah bahwa kita memiliki sesuatu 900 00:40:56,040 --> 00:41:00,070 disebut strlen, yang hanya fungsi yang memberitahu Anda berapa lama string adalah. 901 00:41:00,070 --> 00:41:02,080 Jadi strlen kata. 902 00:41:02,080 --> 00:41:03,470 Kata saya makan. 903 00:41:03,470 --> 00:41:05,990 n sama dengan strlen kata. 904 00:41:05,990 --> 00:41:08,930 Dapatkah seseorang memberitahu saya apa yang nilai sebenarnya di sana? 905 00:41:08,930 --> 00:41:12,550 Apa n mewakili tepat sekarang, dalam contoh ini, jika saya harus makan? 906 00:41:12,550 --> 00:41:13,530 >> AUDIENCE: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI PENG: 3, persis. 908 00:41:14,520 --> 00:41:18,820 Jadi kita miliki untuk int i sama nol, n sama dengan 3, pada dasarnya. 909 00:41:18,820 --> 00:41:22,355 Dan saya akan berjalan sampai kurang dari 3i ++. 910 00:41:22,355 --> 00:41:24,980 Dan itu akan dasarnya pergi melalui dan melakukan hal yang sama. 911 00:41:24,980 --> 00:41:26,979 Ini akan mencetak setiap nilai dan memberikan 912 00:41:26,979 --> 00:41:29,700 E-A-T. Itu hanya menandakan suatu cara yang berbeda untuk menulis itu. 913 00:41:29,700 --> 00:41:31,170 Itu akan sangat membantu. 914 00:41:31,170 --> 00:41:31,670 Ya. 915 00:41:31,670 --> 00:41:35,174 AUDIENCE: Apa manfaat dari menempatkan n sama dengan kata strlen dalam yang 916 00:41:35,174 --> 00:41:36,894 untuk loop [tidak terdengar]? 917 00:41:36,894 --> 00:41:37,560 ANDI PENG: Ya. 918 00:41:37,560 --> 00:41:44,880 Jadi jika saya to-- mengatakan, misalnya, jika saya melakukan itu dan kemudian 919 00:41:44,880 --> 00:41:51,935 do-- oop-- itu, dalam kode saya, itu akan benar-benar menjadi seperti melakukan hal yang sama. 920 00:41:51,935 --> 00:41:55,060 Namun, cara yang dijelaskan David selama kuliah, jika salah satu dari kalian 921 00:41:55,060 --> 00:41:57,854 ingat, adalah bahwa, sebagai manusia, sebagai programmer, 922 00:41:57,854 --> 00:42:00,270 kita benar-benar mencoba program kami kode sehingga komputer kita memiliki 923 00:42:00,270 --> 00:42:04,070 untuk bekerja seminimal mungkin, sehingga bahwa kode kita sangat efisien. 924 00:42:04,070 --> 00:42:06,850 >> Jadi jika saya punya bahwa ada, apa akan terjadi melalui untuk loop saya 925 00:42:06,850 --> 00:42:10,790 adalah bahwa aku pertama kali mendeklarasikan variabel bernama i akan menjadi 0. 926 00:42:10,790 --> 00:42:13,350 Aku akan memeriksa, oh, apa strlen kata? 927 00:42:13,350 --> 00:42:15,000 Oh, strlen adalah 3. 928 00:42:15,000 --> 00:42:16,191 Begitu juga saya kurang dari tiga? 929 00:42:16,191 --> 00:42:16,690 Ya itu. 930 00:42:16,690 --> 00:42:17,870 Aku akan menjalankan. 931 00:42:17,870 --> 00:42:21,130 >> Dan kemudian kedua kalinya kembali sekitar loop, aku 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 cek, oh, tapi apa strlen kata? 934 00:42:25,600 --> 00:42:26,839 Oh, itu tiga. 935 00:42:26,839 --> 00:42:29,880 Dan apakah itu tampak seperti boros, setiap kali Anda menjalankan melalui loop, 936 00:42:29,880 --> 00:42:33,340 untuk memeriksa fungsi, meskipun strlen kata 937 00:42:33,340 --> 00:42:35,490 pernah benar-benar berubah? 938 00:42:35,490 --> 00:42:38,590 >> Jadi kekuatan ekstra untuk komputer. 939 00:42:38,590 --> 00:42:42,180 Ketika Anda mulai berbicara tentang hal-hal yang miliaran dan miliaran 940 00:42:42,180 --> 00:42:44,431 dan miliaran tempat panjang, bayangkan komputer Anda 941 00:42:44,431 --> 00:42:47,430 harus secara fisik pergi melalui dan memeriksa semua itu setiap saat. 942 00:42:47,430 --> 00:42:53,170 Itu sebabnya, untuk membuat hanya demi efisiensi, 943 00:42:53,170 --> 00:42:57,620 kita cenderung hanya melakukan ini, karena dengan cara ini kita hanya 944 00:42:57,620 --> 00:42:59,850 memanggil fungsi sekali di awal, 945 00:42:59,850 --> 00:43:01,766 dan bahwa setiap kali berjalan melalui itu akan 946 00:43:01,766 --> 00:43:03,789 untuk menyimpan nilai 3 ada, bahwa Anda tidak 947 00:43:03,789 --> 00:43:05,330 harus terus-menerus memeriksa setiap kali. 948 00:43:05,330 --> 00:43:05,743 Ya. 949 00:43:05,743 --> 00:43:06,409 >> AUDIENCE: Maaf. 950 00:43:06,409 --> 00:43:09,070 Hanya [tidak terdengar]. 951 00:43:09,070 --> 00:43:13,985 Bisa Anda int n sama dengan strlen dan menempatkan bahwa di atas bagian luar untuk loop 952 00:43:13,985 --> 00:43:15,364 demikian juga? 953 00:43:15,364 --> 00:43:16,030 ANDI PENG: Ya. 954 00:43:16,030 --> 00:43:17,100 Anda bisa melakukan itu, benar-benar. 955 00:43:17,100 --> 00:43:19,970 Alasan kami memilikinya di sini adalah karena cara untuk loop karya 956 00:43:19,970 --> 00:43:23,500 adalah bahwa itu disebut variabel lokal dalam arti 957 00:43:23,500 --> 00:43:26,150 bahwa segala sesuatu Anda menciptakan bagian dalam untuk loop 958 00:43:26,150 --> 00:43:27,890 hanya ada dalam untuk loop. 959 00:43:27,890 --> 00:43:31,530 >> Jadi variabel saya hanya ada pada mereka kurung. 960 00:43:31,530 --> 00:43:35,260 Dan di sini variabel n juga hanya ada pada mereka kurung. 961 00:43:35,260 --> 00:43:39,350 Jadi jika Anda menggunakan strlen dari kata beberapa kali di bawah, 962 00:43:39,350 --> 00:43:42,230 benar-benar cara terbaik untuk melakukannya akan menyatakan itu atas 963 00:43:42,230 --> 00:43:43,563 sehingga Anda tidak perlu melakukannya sekali. 964 00:43:43,563 --> 00:43:45,420 Ya. 965 00:43:45,420 --> 00:43:47,670 AUDIENCE: Mengapa Anda memiliki baris baru setelah persen 966 00:43:47,670 --> 00:43:51,300 melihat apakah Anda ingin menempatkan semua huruf sebelahnya memisahkan? 967 00:43:51,300 --> 00:43:54,140 >> ANDI PENG: Oh, saya ingin mencetak mereka semua pada setiap baris. 968 00:43:54,140 --> 00:43:54,890 Tidak peduli. 969 00:43:54,890 --> 00:43:55,890 Ya, itu format a. 970 00:43:55,890 --> 00:43:57,181 Itu pertanyaan yang bagus, meskipun. 971 00:43:57,181 --> 00:43:59,360 Ya, jika saya ingin mencetak itu semua hanya pada satu baris, 972 00:43:59,360 --> 00:44:02,731 Saya tidak akan memiliki dasbor di. 973 00:44:02,731 --> 00:44:03,230 OKE. 974 00:44:03,230 --> 00:44:06,880 Semua orang baik? 975 00:44:06,880 --> 00:44:07,500 OKE. 976 00:44:07,500 --> 00:44:08,000 Keren. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Jadi saya pikir saya telah berbicara cukup. 979 00:44:14,750 --> 00:44:20,040 Giliran kalian untuk menjalankan melalui kode dan katakan padaku apa yang salah di sini. 980 00:44:20,040 --> 00:44:21,560 Di mana bug? 981 00:44:21,560 --> 00:44:26,920 Jadi seperti yang Anda lihat, saya sudah menyatakan array baru dari tipe string bernama kelas. 982 00:44:26,920 --> 00:44:30,220 Dan aku sudah diinput Sam, Jess, dan Kim ke dalamnya. 983 00:44:30,220 --> 00:44:33,400 Dan aku mencoba untuk mencetak semua elemen array. 984 00:44:33,400 --> 00:44:36,796 Dapatkah seseorang memberitahu saya mengapa ini akan memberi saya masalah? 985 00:44:36,796 --> 00:44:39,320 Aku akan memberikan kalian 10 detik untuk berpikir tentang hal ini. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> OKE. 988 00:44:56,619 --> 00:44:57,118 Ya? 989 00:44:57,118 --> 00:45:01,972 >> AUDIENCE: Apakah pusat kiri sama dengan 3 atau [tidak terdengar]? 990 00:45:01,972 --> 00:45:02,680 ANDI PENG: Benar. 991 00:45:02,680 --> 00:45:06,784 Jadi berapa kali ini sebenarnya akan menjalankan melalui loop ini? 992 00:45:06,784 --> 00:45:07,620 >> AUDIENCE: Empat. 993 00:45:07,620 --> 00:45:08,070 >> ANDI PENG: Tepat. 994 00:45:08,070 --> 00:45:09,445 Ini akan melalui empat kali. 995 00:45:09,445 --> 00:45:12,250 Ini akan dijalankan melalui pada 0, 1, 2, dan 3, 996 00:45:12,250 --> 00:45:15,200 karena elemen mereka adalah i kurang dari atau sama dengan 3. 997 00:45:15,200 --> 00:45:16,960 Itu tidak akan berhenti ketika itu 2. 998 00:45:16,960 --> 00:45:18,800 Ini akan terus akan sampai hits 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 mencoba mengakses keempat unsur atau indeks 3, 1001 00:45:27,260 --> 00:45:30,357 Anda akan memukul suatu tempat dalam memori yang tidak ada. 1002 00:45:30,357 --> 00:45:31,690 Ini disebut null terminator. 1003 00:45:31,690 --> 00:45:32,856 Tidak ada yang akan berada di sana. 1004 00:45:32,856 --> 00:45:35,324 Komputer Anda tidak akan sangat senang dengan Anda. 1005 00:45:35,324 --> 00:45:36,170 Ya. 1006 00:45:36,170 --> 00:45:38,430 Apakah ada yang punya pertanyaan mengapa yang terjadi? 1007 00:45:38,430 --> 00:45:39,679 Itu area umum untuk menghindari. 1008 00:45:39,679 --> 00:45:40,712 Ya. 1009 00:45:40,712 --> 00:45:45,777 >> AUDIENCE: Apakah bukan yang pertama geser juga memiliki serangkaian 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: No. 1011 00:45:46,360 --> 00:45:49,610 Jadi pada dasarnya, ketika Anda membuat sebuah array, 1012 00:45:49,610 --> 00:45:51,540 bahwa braket yang tepat ada, yang number-- semua 1013 00:45:51,540 --> 00:45:53,480 itu memberitahu Anda adalah bagaimana banyak unsur yang saya miliki. 1014 00:45:53,480 --> 00:45:55,840 Ini tidak benar-benar mengatakan saya indeks apa pun. 1015 00:45:55,840 --> 00:45:58,760 Jadi dalam hal ini, aku tahu aku ingin menulis dengan tiga tempat, 1016 00:45:58,760 --> 00:46:02,690 dengan tiga tempat fisik untuk terus apa pun yang saya ingin terus. 1017 00:46:02,690 --> 00:46:04,510 Jadi itu sebabnya nomor tiga adalah ada. 1018 00:46:04,510 --> 00:46:06,560 Namun, jika saya ingin untuk benar-benar mengaksesnya, 1019 00:46:06,560 --> 00:46:11,220 jika saya ingin mengatakan, printf jumlah braket kelas, maka 1020 00:46:11,220 --> 00:46:14,560 Anda akan benar-benar menempatkan indeks fisik ada. 1021 00:46:14,560 --> 00:46:16,330 Ya, pertanyaan yang bagus. 1022 00:46:16,330 --> 00:46:20,065 >> AUDIENCE: Jadi adalah fisik Indeks seharusnya [tidak terdengar]? 1023 00:46:20,065 --> 00:46:20,940 ANDI PENG: Maaf. 1024 00:46:20,940 --> 00:46:21,500 Anda dapat berbicara sedikit? 1025 00:46:21,500 --> 00:46:24,208 >> AUDIENCE: Jadi adalah indeks fisik [Tidak terdengar] masing-masing kotak? 1026 00:46:24,208 --> 00:46:25,260 [Tak terdengar]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI PENG: Ya. 1028 00:46:26,040 --> 00:46:28,970 Jadi aku akan kembali ke sini. 1029 00:46:28,970 --> 00:46:31,120 Pikirkan di sini. 1030 00:46:31,120 --> 00:46:32,820 Kami memiliki sebuah array ukuran 3. 1031 00:46:32,820 --> 00:46:35,540 Ada tiga tempat, seperti, placeholder fisik di sini. 1032 00:46:35,540 --> 00:46:37,620 Tapi mereka bernama 0, 1, dan 2. 1033 00:46:37,620 --> 00:46:40,700 Jadi jika saya ingin mengaksesnya, cara yang saya mengaksesnya 1034 00:46:40,700 --> 00:46:43,480 adalah printf dari apa pun yang saya inginkan di sini. 1035 00:46:43,480 --> 00:46:45,485 Anda harus mencetak keluar nama itu, 1036 00:46:45,485 --> 00:46:47,610 karena kemudian komputer tahu, oh, saya perlu melihat 1037 00:46:47,610 --> 00:46:51,391 dalam array ini untuk indeks 0. 1038 00:46:51,391 --> 00:46:51,890 Ya. 1039 00:46:51,890 --> 00:46:53,306 Tapi ukuran itu tidak berubah. 1040 00:46:53,306 --> 00:46:55,492 Ukurannya 3, terlepas bagaimana Anda label mereka. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 OKE. 1043 00:46:58,820 --> 00:47:01,387 Semua orang baik? 1044 00:47:01,387 --> 00:47:02,970 AUDIENCE: Jadi setiap kali saya [tidak terdengar]? 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 hal ini, kita tidak benar-benar masuk ke dalamnya sekarang pada kursus. 1048 00:47:13,270 --> 00:47:16,760 Tapi tahu bahwa string-- seperti saya katakan sebelumnya, string pada dasarnya 1049 00:47:16,760 --> 00:47:18,440 array karakter. 1050 00:47:18,440 --> 00:47:21,430 Jadi jika saya membuat sebuah array string, aku agak 1051 00:47:21,430 --> 00:47:24,430 memiliki sebuah array array karakter, kan? 1052 00:47:24,430 --> 00:47:27,720 >> Jadi dalam hal ini, karena saya memiliki sebuah array string, 1053 00:47:27,720 --> 00:47:31,340 jika Anda adalah untuk memasukkan kata yang sangat panjang, yang masih membutuhkan hanya satu ruang, 1054 00:47:31,340 --> 00:47:33,230 karena itulah satu string. 1055 00:47:33,230 --> 00:47:37,492 Tetapi jika Anda adalah untuk memikirkan karakter array itu, 1056 00:47:37,492 --> 00:47:40,450 maka yang mengambil lebih banyak karakter dari salah satu kata lain 1057 00:47:40,450 --> 00:47:41,372 adalah. 1058 00:47:41,372 --> 00:47:42,830 Tidak benar-benar penting untuk sekarang. 1059 00:47:42,830 --> 00:47:44,921 Tapi itu hanya umumnya bagaimana itu bekerja. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> OKE. 1062 00:47:50,560 --> 00:47:55,840 Jadi ini adalah sesuatu yang saya akan membiarkan Anda melakukan banyak selama semester. 1063 00:47:55,840 --> 00:47:57,500 Saya perlu istirahat suara saya. 1064 00:47:57,500 --> 00:47:59,530 Kalian harus merangsang diri sendiri. 1065 00:47:59,530 --> 00:48:02,300 Banyak dari Anda mungkin harus tidur sekarang. 1066 00:48:02,300 --> 00:48:05,960 Saya memasukkan masalah random di mana kita sebagai sebuah kelas atau Anda 1067 00:48:05,960 --> 00:48:09,480 dengan pasangan di samping Anda akan untuk menghabiskan beberapa menit membahas 1068 00:48:09,480 --> 00:48:14,980 tentang bagaimana kita akan pergi tentang pemecahan atau membuat program seperti ini. 1069 00:48:14,980 --> 00:48:17,100 >> Jadi sekarang, kita ingin untuk membuat sebuah program-- 1070 00:48:17,100 --> 00:48:19,560 kita akan menyebutnya upper.c-- yang mengubah 1071 00:48:19,560 --> 00:48:24,787 kata huruf kecil ke kelas atas huruf besar string--, maaf. 1072 00:48:24,787 --> 00:48:26,370 Kata dalam string, maaf, ini identik. 1073 00:48:26,370 --> 00:48:28,370 Aku akan mengubahnya berarti hal yang sama. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Ya. 1076 00:48:33,499 --> 00:48:34,540 Ambil beberapa menit. 1077 00:48:34,540 --> 00:48:37,130 Tidak harus ditulis dalam bahasa apapun. 1078 00:48:37,130 --> 00:48:39,890 Hanya dalam kode pseudo atau logis bagaimana kita akan bahkan 1079 00:48:39,890 --> 00:48:42,083 pergi untuk melakukan masalah seperti itu. 1080 00:48:42,083 --> 00:48:42,583 Ya. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE PERCAKAPAN] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Saya juga melihat bahwa kalian can-- Aku agak melihat sudah program. 1085 00:49:22,130 --> 00:49:24,600 Saya kira saya kurangnya Modus presenter adalah masalah. 1086 00:49:24,600 --> 00:49:27,410 Tapi tidak apa-apa. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE PERCAKAPAN] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Ya, silahkan, guys. 1090 00:50:04,380 --> 00:50:05,400 Ayo mendapatkan permen. 1091 00:50:05,400 --> 00:50:06,372 Ayo mendapatkan permen. 1092 00:50:06,372 --> 00:50:07,698 >> AUDIENCE: Ya! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE PERCAKAPAN] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI PENG: Juga, yeah, Saya akan mulai melemparkan permen 1096 00:50:18,100 --> 00:50:20,280 pada orang-orang yang tidak menjawab pertanyaan. 1097 00:50:20,280 --> 00:50:22,260 Jadi Anda harus semua pertanyaan jawaban. 1098 00:50:22,260 --> 00:50:24,895 Atau saya kira orang-orang yang jangan menjawab pertanyaan. 1099 00:50:24,895 --> 00:50:26,070 Ya, sebaliknya. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE PERCAKAPAN] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 AUDIENCE: [tidak terdengar] 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 Ya. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE PERCAKAPAN] 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 detik lebih. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE PERCAKAPAN] 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 mulai mencoba untuk sebenarnya secara fisik menulis kode, 1114 00:52:14,920 --> 00:52:20,650 kebiasaan yang baik untuk mengembangkan adalah bahwa kami ingin jenis pertama dari alasan 1115 00:52:20,650 --> 00:52:22,737 keluar secara logis bagaimana kita akan melakukannya. 1116 00:52:22,737 --> 00:52:24,570 Anda ingin memastikan, sebelum Anda secara fisik 1117 00:52:24,570 --> 00:52:27,210 mulai mencoba untuk kode di Mario, bahwa Anda membuat 1118 00:52:27,210 --> 00:52:28,870 Pastikan bahwa Anda memiliki pseudocode Anda. 1119 00:52:28,870 --> 00:52:31,235 Yang membawa Anda melalui apa yang Anda butuhkan untuk membuat sehingga 1120 00:52:31,235 --> 00:52:33,360 bahwa, ketika Anda secara fisik menulis program Anda kemudian, 1121 00:52:33,360 --> 00:52:36,640 Anda akan lebih mampu untuk menangkap kesalahan dalam kode Anda dan hal-hal seperti itu. 1122 00:52:36,640 --> 00:52:40,460 >> Jadi kita akan hanya mulai by-- dalam bahasa Inggris, dalam pseudocode, 1123 00:52:40,460 --> 00:52:43,320 apakah ada yang ingin memberikan saya penjelasan generik 1124 00:52:43,320 --> 00:52:46,250 bagaimana kita akan pergi untuk melakukan ini? 1125 00:52:46,250 --> 00:52:48,102 Ya. 1126 00:52:48,102 --> 00:52:49,664 >> AUDIENCE: [tidak terdengar]. 1127 00:52:49,664 --> 00:52:50,830 ANDI PENG: Tentu, tidak ada kekhawatiran. 1128 00:52:50,830 --> 00:52:57,233 AUDIENCE: Bisakah Anda meminta untuk atau meminta seseorang untuk mendapatkan tali 1-- ya, string, 1129 00:52:57,233 --> 00:52:58,160 dan kemudian-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI PENG: Ya, jadi ini adalah awal yang baik. 1131 00:52:59,826 --> 00:53:01,972 Saya akan mulai mengetik, maaf, seperti yang Anda berbicara. 1132 00:53:01,972 --> 00:53:02,471 So-- 1133 00:53:02,471 --> 00:53:05,698 >> AUDIENCE: huruf kecil --the nomor yang lebih tinggi, kan? 1134 00:53:05,698 --> 00:53:08,519 Atau huruf kecil memiliki nomor tinggi? 1135 00:53:08,519 --> 00:53:09,310 ANDI PENG: Tepat. 1136 00:53:09,310 --> 00:53:16,156 AUDIENCE: Jadi kita kurangi 32 dari apa pun [tidak terdengar]. 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 Jadi kita semacam memiliki pengertian umum bagaimana bekerja tentang masalah ini. 1140 00:53:35,020 --> 00:53:40,060 Mengetahui bahwa kami telah belajar jenis cara fisik yang string 1141 00:53:40,060 --> 00:53:43,320 disimpan dalam memori, apa yang Anda sudah 1142 00:53:43,320 --> 00:53:45,920 tahu bahwa Anda akan mungkin harus menulis dalam kode Anda 1143 00:53:45,920 --> 00:53:48,288 untuk bergerak melalui string? 1144 00:53:48,288 --> 00:53:49,259 >> AUDIENCE: Untuk lingkaran. 1145 00:53:49,259 --> 00:53:50,550 ANDI PENG: A untuk loop, persis. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Besar. 1148 00:53:57,220 --> 00:54:00,539 Jadi kita semacam memiliki generik pseudocode ditulis 1149 00:54:00,539 --> 00:54:02,330 jenis memberikan Anda mencatat pada bagaimana Anda 1150 00:54:02,330 --> 00:54:03,900 akan bergerak memecahkan masalah. 1151 00:54:03,900 --> 00:54:06,150 Sekarang bahwa Anda memiliki ini, Anda dapat referensi untuk nanti 1152 00:54:06,150 --> 00:54:08,233 pada saat Anda mencoba untuk benar-benar menulis kode Anda. 1153 00:54:08,233 --> 00:54:10,240 Jadi kita benar-benar bisa pergi di sini. 1154 00:54:10,240 --> 00:54:25,130 Dan aku punya fungsi yang disebut upper.c-- ada itu is-- hanya template kosong 1155 00:54:25,130 --> 00:54:28,510 sekarang bahwa kalian akan membantu saya mencari tahu tentang cara menulis 1156 00:54:28,510 --> 00:54:30,430 baris ini dari code-- tidak baris kode. 1157 00:54:30,430 --> 00:54:32,890 Ini akan menjadi beberapa baris kode. 1158 00:54:32,890 --> 00:54:35,710 >> Ketika memulai apapun dari pset kosong, apa 1159 00:54:35,710 --> 00:54:37,418 hal pertama yang saya butuhkan ingat untuk melakukannya? 1160 00:54:37,418 --> 00:54:39,290 >> AUDIENCE: [tidak terdengar]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI PENG: Great Yep. 1162 00:54:41,000 --> 00:54:41,500 Sertakan. 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 salah satu kesalahan yang paling mudah orang 1166 00:54:49,640 --> 00:54:51,598 akan membuat ketika mereka menulis, adalah bahwa mereka akan 1167 00:54:51,598 --> 00:54:54,180 lupa untuk menyertakan sebuah perpustakaan penting yang mereka butuhkan. 1168 00:54:54,180 --> 00:54:57,689 Jadi jika jam kantor dan Anda seperti, Saya tidak tahu mengapa kode saya tidak bekerja. 1169 00:54:57,689 --> 00:54:59,230 Dapatkah Anda memberitahu saya mengapa hal itu tidak bekerja? 1170 00:54:59,230 --> 00:55:00,730 Kami akan mengatakan apakah Anda # include? 1171 00:55:00,730 --> 00:55:02,520 Anda harus # include itu. 1172 00:55:02,520 --> 00:55:03,270 OKE. 1173 00:55:03,270 --> 00:55:07,230 >> Jadi kita punya standar I / O di sini. 1174 00:55:07,230 --> 00:55:10,740 Adalah bahwa hanya perpustakaan kita akan butuhkan di sini? 1175 00:55:10,740 --> 00:55:12,681 Apa lagi yang akan kita lakukan? 1176 00:55:12,681 --> 00:55:13,180 Maaf. 1177 00:55:13,180 --> 00:55:14,562 Seseorang hanya berteriak itu? 1178 00:55:14,562 --> 00:55:15,666 >> AUDIENCE: [tidak terdengar]. 1179 00:55:15,666 --> 00:55:16,666 ANDI PENG: Ada Anda pergi. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 OKE. 1182 00:55:21,440 --> 00:55:26,070 Dan bagaimana aku pergi tentang memulai apapun fungsi, apapun fungsi utama 1183 00:55:26,070 --> 00:55:28,760 dalam program kami? 1184 00:55:28,760 --> 00:55:30,020 Int main. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 OKE. 1187 00:55:35,030 --> 00:55:35,970 Apa yang harus saya dimasukkan ke dalam sini? 1188 00:55:35,970 --> 00:55:37,640 Apa hal pertama yang Anda ingin lakukan? 1189 00:55:37,640 --> 00:55:39,910 Jika kita ingin mendapatkan string dari pengguna, 1190 00:55:39,910 --> 00:55:43,870 apa yang kita akan memiliki untuk melakukan pada baris pertama ini? 1191 00:55:43,870 --> 00:55:46,120 Maaf, kalian hanya merasa bebas untuk berbicara dan keras. 1192 00:55:46,120 --> 00:55:47,123 Hanya berteriak apa pun. 1193 00:55:47,123 --> 00:55:48,772 >> AUDIENCE: Tanyakan pengguna? 1194 00:55:48,772 --> 00:55:49,980 ANDI PENG: Bagaimana kita melakukannya? 1195 00:55:49,980 --> 00:55:51,873 Ask-- aku akan mengetik "meminta pengguna"? 1196 00:55:51,873 --> 00:55:52,600 >> AUDIENCE: 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 ingin printf? 1200 00:55:57,372 --> 00:55:58,776 >> AUDIENCE: Ketik 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 aku komputer. 1204 00:56:05,430 --> 00:56:08,475 Secara fisik saya kirim setiap langkah bahwa saya harus mengetikkan di sini? 1205 00:56:08,475 --> 00:56:09,600 Apakah aku melakukan sesuatu yang salah? 1206 00:56:09,600 --> 00:56:10,743 Haruskah saya telah mengetik sesuatu? 1207 00:56:10,743 --> 00:56:11,690 >> AUDIENCE: Anda perlu tanda kutip. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI PENG: Saya perlu tanda kutip? 1209 00:56:12,380 --> 00:56:12,880 OKE. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 OKE. 1212 00:56:16,297 --> 00:56:17,698 >> AUDIENCE: Dan baris kemudian baru. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Titik koma. 1215 00:56:22,465 --> 00:56:23,340 ANDI PENG: titik koma? 1216 00:56:23,340 --> 00:56:24,060 OKE. 1217 00:56:24,060 --> 00:56:24,560 Baik. 1218 00:56:24,560 --> 00:56:27,060 >> AUDIENCE: Dan mungkin menentukan yang Anda inginkan 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 menertawakan saya lupa untuk menempatkan titik koma. 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 menempatkan titik koma, dan itu 1224 00:56:38,260 --> 00:56:41,116 akan membawa Anda tiga jam untuk mencari mengapa kode Anda tidak bekerja. 1225 00:56:41,116 --> 00:56:42,240 Ini terjadi pada kita semua. 1226 00:56:42,240 --> 00:56:43,950 Mungkin akan terjadi pada Anda. 1227 00:56:43,950 --> 00:56:46,352 Dapatkan dalam kebiasaan baik menggunakan titik koma. 1228 00:56:46,352 --> 00:56:46,852 OKE. 1229 00:56:46,852 --> 00:56:49,010 >> AUDIENCE: Apakah Anda ingin untuk melakukan backslash di? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI PENG: Tentu. 1231 00:56:50,398 --> 00:56:51,856 Apakah Anda ingin melakukan backslash di? 1232 00:56:51,856 --> 00:56:53,020 >> AUDIENCE: Ya. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI PENG: Great. 1234 00:56:54,330 --> 00:56:54,830 OKE. 1235 00:56:54,830 --> 00:56:57,872 Apa yang harus saya lakukan selanjutnya? 1236 00:56:57,872 --> 00:56:58,964 >> AUDIENCE: 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 ketik? 1240 00:57:03,830 --> 00:57:04,233 Seseorang? 1241 00:57:04,233 --> 00:57:05,040 >> AUDIENCE: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI PENG: String s. 1243 00:57:05,873 --> 00:57:07,251 AUDIENCE: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI PENG: Seseorang, bisa Anda ceritakan di mana 1245 00:57:09,000 --> 00:57:12,000 Fungsi GetString ini datang dari? 1246 00:57:12,000 --> 00:57:13,660 >> AUDIENCE: 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 pikir itu dari string.h? 1249 00:57:16,715 --> 00:57:17,830 >> AUDIENCE: [tidak terdengar]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI PENG: Ada Anda pergi. 1251 00:57:18,830 --> 00:57:21,280 Ini dari CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Jika Anda selalu bingung mana file library adalah atau file header, 1253 00:57:24,530 --> 00:57:28,450 google harfiah string.h, dan saya akan memberitahu Anda 1254 00:57:28,450 --> 00:57:30,450 apa semua fungsi yang berada di string.h. 1255 00:57:30,450 --> 00:57:31,340 OKE. 1256 00:57:31,340 --> 00:57:35,210 >> Jadi sekarang bahwa saya telah membuat string dan saya sudah meminta pengguna untuk itu, 1257 00:57:35,210 --> 00:57:38,770 Aku sudah disimpan dalam variabel bernama s, apa yang harus saya lakukan sekarang? 1258 00:57:38,770 --> 00:57:40,652 >> AUDIENCE: Periksa apakah itu dalam huruf kecil. 1259 00:57:40,652 --> 00:57:41,360 ANDI PENG: Maaf? 1260 00:57:41,360 --> 00:57:42,545 AUDIENCE: Periksa apakah itu dalam huruf kecil. 1261 00:57:42,545 --> 00:57:44,045 ANDI PENG: Baiklah, mari kita lakukan itu. 1262 00:57:44,045 --> 00:57:45,857 Bagaimana aku melakukan itu? 1263 00:57:45,857 --> 00:57:47,940 Sebenarnya, untuk keperluan kelas sekarang, 1264 00:57:47,940 --> 00:57:50,330 kita hanya akan berasumsi bahwa segala sesuatu 1265 00:57:50,330 --> 00:57:52,620 bahwa kita masukan sudah dalam huruf kecil. 1266 00:57:52,620 --> 00:57:55,430 Jika Anda ingin memeriksa, Anda akan hanya menambahkan pernyataan bersyarat 1267 00:57:55,430 --> 00:57:59,640 yang memeriksa, yang berlari melalui setiap elemen array tunggal 1268 00:57:59,640 --> 00:58:02,540 dan memeriksa apakah itu antara nilai-nilai tertentu. 1269 00:58:02,540 --> 00:58:05,627 Saya lupa apa nomor nilai-nilai dari huruf kecil yang. 1270 00:58:05,627 --> 00:58:07,210 Anda dapat mencarinya di meja ASCII. 1271 00:58:07,210 --> 00:58:08,800 Tapi ya, itu adalah titik benar-benar baik. 1272 00:58:08,800 --> 00:58:11,758 Tapi sekarang, kita hanya akan berasumsi bahwa semua string yang kita masukan 1273 00:58:11,758 --> 00:58:13,130 adalah dalam huruf kecil. 1274 00:58:13,130 --> 00:58:13,870 OKE. 1275 00:58:13,870 --> 00:58:18,069 >> Jadi bagaimana aku pergi tentang masalah ini selanjutnya? 1276 00:58:18,069 --> 00:58:18,860 AUDIENCE: Untuk lingkaran. 1277 00:58:18,860 --> 00:58:19,340 ANDI PENG: Untuk lingkaran? 1278 00:58:19,340 --> 00:58:19,839 OKE. 1279 00:58:19,839 --> 00:58:20,847 Katakan padaku apa yang harus mengetik. 1280 00:58:20,847 --> 00:58:25,230 >> AUDIENCE: 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 >> AUDIENCE: Oh, benar-benar, maka Anda melakukan koma dan melakukan n equals strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI PENG: hal penting Jadi yang saya pikir dia melihat di sini 1284 00:58:38,940 --> 00:58:42,936 adalah bahwa kita tidak harus mengatakan int n kedua kalinya kami melakukan ini. 1285 00:58:42,936 --> 00:58:45,060 Hanya tahu bahwa dalam untuk lingkaran ketika Anda menyatakan, 1286 00:58:45,060 --> 00:58:47,934 Anda benar-benar tidak perlu int dari kedua kalinya Anda melakukan variabel. 1287 00:58:47,934 --> 00:58:51,202 Anda dapat mengatakan n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> AUDIENCE: Of s. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI PENG: s. 1290 00:58:53,510 --> 00:58:54,706 OKE. 1291 00:58:54,706 --> 00:58:58,370 >> AUDIENCE: Kemudian titik koma. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI PENG: Tentu. 1293 00:59:00,130 --> 00:59:04,050 >> AUDIENCE: Dan kemudian [tidak terdengar] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Kemudian i ++. 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 inginkan di dalam ini untuk loop sekarang? 1299 00:59:14,690 --> 00:59:17,820 Ingat, jika kita akan berjalan melalui string dan dijalankan melalui sebuah array, 1300 00:59:17,820 --> 00:59:19,287 kami ingin memeriksa hal-hal di dalamnya. 1301 00:59:19,287 --> 00:59:20,370 Apa yang akan kita butuhkan? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Ini adalah jenis bagian yang sulit sekarang. 1304 00:59:26,900 --> 00:59:27,960 Ada yang punya menebak? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> OKE. 1307 00:59:34,690 --> 00:59:37,830 Jadi pertama, bagaimana kita bahkan mengakses? 1308 00:59:37,830 --> 00:59:41,610 Bagaimana kita bahkan cek pertama atau mengakses sebuah elemen dalam array? 1309 00:59:41,610 --> 00:59:42,920 Bagaimana kita melakukannya? 1310 00:59:42,920 --> 00:59:47,120 Apa notasi yang kita gunakan untuk melakukan itu? 1311 00:59:47,120 --> 00:59:50,920 Apa nama dari array ini disebut? 1312 00:59:50,920 --> 00:59:52,400 Ini disebut s, kan? 1313 00:59:52,400 --> 00:59:54,850 >> Ingat, string apapun selalu array. 1314 00:59:54,850 --> 00:59:58,210 Jadi s braket saya, kan? 1315 00:59:58,210 --> 01:00:01,360 Karena itu adalah nilai saat ini atau nilai indeks kita memeriksa. 1316 01:00:01,360 --> 01:00:05,156 Dan kita akan mengatur bahwa sama to-- kita ingin nilai huruf kecil, kan? 1317 01:00:05,156 --> 01:00:07,530 Kami ingin mengubah itu lower-- Maaf, kami menginginkan huruf besar. 1318 01:00:07,530 --> 01:00:10,014 Kami ingin mengubah huruf kecil yang nilai ke huruf besar. 1319 01:00:10,014 --> 01:00:11,805 Dan jadi like-- aku minta maaf, siapa nama kamu? 1320 01:00:11,805 --> 01:00:12,580 >> AUDIENCE: Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI PENG: Maaf? 1322 01:00:12,940 --> 01:00:13,280 >> AUDIENCE: Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI PENG: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Seperti Heidi mengatakan awalnya, kita mungkin 1325 01:00:15,850 --> 01:00:20,330 akan membutuhkan the-- kami mungkin akan harus mengurangi 1326 01:00:20,330 --> 01:00:22,630 32 dari charc apa pun itu, kan? 1327 01:00:22,630 --> 01:00:24,680 Karena pada ASCII tabel, perbedaan 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 Jadi ketika kita melakukan ini, kita mungkin akan ingin mengurangi 32, kan? 1330 01:00:31,290 --> 01:00:33,910 >> Jadi kita akan melakukan s i. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Apakah semua orang mengerti mengapa aku melakukan itu? 1333 01:00:41,200 --> 01:00:45,760 Karena sekarang, dalam array kita, kami sedang memeriksa indeks 0, kan? 1334 01:00:45,760 --> 01:00:49,190 Dan di indeks 0 dari String, itulah karakter pertama. 1335 01:00:49,190 --> 01:00:51,820 Dan karakter yang kita akan untuk menganggap itu huruf kecil. 1336 01:00:51,820 --> 01:00:55,980 Jika kita ingin membuat huruf besar, kami harus mengurangi 32 dari nilainya, 1337 01:00:55,980 --> 01:00:58,620 karena dalam ASCII kami tabel, itulah bagaimana kita mendapatkannya 1338 01:00:58,620 --> 01:01:01,600 ke depan sesuai nilai yang membuatnya huruf besar. 1339 01:01:01,600 --> 01:01:03,714 Apakah setiap orang memahami bahwa? 1340 01:01:03,714 --> 01:01:04,213 Ya. 1341 01:01:04,213 --> 01:01:06,530 >> AUDIENCE: Bisakah Anda juga jangan huruf kecil minus-- sebuah 1342 01:01:06,530 --> 01:01:08,080 >> ANDI PENG: Ya, jadi itu sebenarnya sangat baik. 1343 01:01:08,080 --> 01:01:10,455 Aku akan datang kembali ke pertanyaan setelah kami melakukan ini. 1344 01:01:10,455 --> 01:01:11,060 Ya. 1345 01:01:11,060 --> 01:01:13,940 Dan kemudian jika saya ingin melihat apa yang terjadi, 1346 01:01:13,940 --> 01:01:16,180 Aku mungkin akan ingin mencetak, kan? 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 >> AUDIENCE: printf persen c backslash [tidak terdengar]. 1349 01:01:29,160 --> 01:01:33,570 Itulah nilai [tidak terdengar] 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 AUDIENCE: [tidak terdengar]. 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 yang kamu pikirkan? 1355 01:01:40,600 --> 01:01:44,016 >> AUDIENCE: Yah, aku wouldn't-- Saya kira saya tidak akan bring-- 1356 01:01:44,016 --> 01:01:46,944 Saya akan bawa keluar dalam, karena [tidak terdengar]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI PENG: Oh, Anda akan melakukannya? 1359 01:01:51,392 --> 01:01:53,867 AUDIENCE: Ya. 1360 01:01:53,867 --> 01:01:56,700 ANDI PENG: Mari kita tinggalkan jalan itu, dan saya akan menjelaskan mengapa kemudian. 1361 01:01:56,700 --> 01:01:58,533 Ingat, bahkan ketika Anda memiliki tempat dudukan, 1362 01:01:58,533 --> 01:02:00,701 Anda ingin menempatkan tanda kurung 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 padat di sini. 1365 01:02:04,810 --> 01:02:06,370 Mari kita jalankan dan melihat apakah itu mengkompilasi. 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 terlihat terlalu bagus. 1370 01:02:13,340 --> 01:02:14,507 Mengapa hal ini terjadi? 1371 01:02:14,507 --> 01:02:17,340 Seperti kesalahan, Anda ingin pergi kembali dan mulai dengan yang pertama, 1372 01:02:17,340 --> 01:02:20,630 karena biasanya penyebab satu kesalahan banyak kesalahan lain setelah itu. 1373 01:02:20,630 --> 01:02:26,700 Di sini kita melihat upper.c: 18: 25, yang memberitahu saya dalam program ini bernama upper.c, 1374 01:02:26,700 --> 01:02:33,800 on line 18, kesalahan secara implisit menyatakan perpustakaan fungsi strlen dengan jenis 1375 01:02:33,800 --> 01:02:36,330 bla unassigned--, saya tidak tahu apa yang terjadi setelah itu. 1376 01:02:36,330 --> 01:02:39,990 >> Semua itu mengatakan sekarang adalah sesuatu yang terjadi strlen tersebut. 1377 01:02:39,990 --> 01:02:43,520 Dan komputer bingung, karena itu seperti, aku tidak tahu apa strlen adalah? 1378 01:02:43,520 --> 01:02:45,520 Apa yang mungkin memberitahu Anda Anda hilang? 1379 01:02:45,520 --> 01:02:46,490 >> AUDIENCE: Kau hilang [tidak terdengar]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI PENG: Kau benar. 1381 01:02:47,630 --> 01:02:49,510 Tepat. 1382 01:02:49,510 --> 01:02:52,140 Jadi ini adalah di mana itu penting untuk memastikan 1383 01:02:52,140 --> 01:02:56,970 bahwa setiap fungsi yang Anda gunakan dalam Anda kode adalah memiliki header yang benar 1384 01:02:56,970 --> 01:02:59,660 file untuk perpustakaan, atau yang lain Anda akan mendapatkan banyak kesalahan 1385 01:02:59,660 --> 01:03:01,150 dan kode Anda tidak akan untuk mengetahui apa yang terjadi. 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 ketika kita mencoba untuk mengkompilasi atas. 1388 01:03:06,270 --> 01:03:08,410 Kompilasi benar. 1389 01:03:08,410 --> 01:03:09,960 Mari kita menjalankan program ini. 1390 01:03:09,960 --> 01:03:12,000 Jadi mengetik sesuatu dalam huruf kecil. 1391 01:03:12,000 --> 01:03:14,920 Apa yang kalian ingin mengetik? 1392 01:03:14,920 --> 01:03:16,546 Berteriak sesuatu. 1393 01:03:16,546 --> 01:03:17,920 Baiklah, Charly hanya berjalan di. 1394 01:03:17,920 --> 01:03:18,990 Kami akan ketik nama Charly ini. 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 berteriak dan meludahkan 1398 01:03:27,742 --> 01:03:28,575 Charly dalam huruf besar. 1399 01:03:28,575 --> 01:03:30,830 Hore! 1400 01:03:30,830 --> 01:03:33,430 tidak semua orang mengerti bagaimana Aku pergi tentang memecahkan itu? 1401 01:03:33,430 --> 01:03:36,190 Cara yang saya bisa memanipulasi menggunakan bilangan bulat 1402 01:03:36,190 --> 01:03:39,410 untuk memecahkan sesuatu yang Saya ingin melakukan di string, 1403 01:03:39,410 --> 01:03:44,390 karena karakter dan bilangan bulat dapat dirujuk dengan cara yang sama karena 1404 01:03:44,390 --> 01:03:45,540 pemetaan ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> Jadi kembali ke titik Anda, jika saya ingin menempatkan di sini bukannya 32 1406 01:03:52,890 --> 01:03:58,959 huruf A minus huruf kecil hanya seperti itu, yang akan bekerja sama juga, 1407 01:03:58,959 --> 01:04:01,750 karena itulah hanya hanya Perbedaan antara dua nilai. 1408 01:04:01,750 --> 01:04:09,570 Jika saya ingin membuat charly again-- ini. 1409 01:04:09,570 --> 01:04:10,320 Oh tidak. 1410 01:04:10,320 --> 01:04:11,820 Saya pikir kami pergi dengan cara yang salah, ya? 1411 01:04:11,820 --> 01:04:13,260 >> AUDIENCE: [tidak terdengar] huruf kecil a. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI PENG: Ada Anda pergi. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Yep. 1415 01:04:22,880 --> 01:04:24,920 Dan keluar meludah charly. 1416 01:04:24,920 --> 01:04:28,020 Jadi berhati-hatilah saat Anda mengurangkan nilai 1417 01:04:28,020 --> 01:04:30,400 ingat mana yang lebih besar dari yang lain. 1418 01:04:30,400 --> 01:04:35,220 Sebagai contoh, di sini aku lupa bahwa huruf kecil yang sebenarnya 1419 01:04:35,220 --> 01:04:38,540 lebih besar dari huruf besar A. Jadi ketika saya mencoba untuk mengurangi mereka dengan cara lain 1420 01:04:38,540 --> 01:04:40,600 sekitar, aku negatif 32. 1421 01:04:40,600 --> 01:04:42,800 Dan komputer saya seperti, Saya tidak tahu apa itu. 1422 01:04:42,800 --> 01:04:45,810 Ini kemungkinan hanya beberapa acak Nilai yang tidak sangat baik. 1423 01:04:45,810 --> 01:04:48,760 Dan jadi pastikan bahwa Anda mengurangkan dalam panjang yang benar 1424 01:04:48,760 --> 01:04:52,831 untuk menemukan karakter yang Anda inginkan. 1425 01:04:52,831 --> 01:04:53,330 OKE. 1426 01:04:53,330 --> 01:04:58,550 Apakah ada yang bingung tentang bagaimana kita pergi tentang menulis fungsi ini? 1427 01:04:58,550 --> 01:04:59,180 OKE. 1428 01:04:59,180 --> 01:05:04,830 Jadi sebenarnya, fungsi sudah ada di perpustakaan disebut ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Disebut ctype.h perpustakaan. 1430 01:05:06,417 --> 01:05:08,500 Fungsi ini sebenarnya sudah ditulis untuk Anda. 1431 01:05:08,500 --> 01:05:10,820 Ini disebut untuk bagian atas. 1432 01:05:10,820 --> 01:05:13,027 >> Dan untuk tujuan pset ini, Anda akan 1433 01:05:13,027 --> 01:05:15,860 untuk menemukan bahwa Anda benar-benar ingin menggunakan banyak fungsi yang terkandung 1434 01:05:15,860 --> 01:05:17,390 dalam perpustakaan ctype. 1435 01:05:17,390 --> 01:05:21,040 Untuk bagian atas, untuk menurunkan, adalah atas, adalah lower-- mereka adalah semua fungsi 1436 01:05:21,040 --> 01:05:24,914 Anda akan dapat menggunakan sangat, sangat cepat dalam kode Anda sendiri yang 1437 01:05:24,914 --> 01:05:26,080 tidak persis apa yang dilakukan. 1438 01:05:26,080 --> 01:05:28,941 Kami menulis bagaimana mengkonversi string ke huruf besar. 1439 01:05:28,941 --> 01:05:31,440 Tapi ini sebenarnya kode bahwa orang lain telah menulis 1440 01:05:31,440 --> 01:05:33,800 dan bahwa Anda dapat mengakses melalui fungsi yang berbeda. 1441 01:05:33,800 --> 01:05:34,300 Ya? 1442 01:05:34,300 --> 01:05:39,570 >> AUDIENCE: Jadi Anda hanya menyalin A di sana dan melakukannya untuk setiap huruf? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI PENG: Ya, karena saya tidak melakukan peduli tentang nilai-nilai dari. 1444 01:05:42,070 --> 01:05:44,540 Aku hanya peduli bahwa perbedaan di antara mereka adalah 32, kan? 1445 01:05:44,540 --> 01:05:48,210 Perbedaan antara huruf kecil b dan huruf besar B juga 32. 1446 01:05:48,210 --> 01:05:50,860 Dan perbedaan antara c dan huruf besar C selalu 32. 1447 01:05:50,860 --> 01:05:53,235 >> Aku hanya harus peduli tentang Perbedaan antara keduanya, 1448 01:05:53,235 --> 01:05:56,666 karena semua huruf mengikuti pola yang sama, kan? 1449 01:05:56,666 --> 01:05:58,540 Jika saya memiliki perbedaan antara salah satu dari mereka, 1450 01:05:58,540 --> 01:06:01,050 Aku tahu apa perbedaan antara mereka semua adalah. 1451 01:06:01,050 --> 01:06:01,740 Pertanyaan bagus. 1452 01:06:01,740 --> 01:06:04,090 Ya. 1453 01:06:04,090 --> 01:06:06,660 Semua orang baik? 1454 01:06:06,660 --> 01:06:09,080 OKE. 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 >> OKE. 1458 01:06:15,270 --> 01:06:20,310 Jadi konsep lain yang akan sangat berguna saat Anda 1459 01:06:20,310 --> 01:06:22,570 terus mengembangkan kode Anda ide ini 1460 01:06:22,570 --> 01:06:25,430 menciptakan fungsi atau abstraksi. 1461 01:06:25,430 --> 01:06:28,479 Jadi sekarang, kita semua diambil aljabar. 1462 01:06:28,479 --> 01:06:31,770 Dalam aljabar, Anda diajarkan bahwa ada hal yang indah ini disebut fungsi 1463 01:06:31,770 --> 01:06:35,300 mesin, di mana jika Anda masukan satu jenis nomor, 1464 01:06:35,300 --> 01:06:38,720 itu berjalan melalui fungsi indah ini dan keluar muncul output yang berbeda, kan? 1465 01:06:38,720 --> 01:06:42,220 Dalam kode, hal yang sama terjadi di apapun fungsi. 1466 01:06:42,220 --> 01:06:48,230 >> Jadi aku bisa secara fisik menulis dalam tubuh saya dari kode saya 1467 01:06:48,230 --> 01:06:52,357 pernyataan utama yang sebenarnya apapun tubuh kode lakukan. 1468 01:06:52,357 --> 01:06:54,940 Tapi di luar itu, saya juga bisa menulis banyak fungsi yang berbeda 1469 01:06:54,940 --> 01:06:56,320 yang melakukan banyak hal yang berbeda. 1470 01:06:56,320 --> 01:06:58,570 Sebagai contoh, kita sudah sudah mulai menggunakan beberapa dari 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 bahwa kita dapat memanggil dalam kode kami. 1473 01:07:02,870 --> 01:07:05,410 Untuk upper-- dalam kasus ini, upper-- adalah fungsi lain 1474 01:07:05,410 --> 01:07:07,330 kami telah menulis bahwa kita dapat memanggil dalam kode kami. 1475 01:07:07,330 --> 01:07:09,520 Dan jadi saya kira mengapa kami bahkan memiliki fungsi? 1476 01:07:09,520 --> 01:07:12,100 Mengapa kita tidak hanya celepuk semua dalam baris kode yang sama? 1477 01:07:12,100 --> 01:07:13,730 Itu membuat mudah bagi semua orang. 1478 01:07:13,730 --> 01:07:19,200 >> Nah, alasan di balik itu adalah, pertama-tama, organisasi. 1479 01:07:19,200 --> 01:07:21,880 Ini benar-benar menjengkelkan akan melalui kode seseorang 1480 01:07:21,880 --> 01:07:25,110 dan satu fungsi seperti printf. 1481 01:07:25,110 --> 01:07:28,570 Jika kalian benar-benar tahu apa yang Fungsi printf mensyaratkan untuk menulis, 1482 01:07:28,570 --> 01:07:30,530 itu, seperti, 1.000 baris kode. 1483 01:07:30,530 --> 01:07:32,357 >> Jika setiap kali saya ingin untuk printf sesuatu, 1484 01:07:32,357 --> 01:07:35,440 Aku harus menulis 1.000 baris kode, yang akan benar-benar menjengkelkan untuk membaca, 1485 01:07:35,440 --> 01:07:36,290 benar? 1486 01:07:36,290 --> 01:07:38,860 Itulah sebabnya kami baru saja menciptakan fungsi abstrak ini 1487 01:07:38,860 --> 01:07:41,670 bahwa kita sudah seseorang lain telah menulis di tempat lain. 1488 01:07:41,670 --> 01:07:44,920 Dan setiap kali kita perlu menggunakannya dalam kode kita, kita hanya harus mengatakan printf. 1489 01:07:44,920 --> 01:07:48,070 Dan yang mampu menggunakan fungsi orang lain telah ditulis dalam kode kita. 1490 01:07:48,070 --> 01:07:51,020 Itu membuat lebih mudah organisatoris untuk membaca kode. 1491 01:07:51,020 --> 01:07:53,460 >> Kedua, itu penyederhanaan. 1492 01:07:53,460 --> 01:07:56,750 Menyederhanakan langkah-langkah yang kita miliki untuk mengambil untuk memecahkan masalah kita. 1493 01:07:56,750 --> 01:07:59,300 Printf, fungsi seperti printf, fungsi seperti untuk bagian atas 1494 01:07:59,300 --> 01:08:03,560 adalah segala sesuatu yang memungkinkan kita untuk menyederhanakan kode kita turun sehingga lebih mudah. 1495 01:08:03,560 --> 01:08:05,830 Dan hal terakhir adalah usabilitas. 1496 01:08:05,830 --> 01:08:08,710 >> Jadi fakta bahwa kita memiliki fungsi yang disebut printf 1497 01:08:08,710 --> 01:08:11,990 bahwa kita dapat memanggil banyak berbeda kali dan memungkinkan untuk dapat digunakan kembali. 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 hanya ada dalam satu tempat. 1500 01:08:16,439 --> 01:08:19,890 Jika saya ingin melakukannya lagi, saya akan harus copy dan paste semua itu 1501 01:08:19,890 --> 01:08:21,760 ke baris kedua saya kode. 1502 01:08:21,760 --> 01:08:24,880 Itu sebabnya jika kita membuat fungsi yang ada di luar utama kami, 1503 01:08:24,880 --> 01:08:26,880 kita hanya dapat memanggil itu dan menggunakannya kembali setiap kali 1504 01:08:26,880 --> 01:08:29,604 kita perlu sehingga jauh lebih mudah bagi kita sebagai 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 sangat mirip, kan? 1507 01:08:35,549 --> 01:08:37,590 Ini adalah jenis yang pertama Misalnya di mana kita akan 1508 01:08:37,590 --> 01:08:42,830 melihat fungsi mengambil pada gaya berbeda dari kekosongan int utama kami. 1509 01:08:42,830 --> 01:08:46,779 Dalam hal ini, jika saya ingin menulis fungsi disebut q, kan? 1510 01:08:46,779 --> 01:08:49,370 >> Dan nilai int sini adalah semua mengatakan, 1511 01:08:49,370 --> 01:08:51,649 apa yang saya inginkan ini berfungsi untuk kembali ke saya? 1512 01:08:51,649 --> 01:08:54,484 Jika saya ingin kubus integer, Aku akan ingin masukan. 1513 01:08:54,484 --> 01:08:55,525 Ini adalah parameter. 1514 01:08:55,525 --> 01:08:58,490 Aku akan masukan nilai tipe int. 1515 01:08:58,490 --> 01:09:01,300 Dan aku akan kembali Nilai jenis lain int. 1516 01:09:01,300 --> 01:09:03,050 Dan di sini, karena Anda bisa melihat, semua yang saya lakukan 1517 01:09:03,050 --> 01:09:07,300 adalah cubing apapun masukan saya adalah sebagai output dan mengembalikannya. 1518 01:09:07,300 --> 01:09:10,790 >> Jadi semua fungsi ini dilakukan adalah mengambil semacam integer. 1519 01:09:10,790 --> 01:09:14,979 Mengalikan itu dengan sendirinya dua kali sehingga kubus berlaku. 1520 01:09:14,979 --> 01:09:17,729 Dan kemudian ia mengembalikan apa output yang. 1521 01:09:17,729 --> 01:09:20,540 Jadi dalam hal ini, itu dua baris kode yang kita harus menulis ekstra. 1522 01:09:20,540 --> 01:09:22,880 Tetapi jika kita ingin menelepon atas ini beberapa kali, 1523 01:09:22,880 --> 01:09:26,210 itu jauh lebih mudah untuk mengetik satu yang baris di sini yang ada di kubus dari 1524 01:09:26,210 --> 01:09:28,830 harus melalui beberapa kali. 1525 01:09:28,830 --> 01:09:34,180 >> Jadi cara yang pada dasarnya setiap format untuk setiap jenis fungsi 1526 01:09:34,180 --> 01:09:36,420 akan ada seperti di sini. 1527 01:09:36,420 --> 01:09:38,659 Jadi kita memiliki nama fungsi. 1528 01:09:38,659 --> 01:09:39,950 Dalam hal ini, itu disebut kubus. 1529 01:09:39,950 --> 01:09:42,033 Dan kami beri nama kubus karena itu mudah diingat. 1530 01:09:42,033 --> 01:09:44,220 Anda dapat nama itu persegi dan itu sebenarnya dapat potong dadu. 1531 01:09:44,220 --> 01:09:45,500 Tidak masalah. 1532 01:09:45,500 --> 01:09:48,020 Hanya nama yang Anda menugaskan fungsi Anda. 1533 01:09:48,020 --> 01:09:51,660 >> Hak ini di sini, int, adalah jenis parameter yang Anda butuhkan. 1534 01:09:51,660 --> 01:09:54,149 Jadi, apa fungsi ini butuhkan untuk beroperasi? 1535 01:09:54,149 --> 01:09:55,990 Nah, perlu masukan. 1536 01:09:55,990 --> 01:09:56,704 Saya menamakannya masukan. 1537 01:09:56,704 --> 01:09:58,120 Anda dapat nama itu apa pun yang Anda inginkan. 1538 01:09:58,120 --> 01:10:00,500 Tapi aku butuh sesuatu dari tipe int. 1539 01:10:00,500 --> 01:10:03,730 Ini akan benar-benar melaksanakan apa pun yang dalam di sini, 1540 01:10:03,730 --> 01:10:04,990 tubuh fungsi. 1541 01:10:04,990 --> 01:10:07,847 Dan kemudian jenis kembali di sini, int-- ini 1542 01:10:07,847 --> 01:10:09,680 semua itu mengatakan adalah bahwa fungsi ini 1543 01:10:09,680 --> 01:10:11,250 akan kembali ke saya di int. 1544 01:10:11,250 --> 01:10:14,460 Jadi itu akan mengambil di int, dan itu akan memberi Anda kembali int. 1545 01:10:14,460 --> 01:10:17,750 Apakah setiap orang memahami bagaimana format semacam ini bekerja? 1546 01:10:17,750 --> 01:10:18,250 Keren. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> OKE. 1549 01:10:25,740 --> 01:10:31,770 Jadi jangan khawatir jika ini tampaknya hak abstrak sedikit sekarang. 1550 01:10:31,770 --> 01:10:33,450 Ini adalah sesuatu yang kita bicarakan. 1551 01:10:33,450 --> 01:10:36,310 Kami akan menyelam lebih dalam nanti dalam kursus. 1552 01:10:36,310 --> 01:10:41,170 Cara yang apapun tingkat yang lebih tinggi abstraksi dari hal-hal ini pekerjaan 1553 01:10:41,170 --> 01:10:43,530 adalah bahwa, dalam memori, di komputer Anda, semuanya 1554 01:10:43,530 --> 01:10:47,660 disimpan dalam jenis ini stack, harus saya katakan. 1555 01:10:47,660 --> 01:10:49,070 >> Jadi di sana di bagian atas. 1556 01:10:49,070 --> 01:10:50,861 Saya tidak tahu apakah Anda orang dapat melihat bahwa baik. 1557 01:10:50,861 --> 01:10:52,590 Saya akan mencoba untuk memperbesar. 1558 01:10:52,590 --> 01:10:55,111 Di sini, di atas, kita memiliki teks fisik 1559 01:10:55,111 --> 01:10:57,860 apa komputer interpreting-- semua nol dan orang-orang yang 1560 01:10:57,860 --> 01:10:59,540 ada dalam komputer kita. 1561 01:10:59,540 --> 01:11:03,390 Dan kemudian kami telah diinisialisasi Data dan diinisiasi data, 1562 01:11:03,390 --> 01:11:05,340 apa yang kita sebut variabel global. 1563 01:11:05,340 --> 01:11:08,200 Jadi variabel yang ada di semua program 1564 01:11:08,200 --> 01:11:11,815 dan di seluruh Anda, dasarnya, kode. 1565 01:11:11,815 --> 01:11:13,940 Jangan khawatir jika kalian jenis jelas tentang hal ini. 1566 01:11:13,940 --> 01:11:16,060 Itu tidak terlalu penting sekarang. 1567 01:11:16,060 --> 01:11:18,680 >> Dan kemudian kita memiliki apa yang disebut tumpukan dalam tumpukan. 1568 01:11:18,680 --> 01:11:21,140 Pikirkan stack secara harfiah sebagai seperti setumpuk hal, 1569 01:11:21,140 --> 01:11:23,098 tumpukan yang berbeda hal yang mendorong di atas 1570 01:11:23,098 --> 01:11:27,870 satu sama lain yang menyimpan berbagai variabel dan sintaks dalam kode Anda. 1571 01:11:27,870 --> 01:11:31,460 Dan kemudian di sini di bagian paling bawah, kita memiliki variabel lingkungan 1572 01:11:31,460 --> 01:11:35,480 dari apa yang Anda mengeksekusi dalam hanya garis kecil Anda kode. 1573 01:11:35,480 --> 01:11:40,510 >> Dan kami hanya akan tampilannya di pada bagian tumpukan sebenarnya. 1574 01:11:40,510 --> 01:11:43,880 Jadi di sini, jika kita tampilannya di atas hanya daerah ini dari stack, 1575 01:11:43,880 --> 01:11:45,140 ini seperti apa. 1576 01:11:45,140 --> 01:11:48,590 Dan ini sebenarnya cukup penting ketika kalian berbicara tentang fungsi, 1577 01:11:48,590 --> 01:11:52,330 karena pemberitahuan bahwa memori komputer Anda 1578 01:11:52,330 --> 01:11:55,600 adalah menyimpan variabel dan fungsi 1579 01:11:55,600 --> 01:11:58,790 dan parameter kedua Anda fungsi dan variabel utama Anda 1580 01:11:58,790 --> 01:12:00,190 di tempat yang berbeda. 1581 01:12:00,190 --> 01:12:03,390 >> Jadi sekarang, utamanya adalah fungsi sebenarnya 1582 01:12:03,390 --> 01:12:04,780 bahwa Anda mengeksekusi dalam kode. 1583 01:12:04,780 --> 01:12:08,050 Anda telah parameternya disimpan di sini dan variabel lokal disimpan di sini. 1584 01:12:08,050 --> 01:12:12,270 Variabel lokal hanya berarti variabel apa saja yang hanya ada dalam fungsi itu. 1585 01:12:12,270 --> 01:12:15,610 Dan di atas semua itu, Anda memiliki ini fungsi yang terpisah disebut kubus. 1586 01:12:15,610 --> 01:12:18,240 Anda memiliki itu parameter serta mereka penduduk setempat. 1587 01:12:18,240 --> 01:12:21,540 >> Dan alasan Anda bisa lihat di sini adalah bahwa apa 1588 01:12:21,540 --> 01:12:25,030 terjadi ketika kubus mengambil dalam nilai dari fungsi utama Anda 1589 01:12:25,030 --> 01:12:27,640 adalah bahwa sebenarnya itu menyalin bahwa lebih. 1590 01:12:27,640 --> 01:12:31,470 Jadi jika saya ingin kubus 2 dan kembali 8, yang 2 1591 01:12:31,470 --> 01:12:33,730 sebenarnya diinput sebagai parameter dan itu 1592 01:12:33,730 --> 01:12:37,690 disalin sehingga Anda memilikinya ada di dua tempat yang berbeda di memori. 1593 01:12:37,690 --> 01:12:40,520 Dan Anda harus sangat berhati-hati pada mengingat yang salah satu dari mereka 1594 01:12:40,520 --> 01:12:42,520 Anda benar-benar memanipulasi. 1595 01:12:42,520 --> 01:12:47,170 Dan contoh dari apa yang terjadi itu akan sangat, sangat buruk 1596 01:12:47,170 --> 01:12:48,050 ada di sini. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Jadi di sini, saya sudah mendapat, dalam teori, program di sini, fungsi utama 1599 01:12:58,650 --> 01:13:02,180 bahwa aku menyatakan int x sama dengan 1. 1600 01:13:02,180 --> 01:13:04,505 Saya menyatakan int y lain sama dengan 2. 1601 01:13:04,505 --> 01:13:06,380 Dan kemudian aku menjalankannya melalui fungsi ini 1602 01:13:06,380 --> 01:13:09,647 disebut swap, di mana saya berasumsi bahwa itu swapping dua nilai. 1603 01:13:09,647 --> 01:13:11,480 Dan kemudian aku akan mencetaknya, kan? 1604 01:13:11,480 --> 01:13:13,220 Itulah yang saya ingin program ini untuk melakukan. 1605 01:13:13,220 --> 01:13:15,180 >> Jadi mari kita datang dan melihat. 1606 01:13:15,180 --> 01:13:18,200 Jadi jika saya benar-benar menulis yang berbeda fungsi, seperti yang Anda lihat, 1607 01:13:18,200 --> 01:13:19,750 kita memiliki fungsi utama kami di sini. 1608 01:13:19,750 --> 01:13:22,860 Dan kemudian kita memiliki kita Fungsi kedua di sini. 1609 01:13:22,860 --> 01:13:24,520 Swap Void. 1610 01:13:24,520 --> 01:13:27,090 Void hanya berarti bahwa itu tidak akan kembali apa-apa. 1611 01:13:27,090 --> 01:13:28,930 Nama fungsi adalah disebut swap, dan itu 1612 01:13:28,930 --> 01:13:33,730 akan asupan dua variabel, int dan int b, dari Anda [tidak terdengar] fungsi. 1613 01:13:33,730 --> 01:13:39,010 >> Jadi pada dasarnya di sini, kami melewati x dan y dalam fungsi ini. 1614 01:13:39,010 --> 01:13:40,760 Dan jika kita buat this-- jadi kami ingin 1615 01:13:40,760 --> 01:13:42,420 untuk menciptakan nilai sementara, kan? 1616 01:13:42,420 --> 01:13:43,930 Kita akan menetapkan bahwa untuk sebuah. 1617 01:13:43,930 --> 01:13:45,388 Dan kemudian akan sekarang sama b. 1618 01:13:45,388 --> 01:13:47,660 Dan b akan kembali dimana nilai temp, 1619 01:13:47,660 --> 01:13:51,070 yang merupakan, karena ketika Anda ingin menukar hal, 1620 01:13:51,070 --> 01:13:52,320 Anda tidak bisa hanya seperti swap mereka. 1621 01:13:52,320 --> 01:13:54,360 >> Anda harus tetap satu di sini sehingga ingat 1622 01:13:54,360 --> 01:13:56,485 apa itu, karena sekali Anda menukar satu, Anda lupa 1623 01:13:56,485 --> 01:13:58,200 apa yang nilai asli, kan? 1624 01:13:58,200 --> 01:14:00,990 Jadi dalam teori, program ini harus bekerja, kan? 1625 01:14:00,990 --> 01:14:03,630 Jika saya ingin menukar dua, mereka harus menukar. 1626 01:14:03,630 --> 01:14:05,490 Jadi mari kita jalankan dan melihat apakah ia bekerja. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Sehingga kalian bisa lihat, x dulunya 1 dan y dulunya 2. 1629 01:14:16,940 --> 01:14:21,475 Dan jika saya mencetaknya, x masih 1 dan y adalah 2. 1630 01:14:21,475 --> 01:14:25,970 Hmm, program ini tampaknya tidak menjadi bekerja dengan cara yang saya ingin bekerja. 1631 01:14:25,970 --> 01:14:29,950 Apakah ada yang ingin mengambil gambar di menebak mengapa ini terjadi? 1632 01:14:29,950 --> 01:14:34,430 Ini ada hubungannya dengan cara bahwa hal-hal yang berbeda 1633 01:14:34,430 --> 01:14:38,172 disimpan di tempat yang berbeda di memori. 1634 01:14:38,172 --> 01:14:39,377 >> OKE. 1635 01:14:39,377 --> 01:14:41,960 Jadi kalian tidak perlu khawatir terlalu banyak tentang ini sekarang. 1636 01:14:41,960 --> 01:14:46,610 Tapi tahu bahwa kubus itu lokal variabel yang a dan b, 1637 01:14:46,610 --> 01:14:49,230 karena di sini fungsi kami, kami telah menyatakan a dan b 1638 01:14:49,230 --> 01:14:53,570 sebagai variabel yang ada dalam kubus, fungsi itu. 1639 01:14:53,570 --> 01:14:59,490 Tapi seperti yang Anda lihat, parameter yang itu mengambil di sedang disimpan di sini. 1640 01:14:59,490 --> 01:15:01,370 Tapi kami tidak benar-benar kembali apa-apa. 1641 01:15:01,370 --> 01:15:03,120 Kami tidak benar-benar berubah x dan y. 1642 01:15:03,120 --> 01:15:04,440 Kami hanya mengubah a dan b. 1643 01:15:04,440 --> 01:15:08,340 >> Kami telah disalin x dan y menjadi sesuatu yang disebut a dan b. 1644 01:15:08,340 --> 01:15:11,092 Tapi kita pernah benar-benar dimanipulasi x dan y sendiri. 1645 01:15:11,092 --> 01:15:12,800 Apakah kalian melihat bagaimana yang terjadi? 1646 01:15:12,800 --> 01:15:16,140 Adalah bahwa kita sudah cukup disalin lebih, tapi kami belum benar-benar terus 1647 01:15:16,140 --> 01:15:18,030 melacak di mana mereka berada di memori. 1648 01:15:18,030 --> 01:15:20,127 >> Dan jadi sekarang komputer mencari, oh, aku sudah 1649 01:15:20,127 --> 01:15:21,960 menjalankan hal ini melalui Fungsi indah ini. 1650 01:15:21,960 --> 01:15:23,690 Tapi x dan y masih x dan y. 1651 01:15:23,690 --> 01:15:26,240 Tidak ada yang terjadi mereka karena fakta 1652 01:15:26,240 --> 01:15:28,340 bahwa parameter dan variabel lokal 1653 01:15:28,340 --> 01:15:30,150 disimpan dalam berbeda tempat di memori. 1654 01:15:30,150 --> 01:15:32,030 Dan ini adalah tingkat yang lebih tinggi konsep yang kita akan 1655 01:15:32,030 --> 01:15:34,300 mulai melihat nanti dalam kursus. 1656 01:15:34,300 --> 01:15:36,950 Tapi hanya tahu bahwa ini adalah masalah yang bisa terjadi 1657 01:15:36,950 --> 01:15:41,400 dan bahwa kita akan mencari tahu tentang bagaimana cara untuk berurusan dengan ini nanti pada kursus. 1658 01:15:41,400 --> 01:15:41,900 OKE. 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 menutupi 1662 01:15:51,780 --> 01:15:53,880 yang akan berguna untuk pset minggu ini 1663 01:15:53,880 --> 01:15:56,060 yang apa yang disebut argumen baris perintah. 1664 01:15:56,060 --> 01:16:00,820 Jadi Rob dalam ceramahnya pergi melalui jenis singkat tentang bagaimana ini bekerja. 1665 01:16:00,820 --> 01:16:02,770 Dasarnya tahu bahwa ketika Anda sedang menulis 1666 01:16:02,770 --> 01:16:06,280 seperti fungsi utama, ketika kita menulis fungsi sebelumnya di masa lalu, 1667 01:16:06,280 --> 01:16:07,804 kami memiliki int void main. 1668 01:16:07,804 --> 01:16:10,470 Dan alasan kita memiliki kekosongan ada adalah karena program kami tidak 1669 01:16:10,470 --> 01:16:12,520 perlu nilai input untuk menjalankan, kan? 1670 01:16:12,520 --> 01:16:16,020 Ketika aku berlari Mario, saya tidak perlu untuk benar-benar hanya mengetikkan sesuatu 1671 01:16:16,020 --> 01:16:16,970 ketika aku berlari Mario. 1672 01:16:16,970 --> 01:16:20,170 Aku bisa meminta pengguna di kemudian hari. 1673 01:16:20,170 --> 01:16:22,450 Tapi itu tidak akan selalu terjadi. 1674 01:16:22,450 --> 01:16:24,980 >> Misalnya, dalam hal ini Masalah minggu set, 1675 01:16:24,980 --> 01:16:28,365 Anda akan diminta itu, di Selain menjalankan program Anda, 1676 01:16:28,365 --> 01:16:30,990 Anda akan ingin masukan hal-hal tertentu di lurus seperti 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 itu disebut argumen baris perintah, yang 1679 01:16:34,720 --> 01:16:37,280 adalah seperti argumen Anda dapat memasukkan langsung 1680 01:16:37,280 --> 01:16:39,260 sebagai Anda mencoba untuk menjalankan program Anda. 1681 01:16:39,260 --> 01:16:44,680 >> Jadi notasi untuk ini, itu cukup kompleks tampak, 1682 01:16:44,680 --> 01:16:47,320 tapi itu benar-benar tidak sulit. 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 kurung tali argv. 1685 01:16:52,110 --> 01:16:56,040 Jadi semua itu mengatakan adalah bahwa ini int argc-- semua yang memberitahu Anda 1686 01:16:56,040 --> 01:17:00,560 adalah bahwa mereka adalah jumlah argumen komputer harus mengharapkan. 1687 01:17:00,560 --> 01:17:03,130 >> Jadi satu hal yang benar-benar penting untuk melacak 1688 01:17:03,130 --> 01:17:07,080 adalah nama fisik program Anda dianggap sebagai salah satu argumen. 1689 01:17:07,080 --> 01:17:11,080 Jadi jika saya ingin memiliki program saya menjalankan ditambah satu baris perintah tambahan 1690 01:17:11,080 --> 01:17:13,310 argumen, aku benar-benar akan memiliki dua. 1691 01:17:13,310 --> 01:17:15,080 Argc benar-benar akan menjadi dua. 1692 01:17:15,080 --> 01:17:18,010 Dan maka string argv bracket-- semua yang melakukan, 1693 01:17:18,010 --> 01:17:20,410 itu memberi saya sebuah array string yang 1694 01:17:20,410 --> 01:17:24,870 akan hanya menampilkan dan menyimpan apa semua argumen-argumen baris perintah yang. 1695 01:17:24,870 --> 01:17:34,090 >> Jadi misalnya, jika saya ingin memiliki ini Program, ./copy INFILE outfile, kan? 1696 01:17:34,090 --> 01:17:37,330 Itu hanya perintah Linux khas. 1697 01:17:37,330 --> 01:17:38,830 Apa sebenarnya argc? 1698 01:17:38,830 --> 01:17:41,320 Berapa banyak argumen baris perintah yang ada benar-benar dalam hal ini? 1699 01:17:41,320 --> 01:17:45,130 Semua yang dilakukan adalah membuat salinan sebuah infile dari nama satu file 1700 01:17:45,130 --> 01:17:47,070 dan salinan ke file lain, kan? 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, aku melakukannya dalam satu baris tanpa benar-benar membutuhkan program. 1703 01:17:53,080 --> 01:17:55,380 >> Apa argc kami dalam hal ini? 1704 01:17:55,380 --> 01:17:58,968 Berapa banyak argumen yang kita miliki? 1705 01:17:58,968 --> 01:17:59,634 AUDIENCE: Tiga? 1706 01:17:59,634 --> 01:18:01,200 ANDI PENG: Kami memiliki tiga, tepatnya. 1707 01:18:01,200 --> 01:18:05,030 Sehingga sangat intuitif untuk hanya berpikir bahwa itu hanya 1708 01:18:05,030 --> 01:18:06,290 yang infile dan outfile tersebut. 1709 01:18:06,290 --> 01:18:10,190 Tapi tahu bahwa nama fisik dari Program Anda menjalankan dianggap sebagai salah satu. 1710 01:18:10,190 --> 01:18:13,220 Jadi dalam hal ini, argc sebenarnya tiga. 1711 01:18:13,220 --> 01:18:15,860 Bagaimana, apa argv 0? 1712 01:18:15,860 --> 01:18:18,180 Ingat, semua argumen baris perintah 1713 01:18:18,180 --> 01:18:20,500 disimpan dalam array dari string. 1714 01:18:20,500 --> 01:18:24,140 Jadi jika saya mencoba untuk mengaksesnya, apa akan argv braket 0 memberi saya? 1715 01:18:24,140 --> 01:18:25,364 >> AUDIENCE: [tidak terdengar]. 1716 01:18:25,364 --> 01:18:26,155 ANDI PENG: Tepat. 1717 01:18:26,155 --> 01:18:28,550 Ini akan memberi saya dot slash copy, karena itulah 1718 01:18:28,550 --> 01:18:31,070 elemen 0, yang elemen pertama dari array saya. 1719 01:18:31,070 --> 01:18:33,236 Bagaimana argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> AUDIENCE: infile. 1721 01:18:33,945 --> 01:18:35,070 ANDI PENG: INFILE, persis. 1722 01:18:35,070 --> 01:18:36,272 Bagaimana argv 2? 1723 01:18:36,272 --> 01:18:37,022 AUDIENCE: outfile. 1724 01:18:37,022 --> 01:18:38,190 ANDI PENG: outfile. 1725 01:18:38,190 --> 01:18:39,290 Ini adalah sedikit rumit sekarang. 1726 01:18:39,290 --> 01:18:42,630 Apa yang kalian pikirkan argv 3 ini akan memberi saya 1727 01:18:42,630 --> 01:18:45,522 jika saya mencoba untuk mencetak yang keluar? 1728 01:18:45,522 --> 01:18:48,260 >> AUDIENCE: [tidak terdengar]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI PENG: Apakah Anda memiliki tangan atas? 1730 01:18:50,164 --> 01:18:50,663 Ya. 1731 01:18:50,663 --> 01:18:51,550 >> AUDIENCE: Sebuah alternatif. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI PENG: Tepat. 1733 01:18:52,341 --> 01:18:55,440 Jadi ingat dalam kuliah yang kita memiliki pada akhir sesuatu ras 1734 01:18:55,440 --> 01:18:56,640 disebut terminator nol? 1735 01:18:56,640 --> 01:18:58,890 Kami akan masuk ke ini juga lebih lanjut di dalam kelas. 1736 01:18:58,890 --> 01:19:02,472 Tapi tahu bahwa dalam notasi, cara komputer Anda 1737 01:19:02,472 --> 01:19:04,430 tahu bahwa itu akhirnya dari array adalah bahwa hal itu 1738 01:19:04,430 --> 01:19:07,310 menempatkan sesuatu yang disebut null terminator atau dash nol. 1739 01:19:07,310 --> 01:19:12,047 >> Jadi jika Anda mencoba untuk mengakses argv 3, Anda akan memukul dasbor ini 0. 1740 01:19:12,047 --> 01:19:13,630 Hal ini bahkan lebih dari pertanyaan jebakan. 1741 01:19:13,630 --> 01:19:17,020 Bagaimana argv 4? 1742 01:19:17,020 --> 01:19:20,920 Jadi ini adalah null terminator terakhir, melewati batas-batas array kita. 1743 01:19:20,920 --> 01:19:24,380 Apa yang Anda pikirkan akan terjadi ketika kita mencoba untuk melakukan itu? 1744 01:19:24,380 --> 01:19:25,842 >> AUDIENCE: [tidak terdengar]? 1745 01:19:25,842 --> 01:19:26,550 ANDI PENG: Maaf? 1746 01:19:26,550 --> 01:19:28,025 Mengatakan bahwa sedikit lebih keras? 1747 01:19:28,025 --> 01:19:29,086 >> AUDIENCE: [tidak terdengar]. 1748 01:19:29,086 --> 01:19:29,710 ANDI PENG: Ya. 1749 01:19:29,710 --> 01:19:32,420 Itulah nama daerah kemungkinan besar Anda akan mendapatkan. 1750 01:19:32,420 --> 01:19:36,610 Tapi tahu argv yang 4-- yang memungkinkan Anda untuk mengakses 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, karena sekarang Anda tahu apa argv adalah. 1753 01:19:41,650 --> 01:19:46,220 Anda tahu bahwa itu sebuah array ukuran 3 yang memiliki copy dot, infile dan outfile. 1754 01:19:46,220 --> 01:19:50,200 >> Jika Anda mencoba untuk pergi sejauh lebih dari itu bahwa Anda melewati null terminator, 1755 01:19:50,200 --> 01:19:53,050 komputer Anda mungkin memiliki sesuatu yang tersimpan di argv 4. 1756 01:19:53,050 --> 01:19:55,790 Dan Anda benar-benar tidak boleh memungkinkan akses ke argv 4, 1757 01:19:55,790 --> 01:19:58,130 karena Anda memiliki file kabinet dan Anda hanya 1758 01:19:58,130 --> 01:19:59,790 memungkinkan akses ke tiga rak. 1759 01:19:59,790 --> 01:20:02,870 Tetapi jika Anda mencoba untuk mencapai jalan di luar rak di mana Anda diperbolehkan, 1760 01:20:02,870 --> 01:20:04,930 Anda akan mulai bermain-main dengan hal-hal 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 bahwa. 1763 01:20:07,440 --> 01:20:10,370 Berhati-hatilah bahwa Anda tidak hanya secara acak mulai 1764 01:20:10,370 --> 01:20:14,772 mengakses elemen dalam array yang tidak pada apa yang Anda ingin membuat. 1765 01:20:14,772 --> 01:20:17,114 Yep. 1766 01:20:17,114 --> 01:20:18,430 >> OKE. 1767 01:20:18,430 --> 01:20:26,360 Jadi kita akan melakukan hal yang lain Contoh terminal sini. 1768 01:20:26,360 --> 01:20:27,300 OKE. 1769 01:20:27,300 --> 01:20:29,900 Jadi Rob cepat dalam kuliah hari lain pergi 1770 01:20:29,900 --> 01:20:35,040 melalui contoh ini, di mana ia memiliki int main int argc tali argv 1771 01:20:35,040 --> 01:20:39,090 kurung, yang mengatakan bahwa aku akan memiliki argumen baris perintah. 1772 01:20:39,090 --> 01:20:41,860 >> Dia memiliki, jika argc sama sama 2-- ingat, 1773 01:20:41,860 --> 01:20:45,070 sama sederajat berarti perbandingan. 1774 01:20:45,070 --> 01:20:47,980 Jika itu sama dengan 2, maka aku akan mencetak halo, 1775 01:20:47,980 --> 01:20:51,190 apapun yang pertama elemen dari array adalah. 1776 01:20:51,190 --> 01:20:54,100 Cetak lain, halo dunia. 1777 01:20:54,100 --> 01:20:56,300 Apa ini akan terjadi dasarnya? 1778 01:20:56,300 --> 01:21:00,570 Dapatkah seseorang hanya menjelaskan di English apa program ini lakukan? 1779 01:21:00,570 --> 01:21:01,272 Ya. 1780 01:21:01,272 --> 01:21:08,160 >> AUDIENCE: Jika seseorang mengetikkan perintah dan mengatakan nama pertama dan terakhir mereka, 1781 01:21:08,160 --> 01:21:12,096 itu tidak akan hanya mencetak pertama dan berkata, halo, 1782 01:21:12,096 --> 01:21:14,090 apapun nama pertama Anda adalah. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI PENG: OK, mari kita jalankan. 1784 01:21:15,410 --> 01:21:22,470 Jadi misalnya, jika saya harus membuat file ini membuat halo halo to-- 1785 01:21:22,470 --> 01:21:24,500 to-- apa yang Anda ingin saya masukan? 1786 01:21:24,500 --> 01:21:25,900 >> AUDIENCE: Pertama dan nama terakhir. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI PENG: Pertama dan nama terakhir? 1788 01:21:27,280 --> 01:21:28,180 Ruang? 1789 01:21:28,180 --> 01:21:29,690 >> AUDIENCE: Ya. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI PENG: Dapatkah seseorang memberitahu saya sekarang, apa yang argc? 1791 01:21:33,490 --> 01:21:35,630 Hanya di sana? 1792 01:21:35,630 --> 01:21:36,290 Ups, maaf. 1793 01:21:36,290 --> 01:21:37,920 Biarkan aku kembali. 1794 01:21:37,920 --> 01:21:40,740 Berapa banyak argumen baris perintah are-- kalian tidak bisa melihat. 1795 01:21:40,740 --> 01:21:43,760 Tapi aku akan mencoba untuk memperbesar. 1796 01:21:43,760 --> 01:21:44,290 Saya mencoba. 1797 01:21:44,290 --> 01:21:45,414 Ya, ada tiga, kan? 1798 01:21:45,414 --> 01:21:48,750 Ini dot slash halo, itu Andi, dan itu Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Jadi apa yang kalian pikir ini Program ini akan mencetak? 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 yang salah. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 Ini mencetak, halo dunia. 1806 01:22:06,130 --> 01:22:09,603 Apakah ada yang ingin menjelaskan mengapa yang terjadi? 1807 01:22:09,603 --> 01:22:10,103 Ya? 1808 01:22:10,103 --> 01:22:11,019 >> AUDIENCE: [tidak terdengar]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI PENG: Tepat. 1811 01:22:15,230 --> 01:22:19,940 Jadi di sini, adalah bersyarat adalah, jika argc sama sama 2. 1812 01:22:19,940 --> 01:22:23,650 Jadi hanya dalam kasus yang ada dua argumen baris perintah. 1813 01:22:23,650 --> 01:22:25,850 Lalu aku akan mencetak, halo, apa pun itu. 1814 01:22:25,850 --> 01:22:28,210 Tapi yang lain, aku akan mencetak hanya, halo dunia. 1815 01:22:28,210 --> 01:22:30,040 Jadi apakah seseorang ingin untuk memberikan contoh 1816 01:22:30,040 --> 01:22:35,050 bagaimana saya akan dapat benar-benar mendapatkannya untuk mencetak nilai argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Apa yang akan saya harus masukan di sini? 1818 01:22:38,600 --> 01:22:39,840 Hanya satu hal, kan? 1819 01:22:39,840 --> 01:22:42,900 Karena dot menyapa sudah dianggap sebagai argumen pertama. 1820 01:22:42,900 --> 01:22:43,930 Saya hanya memiliki satu lagi. 1821 01:22:43,930 --> 01:22:46,470 Jadi dot halo jika saya hanya melakukan Andi. 1822 01:22:46,470 --> 01:22:47,270 Halo, Andi. 1823 01:22:47,270 --> 01:22:49,186 Apakah semua orang mengerti mengapa yang terjadi? 1824 01:22:49,186 --> 01:22:49,602 Ya. 1825 01:22:49,602 --> 01:22:52,500 >> AUDIENCE: Jadi ruang antara perintah line-- itu [tidak terdengar]? 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 Sehingga ruang di baris perintah argumen, x, untuk memberitahu komputer Anda 1829 01:23:03,810 --> 01:23:06,820 bahwa ini adalah awal dari sebuah string baru. 1830 01:23:06,820 --> 01:23:11,130 Jadi tali argv sini-itu toko semua perintah Anda argumen baris 1831 01:23:11,130 --> 01:23:13,110 dalam string. 1832 01:23:13,110 --> 01:23:17,420 Dan sehingga ruang pada command line argument-- semua yang dilakukan adalah memberitahu Anda, 1833 01:23:17,420 --> 01:23:21,030 ini pada akhir satu string dan saatnya untuk beralih ke yang lain. 1834 01:23:21,030 --> 01:23:21,990 >> Ya. 1835 01:23:21,990 --> 01:23:23,530 Ini sangat penting bagi pset Anda, karena Anda 1836 01:23:23,530 --> 01:23:24,613 akan menguji ini. 1837 01:23:24,613 --> 01:23:29,300 Jadi apakah ada yang punya Pertanyaan ini? 1838 01:23:29,300 --> 01:23:30,016 OK keren. 1839 01:23:30,016 --> 01:23:30,515 Ya? 1840 01:23:30,515 --> 01:23:35,008 >> AUDIENCE: Jadi alasan Anda akan menempatkan bilangan bulat argumen calc bukan 1841 01:23:35,008 --> 01:23:40,059 dari [tak terdengar] akan ketika Anda ingin untuk mengetik informasi tambahan untuk 1842 01:23:40,059 --> 01:23:41,030 [Tak terdengar]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI PENG: Ya, persis. 1844 01:23:42,090 --> 01:23:45,370 Beberapa program akan meminta Anda untuk memasukkan argumen command line 1845 01:23:45,370 --> 01:23:47,732 yang melewati dan yang menggunakan itu. 1846 01:23:47,732 --> 01:23:49,035 Ya. 1847 01:23:49,035 --> 01:23:50,410 AUDIENCE: Jadi bagaimana jika [tidak terdengar]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI PENG: Nah, apa yang harus saya untuk mengubah kemudian dalam program saya? 1850 01:23:58,870 --> 01:23:59,870 >> AUDIENCE: Hanya 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI PENG: Mengapa adalah bahwa terjadi, menurut Anda? 1853 01:24:15,020 --> 01:24:18,940 >> AUDIENCE: Karena [tidak terdengar]. 1854 01:24:18,940 --> 01:24:22,370 >> AUDIENCE: Anda harus mengubahnya ke 2 [tidak terdengar]. 1855 01:24:22,370 --> 01:24:23,484 >> AUDIENCE: 1 dan 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI PENG: 1 dan 2, persis. 1857 01:24:24,650 --> 01:24:29,150 Jadi dalam hal ini, Anda mungkin akan ingin memiliki dua printf statements-- 1858 01:24:29,150 --> 01:24:32,601 yang dicetak argv 1 dan salah satu yang dicetak argv 2. 1859 01:24:32,601 --> 01:24:33,100 Sini. 1860 01:24:33,100 --> 01:24:34,516 Aku benar-benar bisa melakukan itu cepat nyata. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Ini 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 inginkan. 1865 01:24:49,370 --> 01:24:52,590 Tetapi jika kalian dipusingkan dengan format, maka akan keluar. 1866 01:24:52,590 --> 01:24:54,981 Ya. 1867 01:24:54,981 --> 01:24:55,480 Keren. 1868 01:24:55,480 --> 01:24:57,670 Aku tahu kami sedikit kekurangan waktu. 1869 01:24:57,670 --> 01:25:02,469 Tapi aku hanya akan cepat menghabiskan beberapa menit melalui helpful-- 1870 01:25:02,469 --> 01:25:03,760 AUDIENCE: Anda memiliki dua menit. 1871 01:25:03,760 --> 01:25:05,010 ANDI PENG: Saya memiliki dua menit? 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 menyarankan, seperti saya katakan, semua orang membaca spec. 1875 01:25:13,100 --> 01:25:16,804 Anda akan menulis tiga satu programs-- disebut initials.c, salah satu yang disebut caesar.c, 1876 01:25:16,804 --> 01:25:17,720 satu disebut vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Beberapa tips penting yang kalian benar-benar ingin 1879 01:25:22,340 --> 01:25:25,040 untuk tetap mind-- sehingga ada fungsi ini 1880 01:25:25,040 --> 01:25:27,770 disebut atoi-- seperti yang saya ingin mengatakan, trois a. 1881 01:25:27,770 --> 01:25:29,520 Jelas apakah itu sebenarnya bagaimana Anda mengatakannya. 1882 01:25:29,520 --> 01:25:32,510 Tapi semua itu melakukan, itu memasukkan. 1883 01:25:32,510 --> 01:25:34,320 Itu mengkonversi string ke int. 1884 01:25:34,320 --> 01:25:37,490 Jadi merupakan ASCII untuk bilangan bulat i. 1885 01:25:37,490 --> 01:25:40,310 Ini hanya mengkonversi ASCII nilai-nilai ke integer nilai. 1886 01:25:40,310 --> 01:25:44,510 Jadi ingat argv, array yang menyimpan semua perintah Anda berbaris arguments-- 1887 01:25:44,510 --> 01:25:46,300 menyimpan mereka semua sebagai string. 1888 01:25:46,300 --> 01:25:50,010 Dan jadi jika Anda ingin untuk dapat memiliki salah satu dari mereka menjadi integer, 1889 01:25:50,010 --> 01:25:52,750 Anda akan memiliki menggunakan nilai ini di sini. 1890 01:25:52,750 --> 01:25:56,690 >> Modulo, seperti kita bahas sebelumnya di kelas hari ini, 1891 01:25:56,690 --> 01:25:59,550 memungkinkan Anda untuk memiliki sisa apa pun yang Anda miliki. 1892 01:25:59,550 --> 01:26:03,620 Jadi jika kita telah benar-benar, benar-benar jumlah besar di Caesar, 1893 01:26:03,620 --> 01:26:06,117 apa jika kita memiliki akhir dari serangkaian Vigenere? 1894 01:26:06,117 --> 01:26:08,450 Bagaimana Anda akan dapat untuk mendapatkan bahwa untuk membungkus? 1895 01:26:08,450 --> 01:26:11,330 Jika saya memukul z dan saya ingin itu untuk kembali ke, 1896 01:26:11,330 --> 01:26:13,650 bagaimana saya akan mendapatkan bahwa untuk membungkus? 1897 01:26:13,650 --> 01:26:15,960 Mungkin ingin menggunakan modulo di sana di suatu tempat. 1898 01:26:15,960 --> 01:26:19,190 >> Kedua, melihat sekitar perpustakaan Anda. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 Itu perpustakaan baru yang kita miliki. 1900 01:26:20,680 --> 01:26:25,270 Anda akan menemukan banyak benar-benar, benar-benar isupper functions-- berguna, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, tolower, isalpha, dan lain-lain. 1902 01:26:27,681 --> 01:26:30,680 Semua fungsi yang akan sangat berguna ketika Anda mencoba untuk mencari tahu, 1903 01:26:30,680 --> 01:26:33,780 adalah karakter huruf kecil? 1904 01:26:33,780 --> 01:26:35,730 Bagaimana cara mengkonversi ini string untuk huruf besar? 1905 01:26:35,730 --> 01:26:38,146 Semua hal ini akan sangat, sangat membantu untuk pset Anda. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 OKE. 1908 01:26:45,500 --> 01:26:49,644 >> Jam kantor malam ini adalah 08:00 untuk 11:00 di kelas TEAL besok 1909 01:26:49,644 --> 01:26:51,310 serta Rabu dan Kamis malam. 1910 01:26:51,310 --> 01:26:53,280 Jam kantor berada di commons. 1911 01:26:53,280 --> 01:26:56,180 Sangat menyarankan kalian semua memulai segera, 1912 01:26:56,180 --> 01:27:00,490 karena Anda tidak ingin menjadi yang anak yang memiliki masalah Kamis malam 1913 01:27:00,490 --> 01:27:03,870 mengirimkan pset Anda dan seperti, saya tidak tahu apa yang harus dilakukan. 1914 01:27:03,870 --> 01:27:05,870 Saya mulai, aku selesai, aku diserahkan. 1915 01:27:05,870 --> 01:27:09,737 Cobalah untuk memberikan diri Anda beberapa ruang, karena dalam masalah kode selalu terjadi. 1916 01:27:09,737 --> 01:27:11,570 Anda ingin memastikan bahwa Anda memberikan diri Anda 1917 01:27:11,570 --> 01:27:14,810 banyak waktu untuk dapat untuk menyelesaikan psets. 1918 01:27:14,810 --> 01:27:15,310 Keren. 1919 01:27:15,310 --> 01:27:16,720 Aku akan tetap di sini. 1920 01:27:16,720 --> 01:27:18,226 >> AUDIENCE: Apakah secara online ini sudah? 1921 01:27:18,226 --> 01:27:20,850 ANDI PENG: Saya tidak tahu apakah itu sudah online, tetapi akan. 1922 01:27:20,850 --> 01:27:23,500 Aku akan tetap di sini jika ada memiliki pertanyaan sudah. 1923 01:27:23,500 --> 01:27:25,390 Terima kasih untuk datang. 1924 01:27:25,390 --> 01:27:27,105