1 00:00:00,000 --> 00:00:03,353 >> [Bermain muzik] 2 00:00:03,353 --> 00:00:04,842 3 00:00:04,842 --> 00:00:06,050 DAVID MALAN: Hello, semua orang. 4 00:00:06,050 --> 00:00:07,777 Ini adalah supersection CS50. 5 00:00:07,777 --> 00:00:09,860 Seksyen yang ditetapkan tidak akan mula untuk satu minggu lagi. 6 00:00:09,860 --> 00:00:11,580 Dan sehingga hari ini, saya di sini with-- 7 00:00:11,580 --> 00:00:12,122 >> MARIA: Maria. 8 00:00:12,122 --> 00:00:14,163 DAVID MALAN: --to sebenarnya kita lihat pada masalah 9 00:00:14,163 --> 00:00:16,110 menetapkan satu, kursus ini minggu pertama material, 10 00:00:16,110 --> 00:00:19,780 mendapatkan anda berorientasikan CS50 IDE, sedikit Linux, sistem operasi itu 11 00:00:19,780 --> 00:00:22,290 berjalan pada IDE, serta lihat beberapa peralihan 12 00:00:22,290 --> 00:00:25,730 dari Scratch kepada C terkemuka sehingga masalah menetapkan satu. 13 00:00:25,730 --> 00:00:28,340 >> Jadi tanpa berlengah-lengah lagi, dalam masalah menetapkan satu, 14 00:00:28,340 --> 00:00:30,520 anda akan menjadi diperkenalkan kepada CS50 IDE, yang 15 00:00:30,520 --> 00:00:33,230 adalah pengaturcaraan berasaskan web ini alam sekitar yang kita gunakan untuk 16 00:00:33,230 --> 00:00:34,280 untuk menulis program. 17 00:00:34,280 --> 00:00:37,280 Ia telah direka untuk kelihatan sangat mengingatkan komputer biasa 18 00:00:37,280 --> 00:00:39,430 sistem menjalankan operasi yang sistem yang dikenali sebagai Linux. 19 00:00:39,430 --> 00:00:42,440 Tetapi ia adalah dalam awan yang dipanggil, yang bermaksud semua orang dalam kelas 20 00:00:42,440 --> 00:00:45,100 sebenarnya boleh mempunyai masing-masing akaun sendiri dan menggunakannya, juga. 21 00:00:45,100 --> 00:00:48,950 >> Jadi kebanyakan anda mungkin tidak pernah menggunakan persekitaran Linux sebelum atau mungkin 22 00:00:48,950 --> 00:00:50,447 walaupun persekitaran baris arahan. 23 00:00:50,447 --> 00:00:52,280 Dan baris arahan persekitaran adalah berbeza. 24 00:00:52,280 --> 00:00:53,200 Itu semua teks. 25 00:00:53,200 --> 00:00:54,730 Ini semua arahan papan kekunci. 26 00:00:54,730 --> 00:00:59,480 Dan ia tidak ber-tetikus ria, tiada ikon, tiada tingkap dialog, tidak ada menu. 27 00:00:59,480 --> 00:01:00,212 Ia adalah semata-mata teks. 28 00:01:00,212 --> 00:01:01,920 Jadi pada mulanya, ia jenis daripada terasa seperti langkah 29 00:01:01,920 --> 00:01:04,434 ke belakang dari segi kecanggihan. 30 00:01:04,434 --> 00:01:06,600 Tetapi ia berakhir menjadi banyak lebih kuat, sudah tentu, 31 00:01:06,600 --> 00:01:08,510 untuk seorang saintis komputer, akhirnya. 32 00:01:08,510 --> 00:01:09,540 >> Jadi mari kita lihat. 33 00:01:09,540 --> 00:01:13,850 Ya, Allah di CS50.io, melalui yang anda boleh log masuk ke CS50 IDE. 34 00:01:13,850 --> 00:01:17,414 Dan sama seperti di Awal, ada tiga bidang utama untuk skrin ini. 35 00:01:17,414 --> 00:01:20,080 Sehingga pada sebelah kiri tangan, kami mempunyai apa yang akan menjadi pelayar fail. 36 00:01:20,080 --> 00:01:22,413 Dan ada di dalam folder ini bahagian, yang sekarang kosong 37 00:01:22,413 --> 00:01:24,690 kerana saya tidak perlu lagi ambil semua saya fail sebelum supersection. 38 00:01:24,690 --> 00:01:27,599 Dan di mana kita akan menyimpan fail C yang kita menulis. 39 00:01:27,599 --> 00:01:30,890 Di bahagian atas kanan, kami mempunyai tempat di mana semua kod kami yang berlaku untuk mendapatkan bertulis. 40 00:01:30,890 --> 00:01:34,610 Dan sesungguhnya, jika saya klik ditambah ini, ini akan membiarkan saya pilih Fail Baru. 41 00:01:34,610 --> 00:01:38,310 Dan di sini saya boleh mula menulis kod C atau, benar-benar, apa-apa bilangan bahasa lain. 42 00:01:38,310 --> 00:01:42,670 >> Dan kemudian di bahagian bawah di mana ia kata jharvard @ ide50-- dan anda akan 43 00:01:42,670 --> 00:01:45,080 mengatakan sesuatu yang sedikit different-- apa yang ini dipanggil? 44 00:01:45,080 --> 00:01:48,644 45 00:01:48,644 --> 00:01:49,310 Tetingkap terminal. 46 00:01:49,310 --> 00:01:49,570 Yeah. 47 00:01:49,570 --> 00:01:51,810 Jadi tetingkap terminal adalah garis yang dipanggil arahan 48 00:01:51,810 --> 00:01:55,540 antara muka melalui mana anda boleh berinteraksi dengan sistem operasi asas. 49 00:01:55,540 --> 00:01:58,220 Dan sekarang, kita akan menggunakan sangat sedikit this-- 50 00:01:58,220 --> 00:02:01,170 hanya untuk menyusun, untuk melihat mesej ralat yang kita lihat, 51 00:02:01,170 --> 00:02:02,347 dan untuk menjalankan program-program kami. 52 00:02:02,347 --> 00:02:04,680 Tetapi akhirnya, kita akan untuk berbuat demikian lebih, juga. 53 00:02:04,680 --> 00:02:07,490 Dan anda juga boleh memasang perisian dan mentadbir ruang kerja anda 54 00:02:07,490 --> 00:02:09,066 dalam CS50 IDE, juga. 55 00:02:09,066 --> 00:02:10,440 Tetapi lebih kepada yang suatu masa yang lain. 56 00:02:10,440 --> 00:02:12,689 >> Oleh itu, marilah kita pergi ke hadapan dan menulis satu program yang sangat mudah hanya 57 00:02:12,689 --> 00:02:15,064 pergi melalui memanaskan badan hello.c, yang mungkin 58 00:02:15,064 --> 00:02:16,480 program yang paling mudah kita boleh menulis. 59 00:02:16,480 --> 00:02:18,330 Saya telah membuka tab baru. 60 00:02:18,330 --> 00:02:24,310 Saya akan pergi ke depan dan mengatakan termasuk io.h. standard 61 00:02:24,310 --> 00:02:25,325 Kemudian int utama (tidak sah). 62 00:02:25,325 --> 00:02:28,930 63 00:02:28,930 --> 00:02:35,200 Dan kemudian printf ("hello, dunia" garis miring n, quote dekat, 64 00:02:35,200 --> 00:02:39,480 kurungan dekat, dan koma bertitik. 65 00:02:39,480 --> 00:02:39,990 >> Baiklah. 66 00:02:39,990 --> 00:02:41,700 Jadi kini melihat tetingkap saya ialah tanpa tajuk. 67 00:02:41,700 --> 00:02:44,840 Jadi, saya dengan cepat akan untuk naik ke Fail, Simpan. 68 00:02:44,840 --> 00:02:46,910 Dan ia adalah penting bahawa Saya menyeru ini tidak "hello." 69 00:02:46,910 --> 00:02:49,243 Jadi satu kesilapan yang sangat biasa, terutama dalam masalah menetapkan satu, 70 00:02:49,243 --> 00:02:52,530 adalah untuk sengaja hanya memanggil anda program "air" atau "tamak" atau "Mario" 71 00:02:52,530 --> 00:02:53,890 atau "kredit" atau sebagainya. 72 00:02:53,890 --> 00:02:55,970 Tetapi anda sebenarnya ingin pastikan anda mempunyai sambungan fail 73 00:02:55,970 --> 00:02:58,928 kerana ini adalah satu-satunya cara yang penyusun dan juga editor kod di 74 00:02:58,928 --> 00:03:00,710 tahu bahawa anda berada sebenarnya menulis kod C. 75 00:03:00,710 --> 00:03:02,280 Jadi biarlah saya pergi ke hadapan dan klik Simpan. 76 00:03:02,280 --> 00:03:05,710 >> Dan kini, juga, apa CS50 IDE telah dilakukan untuk kita adalah ia juga 77 00:03:05,710 --> 00:03:07,120 sintaks menekankan segala-galanya. 78 00:03:07,120 --> 00:03:08,822 Jadi ia membuat segala sesuatu yang sangat berwarna-warni. 79 00:03:08,822 --> 00:03:10,780 Dan seluruh maksud yang tidak berfungsi. 80 00:03:10,780 --> 00:03:14,290 Ia hanya untuk menarik mata saya kepada keping yang berbeza dari segi konsep 81 00:03:14,290 --> 00:03:15,310 program ini. 82 00:03:15,310 --> 00:03:17,570 Oleh itu, marilah kita pergi ke hadapan dan menyusun ini. 83 00:03:17,570 --> 00:03:19,490 Dan saya boleh menyusun ini dalam beberapa cara. 84 00:03:19,490 --> 00:03:22,010 Dan pada minggu satu, cara lama-sekolah kita lakukan 85 00:03:22,010 --> 00:03:26,250 ia adalah betul-betul di arahan garis ini-- "hello.c dilafaz." 86 00:03:26,250 --> 00:03:27,596 Dan kemudian saya tekan Enter. 87 00:03:27,596 --> 00:03:29,720 Dan apa-apa seolah-olah berlaku dalam tetingkap terminal. 88 00:03:29,720 --> 00:03:32,654 Tetapi apa yang melakukan perubahan dalam IDE? 89 00:03:32,654 --> 00:03:35,320 Di mana, sekali lagi, IDE hanya bermakna Persekitaran Pembangunan Bersepadu. 90 00:03:35,320 --> 00:03:38,360 Ia adalah cara yang mewah untuk mengatakan pembangunan bersepadu ini 91 00:03:38,360 --> 00:03:40,620 persekitaran untuk membangunkan perisian. 92 00:03:40,620 --> 00:03:42,477 Jadi apa yang berubah dalam UI? 93 00:03:42,477 --> 00:03:44,310 Apa yang anda notis itu berbeza, Maria? 94 00:03:44,310 --> 00:03:47,100 >> MARIA: Saya melihat sesuatu bawah IDE50 folder di sini. 95 00:03:47,100 --> 00:03:47,850 >> DAVID MALAN: Ya. 96 00:03:47,850 --> 00:03:50,230 Jadi di sini, bukan sahaja adakah kita mempunyai "hello.c." 97 00:03:50,230 --> 00:03:53,120 Kami juga mempunyai "a.out," yang jenis nama bisu untuk program. 98 00:03:53,120 --> 00:03:56,430 Tetapi sesungguhnya, ia adalah nama lalai untuk program apabila anda hanya menyusun kod anda 99 00:03:56,430 --> 00:03:59,110 dan tidak memberitahu pengkompil apa fail untuk output. 100 00:03:59,110 --> 00:04:01,790 Jadi, jika saya mahu menjalankan ini, saya perlu memberitahu compiler-- yang 101 00:04:01,790 --> 00:04:05,340 atau sebaliknya, saya perlu memberitahu ruang kerja yang saya 102 00:04:05,340 --> 00:04:09,780 mahu menjalankan program yang dipanggil "a.out." 103 00:04:09,780 --> 00:04:10,550 Enter. 104 00:04:10,550 --> 00:04:12,474 Dan ada "hello, dunia. "kini" ./ ". 105 00:04:12,474 --> 00:04:13,390 sebenarnya penting. 106 00:04:13,390 --> 00:04:16,050 Walaupun biasanya kita hanya mencatat nama orang-arahan, 107 00:04:16,050 --> 00:04:19,060 apabila ia adalah satu program yang anda telah bertulis, anda tidak mahu untuk mengatakan "./" 108 00:04:19,060 --> 00:04:22,460 kerana itu jelas memberitahu Linux yang anda mahu menjalankan program yang dipanggil 109 00:04:22,460 --> 00:04:26,930 "a.out" itu dalam hal ini, di mana titik bermakna direktori ini bahawa saya kini 110 00:04:26,930 --> 00:04:31,600 dalam, yang berlaku sebagai dipanggil ruang kerja, "a.out. 111 00:04:31,600 --> 00:04:35,410 Kerana jika saya hanya berkata "a.out" Masuklah, Saya akan mendapat "a.out arahan tidak 112 00:04:35,410 --> 00:04:38,035 dijumpai "kerana computer-- kerana saya mencipta "a.out;" 113 00:04:38,035 --> 00:04:40,910 ia tidak datang dengan computer-- yang tidak tahu di mana untuk melihat untuk itu, 114 00:04:40,910 --> 00:04:43,590 walaupun ia betul di bawah hidung saya, jadi untuk bercakap. 115 00:04:43,590 --> 00:04:44,090 OKEY. 116 00:04:44,090 --> 00:04:49,910 Oleh itu, kita boleh menukar ini kepada menjadi "dilafaz-o hello hello.c." 117 00:04:49,910 --> 00:04:53,030 Dan jika saya tekan Enter, apa program ini berlaku kepada output untuk saya? 118 00:04:53,030 --> 00:04:55,710 Apa nama fail? 119 00:04:55,710 --> 00:04:57,500 Ya, di belakang. 120 00:04:57,500 --> 00:04:58,479 Betul. "Hello." 121 00:04:58,479 --> 00:05:00,520 Jadi "hello" akan menjadi nama program yang 122 00:05:00,520 --> 00:05:04,610 kerana kita telah menggunakan apa yang dipanggil garis hujah perintah, yang hanya 123 00:05:04,610 --> 00:05:08,120 satu cara untuk mengubah tingkah laku pengkompil untuk benar-benar output 124 00:05:08,120 --> 00:05:09,450 nama fail tertentu. 125 00:05:09,450 --> 00:05:12,400 Dan sesungguhnya, jika saya zum keluar dan melihat di sini, 126 00:05:12,400 --> 00:05:17,430 kini saya mempunyai bukan sahaja "a.out" dan "hello.c" tetapi juga "hello," juga. 127 00:05:17,430 --> 00:05:22,410 Jadi sekarang saya boleh lakukan "./hello," Enter. 128 00:05:22,410 --> 00:05:23,640 Dan ada "hello, dunia." 129 00:05:23,640 --> 00:05:25,640 Tetapi lastly-- dan ini kini akan konvensyen 130 00:05:25,640 --> 00:05:27,590 kita gunakan di seluruh semester, typically-- 131 00:05:27,590 --> 00:05:30,070 adalah anda juga boleh hanya mengatakan "membuat hello." 132 00:05:30,070 --> 00:05:33,370 Dan sesungguhnya, ia berkata ia terpulang setakat ini kerana ia telah wujud. 133 00:05:33,370 --> 00:05:37,860 Biar saya pergi ke hadapan dan keluarkan, dengan arahan rm, kedua-dua "a.out" - 134 00:05:37,860 --> 00:05:39,644 dan berkata "keluarkan a.out fail biasa?" 135 00:05:39,644 --> 00:05:41,810 Yang hanya bermakna, adakah anda pasti anda mahu memadamnya? 136 00:05:41,810 --> 00:05:42,880 Saya akan mengatakan ya. 137 00:05:42,880 --> 00:05:46,690 Dan kemudian saya akan keluarkan "hello" tetapi tidak "hello.c." 138 00:05:46,690 --> 00:05:49,920 Saya akan berkata "ya" dengan jelas, tetapi "y" adalah mencukupi, juga. 139 00:05:49,920 --> 00:05:52,140 >> Dan kini melihat jika saya menaip ls-- yang, ingat, 140 00:05:52,140 --> 00:05:55,540 bermakna list-- ia menyenaraikan semua fail-fail di dalam folder saya. 141 00:05:55,540 --> 00:05:57,850 Dan sesungguhnya, jika saya zum keluar dan melihat sebelah kiri, 142 00:05:57,850 --> 00:05:59,730 ia mengesahkan bahawa apa yang di dalam folder ini, walaupun 143 00:05:59,730 --> 00:06:04,990 walaupun ia dilabelkan sebagai IDE50 di sini dan tidak ruang kerja, ia hanya "hello.c." 144 00:06:04,990 --> 00:06:09,152 Jadi sekarang turun di sini, jika saya jangan "membuat hello" Masuklah, 145 00:06:09,152 --> 00:06:12,360 sekarang saya lihat arahan yang lebih lama tetapi arahan yang lebih canggih yang akan 146 00:06:12,360 --> 00:06:13,940 berguna dalam minggu-minggu akan datang. 147 00:06:13,940 --> 00:06:16,720 Dan sekarang saya boleh berkata "./hello." 148 00:06:16,720 --> 00:06:19,257 >> Jadi mari kita mengambil lawatan cepat beberapa Linux yang lain menyuruh. 149 00:06:19,257 --> 00:06:21,840 Mengapa tidak kita mengambil langkah ke belakang dan benar-benar melihat C lebih 150 00:06:21,840 --> 00:06:25,020 secara amnya, peralihan dari Scratch kepada C, dan kemudian membuat kesimpulan dengan wajah yang 151 00:06:25,020 --> 00:06:27,305 pada masalah pertama ditetapkan dalam C. Baiklah. 152 00:06:27,305 --> 00:06:30,430 Jadi, saya akan pergi ke hadapan dan hanya bersih sehingga ruang kerja saya dengan kawalan-L sahaja 153 00:06:30,430 --> 00:06:31,429 untuk menjaga skrin kemas. 154 00:06:31,429 --> 00:06:33,520 Tetapi yang tidak mempunyai fungsi memberi kesan sebaliknya. 155 00:06:33,520 --> 00:06:35,820 >> Ingat bahawa kita telah melihat beberapa arahan sekarang. 156 00:06:35,820 --> 00:06:39,900 Oleh itu, kita telah lihat dilafaz, yang umumnya anda tidak perlu melaksanakan secara manual lagi. 157 00:06:39,900 --> 00:06:41,650 Kami sebaliknya akan menggunakan make. 158 00:06:41,650 --> 00:06:45,290 Tetapi kita juga menyaksikan ls, yang menunjukkan senarai fail-fail dalam direktori saya. 159 00:06:45,290 --> 00:06:48,750 Dan kini mengapa there-- ada yang dua fail sekarang, "hello" dan "hello.c." 160 00:06:48,750 --> 00:06:52,240 Kenapa ada bintang atau asterisk selepas "hello"? 161 00:06:52,240 --> 00:06:54,900 Apa yang menandakan, berdasarkan kepada apa yang kita lihat dalam satu minggu? 162 00:06:54,900 --> 00:06:58,852 163 00:06:58,852 --> 00:07:00,400 Apa pendapat kamu? 164 00:07:00,400 --> 00:07:02,742 Apakah bintang menandakan? 165 00:07:02,742 --> 00:07:04,614 >> MARIA: bagi- program "hello"? 166 00:07:04,614 --> 00:07:05,530 DAVID MALAN: "Hello *". 167 00:07:05,530 --> 00:07:06,330 Yeah. 168 00:07:06,330 --> 00:07:07,760 Oh, ya? 169 00:07:07,760 --> 00:07:08,639 Oh, boleh laku. 170 00:07:08,639 --> 00:07:09,180 Betul. 171 00:07:09,180 --> 00:07:10,890 Ini bermakna bahawa "hello" boleh laksana. 172 00:07:10,890 --> 00:07:13,430 Maka sesungguhnya, itulah sebabnya Yang boleh saya lakukan "./hello." 173 00:07:13,430 --> 00:07:13,930 Baiklah. 174 00:07:13,930 --> 00:07:15,179 Jadi apa lagi yang boleh saya lakukan di sini? 175 00:07:15,179 --> 00:07:17,290 Nah, ternyata saya boleh juga mewujudkan direktori. 176 00:07:17,290 --> 00:07:20,924 Jadi biarlah saya pergi ke hadapan dan membuat, misalnya, "pset1" direktori. 177 00:07:20,924 --> 00:07:23,590 Dan spesifikasi masalah menetapkan akan anda lakukan betul-betul ini, 178 00:07:23,590 --> 00:07:25,260 supaya anda tidak perlu ingat hari ini. 179 00:07:25,260 --> 00:07:27,340 Tetapi "mkdir pset1" seolah-olah tidak mempunyai kesan. 180 00:07:27,340 --> 00:07:30,540 Tetapi sekali lagi, tiada mesej ralat secara amnya adalah satu perkara yang baik. 181 00:07:30,540 --> 00:07:34,060 Jadi, jika saya menaip "ls" sekarang-- ah, sekarang Saya mempunyai fail boleh laku yang dikenali sebagai 182 00:07:34,060 --> 00:07:36,570 "hello," fail C dipanggil "hello.c." 183 00:07:36,570 --> 00:07:40,860 Dan kemudian slash belakang, jadi untuk berkata-kata, bermakna bahawa ini adalah direktori. 184 00:07:40,860 --> 00:07:42,510 >> Jadi sesungguhnya, sekarang saya mahu membukanya. 185 00:07:42,510 --> 00:07:45,730 Dan saya tidak klik dua kali di atasnya seperti dalam GUI, persekitaran grafik. 186 00:07:45,730 --> 00:07:48,550 Saya bukan mengatakan "cd pset1." 187 00:07:48,550 --> 00:07:49,640 Enter. 188 00:07:49,640 --> 00:07:53,100 Apa yang menarik seolah-olah mempunyai berlaku kecuali segera kecil saya 189 00:07:53,100 --> 00:07:57,300 sini-- ini adalah cara Linux mengingatkan saya di mana saya, jadi apa folder terbuka. 190 00:07:57,300 --> 00:08:00,080 Ia hanya memberitahu saya jelas berbanding dengan grafik. 191 00:08:00,080 --> 00:08:05,100 Dan jika saya taip "ls," mengapa saya melihat satu lagi mendorong serta-merta, yang anda fikir, 192 00:08:05,100 --> 00:08:07,269 apabila saya menyenaraikan kandungan pset1? 193 00:08:07,269 --> 00:08:09,310 MARIA: Anda mungkin tidak mempunyai apa-apa di sana. 194 00:08:09,310 --> 00:08:09,630 DAVID MALAN: Ya. 195 00:08:09,630 --> 00:08:11,510 Sebab itu kita tidak mempunyai jelas mencipta apa-apa di sana 196 00:08:11,510 --> 00:08:13,150 kerana saya baru sahaja mencipta direktori. 197 00:08:13,150 --> 00:08:17,690 Sekarang, jika saya mahu mencipta file-- untuk Contohnya, saya boleh mencipta fail baru. 198 00:08:17,690 --> 00:08:20,190 Dan kemudian saya boleh pergi ke Simpan dan simpan sebagai, 199 00:08:20,190 --> 00:08:23,090 seperti, "mario.c" jika anda lakukan edisi taraf pset satu. 200 00:08:23,090 --> 00:08:27,610 Dan kemudian, seperti mana-mana Mac atau PC, hanya memilih folder "pset1, Simpan. 201 00:08:27,610 --> 00:08:28,740 Dan kini fail kosong. 202 00:08:28,740 --> 00:08:31,160 Tetapi mari kita zum masuk semula untuk kali kedua. 203 00:08:31,160 --> 00:08:32,470 Mari kita buat ls di sini. 204 00:08:32,470 --> 00:08:34,470 Sekarang kita lihat "mario.c". 205 00:08:34,470 --> 00:08:37,850 >> Jadi ada beberapa arahan lain yang adalah bernilai dengan mengambil lebih time-- 206 00:08:37,850 --> 00:08:41,200 jelas, atau Kawalan-L adalah apa yang saya telah telah memukul; mkdir yang kami telah lihat; 207 00:08:41,200 --> 00:08:45,240 rm yang kami telah lihat, dan juga, yang untuk mengeluarkan atau memadam fail. 208 00:08:45,240 --> 00:08:49,310 Berhati-hati anda boleh also-- dan jika anda melihat di tutorial dalam talian, anda akan rm -rf 209 00:08:49,310 --> 00:08:52,630 adalah cara yang sangat biasa untuk mengatakan memadam folder yang mempunyai barangan di dalamnya. 210 00:08:52,630 --> 00:08:54,280 Hanya super, super-hati. 211 00:08:54,280 --> 00:08:58,780 -rf bermakna secara rekursif memadam apa sahaja 212 00:08:58,780 --> 00:09:01,150 anda cuba untuk memadam dan secara paksa memadamnya. 213 00:09:01,150 --> 00:09:04,630 Jadi cara rekursi jika ia folder dengan folder dengan folder dengan folder, 214 00:09:04,630 --> 00:09:05,690 memadam semua daripada mereka. 215 00:09:05,690 --> 00:09:08,680 Dan secara paksa bermakna tidak walaupun bertanya kepada saya ya atau tidak, aku pasti? 216 00:09:08,680 --> 00:09:11,960 Jadi ia adalah cara yang super berbahaya memotong banyak barang dengan cepat. 217 00:09:11,960 --> 00:09:17,210 Tetapi beware-- terlalu kerap melakukan suatu berani pelajar tidak sengaja memadam, berkata, pset 218 00:09:17,210 --> 00:09:18,000 satu, misalnya. 219 00:09:18,000 --> 00:09:19,833 >> MARIA: Dan jika mereka hanya melakukan -r, mereka akan 220 00:09:19,833 --> 00:09:21,870 bertanya kepada mereka tentang setiap fail. 221 00:09:21,870 --> 00:09:22,790 >> DAVID MALAN: Yang sederhana menjengkelkan. 222 00:09:22,790 --> 00:09:23,480 >> MARIA: Ya. 223 00:09:23,480 --> 00:09:25,813 >> DAVID MALAN: Jadi sebab itu begitu ramai di antara kita, diri termasuk, 224 00:09:25,813 --> 00:09:27,070 Aku di dalam tabiat menggunakan -rf. 225 00:09:27,070 --> 00:09:27,861 Tetapi ia adalah berbahaya. 226 00:09:27,861 --> 00:09:29,010 Jadi berhati-hati pembeli. 227 00:09:29,010 --> 00:09:31,050 Dan kemudian mv adalah jenis menarik dinamakan. 228 00:09:31,050 --> 00:09:33,600 Jadi ini adalah arahan langkah itu, yang berasa pelik sedikit 229 00:09:33,600 --> 00:09:37,260 kerana anda memang boleh menggunakannya untuk memindahkan fail dari satu tempat ke tempat lain. 230 00:09:37,260 --> 00:09:39,970 Sebagai contoh, katakan bahawa saya sehingga merosakkan. 231 00:09:39,970 --> 00:09:43,660 Katakan saya buat fail baru untuk pset. 232 00:09:43,660 --> 00:09:46,320 Dan saya disimpan sebagai "greedy.c." 233 00:09:46,320 --> 00:09:49,970 Tetapi kira saya sengaja simpan dalam IDE50-- jadi dalam ruang kerja saya sendiri 234 00:09:49,970 --> 00:09:51,580 dan tidak dalam pset1. 235 00:09:51,580 --> 00:09:53,960 >> Anda boleh melihat sebanyak di sebelah kiri atas. 236 00:09:53,960 --> 00:09:55,284 Ada "greedy.c." 237 00:09:55,284 --> 00:09:56,450 Dan ada beberapa penyelesaian. 238 00:09:56,450 --> 00:09:58,324 Jadi satu, saya boleh menggunakan super cara yang mesra pengguna 239 00:09:58,324 --> 00:09:59,740 hanya mengheret dan menjatuhkan. 240 00:09:59,740 --> 00:10:01,910 Dan itu akan benar-benar menyelesaikan masalah ini. 241 00:10:01,910 --> 00:10:04,967 Tetapi hari ini, kita cuba untuk melihat cara-cara yang lebih sukar difahami tetapi berkuasa 242 00:10:04,967 --> 00:10:05,550 untuk berbuat demikian. 243 00:10:05,550 --> 00:10:07,880 Jadi biarlah saya mengambil "ls" di pset1. 244 00:10:07,880 --> 00:10:09,690 Dan saya hanya melihat "mario.c." 245 00:10:09,690 --> 00:10:13,450 Biar saya pergi ke hadapan dan melakukan "cd ..". 246 00:10:13,450 --> 00:10:15,320 Jadi CD lagi adalah direktori perubahan. 247 00:10:15,320 --> 00:10:18,130 ".." Ertinya apa, walaupun? 248 00:10:18,130 --> 00:10:21,100 Kali terakhir saya berkata "cd pset1 "untuk pergi ke dalam pset1. 249 00:10:21,100 --> 00:10:24,360 Oleh itu, apabila saya berkata "cd ..", apa yang saya buat? 250 00:10:24,360 --> 00:10:24,910 Ke belakang. 251 00:10:24,910 --> 00:10:25,150 Yeah. 252 00:10:25,150 --> 00:10:26,750 >> Jadi ia akan kepada ibu bapa kononnya. 253 00:10:26,750 --> 00:10:29,730 Pergi satu tahap sehingga, seperti keluar daripada folder. 254 00:10:29,730 --> 00:10:30,500 Jadi Enter. 255 00:10:30,500 --> 00:10:31,900 Dan sesungguhnya, melihat apa yang berlaku. 256 00:10:31,900 --> 00:10:37,070 Ia bergerak saya hanya ke dalam ruang kerja dan bukannya daripada ke dalam pset1, yang berada dalam ruang kerja. 257 00:10:37,070 --> 00:10:39,710 Dan sekarang saya menaip "ls", ada sejumlah besar barangan. 258 00:10:39,710 --> 00:10:41,650 Dalam ada "greedy.c". 259 00:10:41,650 --> 00:10:48,720 Jadi sekarang mari saya menggunakan mv untuk benar-benar bergerak "greedy.c" ke dalam pset1. 260 00:10:48,720 --> 00:10:51,120 Dan begitu banyak arahan Linux bekerja betul-betul seperti ini. 261 00:10:51,120 --> 00:10:54,470 Mereka tidak mengambil hujah-hujah atau mereka mengambil satu hujah atau mereka mengambil dua baris perintah 262 00:10:54,470 --> 00:10:55,449 hujah-hujah dan sebagainya. 263 00:10:55,449 --> 00:10:57,240 Dan dalam kes ini, ia adalah benar-benar melakukan apa yang 264 00:10:57,240 --> 00:11:01,670 ia berkata, walaupun succinctly-- bergerak greedy.c ke pset1. 265 00:11:01,670 --> 00:11:02,310 Enter. 266 00:11:02,310 --> 00:11:03,310 Tiada apa yang berlaku. 267 00:11:03,310 --> 00:11:06,180 Tetapi jika saya melakukan ls lagi, tamak hilang. 268 00:11:06,180 --> 00:11:12,437 Dan jika saya melakukan "cd pset1", Masukkan, dan kemudian ls lagi, kini ia di tempat yang betul. 269 00:11:12,437 --> 00:11:14,270 Sebagai mengetepikan, jika beberapa reason-- terutamanya 270 00:11:14,270 --> 00:11:16,194 jika anda mempunyai sekejap sambungan rangkaian 271 00:11:16,194 --> 00:11:18,360 atau anda berjalan di sekitar kampus dengan penutup komputer riba anda 272 00:11:18,360 --> 00:11:20,180 ditutup dan kemudian membukanya lagi dan ruang kerja anda 273 00:11:20,180 --> 00:11:21,730 kelihatan agak tidak segerak, ada masalah besar. 274 00:11:21,730 --> 00:11:23,646 Sila segarkan semula pelayar anda tingkap, dan yang sepatutnya 275 00:11:23,646 --> 00:11:26,339 menyegerakkan semula supaya kiri sebelah pelayar fail kelihatan betul-betul 276 00:11:26,339 --> 00:11:27,380 seperti tetingkap terminal. 277 00:11:27,380 --> 00:11:27,921 Tidak perlu bimbang. 278 00:11:27,921 --> 00:11:31,460 Apabila ragu-ragu, muat semula halaman, jadi Selama anda telah menyimpan fail sudah. 279 00:11:31,460 --> 00:11:31,960 OKEY. 280 00:11:31,960 --> 00:11:34,710 Jadi mv juga boleh digunakan untuk menamakan semula fail. 281 00:11:34,710 --> 00:11:36,760 Dan mari kita lihat pada arahan akhir ini di sini. 282 00:11:36,760 --> 00:11:39,950 Jadi suppose-- dan ini adalah super biasa, juga, sejak awal. 283 00:11:39,950 --> 00:11:46,400 Sesetengah pelajar kadang-kadang membuat fail dipanggil, mari kita iaitu- apa yang satu sama lain? 284 00:11:46,400 --> 00:11:47,730 Like "WATER.C." 285 00:11:47,730 --> 00:11:51,080 Jadi saya hanya akan menjerit, untuk tanpa sebab, dalam semua topi. 286 00:11:51,080 --> 00:11:53,190 Tetapi ini bukan satu- nama betul untuk fail 287 00:11:53,190 --> 00:11:56,660 jika hanya kerana masalah kita menetapkan spesifikasi tidak memberitahu anda 288 00:11:56,660 --> 00:11:59,430 untuk menyimpan fail sebagai semua topi "WATER.C." 289 00:11:59,430 --> 00:12:01,320 Sebaliknya, kita mengharapkan "water.c" dalam huruf kecil. 290 00:12:01,320 --> 00:12:03,140 Dan, sebenarnya, ini adalah kerana check50 bermasalah, 291 00:12:03,140 --> 00:12:04,370 program anda akan seorang dalam masalah 292 00:12:04,370 --> 00:12:07,350 menetapkan satu yang menguji secara automatik ketepatan kod anda 293 00:12:07,350 --> 00:12:11,615 akan menjerit pada anda jika ia tidak boleh mencari "water.c" dalam semua huruf kecil. 294 00:12:11,615 --> 00:12:12,712 >> Jadi saya perlu untuk menetapkan ini. 295 00:12:12,712 --> 00:12:14,920 Banyak cara yang berbeza untuk melakukan ini, di mana yang pertama 296 00:12:14,920 --> 00:12:18,330 adalah untuk Mengawal klik atau klik kanan nama fail dan hanya menukar Namakan semula. 297 00:12:18,330 --> 00:12:19,740 Betul-betul halus untuk berbuat demikian. 298 00:12:19,740 --> 00:12:21,820 Tetapi sekali lagi, hari ini, mari kita melakukannya sedikit pelamun. 299 00:12:21,820 --> 00:12:26,680 Mari kita gunakan mv untuk menukar "WATER.C" kepada "water.c." 300 00:12:26,680 --> 00:12:30,690 Oleh itu, anda juga boleh menggunakan hujah pertama untuk menukar nama kepada hujah kedua 301 00:12:30,690 --> 00:12:34,455 jika hujah kedua tidak, adalah dalam Malah, folder atau nama direktori. 302 00:12:34,455 --> 00:12:35,120 >> Baiklah. 303 00:12:35,120 --> 00:12:39,560 Dan akhir sekali, yang trick-- sedikit jadi saya dalam direktori ruang kerja saya pada masa ini. 304 00:12:39,560 --> 00:12:43,660 Jika saya mahu masuk ke dalam pset satu, Saya pasti boleh menaip "cd pset1." 305 00:12:43,660 --> 00:12:47,260 Tetapi ia begitu membosankan untuk menaip "pset1" atau lagi nama fail atau nama direktori 306 00:12:47,260 --> 00:12:47,980 masih. 307 00:12:47,980 --> 00:12:51,960 Jadi sangat sering dalam Linux, apa anda boleh lakukan ialah mula menaip "PSE" 308 00:12:51,960 --> 00:12:56,100 dan hanya bosan, tekan Tab, dan membiarkan komputer angka ia keluar untuk anda. 309 00:12:56,100 --> 00:12:58,190 Super membantu untuk masuk ke dalam tabiat itu. 310 00:12:58,190 --> 00:13:01,079 Tangkapan hanya adalah jika anda mempunyai berbilang fail atau folder bermula 311 00:13:01,079 --> 00:13:02,870 dengan huruf "p" atau "ps," anda mungkin mempunyai 312 00:13:02,870 --> 00:13:05,525 menaip beberapa lagi sebelum komputer tahu apa yang perlu dilakukan. 313 00:13:05,525 --> 00:13:06,820 >> MARIA: Kami suka jalan pintas. 314 00:13:06,820 --> 00:13:08,695 >> DAVID MALAN: Ini akan menjimatkan banyak masa. 315 00:13:08,695 --> 00:13:11,930 Dan juga, seperti yang kita katakan dalam kuliah, anda boleh menatal ke atas dalam sejarah, naik dan turun, 316 00:13:11,930 --> 00:13:15,461 untuk mencari baru-baru ini dilaksanakan arahan, juga. 317 00:13:15,461 --> 00:13:15,960 Baiklah. 318 00:13:15,960 --> 00:13:20,904 Oleh sebab itu, mari kita mengubah perhatian kita kembali untuk satu program yang mudah, hello dunia. 319 00:13:20,904 --> 00:13:22,195 Oleh itu, kita telah mengumpulkan ini betul-betul. 320 00:13:22,195 --> 00:13:24,050 Dan sekarang mengapa kita tidak mengambil lihat pada jenis data 321 00:13:24,050 --> 00:13:26,776 dan kemudian beralih dari beberapa blok calar sepadan dengan C. 322 00:13:26,776 --> 00:13:27,400 MARIA: Awesome. 323 00:13:27,400 --> 00:13:30,031 Jadi sekarang bahawa anda telah memulakan menulis program dalam C, 324 00:13:30,031 --> 00:13:32,530 kita akan mula bercakap tentang jenis data dan pembolehubah. 325 00:13:32,530 --> 00:13:37,570 Jadi beberapa jenis data yang anda mahu tahu bermula dari sekarang 326 00:13:37,570 --> 00:13:39,400 adalah orang-orang yang diserlahkan dengan warna biru. 327 00:13:39,400 --> 00:13:42,420 Jadi kita mempunyai int pertama, yang bermaksud integer. 328 00:13:42,420 --> 00:13:46,075 Dan yang memegang integer, kerana anda mungkin mempunyai guessed-- jadi 1, 2, 3, 329 00:13:46,075 --> 00:13:47,950 dan apa-apa bilangan bulat lain yang boleh anda fikirkan. 330 00:13:47,950 --> 00:13:48,730 >> DAVID MALAN: Dan juga negatif. 331 00:13:48,730 --> 00:13:50,220 >> MARIA: Dan juga orang-orang yang negatif, yep. 332 00:13:50,220 --> 00:13:51,450 Dan 0. 333 00:13:51,450 --> 00:13:54,250 Kemudian kita mempunyai kereta berhias, yang terapung nombor mata. 334 00:13:54,250 --> 00:13:58,360 Jadi itu sahaja nombor nyata yang mempunyai titik perpuluhan. 335 00:13:58,360 --> 00:14:03,960 Jadi 5.0, 5.2, dan lebih-lebih angka selepas titik perpuluhan, 336 00:14:03,960 --> 00:14:05,620 juga, dan juga yang negatif. 337 00:14:05,620 --> 00:14:07,530 Kemudian kita mempunyai char yang bersifat. 338 00:14:07,530 --> 00:14:10,240 Jadi saya fikir kita bercakap tentang ini hari ini dalam kuliah. 339 00:14:10,240 --> 00:14:15,682 Tetapi kita mempunyai surat, untuk example-- A, B, C-- yang boleh disimpan sebagai char. 340 00:14:15,682 --> 00:14:18,390 Tetapi kita mempunyai lebih banyak simbol-simbol yang boleh disimpan sebagai char. 341 00:14:18,390 --> 00:14:22,380 Dan orang-orang disimpan sebagai ASCII. 342 00:14:22,380 --> 00:14:25,280 >> Dan kemudian kita mempunyai bool, yang Booleans. 343 00:14:25,280 --> 00:14:29,067 Dan orang-orang menilai kepada Benar atau Palsu atau 1 dan 0, masing-masing. 344 00:14:29,067 --> 00:14:31,650 DAVID MALAN: Dan ingat bahawa bool datang dari perpustakaan CS50. 345 00:14:31,650 --> 00:14:33,300 Jadi ia tidak dibina ke dalam C, tetapi ia sangat berguna 346 00:14:33,300 --> 00:14:34,850 mempunyai tanggapan yang benar dan palsu. 347 00:14:34,850 --> 00:14:36,990 Dan walaupun anda mungkin think-- fakta yang menyeronokkan. 348 00:14:36,990 --> 00:14:43,700 Bool A teknikal memerlukan berapa banyak bit, benar-benar, untuk mewakili Benar berbanding Palsu? 349 00:14:43,700 --> 00:14:47,910 Berapa banyak bit yang anda fikir anda perlu, maksima? 350 00:14:47,910 --> 00:14:48,790 Ya, hanya satu. 351 00:14:48,790 --> 00:14:52,077 Jadi ternyata bahawa C tidak boleh memberikan anda hanya satu bit. 352 00:14:52,077 --> 00:14:54,160 Unit terkecil langkah anda boleh mendapatkan adalah lapan. 353 00:14:54,160 --> 00:14:57,090 Jadi ia adalah membazir sedikit mereka anda berada menggunakan bait keseluruhan, atau lapan bit, 354 00:14:57,090 --> 00:14:58,340 untuk mewakili Benar atau Palsu. 355 00:14:58,340 --> 00:15:01,807 Tetapi itu hanya jalan itu dilaksanakan di C oleh perpustakaan CS50. 356 00:15:01,807 --> 00:15:04,890 MARIA: Kemudian orang-orang yang kita tidak akan bercakap kira-kira sebagai secara meluas 357 00:15:04,890 --> 00:15:08,060 hak sekarang-- dua kali, itu yang terapung lebih besar. 358 00:15:08,060 --> 00:15:09,811 Long panjang dan pendek juga untuk integer. 359 00:15:09,811 --> 00:15:10,643 DAVID MALAN: Sesungguhnya. 360 00:15:10,643 --> 00:15:13,190 Dalam edisi penggodam daripada pset satu, kita sebenarnya menggunakan panjang panjang. 361 00:15:13,190 --> 00:15:15,801 Tetapi untuk edisi standard, ia tidak perlu. 362 00:15:15,801 --> 00:15:16,300 MARIA: Cool. 363 00:15:16,300 --> 00:15:17,361 OKEY. 364 00:15:17,361 --> 00:15:20,110 Jadi operators-- anda harus mungkin biasa dengan kebanyakan. 365 00:15:20,110 --> 00:15:22,620 Selain itu, +; penolakan, -. 366 00:15:22,620 --> 00:15:24,070 Untuk pendaraban, kami mempunyai * itu. 367 00:15:24,070 --> 00:15:25,900 Jadi bukan X yang kita biasanya menggunakan. 368 00:15:25,900 --> 00:15:27,840 Bahagian, kami mempunyai garis sendeng terbalik itu. 369 00:15:27,840 --> 00:15:31,380 Dan modulo adalah pengendali terakhir kami bahawa kita akan bercakap tentang sekarang. 370 00:15:31,380 --> 00:15:35,610 Ia merupakan satu pengendali yang membolehkan kita untuk mengambil baki bahagian. 371 00:15:35,610 --> 00:15:40,630 Jadi, jika kita mempunyai 4% 2, 4 dibahagikan oleh 2 adalah 2 dengan baki 0. 372 00:15:40,630 --> 00:15:41,740 Jadi 4% 2 adalah 0. 373 00:15:41,740 --> 00:15:42,950 4% 3 adalah 1. 374 00:15:42,950 --> 00:15:44,870 4% 5 adalah 4, seperti yang anda boleh meneka. 375 00:15:44,870 --> 00:15:48,860 Dan ingatlah ketika menggunakan semua ini operator untuk menggunakan kaedah-kaedah PEMDAS. 376 00:15:48,860 --> 00:15:54,060 >> DAVID MALAN: Jadi perlu jelas, jika anda melakukan 4% 2, mengapa bahawa 0, betul-betul? 377 00:15:54,060 --> 00:15:57,480 >> MARIA: Kerana 4 dibahagikan dengan 2 adalah 2 dengan baki 0. 378 00:15:57,480 --> 00:16:00,752 Jadi modulo memberikan kita baki bahawa sebagai bertentangan dengan hasil daripada bahagian ini. 379 00:16:00,752 --> 00:16:02,960 DAVID MALAN: Dan sesungguhnya, apa yang kita akan mendapati ini berguna 380 00:16:02,960 --> 00:16:05,640 adalah bahawa dalam beberapa masalah itu bukan semestinya satu, 381 00:16:05,640 --> 00:16:08,040 jika anda mahu mempunyai kesan menyekat diri 382 00:16:08,040 --> 00:16:10,720 kepada pelbagai nombor seperti 0 melalui sesuatu, 383 00:16:10,720 --> 00:16:13,904 anda boleh menggunakan modulo untuk membungkus lebih awal daripada seperti 2000000000 384 00:16:13,904 --> 00:16:16,320 atau nilai 4 bilion yang kita telah bercakap tentang dalam kuliah. 385 00:16:16,320 --> 00:16:16,870 >> MARIA: Ya. 386 00:16:16,870 --> 00:16:19,429 Dan walaupun dalam "tamak" kita mungkin. 387 00:16:19,429 --> 00:16:21,345 DAVID MALAN: Ya, dalam masalah menetapkan satu, juga. 388 00:16:21,345 --> 00:16:22,520 MARIA: Ya, bagus. 389 00:16:22,520 --> 00:16:24,340 DAVID MALAN: tanda-tanda yang baik. 390 00:16:24,340 --> 00:16:25,750 MARIA: Maaf. 391 00:16:25,750 --> 00:16:28,590 Boolean expressions-- supaya untuk operator Boolean, 392 00:16:28,590 --> 00:16:31,770 kita akan bercakap tentang semua itu ini anda lihat di sini. 393 00:16:31,770 --> 00:16:35,310 Jadi sekarang, kita mempunyai dua tanda-tanda yang sama disenaraikan untuk sama rata. 394 00:16:35,310 --> 00:16:38,650 Jadi mereka adalah untuk perbandingan. 395 00:16:38,650 --> 00:16:40,830 Setakat ini, kami hanya melihat satu tanda sama. 396 00:16:40,830 --> 00:16:44,870 Itulah apabila kita menetapkan nilai kepada pembolehubah. 397 00:16:44,870 --> 00:16:50,160 Jadi, jika kita telah lihat int n = 5, maka kami telah diberikan 5 hingga n pembolehubah. 398 00:16:50,160 --> 00:16:55,600 Tetapi jika kita mahu menggunakan == untuk perbandingan, kita boleh menyemak jika n == 5. 399 00:16:55,600 --> 00:16:58,310 Dan jika n == 5, maka itulah yang benar. 400 00:16:58,310 --> 00:17:01,950 >> Pengendali Jadi Boolean membolehkan kita, pada dasarnya, 401 00:17:01,950 --> 00:17:04,670 untuk menilai Boolean ungkapan kepada Benar atau Palsu. 402 00:17:04,670 --> 00:17:07,819 Jadi tidak equals-- kita mempunyai tanda seru dan sama rata. 403 00:17:07,819 --> 00:17:14,240 Oleh itu, kita juga boleh menyemak jika n tidak sama 5-- jadi n! = 5. 404 00:17:14,240 --> 00:17:17,640 Kurang daripada, kurang daripada atau sama dengan, lebih besar daripada, lebih besar daripada atau sama dengan, 405 00:17:17,640 --> 00:17:20,720 dan kemudian kita mempunyai logik AND dan OR logik. 406 00:17:20,720 --> 00:17:24,060 Dan orang-orang membolehkan kita untuk menilai pelbagai ungkapan Boolean bersama-sama 407 00:17:24,060 --> 00:17:27,930 pada dasarnya bersatu sebagai satu ungkapan Boolean keseluruhan. 408 00:17:27,930 --> 00:17:34,970 Jadi, jika kita hendak mencari nombor, berkata, yang lebih besar daripada 5 tetapi kurang daripada 15 409 00:17:34,970 --> 00:17:39,810 pada masa yang sama, kita akan menggunakan logik DAN pengendali untuk melihat jika n ialah 410 00:17:39,810 --> 00:17:42,937 lebih besar daripada 5 && n kurang daripada 15. 411 00:17:42,937 --> 00:17:44,770 DAVID MALAN: Dan di sini, juga, ia benar-benar mudah 412 00:17:44,770 --> 00:17:47,290 awal untuk sengaja menggunakan hanya satu Ampersand tunggal 413 00:17:47,290 --> 00:17:48,572 atau bar menegak tunggal. 414 00:17:48,572 --> 00:17:51,280 Dan mudah-mudahan pengkompil akan menjerit pada anda kerana mereka benar-benar 415 00:17:51,280 --> 00:17:52,530 mempunyai maksud yang sangat berbeza. 416 00:17:52,530 --> 00:17:55,660 Bagi mereka yang ingin tahu, mereka digunakan untuk operasi bitwise, 417 00:17:55,660 --> 00:17:57,197 beroperasi pada bit individu. 418 00:17:57,197 --> 00:17:58,780 Tetapi anda mahu pasangan mereka di sini. 419 00:17:58,780 --> 00:18:01,560 Dan super penting ialah Yang pertama, tanda yang sama, 420 00:18:01,560 --> 00:18:05,270 yang merupakan pengendali kesaksamaan sebagai bertentangan dengan pengendali tugasan. 421 00:18:05,270 --> 00:18:08,552 >> MARIA: Dan bar menegak terletak di antara Delete dan Return. 422 00:18:08,552 --> 00:18:09,260 DAVID MALAN: Ya. 423 00:18:09,260 --> 00:18:11,420 Pada papan kekunci AS biasa. 424 00:18:11,420 --> 00:18:13,190 >> MARIA: Ya. 425 00:18:13,190 --> 00:18:15,890 Jadi mari kita melompat terus ke dalam kenyataan bersyarat. 426 00:18:15,890 --> 00:18:18,300 Di Awal, anda telah sudah dilihat, mungkin, 427 00:18:18,300 --> 00:18:22,730 jika kenyataan yang membolehkan anda untuk memeriksa jika sesuatu yang tidak benar, maka 428 00:18:22,730 --> 00:18:23,660 melakukan sesuatu yang lain. 429 00:18:23,660 --> 00:18:28,410 Jadi, anda mungkin mahu untuk memeriksa jika bidadari anda 430 00:18:28,410 --> 00:18:31,410 menyentuh beberapa bidadari lain atau sempadan skrin anda. 431 00:18:31,410 --> 00:18:35,520 Dan kemudian anda telah mahu menamatkan permainan atau melakukan sesuatu yang lain. 432 00:18:35,520 --> 00:18:40,000 Jadi sintaks untuk "jika (keadaan)." 433 00:18:40,000 --> 00:18:46,820 Jadi, jika bidadari anda menyentuh sesuatu, maka adalah di dalam pendakap kerinting. 434 00:18:46,820 --> 00:18:48,980 >> Maka kita perlu jika-lagi kenyataan. 435 00:18:48,980 --> 00:18:54,080 Yang lain membolehkan kita untuk melakukan sesuatu jika syarat kita 436 00:18:54,080 --> 00:18:55,870 memeriksa pada mulanya adalah tidak benar. 437 00:18:55,870 --> 00:19:01,530 Jadi, jika bidadari itu menyentuh sempadan melakukan ini, lagi yang sesuatu yang lain. 438 00:19:01,530 --> 00:19:04,030 Jadi jika tidak melakukan sesuatu yang lain. 439 00:19:04,030 --> 00:19:07,530 Kemudian kita mempunyai contoh terbaik untuk ini. 440 00:19:07,530 --> 00:19:11,551 Jadi, jika (military_time <12), kita mahu printf "Selamat pagi!" 441 00:19:11,551 --> 00:19:13,300 Yang lain kita akan printf "Selamat malam!" 442 00:19:13,300 --> 00:19:14,860 Contoh asas. 443 00:19:14,860 --> 00:19:15,680 >> DAVID MALAN: Baik. 444 00:19:15,680 --> 00:19:16,760 >> MARIA: Cool. 445 00:19:16,760 --> 00:19:18,560 Jadi sekarang kita mempunyai kenyataan suis. 446 00:19:18,560 --> 00:19:21,960 Tukar kenyataan dalam tin umum membolehkan kita untuk melakukan banyak perkara yang sama 447 00:19:21,960 --> 00:19:25,070 bahawa kita hanya bercakap mengenai dengan jika kenyataan. 448 00:19:25,070 --> 00:19:29,440 Sebagai contoh, sekarang kita mempunyai Bentuk umum kenyataan suis 449 00:19:29,440 --> 00:19:33,870 yang membolehkan kita untuk mengambil pembolehubah dipanggil n 450 00:19:33,870 --> 00:19:37,670 dan membandingkannya dengan banyak nilai-nilai yang berbeza, yang di sini kita 451 00:19:37,670 --> 00:19:40,010 telah dipanggil constant1, constant2. 452 00:19:40,010 --> 00:19:41,150 Kita mungkin mempunyai banyak lagi. 453 00:19:41,150 --> 00:19:42,930 Dan orang-orang yang dipanggil kes. 454 00:19:42,930 --> 00:19:46,280 >> Jadi, jika kita mempunyai suis statement-- dan kerja-kerja ini 455 00:19:46,280 --> 00:19:50,580 hanya untuk integers-- kita mempunyai berubah-ubah dalam ini kes itu n. 456 00:19:50,580 --> 00:19:53,840 Jika n pembolehubah adalah sama dengan constant1, kita 457 00:19:53,840 --> 00:19:59,720 akan melaksanakan beberapa coretan kod atau sesuatu yang kita mahu lakukan. 458 00:19:59,720 --> 00:20:01,280 Dan kemudian kita akan pecah. 459 00:20:01,280 --> 00:20:04,820 Jadi rehat bermakna kenyataan suis 460 00:20:04,820 --> 00:20:08,120 akan berhenti melaksanakan jika n adalah sama dengan constant1, 461 00:20:08,120 --> 00:20:09,752 dan kemudian program anda akan berterusan. 462 00:20:09,752 --> 00:20:11,835 Ia akan keluar daripada menukar kenyataan dan ia akan 463 00:20:11,835 --> 00:20:13,520 terus berbuat sesuatu yang lain. 464 00:20:13,520 --> 00:20:17,204 >> Jika, bagaimanapun, n tidak sama constant1, maka kes untuk constant2 465 00:20:17,204 --> 00:20:17,870 akan diperiksa. 466 00:20:17,870 --> 00:20:21,750 Jadi, jika n sama constant2, yang lain coretan kod akan dilaksanakan. 467 00:20:21,750 --> 00:20:23,850 Dan kemudian ia akan memecahkan jika itu adalah sama dengan ia. 468 00:20:23,850 --> 00:20:27,580 Dan kemudian kita boleh mempunyai also-- tidak semestinya, though-- kes lalai, 469 00:20:27,580 --> 00:20:32,290 yang akan berlaku jika n tidak sama mana-mana kes yang telah disenaraikan. 470 00:20:32,290 --> 00:20:35,400 Dan dalam kes lalai, kami juga tidak perlu berehat semestinya 471 00:20:35,400 --> 00:20:39,271 kerana kenyataan suis akan tahu bahawa ia perlu berakhir selepas lalai 472 00:20:39,271 --> 00:20:40,270 kes jika itu berlaku. 473 00:20:40,270 --> 00:20:42,140 >> DAVID MALAN: Tetapi segi gaya, kami sentiasa meletakkan ia di sana. 474 00:20:42,140 --> 00:20:42,540 >> MARIA: Ya. 475 00:20:42,540 --> 00:20:42,710 >> DAVID MALAN: Ya. 476 00:20:42,710 --> 00:20:44,750 Jadi terutamanya apabila bermula, terutama jika di kalangan mereka yang kurang 477 00:20:44,750 --> 00:20:47,458 selesa, saya akan secara peribadi hanya mengesyorkan melekat dengan IFS 478 00:20:47,458 --> 00:20:51,564 dan IFS-penumpang lain dan jika-pun-jika-elses dan sebagainya jika hanya 479 00:20:51,564 --> 00:20:53,480 kerana mereka sedikit lebih mudah. 480 00:20:53,480 --> 00:20:56,142 Ini adalah pengoptimuman bagus, atau kadang-kadang walaupun estetika ia 481 00:20:56,142 --> 00:20:57,350 menjadikan kod lebih mudah dibaca. 482 00:20:57,350 --> 00:20:59,599 Dan sebenarnya, mungkin pertengahan semester kita akan melihat masalah 483 00:20:59,599 --> 00:21:02,504 ditetapkan di mana ia hanya kelihatan lebih baik dan lebih mudah dibaca bagi manusia 484 00:21:02,504 --> 00:21:03,670 dengan menggunakan kenyataan suis. 485 00:21:03,670 --> 00:21:05,460 Tetapi jangan bimbang tentang bergantung kepada ini terlalu awal. 486 00:21:05,460 --> 00:21:05,680 >> MARIA: Ya. 487 00:21:05,680 --> 00:21:08,840 Jika anda mempunyai banyak daripada jika kenyataan, ia mungkin tidak menjadi sangat boleh dibaca. 488 00:21:08,840 --> 00:21:10,965 Ia mungkin tidak menjadi sangat cepat untuk anda untuk melaluinya. 489 00:21:10,965 --> 00:21:13,230 Jadi kenyataan menukar boleh menjadi sangat berguna, juga. 490 00:21:13,230 --> 00:21:17,900 Dan juga, jangan remember-- tidak lupa untuk meletakkan rehat di sana. 491 00:21:17,900 --> 00:21:20,330 >> DAVID MALAN: Jangan ingat ini. 492 00:21:20,330 --> 00:21:24,890 >> MARIA: Kerana anda mungkin jatuh melalui dari satu kes yang lain. 493 00:21:24,890 --> 00:21:27,930 Jadi katakan bahawa kes constant1 tidak mempunyai sebarang pernyataan putus. 494 00:21:27,930 --> 00:21:31,920 Maka kita mungkin jatuh melalui di dalam kes constant2. 495 00:21:31,920 --> 00:21:35,070 Dan kita tidak mahu berbuat demikian jika kami telah pun mencecah kes constant1 496 00:21:35,070 --> 00:21:37,830 dan ia adalah sama dengan n. 497 00:21:37,830 --> 00:21:45,100 >> Jadi, sebagai contoh, jika kita mempunyai pembolehubah n yang mengandungi beberapa kelas, 498 00:21:45,100 --> 00:21:48,990 dan kami mahu melihat apa yang kelas is-- jika n sama dengan 50, 499 00:21:48,990 --> 00:21:51,957 kita akan mencetak "CS50 adalah Pengenalan kepada Sains Komputer I. " 500 00:21:51,957 --> 00:21:53,040 Kemudian kita akan pecah. 501 00:21:53,040 --> 00:21:53,920 Dan itu sahaja. 502 00:21:53,920 --> 00:21:55,950 Jika, bagaimanapun, n adalah sama kepada 51, kita akan 503 00:21:55,950 --> 00:21:58,494 untuk mencetak "CS51 adalah Pengenalan Sains Komputer II. " 504 00:21:58,494 --> 00:21:59,910 Kemudian, sekali lagi, kita akan pecah. 505 00:21:59,910 --> 00:22:05,080 Walau bagaimanapun, jika kita meletakkan 124, 61, mana-mana jumlah lain yang anda mungkin berfikir, 506 00:22:05,080 --> 00:22:06,890 atau program tidak akan untuk menyedari bahawa. 507 00:22:06,890 --> 00:22:09,010 Jadi ia akan berkata, "Maaf, Saya tidak biasa dengan kelas itu. " 508 00:22:09,010 --> 00:22:10,009 Dan ia akan pecah. 509 00:22:10,009 --> 00:22:12,847 DAVID MALAN: Jadi, anda benar-benar boleh melihat jika, lain jika, idea pun di sini. 510 00:22:12,847 --> 00:22:15,430 Ia sintaks hanya berbeza untuk menyatakan idea yang sama. 511 00:22:15,430 --> 00:22:17,690 >> MARIA: Tepat sekali. 512 00:22:17,690 --> 00:22:19,480 Sekarang kita mempunyai pengendali pertigaan kami. 513 00:22:19,480 --> 00:22:24,900 Pengendali Jadi pertigaan mempunyai tiga parts-- keadaan, 514 00:22:24,900 --> 00:22:27,220 sesuatu yang perlu dilakukan jika keadaan yang benar, 515 00:22:27,220 --> 00:22:29,730 dan kemudian sesuatu yang boleh dilakukan jika keadaan yang palsu. 516 00:22:29,730 --> 00:22:33,400 Jadi anda lihat, pada dasarnya, sintaks bahawa di sini. 517 00:22:33,400 --> 00:22:37,792 Kami mempunyai tanda tanya, dan kemudian the-- apa yang kita panggil ini? 518 00:22:37,792 --> 00:22:38,750 DAVID MALAN: Kolon. 519 00:22:38,750 --> 00:22:39,100 MARIA: Colon. 520 00:22:39,100 --> 00:22:39,599 Terima kasih. 521 00:22:39,599 --> 00:22:41,880 Maaf. 522 00:22:41,880 --> 00:22:45,800 Jadi mari kita lihat contoh kita untuk lihat jika kita boleh memahami this-- 523 00:22:45,800 --> 00:22:47,840 class_num == 50. 524 00:22:47,840 --> 00:22:52,580 Jadi di sini kita melihat operator Boolean kami == yang membandingkan class_num pembolehubah 525 00:22:52,580 --> 00:22:53,100 50. 526 00:22:53,100 --> 00:22:55,150 Kedai Jadi class_num integer. 527 00:22:55,150 --> 00:22:58,180 Dan jika integer yang sama dengan 50, maka kita 528 00:22:58,180 --> 00:23:02,810 akan menyimpan "David Malan" dalam profesor tali. 529 00:23:02,810 --> 00:23:05,912 Jika bilangan kelas tidak sama dengan 50, "Daud Malan" 530 00:23:05,912 --> 00:23:07,120 akan menjadi profesor. 531 00:23:07,120 --> 00:23:08,630 >> DAVID MALAN: Terima kasih. 532 00:23:08,630 --> 00:23:12,110 Dan sebagainya ini seolah-olah sama dengan apa, anda akan berkata, pada pandangan pertama? 533 00:23:12,110 --> 00:23:17,930 534 00:23:17,930 --> 00:23:19,960 >> MARIA: Bagi saya ia seolah-olah seperti jika Ahli lain kenyataan. 535 00:23:19,960 --> 00:23:20,709 >> DAVID MALAN: Ya. 536 00:23:20,709 --> 00:23:24,020 Dan sebenarnya, ini adalah jenis daripada yang cukup satu liner, 537 00:23:24,020 --> 00:23:27,520 boleh dikatakan, untuk melaksanakan betul-betul logik jika Ahli lain 538 00:23:27,520 --> 00:23:29,010 tetapi melakukan segala-galanya dalam satu langkah. 539 00:23:29,010 --> 00:23:29,860 >> MARIA: Tepat sekali. 540 00:23:29,860 --> 00:23:30,360 Yeah. 541 00:23:30,360 --> 00:23:33,520 Kenyataan jadi jika Ahli lain yang mungkin mengambil banyak ruang. 542 00:23:33,520 --> 00:23:36,283 Mereka mungkin terlalu panjang untuk sesuatu yang mudah seperti ini. 543 00:23:36,283 --> 00:23:38,350 Jadi ini boleh menjadi sangat ringkas dan sangat bagus. 544 00:23:38,350 --> 00:23:40,880 545 00:23:40,880 --> 00:23:46,820 Jadi sekarang kita akan melihat kepada melaksanakan sesuatu lagi dan lagi, 546 00:23:46,820 --> 00:23:50,060 supaya memeriksa yang merapikan beberapa kali 547 00:23:50,060 --> 00:23:53,510 dan kemudian meneruskan untuk melakukan sesuatu manakala keadaan yang benar. 548 00:23:53,510 --> 00:23:56,740 Jadi ini membawa kita baik ke dalam gelung sementara. 549 00:23:56,740 --> 00:23:59,270 >> Ke kiri, kita ada gelung sementara pertama kami. 550 00:23:59,270 --> 00:24:03,840 Oleh itu, sambil sesuatu yang tidak benar, melakukan sesuatu lagi dan lagi. 551 00:24:03,840 --> 00:24:08,850 Jadi pastikan untuk melihat bahawa kami keadaan di sini disahkan di bahagian atas. 552 00:24:08,850 --> 00:24:14,150 Manakala dengan loop-- kedua kami kita panggil bahawa do-while loop-- kita melakukan sesuatu, 553 00:24:14,150 --> 00:24:15,890 maka kita periksa syarat. 554 00:24:15,890 --> 00:24:17,980 Dan jika syarat terus menjadi benar, 555 00:24:17,980 --> 00:24:20,150 kita kembali dan melakukan perkara yang lagi. 556 00:24:20,150 --> 00:24:23,360 Jadi perbezaan utama adalah di mana keadaan ini diperiksa untuk. 557 00:24:23,360 --> 00:24:29,260 Dan kod yang tidak mungkin dilaksanakan jika keadaan tidak 558 00:24:29,260 --> 00:24:30,430 benar dengan gelung sementara. 559 00:24:30,430 --> 00:24:33,050 Manakala dengan do-while gelung, kami mempunyai kod 560 00:24:33,050 --> 00:24:35,380 yang pasti berlaku sekurang-kurangnya sekali. 561 00:24:35,380 --> 00:24:37,470 Dan kemudian manakala keadaan terus menjadi benar, 562 00:24:37,470 --> 00:24:39,960 kita boleh kembali dan melelar lagi di dalam. 563 00:24:39,960 --> 00:24:43,625 Jadi, mengapa anda fikir kita akan menggunakan a do-manakala gelung lebih gelung sementara? 564 00:24:43,625 --> 00:24:48,221 565 00:24:48,221 --> 00:24:48,720 Betul. 566 00:24:48,720 --> 00:24:52,600 Jadi, jika kita mahu mendorong pengguna untuk beberapa jenis input, 567 00:24:52,600 --> 00:24:55,400 jika kita ingin bertanya kepada mereka untuk memasukkan nama mereka, 568 00:24:55,400 --> 00:24:57,342 kita mahu sekurang-kurangnya bertanya kepada mereka sekali. 569 00:24:57,342 --> 00:24:59,050 Dan jika mereka masukkan nama itu, kita tidak 570 00:24:59,050 --> 00:25:00,740 akan meminta mereka lagi kerana kita sudah tahu. 571 00:25:00,740 --> 00:25:02,656 Tetapi jika mereka tidak masuk nama mereka, atau jika mereka 572 00:25:02,656 --> 00:25:05,787 masukkan sesuatu yang jelas tidak nama, 573 00:25:05,787 --> 00:25:08,120 kita masih mahu terus meminta mereka selama nama mereka. 574 00:25:08,120 --> 00:25:10,710 >> DAVID MALAN: Dan dalam kuliah kita mempunyai satu seperti ini dengan int positif mendapatkan 575 00:25:10,710 --> 00:25:13,550 Sebagai contoh, di mana ada apa-apa untuk menyemak pada mulanya kerana anda tidak mempunyai walaupun 576 00:25:13,550 --> 00:25:14,190 mendapat int. 577 00:25:14,190 --> 00:25:16,680 Oleh itu, kita mahu lakukan this-- mendapatkan int dari user-- yang 578 00:25:16,680 --> 00:25:18,860 kemudian website saya, mungkin, lagi dan lagi dan lagi. 579 00:25:18,860 --> 00:25:21,030 >> MARIA: Tepat sekali. 580 00:25:21,030 --> 00:25:22,060 Untuk OK loops--. 581 00:25:22,060 --> 00:25:25,842 Untuk gelung boleh membolehkan kita untuk melakukan hampir perkara yang sama, juga. 582 00:25:25,842 --> 00:25:27,300 Ini sebenarnya perkara yang sama. 583 00:25:27,300 --> 00:25:30,190 Jadi ada apa-apa yang anda boleh lakukan dengan gelung 584 00:25:30,190 --> 00:25:32,840 bahawa anda tidak akan dapat kaitan dengan gelung sementara. 585 00:25:32,840 --> 00:25:36,900 Tetapi untuk gelung mungkin kelihatan sedikit sedikit lebih rumit sintaksis 586 00:25:36,900 --> 00:25:39,730 kerana mereka mempunyai tiga bahagian di dalam apa 587 00:25:39,730 --> 00:25:42,990 sebelum sahaja keadaan dengan gelung sementara. 588 00:25:42,990 --> 00:25:48,260 Jadi bahagian pertama yang anda laut, kiri besar, kita mempunyai "int kerdil = 0." 589 00:25:48,260 --> 00:25:51,490 Jadi ini adalah di mana kita memulakan pembolehubah kami. 590 00:25:51,490 --> 00:25:55,210 >> Kemudian kita mempunyai koma bertitik dan "orang kerdil <7." 591 00:25:55,210 --> 00:25:57,100 Jadi ini adalah di mana daripada keadaan sebenarnya. 592 00:25:57,100 --> 00:26:00,170 Jadi itulah yang kita akan mempunyai meletakkan hanya dalam manakala loop-- 593 00:26:00,170 --> 00:26:01,880 "manakala orang kerdil <7." 594 00:26:01,880 --> 00:26:05,380 Di sini, yang masuk dalam tengah kami untuk gelung. 595 00:26:05,380 --> 00:26:07,190 Jadi "dwaves <7." 596 00:26:07,190 --> 00:26:11,350 Dan kemudian Bahagian terakhir kami adalah "orang kerdil ++," yang mana kita kini berubah kami. 597 00:26:11,350 --> 00:26:15,470 Jadi apa yang penting menyedari adalah bahawa ini 598 00:26:15,470 --> 00:26:22,010 akan pergi melalui ini untuk gelung tujuh kali dan melaksanakan tujuh kali. 599 00:26:22,010 --> 00:26:24,020 Oleh itu, kita mempunyai tujuh orang kerdil, dan mereka semua 600 00:26:24,020 --> 00:26:26,020 akan berkata, "Saya di sini untuk membantu anda, Snow White " 601 00:26:26,020 --> 00:26:28,860 kerana mereka bersedia untuk membantu Snow White. 602 00:26:28,860 --> 00:26:33,600 >> Dengan manakala gelung, kita akan berbuat yang pengawalan dan pengemaskinian 603 00:26:33,600 --> 00:26:37,490 tidak di dalam keadaan itu, sekali lagi, tetapi sama ada sebelum atau di dalam gelung sementara 604 00:26:37,490 --> 00:26:40,210 memastikan bahawa we-- kerana kita sentiasa memerlukan bahagian-bahagian. 605 00:26:40,210 --> 00:26:42,835 Jadi untuk memastikan yang kita ada mereka, kita akan tunggu masih menambah mereka 606 00:26:42,835 --> 00:26:44,580 pada, hanya tidak di dalam kurungan. 607 00:26:44,580 --> 00:26:47,288 >> DAVID MALAN: Dan supaya ia kelihatan like-- dalam kuliah, misalnya, 608 00:26:47,288 --> 00:26:50,250 Saya hampir sentiasa menggunakan, seperti, i dan n dan pembolehubah cukup membosankan. 609 00:26:50,250 --> 00:26:53,050 Ia kelihatan seperti anda boleh menggunakan lebih bijak dinamakan pembolehubah juga. 610 00:26:53,050 --> 00:26:56,300 >> MARIA: Ya, ia sebenarnya sangat bagus untuk menggunakan pemboleh ubah sedikit lebih deskriptif 611 00:26:56,300 --> 00:26:59,400 kerana terutamanya jika orang lain adalah membaca code-- anda mungkin anda grader 612 00:26:59,400 --> 00:27:00,940 atau jika anda bekerjasama dengan somebody-- 613 00:27:00,940 --> 00:27:03,481 anda ingin memastikan bahawa mereka memahami apa yang anda lakukan. 614 00:27:03,481 --> 00:27:05,750 615 00:27:05,750 --> 00:27:06,400 >> OKEY. 616 00:27:06,400 --> 00:27:11,435 Jadi ini adalah sesuatu yang sangat funky-- untuk gelung dalam untuk gelung. 617 00:27:11,435 --> 00:27:13,060 Saya tidak tahu sama ada yang kami telah lihat sebelum ini. 618 00:27:13,060 --> 00:27:13,830 Mungkin tidak. 619 00:27:13,830 --> 00:27:17,750 Tetapi kita sebenarnya boleh mempunyai this-- supaya gelung daripada gelung. 620 00:27:17,750 --> 00:27:25,130 Jadi adakah sesiapa yang mahu mungkin berjalan saya melalui apa yang berlaku di sini? 621 00:27:25,130 --> 00:27:28,240 622 00:27:28,240 --> 00:27:29,490 DAVID MALAN: Saya akan mengambil menikam. 623 00:27:29,490 --> 00:27:29,970 MARIA: Cool. 624 00:27:29,970 --> 00:27:30,636 DAVID MALAN: OK. 625 00:27:30,636 --> 00:27:34,690 Jadi, spoiler-- kita ingin mencetak bahan yang itulah di penjuru kanan sebelah bawah 626 00:27:34,690 --> 00:27:35,190 sana. 627 00:27:35,190 --> 00:27:35,450 >> MARIA: Betul. 628 00:27:35,450 --> 00:27:35,710 Ya, ya. 629 00:27:35,710 --> 00:27:38,043 >> DAVID MALAN: Oleh itu, kita baru sahaja meletakkan bahawa output sampel sana. 630 00:27:38,043 --> 00:27:42,590 Jadi saya boleh membuat kesimpulan daripada gelung paling atas bahawa anda 631 00:27:42,590 --> 00:27:45,680 iterating lebih baris yang gelung paling luar, jadi untuk bercakap. 632 00:27:45,680 --> 00:27:48,107 Dan anda iterating lebih tiang dengan gelung yang paling dalam. 633 00:27:48,107 --> 00:27:50,190 Dan intuitif, ini sepatutnya diharapkan masuk akal 634 00:27:50,190 --> 00:27:52,070 kerana dengan sifat setiap program yang kami telah lihat 635 00:27:52,070 --> 00:27:55,570 sebelum ini, printf, yang merupakan fungsi yang kita gunakan, akhirnya, 636 00:27:55,570 --> 00:27:58,190 mempunyai keupayaan untuk mencetak barangan keluar dasarnya baris demi baris. 637 00:27:58,190 --> 00:27:59,960 Seperti, apabila anda telah outputted baris baru, ada 638 00:27:59,960 --> 00:28:02,876 tidak berpatah balik dan mencetak sesuatu lebih tinggi pada skrin, sekurang-kurangnya 639 00:28:02,876 --> 00:28:04,530 tidak menggunakan printf seperti ini. 640 00:28:04,530 --> 00:28:07,750 >> Dan sebagainya dalam hal itu, ia membuatkan rasa yang paling luar gelung 641 00:28:07,750 --> 00:28:10,930 harus merujuk kepada baris kerana bagi setiap diberi berturut-turut, 642 00:28:10,930 --> 00:28:13,650 anda akan mahu mencetak XXXXX, dan kemudian 643 00:28:13,650 --> 00:28:15,520 bergerak ke barisan depan, XXXXX. 644 00:28:15,520 --> 00:28:17,317 Jadi baris diutamakan. 645 00:28:17,317 --> 00:28:19,150 Dan kemudian dalam setiap berturut-turut, anda mencetak tiang. 646 00:28:19,150 --> 00:28:21,160 Jika anda cuba untuk melakukannya dengan bertentangan, ia akan mungkin tidak 647 00:28:21,160 --> 00:28:21,690 keluar seperti yang anda kehendaki. 648 00:28:21,690 --> 00:28:22,190 >> MARIA: Ya. 649 00:28:22,190 --> 00:28:24,950 Kita tidak boleh kembali ke baris sebelumnya dengan printf. 650 00:28:24,950 --> 00:28:27,658 >> DAVID MALAN: Dan apa yang menarik setiap sembang hari ini tentang skop, 651 00:28:27,658 --> 00:28:31,600 sebenarnya, adalah bahawa baris adalah int yang diisytiharkan dalam gelung yang paling atas. 652 00:28:31,600 --> 00:28:34,030 Tetapi notis bahawa ia masih bahagian dalam, jadi untuk bercakap, 653 00:28:34,030 --> 00:28:35,982 pendakap kerinting yang segera diikuti, 654 00:28:35,982 --> 00:28:38,440 walaupun ia bukan teknikal dalam orang-orang pendakap kerinting. 655 00:28:38,440 --> 00:28:41,750 Jadi baris adalah dalam skop untuk keseluruhan daripada coretan kod, 656 00:28:41,750 --> 00:28:44,690 kedua-dua di dalam luar untuk gelung dan dalam dalam untuk gelung. 657 00:28:44,690 --> 00:28:48,050 Tetapi sebaliknya, di mana adalah lajur dalam skop? 658 00:28:48,050 --> 00:28:49,810 Lajur berubah-ubah? 659 00:28:49,810 --> 00:28:51,310 Ya, hanya dalam lingkaran dalam. 660 00:28:51,310 --> 00:28:54,280 Dan tidak apa-apa kerana kita tidak mengakses ia di luar pendakap kerinting itu. 661 00:28:54,280 --> 00:28:57,280 Apa yang kami lakukan adalah mencetak baru talian bagi mereka yang di sana. 662 00:28:57,280 --> 00:28:58,670 Supaya sebenarnya adalah OK. 663 00:28:58,670 --> 00:29:03,740 >> Jadi ini mempunyai kesan, ia kelihatan seperti, menjalankan tiga baris dan empat tiang. 664 00:29:03,740 --> 00:29:04,370 >> MARIA: Betul. 665 00:29:04,370 --> 00:29:06,270 Jadi pertama kita pergi melalui baris pertama kami. 666 00:29:06,270 --> 00:29:10,520 Dan hanya dalam baris pertama kami, kami melakukan empat tiang di dalam baris pertama. 667 00:29:10,520 --> 00:29:11,980 Oleh itu, kita mencetak empat X. 668 00:29:11,980 --> 00:29:15,800 Dan kemudian kita boleh keluar dari gelung, kerana kita sudah dicetak empat X. 669 00:29:15,800 --> 00:29:17,100 Dan kita mencetak baris baru. 670 00:29:17,100 --> 00:29:19,920 Dan kemudian kita melalui Proses yang sama untuk dua baris 671 00:29:19,920 --> 00:29:21,170 untuk membuat sejumlah tiga. 672 00:29:21,170 --> 00:29:23,530 >> DAVID MALAN: Dan ia adalah diperhatikan itu hanya artifak fon, hakikat 673 00:29:23,530 --> 00:29:25,680 bahawa output sampel seolah-olah begitu banyak lebih tinggi, 674 00:29:25,680 --> 00:29:27,520 seolah-olah ada lebih baris daripada tiang. 675 00:29:27,520 --> 00:29:29,824 Tetapi ia hanya kerana X adalah lebih tinggi daripada lebar. 676 00:29:29,824 --> 00:29:32,740 Itu sahaja yang yang berlaku di sana, dan ruang putih antara baris. 677 00:29:32,740 --> 00:29:33,281 >> MARIA: Betul. 678 00:29:33,281 --> 00:29:34,792 Sejuk. 679 00:29:34,792 --> 00:29:35,750 DAVID MALAN: Baiklah. 680 00:29:35,750 --> 00:29:39,830 Jadi cepat melihat masalah menetapkan satu, mengambil apa-apa soalan, dan kemudian menangguhkan? 681 00:29:39,830 --> 00:29:40,330 Baiklah. 682 00:29:40,330 --> 00:29:43,164 Jadi dalam masalah menetapkan satu, ada tiga cabaran utama, akhirnya. 683 00:29:43,164 --> 00:29:44,955 Tetapi pertama, anda akan mendapati bahawa masalah yang ditetapkan 684 00:29:44,955 --> 00:29:47,900 spesifikasi, seperti banyak yang psets jatuh ini, akan berjalan anda 685 00:29:47,900 --> 00:29:50,691 melalui beberapa latihan memanaskan badan, menunjukkan anda daripada beberapa sumber 686 00:29:50,691 --> 00:29:52,440 yang anda mungkin atau mungkin tidak pernah melihat sudah. 687 00:29:52,440 --> 00:29:54,440 Sebagai contoh, CS50 mempunyai satu set seluar pendek, 688 00:29:54,440 --> 00:29:56,481 yang video pendek, tidak seperti ini, tetapi itu 689 00:29:56,481 --> 00:29:58,460 adalah specific-- sangat topik mungkin lima minit, 690 00:29:58,460 --> 00:30:02,360 10 minit panjang pada gelung atau kepada keadaan atau algoritma 691 00:30:02,360 --> 00:30:04,125 atau kemudiannya pada lebih topik maju, juga. 692 00:30:04,125 --> 00:30:06,000 Dan kita biasanya menanamkan mereka ke dalam masalah ini 693 00:30:06,000 --> 00:30:07,950 set supaya pelajar mempunyai sumber yang mana 694 00:30:07,950 --> 00:30:10,840 untuk mengkaji bahan yang mungkin mempunyai sudah datang dalam kuliah atau bahagian. 695 00:30:10,840 --> 00:30:13,220 Tetapi cara ini ia lebih fokus dan banyak lagi di hujung jari mereka. 696 00:30:13,220 --> 00:30:15,928 >> Kami juga cenderung untuk menanamkan dalam masalah perdamaian dipanggil walkthroughs. 697 00:30:15,928 --> 00:30:20,790 Jadi hampir semua contoh-contoh yang saya lakukan dalam kuliah, di atas pentas di sini, kami juga 698 00:30:20,790 --> 00:30:24,565 telah ditangkap pada kamera dalam maju yang lebih perlahan, 699 00:30:24,565 --> 00:30:28,760 Walkthrough yang lebih intim dengan saya di komputer riba saya kod yang, baris demi baris 700 00:30:28,760 --> 00:30:31,427 supaya dalam kelas, kami akan sering agunan melalui sesuatu atau seseorang 701 00:30:31,427 --> 00:30:33,260 akan mencelah dengan menjawab soalannya. 702 00:30:33,260 --> 00:30:35,820 Tetapi ia tidak semestinya tenggelam dalam untuk semua orang di khalayak. 703 00:30:35,820 --> 00:30:38,230 Jadi, anda akan mencari kod walkthroughs bagi kebanyakan contoh 704 00:30:38,230 --> 00:30:40,950 yang kita lakukan di sini dalam syarahan supaya anda boleh berjalan melaluinya pada kelajuan anda sendiri 705 00:30:40,950 --> 00:30:43,580 dan putar balik atau maju pantas atau skip sama sekali, jika anda suka. 706 00:30:43,580 --> 00:30:45,356 >> Ada sering beberapa soalan memanaskan badan yang 707 00:30:45,356 --> 00:30:47,105 meminta anda untuk menyusun mengukuhkan bahan ini 708 00:30:47,105 --> 00:30:50,250 dan memastikan bahawa anda selesa sebelum anda meneruskan dengan seluruh pset. 709 00:30:50,250 --> 00:30:51,700 Dan kemudian, sudah tentu, ada pset itu sendiri. 710 00:30:51,700 --> 00:30:53,450 Dan salah satu perkara yang kita sangat sengaja 711 00:30:53,450 --> 00:30:57,202 lakukan pada CS50 adalah hampir setiap tidak menarik atau intelek tidak menarik 712 00:30:57,202 --> 00:30:58,910 langkah mekanikal yang anda mungkin perlu lakukan 713 00:30:58,910 --> 00:31:00,519 hampir selalu sangat didokumentasikan dengan baik. 714 00:31:00,519 --> 00:31:03,560 Sepanjang tempoh itu, kita akan mula bertanya soalan yang lebih retorik 715 00:31:03,560 --> 00:31:06,187 seperti ingat bagaimana untuk melakukan ini atau itu? 716 00:31:06,187 --> 00:31:08,520 Tetapi secara umumnya, anda akan mendapati bahawa set masalah mendapatkan anda 717 00:31:08,520 --> 00:31:10,269 melalui mekanik sesuatu supaya 718 00:31:10,269 --> 00:31:14,160 yang menarik, cabaran intelektual akhirnya ditinggalkan kepada anda pelajar. 719 00:31:14,160 --> 00:31:17,390 >> Dengan itu berkata, Zamyla, yang kami disimpan merujuk hari ini dalam kuliah, 720 00:31:17,390 --> 00:31:20,190 adalah salah seorang kakitangan lama kami ahli yang juga memegang walkthroughs 721 00:31:20,190 --> 00:31:24,520 mengenai masalah pset tertentu seperti mario dan tamak, walaupun tidak air tahun ini. 722 00:31:24,520 --> 00:31:26,540 Dan ia dalam orang-orang walkthroughs bahawa dia sering 723 00:31:26,540 --> 00:31:29,450 menawarkan beberapa petua dan cara untuk bagaimana untuk meneruskan, tidak pernah memberitahu anda 724 00:31:29,450 --> 00:31:31,810 apa yang perlu dilakukan, tetapi rather-- seperti keadaan, 725 00:31:31,810 --> 00:31:35,200 jika anda will-- memberikan anda sekurang-kurangnya satu beberapa idea-idea supaya ia terpulang kepada anda, 726 00:31:35,200 --> 00:31:37,830 akhirnya, untuk membuat keputusan bagaimana untuk mendekati mereka. 727 00:31:37,830 --> 00:31:41,200 >> MARIA: jenis seperti tahap yang tinggi-a pemahaman logik apa 728 00:31:41,200 --> 00:31:42,220 kita meminta anda lakukan. 729 00:31:42,220 --> 00:31:42,485 >> DAVID MALAN: Tepat sekali. 730 00:31:42,485 --> 00:31:44,190 Dan, sebenarnya, Zamyla ini walkthroughs adalah bertujuan 731 00:31:44,190 --> 00:31:46,190 untuk menjawab kerap soalan yang ditanya di mana 732 00:31:46,190 --> 00:31:48,610 saya bermula, terutamanya apabila ini spesifikasi panjang adalah 733 00:31:48,610 --> 00:31:51,960 sedikit menakutkan diberikan semua teks dan imej yang mereka ada di dalamnya. 734 00:31:51,960 --> 00:31:54,890 >> Jadi water.c, anda akan mendapati selepas anda selesai menunaikan sembahyang, 735 00:31:54,890 --> 00:31:56,920 sebenarnya agak mudah. 736 00:31:56,920 --> 00:31:58,882 Benar-benar adalah sekumpulan anda akan bang 737 00:31:58,882 --> 00:32:01,840 kepala anda ke dinding cuba untuk memahami mengapa ia tidak menyusun 738 00:32:01,840 --> 00:32:03,450 atau mengapa ia tidak berjalan dengan betul. 739 00:32:03,450 --> 00:32:05,040 Tetapi sebaik sahaja anda selesai dengan itu dan sebaik sahaja anda telah 740 00:32:05,040 --> 00:32:07,620 menghabiskan masa bergelut dengan apa-apa bug yang anda mungkin ada, 741 00:32:07,620 --> 00:32:09,490 anda akan mendapati bahawa itu program yang sangat pendek. 742 00:32:09,490 --> 00:32:11,770 Ia boleh dilakukan dalam hanya beberapa baris kod, kebanyakan yang 743 00:32:11,770 --> 00:32:15,030 yang kami telah lihat di sini di kuliah sudah, jika anda memasang blok bangunan yang betul. 744 00:32:15,030 --> 00:32:16,810 >> Dan seperti yang kita cadangkan di sini, ia akan bertanya 745 00:32:16,810 --> 00:32:22,250 anda menentukan berapa minit seseorang itu mengambil mandi di kampus. 746 00:32:22,250 --> 00:32:24,779 Kami menyatakan dalam masalah ini menetapkan kadar aliran air 747 00:32:24,779 --> 00:32:27,320 dalam, seperti, mandi aliran rendah kepala, sama seperti music Seinfeld yang 748 00:32:27,320 --> 00:32:29,180 yang kita lihat hari ini atau yang bertentangan dengannya. 749 00:32:29,180 --> 00:32:30,971 Dan kemudian anda hanya perlu untuk melakukan sedikit matematik, 750 00:32:30,971 --> 00:32:34,710 really-- aritmetik menggunakan C untuk memberitahu berapa ramai, secara kasar, botol air 751 00:32:34,710 --> 00:32:37,720 adalah bersamaan dengan jika kita mengambil pancuran n minit. 752 00:32:37,720 --> 00:32:41,389 >> Sekarang, dalam mario.c, ini akan sebagai program yang lebih panjang sedikit. 753 00:32:41,389 --> 00:32:42,930 Ia masih tidak akan menjadi panjang ini. 754 00:32:42,930 --> 00:32:45,130 Hanya beberapa baris lebih lama daripada water.c. 755 00:32:45,130 --> 00:32:48,230 Tetapi ia akan menjadi peluang untuk mencipta semula sekolah lama Mario 756 00:32:48,230 --> 00:32:50,670 piramid daripada Super Mario Brothers atau beberapa susulan. 757 00:32:50,670 --> 00:32:53,510 Ia tidak akan melihat sebagai lebih cantik atau seperti yang berwarna-warni sebagai salah satu yang di sana. 758 00:32:53,510 --> 00:32:56,468 Kami hanya akan menggunakan hashtags sedikit seperti yang kita ada di sini pada skrin 759 00:32:56,468 --> 00:32:58,120 menggunakan teks ASCII. 760 00:32:58,120 --> 00:33:00,362 Tetapi ia akan lebih kurang idea yang sama. 761 00:33:00,362 --> 00:33:02,570 Dan ia akan menjadi satu menjalankan yang pada pandangan pertama 762 00:33:02,570 --> 00:33:04,720 kelihatan agak simple-- hanya mencetak piramid yang mudah. 763 00:33:04,720 --> 00:33:07,345 Tetapi ada beberapa ciri-ciri di sini yang menarik. 764 00:33:07,345 --> 00:33:12,400 Perhatikan bahawa kelebihan paling kanan piramid sebenarnya mempunyai lebar dua. 765 00:33:12,400 --> 00:33:14,570 Jadi ada dua sama tiang tinggi, yang 766 00:33:14,570 --> 00:33:16,804 membuat ia memerlukan sedikit sedikit pemikiran untuk membuat 767 00:33:16,804 --> 00:33:19,720 memastikan anda mendapat yang betul-betul betul, kerana berbanding hanya yang bersudut dengan sempurna 768 00:33:19,720 --> 00:33:20,220 garis. 769 00:33:20,220 --> 00:33:23,340 Jadi itulah sedikit kes sudut tetapi perlawanan permainan sebenar. 770 00:33:23,340 --> 00:33:27,610 >> Dan ia juga tidak jelas pada mulanya pandang cara mencetak ruang putih. 771 00:33:27,610 --> 00:33:29,430 Oleh itu, apabila saya melihat sampel output sini-- 772 00:33:29,430 --> 00:33:32,440 dan ia juga di spec-- ia jenis kelihatan seperti segi empat tepat, 773 00:33:32,440 --> 00:33:35,120 tetapi pepenjuru daripada segi empat tepat telah dipotong, 774 00:33:35,120 --> 00:33:37,320 dan ia hanya ruang putih, jadi untuk bercakap. 775 00:33:37,320 --> 00:33:40,100 Dan sebagainya sering ditanya soalan di sini sentiasa, baik, 776 00:33:40,100 --> 00:33:43,302 bagaimana saya boleh menggerakkan hashtags kepada yang betul? 777 00:33:43,302 --> 00:33:44,760 Atau bagaimana saya boleh mencetak ruang kosong? 778 00:33:44,760 --> 00:33:46,860 Dan ia sebenarnya lebih mudah daripada kebanyakan pelajar berfikir. 779 00:33:46,860 --> 00:33:47,360 Betul? 780 00:33:47,360 --> 00:33:51,620 Anda boleh menganggarkan ia visual dengan hanya memukul bar ruang sekali atau dua kali 781 00:33:51,620 --> 00:33:52,700 atau tiga kali. 782 00:33:52,700 --> 00:33:56,260 >> Dan sebagainya walaupun dengan printf kita hampir sentiasa mencetak tali atau int 783 00:33:56,260 --> 00:33:59,950 atau perkataan seperti "hello, dunia "atau siri kata-kata, 784 00:33:59,950 --> 00:34:03,560 anda juga boleh hanya mencetak quote, ruang, unquote. 785 00:34:03,560 --> 00:34:06,320 Dan yang benar-benar akan memberikan anda satu ruang putih di sana. 786 00:34:06,320 --> 00:34:08,330 Jadi menyimpan bahawa dalam fikiran dan tidak overthink ini. 787 00:34:08,330 --> 00:34:10,570 Anda benar-benar perlu memutuskan baris demi baris demi baris, 788 00:34:10,570 --> 00:34:14,280 tidak seperti contoh anda yang masa lalu, berapa ramai daripada mereka yang 789 00:34:14,280 --> 00:34:18,420 tiang perlu ruang putih dan berapa ramai antara mereka yang akan hashtags. 790 00:34:18,420 --> 00:34:21,560 Ia akan mengambil sedikit masa, tetapi ia akhirnya teka-teki logik kejayaannya. 791 00:34:21,560 --> 00:34:22,060 >> MARIA: Ya. 792 00:34:22,060 --> 00:34:25,060 Tetapi logik akan baris demi baris akan menjadi sangat berguna di sini. 793 00:34:25,060 --> 00:34:25,810 DAVID MALAN: Ya. 794 00:34:25,810 --> 00:34:28,976 Saya rasa contoh kod yang anda gave-- walaupun walaupun ia bukan satu program yang lengkap. 795 00:34:28,976 --> 00:34:34,247 Anda masih perlu int dan utama dan stdio.h tidak sah dan #include, 796 00:34:34,247 --> 00:34:35,580 banyak barangan dari kuliah. 797 00:34:35,580 --> 00:34:37,629 Tetapi blok bangunan seolah-olah berada di sana. 798 00:34:37,629 --> 00:34:39,920 Dan kemudian akhir sekali adalah sesuatu lebih sedikit algoritma. 799 00:34:39,920 --> 00:34:43,210 Jadi ia ternyata bahawa bila-bila masa anda pergi ke CVS atau mana-mana kedai runcit 800 00:34:43,210 --> 00:34:47,810 dan seseorang tangan anda di bil juruwang atau duit syiling yang perubahan, 801 00:34:47,810 --> 00:34:50,620 ternyata bahawa mereka, manusia, sama ada mereka tahu atau tidak, 802 00:34:50,620 --> 00:34:53,300 adalah mungkin menggunakan apa yang dipanggil algoritma tamak, 803 00:34:53,300 --> 00:34:58,170 di mana jika anda berhutang, berkata, $ 21 dalam perubahan kerana sebab-sebab tertentu 804 00:34:58,170 --> 00:35:01,580 anda membeli sesuatu yang sangat murah dengan rang undang-undang yang sangat besar di CVS, 805 00:35:01,580 --> 00:35:05,910 ia akan menjadi benar-benar menjengkelkan jika juruwang memberikan anda 21 perseorangan atau lebih teruk lagi 806 00:35:05,910 --> 00:35:07,629 lagi, banyak keseluruhan syiling. 807 00:35:07,629 --> 00:35:10,670 Sebaliknya, apa yang seseorang yang munasabah adalah mungkin akan lakukan ialah mereka akan 808 00:35:10,670 --> 00:35:14,224 merebut $ 20- dan kemudian $ 1-rang undang-undang, dan menyerahkan engkau hanya dua rang undang-undang dalam kes itu. 809 00:35:14,224 --> 00:35:17,390 MARIA: Jadi mereka yang ingin mengurangkan perubahan yang mereka berikan kembali kepada anda. 810 00:35:17,390 --> 00:35:17,850 DAVID MALAN: Tepat sekali. 811 00:35:17,850 --> 00:35:19,540 Dan perjanjian sama dengan syiling, juga. 812 00:35:19,540 --> 00:35:23,040 Jika anda berhutang, berkata, $ 0.50, mudah-mudahan anda tidak mahu 50 beberapa sen. 813 00:35:23,040 --> 00:35:25,500 Anda sebaliknya mahu dua pihak, misalnya. 814 00:35:25,500 --> 00:35:27,540 Sekarang, ini tidak menganggap bahawa juruwang mempunyai 815 00:35:27,540 --> 00:35:29,940 cukup setiap jenis mata wang yang dia mungkin mahu memberi anda. 816 00:35:29,940 --> 00:35:32,148 Tetapi kita membolehkan anda untuk mengambil alih sebanyak dalam masalah ini. 817 00:35:32,148 --> 00:35:35,590 Dan matlamat akhirnya adalah untuk melaksanakan kod C algoritma tamak. 818 00:35:35,590 --> 00:35:37,344 Jadi pengguna dibenarkan menaip berapa banyak 819 00:35:37,344 --> 00:35:40,510 menukar dia berhutang dengan dolar dan sen, beberapa jenis titik terapung 820 00:35:40,510 --> 00:35:41,590 nilai mungkin. 821 00:35:41,590 --> 00:35:45,530 Dan kemudian anda perlu lakukan matematik dan memikirkan algorithmically, baik, 822 00:35:45,530 --> 00:35:49,020 berapa banyak duit syiling yang boleh saya berikan anda secara minimum untuk memberikan anda 823 00:35:49,020 --> 00:35:50,270 betul-betul bahawa jumlah perubahan. 824 00:35:50,270 --> 00:35:53,470 Tetapi ada akan menjadi beberapa bahagian yang sukar di sini, bukan? 825 00:35:53,470 --> 00:35:56,236 Seperti ada keseluruhannya isu ketakpersisan. 826 00:35:56,236 --> 00:35:56,860 MARIA: Tepat sekali. 827 00:35:56,860 --> 00:35:59,114 Jadi titik terapung Nilai mempunyai ketakpersisan. 828 00:35:59,114 --> 00:36:00,780 Adakah kita bercakap tentang perkara ini dalam kuliah hari ini? 829 00:36:00,780 --> 00:36:02,340 >> DAVID MALAN: Kami lakukan Kali terakhir dalam kuliah. 830 00:36:02,340 --> 00:36:03,506 Kita bercakap tentang ketakpersisan. 831 00:36:03,506 --> 00:36:08,840 Dan anda tidak mahu menipu pengguna berapa banyak perubahan yang dia terhutang. 832 00:36:08,840 --> 00:36:11,290 Dan sebagainya Walkthrough, dalam spesifikasi set masalah itu, 833 00:36:11,290 --> 00:36:15,990 memberikan beberapa pemikiran, akhirnya, untuk bagaimana anda boleh mengurangkan risiko-ketakpersisan 834 00:36:15,990 --> 00:36:17,280 kesilapan, berpotensi. 835 00:36:17,280 --> 00:36:21,050 Ia boleh dielakkan, sudah tentu, untuk input kita berbicara tentang. 836 00:36:21,050 --> 00:36:23,590 Dan, sebenarnya, pennies-- mungkin kita akan menangguhkan kepada Zamyla, 837 00:36:23,590 --> 00:36:25,136 Saya fikir, untuk helah sana. 838 00:36:25,136 --> 00:36:27,760 Jadi akhirnya, anda akan mendapati perkembangan masalah minggu ini, 839 00:36:27,760 --> 00:36:30,700 di mana yang pertama adalah agak kecil, kemudian sederhana, kemudian sedikit lebih besar. 840 00:36:30,700 --> 00:36:33,200 Tetapi semua daripada mereka menggunakan bangunan blok dari ini minggu lalu, 841 00:36:33,200 --> 00:36:35,280 dari supersection ini, masalah menetapkan spesifikasi 842 00:36:35,280 --> 00:36:36,710 mendedahkan anda kepada sumber-sumber yang tidak terkira banyaknya. 843 00:36:36,710 --> 00:36:41,000 Tetapi masih, jika pada semua berjuang, terutamanya di kalangan mereka yang kurang selesa 844 00:36:41,000 --> 00:36:42,917 tanpa latar belakang terlebih dahulu, datang ke waktu pejabat 845 00:36:42,917 --> 00:36:44,958 pada hari Isnin dan Selasa dan Rabu dan Khamis. 846 00:36:44,958 --> 00:36:46,950 Pergi ke CS50 Bincangkan melalui laman web kursus ini, 847 00:36:46,950 --> 00:36:49,080 melalui mana anda boleh berbual dengan kakitangan dan rakan sekelas. 848 00:36:49,080 --> 00:36:51,670 >> Tetapi akhirnya, saya rasa Nasihat paling baik adalah hanya mula awal. 849 00:36:51,670 --> 00:36:54,711 Ia bukan jenis kelas yang anda harus bermula psets pada hari Rabu 850 00:36:54,711 --> 00:36:56,640 malam, atau lebih teruk lagi malam ini. 851 00:36:56,640 --> 00:36:59,067 >> MARIA: Nasihat saya yang terbaik ialah telah bermula pada hari Isnin. 852 00:36:59,067 --> 00:36:59,900 DAVID MALAN: Isnin. 853 00:36:59,900 --> 00:37:02,490 Jadi, jika anda belum bermula already-- tidak. 854 00:37:02,490 --> 00:37:04,732 Tetapi, jika tidak Isnin, maka hari ini. 855 00:37:04,732 --> 00:37:05,690 Lebih awal lebih baik. 856 00:37:05,690 --> 00:37:08,605 Dan itulah sebab yang kursus mempunyai begitu banyak hari lewat 857 00:37:08,605 --> 00:37:10,535 untuk memberikan anda sedikit tekanan psikologi 858 00:37:10,535 --> 00:37:13,684 untuk memulakan lebih awal tetapi masih membiarkan perkara yang tergelincir apabila perkara yang mengambil masa yang lama 859 00:37:13,684 --> 00:37:14,350 daripada apa yang anda harapkan. 860 00:37:14,350 --> 00:37:17,950 >> MARIA: Dan anda mahu gunakan waktu pejabat sebanyak yang anda boleh juga. 861 00:37:17,950 --> 00:37:20,291 >> DAVID MALAN: Apa-apa soalan? 862 00:37:20,291 --> 00:37:20,790 Baiklah. 863 00:37:20,790 --> 00:37:22,930 Nah, mengapa tidak kita menangguhkan sini? 864 00:37:22,930 --> 00:37:23,487