1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [ROCK MUSIC] 2 00:00:32,435 --> 00:00:35,429 [MUSIC - "SELAMAT BERSAMA" THE PENYU] 3 00:01:27,330 --> 00:01:30,170 DAVID MALAN: Hari ini, kami memulakan penerokaan kami 4 00:01:30,170 --> 00:01:32,710 asas-asas sains komputer dan pengenalan kita, 5 00:01:32,710 --> 00:01:35,070 sekarang, seni pengaturcaraan, yang itulah 6 00:01:35,070 --> 00:01:36,260 hanya satu contoh. 7 00:01:36,260 --> 00:01:39,600 Tetapi dalam urat yang sama menyelesaikan masalah, tahu bahawa 8 00:01:39,600 --> 00:01:42,080 Hari Teka-teki tradisional CS50 adalah esok. 9 00:01:42,080 --> 00:01:45,190 Jika anda belum RSVPed untuk acara ini, anda boleh pergi ke 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 Anda boleh membawa pasukan dua atau tiga atau empat. 12 00:01:50,940 --> 00:01:53,080 Anda akan dicabar dengan masalah seperti yang anda lihat 13 00:01:53,080 --> 00:01:54,190 sehingga ada di awal. 14 00:01:54,190 --> 00:01:57,000 Semua masalah-masalah baru tahun ini jika anda mengambil bahagian tahun lepas, dan anda 15 00:01:57,000 --> 00:01:59,680 akan mempunyai peluang untuk memenangi beberapa hadiah hebat. 16 00:01:59,680 --> 00:02:02,750 Di kalangan mereka, Wii dan beberapa sijil hadiah dan suka, 17 00:02:02,750 --> 00:02:05,650 manakala semua melepak dengan CS50 pelajar dan rakan sekelas 18 00:02:05,650 --> 00:02:07,720 dan pizza dan Facebook. 19 00:02:07,720 --> 00:02:10,430 Jadi lebih pada esok jika anda ingin. 20 00:02:10,430 --> 00:02:13,330 >> Ini kemudiannya CS50, bagi orang-orang anda menyertai kami untuk 21 00:02:13,330 --> 00:02:14,510 kali pertama. 22 00:02:14,510 --> 00:02:18,030 Dan ketahuilah bahawa kursus ini amat ditentukan untuk mendapatkan 23 00:02:18,030 --> 00:02:22,605 anda melalui kursus ini akhir, di mana titik anda 24 00:02:22,605 --> 00:02:24,270 akan mempunyai bukan sahaja pemahaman ini 25 00:02:24,270 --> 00:02:26,450 asas-asas sains komputer, tetapi anda akan mempunyai 26 00:02:26,450 --> 00:02:29,120 kemahiran ini sangat praktikal set yang anda kemudian boleh mengambil kembali ke 27 00:02:29,120 --> 00:02:31,370 jabatan anda sendiri, sama ada ia adalah sains kejuruteraan, 28 00:02:31,370 --> 00:02:33,570 gunaan matematik, sains fizikal, semula jadi 29 00:02:33,570 --> 00:02:34,780 sains, atau sebagainya. 30 00:02:34,780 --> 00:02:37,030 Sesungguhnya, apa yang begitu menarik tentang sains komputer ini 31 00:02:37,030 --> 00:02:39,900 hari ini adalah bahawa ia adalah hanya begitu terpakai kepada 32 00:02:39,900 --> 00:02:40,990 pelbagai bidang. 33 00:02:40,990 --> 00:02:46,210 Dan walaupun hari ini, kita hanya akan menggaru permukaan 34 00:02:46,210 --> 00:02:49,020 bahasa pengaturcaraan yang sangat tradisional dikenali sebagai C, kami akan 35 00:02:49,020 --> 00:02:51,040 sebaliknya melihat sesuatu yang dipanggil Gores, sesuatu dengan 36 00:02:51,040 --> 00:02:53,420 yang bahawa cerita cookies cinta telah dilaksanakan oleh salah anda 37 00:02:53,420 --> 00:02:57,020 terdahulu pada tahun-tahun lalu, untuk memberitahu cerita, untuk mewujudkan permainan, 38 00:02:57,020 --> 00:03:00,060 untuk mewujudkan seni interaktif, dan untuk benar-benar bermula untuk membalut kami 39 00:03:00,060 --> 00:03:02,240 minda sekitar beberapa membina asas yang 40 00:03:02,240 --> 00:03:05,390 asas pengaturcaraan tetapi dalam konteks, seperti yang anda akan lihat, itulah 41 00:03:05,390 --> 00:03:09,140 lebih kurang menakutkan, yang lebih kurang batin, daripada apa yang anda akan lihat 42 00:03:09,140 --> 00:03:10,140 tidak lama lagi. 43 00:03:10,140 --> 00:03:12,410 Dan sedar, juga, bagi mereka yang anda hanya menyertai kami ini 44 00:03:12,410 --> 00:03:16,170 semester, frasa di mana kita berakhir kuliah Rabu, 45 00:03:16,170 --> 00:03:20,260 ia tidak begitu penting di mana anda berakhir relatif kepada anda 46 00:03:20,260 --> 00:03:22,950 rakan sekelas di dalam kelas ini, tetapi di mana anda, menjelang akhir semester 47 00:03:22,950 --> 00:03:27,190 dalam 11 minggu, akhirnya relatif kepada diri sendiri betul hari ini sangat. 48 00:03:27,190 --> 00:03:32,000 >> Jadi, tanpa berlengah-lengah lagi, ini adalah juga diperhatikan bahawa 49 00:03:32,000 --> 00:03:34,450 mereka yang kurang selesa, mereka di suatu tempat di antara, 50 00:03:34,450 --> 00:03:36,825 juga, dengan reka bentuk kursus ini, bukan mana-mana di dalam keadaan 51 00:03:36,825 --> 00:03:38,760 vis-a-vis mereka lebih selesa 52 00:03:38,760 --> 00:03:39,920 datang ke kelas ini. 53 00:03:39,920 --> 00:03:41,810 Seperti yang anda akan lihat dalam tempoh beberapa minggu akan datang, kita perlu berbeza 54 00:03:41,810 --> 00:03:44,600 trek untuk latar belakang berbeza, seksyen bagi mereka 55 00:03:44,600 --> 00:03:46,500 kurang selesa, lebih selesa, orang-orang di tempat 56 00:03:46,500 --> 00:03:47,250 di antara. 57 00:03:47,250 --> 00:03:49,520 Seperti yang anda akan lihat hujung minggu ini dan minggu depan, dua versi 58 00:03:49,520 --> 00:03:52,410 set masalah yang paling dalam kedua-dua edisi standard dan penggodam supaya 59 00:03:52,410 --> 00:03:55,390 bahawa anda semua boleh sendiri pilih ke jalan yang anda 60 00:03:55,390 --> 00:03:56,615 paling selesa. 61 00:03:56,615 --> 00:03:58,770 >> Jadi hari ini, kita menyelam ke dalam pengaturcaraan ini 62 00:03:58,770 --> 00:04:00,060 bahasa dipanggil Scratch. 63 00:04:00,060 --> 00:04:02,250 Ia adalah satu bahasa pengaturcaraan grafik, tetapi ia mempunyai 64 00:04:02,250 --> 00:04:04,500 ciri-ciri yang sama beberapa bahasa tahap yang lebih tinggi kita akan 65 00:04:04,500 --> 00:04:07,050 meneroka kemudian pada semester, di kalangan mereka C dan 66 00:04:07,050 --> 00:04:08,670 JavaScript dan PHP. 67 00:04:08,670 --> 00:04:11,890 Tetapi ia akan membolehkan kita untuk mengelakkan beberapa gangguan 68 00:04:11,890 --> 00:04:14,890 pada awal sintaks, perkara-perkara seperti koma bertitik, kurungan, 69 00:04:14,890 --> 00:04:17,720 dan lain-lain butiran batin itu, pada pandangan pertama, hanya tidak 70 00:04:17,720 --> 00:04:19,916 di semua intelektual yang menarik dan cenderung untuk mendapatkan 71 00:04:19,916 --> 00:04:22,310 cara dari pemahaman beberapa asas. 72 00:04:22,310 --> 00:04:24,870 Dari segi sekarang struktur sokongan hadapan, menyedari ini 73 00:04:24,870 --> 00:04:27,570 alat, CS50 Bincangkan, yang akan dikaitkan pada kursus 74 00:04:27,570 --> 00:04:30,320 laman web lewat hari ini, adalah forum perbincangan dalam talian 75 00:04:30,320 --> 00:04:32,480 yang anda akan dapat untuk bertanya soalan antara satu sama lain dan 76 00:04:32,480 --> 00:04:35,020 kakitangan, dan ia juga alat, seperti yang kita akan lihat minggu depan, 77 00:04:35,020 --> 00:04:37,240 bahawa kita akan menggunakan agak integratedly dalam 78 00:04:37,240 --> 00:04:38,780 waktu pejabat juga. 79 00:04:38,780 --> 00:04:41,670 Malah, waktu pejabat bermula pada hari Isnin, dan terus-terang, yang pertama 80 00:04:41,670 --> 00:04:43,930 minggu waktu pejabat adalah kunci yang agak rendah. 81 00:04:43,930 --> 00:04:46,820 >> Saya tidak fikir anda akan menemui Gores semua yang tidak boleh diakses. 82 00:04:46,820 --> 00:04:48,930 Ia agak jelas dengan sendirinya, seperti yang kita akan lihat, dan jadi apa 83 00:04:48,930 --> 00:04:51,380 kami akan menggunakannya untuk hari ini adalah untuk mengeluarkan beberapa 84 00:04:51,380 --> 00:04:53,990 idea-idea asas yang akan, kemudian, berterusan sepanjang 85 00:04:53,990 --> 00:04:54,900 Selebihnya semester. 86 00:04:54,900 --> 00:04:57,980 Tetapi bermula Isnin, pada pukul 8:00 PM melalui 23:00 akan 87 00:04:57,980 --> 00:05:01,530 waktu pejabat di Annenberg lebih rehat otak. 88 00:05:01,530 --> 00:05:04,490 Sectioning dua akan bermula petang ini, jadi kadang-kadang ini 89 00:05:04,490 --> 00:05:07,260 hujung minggu, pergi kepada cs50.net/section, dan anda akan 90 00:05:07,260 --> 00:05:08,530 akan ditanya beberapa soalan. 91 00:05:08,530 --> 00:05:10,290 Di kalangan mereka, bagaimana anda menggambarkan anda 92 00:05:10,290 --> 00:05:12,040 tahap keselesaan seperti hari ini? 93 00:05:12,040 --> 00:05:14,450 Ada tidak keras, kaedah pantas yang di mana baldi. 94 00:05:14,450 --> 00:05:17,170 Ia hanya jenis perkara yang anda mungkin tahu jika anda 95 00:05:17,170 --> 00:05:20,280 adalah di kalangan mereka yang kurang selesa atau sebaliknya. 96 00:05:20,280 --> 00:05:21,350 >> Dan kini, walkthroughs. 97 00:05:21,350 --> 00:05:24,020 Masalah spesifikasi set untuk minggu ini, kedua-dua standard 98 00:05:24,020 --> 00:05:28,560 dan edisi penggodam sama, adalah dalam talian di cs50.net sebagai kini. 99 00:05:28,560 --> 00:05:31,500 Dan anda akan melihat bahawa pertama edisi ini, 100 00:05:31,500 --> 00:05:33,940 edisi standard setiap minggu, diiringi dengan sesuatu yang kita 101 00:05:33,940 --> 00:05:36,550 memanggil Walkthrough kod, sesi yang diketuai oleh salah satu 102 00:05:36,550 --> 00:05:39,100 felo pengajaran kursus untuk membimbing anda melalui, menyediakan 103 00:05:39,100 --> 00:05:42,290 tip atas, dan mendapatkan anda ke bawah laluan tertentu apabila ia datang 104 00:05:42,290 --> 00:05:44,150 untuk memulakan set masalah. 105 00:05:44,150 --> 00:05:46,790 Jadi dengan setiap masalah ini menetapkan, jika anda pernah mahu 106 00:05:46,790 --> 00:05:50,250 untuk diri sendiri di mana saya bermula, anda mula dengan ini 107 00:05:50,250 --> 00:05:50,890 walkthroughs. 108 00:05:50,890 --> 00:05:53,450 Dan pada hakikatnya, izinkan saya untuk memperkenalkan Zamyla Chan, ini 109 00:05:53,450 --> 00:05:55,870 sesama pengajaran tahun ini yang akan mengetuai setiap 110 00:05:55,870 --> 00:05:56,910 salah ini walkthroughs. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Tepukan] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA CHAN: Oh, hi, semua orang. 114 00:06:03,975 --> 00:06:05,130 Nama saya adalah Zamyla. 115 00:06:05,130 --> 00:06:08,250 Saya kejuruteraan junior belajar di Winthrop House. 116 00:06:08,250 --> 00:06:10,890 Tetapi saya cuba dan patut dalam sebagai banyak kursus sains komputer seperti yang saya 117 00:06:10,890 --> 00:06:13,350 boleh, itulah sebabnya saya benar-benar teruja untuk membawa ini 118 00:06:13,350 --> 00:06:14,590 tahun walkthroughs. 119 00:06:14,590 --> 00:06:16,950 Walkthroughs, bagi saya, adalah sebahagian penting daripada CS50 saya 120 00:06:16,950 --> 00:06:17,910 pengalaman. 121 00:06:17,910 --> 00:06:22,710 Semasa Walkthrough, p bagi setiap set, kita akan pergi melalui 122 00:06:22,710 --> 00:06:25,580 Masalah yang ditetapkan bersama-sama, melihat lebih masalah, jenis 123 00:06:25,580 --> 00:06:27,360 membahagikan mereka ke dalam gigitan terkawal. 124 00:06:27,360 --> 00:06:28,990 Saya akan memberikan anda tips, teknik, untuk mendapatkan 125 00:06:28,990 --> 00:06:30,820 melalui dan bermula. 126 00:06:30,820 --> 00:06:33,510 Saya berharap untuk melihat anda semua di walkthroughs. 127 00:06:33,510 --> 00:06:34,720 Jika anda tidak boleh membuat ia pada orang, maka 128 00:06:34,720 --> 00:06:36,580 sila melakukan menala talian. 129 00:06:36,580 --> 00:06:36,840 >> DAVID MALAN: Cemerlang. 130 00:06:36,840 --> 00:06:37,950 Terima kasih, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Jadi sedar bahawa walkthroughs adalah, sesungguhnya, pada hari Jumaat 132 00:06:40,870 --> 00:06:43,110 petang, tetapi ini adalah sengaja oleh reka bentuk supaya 133 00:06:43,110 --> 00:06:45,750 walaupun anda tidak mahu menghadiri kelas pada hari Jumaat 134 00:06:45,750 --> 00:06:48,490 petang, video akan menjadi semua lebih cepat lebih 135 00:06:48,490 --> 00:06:48,990 hujung minggu. 136 00:06:48,990 --> 00:06:51,880 Jadi, menyedari bahawa cs50.net akan semua itu Zamyla 137 00:06:51,880 --> 00:06:53,130 walkthroughs. 138 00:06:54,800 --> 00:06:56,890 Dan bahawa terdapat tarikh hari ini dan masa, 3:00 PM, 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 Dan beberapa daripada felo pengajaran juga telah bersedia 141 00:07:00,080 --> 00:07:03,250 beberapa kenyataan untuk anda tanpa hadir untuk memberikan anda sedikit 142 00:07:03,250 --> 00:07:06,760 perspektif apa pengalaman mereka datang ke dalam dan 143 00:07:06,760 --> 00:07:08,990 keluar CS50 adalah seperti. 144 00:07:08,990 --> 00:07:11,250 Jadi, jika kita boleh meredupkan hanya seketika, saya memberi anda 145 00:07:11,250 --> 00:07:18,100 beberapa kakitangan CS50. 146 00:07:18,100 --> 00:07:20,440 >> JACKSON STEINKAMP: Saya mengambil CS50 tahun lepas sebagai bayat dalam 147 00:07:20,440 --> 00:07:22,880 jatuh, dan ia benar-benar meniup fikiran saya. 148 00:07:22,880 --> 00:07:25,090 Saya tidak pernah mengambil apa-apa kelas pengaturcaraan sebelum, 149 00:07:25,090 --> 00:07:26,380 dan tidak pernah datang dengan mana-mana sains komputer 150 00:07:26,380 --> 00:07:27,320 pengalaman pada semua. 151 00:07:27,320 --> 00:07:29,240 Dan hanya, saya mendengar buzz tentang kelas dan 152 00:07:29,240 --> 00:07:30,050 memutuskan untuk mengambilnya. 153 00:07:30,050 --> 00:07:31,780 >> JULIA MITELMAN: Ia adalah benar-benar menyeronokkan, benar-benar terlibat. 154 00:07:31,780 --> 00:07:33,480 Saya masih, hingga ke hari ini - 155 00:07:33,480 --> 00:07:36,560 Saya hanya baru-baru ini menyaksikan saya mempunyai cakera liut bahawa Daud memberikan kita 156 00:07:36,560 --> 00:07:38,140 pada hari pertama kami kuliah. 157 00:07:38,140 --> 00:07:40,020 Saya telah digantung di dinding saya. 158 00:07:40,020 --> 00:07:42,410 Ini mungkin sedikit nerdy, tetapi saya digantung di atas saya 159 00:07:42,410 --> 00:07:46,930 dinding semasa kelas sebagai peringatan bagaimana sejuk ia adalah. 160 00:07:46,930 --> 00:07:49,240 >> Travis Downs: Ia begitu memalukan. 161 00:07:49,240 --> 00:07:50,770 >> JACKSON STEINKAMP: Sains komputer adalah sesuatu yang anda 162 00:07:50,770 --> 00:07:52,370 harus cuba walaupun jika anda tidak satu untuk 163 00:07:52,370 --> 00:07:54,980 sains tradisional. 164 00:07:54,980 --> 00:07:58,510 Ia adalah pengalaman sendiri, dan CS50 akan pastikan anda 165 00:07:58,510 --> 00:08:01,520 disokong baik melalui ia dengan tentera dipenuhi daripada TFS. 166 00:08:01,520 --> 00:08:03,700 >> NAHM ALI: Saya mengambil ia sebagai bayat, dan jadi saya membuat banyak 167 00:08:03,700 --> 00:08:04,215 kawan-kawan baru. 168 00:08:04,215 --> 00:08:07,170 Saya juga mendapat diperkenalkan kepada kepekatan ini keseluruhan dan 169 00:08:07,170 --> 00:08:10,770 sekolah seluruh kejuruteraan, dan sebagainya Saya sangat mengesyorkan ia 170 00:08:10,770 --> 00:08:14,360 dan mengalu-alukan anda kepada keluarga CS50 kami. 171 00:08:14,360 --> 00:08:17,510 >> Yaniv YACOBY: CS50 hanya mengajar anda bagaimana untuk menggunakan alat 172 00:08:17,510 --> 00:08:19,210 yang boleh diakses secara meluas. 173 00:08:19,210 --> 00:08:21,840 Anda hanya perlu sebuah komputer riba, anda perlu pelayar web, dan anda 174 00:08:21,840 --> 00:08:26,030 perlu belajar untuk menulis beberapa kod, dan anda benar-benar dapat membina 175 00:08:26,030 --> 00:08:27,400 perkara yang kemas. 176 00:08:27,400 --> 00:08:31,660 >> KAREN Xiao: Ia hanya begitu sejuk untuk dapat untuk membuat sesuatu 177 00:08:31,660 --> 00:08:34,580 dan mempunyai orang menggunakan dan mempunyai orang melihat ia, dan itulah 178 00:08:34,580 --> 00:08:35,900 apa yang saya benar-benar suka tentang ia. 179 00:08:35,900 --> 00:08:37,429 >> TIM McLaughlin: - rasa masyarakat, saya fikir, dalam hal ini 180 00:08:37,429 --> 00:08:39,470 tentu lebih daripada mana-mana kursus lain yang saya telah diambil setakat ini. 181 00:08:39,470 --> 00:08:41,350 Anda tidak hanya mengambil satu lagi - 182 00:08:41,350 --> 00:08:42,740 anda tidak mengisi keperluan lain. 183 00:08:42,740 --> 00:08:45,310 Anda tidak hanya pergi ke kuliah dan pergi ke seksyen. 184 00:08:45,310 --> 00:08:49,630 Tetapi anda melakukan tan perkara yang semua tentang 185 00:08:49,630 --> 00:08:51,560 pengaturcaraan dan semua tentang teknologi, tetapi ia tidak 186 00:08:51,560 --> 00:08:53,090 benar-benar berasa seperti kelas kebanyakan masa. 187 00:08:53,090 --> 00:08:55,012 >> Downs Travis: Dan pada hari pertama, mereka menyerahkan kek, dan 188 00:08:55,012 --> 00:08:56,215 Saya serta-merta dijual. 189 00:08:56,215 --> 00:08:57,822 >> JACOB PRITT: gula-gula percuma dan pizza. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA CHAN: - tanpa mengira tahap minat anda, saya fikir 191 00:08:59,820 --> 00:09:05,170 bahawa CS50, anda akan mempunyai menyeronokkan, dan anda akan intelek 192 00:09:05,170 --> 00:09:06,070 dirangsang. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-SMITH: Ia sentiasa pihak di dalam kelas, dan ia adalah 194 00:09:07,926 --> 00:09:09,990 parti setiap malam bekerja di set p anda. 195 00:09:09,990 --> 00:09:11,880 >> JACKSON STEINKAMP: Setiap kali anda selesai satu set masalah, anda 196 00:09:11,880 --> 00:09:13,710 akan berasa seperti anda telah selesai projek. 197 00:09:13,710 --> 00:09:16,580 >> Melissa Niu: Ia adalah tahun bayat, dan saya telah dilakukan membeli-belah. 198 00:09:16,580 --> 00:09:19,030 Saya mempunyai empat kelas saya bersedia, dan saya berada di Annenberg. 199 00:09:19,030 --> 00:09:21,670 Dan saya bertemu seorang kawan, dan dia berkata, hey, saya membeli-belah 200 00:09:21,670 --> 00:09:24,330 kelas ini dipanggil CS50, dan anda harus datang dengan saya. 201 00:09:24,330 --> 00:09:28,150 Akhirnya mengambil ia jatuh itu, dan selepas kelas itu, saya 202 00:09:28,150 --> 00:09:30,510 fikir mungkin saya akan kecil dalam CS. 203 00:09:30,510 --> 00:09:33,760 Tetapi di sini saya, tiga tahun kemudian, masih belajar komputer 204 00:09:33,760 --> 00:09:36,680 sains dan sebenarnya melakukannya sebagai major, dan saya suka setiap 205 00:09:36,680 --> 00:09:37,780 saat ia. 206 00:09:37,780 --> 00:09:39,030 >> ROB Bowden: Saya mempunyai idea. 207 00:09:46,408 --> 00:09:48,060 >> ALI NAHM: Mari kita lihat. 208 00:09:48,060 --> 00:09:49,200 >> Melissa Niu: kegilaan. 209 00:09:49,200 --> 00:09:50,610 >> SPEAKER 1: Saya rasa seperti saya menjadi sangat klise. 210 00:09:50,610 --> 00:09:52,530 Saya hanya akan berkata, seperti, hebat. 211 00:09:52,530 --> 00:09:53,540 >> Yaniv YACOBY: Kebolehcapaian. 212 00:09:53,540 --> 00:09:55,080 >> JACOB PRITT: gula-gula percuma dan pizza. 213 00:09:55,080 --> 00:09:57,310 >> Travis Downs: Tidak Boleh menolak kelas bahawa tangan keluar kek. 214 00:09:57,310 --> 00:09:58,510 >> TIM McLaughlin: Bertenaga. 215 00:09:58,510 --> 00:10:00,040 >> VIPUL SHEKHAWAT: Perlu. 216 00:10:00,040 --> 00:10:02,636 >> ROB Bowden: Biar saya memikirkan jawapan. 217 00:10:02,636 --> 00:10:04,480 Saya fikir saya mendapat sesuatu. 218 00:10:04,480 --> 00:10:07,092 Oh, tuhan. 219 00:10:07,092 --> 00:10:13,370 Ya, Bowden Rob nama saya, dan ini adalah CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Tepukan] 221 00:10:20,810 --> 00:10:23,390 DAVID MALAN: Baiklah, jadi mari kita mulakan untuk melukis sekeping gambar 222 00:10:23,390 --> 00:10:26,230 arah di mana kita boleh pergi, dan mari kita memperkenalkan 223 00:10:26,230 --> 00:10:28,190 konsep ini di sini dikenali sebagai pseudokod. 224 00:10:28,190 --> 00:10:29,560 Jadi pseudokod tidak pengaturcaraan 225 00:10:29,560 --> 00:10:30,810 bahasa kepada dirinya. 226 00:10:30,810 --> 00:10:33,250 Ia adalah apa yang teknikal per se, tetapi ia hanya jenis 227 00:10:33,250 --> 00:10:36,490 cara umum menyatakan diri agak tepat, 228 00:10:36,490 --> 00:10:39,730 agak algorithmically, agak procedurally, tetapi tanpa 229 00:10:39,730 --> 00:10:42,570 perlu bimbang tentang apa bahasa yang anda menyatakan 230 00:10:42,570 --> 00:10:43,150 diri anda masuk 231 00:10:43,150 --> 00:10:46,280 Ia adalah beberapa model bahasa Inggeris dan bahasa pengaturcaraan dengan 232 00:10:46,280 --> 00:10:48,790 yang anda berlaku untuk menjadi biasa, jadi kita boleh mula 233 00:10:48,790 --> 00:10:50,600 menulis ini jenis perkara seperti yang kita pergi. 234 00:10:50,600 --> 00:10:54,450 Dan pada hakikatnya, Joseph, saya boleh meminjam sehingga anda di atas pentas untuk 235 00:10:54,450 --> 00:10:55,490 penulis di sini? 236 00:10:55,490 --> 00:11:00,130 Saya pergi ke hadapan di sini di awal dan terlupa untuk meletakkan 237 00:11:00,130 --> 00:11:02,920 pada beberapa stoking hari ini, dan ini akan menjadi antara lebih kami 238 00:11:02,920 --> 00:11:03,780 contoh yang tidak masuk akal. 239 00:11:03,780 --> 00:11:04,580 >> Sekarang, saya perlukan anda di sini. 240 00:11:04,580 --> 00:11:05,630 Saya akan melakukan bahagian stoking. 241 00:11:05,630 --> 00:11:08,040 Jadi di sini kita mempunyai pad calar sedikit. 242 00:11:08,040 --> 00:11:09,940 Ini adalah benar-benar hanya TextEdit dalam Mac. 243 00:11:09,940 --> 00:11:12,270 Kami tidak sebenarnya akan untuk menulis program runnable, tetapi 244 00:11:12,270 --> 00:11:14,220 kami hanya akan memulakan lakaran keluar berasaskan pseudokod 245 00:11:14,220 --> 00:11:17,830 pada beberapa nasihat yang anda berikan kepada saya di sini. 246 00:11:17,830 --> 00:11:20,760 Jadi di sini adalah longgokan saya stoking di rumah. 247 00:11:20,760 --> 00:11:23,320 Saya tidak mempunyai stoking apabila saya bangun pada waktu pagi, dan kita kini 248 00:11:23,320 --> 00:11:26,280 perlu untuk menulis program, algoritma pelbagai, yang 249 00:11:26,280 --> 00:11:27,900 untuk mendapatkan stoking ini pada kaki saya. 250 00:11:27,900 --> 00:11:30,860 Dan sepanjang jalan, mari kita lihat jika kita tersandung, atau hadapi, 251 00:11:30,860 --> 00:11:32,860 beberapa idea-idea yang anda akan perlu untuk memulakan 252 00:11:32,860 --> 00:11:35,470 memikirkan lebih serius apabila pengaturcaraan 253 00:11:35,470 --> 00:11:37,950 supaya program anda tidak berkelakuan agak seperti yang sepatutnya. 254 00:11:37,950 --> 00:11:39,580 >> Jadi saya duduk di sini. 255 00:11:39,580 --> 00:11:41,180 Saya telah mendapat longgokan saya stoking. 256 00:11:41,180 --> 00:11:43,780 Apakah perkara pertama seorang manusia yang munasabah akan 257 00:11:43,780 --> 00:11:46,600 lakukan apabila matlamatnya adalah untuk memakai sepasang stoking? 258 00:11:46,600 --> 00:11:49,190 Seseorang memberikan saya satu langkah, dan hanya satu langkah. 259 00:11:49,190 --> 00:11:49,796 Yeah? 260 00:11:49,796 --> 00:11:50,690 PENONTON: Bend turun. 261 00:11:50,690 --> 00:11:54,290 DAVID MALAN: Bend turun, Okay. 262 00:11:54,290 --> 00:11:55,540 Langkah dua. 263 00:11:59,975 --> 00:12:00,645 Langkah dua. 264 00:12:00,645 --> 00:12:01,840 PENONTON: Angkat stoking anda. 265 00:12:01,840 --> 00:12:03,220 DAVID MALAN: Angkat stoking anda. 266 00:12:03,220 --> 00:12:07,610 Okay, kekaburan begitu sedikit di sini, dan ini adalah salah satu yang pertama 267 00:12:07,610 --> 00:12:09,380 halangan bahawa kita sepatutnya sengaja 268 00:12:09,380 --> 00:12:10,290 hadapi di sini. 269 00:12:10,290 --> 00:12:14,110 Ia adalah sedikit kabur, jadi memilih stoking anda. 270 00:12:14,110 --> 00:12:17,425 Halus, saya akan mengambil satu ini, tetapi komputer, menyedari hanya dalam 271 00:12:17,425 --> 00:12:20,420 bit, tidak akan mempunyai bahawa jenis naluri manusia hanya 272 00:12:20,420 --> 00:12:21,490 memilih salah satu yang terdekat. 273 00:12:21,490 --> 00:12:23,590 Kami akan perlu untuk memulakan, sebelum lama, menyatakan 274 00:12:23,590 --> 00:12:24,610 diri lebih tepat. 275 00:12:24,610 --> 00:12:26,600 >> Baiklah, jadi dua langkah mengambil stoking anda. 276 00:12:26,600 --> 00:12:27,520 Kami akan mengambil ia. 277 00:12:27,520 --> 00:12:28,620 Langkah tiga. 278 00:12:28,620 --> 00:12:29,532 Di belakang. 279 00:12:29,532 --> 00:12:30,900 PENONTON: Cari sepasang padanan. 280 00:12:30,900 --> 00:12:32,060 DAVID MALAN: Cari pasangan yang sepadan. 281 00:12:32,060 --> 00:12:34,740 Okay, jadi ini adalah baik. 282 00:12:34,740 --> 00:12:35,650 Saya terpaksa memilih stoking ini. 283 00:12:35,650 --> 00:12:39,200 Jadi matlamat untuk mencari stoking sepadan, sekarang, tetapi apa yang 284 00:12:39,200 --> 00:12:39,990 maksudnya? 285 00:12:39,990 --> 00:12:42,130 Seorang manusia yang munasabah, sama seperti pada hari Rabu apabila saya hanya 286 00:12:42,130 --> 00:12:44,700 tahu bagaimana untuk mencari Mike Smith dalam buku telefon, hanya jenis 287 00:12:44,700 --> 00:12:45,640 pergi dengan naluri mereka. 288 00:12:45,640 --> 00:12:49,220 Tetapi di sini, ia jelas ini stoking sini, tetapi komputer 289 00:12:49,220 --> 00:12:51,350 tidak akan menjadi begitu naluri. 290 00:12:51,350 --> 00:12:53,830 Sebuah komputer akan mempunyai koleksi bit, seperti yang kita 291 00:12:53,830 --> 00:12:55,380 dibincangkan pada hari Rabu, dan mereka adalah 292 00:12:55,380 --> 00:12:56,710 dianjurkan entah bagaimana dalam ingatan. 293 00:12:56,710 --> 00:13:00,400 Tetapi persoalannya adalah bahawa komputer hanya mempunyai keupayaan 294 00:13:00,400 --> 00:13:03,390 untuk melihat perkara-perkara pada satu masa, dan sebenarnya, walaupun kita 295 00:13:03,390 --> 00:13:05,980 manusia - walaupun ia berasa seperti saya mengerling ke bawah dan berpecah 296 00:13:05,980 --> 00:13:08,900 sesaat kemudian saya tahu di mana stoking adalah, otak saya dan mata saya 297 00:13:08,900 --> 00:13:12,000 dianggap tidak cepat agunan mereka stoking, dan kemudian melekap 298 00:13:12,000 --> 00:13:13,400 kepada satu dalam soalan. 299 00:13:13,400 --> 00:13:15,780 >> Jadi, jika kita semua lebih sengaja sekarang sebagai komputer, 300 00:13:15,780 --> 00:13:17,780 bagaimana saya boleh mencari pasangan ini sepadan? 301 00:13:17,780 --> 00:13:18,890 Nah, kita perlu melelar. 302 00:13:18,890 --> 00:13:21,440 Kami mempunyai gelung mungkin lebih kucar-kacir ini stoking pada 303 00:13:21,440 --> 00:13:25,760 lantai di mana saya mengatakan sesuatu seperti BAGI SETIAP stoking, mengambilnya 304 00:13:25,760 --> 00:13:30,195 DAN JIKA bentuk dan saiz yang sama sebagai satu yang lain, KEMUDIAN 305 00:13:30,195 --> 00:13:32,150 dot, dot, dot, kita akan meneruskan cerita. 306 00:13:32,150 --> 00:13:34,430 Jadi untuk stoking setiap, jadi saya mengambil satu ini. 307 00:13:34,430 --> 00:13:36,520 Saya memeriksa ini sama dengan yang satu ini. 308 00:13:36,520 --> 00:13:38,250 Ia tidak, jadi saya ketepikan sampingan. 309 00:13:38,250 --> 00:13:39,220 Kemudian saya melelar lagi. 310 00:13:39,220 --> 00:13:40,340 Adakah ini salah sama? 311 00:13:40,340 --> 00:13:42,010 Tidak, ia tidak, jadi saya meletakkan ia diketepikan. 312 00:13:42,010 --> 00:13:42,710 Adakah yang satu ini? 313 00:13:42,710 --> 00:13:43,200 No 314 00:13:43,200 --> 00:13:43,670 Yang satu ini? 315 00:13:43,670 --> 00:13:44,520 Tidak, dan sebagainya. 316 00:13:44,520 --> 00:13:48,730 Dan kemudian akhirnya, mudah-mudahan, saya akan menghadapi stoking ini di sini. 317 00:13:48,730 --> 00:13:51,350 Jadi, jika ia adalah bentuk yang sama, saiz, mengambil ia. 318 00:13:51,350 --> 00:13:53,980 >> Dan sekarang, apa yang akan menjadi langkah kami seterusnya di sini? 319 00:13:53,980 --> 00:13:54,402 Yeah? 320 00:13:54,402 --> 00:13:56,090 PENONTON: Mengenalpasti kanan dari kiri. 321 00:13:56,090 --> 00:13:58,980 DAVID MALAN: Okay, identify kanan dan kiri, jadi 322 00:13:58,980 --> 00:14:01,870 mujurlah, yang jenis kerja. 323 00:14:01,870 --> 00:14:04,020 A simetri sedikit, atau saya baru sahaja dipakai mereka dengan cara itu. 324 00:14:04,020 --> 00:14:07,020 Baiklah, jadi saya telah mengenal pasti hak. 325 00:14:07,020 --> 00:14:09,980 Dan sekarang, sebelum kita teruskan, izinkan saya menunjukkan apa yang Yusuf 326 00:14:09,980 --> 00:14:12,890 telah lakukan di sini sebagai jenis programmer mahir. 327 00:14:12,890 --> 00:14:15,800 Jadi sekali lagi, tidak ada satu cara untuk melakukan ini, tetapi di luar hanya 328 00:14:15,800 --> 00:14:18,480 berjumlah garisan, Yusuf telah mula untuk melakukan ini 329 00:14:18,480 --> 00:14:19,460 jenis lekukan. 330 00:14:19,460 --> 00:14:21,950 Sesungguhnya, ini adalah konvensyen yang sangat biasa dalam pengaturcaraan, 331 00:14:21,950 --> 00:14:26,110 mana apabila anda melakukan sesuatu lelaran, menggelung gaya, seperti 332 00:14:26,110 --> 00:14:28,480 kita membayangkan dengan frasa Inggeris "UNTUK SETIAP 333 00:14:28,480 --> 00:14:31,090 yg bersukses, "konvensyen pseudokod dan, seperti yang kita akan lihat, 334 00:14:31,090 --> 00:14:33,410 bahasa pengaturcaraan biasa, adalah untuk hanya inden. 335 00:14:33,410 --> 00:14:36,240 Hit bar ruang beberapa kali, memukul kekunci Tab atau seperti, 336 00:14:36,240 --> 00:14:40,660 supaya bersarang di bawahnya "UNTUK stoking SETIAP" adalah sebahagian 337 00:14:40,660 --> 00:14:43,430 barangan yang anda perlukan untuk melakukan akibat gelung itu. 338 00:14:43,430 --> 00:14:45,940 Jadi itulah semua itu menyampaikan semantik. 339 00:14:45,940 --> 00:14:48,620 Sekarang Sementara itu, "Jika ia adalah bentuk yang sama dan saiz," 340 00:14:48,620 --> 00:14:51,590 hakikat bahawa "Ambil" dilekukan selanjutnya hanya bermakna 341 00:14:51,590 --> 00:14:54,370 itulah satu-satunya perkara yang perlu anda lakukan jika keadaan itu, 342 00:14:54,370 --> 00:14:59,770 jika bahawa cawangan, bahawa garpu di jalan raya, adalah dalam fakta sebenar. 343 00:14:59,770 --> 00:15:02,130 >> Jadi sekarang di sini, kita berada pada empat langkah, mengenal pasti kanan dan kiri. 344 00:15:02,130 --> 00:15:03,410 Saya telah dikenal pasti betul. 345 00:15:03,410 --> 00:15:05,150 Beri saya melangkah lima. 346 00:15:05,150 --> 00:15:07,880 Dan teknikal, kita benar-benar boleh memanggil 347 00:15:07,880 --> 00:15:09,510 UNTUK perkara SETIAP - 348 00:15:09,510 --> 00:15:11,450 anda mungkin perlu bilangannya semua garis jika 349 00:15:11,450 --> 00:15:12,190 kita pergi untuk melakukan ini. 350 00:15:12,190 --> 00:15:14,006 JOSEPH: [didengar] 351 00:15:14,006 --> 00:15:14,610 DAVID MALAN: [didengar]? 352 00:15:14,610 --> 00:15:16,070 Okay, halus, semua betul, kita akan melakukannya dengan cara anda. 353 00:15:16,070 --> 00:15:19,590 Baiklah, jadi langkah lima, bagaimana kita lakukan stoking yang betul? 354 00:15:19,590 --> 00:15:22,310 Bagaimana kita teruskan depan, di sini? 355 00:15:22,310 --> 00:15:22,730 Ya? 356 00:15:22,730 --> 00:15:24,300 PENONTON: Angkat kaki kanan. 357 00:15:24,300 --> 00:15:27,100 DAVID MALAN: Angkatlah kaki kanan, Okay. 358 00:15:27,100 --> 00:15:29,330 Langkah enam? 359 00:15:29,330 --> 00:15:30,728 Cepat. 360 00:15:30,728 --> 00:15:31,202 Yeah. 361 00:15:31,202 --> 00:15:33,100 PENONTON: Cari akhir terbuka stokin. 362 00:15:33,100 --> 00:15:34,440 DAVID MALAN: Okay, mencari hujung terbuka stokin. 363 00:15:34,440 --> 00:15:34,840 Begitu baik. 364 00:15:34,840 --> 00:15:37,180 Jadi di sini, jujur, naluri yang sangat biasa hanya akan 365 00:15:37,180 --> 00:15:39,880 diletakkan di atas stoking betul, tetapi itu juga adalah agak samar-samar. 366 00:15:39,880 --> 00:15:42,750 Melainkan jika komputer atau manusia tahu apa yang bermaksud, 367 00:15:42,750 --> 00:15:45,160 ia tidak akan menjadi untuk melaksanakan itu, jadi di sini, saya telah 368 00:15:45,160 --> 00:15:46,520 mendapati pembukaan stok. 369 00:15:46,520 --> 00:15:48,222 Langkah 7? 370 00:15:48,222 --> 00:15:49,700 PENONTON: Sentuh jari anda. 371 00:15:49,700 --> 00:15:51,070 DAVID MALAN: Touch jari. 372 00:15:51,070 --> 00:15:53,546 Okay, jadi sekarang kita pergi - 373 00:15:53,546 --> 00:15:56,480 Baiklah, saya akan mengambil beberapa kebebasan di sini. 374 00:15:56,480 --> 00:15:57,110 Terima kasih. 375 00:15:57,110 --> 00:15:59,210 Langkah 8? 376 00:15:59,210 --> 00:16:00,060 Pakai stoking. 377 00:16:00,060 --> 00:16:02,060 Okay, jadi sekarang saya, berfikir kita cukup dekat untuk menyelesaikan mengambil 378 00:16:02,060 --> 00:16:03,480 yang satu ini di rumah. 379 00:16:03,480 --> 00:16:05,980 Baiklah, jadi ini naik. 380 00:16:05,980 --> 00:16:07,950 Saya akan mengambil beberapa kebebasan dengan apa ia bermakna, sebenarnya. 381 00:16:07,950 --> 00:16:08,920 Letakkan stoking pada. 382 00:16:08,920 --> 00:16:10,853 Baiklah, kini melangkah 9? 383 00:16:10,853 --> 00:16:11,740 PENONTON: Letakkan kaki ke bawah. 384 00:16:11,740 --> 00:16:12,510 DAVID MALAN: Thank you. 385 00:16:12,510 --> 00:16:15,610 Langkah sembilan, meletakkan kaki ke bawah, dan sekarang, kita boleh mengulangi. 386 00:16:15,610 --> 00:16:19,540 Jadi mungkin, kita kini boleh pergi ke dalam 10 langkah dan mengatakan mengenal pasti 387 00:16:19,540 --> 00:16:21,960 meninggalkan stoking, tetapi itulah dianggap sudah selesai. 388 00:16:21,960 --> 00:16:24,100 >> Dan maka, saya boleh menyusun ulangi langkah-langkah ini. 389 00:16:24,100 --> 00:16:25,260 Tetapi jenis ini menimbulkan persoalan. 390 00:16:25,260 --> 00:16:28,100 Sebelum ini, kali terakhir kita mahu mengulangi sesuatu, kita 391 00:16:28,100 --> 00:16:30,730 melakukannya iterative, sekali lagi dan sekali lagi, UNTUK 392 00:16:30,730 --> 00:16:32,660 Gelung SETIAP jadi untuk bercakap. 393 00:16:32,660 --> 00:16:36,420 Ia akan masuk akal untuk menggunakan gelung dalam usaha untuk mengendalikan kedua-dua 394 00:16:36,420 --> 00:16:38,470 kiri dan stoking kanan? 395 00:16:38,470 --> 00:16:40,460 Kerana ia berasa seperti ini operasi yang cukup banyak 396 00:16:40,460 --> 00:16:43,090 sama kecuali fakta bahawa seseorang bermula di sini dan satu 397 00:16:43,090 --> 00:16:44,850 bermula di sini? 398 00:16:44,850 --> 00:16:47,400 Adakah kita gelung, atau adakah kita hanya menyimpan menulis langkah-langkah 399 00:16:47,400 --> 00:16:48,745 10 dan 11 dan 12? 400 00:16:48,745 --> 00:16:50,540 PENONTON: Loop. 401 00:16:50,540 --> 00:16:52,240 >> DAVID MALAN: Okay, jadi gelung. 402 00:16:52,240 --> 00:16:54,730 Saya sebenarnya mungkin telah berkata hanya menyimpan berterusan. 403 00:16:54,730 --> 00:16:55,720 Jadi mengapa kes ini? 404 00:16:55,720 --> 00:16:57,940 Nah, ini adalah sebenarnya pertama kami tidak jelas 405 00:16:57,940 --> 00:17:01,210 keputusan reka bentuk, dan pada hakikatnya, salah satu metrik dengan yang 406 00:17:01,210 --> 00:17:03,990 kita akan mula menilai, untuk diri sendiri dan untuk anda, 407 00:17:03,990 --> 00:17:06,780 kualiti program betapa direka dengan baik ia adalah. 408 00:17:06,780 --> 00:17:09,619 Pernahkah anda melakukan jumlah minimum kerja yang perlu untuk 409 00:17:09,619 --> 00:17:12,480 mendapatkan pekerjaan yang dilakukan yang paling cepat, sama ada dari segi 410 00:17:12,480 --> 00:17:15,430 masa atau dari segi masa berjalan komputer? 411 00:17:15,430 --> 00:17:17,589 Berapa banyak operasi tidak ia mengambil masa untuk melaksanakan? 412 00:17:17,589 --> 00:17:20,180 Jadi boleh dikatakan, ini adalah satu peluang bagi gelung kerana 413 00:17:20,180 --> 00:17:22,829 sebaik sahaja saya mula menyalin dan menampal sebagai Yusuf berkesan 414 00:17:22,829 --> 00:17:25,010 akan mula melakukan dalam seketika, anda jenis membuang anda 415 00:17:25,010 --> 00:17:27,140 masa, dan anda menjadi duanya adalah terpakai ekspresif. 416 00:17:27,140 --> 00:17:30,260 >> Tetapi pada masa yang sama, ini adalah benar-benar hanya dua istimewa 417 00:17:30,260 --> 00:17:31,890 kes, kiri dan kanan. 418 00:17:31,890 --> 00:17:34,930 Dan bahawasanya sebelum ini, saya mungkin mempunyai 10 atau 20 atau lebih stoking dalam 419 00:17:34,930 --> 00:17:37,960 longgokan, ia pasti masuk akal untuk tidak mempunyai 50 baris 420 00:17:37,960 --> 00:17:40,180 kod mengatakan memeriksa stoking ini, maka satu depan, 421 00:17:40,180 --> 00:17:41,300 kemudian yang seterusnya. 422 00:17:41,300 --> 00:17:43,450 Di sini, ia sedikit kurang jelas, dan saya akan mencadangkan 423 00:17:43,450 --> 00:17:44,390 bahawa kita boleh pergi sama ada cara. 424 00:17:44,390 --> 00:17:46,720 Kita boleh sama ada mempunyai gelung bahawa, walaupun ia hanya gelung 425 00:17:46,720 --> 00:17:50,620 dua kali, atau kita hanya boleh menyalin dan tampal hanya sedikit 426 00:17:50,620 --> 00:17:53,270 di sini untuk mendapatkan pekerjaan yang dilakukan. 427 00:17:53,270 --> 00:17:55,210 Tetapi program ini adalah kereta, jadi untuk bercakap. 428 00:17:55,210 --> 00:17:59,120 Ia mungkin mempunyai beberapa kesilapan, kesilapan, atau kes sudut, jadi untuk 429 00:17:59,120 --> 00:18:00,860 bercakap, bahawa kita tidak benar-benar menjangka. 430 00:18:00,860 --> 00:18:03,400 Tiada apa-apa silapnya masa ini, tetapi apa yang boleh silapnya 431 00:18:03,400 --> 00:18:06,100 semasa melaksanakan program ini? 432 00:18:06,100 --> 00:18:07,040 PENONTON: Anda tidak mempunyai apa-apa stoking. 433 00:18:07,040 --> 00:18:08,980 >> DAVID MALAN: Jadi memang tidak ada stoking sana jua. 434 00:18:08,980 --> 00:18:10,380 Jadi mari kita mempertimbangkan bahawa kes sudut. 435 00:18:10,380 --> 00:18:14,670 Jadi, jika kita boleh menatal sandaran untuk melangkah satu, jadi langkah satu adalah 436 00:18:14,670 --> 00:18:16,540 bengkok ke bawah, supaya cek keluar. 437 00:18:16,540 --> 00:18:21,250 Langkah kedua, memilih stoking anda, tetapi kemudian mencari stoking yang sepadan, 438 00:18:21,250 --> 00:18:22,420 mengenal pasti betul. 439 00:18:22,420 --> 00:18:25,050 Kami jenis yang dibuat sekumpulan keseluruhan andaian, dan ini adalah, 440 00:18:25,050 --> 00:18:27,720 terus-terang, mengapa program kadang-kadang kemalangan. 441 00:18:27,720 --> 00:18:30,240 Jika anda, pengaturcara, telah membuat andaian tertentu, seperti 442 00:18:30,240 --> 00:18:33,000 pasti ada akan menjadi stoking atau pasti ada akan 443 00:18:33,000 --> 00:18:35,310 menjadi memori yang ditinggalkan dalam komputer, tentu ada akan 444 00:18:35,310 --> 00:18:37,420 untuk menjadi ruang cakera yang ditinggalkan pada hard drive - 445 00:18:37,420 --> 00:18:39,040 Nah, jika anda membuat andaian ini, dan itu bukan, 446 00:18:39,040 --> 00:18:41,880 pada hakikatnya, hakikatnya, yang tahu kadang-kadang apa yang komputer 447 00:18:41,880 --> 00:18:42,520 akan lakukan? 448 00:18:42,520 --> 00:18:44,450 Dan kadang-kadang, apabila anda mendapat bola pantai berputar atau 449 00:18:44,450 --> 00:18:47,750 beku Windows atau sebagainya, yang tepat kerana beberapa 450 00:18:47,750 --> 00:18:50,980 pengaturcara tidak menjangka kes-kes sudut kononnya. 451 00:18:50,980 --> 00:18:53,050 Apa lagi yang boleh pergi salah dalam program ini? 452 00:18:53,050 --> 00:18:53,330 Yeah? 453 00:18:53,330 --> 00:18:55,950 >> PENONTON: Anda tidak perlu kaki kanan dan kaki kiri. 454 00:18:55,950 --> 00:18:58,920 DAVID MALAN: Okay, mungkin tidak mempunyai kedua-dua kaki kanan dan 455 00:18:58,920 --> 00:19:01,940 kaki kiri, dan sebagainya program ini tidak mungkin universal 456 00:19:01,940 --> 00:19:02,590 berkenaan. 457 00:19:02,590 --> 00:19:03,658 Orang lain? 458 00:19:03,658 --> 00:19:05,650 PENONTON: Anda mungkin telah dipilih sehingga stoking yatim. 459 00:19:05,650 --> 00:19:07,970 DAVID MALAN: saya mungkin telah dipilih sehingga stoking yatim, jadi 460 00:19:07,970 --> 00:19:11,250 bukan sepadan stoking yang hanya tidak mempunyai adik-beradik kerana saya telah 461 00:19:11,250 --> 00:19:13,650 hilang, ia koyak, ia adalah dalam membasuh masih, atau sebagainya. 462 00:19:13,650 --> 00:19:15,550 Supaya, juga, tidak benar-benar telah dikendalikan. 463 00:19:15,550 --> 00:19:15,790 Yeah? 464 00:19:15,790 --> 00:19:17,510 PENONTON: Anda mungkin sudah mempunyai stoking. 465 00:19:17,510 --> 00:19:19,050 DAVID MALAN: Saya sudah mungkin mempunyai stoking. 466 00:19:19,050 --> 00:19:20,080 Saya sebenarnya tidak menyemak. 467 00:19:20,080 --> 00:19:23,350 JIKA anda tidak mempunyai stoking, Kemudian meneruskan lakukan 468 00:19:23,350 --> 00:19:24,330 baris satu dan dua. 469 00:19:24,330 --> 00:19:24,980 Dan yang boleh berlaku. 470 00:19:24,980 --> 00:19:26,880 Anda tertidur dengan stokin anda dan sebagainya, jadi 471 00:19:26,880 --> 00:19:28,860 itu juga, mana-mana sudut yang sangat berpatutan. 472 00:19:28,860 --> 00:19:29,630 Dan mungkin satu lagi? 473 00:19:29,630 --> 00:19:31,310 PENONTON: stoking yang ada di dalam keluar. 474 00:19:31,310 --> 00:19:34,000 DAVID MALAN: Jadi stoking yang berada di dalam keluar, jadi kita lakukan kesilapan 475 00:19:34,000 --> 00:19:35,330 memeriksa, dalam jangka pendek. 476 00:19:35,330 --> 00:19:38,550 Kami tidak memeriksa jika keadaan dunia adalah seperti yang kita harapkan. 477 00:19:38,550 --> 00:19:41,310 Kami tidak memeriksa jika kita benar-benar mendapati apa yang kita cari. 478 00:19:41,310 --> 00:19:43,310 >> Dan walaupun ini adalah jenis contoh yang tidak masuk akal 479 00:19:43,310 --> 00:19:46,110 melibatkan stokin, pada akhir hari, inilah 480 00:19:46,110 --> 00:19:48,740 jenis minda anda perlu mempunyai semasa menulis program, 481 00:19:48,740 --> 00:19:51,740 walaupun dalam Scratch serta dalam C, JavaScript, dalam PHP, 482 00:19:51,740 --> 00:19:53,920 kerana jika tidak, program anda akan mempamerkan 483 00:19:53,920 --> 00:19:56,980 bersamaan bahawa bola pantai berputar atau hanya menghasilkan 484 00:19:56,980 --> 00:19:58,210 keputusan yang tepat. 485 00:19:58,210 --> 00:20:00,250 Begitu banyak terima kasih di sini jurutulis kami kepada Yusuf. 486 00:20:00,250 --> 00:20:05,060 [Tepukan] 487 00:20:05,060 --> 00:20:06,850 >> DAVID MALAN: Baiklah, jadi apa yang adalah, dalam 488 00:20:06,850 --> 00:20:08,230 Malah, program komputer? 489 00:20:08,230 --> 00:20:09,670 Nah, mari kita mengambil pandangan cepat di 490 00:20:09,670 --> 00:20:11,100 wakil satu di sini. 491 00:20:11,100 --> 00:20:15,260 Jadi ini adalah satu program yang ditulis dalam bahasa yang dipanggil C. C adalah 492 00:20:15,260 --> 00:20:17,830 baru agak lama pada hari ini, tetapi banyak bahasa dibina 493 00:20:17,830 --> 00:20:18,460 di atasnya. 494 00:20:18,460 --> 00:20:21,180 Sesungguhnya, PHP, salah satu daripada bahasa-centric web kami akan 495 00:20:21,180 --> 00:20:24,050 menggunakan ke arah akhir istilah, sendiri mempunyai apa yang dipanggil 496 00:20:24,050 --> 00:20:27,550 jurubahasa, satu program yang ditulis dalam C, tetapi lebih pada itu 497 00:20:27,550 --> 00:20:28,690 banyak dalam beberapa minggu dari sekarang. 498 00:20:28,690 --> 00:20:30,840 Tetapi program ini, dan ini adalah apa yang ia bermaksud untuk menulis 499 00:20:30,840 --> 00:20:32,880 program, walaupun satu yang amat mudah. 500 00:20:32,880 --> 00:20:35,540 Kami mempunyai beberapa sintaks yang agak samar di sini, tetapi anda boleh 501 00:20:35,540 --> 00:20:38,340 mungkin meneka, walaupun anda tidak pernah diprogramkan sebelum, apa 502 00:20:38,340 --> 00:20:39,750 Program ini tidak. 503 00:20:39,750 --> 00:20:43,640 Malah, saya tidak tahu apa printf, tetapi mencetak pasti 504 00:20:43,640 --> 00:20:45,700 conjures sehingga idea percetakan sesuatu yang keluar. 505 00:20:45,700 --> 00:20:48,590 Dan begitu ya, program ini akhirnya akan mencetak keluar 506 00:20:48,590 --> 00:20:50,250 perkataan "Hello World." 507 00:20:50,250 --> 00:20:53,390 >> Sekarang, sama ada anda mempunyai Mac atau PC atau komputer Linux, kemungkinan 508 00:20:53,390 --> 00:20:55,550 , sekurang-kurangnya jika anda memuat turun beberapa bebas 509 00:20:55,550 --> 00:20:58,000 perisian yang tersedia, anda boleh telah menulis program pada 510 00:20:58,000 --> 00:21:00,310 anda komputer riba sendiri untuk sekian lama kini. 511 00:21:00,310 --> 00:21:03,040 Pada Mac OS, misalnya, ada program ini yang dipanggil 512 00:21:03,040 --> 00:21:05,340 Terminal yang datang dengan Mac, yang biasanya dalam anda 513 00:21:05,340 --> 00:21:07,550 Folder Utiliti, dan ia secara amnya membuka hitam dan 514 00:21:07,550 --> 00:21:09,820 putih atau tetingkap putih dan hitam di mana anda mempunyai 515 00:21:09,820 --> 00:21:11,410 segera di mana anda boleh menaip arahan. 516 00:21:11,410 --> 00:21:13,060 Jadi ini adalah sebenarnya mengingatkan apa yang komputer 517 00:21:13,060 --> 00:21:15,100 digunakan sebelum pengguna grafik 518 00:21:15,100 --> 00:21:16,710 antara muka, GUIs, datang bersama-sama. 519 00:21:16,710 --> 00:21:19,200 Sekarang, dalam Windows, anda mempunyai satu mekanisme yang serupa dalam bentuk 520 00:21:19,200 --> 00:21:20,130 command prompt. 521 00:21:20,130 --> 00:21:23,430 >> Tetapi apa yang saya akan lakukan di sini adalah membuka, katakan, 522 00:21:23,430 --> 00:21:26,580 TextEdit lagi, jadi program yang sama kita gunakan untuk 523 00:21:26,580 --> 00:21:28,870 pseudokod masa lalu, dan saya akan pergi ke hadapan dan 524 00:21:28,870 --> 00:21:30,080 menulis program pertama saya. 525 00:21:30,080 --> 00:21:34,030 Termasuk stdio.h, apa-apa yang bermakna, int utama 526 00:21:34,030 --> 00:21:36,880 tidak sah, apa-apa yang bermakna, dan kemudian di tengah-tengah di sini, 527 00:21:36,880 --> 00:21:40,560 printf ("hello, dunia."). Dan kemudian quote rapat, 528 00:21:40,560 --> 00:21:42,340 menutup paren, koma bernoktah. 529 00:21:42,340 --> 00:21:44,460 Sekarang saya akan pergi ke hadapan dan hanya melanda Perintah-S. Saya akan 530 00:21:44,460 --> 00:21:47,650 untuk pergi ke hadapan dan menyimpan ini sebagai hello.c, supaya konvensyen dalam 531 00:21:47,650 --> 00:21:50,530 dunia pengaturcaraan C adalah menamakan fail dot c. 532 00:21:50,530 --> 00:21:52,880 Saya akan hanya dimasukkan ke dalam direktori Home John Harvard, 533 00:21:52,880 --> 00:21:56,370 di sini, klik Simpan, dan kini saya akan pergi ke ini 534 00:21:56,370 --> 00:21:59,110 tetingkap terminal, yang sekali lagi adalah prompt ini hitam dan putih 535 00:21:59,110 --> 00:22:00,860 di mana saya boleh melaksanakan arahan. 536 00:22:00,860 --> 00:22:04,550 >> Saya boleh menjalankan program-program dengan menaip nama mereka, bukan oleh 537 00:22:04,550 --> 00:22:06,710 double-klik ikon dalam erti kata biasa. 538 00:22:06,710 --> 00:22:10,590 Tetapi perkara itu adalah tentang C ialah bahasa seperti C pertama 539 00:22:10,590 --> 00:22:13,150 datang dalam borang ini, sesuatu yang dipanggil kod sumber. 540 00:22:13,150 --> 00:22:15,400 Sesuatu yang kelihatan sedikit seperti bahasa Inggeris tetapi 541 00:22:15,400 --> 00:22:17,980 pasti kurang seperti bahasa Inggeris daripada pseudokod Yusuf 542 00:22:17,980 --> 00:22:18,930 masa lalu. 543 00:22:18,930 --> 00:22:20,560 Ia adalah sedikit lebih batin. 544 00:22:20,560 --> 00:22:22,830 Ia seolah-olah mengikuti beberapa corak atau kaedah-kaedah. 545 00:22:22,830 --> 00:22:25,300 Hakikat bahawa saya mempunyai pendakap kerinting, koma bertitik, petikan, 546 00:22:25,300 --> 00:22:28,240 pendakap sudut, berasa seperti komputer datang dengan ini 547 00:22:28,240 --> 00:22:29,250 jenis bahasa. 548 00:22:29,250 --> 00:22:32,010 Tetapi jika saya pergi, sekarang, untuk tetingkap terminal ini, saya boleh menjalankan 549 00:22:32,010 --> 00:22:35,250 perintah itu akan menukar bahawa kod sumber adalah 550 00:22:35,250 --> 00:22:36,610 sesuatu yang dipanggil kod objek. 551 00:22:36,610 --> 00:22:39,690 Itu akan menukar sintaks seperti Inggeris untuk sifar 552 00:22:39,690 --> 00:22:41,760 dan orang-orang, jenis yang sama sifar dan yang kita 553 00:22:41,760 --> 00:22:42,820 bercakap tentang Rabu. 554 00:22:42,820 --> 00:22:44,810 Sekarang, saya akan menjalankan arahan yang dipanggil dilafaz. 555 00:22:44,810 --> 00:22:47,750 Lanjut mengenai ini dalam minggu-minggu akan datang, tetapi ia adalah satu program dengan 556 00:22:47,750 --> 00:22:52,330 yang saya boleh menukar hello.c ke dalam sekumpulan keseluruhan 557 00:22:52,330 --> 00:22:53,640 sifar dan orang-orang. 558 00:22:53,640 --> 00:22:54,950 >> Sekarang, saya telah menjalankan arahan ini. 559 00:22:54,950 --> 00:22:57,940 Saya telah menjalankan dilafaz, dan kemudian saya berkata menjalankan sendiri pada fail ini 560 00:22:57,940 --> 00:23:00,630 dipanggil hello.c, yang saya mencipta masa lalu, dan 561 00:23:00,630 --> 00:23:02,090 seolah-olah tiada apa yang berlaku. 562 00:23:02,090 --> 00:23:05,550 Tetapi sesungguhnya, jika saya mencucuk seluruh direktori rumah saya, saya akan melihat 563 00:23:05,550 --> 00:23:09,620 bahawa ini a.out program yang dinamakan bodoh kini wujud. 564 00:23:09,620 --> 00:23:12,250 Ini adalah hanya nama lalai untuk program semasa menulis dalam 565 00:23:12,250 --> 00:23:15,140 C. Kami boleh mengatasi ini akhirnya, tetapi a.out adalah 566 00:23:15,140 --> 00:23:18,340 nama program saya hanya ditukar menjadi sifar dan orang-orang. 567 00:23:18,340 --> 00:23:21,490 Dan kini bahawa sifar dan orang-orang itu, Mac saya, dalam kes ini, atau 568 00:23:21,490 --> 00:23:24,670 PC Windows anda, boleh memahami mereka bit, mereka 569 00:23:24,670 --> 00:23:25,410 sifar dan orang-orang. 570 00:23:25,410 --> 00:23:29,130 Dan sebagainya apabila saya tekan Enter, saya melihat "hello, dunia!" 571 00:23:29,130 --> 00:23:31,270 >> Tetapi ia adalah satu buggy bit. 572 00:23:31,270 --> 00:23:34,110 Saya tidak mengatakan "hello, dunia: udara: - jharvard." Udara adalah 573 00:23:34,110 --> 00:23:35,020 nama komputer saya. 574 00:23:35,020 --> 00:23:37,730 Jharvard nama akaun, jadi apa yang saya tidak jelas 575 00:23:37,730 --> 00:23:41,070 tinggalkan dari program ini? 576 00:23:41,070 --> 00:23:42,480 Beberapa jenis baris. 577 00:23:42,480 --> 00:23:45,150 Saya tidak melanda setara Masukkan atau pulangan pengangkutan, 578 00:23:45,150 --> 00:23:47,760 dan ini adalah, sekali lagi, bukti kepada hakikat bahawa komputer boleh 579 00:23:47,760 --> 00:23:49,800 hanya melakukan apa yang anda beritahu mereka lakukan. 580 00:23:49,800 --> 00:23:52,400 Dan hakikat bahawa saya tidak memberitahu komputer bergerak 581 00:23:52,400 --> 00:23:53,860 kursor ke baris seterusnya - 582 00:23:53,860 --> 00:23:55,200 baik, ia pasti tidak akan hanya melakukan 583 00:23:55,200 --> 00:23:56,750 angkuh bagi saya. 584 00:23:56,750 --> 00:24:00,860 Jadi, jika saya kembali kepada program saya, dan saya katakan \ n - 585 00:24:00,860 --> 00:24:03,180 Jadi \ n, seperti yang kita akan melihat, adalah cara 586 00:24:03,180 --> 00:24:06,910 mewakili perkara-perkara pelik seperti aksara baris perkara baru, 587 00:24:06,910 --> 00:24:08,840 yang sebaliknya akan hasil daripada 588 00:24:08,840 --> 00:24:09,940 memukul kunci Enter. 589 00:24:09,940 --> 00:24:11,730 Tetapi untuk sekarang, hanya tahu bahawa memukul kunci Enter akan 590 00:24:11,730 --> 00:24:14,170 hanya membuat kod kita kelihatan ganjil, jadi dunia memutuskan, anda tahu 591 00:24:14,170 --> 00:24:16,580 apa, untuk menjaga perkara-perkara yang lebih cantik, untuk memastikan ia dalam satu baris, mari kita 592 00:24:16,580 --> 00:24:19,070 hanya mengatakan \ n mewakili barisan baru. 593 00:24:19,070 --> 00:24:22,260 Biar saya resave fail saya, kembali ke tetingkap terminal, dan 594 00:24:22,260 --> 00:24:25,290 a.out-run semula, Enter. 595 00:24:25,290 --> 00:24:28,374 Masih kereta, tetapi mengapa? 596 00:24:28,374 --> 00:24:29,750 >> PENONTON: [didengar] 597 00:24:29,750 --> 00:24:31,540 DAVID MALAN: Ya, jadi saya perlu susun semula ia. 598 00:24:31,540 --> 00:24:34,610 Jadi untuk menyusun program hanya bermakna menukarkan ia dari sumber 599 00:24:34,610 --> 00:24:37,660 kod kod objek, kod sumber kepada sifar dan orang-orang. 600 00:24:37,660 --> 00:24:40,830 Sekarang, hakikat semata-mata bahawa saya memukul Simpan dalam ini TextEdit tidak mempunyai 601 00:24:40,830 --> 00:24:43,450 kaitan dengan sifar dan orang-orang itu kerana saya perlu 602 00:24:43,450 --> 00:24:48,260 memberitahu dilafaz hey, saya telah mengubah mereka baris kod, 603 00:24:48,260 --> 00:24:49,040 kod sumber. 604 00:24:49,040 --> 00:24:51,010 Anda perlu untuk menjana semula a.out. 605 00:24:51,010 --> 00:24:52,990 Tiada apa-apa jua nampaknya telah berlaku, tetapi dalam komputer, 606 00:24:52,990 --> 00:24:55,820 pada baris arahan, jadi untuk bercakap, apabila tiada apa yang berlaku, 607 00:24:55,820 --> 00:24:57,510 yang biasanya bermaksud semuanya berjalan dengan lancar. 608 00:24:57,510 --> 00:24:59,040 Apabila sesuatu yang tidak berlaku, ia bermakna 609 00:24:59,040 --> 00:25:00,420 anda sehingga merosakkan, secara amnya. 610 00:25:00,420 --> 00:25:04,020 >> Jadi mari kita sekarang pergi untuk a.out, dan sesungguhnya sekarang, saya mempunyai "hello, 611 00:25:04,020 --> 00:25:04,440 dunia. " 612 00:25:04,440 --> 00:25:05,990 Dan kini, bagaimana pula dengan sifar dan orang-orang ini? 613 00:25:05,990 --> 00:25:07,520 Jika, pada hakikatnya, adalah mereka? 614 00:25:07,520 --> 00:25:10,710 Well, saya tidak boleh benar-benar hanya jenis mencucuk di sekitar sangat 615 00:25:10,710 --> 00:25:11,210 berkesan. 616 00:25:11,210 --> 00:25:12,650 Izinkan saya membuka TextEdit. 617 00:25:12,650 --> 00:25:14,060 Berikut adalah a.out. 618 00:25:14,060 --> 00:25:17,390 Biar saya pergi ke hadapan dan terbuka ini, dan ini nampaknya apa yang saya 619 00:25:17,390 --> 00:25:19,080 program kelihatan seperti. 620 00:25:19,080 --> 00:25:21,570 Jadi saya telah dibuka, tidak hello.c, tetapi a.out. 621 00:25:21,570 --> 00:25:23,960 Tetapi ini sebenarnya tidak apa program saya benar-benar adalah. 622 00:25:23,960 --> 00:25:26,450 Jelas sekali, ini adalah beberapa jenis aksara abjad. 623 00:25:26,450 --> 00:25:28,670 Saya melihat tiada sifar dan orang-orang, tetapi ini adalah 624 00:25:28,670 --> 00:25:30,780 kerana a.out adalah program. 625 00:25:30,780 --> 00:25:33,540 Sifar dan orang - tetapi TextEdit, seperti namanya, ia adalah 626 00:25:33,540 --> 00:25:37,130 seperti Notepad pada Windows, adalah hanya editor teks, jadi ia 627 00:25:37,130 --> 00:25:39,730 mengelirukan semua orang-orang sifar dan orang-orang sebagai 628 00:25:39,730 --> 00:25:41,870 walaupun mereka adalah, apa? 629 00:25:41,870 --> 00:25:43,380 Aksara ASCII. 630 00:25:43,380 --> 00:25:45,020 >> Jadi ingat pada hari Rabu, kita hanya datang dengan ini 631 00:25:45,020 --> 00:25:48,740 pemetaan sewenang-wenangnya nombor, atau bit, kepada surat 632 00:25:48,740 --> 00:25:51,690 abjad dan simbol tanda baca dan sebagainya. 633 00:25:51,690 --> 00:25:54,920 Jadi TextEdit, bahawa ia adalah editor teks memutarkan 634 00:25:54,920 --> 00:25:57,270 mereka corak sifar dan orang-orang yang sepatutnya 635 00:25:57,270 --> 00:25:59,990 percetakan perkataan, seperti "hello dunia,." Ia memaparkan mereka 636 00:25:59,990 --> 00:26:02,150 sebagai ASCII, dan itulah sebabnya ia kelihatan sedikit kotor. 637 00:26:02,150 --> 00:26:04,910 Kini, terdapat beberapa petunjuk ketepatan di sini. 638 00:26:04,910 --> 00:26:08,090 Notis jika saya menyerlahkan, terdapat petunjuk sebenarnya "hello, 639 00:26:08,090 --> 00:26:10,810 dunia, "demikian tempat dalam program itu adalah 640 00:26:10,810 --> 00:26:12,120 hukuman itu saya menulis. 641 00:26:12,120 --> 00:26:14,610 Tetapi mari kita pergi ke hadapan dan lihat sekarang dengan program yang berbeza. 642 00:26:14,610 --> 00:26:17,420 Ini bukan salah kami akan menggunakan sering, tetapi ia juga datang dengan 643 00:26:17,420 --> 00:26:19,970 Mac dan akan di dalam perkakas CS50. 644 00:26:19,970 --> 00:26:23,940 Biar saya pergi ke hadapan dan membuka dengan program yang dipanggil XXD. 645 00:26:23,940 --> 00:26:26,530 >> Kembali pada hari itu, kebanyakan program telah dinamakan agak cryptically, 646 00:26:26,530 --> 00:26:28,200 dan sebagainya trend berterusan. 647 00:26:28,200 --> 00:26:31,160 Tetapi-b bermakna meludah program ini sebagai binari. 648 00:26:31,160 --> 00:26:32,330 Jangan jalankan ia. 649 00:26:32,330 --> 00:26:35,770 Paparkan kepada saya sebagai sifar dan orang-orang, dan ini adalah C 650 00:26:35,770 --> 00:26:37,190 program kita hanya menulis. 651 00:26:37,190 --> 00:26:39,920 Sekarang, saya, sebagai manusia di sini, saya secara jujur ​​tidak mempunyai idea apa 652 00:26:39,920 --> 00:26:42,230 pelbagai corak sifar dan orang-orang yang mewakili. 653 00:26:42,230 --> 00:26:45,320 Kembali pada hari itu, saya, dengan kad menumbuk saya atau sebagainya, akan 654 00:26:45,320 --> 00:26:48,080 sebenarnya perlu melihat apa corak pelbagai 655 00:26:48,080 --> 00:26:51,560 01111000, sebenarnya mewakili. 656 00:26:51,560 --> 00:26:54,390 Atau lebih teruk lagi, saya akan perlu untuk melakukan menumbuk atau penciptaan 657 00:26:54,390 --> 00:26:56,130 ini corak sifar dan orang. 658 00:26:56,130 --> 00:27:00,410 Tetapi untuk sekarang, mengambil iman bahawa CPU, Intel di dalam, jadi 659 00:27:00,410 --> 00:27:03,440 untuk bercakap, di dalam semua komputer kita pada hari ini, tahu 660 00:27:03,440 --> 00:27:05,100 bagaimana untuk mentafsir sifar dan orang-orang ini. 661 00:27:05,100 --> 00:27:07,010 Dan beberapa sifar dan orang-orang yang bermakna cetak. 662 00:27:07,010 --> 00:27:09,040 Sesetengah sifar dan orang-orang yang bermakna bermain bunyi. 663 00:27:09,040 --> 00:27:13,630 Sesetengah sifar dan orang-orang yang bermakna mengambil input pengguna dari keyboard. 664 00:27:13,630 --> 00:27:15,960 Terdapat pelbagai corak yang berbeza, tetapi kita bersyukur, 665 00:27:15,960 --> 00:27:19,680 sebagai manusia, hanya amnya perlu bimbang tentang pengaturcaraan pada 666 00:27:19,680 --> 00:27:21,270 tahap yang agak tinggi. 667 00:27:21,270 --> 00:27:24,320 Dan dalam kelas CS lain anda boleh menyelidiki turun lebih mendalam dan melihat 668 00:27:24,320 --> 00:27:26,820 pada perkara-perkara seperti sifar dan orang-orang itu, atau lagi 669 00:27:26,820 --> 00:27:28,000 perkara-perkara lain yang masih. 670 00:27:28,000 --> 00:27:29,210 >> Jadi sekarang mari kita menukar ini. 671 00:27:29,210 --> 00:27:32,550 Mari kita bergerak sangat cepat dari C dan bergerak kepada sesuatu 672 00:27:32,550 --> 00:27:36,390 sedikit lebih selesa, lebih sedikit menarik, di mana 673 00:27:36,390 --> 00:27:39,340 kita boleh mendapatkan kembali animasi dan bunyi kami dan seperti yang 674 00:27:39,340 --> 00:27:40,940 jelas telah melarikan diri kita dalam perkara ini 675 00:27:40,940 --> 00:27:42,480 antara muka yang agak primitif. 676 00:27:42,480 --> 00:27:46,430 Jadi program ini sama dalam C boleh diwakili sekarang ini 677 00:27:46,430 --> 00:27:50,060 bahasa pengaturcaraan yang dipanggil Gores seperti berikut. 678 00:27:50,060 --> 00:27:54,230 Ini adalah bersamaan hello program dunia ini ditulis dalam 679 00:27:54,230 --> 00:27:57,370 ini sekeping teka-teki gaya bahasa yang dipanggil Scratch. 680 00:27:57,370 --> 00:28:00,600 Jadi biarlah saya pergi ke hadapan dan membuka program ini sangat. 681 00:28:00,600 --> 00:28:01,850 Ia sekali lagi dipanggil Scratch. 682 00:28:01,850 --> 00:28:03,880 Ia bebas yang ada, dan ini adalah perkara yang sama kita 683 00:28:03,880 --> 00:28:05,120 bermula hari ini. 684 00:28:05,120 --> 00:28:07,790 >> Jadi ini di sini adalah Awal, dan ia dipecahkan kepada beberapa 685 00:28:07,790 --> 00:28:09,700 kepingan yang berbeza. 686 00:28:09,700 --> 00:28:12,690 Di sebelah kanan paling atas, kita mempunyai peringkat yang dipanggil, dan 687 00:28:12,690 --> 00:28:13,670 sesungguhnya, yang mana cookies 688 00:28:13,670 --> 00:28:15,440 dilakukan hanya sedikit lalu. 689 00:28:15,440 --> 00:28:19,660 Dan pada peringkat itu perkara dipanggil sprites, watak-watak, atau 690 00:28:19,660 --> 00:28:21,030 objek, atau entiti. 691 00:28:21,030 --> 00:28:23,320 Ia tidak benar-benar perkara bagaimana anda berfikir tentang mereka, tetapi mereka 692 00:28:23,320 --> 00:28:26,740 diprogramkan, perkara alih, dan dalam kes ini, ini 693 00:28:26,740 --> 00:28:30,730 program yang pelajar kita menulis mempunyai beberapa roti halia 694 00:28:30,730 --> 00:28:32,990 cookies, beberapa cookies pekeliling, sekumpulan keseluruhan 695 00:28:32,990 --> 00:28:35,430 hati, sekumpulan keseluruhan cermin mata. 696 00:28:38,170 --> 00:28:42,420 Kerana ini, dia mampu untuk memprogram setiap orang 697 00:28:42,420 --> 00:28:44,720 watak individu berasingan. 698 00:28:44,720 --> 00:28:46,480 >> Sekarang, apakah maknanya untuk memprogram watak-watak ini? 699 00:28:46,480 --> 00:28:49,440 Baiklah, biar saya pergi ke hadapan dan klik pada cookies tangan ini kiri 700 00:28:49,440 --> 00:28:51,830 dan tatal ke kiri bahagian atas di sini. 701 00:28:51,830 --> 00:28:53,670 Di sebelah kiri atas skrin saya sekarang adalah 702 00:28:53,670 --> 00:28:55,280 yang dipanggil kawasan skrip. 703 00:28:55,280 --> 00:28:58,790 Ini adalah jenis sabak kosong, pada mulanya, ke mana saya boleh 704 00:28:58,790 --> 00:29:01,540 seret dan lepaskan kepingan teka-teki itu, terus-terang, adakah 705 00:29:01,540 --> 00:29:03,020 apa yang mereka katakan. 706 00:29:03,020 --> 00:29:05,820 Di bahagian paling atas timbunan kepingan teka-teki ini adalah perkataan 707 00:29:05,820 --> 00:29:09,340 Apabila Bendera Hijau Diklik, dan jika anda tidak perasan sebelum ini, 708 00:29:09,340 --> 00:29:12,300 cara saya mula lagu cookie klik, secara literal, 709 00:29:12,300 --> 00:29:13,320 bendera hijau. 710 00:29:13,320 --> 00:29:16,590 Jadi bahawa sekeping teka-teki di sebelah kiri atas ada bermakna apabila 711 00:29:16,590 --> 00:29:19,780 klik manusia bendera hijau, diteruskan untuk lakukan 712 00:29:19,780 --> 00:29:21,110 perkara-perkara berikut. 713 00:29:21,110 --> 00:29:23,330 >> Kini, apa yang mereka tidak cookie meneruskan lakukan? 714 00:29:23,330 --> 00:29:25,810 Saya tidak benar-benar tahu bagaimana untuk mentafsirkan ini lagi, tetapi 715 00:29:25,810 --> 00:29:29,220 Kuki nampaknya menetapkan alur untuk sifar, maka ia menunggu 716 00:29:29,220 --> 00:29:31,740 tiga saat, maka ia mengubah kumpulan kepada satu, maka ia 717 00:29:31,740 --> 00:29:33,590 menunggu kedua, maka ia berubah 718 00:29:33,590 --> 00:29:35,100 alur belakang kepada satu. 719 00:29:35,100 --> 00:29:37,373 Dan kemudian ini sebenarnya kelihatan seperti sedikit pepijat, sekiranya tidak 720 00:29:37,373 --> 00:29:39,440 perlu untuk mengubah alur lagi dan lagi melainkan jika ia 721 00:29:39,440 --> 00:29:43,380 sedang berubah di tempat lain, tetapi ini siri langkah-langkah apa yang 722 00:29:43,380 --> 00:29:46,800 menetapkan tingkah laku cookies ini khususnya. 723 00:29:46,800 --> 00:29:49,180 Jadi mari kita sebenarnya skrol kembali dan tidak melihat sesuatu 724 00:29:49,180 --> 00:29:50,430 agak begitu kompleks lagi. 725 00:29:50,430 --> 00:29:52,260 Biar saya pergi ke hadapan dan pergi File, New, 726 00:29:52,260 --> 00:29:53,560 dan mendapatkan sabak yang bersih. 727 00:29:53,560 --> 00:29:56,590 >> Jadi sekarang, saya sememangnya mempunyai kawasan skrip kosong, peringkat kosong, 728 00:29:56,590 --> 00:29:59,380 dengan Gores bidadari lalai kami, dan di sebelah kiri atas 729 00:29:59,380 --> 00:30:01,670 pada skrin saya adakah saya mempunyai palet semua mereka 730 00:30:01,670 --> 00:30:03,400 keping teka-teki yang disediakan. 731 00:30:03,400 --> 00:30:06,300 Dan kita tidak akan pergi melalui hampir bahawa banyak perkara-perkara ini 732 00:30:06,300 --> 00:30:09,470 hari ini kerana, sekali lagi, kebanyakan penjelasan-sendiri, tetapi kita akan 733 00:30:09,470 --> 00:30:12,370 cuba untuk mengkategorikan mereka dan menunjukkan persamaan 734 00:30:12,370 --> 00:30:15,380 dengan bahasa ini masa depan yang kita akan menyelam. 735 00:30:15,380 --> 00:30:19,180 Dan di sebelah kiri atas di sini adalah yang pertama Apabila Bendera Hijau Diklik, 736 00:30:19,180 --> 00:30:22,170 jadi biarlah saya seret ini di sini, mengezum keluar sedikit. 737 00:30:22,170 --> 00:30:25,780 Dan jika saya klik bendera hijau, tiada apa yang benar-benar berlaku kerana 738 00:30:25,780 --> 00:30:29,360 Saya tidak melekat logik mana-mana, apa-apa pernyataan jadi untuk bercakap, 739 00:30:29,360 --> 00:30:31,040 bahawa bendera hijau, jadi biarlah saya pergi sehingga 740 00:30:31,040 --> 00:30:32,500 kategori di sini. 741 00:30:32,500 --> 00:30:34,840 Saya kini dalam kategori Kawalan. 742 00:30:34,840 --> 00:30:37,630 Saya sebaliknya akan pergi ke kategori Kelihatan, dan 743 00:30:37,630 --> 00:30:39,970 ada sekumpulan keseluruhan perkara di sini yang mengatakan Katakanlah, 744 00:30:39,970 --> 00:30:43,110 Berfikir, Tukar Warna, Switch Kostum. 745 00:30:43,110 --> 00:30:44,860 >> Jadi, anda boleh melakukan perkara-perkara bodoh dengan pakaian dan 746 00:30:44,860 --> 00:30:45,870 bunyi dan sebagainya. 747 00:30:45,870 --> 00:30:49,970 Biar saya pergi ke hadapan dan hanya mengatakan Katakanlah, dan kini notis kerana saya heret 748 00:30:49,970 --> 00:30:52,940 dan lepaskan ini sekeping teka-teki, ia akan mahu selak 749 00:30:52,940 --> 00:30:55,010 ke dalam bentuk yang sama. 750 00:30:55,010 --> 00:30:58,020 Jadi, apabila saya pergi ke hadapan dan melepaskan tetikus saya, mereka mengunci 751 00:30:58,020 --> 00:31:01,770 bersama-sama, dan kini jika saya pergi ke sini dan klik bendera hijau, 752 00:31:01,770 --> 00:31:05,910 kucing tidak sebenarnya menyapa kerana itulah apa yang berada di dalam 753 00:31:05,910 --> 00:31:06,980 kotak putih ini. 754 00:31:06,980 --> 00:31:08,900 Kita akan melihat bahawa ini kotak putih adalah apa yang dipanggil 755 00:31:08,900 --> 00:31:10,250 hujah, atau parameter. 756 00:31:10,250 --> 00:31:12,560 Ia adalah satu cara mengubah tingkah laku, dalam kes ini, 757 00:31:12,560 --> 00:31:15,070 teka-teki sekeping, tetapi jika saya mahu untuk mengatakan apa yang saya kata 758 00:31:15,070 --> 00:31:18,610 sebelum ini, berkata hello, dunia, saya kini boleh kembali di sini, 759 00:31:18,610 --> 00:31:21,990 klik bermain, dan "hello, dunia" adalah apa yang berkata. 760 00:31:21,990 --> 00:31:24,340 >> Jadi, kita benar-benar pengaturcaraan sekarang. 761 00:31:24,340 --> 00:31:27,540 Ia tidak semua yang menarik program, tetapi sekurang-kurangnya 762 00:31:27,540 --> 00:31:30,140 ia adalah sesuatu yang sedikit lebih menarik daripada yang kelihatan, pada 763 00:31:30,140 --> 00:31:31,300 pandangan pertama, seperti ini. 764 00:31:31,300 --> 00:31:34,190 Dan kita sangat cepat boleh mendapatkan semua lebih ekspresif 765 00:31:34,190 --> 00:31:36,600 kerana dalam Gores, seperti dalam bahasa-bahasa lain, ada semua 766 00:31:36,600 --> 00:31:40,010 pelbagai kenyataan, bukan hanya Katakanlah atau percetakan sesuatu, tetapi 767 00:31:40,010 --> 00:31:42,650 anda boleh melakukan perkara-perkara seperti menunggu, seperti yang kita hanya melihat dengan 768 00:31:42,650 --> 00:31:44,240 cookie, beberapa beberapa saat. 769 00:31:44,240 --> 00:31:46,440 Anda boleh memainkan bunyi dalam persekitaran Gores hanya 770 00:31:46,440 --> 00:31:49,050 seperti yang anda boleh dalam komputer biasa bermain bunyi program. 771 00:31:49,050 --> 00:31:52,440 Anda boleh menyemak apa yang dipanggil ungkapan Boolean. 772 00:31:52,440 --> 00:31:55,630 Jadi sekarang, mari kita mulakan untuk menambah Kit beberapa istilah 773 00:31:55,630 --> 00:31:58,840 yang sebenarnya berkaitan dengan contoh bahawa Yusuf dan saya tidak 774 00:31:58,840 --> 00:32:00,080 di sini dengan stokin. 775 00:32:00,080 --> 00:32:03,040 Jadi penyata hanya kenyataan fakta. 776 00:32:03,040 --> 00:32:04,160 Melakukan ini. 777 00:32:04,160 --> 00:32:07,370 Satu arahan untuk bidadari, atau saya manusia, untuk melakukan sesuatu. 778 00:32:07,370 --> 00:32:10,420 Satu ungkapan Boolean adalah sesuatu yang mempunyai nilai, 779 00:32:10,420 --> 00:32:14,580 kononnya nilai kebenaran, yang sama ada sifar atau satu, palsu atau 780 00:32:14,580 --> 00:32:17,890 benar, atau mematikan, tidak atau ya. 781 00:32:17,890 --> 00:32:19,730 Tidak benar-benar kira bagaimana anda berfikir tentang ini, tetapi ia adalah satu 782 00:32:19,730 --> 00:32:20,700 negeri binari. 783 00:32:20,700 --> 00:32:22,610 Sebagai Nate dibincangkan dalam video Rabu, dua 784 00:32:22,610 --> 00:32:23,570 perkara yang berbeza. 785 00:32:23,570 --> 00:32:25,740 >> Jadi dalam Gores, ungkapan Boolean berlaku untuk melihat 786 00:32:25,740 --> 00:32:28,910 seperti objek biru di sini, dan dalam hal ini, soalan 787 00:32:28,910 --> 00:32:30,960 tanda menunjukkan bahawa anda bertanya soalan. 788 00:32:30,960 --> 00:32:34,250 Adakah kucing, atau bidadari, menyentuh penunjuk tetikus? 789 00:32:34,250 --> 00:32:36,580 Jadi ini adalah hanya satu contoh blok Gores yang akan 790 00:32:36,580 --> 00:32:39,950 untuk membolehkan kita untuk memeriksa ya atau tidak, adalah menyentuh tetikus 791 00:32:39,950 --> 00:32:40,790 bidadari pada skrin? 792 00:32:40,790 --> 00:32:42,840 Dan ini boleh menjadi berguna jika anda benar-benar mahu melakukan perkara-perkara 793 00:32:42,840 --> 00:32:43,820 dengan tetikus anda. 794 00:32:43,820 --> 00:32:46,470 Di samping ungkapan Boolean, kita mempunyai perkara-perkara 795 00:32:46,470 --> 00:32:49,110 seperti tetikus ke bawah, jadi anda boleh mengesan bahawa jenis 796 00:32:49,110 --> 00:32:50,200 soalan juga. 797 00:32:50,200 --> 00:32:52,590 Kita boleh melakukan matematik jika anda benar-benar mahu, dan terdapat 798 00:32:52,590 --> 00:32:55,170 kegunaan untuk ini sebenarnya lebih menarik daripada sekadar tulen 799 00:32:55,170 --> 00:32:56,400 aritmetik, seperti yang kita akan lihat. 800 00:32:56,400 --> 00:32:59,690 Kerawakan Pseudo dan membuat program anda muncul untuk berfikir 801 00:32:59,690 --> 00:33:03,490 atau berkelakuan berbeza berdasarkan beberapa nilai-nilai yang seolah-olah rawak, 802 00:33:03,490 --> 00:33:06,610 dan kemudian kita mempunyai perkara-perkara seperti ungkapan Boolean seperti DAN. 803 00:33:06,610 --> 00:33:08,830 Jadi, jika anda benar-benar mahu untuk memeriksa dua nilai, kita akan lihat di 804 00:33:08,830 --> 00:33:11,110 Gores bahawa kita sebenarnya boleh menguji jika ini adalah 805 00:33:11,110 --> 00:33:13,190 benar dan ini adalah benar. 806 00:33:13,190 --> 00:33:15,300 Sebagai contoh, dalam kes stoking saya, saya boleh telah di 807 00:33:15,300 --> 00:33:19,045 sangat akhir bertanya soalan jika kaus kaki kiri dan kanan yg bersukses 808 00:33:19,045 --> 00:33:20,610 adalah, berhenti. 809 00:33:20,610 --> 00:33:22,710 Anda semua dilakukan untuk hari itu, supaya akan menjadi satu 810 00:33:22,710 --> 00:33:24,300 peluang untuk itu. 811 00:33:24,300 --> 00:33:27,740 >> Jadi mari kita pergi ke hadapan dan cuba untuk sekeping beberapa ini bersama-sama 812 00:33:27,740 --> 00:33:31,570 dan pergi ke beberapa contoh yang lebih 813 00:33:31,570 --> 00:33:32,610 menarik daripada yang satu ini. 814 00:33:32,610 --> 00:33:35,770 Jadi biarlah saya teruskan di sini dan membuka beberapa contoh 815 00:33:35,770 --> 00:33:38,350 yang akan sentiasa berada di laman web kursus serta, dan 816 00:33:38,350 --> 00:33:39,870 membuka hello2. 817 00:33:39,870 --> 00:33:42,910 Jadi dalam hello2 sini, kita mempunyai satu program yang melakukan beberapa 818 00:33:42,910 --> 00:33:46,290 perkara, tetapi ia tidak melakukan ia sebagai berkesan seperti yang kita mungkin. 819 00:33:46,290 --> 00:33:48,900 Jadi di sini ia berkata "hello, dunia" untuk satu saat dan kemudian menunggu 820 00:33:48,900 --> 00:33:49,450 untuk kali kedua. 821 00:33:49,450 --> 00:33:51,720 Dan kemudian ia sekali lagi, dan kemudian tidak lagi. 822 00:33:51,720 --> 00:33:55,530 Jadi jika saya klik bendera hijau, Gores mengatakan "Hello, dunia. 823 00:33:55,530 --> 00:33:57,160 Hello, dunia. 824 00:33:57,160 --> 00:34:00,080 Hello, dunia. "Dan ini adalah jelas calon sekarang untuk 825 00:34:00,080 --> 00:34:00,860 penambahbaikan. 826 00:34:00,860 --> 00:34:03,070 >> Apakah peningkatan kecil, mudah-mudahan, kita boleh 827 00:34:03,070 --> 00:34:07,610 kini membuat jika Gores menyokong konsep? 828 00:34:07,610 --> 00:34:08,310 Beberapa jenis gelung. 829 00:34:08,310 --> 00:34:10,960 Beberapa jenis pengulangan, sekarang, akan menjadi baik, jadi biarlah saya 830 00:34:10,960 --> 00:34:11,920 sebenarnya cuba. 831 00:34:11,920 --> 00:34:13,870 Biar saya sebenarnya pergi dan bergerak ini. 832 00:34:13,870 --> 00:34:16,449 Jadi notis boleh menanggalkan blok semudah anda boleh menambah 833 00:34:16,449 --> 00:34:17,420 melampirkan mereka. 834 00:34:17,420 --> 00:34:20,730 Biar saya pergi di bawah Akta Kawalan, tatal ke bawah sini, dan sesungguhnya, 835 00:34:20,730 --> 00:34:24,000 ada ini sekeping teka-teki di sini, Ulang dan Selamanya dan 836 00:34:24,000 --> 00:34:24,870 Selamanya Jika. 837 00:34:24,870 --> 00:34:28,500 Jadi terdapat beberapa cara untuk menyatakan membina gelung 838 00:34:28,500 --> 00:34:29,340 Gores. 839 00:34:29,340 --> 00:34:31,730 Yang saya mungkin mahu di sini tidak Selamanya kerana saya hanya 840 00:34:31,730 --> 00:34:34,639 mahu ini berlaku tiga kali, tetapi mungkin Ulangi. 841 00:34:34,639 --> 00:34:38,449 Jadi biarlah saya seret Ulangi di sini, seret dan lepaskan, dan 842 00:34:38,449 --> 00:34:42,530 sekarang bukannya berkata "hello, dunia" tiga kali yang berasingan, 843 00:34:42,530 --> 00:34:44,230 izinkan saya seret ini sekeping teka-teki di sini. 844 00:34:44,230 --> 00:34:46,610 Dan walaupun ia nampaknya tidak sesuai, program pintar 845 00:34:46,610 --> 00:34:48,920 cukup untuk merealisasikan ia akan berkembang untuk mengisi, jadi ia adalah 846 00:34:48,920 --> 00:34:51,270 bentuk yang perkara dan bukan saiz mutlak. 847 00:34:51,270 --> 00:34:54,030 Izinkan saya menukar pengulangan kepada tiga, dan sekarang biarlah saya pergi 848 00:34:54,030 --> 00:34:56,560 hadapan dan seret Tunggu Salah Kedua di sana juga. 849 00:34:56,560 --> 00:34:59,220 Ia akan snap dalam juga, dan jadi sekarang saya akan mengheret 850 00:34:59,220 --> 00:35:01,370 lelaki ini di sini dan hanya membuang mereka jauh kerana saya 851 00:35:01,370 --> 00:35:02,710 tidak memerlukan mereka lagi. 852 00:35:02,710 --> 00:35:05,920 Biar saya mengezum keluar dan klik bendera hijau sekarang, dan kita mempunyai 853 00:35:05,920 --> 00:35:09,600 program yang sama tetapi, seperti yang saya meramalkan sebelum ini, lebih baik 854 00:35:09,600 --> 00:35:12,200 direka kerana anda boleh bayangkan bagaimana buruk program ini 855 00:35:12,200 --> 00:35:14,410 akan mendapat, sudah tentu estetik, jika anda terpaksa 856 00:35:14,410 --> 00:35:16,640 mula menyalin dan menampal, menyalin dan menampal, atau 857 00:35:16,640 --> 00:35:20,020 mengheret dan menjatuhkan perkara yang sama darn lagi dan lagi. 858 00:35:20,020 --> 00:35:22,260 >> Sekarang, hanya mengatakan barangan pada skrin, percetakan kepada 859 00:35:22,260 --> 00:35:25,350 skrin, benar-benar semua tidak menarik, jadi mari kita membuka satu 860 00:35:25,350 --> 00:35:26,580 varians ketiga di sini. 861 00:35:26,580 --> 00:35:29,810 Dan sekarang, seperti yang anda akan lihat, ini dengan cepat akan mendapat menjengkelkan - 862 00:35:29,810 --> 00:35:30,850 [Meow] 863 00:35:30,850 --> 00:35:31,940 DAVID MALAN: - tetapi ia juga jenis comel. 864 00:35:31,940 --> 00:35:35,244 [Meow] 865 00:35:35,244 --> 00:35:37,460 DAVID MALAN: Okay, jadi lebih baik, dan kita pasti boleh menggunakan yang 866 00:35:37,460 --> 00:35:41,060 peralihan sama chunking ini ke dalam gelung 867 00:35:41,060 --> 00:35:43,520 struktur, tetapi mari kita membuat ia lebih menarik masih. 868 00:35:43,520 --> 00:35:47,480 >> Biar saya pergi ke hadapan dan membuka varians keempat di sini, di mana saya 869 00:35:47,480 --> 00:35:50,020 mengambil perkara satu langkah ke hadapan. 870 00:35:50,020 --> 00:35:54,450 Jadi, menurut ini, bodoh walaupun ini adalah pada mulanya 871 00:35:54,450 --> 00:35:58,530 pandangan, apa yang program ini akan lakukan? 872 00:35:58,530 --> 00:35:59,790 Ia akan Meow sekali. 873 00:35:59,790 --> 00:36:00,160 Mengapa? 874 00:36:00,160 --> 00:36:03,340 Nah, salah satu adalah, setakat yang saya tahu, selalunya kurang daripada dua orang. 875 00:36:03,340 --> 00:36:04,890 Tiada tanggapan rawak di sini. 876 00:36:04,890 --> 00:36:07,240 Saya telah benar-benar keras berkod satu dan dua, tetapi ini adalah satu 877 00:36:07,240 --> 00:36:10,370 contoh kini sebenarnya menggunakan ungkapan Boolean. 878 00:36:10,370 --> 00:36:13,650 Banyak seperti Yusuf lakukan dalam pseudokod beliau, pengengsotan JIKA 879 00:36:13,650 --> 00:36:17,170 anda mencari padanan stokin THEN melakukan yang berikut, di sini kita mempunyai 880 00:36:17,170 --> 00:36:19,750 ungkapan JIKA satu adalah kurang daripada dua THEN - 881 00:36:19,750 --> 00:36:21,820 dan sebenarnya kita juga mempunyai sedikit lekukan, 882 00:36:21,820 --> 00:36:24,480 mana ungu sedikit dilekukan ke kanan - 883 00:36:24,480 --> 00:36:26,600 Kemudian anda akan untuk memainkan Meow bunyi. 884 00:36:26,600 --> 00:36:30,060 Sekarang, dalam kes ini, bahawa seseorang itu sentiasa kurang daripada dua, jadi ini 885 00:36:30,060 --> 00:36:31,970 adalah jenis sisa keadaan. 886 00:36:31,970 --> 00:36:34,890 Tetapi kita akan dapat, seperti yang kita akan lihat, untuk palam perkara-perkara lain ke dalam 887 00:36:34,890 --> 00:36:37,420 ini ruang letak mana satu dan dua sekarang. 888 00:36:37,420 --> 00:36:41,340 Jadi mari kita kini maju ke lima contoh ini beberapa 889 00:36:41,340 --> 00:36:45,850 hellos dan melihat apa yang program ini akan melakukan. 890 00:36:45,850 --> 00:36:48,710 >> Jadi sekarang, dalam ayat Inggeris, bagaimanakah ini 891 00:36:48,710 --> 00:36:51,460 program berkelakuan? 892 00:36:51,460 --> 00:36:52,950 PENONTON: Meows separuh masa. 893 00:36:52,950 --> 00:36:55,380 DAVID MALAN: separuh Meow masa, jadi ini adalah satu cara 894 00:36:55,380 --> 00:36:56,700 menyampaikan idea yang sangat mudah. 895 00:36:56,700 --> 00:36:59,400 Walaupun kita berada menggunakan beberapa ketidaksamaan sini 896 00:36:59,400 --> 00:37:01,860 dalam beberapa nombor, ini adalah benar-benar hanya programmatical 897 00:37:01,860 --> 00:37:09,490 cara, cara yang tepat, mengatakan jika syiling datang kepala, pergi 898 00:37:09,490 --> 00:37:10,270 hadapan dan Meow. 899 00:37:10,270 --> 00:37:13,540 Atau sebaliknya, jika syiling datang ekor, tidak Meow. 900 00:37:13,540 --> 00:37:15,110 Dan dalam kes ini, bagaimana kita menyatakan bahawa? 901 00:37:15,110 --> 00:37:17,950 Kami akan memilih nombor rawak 1-10, dan jika itu 902 00:37:17,950 --> 00:37:21,110 nombor kurang daripada 6, teruskan dan Meow. 903 00:37:21,110 --> 00:37:22,260 Dan bagaimana ini mendapatkan di sini? 904 00:37:22,260 --> 00:37:24,620 Baik lagi, notis hanya mengheret dan menjatuhkan dan 905 00:37:24,620 --> 00:37:26,190 perkara selak ke tempatnya. 906 00:37:26,190 --> 00:37:28,020 >> Jadi sekarang mari kita lihat jika rawak ini berfungsi. 907 00:37:28,020 --> 00:37:29,845 Biar saya pergi ke hadapan dan klik bendera hijau. 908 00:37:29,845 --> 00:37:31,120 [Meow] 909 00:37:31,120 --> 00:37:32,000 DAVID MALAN: Okay. 910 00:37:32,000 --> 00:37:33,430 [Meow] 911 00:37:33,430 --> 00:37:35,260 DAVID MALAN: Okay. 912 00:37:35,260 --> 00:37:38,510 Okay, baik, jadi kami mendapat kepala, kepala, ekor berkesan. 913 00:37:38,510 --> 00:37:39,295 Ekor. 914 00:37:39,295 --> 00:37:39,590 [Meow] 915 00:37:39,590 --> 00:37:41,829 DAVID MALAN: Ketua. 916 00:37:41,829 --> 00:37:43,220 [Meow] 917 00:37:43,220 --> 00:37:44,040 DAVID MALAN: Cemerlang. 918 00:37:44,040 --> 00:37:46,220 Memang janggal apabila hanya statistik anda mendapat yang buruk 919 00:37:46,220 --> 00:37:48,510 berlari, dan ia adalah semua kepala, dan program ini sebenarnya tidak 920 00:37:48,510 --> 00:37:49,230 bekerja kerana anda akan berharap. 921 00:37:49,230 --> 00:37:51,210 Tetapi kali ini, ia bekerja, dan kita seolah-olah mempunyai, jika kita lakukan 922 00:37:51,210 --> 00:37:53,830 ini nombor terhingga kali, kemungkinan 50%. 923 00:37:53,830 --> 00:37:56,950 Sekarang sekali lagi, tidak semua yang menarik, hanya membuat kucing 924 00:37:56,950 --> 00:37:59,840 Meow, jadi mari kita lihat jika kita tidak boleh memajukan ini sedikit lagi 925 00:37:59,840 --> 00:38:01,820 sini dalam enam versi. 926 00:38:01,820 --> 00:38:05,620 Jadi sekarang, kita mempunyai versi yang benar-benar menjengkelkan - 927 00:38:05,620 --> 00:38:08,215 [MEOWS SETIAP SECONDS FEW] 928 00:38:08,215 --> 00:38:10,640 MALAN DAVID: - dan ini adalah apa yang diketahui, umum, sebagai 929 00:38:10,640 --> 00:38:11,670 gelung tidak terhingga. 930 00:38:11,670 --> 00:38:14,190 >> Gelung tidak terhingga Jadi dalam kes ini merasakan buruk. 931 00:38:14,190 --> 00:38:16,970 Ia pasti akan mula membunyikan buruk, namun tidak terhingga 932 00:38:16,970 --> 00:38:18,740 gelung tidak sentiasa buruk. 933 00:38:18,740 --> 00:38:20,910 Bolehkah anda berfikir konteks program komputer di mana anda mahu 934 00:38:20,910 --> 00:38:22,910 sebenarnya mahu gelung tak terhingga? 935 00:38:22,910 --> 00:38:23,691 Yeah? 936 00:38:23,691 --> 00:38:26,520 PENONTON: Apabila anda mahu untuk memeriksa keadaan. 937 00:38:26,520 --> 00:38:28,240 DAVID MALAN: Baiklah, apabila anda mahu menyimpan memeriksa keadaan yang? 938 00:38:28,240 --> 00:38:29,190 Seperti apa? 939 00:38:29,190 --> 00:38:30,440 PENONTON: [didengar] 940 00:38:36,060 --> 00:38:38,170 DAVID MALAN: Okay, baik, jadi jika anda mempunyai beberapa program, beberapa 941 00:38:38,170 --> 00:38:40,440 jenis perkara automasi rumah, di mana anda mahu sentiasa 942 00:38:40,440 --> 00:38:41,980 memantau adalah sesuatu kes itu. 943 00:38:41,980 --> 00:38:42,850 Adakah lampu? 944 00:38:42,850 --> 00:38:45,020 Adakah lampu kerana mungkin anda mempunyai pemasa, dan 945 00:38:45,020 --> 00:38:47,360 anda mahu mereka pergi, anda mungkin perlu untuk melakukan sesuatu 946 00:38:47,360 --> 00:38:48,290 lagi dan lagi. 947 00:38:48,290 --> 00:38:50,540 Dan sebenarnya, bercakap pemasa, sesiapa di antara kamu yang telah 948 00:38:50,540 --> 00:38:53,100 jam pada komputer atau jam tangan digital anda, itulah 949 00:38:53,100 --> 00:38:54,210 gelung tidak terhingga. 950 00:38:54,210 --> 00:38:56,980 Ia terus mengemaskini masa kerana ia sentiasa 951 00:38:56,980 --> 00:38:59,750 memeriksa dan menyemak dan memeriksa mempunyai masa berubah, 952 00:38:59,750 --> 00:39:01,000 dan jika ya, oh, tuhan saya. 953 00:39:03,670 --> 00:39:04,740 Jam akhirnya berubah. 954 00:39:04,740 --> 00:39:07,020 Ia memerlukan memaparkan bahawa nilai kepada anda. 955 00:39:07,020 --> 00:39:10,880 Jadi sedangkan kebanyakan gelung tidak terhingga masa adalah kesilapan, 956 00:39:10,880 --> 00:39:13,950 atau sekurang-kurangnya keputusan reka bentuk yang miskin, kadang-kadang mereka lakukan 957 00:39:13,950 --> 00:39:14,785 mempunyai nilai mereka. 958 00:39:14,785 --> 00:39:18,170 >> Nah, mari kita memajukan lagi di sini untuk hello7. 959 00:39:18,170 --> 00:39:20,410 Jadi sekarang program ini akan mendapat sedikit lebih interaktif. 960 00:39:20,410 --> 00:39:23,120 Biar saya mengezum masuk sini, dan sekali lagi, ini adalah apa yang bagus 961 00:39:23,120 --> 00:39:23,640 tentang Scratch. 962 00:39:23,640 --> 00:39:26,760 Dan kita akan menggunakannya untuk menjadi jelas, Awal, hanya hari ini dan ke 963 00:39:26,760 --> 00:39:27,780 menetapkan masalah minggu depan. 964 00:39:27,780 --> 00:39:31,920 Tetapi pada hari Isnin, kita menyelam ke dalam C. Dalam program ini di sini, ia tidak, 965 00:39:31,920 --> 00:39:33,190 selama-lamanya, yang berikut. 966 00:39:33,190 --> 00:39:35,890 JIKA menyentuh penunjuk tetikus - sekarang, yang 967 00:39:35,890 --> 00:39:36,420 konteks di sini? 968 00:39:36,420 --> 00:39:39,670 Nah, dan notis yang yang dipilih ke sini di bawah 969 00:39:39,670 --> 00:39:43,060 betul adalah kucing, bidadari satu, jadi ini skrip, ini 970 00:39:43,060 --> 00:39:45,720 program, terpakai kepadanya secara khusus. 971 00:39:45,720 --> 00:39:48,950 Jadi, jika kucing yang menyentuh penunjuk tetikus, maka ia akan 972 00:39:48,950 --> 00:39:51,350 untuk bermain ke bawah dan tunggu dua saat, dan 973 00:39:51,350 --> 00:39:53,030 kemudian mengulangi nauseum iklan. 974 00:39:53,030 --> 00:39:55,360 >> Jadi mari kita pergi ke hadapan dan memukul main. 975 00:39:55,360 --> 00:39:57,580 Tiada apa-apa yang berlaku, tetapi jika saya mahu haiwan 976 00:39:57,580 --> 00:39:59,310 kucing sekarang, saya boleh hanya. 977 00:39:59,310 --> 00:40:01,130 [Meow] 978 00:40:01,130 --> 00:40:02,244 DAVID MALAN: Disanjung. 979 00:40:02,244 --> 00:40:05,956 [Meow] 980 00:40:05,956 --> 00:40:08,750 DAVID MALAN: Baiklah, kurang menjengkelkan, tetapi juga mendapat membosankan, 981 00:40:08,750 --> 00:40:11,480 jadi mari kita bergerak ke atas dan melihat jika kita tidak boleh menyuntik 982 00:40:11,480 --> 00:40:12,460 sedikit lebih logik. 983 00:40:12,460 --> 00:40:14,300 Itu adalah contoh 7. 984 00:40:14,300 --> 00:40:16,090 >> Sini dalam lapan contoh, kita akan 985 00:40:16,090 --> 00:40:18,670 memperkenalkan satu keadaan ELSE. 986 00:40:18,670 --> 00:40:21,440 Begitu banyak seperti garpu literal di jalan raya, di mana anda boleh pergi 987 00:40:21,440 --> 00:40:24,260 kiri atau anda boleh pergi betul, keadaan dalam pengaturcaraan 988 00:40:24,260 --> 00:40:28,120 bahasa seperti Awal, atau seperti yang kita akan lihat C, boleh membenarkan anda untuk 989 00:40:28,120 --> 00:40:32,230 pergi dalam satu arah atau yang lain melalui IF ELSE membina. 990 00:40:32,230 --> 00:40:35,160 Jadi agak literal, JIKA menyentuh penunjuk tetikus, ini 991 00:40:35,160 --> 00:40:38,680 akan memainkan beberapa bunyi, ELSE ia akan bermain ini lain 992 00:40:38,680 --> 00:40:39,800 bunyi, Meow. 993 00:40:39,800 --> 00:40:42,510 Sekarang, jika anda boleh membuat kesimpulan daripada nama bunyi-bunyi, anda boleh 994 00:40:42,510 --> 00:40:45,310 mungkin meneka apa yang program ini bertujuan untuk nampak 995 00:40:45,310 --> 00:40:46,250 idea. 996 00:40:46,250 --> 00:40:48,742 Kucing ini mengiu gembira. 997 00:40:48,742 --> 00:40:49,230 [Meow] 998 00:40:49,230 --> 00:40:51,410 DAVID MALAN: Gembira, tetapi tidak 999 00:40:51,410 --> 00:40:52,926 agak suka untuk disentuh. 1000 00:40:52,926 --> 00:40:54,550 [Roars] 1001 00:40:54,550 --> 00:40:57,500 DAVID MALAN: Jadi sekarang kita mempunyai kucing yang akan menjerit pada anda. 1002 00:40:57,500 --> 00:41:00,570 >> Baiklah, baik, salah satu contoh terakhir dengan kucing di sini, dan 1003 00:41:00,570 --> 00:41:02,920 mari versi terbuka sembilan ini di sini. 1004 00:41:02,920 --> 00:41:06,190 Jadi sekarang, kita mempunyai bunyi yang paling menjengkelkan yang saya boleh 1005 00:41:06,190 --> 00:41:11,630 mencari, jadi kita mempunyai anjing laut atau singa laut di sini siapa yang akan 1006 00:41:11,630 --> 00:41:13,222 melakukan yang berikut. 1007 00:41:13,222 --> 00:41:20,870 [MOHOR Bark] 1008 00:41:20,870 --> 00:41:23,310 DAVID MALAN: Okay, jadi ini akan pergi sehingga anda memikirkan bagaimana 1009 00:41:23,310 --> 00:41:24,640 program ini berfungsi. 1010 00:41:24,640 --> 00:41:28,560 Jadi kali ini, haiwan ini mempunyai dua skrip, dan apa yang 1011 00:41:28,560 --> 00:41:31,050 menarik di sini adalah bahawa skrip-skrip ini akan melaksanakan 1012 00:41:31,050 --> 00:41:32,260 secara selari. 1013 00:41:32,260 --> 00:41:35,340 Jadi, kerana kedua-dua mereka bermula dengan satu bendera hijau diklik, 1014 00:41:35,340 --> 00:41:38,080 ia seperti pergi seperti ini, dan kedua-dua program mula berjalan ia 1015 00:41:38,080 --> 00:41:41,370 sekali walaupun mereka menggelung selama-lamanya. 1016 00:41:41,370 --> 00:41:44,420 Jadi dalam skrip atas, saya mempunyai beberapa logik. 1017 00:41:44,420 --> 00:41:49,275 Apa ciri-ciri yang menyediakan di sana? 1018 00:41:49,275 --> 00:41:50,740 [MOHOR Bark] 1019 00:41:50,740 --> 00:41:51,670 PENONTON: [didengar] 1020 00:41:51,670 --> 00:41:53,295 DAVID MALAN: Jika ia adalah apa? 1021 00:41:53,295 --> 00:41:53,760 [MOHOR Bark] 1022 00:41:53,760 --> 00:41:55,852 PENONTON: Jika disenyapkan kepada sifar, ia akan terus bermain 1023 00:41:55,852 --> 00:41:58,410 bunyi. [MOHOR Bark] 1024 00:41:58,410 --> 00:41:58,940 DAVID MALAN: Okay, baik. 1025 00:41:58,940 --> 00:42:01,960 Jadi JIKA disenyapkan, apa ini, perkara ini oren adalah sifar, 1026 00:42:01,960 --> 00:42:05,370 THEN memainkan bunyi singa laut dan berfikir "Oh, 1027 00:42:05,370 --> 00:42:06,770 hi, "selama dua saat. 1028 00:42:06,770 --> 00:42:09,380 Sekarang, saya tidak tahu apa yang disenyapkan adalah, tetapi sifar conjures sehingga 1029 00:42:09,380 --> 00:42:11,230 idea palsu atau mematikan. 1030 00:42:11,230 --> 00:42:14,490 Jadi jika disenyapkan adalah palsu, jadi jika tidak disenyapkan, 1031 00:42:14,490 --> 00:42:15,660 terus memainkan bunyi. 1032 00:42:15,660 --> 00:42:17,350 Baiklah, baik, bagaimana kita melumpuhkan perkara ini? 1033 00:42:17,350 --> 00:42:19,310 >> Nah, mari kita melihat skrip kedua di bawah sana. 1034 00:42:19,310 --> 00:42:22,130 Skrip kedua mengatakan ditetapkan disenyapkan kepada sifar. 1035 00:42:22,130 --> 00:42:25,180 Notis ia juga oren, jadi apa Gores tidak ia warna 1036 00:42:25,180 --> 00:42:27,400 blok di bawah naungan yang sama jika apapun ia 1037 00:42:27,400 --> 00:42:28,850 daripada logiknya berkaitan. 1038 00:42:28,850 --> 00:42:32,850 Jadi hanya top up disenyapkan adalah oren, jadi disenyapkan turun di sini 1039 00:42:32,850 --> 00:42:34,060 yang disebut di dalam blok oren. 1040 00:42:34,060 --> 00:42:36,170 Tetapi ini adalah satu tugasan yang berubah-ubah, jadi hanya seperti dalam 1041 00:42:36,170 --> 00:42:39,170 algebra, anda mempunyai x dan y dan z, dalam pengaturcaraan anda mempunyai 1042 00:42:39,170 --> 00:42:41,440 pembolehubah, tetapi mereka umumnya - 1043 00:42:41,440 --> 00:42:42,580 mari kita berhenti untuk seketika dan angka bagaimana 1044 00:42:42,580 --> 00:42:44,280 untuk berhenti menyalak ini. 1045 00:42:44,280 --> 00:42:45,480 Bagaimana saya lakukan ini? 1046 00:42:45,480 --> 00:42:46,480 [MOHOR Bark] 1047 00:42:46,480 --> 00:42:47,920 DAVID MALAN: Okay. 1048 00:42:47,920 --> 00:42:49,490 Ia berhenti. Okay. 1049 00:42:49,490 --> 00:42:52,230 >> Jadi sama seperti dalam algebra anda mempunyai pembolehubah x, y, dan z, tetapi dalam 1050 00:42:52,230 --> 00:42:55,260 pengaturcaraan, yang mempunyai pembolehubah seperti x, y, dan z adalah umumnya 1051 00:42:55,260 --> 00:42:57,330 disukai kerana mereka tidak berada di semua ekspresif. 1052 00:42:57,330 --> 00:43:00,070 Mereka tidak mempunyai makna semantik jua, jadi dalam kebanyakan 1053 00:43:00,070 --> 00:43:02,110 bahasa pengaturcaraan, pembolehubah boleh mempunyai penuh 1054 00:43:02,110 --> 00:43:05,270 nama beroperasi atau perkataan atau frasa, seperti disenyapkan, untuk mengatakan 1055 00:43:05,270 --> 00:43:06,030 apa yang mereka lakukan. 1056 00:43:06,030 --> 00:43:09,380 Jadi ini skrip kedua juga telah mendengar selama-lamanya, dan ia berkata 1057 00:43:09,380 --> 00:43:12,100 jika kekunci, kekunci keyboard Angkasa, 1058 00:43:12,100 --> 00:43:13,370 ditekan, tanda tanya. 1059 00:43:13,370 --> 00:43:16,300 Jadi ada satu keadaan dengan ungkapan Boolean itu 1060 00:43:16,300 --> 00:43:19,010 akan menjawab soalan sama ada benar atau palsu, 1061 00:43:19,010 --> 00:43:22,880 maka saya mempunyai dalamnya JIKA kekunci space ditekan DAN 1062 00:43:22,880 --> 00:43:28,020 JIKA disenyapkan adalah sifar, tetapkan disenyapkan kepada satu, ELSE menetapkan disenyapkan kepada sifar. 1063 00:43:28,020 --> 00:43:30,510 Jadi ini garpu lain di jalan raya, dan notis bagaimana saya telah 1064 00:43:30,510 --> 00:43:33,500 bersarang dua JIKA keadaan, adalah cara memeriksa 1065 00:43:33,500 --> 00:43:36,610 Space Bar ditekan kerana jika begitu, saya sama ada mahu pergi ini 1066 00:43:36,610 --> 00:43:38,000 cara atau cara itu. 1067 00:43:38,000 --> 00:43:40,210 Dan bagaimana saya terbalikkan nilai disenyapkan? 1068 00:43:40,210 --> 00:43:41,410 Saya mempunyai untuk memeriksa ia sifar? 1069 00:43:41,410 --> 00:43:45,890 Jika demikian, menjadikan ia salah, lain menjadikan ia sifar itu togol 1070 00:43:45,890 --> 00:43:47,670 kedua-dua negeri. 1071 00:43:47,670 --> 00:43:50,030 >> Baiklah, jadi kita perlu maka beberapa-asas 1072 00:43:50,030 --> 00:43:50,540 membina. 1073 00:43:50,540 --> 00:43:52,810 Kami mempunyai ungkapan Boolean, dan sedar, juga, ini adalah 1074 00:43:52,810 --> 00:43:54,050 tidak semua yang tidak dikenali. 1075 00:43:54,050 --> 00:43:56,730 Malah, di sini adalah screenshot cepat Harvard kursus CS50 1076 00:43:56,730 --> 00:43:59,740 alat membeli-belah, dan mana-mana laman web di luar sana yang mempunyai kotak semak 1077 00:43:59,740 --> 00:44:02,420 dan turun menurun telah benar-benar, sepanjang masa ini, telah menggunakan 1078 00:44:02,420 --> 00:44:03,430 Ungkapan Boolean. 1079 00:44:03,430 --> 00:44:05,760 Dalam kes ini di sini, jika anda klik checkbox sebelah 1080 00:44:05,760 --> 00:44:08,620 kursus lebih besar daripada atau bersamaan kepada 4.5, atau seterusnya sama 1081 00:44:08,620 --> 00:44:11,200 fakulti, anda menyatakan ungkapan Boolean. 1082 00:44:11,200 --> 00:44:14,780 Tunjukkanlah kepadaku kursus yang ungkapan itu adalah benar. 1083 00:44:14,780 --> 00:44:17,080 Atau ke kanan, tidak bercanggah dengan kursus saya 1084 00:44:17,080 --> 00:44:20,440 mengambil, jika yang diperiksa, maka ya, anda mahu untuk memeriksa 1085 00:44:20,440 --> 00:44:22,890 keadaan itu, jika anda mahu untuk mengabaikan ia. 1086 00:44:22,890 --> 00:44:25,170 Ungkapan Jadi Boolean adalah jenis di seluruh, tetapi apabila 1087 00:44:25,170 --> 00:44:28,080 kita meletakkan mereka dalam keadaan, sama ada JIKA keadaan, JIKA 1088 00:44:28,080 --> 00:44:30,480 Elses, atau kita juga boleh meniru lebih mendalam 1089 00:44:30,480 --> 00:44:32,830 peringkat, IF ELSE IF ELSE - 1090 00:44:32,830 --> 00:44:34,430 supaya jenis negeri pertigaan. 1091 00:44:34,430 --> 00:44:36,920 Anda boleh pergi dengan cara ini atau cara ini atau cara ini. 1092 00:44:36,920 --> 00:44:39,680 Kita boleh menjaga perkara-perkara yang bersarang untuk pergi dalam arah yang berbeza. 1093 00:44:39,680 --> 00:44:41,800 >> Jadi Gores mempunyai gelung ini, seperti Selamanya. 1094 00:44:41,800 --> 00:44:44,750 Ia mempunyai ciri-ciri seperti 10 Ulangi, beberapa 1095 00:44:44,750 --> 00:44:46,260 nombor terhingga kali. 1096 00:44:46,260 --> 00:44:49,040 Kami mempunyai keupayaan sekarang untuk menetapkan pembolehubah, jadi dalam kes ini 1097 00:44:49,040 --> 00:44:51,810 Saya telah diisytiharkan, misalnya, dipanggil stoking ubah. 1098 00:44:51,810 --> 00:44:54,340 Saya telah dimulakan kepada 0, dan itulah lagi arah lain 1099 00:44:54,340 --> 00:44:56,940 kita boleh diambil di sini dengan Yusuf, di mana mungkin saya 1100 00:44:56,940 --> 00:45:00,150 hanya menjejaki berapa banyak stoking saya mempunyai dan menamatkan 1101 00:45:00,150 --> 00:45:03,490 program apabila nilai yang berubah-ubah 2. 1102 00:45:03,490 --> 00:45:05,660 Itu akan menjadi cara lain jenis generalizing bahawa 1103 00:45:05,660 --> 00:45:08,820 masalah dan melakukan sesuatu lagi dan lagi. 1104 00:45:08,820 --> 00:45:12,080 Nah, mari kita pergi ke hadapan dan kini memperkenalkan beberapa perkara baru. 1105 00:45:12,080 --> 00:45:14,100 Jadi orang-orang anda dengan pengalaman programing terlebih dahulu akan 1106 00:45:14,100 --> 00:45:17,120 tahu bahawa banyak bahasa mempunyai tatasusunan, atau vektor atau 1107 00:45:17,120 --> 00:45:19,970 senarai, dan sesungguhnya, Gores mempunyai sesuatu seperti ini, terlalu. 1108 00:45:19,970 --> 00:45:22,510 Jadi mari kita lihat jika kita tidak boleh mengambil perkara-perkara ke peringkat seterusnya di sini. 1109 00:45:22,510 --> 00:45:24,920 Jika saya mempunyai keupayaan, kini, dengan ini keping teka-teki untuk 1110 00:45:24,920 --> 00:45:29,080 menambah sesuatu, seperti perkataan atau nombor, pembolehubah, saya boleh 1111 00:45:29,080 --> 00:45:30,550 mula untuk mengumpul sesuatu. 1112 00:45:30,550 --> 00:45:33,630 Dan ini sebenarnya adalah apropos cantik untuk perkara-perkara seperti permainan, 1113 00:45:33,630 --> 00:45:35,810 peranan-bermain permainan di mana anda jenis berjalan di sekitar 1114 00:45:35,810 --> 00:45:38,600 beberapa dunia fantasi mengumpul perkara, memetik perkara, 1115 00:45:38,600 --> 00:45:39,900 pendapatan mata, atau sebagainya. 1116 00:45:39,900 --> 00:45:42,310 Anda mungkin mahu untuk menjejaki beberapa jenis inventori, dan 1117 00:45:42,310 --> 00:45:45,180 sesungguhnya, itulah yang salah bekas pelajar kami di sini lakukan dengan 1118 00:45:45,180 --> 00:45:47,750 sesuatu dipanggil Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Jadi biarlah saya pergi ke hadapan dan membuka perkara ini di sini, dan dalam 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, kita mempunyai dunia ini sehingga di atas. 1121 00:45:56,260 --> 00:45:58,820 Jadi biarlah saya pergi ke hadapan dan klik bendera hijau. 1122 00:45:58,820 --> 00:46:01,040 Notis di sebelah kiri atas adalah beberapa jenis inventori. 1123 00:46:01,040 --> 00:46:04,110 Itu dilaksanakan dalam Gores sebagai apa yang kita akan memanggil array atau 1124 00:46:04,110 --> 00:46:06,890 senarai, dan kini kita mempunyai animasi sedikit. 1125 00:46:06,890 --> 00:46:10,440 Jadi hanya kerana kita bermula awal dengan ini kisah cinta cookies, 1126 00:46:10,440 --> 00:46:13,320 dan kemudian kita mara ke kucing dan singa laut, kini kita boleh mempunyai 1127 00:46:13,320 --> 00:46:15,100 perkara-perkara yang lebih interaktif. 1128 00:46:15,100 --> 00:46:18,250 Dan lelaki ini biru sedikit, saya boleh mula untuk bergerak beliau 1129 00:46:18,250 --> 00:46:19,500 rumah kecil di sini. 1130 00:46:19,500 --> 00:46:22,570 Jadi ia kelihatan seperti dia mendapat keluar ke sini, jadi saya menggunakan 1131 00:46:22,570 --> 00:46:25,260 kekunci anak panah, sehingga, ke bawah, kiri kanan. 1132 00:46:25,260 --> 00:46:28,370 Dan sekarang saya di luar, jadi biarkan apa yang saya dapat di sini. 1133 00:46:28,370 --> 00:46:30,920 Kelihatan seperti oren, dan sesungguhnya, sebaik sahaja saya menyentuh 1134 00:46:30,920 --> 00:46:33,110 oren, ia mendapat plopped ke dalam inventori saya. 1135 00:46:33,110 --> 00:46:35,640 Jika saya pergi ke sini untuk ceri, sekarang saya mempunyai sesuatu 1136 00:46:35,640 --> 00:46:36,760 lain dalam inventori saya. 1137 00:46:36,760 --> 00:46:39,100 Dan ini adalah semua baik dan comel, tetapi berfikir tentang bagaimana, kini, ini 1138 00:46:39,100 --> 00:46:39,840 dilaksanakan. 1139 00:46:39,840 --> 00:46:42,490 Nah, kita mempunyai ini tanggapan senarai, dan itulah nampaknya 1140 00:46:42,490 --> 00:46:45,470 sekeping teka-teki yang anda hanya mengatakan apa yang anda mahu menambah, menambah 1141 00:46:45,470 --> 00:46:46,950 oren, menambah ceri. 1142 00:46:46,950 --> 00:46:48,540 Kini, apa yang lelaki ini biru sedikit melakukan? 1143 00:46:48,540 --> 00:46:49,810 Nah, dia bidadari. 1144 00:46:49,810 --> 00:46:52,190 Dan mungkin, oren dan ceri - 1145 00:46:52,190 --> 00:46:54,140 mereka sendiri sprites berasingan. 1146 00:46:54,140 --> 00:46:56,980 Dan menggunakan syarat dalam ungkapan Boolean, 1147 00:46:56,980 --> 00:47:00,530 pelajar mungkin dapat untuk meluahkan JIKA lelaki biru adalah 1148 00:47:00,530 --> 00:47:04,590 menyentuh ceri THEN menambah ceri perkataan dengan 1149 00:47:04,590 --> 00:47:07,890 inventori, dan kemudian juga menyembunyikan bidadari ceri. 1150 00:47:07,890 --> 00:47:10,600 Jadi di bawah hood, terdapat mungkin masih ceri 1151 00:47:10,600 --> 00:47:11,350 bidadari di sana. 1152 00:47:11,350 --> 00:47:14,160 Kita baru sahaja diberitahu ia untuk menjadi berkesan ghaib. 1153 00:47:14,160 --> 00:47:16,340 >> Sekarang, jika saya terus berjalan ke sini, kita juga boleh melakukan ini 1154 00:47:16,340 --> 00:47:19,150 perkara proksimal, di mana saya boleh pergi dan membaca tanda. 1155 00:47:19,150 --> 00:47:23,170 Jadi, jika lelaki biru menyentuh tanda, kita boleh mempunyai blok Katakanlah 1156 00:47:23,170 --> 00:47:26,455 hanya seperti kucing bercakap kepada kita dalam perkataan, hello, sebelum ini, "Got 1157 00:47:26,455 --> 00:47:26,880 beberapa buah? 1158 00:47:26,880 --> 00:47:29,290 Bawa ia ke tempat buah-buahan. "Baiklah, jadi sekarang, nampaknya, 1159 00:47:29,290 --> 00:47:30,550 Saya mempunyai arahan saya. 1160 00:47:30,550 --> 00:47:33,050 Saya boleh pergi ke sini ke tempat buah, beratur diri 1161 00:47:33,050 --> 00:47:33,740 dengan pintu. 1162 00:47:33,740 --> 00:47:35,390 Sekarang, saya di sini. 1163 00:47:35,390 --> 00:47:38,120 Saya boleh pergi sehingga kepada lelaki di kaunter. 1164 00:47:38,120 --> 00:47:40,330 Beliau mengesan bahawa saya rapat kepadanya, supaya ia tidak perlu 1165 00:47:40,330 --> 00:47:46,780 agak sepercaman menyentuh, dan saya telah memenangi permainan. 1166 00:47:46,780 --> 00:47:49,890 Jadi ada kita mempunyai Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> Jadi, kita boleh melakukan perkara-perkara yang lebih maju daripada ini. 1168 00:47:52,200 --> 00:47:53,200 Kita boleh menambah bunyi. 1169 00:47:53,200 --> 00:47:54,610 Kita boleh menambah pseudo rawak. 1170 00:47:54,610 --> 00:47:56,260 Kita boleh menambah kerumitan. 1171 00:47:56,260 --> 00:47:58,490 Biar saya teruskan di sini, dan bukannya melakukan ini diri saya, 1172 00:47:58,490 --> 00:48:01,240 izinkan saya menunjukkan kepada anda salah satu penghujahan yang lebih canggih 1173 00:48:01,240 --> 00:48:06,640 kami mendapat tahun lepas daripada seseorang tertentu bernama Blake. 1174 00:48:06,640 --> 00:48:08,910 Bolehkah kita mempunyai satu sukarelawan yang selesa muncul pada 1175 00:48:08,910 --> 00:48:12,600 kamera dan untuk bermain permainan? 1176 00:48:12,600 --> 00:48:13,450 Bagaimana pula di sana? 1177 00:48:13,450 --> 00:48:15,380 Datang di atas. 1178 00:48:15,380 --> 00:48:19,680 Semua hak, jadi permainan yang anda mempunyai hanya disedari 1179 00:48:19,680 --> 00:48:20,780 menawarkan diri untuk bermain - 1180 00:48:20,780 --> 00:48:25,910 [Tepukan] 1181 00:48:25,910 --> 00:48:28,610 DAVID MALAN: - adalah sesuatu yang dari tadi dipanggil 1182 00:48:28,610 --> 00:48:30,100 "Frogger." Apakah nama anda? 1183 00:48:30,100 --> 00:48:30,730 Renda: Renda. 1184 00:48:30,730 --> 00:48:31,050 DAVID MALAN: Redna? 1185 00:48:31,050 --> 00:48:32,530 Renda: Ia seperti Brenda dengan b. 1186 00:48:32,530 --> 00:48:33,190 DAVID MALAN: Okay, Renda. 1187 00:48:33,190 --> 00:48:33,590 Daud. 1188 00:48:33,590 --> 00:48:34,580 Nice to meet you. 1189 00:48:34,580 --> 00:48:38,690 >> Jadi di sini dalam "Frogger," dan jika kita boleh menaikkan kelantangan hanya 1190 00:48:38,690 --> 00:48:39,780 sedikit, anda ini sedikit 1191 00:48:39,780 --> 00:48:41,010 katak hijau di bahagian bawah. 1192 00:48:41,010 --> 00:48:43,940 Anda boleh menggunakan kiri, kanan, atas dan ke bawah, dan matlamat anda adalah untuk 1193 00:48:43,940 --> 00:48:46,510 menyeberangi jalan, menyeberangi sungai, dan menyentuh pad teratai 1194 00:48:46,510 --> 00:48:47,760 di atas. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Satu lagi t - 1197 00:48:54,630 --> 00:48:56,400 buat semula, hak semua? 1198 00:48:56,400 --> 00:48:58,890 Mari kita hit stop. 1199 00:48:58,890 --> 00:49:00,140 Tiada siapa yang melihat bahawa. 1200 00:49:10,470 --> 00:49:12,930 [Tepukan] 1201 00:49:17,023 --> 00:49:17,850 [Tepukan] 1202 00:49:17,850 --> 00:49:19,341 DAVID MALAN: Ya. 1203 00:49:19,341 --> 00:49:20,832 Sangat baik dilakukan. 1204 00:49:20,832 --> 00:49:22,082 Cemerlang, terima kasih. 1205 00:49:27,300 --> 00:49:29,430 >> Supaya ada Frogger. Sekarang anda tahu apa yang anda telah 1206 00:49:29,430 --> 00:49:32,170 mendapat dirimu, sukarelawan satu lagi untuk berbeza 1207 00:49:32,170 --> 00:49:34,910 permainan yang diserahkan oleh pelajar lain. 1208 00:49:34,910 --> 00:49:35,560 Anda mahu datang? 1209 00:49:35,560 --> 00:49:36,576 Apa nama anda? 1210 00:49:36,576 --> 00:49:37,000 RICHARD: Richard. 1211 00:49:37,000 --> 00:49:37,420 DAVID MALAN: Richard. 1212 00:49:37,420 --> 00:49:39,732 Baiklah, Richard, datang pada sehingga. 1213 00:49:39,732 --> 00:49:42,187 [Tepukan] 1214 00:49:45,140 --> 00:49:47,030 DAVID MALAN: Anda mempunyai sesuatu yang akan bunyi 1215 00:49:47,030 --> 00:49:54,180 biasa tidak lama lagi, jadi di sini adalah arahan anda. 1216 00:49:54,180 --> 00:49:56,580 Jadi dalam seketika, beberapa keping teka-teki akan tatal ke atas 1217 00:49:56,580 --> 00:49:58,150 dari skrin yang kelihatan sama ada meninggalkan 1218 00:49:58,150 --> 00:49:59,450 atau kanan atas atau bawah. 1219 00:49:59,450 --> 00:50:01,230 Anda akan perlu menekan kekunci anak panah dalam apa-apa cara 1220 00:50:01,230 --> 00:50:04,540 bahawa ia sepadan dengan orang-orang keping teka-teki yang beratur dengan 1221 00:50:04,540 --> 00:50:05,720 ruang letak di atas. 1222 00:50:05,720 --> 00:50:07,500 Jadi apabila anda melihat anak panah kiri, dan ia garisan dengan kiri 1223 00:50:07,500 --> 00:50:09,260 panah, memukul anak panah kiri. 1224 00:50:09,260 --> 00:50:10,866 Anda boleh mula. 1225 00:50:10,866 --> 00:50:13,674 [MUSIC - "MANTAP" Kayne Barat] 1226 00:51:21,222 --> 00:51:23,470 DAVID MALAN: Semua hak, bulat besar tepukan untuk Richard. 1227 00:51:23,470 --> 00:51:26,082 [Tepukan] 1228 00:51:32,426 --> 00:51:33,720 DAVID MALAN: Sangat baik dilakukan. 1229 00:51:33,720 --> 00:51:34,110 Terima kasih. 1230 00:51:34,110 --> 00:51:37,104 [Tepukan] 1231 00:51:41,600 --> 00:51:44,330 >> DAVID MALAN: menyeronokkan Jadi, seolah-olah, jenis 1232 00:51:44,330 --> 00:51:46,590 menakutkan kerana ia mungkin untuk melaksanakan sesuatu yang 1233 00:51:46,590 --> 00:51:49,550 seolah-olah canggih seperti ini, menyedari bahawa pelajar 1234 00:51:49,550 --> 00:51:51,450 tidak dinyatakan dan hanya menulis ini semua sekali gus. 1235 00:51:51,450 --> 00:51:54,200 Sebaliknya, anda boleh memecahkan masalah kerana seolah-olah kompleks 1236 00:51:54,200 --> 00:51:56,840 kerana ini kepada kepingan yang lebih kecil, dan ini juga adalah 1237 00:51:56,840 --> 00:51:57,560 akan menjadi tema. 1238 00:51:57,560 --> 00:52:00,490 Perkara yang paling buruk yang boleh anda lakukan dalam menulis program dalam kebanyakan mana-mana 1239 00:52:00,490 --> 00:52:03,480 bahasa adalah untuk duduk, mendapat benar-benar teruja, tuliskan 1240 00:52:03,480 --> 00:52:07,200 perkara sialan keseluruhan, dan kemudian hanya berharap bahawa ia berfungsi dengan 1241 00:52:07,200 --> 00:52:08,510 kali anda selesai menulis. 1242 00:52:08,510 --> 00:52:10,920 Sebaliknya, proses pengaturcaraan harus amnya 1243 00:52:10,920 --> 00:52:13,440 sangat sengaja, sangat lelaran, di mana anda hanya 1244 00:52:13,440 --> 00:52:16,955 menetapkan langkah-langkah yang sangat kecil untuk diri kamu sendiri, menggigit-saiz keping 1245 00:52:16,955 --> 00:52:20,070 adakah anda mahu menggigit, dan supaya anda mempunyai kewarasan ini 1246 00:52:20,070 --> 00:52:21,740 cek, pencapaian yang sedikit anda boleh bertemu. 1247 00:52:21,740 --> 00:52:24,170 Dan kemudian anda membina di atas mereka untuk mewujudkan lebih banyak 1248 00:52:24,170 --> 00:52:25,400 perkara canggih masih. 1249 00:52:25,400 --> 00:52:26,820 >> Jadi, sebagai contoh, bagaimana kita boleh pergi kira-kira 1250 00:52:26,820 --> 00:52:28,380 melaksanakan permainan seperti ini? 1251 00:52:28,380 --> 00:52:30,160 Nah, terus-terang, saya pasti akan bermula dengan hanya 1252 00:52:30,160 --> 00:52:32,260 menyokong satu kunci pada satu-satu masa. 1253 00:52:32,260 --> 00:52:34,840 Mari kita hanya melaksanakan sokongan untuk anak panah kiri. 1254 00:52:34,840 --> 00:52:37,610 Jadi pelajar terpaksa entah bagaimana mencipta dalam Photoshop, atau dalam 1255 00:52:37,610 --> 00:52:40,340 Menggaru sendiri menggunakan editor sedikit grafik, 1256 00:52:40,340 --> 00:52:42,680 kekunci anak panah yang kelihatan seperti salah satu di atas kiri sana, hanya 1257 00:52:42,680 --> 00:52:43,910 placeholder kelabu. 1258 00:52:43,910 --> 00:52:46,610 Kemudian pelajar terpaksa memikirkan apa x, y menyelaraskan 1259 00:52:46,610 --> 00:52:48,380 meletakkan ia, di mana untuk meletakkan ia dalam tetingkap. 1260 00:52:48,380 --> 00:52:50,730 0, 0 adalah di sini, jadi anda perlu memikirkan bilangan 1261 00:52:50,730 --> 00:52:53,690 piksel, atau titik, untuk mengimbangi anak panah itu dari 1262 00:52:53,690 --> 00:52:54,800 atas skrin. 1263 00:52:54,800 --> 00:52:57,040 Dan kemudian sekali itu di tempat, program anda tidak sebenarnya 1264 00:52:57,040 --> 00:53:00,380 berbuat apa-apa lagi, jadi anda kemudian perlu bidadari kedua, 1265 00:53:00,380 --> 00:53:04,470 contoh anak panah hijau itu juga menunjuk ke kiri, dan anda 1266 00:53:04,470 --> 00:53:06,710 maka perlu mula menulis beberapa skrip untuk itu. 1267 00:53:06,710 --> 00:53:09,310 >> Dan anda perasan, mungkin, bahawa perkara-perkara ini mula datang pada 1268 00:53:09,310 --> 00:53:11,470 kelajuan yang berbeza, dan warna dalam berbeza 1269 00:53:11,470 --> 00:53:13,750 lokasi, dan itu kerana pelajar yang digunakan sedikit 1270 00:53:13,750 --> 00:53:14,990 rawak pseudo. 1271 00:53:14,990 --> 00:53:17,440 Dan dengan pseudo rawak, saya hanya bermakna memilih nombor 1272 00:53:17,440 --> 00:53:20,230 antara sesuatu dan sesuatu kerana anda boleh 1273 00:53:20,230 --> 00:53:22,890 mula kepada perkara-perkara peta, seperti jika nombor adalah antara satu dan 1274 00:53:22,890 --> 00:53:24,940 lima, baik, mari kita membuat perkara hijau. 1275 00:53:24,940 --> 00:53:28,290 Jika ia adalah antara 6 dan 10, mari kita membuat sekeping teka-teki 1276 00:53:28,290 --> 00:53:29,730 merah sebaliknya. 1277 00:53:29,730 --> 00:53:31,840 Selagi anda mempunyai cara menjana beberapa jenis 1278 00:53:31,840 --> 00:53:34,730 rawak, maka anda boleh membuat keputusan berdasarkan itu 1279 00:53:34,730 --> 00:53:35,260 rawak. 1280 00:53:35,260 --> 00:53:37,490 Dan saya terus berkata pseudo rawak kerana terdapat 1281 00:53:37,490 --> 00:53:38,390 rahsia kotor sedikit. 1282 00:53:38,390 --> 00:53:41,130 Komputer tidak boleh tampil dengan nombor rawak. 1283 00:53:41,130 --> 00:53:42,800 Mereka hanya boleh melakukan apa yang mereka diberitahu kerana 1284 00:53:42,800 --> 00:53:44,110 mereka peranti buatan manusia. 1285 00:53:44,110 --> 00:53:45,880 Mereka tidak boleh hanya meneka nombor seperti kita manusia 1286 00:53:45,880 --> 00:53:46,960 rasa seperti kita boleh. 1287 00:53:46,960 --> 00:53:50,970 Sebuah komputer untuk melakukan sesuatu matematik nampak 1288 00:53:50,970 --> 00:53:53,970 ilusi nombor matematik, kadang-kadang menggunakan 1289 00:53:53,970 --> 00:53:57,420 hari semasa masa sebagai input untuk memikirkan apa 1290 00:53:57,420 --> 00:53:59,570 nombor untuk kembali, tetapi lebih kepada bahawa masa yang lain. 1291 00:53:59,570 --> 00:54:02,060 Buat masa sekarang, hanya tahu bahawa kita boleh menjana rawak pseudo. 1292 00:54:02,060 --> 00:54:04,610 >> Jadi apabila saya mempunyai keupayaan untuk anak panah kiri untuk memulakan 1293 00:54:04,610 --> 00:54:07,990 muncul pada masa yang berlainan dan pada kelajuan yang berbeza, maka 1294 00:54:07,990 --> 00:54:10,230 Saya boleh kembali dan menambah beberapa JIKA keadaan. 1295 00:54:10,230 --> 00:54:14,950 JIKA bidadari ini menyentuh satu lagi, DAN panah kiri 1296 00:54:14,950 --> 00:54:16,330 utama telah ditekan - 1297 00:54:16,330 --> 00:54:17,900 jadi tiga syarat dalam kes itu. 1298 00:54:17,900 --> 00:54:20,750 Saya boleh menggunakan bahawa DAN menyekat mungkin, dalam kes itu - 1299 00:54:20,750 --> 00:54:23,210 Kemudian saya mahu pergi ke depan dan kenaikan skor. 1300 00:54:23,210 --> 00:54:25,130 Dan di atas, kita mempunyai skor, kita mempunyai Awesome, 1301 00:54:25,130 --> 00:54:26,510 Sejuk, Baik, dan Boo. 1302 00:54:26,510 --> 00:54:29,810 Jadi ada nampaknya lima pembolehubah bahawa pelajar ini 1303 00:54:29,810 --> 00:54:32,220 digunakan untuk menjejaki ini pelbagai metrik. 1304 00:54:32,220 --> 00:54:34,180 Jadi dalam jangka pendek, hasil akhir adalah menakjubkan. 1305 00:54:34,180 --> 00:54:37,320 Ia menyeronokkan, ia adalah menyeronokkan untuk bermain, ia menarik, tetapi ini tidak 1306 00:54:37,320 --> 00:54:38,380 mana pelajar bermula. 1307 00:54:38,380 --> 00:54:42,210 Beliau bermula pada set langkah-langkah yang lebih kecil. 1308 00:54:42,210 --> 00:54:44,470 >> Jadi apakah beberapa blok bangunan lain yang boleh kita 1309 00:54:44,470 --> 00:54:45,760 menenun ke dalam program ini? 1310 00:54:45,760 --> 00:54:48,750 Nah, ada konsep lain dalam bahasa yang paling, 1311 00:54:48,750 --> 00:54:50,730 Gores di kalangan mereka, yang dikenali sebagai benang. 1312 00:54:50,730 --> 00:54:54,660 Jadi komputer boleh sebenarnya tidak benar-benar melakukan pelbagai perkara di 1313 00:54:54,660 --> 00:54:56,730 masa, sekurang-kurangnya tidak biasanya. 1314 00:54:56,730 --> 00:54:59,930 Sebaliknya, komputer umumnya mempunyai hanya satu CPU, dan juga 1315 00:54:59,930 --> 00:55:02,230 walaupun komputer super cepat dan boleh, oleh itu, 1316 00:55:02,230 --> 00:55:04,740 mewujudkan ilusi melakukan perkara-perkara sekaligus - 1317 00:55:04,740 --> 00:55:06,180 memeriksa e-mel anda, mendapat segera 1318 00:55:06,180 --> 00:55:07,770 mesej, percetakan dokumen - 1319 00:55:07,770 --> 00:55:11,530 benar-benar, komputer hanya melompat dari percetakan untuk IM 1320 00:55:11,530 --> 00:55:15,160 untuk menghantar e-mel, belakang dan belakang dan belakang dan sebagainya begitu pantas bahawa kita 1321 00:55:15,160 --> 00:55:18,170 perlahan kepala manusia hanya tidak sedar bahawa ia sebenarnya 1322 00:55:18,170 --> 00:55:21,240 menjalankan program-program sedikit pada satu masa. 1323 00:55:21,240 --> 00:55:23,960 Sekarang, ini sedikit putih terletak pada hari ini kerana, pada masa kini, 1324 00:55:23,960 --> 00:55:26,740 banyak komputer kita adalah apa yang dipanggil berbilang teras, jadi anda 1325 00:55:26,740 --> 00:55:29,760 mempunyai satu CPU tetapi pelbagai teras, yang adalah semacam 1326 00:55:29,760 --> 00:55:31,760 mempunyai pelbagai CPU. 1327 00:55:31,760 --> 00:55:35,020 >> Dan jadi kadang-kadang, komputer benar-benar boleh melakukan perkara-perkara pelbagai 1328 00:55:35,020 --> 00:55:38,500 pada satu masa, tetapi secara umumnya dalam program, program 1329 00:55:38,500 --> 00:55:40,200 bergantung kepada perkara-perkara yang dipanggil benang. 1330 00:55:40,200 --> 00:55:43,160 Jadi thread adalah jenis seperti program kecil yang boleh 1331 00:55:43,160 --> 00:55:46,540 wujud bersama-sama program lain kecil dan boleh menjalankan 1332 00:55:46,540 --> 00:55:51,250 secara selari, atau sekurang-kurangnya boleh dijalankan di bawah ilusi bahawa 1333 00:55:51,250 --> 00:55:52,990 mereka sedang berjalan secara serentak. 1334 00:55:52,990 --> 00:55:55,060 Jadi Gores menyokong perkara-perkara yang dipanggil benang. 1335 00:55:55,060 --> 00:55:57,580 Anda boleh mempunyai pelbagai skrip melaksanakan sekali, seperti mana kita 1336 00:55:57,580 --> 00:56:00,220 lakukan dengan singa laut, dan ini membolehkan kita untuk benar-benar 1337 00:56:00,220 --> 00:56:03,620 kemudian mempunyai interaksi antara-sprites. 1338 00:56:03,620 --> 00:56:09,910 Biar saya teruskan di sini dan tarik ke atas, katakan, benang, dan 1339 00:56:09,910 --> 00:56:11,870 bermain ini seperti berikut. 1340 00:56:11,870 --> 00:56:13,950 Kami mempunyai dua sprites, setiap daripada mereka kita akan melihat 1341 00:56:13,950 --> 00:56:15,720 mempunyai hanya satu skrip. 1342 00:56:15,720 --> 00:56:18,000 Dan anda notis nampaknya ada beberapa risikan dalam 1343 00:56:18,000 --> 00:56:21,335 kucing dalam satu ini kerana dia semakin hampir - 1344 00:56:21,335 --> 00:56:21,730 [Roars] 1345 00:56:21,730 --> 00:56:24,540 DAVID MALAN: - dan lebih dekat kepada burung kecil. 1346 00:56:24,540 --> 00:56:26,570 >> Jadi bagaimana operasi burung? 1347 00:56:26,570 --> 00:56:28,200 Nah, mari kita melihat burung pertama. 1348 00:56:28,200 --> 00:56:31,220 Skrip burung berkata apabila bendera hijau diklik, pergi ke x 1349 00:56:31,220 --> 00:56:34,020 sama negatif 115 dan y bersamaan 150. 1350 00:56:34,020 --> 00:56:37,010 Jadi saya hanya menemukan lokasi rawak di mana saya mahu 1351 00:56:37,010 --> 00:56:39,580 burung untuk memulakan, dan saya hanya plopped dia ada secara lalai. 1352 00:56:39,580 --> 00:56:42,800 Kemudian Selamanya JIKA tidak menyentuh kucing, jadi ini adalah berbeza 1353 00:56:42,800 --> 00:56:45,080 jenis membina gelung, tetapi idea yang sama, melakukan ini sekali lagi dan 1354 00:56:45,080 --> 00:56:45,780 lagi dan lagi. 1355 00:56:45,780 --> 00:56:49,410 Selagi anda tidak menyentuh kucing, bergerak tiga langkah, dan 1356 00:56:49,410 --> 00:56:51,680 jika anda berada di melantun pinggir, di mana ia adalah jenis yang 1357 00:56:51,680 --> 00:56:53,320 refleksi dalam erti kata biliard. 1358 00:56:53,320 --> 00:56:56,140 Jadi itulah bagaimana burung bergerak jenis 1359 00:56:56,140 --> 00:56:58,890 seolah-olah secara rawak, tetapi ia hanya kerana ia memantul dari 1360 00:56:58,890 --> 00:57:00,170 dinding dalam kes ini. 1361 00:57:00,170 --> 00:57:03,170 >> Sekarang kucing Sementara itu, adalah jenis menipu. 1362 00:57:03,170 --> 00:57:05,520 Kucing, apabila bendera hijau diklik, ya, bermula pada 1363 00:57:05,520 --> 00:57:07,390 beberapa lokasi, lokasi rawak - 1364 00:57:07,390 --> 00:57:09,590 sekurang-kurangnya di bahagian sebagai satu memilih 1365 00:57:09,590 --> 00:57:11,430 rawak blok hijau di sana - 1366 00:57:11,430 --> 00:57:14,660 dan kemudian Selamanya JIKA menyentuh burung, memainkan bunyi singa, 1367 00:57:14,660 --> 00:57:15,790 dan kemudian berhenti skrip. 1368 00:57:15,790 --> 00:57:18,560 Jadi apabila saya berkata menamatkan, atau keluar sebelum, ada teka-teki 1369 00:57:18,560 --> 00:57:20,600 sekeping dalam Gores yang hanya akan membunuh program itu 1370 00:57:20,600 --> 00:57:22,900 menunjukkan kerana ia adalah jenis logik dilakukan. 1371 00:57:22,900 --> 00:57:25,030 Tetapi sebaliknya, di sini, melihat apa yang akan berlaku. 1372 00:57:25,030 --> 00:57:28,470 Point ke arah burung dan bergerak satu langkah. 1373 00:57:28,470 --> 00:57:31,390 Jadi ini titik ke arah burung adalah jenis kelebihan kucing 1374 00:57:31,390 --> 00:57:34,640 mempunyai bahawa ia adalah homing dalam pada burung bergerak, dan kita boleh 1375 00:57:34,640 --> 00:57:37,370 kini membuat program ini semua lebih menarik. 1376 00:57:37,370 --> 00:57:41,520 Sebaliknya bergerak satu langkah pada satu masa setiap kitaran CPU, setiap 1377 00:57:41,520 --> 00:57:44,280 menyerang tol loceng, jadi untuk bercakap, biarkan saya pergi ke hadapan dan 1378 00:57:44,280 --> 00:57:47,350 bergerak, katakan, lima langkah pada satu masa sebagai kucing. 1379 00:57:47,350 --> 00:57:51,120 Klik berlari, dan kini dia benar-benar mendapati dia dengan cepat. 1380 00:57:51,120 --> 00:57:55,620 Jika kita menggandakan ini lagi kepada 10 langkah, ia jenis pergi 1381 00:57:55,620 --> 00:57:56,370 tepat untuknya. 1382 00:57:56,370 --> 00:57:57,750 Sekarang, kita boleh memberi burung, 1383 00:57:57,750 --> 00:57:59,540 mungkin, sedikit kelebihan. 1384 00:57:59,540 --> 00:58:02,370 Mari kita pergi ke burung itu dan mengatakan sebaliknya bergerak tiga langkah, 1385 00:58:02,370 --> 00:58:07,140 mari kita beralih dia 30 langkah. 1386 00:58:07,140 --> 00:58:08,700 Tetapi dia masih tersangkut di akhir. 1387 00:58:08,700 --> 00:58:10,430 >> Jadi di sini, kita mempunyai dua benang. 1388 00:58:10,430 --> 00:58:13,230 Ia dipenjarakan di Gores dengan dua skrip dan dua 1389 00:58:13,230 --> 00:58:16,150 sprites, tetapi idea dalam bahasa-bahasa lain adalah bahawa anda boleh 1390 00:58:16,150 --> 00:58:19,220 menulis, pada dasarnya, terlalu banyak program seperti ini dan mempunyai 1391 00:58:19,220 --> 00:58:22,950 mereka benar-benar menjalankan, atau imaginarily, selari. 1392 00:58:22,950 --> 00:58:25,280 >> Sekarang, terdapat juga konsep ini dalam pengaturcaraan yang dikenali sebagai 1393 00:58:25,280 --> 00:58:28,010 peristiwa, dan ini adalah sesuatu yang kita tidak akan melihat dalam C, 1394 00:58:28,010 --> 00:58:30,500 bahasa yang dikenali sebagai C. Kita akan melihat ke arah akhir semester 1395 00:58:30,500 --> 00:58:33,240 dalam pengaturcaraan web, apabila kita memperkenalkan JavaScript dan 1396 00:58:33,240 --> 00:58:36,970 tanggapan laman web bangunan yang dinamik dan berinteraksi 1397 00:58:36,970 --> 00:58:37,710 dengan pengguna. 1398 00:58:37,710 --> 00:58:40,430 Jadi dalam kes ini, kita mempunyai contoh yang sangat mudah dua 1399 00:58:40,430 --> 00:58:43,860 sprites, lelaki dan perempuan, setiap daripada mereka mempunyai masing-masing. 1400 00:58:43,860 --> 00:58:48,040 benang, tetapi entah bagaimana kedua-dua saling berkomunikasi dengan cara 1401 00:58:48,040 --> 00:58:49,490 sesuatu yang dipanggil peristiwa. 1402 00:58:49,490 --> 00:58:52,750 Jadi biarlah saya teruskan di sini dan zum di atas skrip budak, 1403 00:58:52,750 --> 00:58:54,050 yang kelihatan seperti ini. 1404 00:58:54,050 --> 00:58:57,510 Apabila bendera hijau diklik, selama-lamanya melakukan yang berikut. 1405 00:58:57,510 --> 00:59:01,510 Jika Angkasa utama, atau Space Bar, ditekan, katakan 1406 00:59:01,510 --> 00:59:03,900 Marco selama dua saat, itu semata-mata estetik pada 1407 00:59:03,900 --> 00:59:06,860 skrin, gelembung ucapan sedikit, tetapi kemudian disiarkan. 1408 00:59:06,860 --> 00:59:09,240 >> Jadi siaran adalah satu lagi Gores itulah 1409 00:59:09,240 --> 00:59:12,050 wakil kelas fungsi dalam pengaturcaraan 1410 00:59:12,050 --> 00:59:15,080 yang membolehkan program yang berbeza, benang yang berbeza, 1411 00:59:15,080 --> 00:59:17,120 antara berkomunikasi, entah bagaimana menghantar 1412 00:59:17,120 --> 00:59:18,520 mesej, satu dengan yang lain. 1413 00:59:18,520 --> 00:59:21,930 Pemergian sehelai kertas di dalam kelas adalah jenis teknologi yang rendah 1414 00:59:21,930 --> 00:59:22,700 setaraf. 1415 00:59:22,700 --> 00:59:24,300 Jadi menyiarkan acara. 1416 00:59:24,300 --> 00:59:26,210 Saya boleh menghantar mesej ini, dan acara perkataan 1417 00:59:26,210 --> 00:59:27,270 sewenang-wenangnya. 1418 00:59:27,270 --> 00:59:30,000 Gores kadang-kadang ini telah surut drop, jadi saya hanya datang 1419 00:59:30,000 --> 00:59:33,230 dengan perkataan rawak seperti acara kerana sekarang, apa yang budak lelaki itu tidak 1420 00:59:33,230 --> 00:59:36,600 apabila saya tekan kekunci adalah dia menyiarkan acara ini. 1421 00:59:36,600 --> 00:59:39,270 Dan jika saya melihat sekarang pada skrip gadis, skrip dia 1422 00:59:39,270 --> 00:59:42,690 super mudah kerana semua yang dia perlu lakukan tidak bertindak apabila 1423 00:59:42,690 --> 00:59:44,100 bendera hijau diklik. 1424 00:59:44,100 --> 00:59:47,910 Dia direka untuk tindakan apabila dia menerima quote, unquote, 1425 00:59:47,910 --> 00:59:51,210 "Peristiwa", dan pada ketika itu, dia mendengar maka 1426 00:59:51,210 --> 00:59:52,960 acara dipanggil lagi dan lagi. 1427 00:59:52,960 --> 00:59:55,790 Sebaik sahaja dia menerima kejadian itu, dia akan menjerit 1428 00:59:55,790 --> 00:59:57,680 Polo untuk dua saat. 1429 00:59:57,680 --> 01:00:01,090 >> Dan supaya anda mungkin boleh membuat kesimpulan daripada ini apa yang 1430 01:00:01,090 --> 01:00:03,190 hasil seterusnya akan menjadi. 1431 01:00:03,190 --> 01:00:04,910 Biar saya klik bendera hijau. 1432 01:00:04,910 --> 01:00:06,610 Tiada apa-apa yang berlaku kerana saya perlu melakukan apa? 1433 01:00:06,610 --> 01:00:07,310 PENONTON: Space Bar. 1434 01:00:07,310 --> 01:00:08,630 DAVID MALAN: Space Bar. 1435 01:00:08,630 --> 01:00:11,990 Boy berkata Marco, gadis berkata Polo. 1436 01:00:11,990 --> 01:00:13,670 Tetapi itu tidak sukar dikodkan per se. 1437 01:00:13,670 --> 01:00:16,740 Itulah antara komunikasi antara skrip, jadi sekarang kita 1438 01:00:16,740 --> 01:00:19,240 mempunyai keupayaan untuk membuat program yang lebih kompleks di mana 1439 01:00:19,240 --> 01:00:22,830 kedua-dua entah bagaimana saling berkomunikasi. 1440 01:00:22,830 --> 01:00:25,260 >> Jadi dalam apa arahan kita boleh mengambil ini? 1441 01:00:25,260 --> 01:00:28,260 Nah, dalam set masalah 0, benar-benar, objektif adalah untuk 1442 01:00:28,260 --> 01:00:29,830 bersenang-senang dengan Scratch. 1443 01:00:29,830 --> 01:00:32,440 Untuk edisi penggodam, sebaliknya anda akan bersenang-senang dengan lebih 1444 01:00:32,440 --> 01:00:35,850 versi canggih Gores dipanggil BYOB, Membina 1445 01:00:35,850 --> 01:00:38,040 Blok Sendiri anda, tetapi idea adalah sama. 1446 01:00:38,040 --> 01:00:38,780 Anda akan dapat - 1447 01:00:38,780 --> 01:00:39,710 Ya, itu adalah disengajakan. 1448 01:00:39,710 --> 01:00:42,450 Ia datang dari Berkeley. 1449 01:00:42,450 --> 01:00:45,200 BYOB adalah versi penggodam edisi ini, tetapi kedua-duanya 1450 01:00:45,200 --> 01:00:48,180 , demografi, edisi dan edisi penggodam standard sama 1451 01:00:48,180 --> 01:00:50,940 matlamat di tangan untuk minggu akan datang adalah benar-benar hanya untuk menyelam di 1452 01:00:50,940 --> 01:00:53,050 mendalam, mendapatkan tangan anda kotor dengan pengaturcaraan, dan membuat 1453 01:00:53,050 --> 01:00:55,240 sesuatu yang menarik, membuat sesuatu yang interaktif, membuat 1454 01:00:55,240 --> 01:00:58,020 sesuatu yang seni, membuat sesuatu yang menyeronokkan untuk benar-benar 1455 01:00:58,020 --> 01:01:01,020 menunjukkan, supaya menjelang akhir minggu ini, anda akan mempunyai projek, 1456 01:01:01,020 --> 01:01:03,770 bukan sahaja bagi pset pertama anda CS50, tetapi anda akan mempunyai 1457 01:01:03,770 --> 01:01:05,620 sesuatu yang sedikit yang anda boleh menunjuk-nunjuk di Annenberg untuk 1458 01:01:05,620 --> 01:01:08,830 rakan-rakan ataupun keluarga dengan memuat naik ke laman web MIT. 1459 01:01:08,830 --> 01:01:11,760 Dan sebagainya seperti yang saya katakan pada hari Rabu, kami menjangkakan 90% kelas, 1460 01:01:11,760 --> 01:01:13,970 secara amnya, untuk melakukan edisi standard. 1461 01:01:13,970 --> 01:01:16,660 Menyedari bahawa terdapat juga ini saluran untuk anda yang 1462 01:01:16,660 --> 01:01:18,990 selainnya mungkin mendapati diri anda sedikit bosan dengan asas-asas 1463 01:01:18,990 --> 01:01:21,650 dan benar-benar mahu untuk menyelam dalam dan kraf penglihatan anda sudah 1464 01:01:21,650 --> 01:01:25,380 dengan latar belakang terlebih dahulu ini lebih mesra 1465 01:01:25,380 --> 01:01:26,240 persekitaran. 1466 01:01:26,240 --> 01:01:29,030 >> Jadi biarlah saya tarik sehingga satu contoh lain bahawa salah satu bekas 1467 01:01:29,030 --> 01:01:33,830 pelajar di sini lakukan dan memberitahu sesuatu yang sedikit melalui lagu. 1468 01:01:33,830 --> 01:01:37,430 Bahawa yang sama, kerana ini bermain, berfikir tentang bagaimana anda pergi tentang 1469 01:01:37,430 --> 01:01:40,520 melaksanakan program ini menggunakan tepat ini sama 1470 01:01:40,520 --> 01:01:44,180 blok bangunan, sedikit rawak pseudo, dan 1471 01:01:44,180 --> 01:01:46,010 sedikit lagu biasa. 1472 01:01:46,010 --> 01:01:47,910 Jika kita boleh meningkatkan kelantangan hanya sedikit? 1473 01:01:47,910 --> 01:01:49,160 [MUSIC - "IT hujan LELAKI" THE GIRLS CUACA] 1474 01:03:02,261 --> 01:03:03,930 >> DAVID MALAN: Itu untuk CS50. 1475 01:03:03,930 --> 01:03:05,860 Kami akan melihat anda pada hari Isnin. 1476 01:03:05,860 --> 01:03:21,152 [Tepukan]