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 - "Happy Sama-sama" ANG pagong] 3 00:01:27,330 --> 00:01:30,170 David MALAN: Ngayon, magsisimula namin ang aming pagtuklas ng 4 00:01:30,170 --> 00:01:32,710 batayan ng computer science at ang aming panimula, 5 00:01:32,710 --> 00:01:35,070 ngayon, sa sining ng programming, na kung saan na 6 00:01:35,070 --> 00:01:36,260 isang halimbawa lamang. 7 00:01:36,260 --> 00:01:39,600 Ngunit sa parehong ugat ng problema paglutas, alam na 8 00:01:39,600 --> 00:01:42,080 Tradisyonal CS50 Puzzle Araw ay bukas. 9 00:01:42,080 --> 00:01:45,190 Kung hindi mo pa RSVPed para sa kaganapang ito, maaari kang pumunta sa 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 Maaari mong dalhin ang mga koponan ng dalawa o tatlo o apat. 12 00:01:50,940 --> 00:01:53,080 Ikaw ay hinamon na may mga problema tulad ng nakita mo 13 00:01:53,080 --> 00:01:54,190 up doon sa simula. 14 00:01:54,190 --> 00:01:57,000 Lahat ng mga bagong mga problema sa taong ito kung ikaw partook nakaraang taon, at ikaw 15 00:01:57,000 --> 00:01:59,680 ay magkaroon ng pagkakataon pagkatapos ay upang manalo ng ilang kamangha-manghang mga premyo. 16 00:01:59,680 --> 00:02:02,750 Kasama ng mga ito, Wii at ilang gift certificate at tulad, 17 00:02:02,750 --> 00:02:05,650 lahat ng habang nakikipag-hang-out kasama ang CS50 mga mag-aaral at mga kaklase 18 00:02:05,650 --> 00:02:07,720 at pizza at Facebook. 19 00:02:07,720 --> 00:02:10,430 Kaya higit pa sa na bukas kung nais mong. 20 00:02:10,430 --> 00:02:13,330 >> Ito pagkatapos ay CS50, para sa mga pagsali sa amin sa 21 00:02:13,330 --> 00:02:14,510 unang pagkakataon. 22 00:02:14,510 --> 00:02:18,030 At alam na ang kursong ito ay partikular na tinutukoy upang makakuha ng 23 00:02:18,030 --> 00:02:22,605 sa pamamagitan ng kursong ito sa panghuling pagtatapos nito, kung saan punto mo 24 00:02:22,605 --> 00:02:24,270 ay hindi lamang isang pag-unawa sa mga ito 25 00:02:24,270 --> 00:02:26,450 batayan ng computer science, ngunit kakailanganin mong 26 00:02:26,450 --> 00:02:29,120 ito praktikal na kasanayan set na maaari mong pagkatapos ay dadalhin pabalik sa 27 00:02:29,120 --> 00:02:31,370 iyong sariling department, kung ito ay ang engineering agham, 28 00:02:31,370 --> 00:02:33,570 applied matematika, ang pisikal na agham, natural 29 00:02:33,570 --> 00:02:34,780 agham, o tulad ng. 30 00:02:34,780 --> 00:02:37,030 Katunayan, kung ano ang kaya kapana-panabik na tungkol sa computer science mga 31 00:02:37,030 --> 00:02:39,900 araw na ito ay lamang kaya naaangkop sa 32 00:02:39,900 --> 00:02:40,990 sa lahat ng mga uri ng mga patlang. 33 00:02:40,990 --> 00:02:46,210 At kahit ngayon, ay lamang namin scratch sa ibabaw ng isang 34 00:02:46,210 --> 00:02:49,020 tradisyonal na programming language kilala bilang C, bibigyan namin 35 00:02:49,020 --> 00:02:51,040 sa halip ay tumingin sa isang bagay na tinatawag scratch, isang bagay na may 36 00:02:51,040 --> 00:02:53,420 kung saan ang kuwento ng pag-ibig na cookie ay ipinatupad ng isa sa iyong mga 37 00:02:53,420 --> 00:02:57,020 predecessors sa mga taon na nakalipas, upang sabihin sa mga kuwento, upang lumikha ng mga laro, 38 00:02:57,020 --> 00:03:00,060 upang lumikha ng interactive art, at aktwal na magsimula sa I-wrap ang aming 39 00:03:00,060 --> 00:03:02,240 isip sa paligid ang ilan sa ang mga pangunahing constructs na 40 00:03:02,240 --> 00:03:05,390 pailalim programming ngunit sa konteksto, tulad ng makikita mo, na 41 00:03:05,390 --> 00:03:09,140 higit na mas mababa nakakatakot, na higit na mas mababa arcane, kaysa sa makikita mo 42 00:03:09,140 --> 00:03:10,140 bago mahaba. 43 00:03:10,140 --> 00:03:12,410 At Napagtanto, masyadong, para sa mga mo pagsali sa amin ito 44 00:03:12,410 --> 00:03:16,170 semestre, ang mga parirala na kung saan namin natapos Miyerkules ng panayam, 45 00:03:16,170 --> 00:03:20,260 ito ay hindi mahalaga kung saan magtapos ka na may kaugnayan sa iyong 46 00:03:20,260 --> 00:03:22,950 mga kaklase sa klase na ito, ngunit kung saan mo, sa pamamagitan ng pagtatapos ng semestre 47 00:03:22,950 --> 00:03:27,190 sa linggo 11, magtapos na may kaugnayan sa iyong sarili karapatang ito napaka araw. 48 00:03:27,190 --> 00:03:32,000 >> Kaya nang walang karagdagang linggal, ito ay din nagkakahalaga noting na 49 00:03:32,000 --> 00:03:34,450 mga mas mababa kumportable, mga saanman sa pagitan, 50 00:03:34,450 --> 00:03:36,825 din, sa pamamagitan ng disenyo ng kursong ito, hindi sa anumang kasahulan 51 00:03:36,825 --> 00:03:38,760 vis-a-vis mga mas kumportable 52 00:03:38,760 --> 00:03:39,920 darating sa klase na ito. 53 00:03:39,920 --> 00:03:41,810 Tulad ng iyong makikita sa ibabaw ng linggo sa darating, mayroon kaming iba't ibang 54 00:03:41,810 --> 00:03:44,600 track para sa disparate background sa likod, ang mga seksyon para sa mga 55 00:03:44,600 --> 00:03:46,500 mas mababa kumportable, mas kumportable, mga isang lugar 56 00:03:46,500 --> 00:03:47,250 sa pagitan. 57 00:03:47,250 --> 00:03:49,520 Tulad ng iyong makikita ito weekend at sa susunod na linggo, ang dalawang bersyon ng 58 00:03:49,520 --> 00:03:52,410 pinaka-set ng problema sa parehong pamantayan at Hacker edisyon upang 59 00:03:52,410 --> 00:03:55,390 mo ang lahat ay maaaring self-piliin ang landas na 60 00:03:55,390 --> 00:03:56,615 ang pinaka kumportable. 61 00:03:56,615 --> 00:03:58,770 >> Kaya ngayon, hindi namin sumisid sa ito programming 62 00:03:58,770 --> 00:04:00,060 wika na tinatawag na sa simula. 63 00:04:00,060 --> 00:04:02,250 Ito ay isang graphical programming wika, at pa ito ay may 64 00:04:02,250 --> 00:04:04,500 parehong mga tampok ng ilan ng mas mataas na antas ng wika ay bibigyan namin 65 00:04:04,500 --> 00:04:07,050 galugarin mamaya sa semestre, kasama ng mga ito C at 66 00:04:07,050 --> 00:04:08,670 JavaScript at PHP. 67 00:04:08,670 --> 00:04:11,890 Subalit upang payagan sa amin upang maiwasan ang ilan ng distractions 68 00:04:11,890 --> 00:04:14,890 maagang ng syntax, ang mga bagay tulad ng mga semicolons, panaklong, 69 00:04:14,890 --> 00:04:17,720 at iba pang arcane detalye na, sa unang tingin, lamang hindi 70 00:04:17,720 --> 00:04:19,916 sa lahat ng intellectually kawili-wili at ay may posibilidad upang makakuha ng sa 71 00:04:19,916 --> 00:04:22,310 ang paraan mula sa ilang pangunahing unawa. 72 00:04:22,310 --> 00:04:24,870 Sa mga tuntunin ng ngayon ang suporta istraktura magpatuloy, natanto ito 73 00:04:24,870 --> 00:04:27,570 tool, CS50 talakayin, na kung saan ay naka-link sa kurso 74 00:04:27,570 --> 00:04:30,320 website mamaya ngayon, online forum ng talakayan sa 75 00:04:30,320 --> 00:04:32,480 kung saan magagawa mong upang magtanong ng bawat isa at 76 00:04:32,480 --> 00:04:35,020 kawani, at ito ay din ng isang tool, dahil kakailanganin namin makita ang susunod na linggo, 77 00:04:35,020 --> 00:04:37,240 na gagamitin namin medyo integratedly 78 00:04:37,240 --> 00:04:38,780 opisina oras pati na rin. 79 00:04:38,780 --> 00:04:41,670 Sa katunayan, mga oras ng opisina nagsisimula sa Lunes, at lantaran, ang unang 80 00:04:41,670 --> 00:04:43,930 linggo ng oras ng opisina ay medyo mababa key. 81 00:04:43,930 --> 00:04:46,820 >> Hindi sa tingin ko makikita mo scratch lahat na hindi naa-access. 82 00:04:46,820 --> 00:04:48,930 Sa halip maliwanag, dahil kakailanganin namin nakikita, at kaya kung ano ang 83 00:04:48,930 --> 00:04:51,380 gagamitin namin ang mga ito para sa ngayon ay i-extract ang ilan sa mga 84 00:04:51,380 --> 00:04:53,990 pangunahing ideya na, pagkatapos, magpumilit sa buong 85 00:04:53,990 --> 00:04:54,900 iba pa ng semestre. 86 00:04:54,900 --> 00:04:57,980 Ngunit simula Lunes, 8:00 PM sa pamamagitan ng 11:00 PM ay 87 00:04:57,980 --> 00:05:01,530 opisina oras sa Annenberg sa paglipas ng utak pahinga. 88 00:05:01,530 --> 00:05:04,490 Sectioning dalawang ay magsisimula ngayong gabi, kaya minsan ito 89 00:05:04,490 --> 00:05:07,260 weekend, pumunta sa cs50.net/section, at bibigyan ka 90 00:05:07,260 --> 00:05:08,530 hihilingin ng isang bilang ng mga tanong. 91 00:05:08,530 --> 00:05:10,290 Kasama ng mga ito, kung paano mo ilarawan ang iyong 92 00:05:10,290 --> 00:05:12,040 antas ng ginhawa sa ngayon? 93 00:05:12,040 --> 00:05:14,450 Walang mahirap, mabilis na tuntunin na kung saan bucket. 94 00:05:14,450 --> 00:05:17,170 Lang ang uri ng bagay na marahil alam kung 95 00:05:17,170 --> 00:05:20,280 ay kabilang sa mga mas mababa ang kumportableng o kung hindi man. 96 00:05:20,280 --> 00:05:21,350 >> At ngayon, walkthroughs. 97 00:05:21,350 --> 00:05:24,020 Ang problema detalye ng hanay para sa linggong ito, parehong pamantayan 98 00:05:24,020 --> 00:05:28,560 at Hacker edisyon magkamukha, ay online sa cs50.net bilang ng ngayon. 99 00:05:28,560 --> 00:05:31,500 At makikita mo na ang unang ng mga edisyon na ito, ang 100 00:05:31,500 --> 00:05:33,940 standard edition sa bawat linggo, sinamahan ng isang bagay na namin 101 00:05:33,940 --> 00:05:36,550 tumawag ng walkthrough ng code, ang session ng pinangunahan ng isa sa mga 102 00:05:36,550 --> 00:05:39,100 Fellows sa kurso ng pagtuturo upang gabayan ka sa pamamagitan ng, magbigay 103 00:05:39,100 --> 00:05:42,290 mga tip sa kumuha ka ng isang partikular na landas pagdating 104 00:05:42,290 --> 00:05:44,150 sa simula ng mga hanay ng problema. 105 00:05:44,150 --> 00:05:46,790 Kaya sa bawat isa sa mga problema nagtatakda, kung sakaling ikaw ay kinakapos 106 00:05:46,790 --> 00:05:50,250 para sa iyong sarili kung saan ko sisimulan, magsisimula ka na may mga 107 00:05:50,250 --> 00:05:50,890 walkthroughs. 108 00:05:50,890 --> 00:05:53,450 At sa katunayan, payagan ako upang ipakilala ang Zamyla Chan, ito 109 00:05:53,450 --> 00:05:55,870 pagtuturo kapwa taon na ay humahantong bawat 110 00:05:55,870 --> 00:05:56,910 isa sa mga walkthroughs. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Palakpakan] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA Chan: Oh, hi, sa lahat. 114 00:06:03,975 --> 00:06:05,130 Ang pangalan ko ay Zamyla. 115 00:06:05,130 --> 00:06:08,250 Ako ng junior pag-aaral engineering sa Winthrop House. 116 00:06:08,250 --> 00:06:10,890 Ngunit kong subukan at magkasya sa loob ng maraming mga kurso computer science bilang ko 117 00:06:10,890 --> 00:06:13,350 kaya, kaya talagang ako nasasabik na humahantong ito 118 00:06:13,350 --> 00:06:14,590 walkthroughs taon. 119 00:06:14,590 --> 00:06:16,950 Walkthroughs, para sa akin, ay isang mahalagang bahagi ng aking CS50 120 00:06:16,950 --> 00:06:17,910 karanasan. 121 00:06:17,910 --> 00:06:22,710 Sa panahon ng walkthrough, para sa bawat p-set, makikita namin pumunta sa pamamagitan ng 122 00:06:22,710 --> 00:06:25,580 nakatakda nang magkasama ang problema, tingnan ang mga problema, ang uri ng 123 00:06:25,580 --> 00:06:27,360 hatiin ang mga ito sa pamahalaang kagat. 124 00:06:27,360 --> 00:06:28,990 Bibigyan kita ng mga tip, mga diskarte, para sa pagkuha 125 00:06:28,990 --> 00:06:30,820 sa pamamagitan at pagsisimula. 126 00:06:30,820 --> 00:06:33,510 Umaasa ako upang makita mo ang lahat sa walkthroughs. 127 00:06:33,510 --> 00:06:34,720 Kung hindi ka maaaring gumawa ng ito sa tao, at pagkatapos ay 128 00:06:34,720 --> 00:06:36,580 mangyaring gawin ang tune sa online. 129 00:06:36,580 --> 00:06:36,840 >> David MALAN: Mahusay. 130 00:06:36,840 --> 00:06:37,950 Salamat sa iyo, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Kaya Napagtanto na ang mga walkthroughs, sa katunayan, sa isang Biyernes 132 00:06:40,870 --> 00:06:43,110 hapon, ngunit ito ay sadyang sa pamamagitan ng disenyo upang ang 133 00:06:43,110 --> 00:06:45,750 kahit na mas gusto mo na hindi dumalo sa mga klase sa Biyernes 134 00:06:45,750 --> 00:06:48,490 hapon, ang mga video ay ang lahat ng mga mas mabilis sa paglipas ng 135 00:06:48,490 --> 00:06:48,990 sa weekend. 136 00:06:48,990 --> 00:06:51,880 Kaya Napagtanto na cs50.net ay ang lahat ng Zamyla 137 00:06:51,880 --> 00:06:53,130 walkthroughs. 138 00:06:54,800 --> 00:06:56,890 At na may petsa ngayon at oras, 03:00, 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 At ang ilan ng Fellows pagtuturo na rin ang handa 141 00:07:00,080 --> 00:07:03,250 ilang remarks para sa iyo sa pagliban upang bigyan ka ng kaunting 142 00:07:03,250 --> 00:07:06,760 pananaw sa kung ano ang kanilang karanasan na nanggagaling sa at 143 00:07:06,760 --> 00:07:08,990 pagpunta ng CS50 ay tulad ng. 144 00:07:08,990 --> 00:07:11,250 Kaya kung kami dim ang mga ilaw para sa sandali lamang, bigyan ko sa iyo 145 00:07:11,250 --> 00:07:18,100 ilan sa CS50 staff ng. 146 00:07:18,100 --> 00:07:20,440 >> Jackson STEINKAMP: kinuha ko ng CS50 nakaraang taon bilang isang primer anyo sa 147 00:07:20,440 --> 00:07:22,880 mahulog, at talagang blew aking isip. 148 00:07:22,880 --> 00:07:25,090 Hindi ko ay kinuha anumang klase ng programming bago, 149 00:07:25,090 --> 00:07:26,380 at hindi kailanman ay dumating sa anumang computer agham 150 00:07:26,380 --> 00:07:27,320 makaranas sa lahat. 151 00:07:27,320 --> 00:07:29,240 At lamang, Narinig ko ang buzz tungkol sa klase at 152 00:07:29,240 --> 00:07:30,050 nagpasya upang dalhin ito. 153 00:07:30,050 --> 00:07:31,780 >> Julia MITELMAN: Ito ay talagang masaya, talagang nakakaengganyo. 154 00:07:31,780 --> 00:07:33,480 Ko pa rin, sa araw na ito - 155 00:07:33,480 --> 00:07:36,560 Ko lang kamakailan Nakita ko ang tumbahin disk na David ay nagbigay sa amin 156 00:07:36,560 --> 00:07:38,140 sa aming unang araw ng panayam. 157 00:07:38,140 --> 00:07:40,020 Ako ay nag-hang ito sa aking wall. 158 00:07:40,020 --> 00:07:42,410 Marahil ito ay isang maliit na nerdy, ngunit ako ay nag-hang sa sa aking 159 00:07:42,410 --> 00:07:46,930 pader sa panahon ng klase bilang isang paalala kung paano cool na ito ay. 160 00:07:46,930 --> 00:07:49,240 >> Travis Downs: kaya nakakahiyang. 161 00:07:49,240 --> 00:07:50,770 >> Jackson STEINKAMP: Computer agham ay isang bagay mo 162 00:07:50,770 --> 00:07:52,370 dapat subukan kahit na ikaw ay hindi isa para sa 163 00:07:52,370 --> 00:07:54,980 ang mga tradisyonal na agham. 164 00:07:54,980 --> 00:07:58,510 Ang sarili nitong karanasan, at CS50 tiyaking handa ka 165 00:07:58,510 --> 00:08:01,520 suportado rin sa pamamagitan nito kasama ang tunay na hukbo ng mga TFs. 166 00:08:01,520 --> 00:08:03,700 >> Ali NAHM: ko kinuha ito bilang isang primer anyo, at kaya ko gumawa ng maraming 167 00:08:03,700 --> 00:08:04,215 ng mga bagong kaibigan. 168 00:08:04,215 --> 00:08:07,170 Nakakuha din ako ipinakilala sa buong konsentrasyon at 169 00:08:07,170 --> 00:08:10,770 buong paaralan ng engineering, at kaya ko lubos na inirerekomenda ito 170 00:08:10,770 --> 00:08:14,360 at tanggapin ka sa aming CS50 pamilya. 171 00:08:14,360 --> 00:08:17,510 >> Nagtuturo YANIV YACOBY: CS50 lang sa iyo kung paano gumamit ng mga tool 172 00:08:17,510 --> 00:08:19,210 na malawak na naa-access. 173 00:08:19,210 --> 00:08:21,840 Kailangan mo lang ng laptop, kailangan mong isang web browser, at 174 00:08:21,840 --> 00:08:26,030 kailangan mong malaman upang magsulat ng ilang mga code, at maaari mong talagang bumuo 175 00:08:26,030 --> 00:08:27,400 kapong baka bagay. 176 00:08:27,400 --> 00:08:31,660 >> Karen XIAO: lang kaya cool na upang gumawa ng isang bagay 177 00:08:31,660 --> 00:08:34,580 at may mga tao na gamitin ito at mayroon ang mga tao na makita ito, at na 178 00:08:34,580 --> 00:08:35,900 kung ano ang gustung-gusto ko talaga tungkol dito. 179 00:08:35,900 --> 00:08:37,429 >> TIM McLaughlin: - isang pakiramdam ng komunidad, tingin ko, sa ganitong 180 00:08:37,429 --> 00:08:39,470 kurso higit pa kaysa sa anumang iba pang mga kurso ko na kinuha sa ngayon. 181 00:08:39,470 --> 00:08:41,350 Hindi ka lang pagkuha ng isa pang - 182 00:08:41,350 --> 00:08:42,740 hindi ka pagpuno ng isa pang kinakailangan. 183 00:08:42,740 --> 00:08:45,310 Hindi ka lamang pagpunta sa aralin at pagpunta sa seksyong. 184 00:08:45,310 --> 00:08:49,630 Ngunit ginagawa tonelada ng mga bagay na ang lahat tungkol sa 185 00:08:49,630 --> 00:08:51,560 programming at lahat ng tungkol sa teknolohiya, ngunit hindi 186 00:08:51,560 --> 00:08:53,090 talagang nararamdaman tulad ng isang klase karamihan ng oras. 187 00:08:53,090 --> 00:08:55,012 >> Travis down: At sa unang araw, sila ipinasa ang cake, at 188 00:08:55,012 --> 00:08:56,215 Agad na ako ay ibinebenta. 189 00:08:56,215 --> 00:08:57,822 >> Jacob PRITT: Libreng kendi at pizza. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA Chan: - hindi alintana ng iyong antas ng interes, sa tingin ko 191 00:08:59,820 --> 00:09:05,170 na CS50, makikita mo magsaya, at makikita mo intellectually 192 00:09:05,170 --> 00:09:06,070 stimulated. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-Smith: Ito ay palaging isang partido sa klase, at ito ay isang 194 00:09:07,926 --> 00:09:09,990 party na gabi-gabi na nagtatrabaho sa iyong p-set. 195 00:09:09,990 --> 00:09:11,880 >> Jackson STEINKAMP: Sa bawat oras na tapusin ka ng problema sa set, 196 00:09:11,880 --> 00:09:13,710 ay pakiramdam tulad mo natapos ang proyekto. 197 00:09:13,710 --> 00:09:16,580 >> Melissa NIU: Ito ay presman taon, at ako ay tapos shopping. 198 00:09:16,580 --> 00:09:19,030 Mayroon akong aking apat na klase handa, at ko sa Annenberg. 199 00:09:19,030 --> 00:09:21,670 At maingay ako sa isang kaibigan, at sabi niya, hey, ako pamimili 200 00:09:21,670 --> 00:09:24,330 klase na ito ay tinatawag na ng CS50, at dapat mong sumama sa akin. 201 00:09:24,330 --> 00:09:28,150 Natapos pagkuha ito na pagkahulog, at pagkatapos ng klase iyon, ako 202 00:09:28,150 --> 00:09:30,510 Naisip siguro ako pupunta sa menor de edad sa CS. 203 00:09:30,510 --> 00:09:33,760 Ngunit dito ako, tatlong taon mamaya, pa rin ang pag-aaral ng computer 204 00:09:33,760 --> 00:09:36,680 agham at na aktwal na gawin ito bilang isang pangunahing, at mahal ko bawat 205 00:09:36,680 --> 00:09:37,780 sandali nito. 206 00:09:37,780 --> 00:09:39,030 >> Rob BOWDEN: Wala akong palagay. 207 00:09:46,408 --> 00:09:48,060 >> Ali NAHM: natin makita. 208 00:09:48,060 --> 00:09:49,200 >> Melissa NIU: hibang. 209 00:09:49,200 --> 00:09:50,610 >> Speaker 1: Pakiramdam ko ay tulad ng gusto ko napaka klisey. 210 00:09:50,610 --> 00:09:52,530 Gusto ko lang sabihin, i, kahanga-hangang. 211 00:09:52,530 --> 00:09:53,540 >> YANIV YACOBY: Accessibility. 212 00:09:53,540 --> 00:09:55,080 >> Jacob PRITT: Libreng kendi at pizza. 213 00:09:55,080 --> 00:09:57,310 >> Travis Downs: Hindi ma-i-isang klase na kamay out cake. 214 00:09:57,310 --> 00:09:58,510 >> TIM McLaughlin: energetic. 215 00:09:58,510 --> 00:10:00,040 >> VIPUL SHEKHAWAT: Essential. 216 00:10:00,040 --> 00:10:02,636 >> Rob BOWDEN: Hayaan akong sa tingin ng isang sagot. 217 00:10:02,636 --> 00:10:04,480 Tingin ko Nakatanggap ako ng isang bagay. 218 00:10:04,480 --> 00:10:07,092 Oh, diyos. 219 00:10:07,092 --> 00:10:13,370 Oo, Rob Bowden aking pangalan, at ito ay CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Palakpakan] 221 00:10:20,810 --> 00:10:23,390 David MALAN: Lahat ng karapatan, kaya sabihin simulan upang ipinta ang isang larawan 222 00:10:23,390 --> 00:10:26,230 ng direksyon kung saan maaari naming pumunta, at sabihin ipakilala 223 00:10:26,230 --> 00:10:28,190 konseptong ito dito kilala bilang pseudocode. 224 00:10:28,190 --> 00:10:29,560 Kaya pseudocode ay hindi isang programming 225 00:10:29,560 --> 00:10:30,810 wika unto mismo. 226 00:10:30,810 --> 00:10:33,250 Walang teknikal per se, ngunit ito lamang ang uri ng 227 00:10:33,250 --> 00:10:36,490 pangkalahatang paraan ng pagpapahayag ng iyong sarili medyo tiyak, 228 00:10:36,490 --> 00:10:39,730 medyo algorithm, medyo procedurally, ngunit walang 229 00:10:39,730 --> 00:10:42,570 kinakailangang mag-alala tungkol sa anong wika ang iyong pagpapahayag 230 00:10:42,570 --> 00:10:43,150 iyong sarili. 231 00:10:43,150 --> 00:10:46,280 Ang ilang modelo ng Ingles at mga wika ng programming gamit ang 232 00:10:46,280 --> 00:10:48,790 na mangyari mong maging pamilyar, upang maaari naming simulan 233 00:10:48,790 --> 00:10:50,600 pagsusulat ng ganitong uri ng bagay habang namin. 234 00:10:50,600 --> 00:10:54,450 At sa katunayan, Joseph, maaari ko bang hiramin up ka sa entablado upang maging 235 00:10:54,450 --> 00:10:55,490 tagasulat dito? 236 00:10:55,490 --> 00:11:00,130 Nawala ko na magpatuloy dito nang maaga at nakalimutan upang ilagay 237 00:11:00,130 --> 00:11:02,920 sa ilang mga medyas ngayon, at ito makikita sa aming higit pa 238 00:11:02,920 --> 00:11:03,780 katawa-tawa halimbawa. 239 00:11:03,780 --> 00:11:04,580 >> Ngayon, kailangan ko na sa paglipas dito. 240 00:11:04,580 --> 00:11:05,630 Kukunin ko na gawin ang mga bahagi ng mga medyas. 241 00:11:05,630 --> 00:11:08,040 Kaya dito kami ay may isang maliit na scratch pad. 242 00:11:08,040 --> 00:11:09,940 Ito ay literal lamang TextEdit sa isang Mac. 243 00:11:09,940 --> 00:11:12,270 Namin ay hindi aktwal na pagpunta sa magsulat ng isang runnable programa, ngunit 244 00:11:12,270 --> 00:11:14,220 lang kami upang simulan ang sketching ang pseudocode batay sa 245 00:11:14,220 --> 00:11:17,830 sa ilan ng payo na ibinigay mo sa akin dito. 246 00:11:17,830 --> 00:11:20,760 Kaya dito ay ang aking tumpok ng mga medyas sa bahay. 247 00:11:20,760 --> 00:11:23,320 Wala akong mga medyas sa kapag gisingin ko up sa umaga, at na namin ngayon 248 00:11:23,320 --> 00:11:26,280 kailangang magsulat ng isang programa, isang algorithm ng mga uri, na kung saan 249 00:11:26,280 --> 00:11:27,900 upang makakuha ng mga medyas na ito sa aking mga paa. 250 00:11:27,900 --> 00:11:30,860 At sa kahabaan ng paraan, sabihin makita kung trip namin, o makaharap, 251 00:11:30,860 --> 00:11:32,860 ilan sa mga ideya na kayo ay pagpunta upang magsimula 252 00:11:32,860 --> 00:11:35,470 pag-iisip tungkol sa mas sineseryoso kapag programa 253 00:11:35,470 --> 00:11:37,950 baka ang iyong mga programa ay hindi kumilos medyo gaya ng nilalayon. 254 00:11:37,950 --> 00:11:39,580 >> Kaya umupo ako pababa dito. 255 00:11:39,580 --> 00:11:41,180 Mayroon akong aking tumpok ng mga medyas. 256 00:11:41,180 --> 00:11:43,780 Ano ang unang bagay na isang makatuwirang tao gagawin 257 00:11:43,780 --> 00:11:46,600 gawin kapag ang layunin ay upang ilagay sa isang pares ng medyas? 258 00:11:46,600 --> 00:11:49,190 May ninyo ako ng isang hakbang, at isang hakbang lamang. 259 00:11:49,190 --> 00:11:49,796 Oo? 260 00:11:49,796 --> 00:11:50,690 Madla: Bend pababa. 261 00:11:50,690 --> 00:11:54,290 David MALAN: Bend pababa, Okay. 262 00:11:54,290 --> 00:11:55,540 Hakbang dalawang. 263 00:11:59,975 --> 00:12:00,645 Hakbang dalawang. 264 00:12:00,645 --> 00:12:01,840 Madla: Piliin ang iyong sumuntok. 265 00:12:01,840 --> 00:12:03,220 David MALAN: Piliin ang iyong sumuntok. 266 00:12:03,220 --> 00:12:07,610 Okay, kaya bahagyang kalabuan dito, at ito ay isa sa mga unang 267 00:12:07,610 --> 00:12:09,380 stumbling bloke na kami ay dapat mong sadyang 268 00:12:09,380 --> 00:12:10,290 nakatagpo dito. 269 00:12:10,290 --> 00:12:14,110 Ito ay isang maliit na hindi maliwanag, kaya kunin ang iyong sumuntok. 270 00:12:14,110 --> 00:12:17,425 Fine, kukunin ko na ang isang ito, ngunit computer ng, Napagtanto sa loob lamang ng 271 00:12:17,425 --> 00:12:20,420 bit, ay hindi na uri ng tao na likas na hilig sa makatarungan 272 00:12:20,420 --> 00:12:21,490 piliin ang pinakamalapit na isa. 273 00:12:21,490 --> 00:12:23,590 Kami ay pagpunta sa upang magsimula, bago mahaba, pagpapahayag 274 00:12:23,590 --> 00:12:24,610 ating sarili mas tiyak. 275 00:12:24,610 --> 00:12:26,600 >> Lahat ng karapatan, kaya hakbang dalawang kunin ang iyong sumuntok. 276 00:12:26,600 --> 00:12:27,520 Namin ito. 277 00:12:27,520 --> 00:12:28,620 Hakbang tatlong. 278 00:12:28,620 --> 00:12:29,532 Sa likod. 279 00:12:29,532 --> 00:12:30,900 Madla: Maghanap ng pagtutugma ng pares. 280 00:12:30,900 --> 00:12:32,060 David MALAN: Maghanap ng mga pagtutugma pares. 281 00:12:32,060 --> 00:12:34,740 Okay, sa gayon ito ay mabuti. 282 00:12:34,740 --> 00:12:35,650 Mayroon akong upang piliin ang sumuntok. 283 00:12:35,650 --> 00:12:39,200 Kaya ang layunin ay upang makahanap ng pagtutugma suntukin, ngayon, ngunit kung ano ang 284 00:12:39,200 --> 00:12:39,990 ay na ibig sabihin nito? 285 00:12:39,990 --> 00:12:42,130 Ang isang makatuwirang tao, tulad ng sa Miyerkules kapag ko lang 286 00:12:42,130 --> 00:12:44,700 alam kung paano mahanap ang Mike Smith sa isang libro ng telepono, uri ng 287 00:12:44,700 --> 00:12:45,640 nagpunta sa kanilang mga likas na hilig. 288 00:12:45,640 --> 00:12:49,220 Ngunit dito, malinaw naman ito sumuntok dito, ngunit isang computer 289 00:12:49,220 --> 00:12:51,350 hindi kaya katutubo. 290 00:12:51,350 --> 00:12:53,830 Computer na ay pagpunta sa magkaroon ng isang koleksyon ng mga bits, bilang namin 291 00:12:53,830 --> 00:12:55,380 tinalakay sa Miyerkules, at mga ay 292 00:12:55,380 --> 00:12:56,710 nakaayos sa paanuman sa memorya. 293 00:12:56,710 --> 00:13:00,400 Ngunit ang punto ay computer na iyon ay may lamang ang kakayahang 294 00:13:00,400 --> 00:13:03,390 upang tingnan ang mga bagay nang paisa-isa, at sa katunayan, kahit kami 295 00:13:03,390 --> 00:13:05,980 tao - kahit na ito nararamdaman tulad ko glanced down at may split 296 00:13:05,980 --> 00:13:08,900 pangalawang mamaya ko malalaman kung saan ay ang suntukin, ang aking utak at ang aking mga mata 297 00:13:08,900 --> 00:13:12,000 siguro ay isang mabilis sagap ng mga medyas, at pagkatapos ay latched 298 00:13:12,000 --> 00:13:13,400 sa ang isa sa pinag-uusapan. 299 00:13:13,400 --> 00:13:15,780 >> Kaya kung namin ang lahat ng mga mas sinasadya ngayon bilang isang computer, 300 00:13:15,780 --> 00:13:17,780 paano ko mahanap ang pagtutugma pares? 301 00:13:17,780 --> 00:13:18,890 Well, mayroon kaming upang umulit. 302 00:13:18,890 --> 00:13:21,440 Mayroon kaming marahil loop sa paglipas ng ito gulo ng mga medyas sa 303 00:13:21,440 --> 00:13:25,760 palapag kung saan sinasabi ko isang bagay tulad ng PARA SA BAWAT suntukin, pumili ito 304 00:13:25,760 --> 00:13:30,195 up, AT KUNG ang parehong hugis at laki bilang sa iba pang mga, pagkatapos 305 00:13:30,195 --> 00:13:32,150 tuldok, tuldok, tuldok, ipagpapatuloy namin ang kuwento. 306 00:13:32,150 --> 00:13:34,430 Kaya para sa bawat suntukin, kaya ko kunin ang isang ito. 307 00:13:34,430 --> 00:13:36,520 Check ko ay ang katumbas ng isang ito. 308 00:13:36,520 --> 00:13:38,250 Hindi ito, kaya ko bang ilagay muna panig. 309 00:13:38,250 --> 00:13:39,220 Pagkatapos ko umulit muli. 310 00:13:39,220 --> 00:13:40,340 Ay ito isang katumbas? 311 00:13:40,340 --> 00:13:42,010 Hindi, hindi ito, kaya ko bang ilagay ito muna. 312 00:13:42,010 --> 00:13:42,710 Ang isa na ito? 313 00:13:42,710 --> 00:13:43,200 Hindi. 314 00:13:43,200 --> 00:13:43,670 Ang isang ito? 315 00:13:43,670 --> 00:13:44,520 Hindi, at iba pa. 316 00:13:44,520 --> 00:13:48,730 At pagkatapos ay sa wakas, sana, ako nakatagpo ito sumuntok dito. 317 00:13:48,730 --> 00:13:51,350 Kaya kung ito ay ang parehong hugis, laki, dalhin ito. 318 00:13:51,350 --> 00:13:53,980 >> At ngayon, kung ano ang aming susunod na hakbang dito? 319 00:13:53,980 --> 00:13:54,402 Oo? 320 00:13:54,402 --> 00:13:56,090 Madla: Kilalanin mula sa kaliwa. 321 00:13:56,090 --> 00:13:58,980 David MALAN: Okay, kilalanin kanan at kaliwa, kaya 322 00:13:58,980 --> 00:14:01,870 masuwerte, na uri ng mga gawa. 323 00:14:01,870 --> 00:14:04,020 Ang isang maliit na simetriko, o ko na lang pagod sila ng paraan na. 324 00:14:04,020 --> 00:14:07,020 Lahat ng karapatan, kaya nakilala ko ang karapatan ng. 325 00:14:07,020 --> 00:14:09,980 At ngayon, bago tayo magpatuloy, hayaan mo akong ituro kung ano Joseph ng 326 00:14:09,980 --> 00:14:12,890 na ginagawa dito bilang uri ng isang dalubhasa programista. 327 00:14:12,890 --> 00:14:15,800 Kaya muli, walang isang paraan ng paggawa nito, ngunit lampas lamang 328 00:14:15,800 --> 00:14:18,480 pagnunumero ang mga linya, Joseph na nagsimula na gawin ito 329 00:14:18,480 --> 00:14:19,460 uri ng indentation. 330 00:14:19,460 --> 00:14:21,950 Sa katunayan, ito ay isang karaniwang convention sa programming, 331 00:14:21,950 --> 00:14:26,110 kung saan kapag mo ng isang bagay na umuulit, looping estilo, tulad ng 332 00:14:26,110 --> 00:14:28,480 kami ay nagpapahiwatig sa Ingles parirala "PARA SA BAWAT 333 00:14:28,480 --> 00:14:31,090 suntukin, "ang convention sa pseudocode at, dahil kakailanganin namin nakikita, 334 00:14:31,090 --> 00:14:33,410 normal programming wika, ay lang i-indent. 335 00:14:33,410 --> 00:14:36,240 Pindutin ang space bar ng ilang beses, pindutin ang Tab key o ang tulad ng, 336 00:14:36,240 --> 00:14:40,660 kaya na nested sa ilalim ng "PARA SA BAWAT sumuntok" ang tipak ng 337 00:14:40,660 --> 00:14:43,430 bagay-bagay na kailangan mong gawin bilang isang resulta ng loop na. 338 00:14:43,430 --> 00:14:45,940 Kaya na ng lahat na conveying magkakahulugang mga. 339 00:14:45,940 --> 00:14:48,620 Ngayon samantala, ang "Kung ito ay ang parehong hugis at laki," ang 340 00:14:48,620 --> 00:14:51,590 katotohanan na "Dalhin ito" ay naka-indent sa karagdagang lamang ay nangangahulugan 341 00:14:51,590 --> 00:14:54,370 na ang tanging bagay na dapat mong gawin kung na kondisyon, 342 00:14:54,370 --> 00:14:59,770 kung na sangay, na tinidor sa kalsada, ay sa katunayan totoo. 343 00:14:59,770 --> 00:15:02,130 >> Kaya ngayon dito, hindi namin sa hakbang na apat, kilalanin ang kanan at kaliwang. 344 00:15:02,130 --> 00:15:03,410 Nakilala ko ang kanan. 345 00:15:03,410 --> 00:15:05,150 Ninyo akong bigyan hakbang ang limang. 346 00:15:05,150 --> 00:15:07,880 At technically, maaari naming talagang tumawag 347 00:15:07,880 --> 00:15:09,510 ang PARA SA BAWAT bagay - 348 00:15:09,510 --> 00:15:11,450 dapat mong marahil numero ng lahat ng mga linya kung 349 00:15:11,450 --> 00:15:12,190 kami ay pagpunta sa gawin ito. 350 00:15:12,190 --> 00:15:14,006 Joseph: [hindi marinig] 351 00:15:14,006 --> 00:15:14,610 David MALAN: [hindi marinig]? 352 00:15:14,610 --> 00:15:16,070 Okay, fine, ang lahat ng karapatan, makikita namin gawin ito ang iyong paraan. 353 00:15:16,070 --> 00:15:19,590 Lahat ng karapatan, kaya hakbang limang, kung paano ang gagawin namin ang karapatan na suntukin? 354 00:15:19,590 --> 00:15:22,310 Paano kami magpatuloy sa susunod, dito? 355 00:15:22,310 --> 00:15:22,730 Oo? 356 00:15:22,730 --> 00:15:24,300 Madla: elevator ng kanang binti. 357 00:15:24,300 --> 00:15:27,100 David MALAN: elevator ng kanang binti, Okay. 358 00:15:27,100 --> 00:15:29,330 Hakbang anim? 359 00:15:29,330 --> 00:15:30,728 Mabilis. 360 00:15:30,728 --> 00:15:31,202 Oo. 361 00:15:31,202 --> 00:15:33,100 Madla: Maghanap ng isang bukas na dulo ng sumuntok. 362 00:15:33,100 --> 00:15:34,440 David MALAN: Okay, hanapin ang bukas na dulo ng sumuntok. 363 00:15:34,440 --> 00:15:34,840 Kaya mabuti. 364 00:15:34,840 --> 00:15:37,180 Kaya dito, totoo lang, karaniwang likas na ugali ay lamang na 365 00:15:37,180 --> 00:15:39,880 ilagay sa kanang suntukin, ngunit na masyadong ay medyo malabo. 366 00:15:39,880 --> 00:15:42,750 Maliban kung ang computer o tao alam kung ano mismo ang ay nangangahulugan na, 367 00:15:42,750 --> 00:15:45,160 hindi ito upang maisagawa na, kaya dito, nag ko 368 00:15:45,160 --> 00:15:46,520 natagpuan ang pagbubukas ng stock. 369 00:15:46,520 --> 00:15:48,222 Hakbang pitong? 370 00:15:48,222 --> 00:15:49,700 Madla: Pindutin ang iyong mga paa. 371 00:15:49,700 --> 00:15:51,070 David MALAN: Touch paa. 372 00:15:51,070 --> 00:15:53,546 Okay, kaya ngayon namin pumunta - 373 00:15:53,546 --> 00:15:56,480 Lahat ng karapatan, ako pagpunta sa tumagal ng ilang mga kalayaan dito. 374 00:15:56,480 --> 00:15:57,110 Salamat. 375 00:15:57,110 --> 00:15:59,210 Hakbang walong? 376 00:15:59,210 --> 00:16:00,060 Ilagay sa sumuntok. 377 00:16:00,060 --> 00:16:02,060 Okay, kaya ngayon ako, sa tingin hindi namin malapit sapat upang pag-uri-uriin ng tumagal 378 00:16:02,060 --> 00:16:03,480 ito isa sa bahay. 379 00:16:03,480 --> 00:16:05,980 Karapatan lahat, kaya ito ay lumagpas. 380 00:16:05,980 --> 00:16:07,950 Kukunin ko ang ilang mga kalayaan sa kung ano ang ibig sabihin nito, aktwal na. 381 00:16:07,950 --> 00:16:08,920 Ilagay ang sumuntok sa. 382 00:16:08,920 --> 00:16:10,853 Lahat ng karapatan, ngayon hakbang sa siyam? 383 00:16:10,853 --> 00:16:11,740 Madla: Ilagay ang paa pababa. 384 00:16:11,740 --> 00:16:12,510 David MALAN: Salamat sa iyo. 385 00:16:12,510 --> 00:16:15,610 Hakbang siyam, ilagay paa, at ngayon, maaari naming ulitin. 386 00:16:15,610 --> 00:16:19,540 Kaya siguro, maaari na namin ngayon pumunta sa hakbang 10 at sabihin kilalanin 387 00:16:19,540 --> 00:16:21,960 pakaliwa suntukin, ngunit na baka pa nagagawa. 388 00:16:21,960 --> 00:16:24,100 >> At kaya pagkatapos, ang maaari kong pag-uri-uriin ng ulitin ang mga hakbang na ito. 389 00:16:24,100 --> 00:16:25,260 Ngunit ang ganitong uri ng begs ang tanong. 390 00:16:25,260 --> 00:16:28,100 Bago, ang huling oras na namin nais upang ulitin ang isang bagay, kami 391 00:16:28,100 --> 00:16:30,730 ginawa ito iteratively, muli at muli, PARA 392 00:16:30,730 --> 00:16:32,660 Loop BAWAT upang magsalita. 393 00:16:32,660 --> 00:16:36,420 Gusto ito gumawa ng kahulugan upang gamitin ang isang loop upang pangasiwaan ang parehong 394 00:16:36,420 --> 00:16:38,470 sa kaliwa at ang karapatan na suntukin? 395 00:16:38,470 --> 00:16:40,460 Dahil ito nararamdaman tulad ng mga pagpapatakbong ito ay medyo mas 396 00:16:40,460 --> 00:16:43,090 magkakahawig maliban para sa katotohanan na isa nagsisimula dito at isa 397 00:16:43,090 --> 00:16:44,850 nagsisimula dito? 398 00:16:44,850 --> 00:16:47,400 Ginagawa namin loop, o namin lamang panatilihin ang pagsusulat ng mga hakbang 399 00:16:47,400 --> 00:16:48,745 10 at 11 at 12? 400 00:16:48,745 --> 00:16:50,540 Madla: Loop. 401 00:16:50,540 --> 00:16:52,240 >> David MALAN: Okay, kaya loop. 402 00:16:52,240 --> 00:16:54,730 Ko aktwal na maaaring sinabi lamang panatilihin ang pagpunta. 403 00:16:54,730 --> 00:16:55,720 Kaya bakit ito ang kaso? 404 00:16:55,720 --> 00:16:57,940 Well, ito ay talagang ang unang ng aming di-halata 405 00:16:57,940 --> 00:17:01,210 disenyo ng mga desisyon, at sa katunayan, ang isa sa ang mga sukatan na kung saan 406 00:17:01,210 --> 00:17:03,990 sisimulan namin upang pag-aralan, para sa ating sarili at para sa iyo, ang 407 00:17:03,990 --> 00:17:06,780 kalidad ng isang programa ay lamang kung gaano kahusay na dinisenyo ito ay. 408 00:17:06,780 --> 00:17:09,619 Nagawa mo sa kaunting halaga ng trabaho na kinakailangan upang 409 00:17:09,619 --> 00:17:12,480 makapag-trabaho ang tapos na ang pinaka-mabilis, alinman sa mga tuntunin ng 410 00:17:12,480 --> 00:17:15,430 ang iyong oras o sa mga tuntunin ng tumatakbo oras ng computer? 411 00:17:15,430 --> 00:17:17,589 Gaano karaming mga pagpapatakbo ang tumatagal upang maisagawa? 412 00:17:17,589 --> 00:17:20,180 Sa arguably, ito ay isang pagkakataon para sa isang loop dahil 413 00:17:20,180 --> 00:17:22,829 sa lalong madaling sisimulan ko ang pagkopya at pag-paste, bilang Joseph epektibong 414 00:17:22,829 --> 00:17:25,010 gagawin simulan ang paggawa sa isang sandali, ikaw ay ang uri ng pag-aaksaya iyong 415 00:17:25,010 --> 00:17:27,140 oras, at ikaw ay doble nagpapahayag. 416 00:17:27,140 --> 00:17:30,260 >> Ngunit sa parehong panahon, ito ay talagang lamang dalawang espesyal na 417 00:17:30,260 --> 00:17:31,890 kaso, kaliwa at kanan. 418 00:17:31,890 --> 00:17:34,930 At samantalang bago, maaari ba akong magkaroon ng 10 o 20 o higit pang mga medyas sa 419 00:17:34,930 --> 00:17:37,960 isang tumpok, talagang saysay hindi sa 50 linya ng 420 00:17:37,960 --> 00:17:40,180 code sinasabi check suntukin ito, pagkatapos ay sa susunod na, 421 00:17:40,180 --> 00:17:41,300 pagkatapos ng susunod na isa. 422 00:17:41,300 --> 00:17:43,450 Dito, isang maliit na mas mababa halata, at Gusto ko ipinanukalang 423 00:17:43,450 --> 00:17:44,390 na maaari naming pumunta alinman paraan. 424 00:17:44,390 --> 00:17:46,720 Maaari kaming magkaroon ng loop na iyon, bagaman ito lamang loop 425 00:17:46,720 --> 00:17:50,620 dalawang beses, o maaari lamang namin kopyahin at i-paste lang ng kaunti 426 00:17:50,620 --> 00:17:53,270 dito upang makakuha ng trabaho ang nagawa. 427 00:17:53,270 --> 00:17:55,210 Ngunit ang program na ito ay maraming surot, kaya na magsalita. 428 00:17:55,210 --> 00:17:59,120 Maaaring magkaroon ang ilang mga pagkakamali, mga error, o mga kaso ng sulok, kaya 429 00:17:59,120 --> 00:18:00,860 magsalita, na hindi namin ay talagang inaasahan. 430 00:18:00,860 --> 00:18:03,400 Walang nangyaring mali oras na ito, ngunit kung ano ang maaaring maling naganap 431 00:18:03,400 --> 00:18:06,100 habang execute ang program na ito? 432 00:18:06,100 --> 00:18:07,040 Madla: Wala kang anumang mga medyas. 433 00:18:07,040 --> 00:18:08,980 >> David MALAN: Kaya hindi medyas doon anumang. 434 00:18:08,980 --> 00:18:10,380 Kaya sabihin isaalang-alang na sulok kaso. 435 00:18:10,380 --> 00:18:14,670 Kaya kung maaari kaming mag-scroll bumalik sa hakbang ng isa, kaya hakbang sa isa ay 436 00:18:14,670 --> 00:18:16,540 yumuko down, kaya na sumusuri kung. 437 00:18:16,540 --> 00:18:21,250 Hakbang dalawa, kunin ang iyong suntukin, ngunit pagkatapos ay mahanap ang pagtutugma ng suntukin, 438 00:18:21,250 --> 00:18:22,420 kilalanin kanan. 439 00:18:22,420 --> 00:18:25,050 Namin uri ng ginawa ng buong bungkos ng mga pagpapalagay, at ito ay, 440 00:18:25,050 --> 00:18:27,720 lantaran, bakit programa minsan pag-crash ng. 441 00:18:27,720 --> 00:18:30,240 Kung ikaw, programmer, na ginawa ng ilang mga pagpapalagay, tulad ng 442 00:18:30,240 --> 00:18:33,000 tiyak mayroong pagpunta sa medyas o tiyak mayroong pagpunta 443 00:18:33,000 --> 00:18:35,310 sa memory pakaliwa sa computer, tiyak na mayroong pagpunta 444 00:18:35,310 --> 00:18:37,420 disk space kaliwa sa hard drive - 445 00:18:37,420 --> 00:18:39,040 Well, kung gumawa ka ng mga pagpapalagay na ito, at hindi iyon, 446 00:18:39,040 --> 00:18:41,880 sa katunayan, katotohanan, na alam minsan kung ano ang computer 447 00:18:41,880 --> 00:18:42,520 pagpunta sa gawin? 448 00:18:42,520 --> 00:18:44,450 At kung minsan, kapag makuha mo ang mga Umiikot na bola beach o sa 449 00:18:44,450 --> 00:18:47,750 frozen na Windows o tulad ng, na tiyak dahil ilang 450 00:18:47,750 --> 00:18:50,980 programmer ay hindi inaasahan ng mga tinatawag na mga kaso ng sulok. 451 00:18:50,980 --> 00:18:53,050 Ano pa ang maaaring maling naganap sa programang ito? 452 00:18:53,050 --> 00:18:53,330 Oo? 453 00:18:53,330 --> 00:18:55,950 >> Madla: Hindi mo ay may karapatan binti at kaliwang binti. 454 00:18:55,950 --> 00:18:58,920 David MALAN: Okay, hindi maaaring magkaroon ng parehong kanang binti at isang 455 00:18:58,920 --> 00:19:01,940 kaliwang binti, at iba pa Ang program na ito ay hindi maaaring maging pangkalahatang 456 00:19:01,940 --> 00:19:02,590 naaangkop. 457 00:19:02,590 --> 00:19:03,658 Iba? 458 00:19:03,658 --> 00:19:05,650 Madla: Maaari kang pumili ng up ng isang ulila suntukin. 459 00:19:05,650 --> 00:19:07,970 David MALAN: maaari ko na kinuha up ng isang ulila suntukin, kaya 460 00:19:07,970 --> 00:19:11,250 walang katugmang sumuntok na lang ay walang kapatid dahil nag ko 461 00:19:11,250 --> 00:19:13,650 nawala ito, ito ay gutay-gutay, sa wash pa rin, o ang gusto. 462 00:19:13,650 --> 00:19:15,550 Kaya na, ay hindi talaga ay paghawak. 463 00:19:15,550 --> 00:19:15,790 Oo? 464 00:19:15,790 --> 00:19:17,510 Madla: Maaari mo na magkaroon ng mga medyas sa. 465 00:19:17,510 --> 00:19:19,050 David MALAN: maaaring Mayroon na akong medyas. 466 00:19:19,050 --> 00:19:20,080 Hindi ko ay aktwal na suriin. 467 00:19:20,080 --> 00:19:23,350 KUNG wala kang medyas, pagkatapos ay magpatuloy upang gawin 468 00:19:23,350 --> 00:19:24,330 linya ng isa at dalawang. 469 00:19:24,330 --> 00:19:24,980 At na maaaring mangyari. 470 00:19:24,980 --> 00:19:26,880 Mahulog kang tulog sa iyong mga medyas sa at ang mga tulad ng, kaya 471 00:19:26,880 --> 00:19:28,860 na, masyadong, isang napaka-makatwirang kaso ng sulok. 472 00:19:28,860 --> 00:19:29,630 At maaaring isa isa? 473 00:19:29,630 --> 00:19:31,310 Madla: suntukin ay nasa loob out. 474 00:19:31,310 --> 00:19:34,000 David MALAN: Kaya sumuntok ay baligtad, kaya ginawa namin walang error 475 00:19:34,000 --> 00:19:35,330 check, sa maikling. 476 00:19:35,330 --> 00:19:38,550 Hindi namin suriin kung ang estado ng mundo ay tulad ng iyong inaasahan namin. 477 00:19:38,550 --> 00:19:41,310 Hindi namin suriin kung nahanap na namin ang aktwal na kung ano ang iyong hinahanap namin. 478 00:19:41,310 --> 00:19:43,310 >> At kahit ito ay uri ng isang katawa-tawa halimbawa 479 00:19:43,310 --> 00:19:46,110 kinasasangkutan ng medyas, sa pagtatapos ng araw, ito ay eksaktong 480 00:19:46,110 --> 00:19:48,740 uri ng mindset kailangan mong magkaroon habang pagsulat programa, 481 00:19:48,740 --> 00:19:51,740 kahit sa scratch pati na rin sa C, sa JavaScript, PHP, 482 00:19:51,740 --> 00:19:53,920 dahil kung hindi man, ang iyong mga programa ay nagpapakita ng ang 483 00:19:53,920 --> 00:19:56,980 katumbas ng na Umiikot na bola ng beach o magbunga 484 00:19:56,980 --> 00:19:58,210 hindi tumpak na mga resulta. 485 00:19:58,210 --> 00:20:00,250 Kaya maraming salamat dito sa aming tagasulat Joseph. 486 00:20:00,250 --> 00:20:05,060 [Palakpakan] 487 00:20:05,060 --> 00:20:06,850 >> David MALAN: Ang lahat ng mga karapatan, kaya kung ano ang, sa 488 00:20:06,850 --> 00:20:08,230 katunayan, isang computer program? 489 00:20:08,230 --> 00:20:09,670 Well, sabihin tumagal ng isang mabilis na sulyap sa isang 490 00:20:09,670 --> 00:20:11,100 kinatawan dito. 491 00:20:11,100 --> 00:20:15,260 Kaya ito ay isang programa na nakasulat sa isang wika na tinatawag na C. C ay 492 00:20:15,260 --> 00:20:17,830 medyo lumang mga araw na ito, ngunit maraming mga mas bagong mga wika ay binuo 493 00:20:17,830 --> 00:20:18,460 sa ibabaw ng mga ito. 494 00:20:18,460 --> 00:20:21,180 Sa katunayan, PHP, isa ng web-sentrik wika bibigyan namin 495 00:20:21,180 --> 00:20:24,050 patungo sa pagtatapos ng termino, may mismo kung ano ang tinatawag na 496 00:20:24,050 --> 00:20:27,550 interpreter, isang programa na nakasulat sa C, ngunit higit pa sa na 497 00:20:27,550 --> 00:20:28,690 sa maraming linggo mula ngayon. 498 00:20:28,690 --> 00:20:30,840 Ngunit ang programang ito, at ito ay kung ano ang ibig sabihin nito upang magsulat ng isang 499 00:20:30,840 --> 00:20:32,880 programa, kahit na sa isang napaka-simpleng. 500 00:20:32,880 --> 00:20:35,540 Mayroon kaming ilang medyo misteriyoso syntax dito, ngunit maaari mong 501 00:20:35,540 --> 00:20:38,340 marahil hulaan, kahit na hindi ka na program bago, ano 502 00:20:38,340 --> 00:20:39,750 programa na ito ginagawa. 503 00:20:39,750 --> 00:20:43,640 Sa katunayan, hindi ko alam kung ano ang printf ay, ngunit-print tiyak 504 00:20:43,640 --> 00:20:45,700 conjures up ang ideya ng pag-print ng isang bagay ang. 505 00:20:45,700 --> 00:20:48,590 At kaya oo, ang programang ito sa huli upang i-print out 506 00:20:48,590 --> 00:20:50,250 ng mga salitang "Hello, World." 507 00:20:50,250 --> 00:20:53,390 >> Ngayon, kung ikaw ay may isang Mac o PC o Linux computer, logro 508 00:20:53,390 --> 00:20:55,550 , hindi bababa sa kung nag-download ka ng ilang mga malayang 509 00:20:55,550 --> 00:20:58,000 magagamit na software, maaari kang na-pagsulat program sa 510 00:20:58,000 --> 00:21:00,310 ang iyong sariling laptop para sa pa ng ilang oras sa ngayon. 511 00:21:00,310 --> 00:21:03,040 Sa Mac OS, halimbawa, ito programa na tinatawag na 512 00:21:03,040 --> 00:21:05,340 Terminal na may isang Mac, na karaniwang sa iyong 513 00:21:05,340 --> 00:21:07,550 Utility folder, at sa pangkalahatan ay bubukas sa isang itim at 514 00:21:07,550 --> 00:21:09,820 puti o puti at itim na window sa kung saan mayroon kang 515 00:21:09,820 --> 00:21:11,410 prompt sa kung saan maaari mong i-type ang mga utos. 516 00:21:11,410 --> 00:21:13,060 Kaya ito ay talagang nakapagpapaalaala ng kung ano ang computer 517 00:21:13,060 --> 00:21:15,100 ginagamit bago graphical user 518 00:21:15,100 --> 00:21:16,710 interface, GUIs, ay dumating sa kahabaan. 519 00:21:16,710 --> 00:21:19,200 Ngayon, sa Windows, mayroon kang isang katulad na mekanismo sa form 520 00:21:19,200 --> 00:21:20,130 ng command prompt. 521 00:21:20,130 --> 00:21:23,430 >> Ngunit ano ako pagpunta sa gawin dito ay magbukas ng, sabihin nating, 522 00:21:23,430 --> 00:21:26,580 TextEdit muli, kaya ang parehong programa na aming ginagamit para sa 523 00:21:26,580 --> 00:21:28,870 pseudocode ng ilang sandali ang nakalipas, at ako pagpunta upang magpatuloy at 524 00:21:28,870 --> 00:21:30,080 isulat ang aking unang program. 525 00:21:30,080 --> 00:21:34,030 Isama stdio.h, anumang ay nangangahulugan na iyon, int pangunahing 526 00:21:34,030 --> 00:21:36,880 walang bisa, anumang ay nangangahulugan na iyon, at pagkatapos ay sa gitna dito, 527 00:21:36,880 --> 00:21:40,560 printf ("hoy, mundo."). At pagkatapos ay malapit quote, 528 00:21:40,560 --> 00:21:42,340 isara paren, semicolon. 529 00:21:42,340 --> 00:21:44,460 Ngayon ako pagpunta sa sige at pindutin ang Command-S. Pupunta ako 530 00:21:44,460 --> 00:21:47,650 sige at i-save ito bilang hello.c, kaya ang convention sa 531 00:21:47,650 --> 00:21:50,530 sa mundo ng C programming pangalanan ang file ng tuldok c. 532 00:21:50,530 --> 00:21:52,880 Ako lang ilagay sa Home direktoryo ng John Harvard, 533 00:21:52,880 --> 00:21:56,370 dito, i-click ang I-save, at ngayon ako pagpunta sa pumunta sa ito 534 00:21:56,370 --> 00:21:59,110 terminal na window, na muli ang black and white prompt 535 00:21:59,110 --> 00:22:00,860 kung saan maaari kong execute ng command. 536 00:22:00,860 --> 00:22:04,550 >> Maaari ba akong magpatakbo ng mga programa sa pamamagitan ng pag-type ng kanilang pangalan, hindi sa pamamagitan ng 537 00:22:04,550 --> 00:22:06,710 double-click icon sa karaniwang kahulugan. 538 00:22:06,710 --> 00:22:10,590 Ngunit bagay ay tungkol sa C ay na ang isang wika tulad ng C unang 539 00:22:10,590 --> 00:22:13,150 may sa form na ito, isang bagay na tinatawag source code. 540 00:22:13,150 --> 00:22:15,400 Isang bagay na mukhang isang maliit na tulad ng Ingles ngunit 541 00:22:15,400 --> 00:22:17,980 talagang mas tulad ng Ingles kaysa Joseph ng pseudocode ng 542 00:22:17,980 --> 00:22:18,930 sandali ang nakalipas. 543 00:22:18,930 --> 00:22:20,560 Ng kaunti pa arcane. 544 00:22:20,560 --> 00:22:22,830 Mukhang na sundin ang ilang mga pattern o panuntunan. 545 00:22:22,830 --> 00:22:25,300 Ang katotohanan na mayroon akong kulot mga tirante, semicolons, quote, 546 00:22:25,300 --> 00:22:28,240 anggulo tirante, nararamdaman tulad ng isang computer ay dumating na ito 547 00:22:28,240 --> 00:22:29,250 uri ng wika. 548 00:22:29,250 --> 00:22:32,010 Ngunit kung pumunta ako, ngayon, sa terminal window na ito, maaari ba akong magpatakbo ng isang 549 00:22:32,010 --> 00:22:35,250 utos na i-convert na source code ay 550 00:22:35,250 --> 00:22:36,610 isang bagay na tinatawag na object code. 551 00:22:36,610 --> 00:22:39,690 Na i-convert ang Ingles tulad ng syntax sa zero 552 00:22:39,690 --> 00:22:41,760 at na, ang parehong mga uri ng mga zero at mga namin 553 00:22:41,760 --> 00:22:42,820 uusapang tungkol sa Miyerkules. 554 00:22:42,820 --> 00:22:44,810 Ngayon, ako pagpunta sa magpatakbo ng isang command na tinatawag na kumalatong. 555 00:22:44,810 --> 00:22:47,750 Higit pa sa sa linggo sa darating, ngunit ito ay isang programa na may 556 00:22:47,750 --> 00:22:52,330 kung saan ang maaari kong i-convert hello.c sa isang buong bungkos 557 00:22:52,330 --> 00:22:53,640 ng mga zero at mga. 558 00:22:53,640 --> 00:22:54,950 >> Ngayon, ko na patakbuhin ang command na ito. 559 00:22:54,950 --> 00:22:57,940 Ko na patakbuhin ang kumalatong, at pagkatapos ay sinabi ko patakbuhin ang iyong sarili sa ang file na ito 560 00:22:57,940 --> 00:23:00,630 na tinatawag na hello.c, na nilikha ko ng ilang sandali ang nakalipas, at 561 00:23:00,630 --> 00:23:02,090 Mukhang ng walang mangyari. 562 00:23:02,090 --> 00:23:05,550 Ngunit sa katunayan, kung ako poked sa paligid ng aking home directory, Gusto ko makita 563 00:23:05,550 --> 00:23:09,620 na ito stupidly na pinangalanang a.out programa ngayon umiiral. 564 00:23:09,620 --> 00:23:12,250 Ito ay ang default na pangalan para sa isang programa kapag sumusulat sa 565 00:23:12,250 --> 00:23:15,140 C. Maaari naming i-override ang kalaunan, ngunit a.out ay 566 00:23:15,140 --> 00:23:18,340 pangalan ng programa ko lang convert sa zero at mga. 567 00:23:18,340 --> 00:23:21,490 At ngayon na ang mga ito ay zero at mga, aking Mac, sa kasong ito, o 568 00:23:21,490 --> 00:23:24,670 iyong Windows PC, maaari maunawaan ang mga bits, mga 569 00:23:24,670 --> 00:23:25,410 zero at mga. 570 00:23:25,410 --> 00:23:29,130 At kaya kapag ako ay pindutin ang Enter, nakikita ko "hoy, mundo!" 571 00:23:29,130 --> 00:23:31,270 >> Subalit ang isang bit maraming surot. 572 00:23:31,270 --> 00:23:34,110 Hindi ko lubos sabihin ang "hoy, mundo: air: -! Jharvard." Air ay 573 00:23:34,110 --> 00:23:35,020 ang pangalan ng aking computer. 574 00:23:35,020 --> 00:23:37,730 Jharvard ang pangalan ng account, kaya kung ano ang ko malinaw 575 00:23:37,730 --> 00:23:41,070 ligtaan mula sa programa? 576 00:23:41,070 --> 00:23:42,480 Ang ilang mga uri ng line break. 577 00:23:42,480 --> 00:23:45,150 Hindi ko pindutin ang katumbas ng Ipasok o ang carriage return, 578 00:23:45,150 --> 00:23:47,760 at ito ay, muli, testamento sa ang katotohanan na ang mga computer maaari 579 00:23:47,760 --> 00:23:49,800 lamang gawin kung ano ang sabihin sa iyo ang mga ito na gawin. 580 00:23:49,800 --> 00:23:52,400 At ang katotohanan na hindi ko sabihin sa computer ilipat ang 581 00:23:52,400 --> 00:23:53,860 cursor sa susunod na linya - 582 00:23:53,860 --> 00:23:55,200 mahusay, tiyak na ito ay hindi pagpunta sa lamang gawin ito 583 00:23:55,200 --> 00:23:56,750 presumptuously para sa akin. 584 00:23:56,750 --> 00:24:00,860 Kaya kung pumunta ako pabalik sa aking programa, at sinasabi ko \ n - 585 00:24:00,860 --> 00:24:03,180 Kaya \ n, dahil kakailanganin namin sa lalong madaling panahon makita, ay ang paraan ng 586 00:24:03,180 --> 00:24:06,910 kumakatawan ng kakaiba mga bagay tulad ng mga bagong line character, bagay 587 00:24:06,910 --> 00:24:08,840 na kung hindi man ay ang resulta ng 588 00:24:08,840 --> 00:24:09,940 pagpindot sa Enter key. 589 00:24:09,940 --> 00:24:11,730 Ngunit sa ngayon, alam na pagpindot ang Enter key 590 00:24:11,730 --> 00:24:14,170 lamang ang aming code tumingin kakaiba, kaya nagpasya ang mundo, alam mo 591 00:24:14,170 --> 00:24:16,580 ano, upang panatilihin ang mga bagay prettier, upang panatilihin ang mga ito sa isang linya, sabihin 592 00:24:16,580 --> 00:24:19,070 lamang sabihin \ n ay kumakatawan sa isang bagong linya. 593 00:24:19,070 --> 00:24:22,260 Hayaan akong resave aking file, bumalik sa window ng terminal, at 594 00:24:22,260 --> 00:24:25,290 a.out ng re-run, ang Enter. 595 00:24:25,290 --> 00:24:28,374 Pa rin maraming surot, ngunit bakit? 596 00:24:28,374 --> 00:24:29,750 >> Madla: [hindi marinig] 597 00:24:29,750 --> 00:24:31,540 David MALAN: Oo, kaya kailangan kong mag-recompile ito. 598 00:24:31,540 --> 00:24:34,610 Kaya upang makatipon ng isang program lang ang ibig sabihin nito ay convert ang mga ito mula sa pinagmulan 599 00:24:34,610 --> 00:24:37,660 code sa code ng bagay, source code sa mga zero at mga. 600 00:24:37,660 --> 00:24:40,830 Ngayon, lamang katunayan na ako pindutin ang I-save sa TextEdit ay walang 601 00:24:40,830 --> 00:24:43,450 nadadala sa mga zero at mga dahil ko kailangan muna 602 00:24:43,450 --> 00:24:48,260 Sabihin kumalatong hey, binago ko ang mga linya ng code, ang 603 00:24:48,260 --> 00:24:49,040 source code. 604 00:24:49,040 --> 00:24:51,010 Kailangan mong muling buuin ang a.out. 605 00:24:51,010 --> 00:24:52,990 Walang lumilitaw na nangyari, ngunit sa isang computer, 606 00:24:52,990 --> 00:24:55,820 sa command line, kaya na magsalita, kapag walang nangyari, 607 00:24:55,820 --> 00:24:57,510 na ibig sabihin lahat na rin. 608 00:24:57,510 --> 00:24:59,040 Kapag ang isang bagay ay mangyari, ito ay nangangahulugan na 609 00:24:59,040 --> 00:25:00,420 messed up ka, sa pangkalahatan. 610 00:25:00,420 --> 00:25:04,020 >> Kaya sabihin pupunta na ngayon sa a.out, at sa katunayan ngayon, mayroon akong "hoy, 611 00:25:04,020 --> 00:25:04,440 mundo. " 612 00:25:04,440 --> 00:25:05,990 At ngayon, kung ano ang tungkol sa mga zero at mga? 613 00:25:05,990 --> 00:25:07,520 Kung saan, sa katunayan, ay ang mga? 614 00:25:07,520 --> 00:25:10,710 Well, hindi ko talagang lamang uri ng sundutin sa paligid napaka 615 00:25:10,710 --> 00:25:11,210 mabisa. 616 00:25:11,210 --> 00:25:12,650 Hayaan akong buksan ang TextEdit. 617 00:25:12,650 --> 00:25:14,060 Narito ang a.out. 618 00:25:14,060 --> 00:25:17,390 Hayaan akong sige at buksan ito, at ito ay tila kung ano ang aking 619 00:25:17,390 --> 00:25:19,080 programa kamukha. 620 00:25:19,080 --> 00:25:21,570 Kaya binuksan ko na, hindi hello.c, ngunit a.out. 621 00:25:21,570 --> 00:25:23,960 Ngunit ito ay talagang hindi kung ano ang aking programa talagang ay. 622 00:25:23,960 --> 00:25:26,450 Malinaw, ito ay ang ilang mga uri ng alpabetikong character. 623 00:25:26,450 --> 00:25:28,670 Nakita ko zero at na, ngunit ito ay 624 00:25:28,670 --> 00:25:30,780 dahil a.out ay isang programa. 625 00:25:30,780 --> 00:25:33,540 Mga zero at mga - ngunit TextEdit, pati na ang pangalan ay nagmumungkahi, ito ay 626 00:25:33,540 --> 00:25:37,130 lamang tulad ng Notepad sa Windows, ay isang text editor, kaya 627 00:25:37,130 --> 00:25:39,730 nakakalito ang lahat ng mga zero at mga bilang 628 00:25:39,730 --> 00:25:41,870 kahit na sila ay, kung ano ang? 629 00:25:41,870 --> 00:25:43,380 ASCII na character. 630 00:25:43,380 --> 00:25:45,020 >> Kaya isipin ang sa Miyerkules, lamang namin dumating na ito 631 00:25:45,020 --> 00:25:48,740 arbitrary na pagma-map ng mga numero, o bit, sa mga titik ng 632 00:25:48,740 --> 00:25:51,690 alpabeto at mga simbolo ng bantas at tulad. 633 00:25:51,690 --> 00:25:54,920 Kaya TextEdit, na ito ay isang text editor misinterpreting 634 00:25:54,920 --> 00:25:57,270 mga pattern ng mga zero at mga na dapat na maging 635 00:25:57,270 --> 00:25:59,990 pagpi-print ng mga salita, tulad ng "hoy, mundo." Ito ay pagpapakita ng mga ito 636 00:25:59,990 --> 00:26:02,150 bilang ASCII, at na ang dahilan kung bakit ito mukhang isang maliit na magulo. 637 00:26:02,150 --> 00:26:04,910 Ngayon, may mga ilang mga pahiwatig ng kawastuhan in dito. 638 00:26:04,910 --> 00:26:08,090 Pansinin kung ako i-highlight, ay isang pahiwatig ng aktwal na "hoy, 639 00:26:08,090 --> 00:26:10,810 mundo, "kaya sa isang lugar sa programang iyon 640 00:26:10,810 --> 00:26:12,120 pangungusap ko sinulat ni. 641 00:26:12,120 --> 00:26:14,610 Ngunit sabihin sige at ngayon makita na may iba't ibang mga programa. 642 00:26:14,610 --> 00:26:17,420 Ito ay hindi isang gagamitin namin na madalas, ngunit ito rin ay may 643 00:26:17,420 --> 00:26:19,970 ng Mac at sa loob ng CS50 appliance. 644 00:26:19,970 --> 00:26:23,940 Hayaan akong sige at buksan sa isang programa na tinatawag na XXD. 645 00:26:23,940 --> 00:26:26,530 >> Bumalik sa araw, karamihan sa mga programa ay patas na may pangalang cryptically, 646 00:26:26,530 --> 00:26:28,200 at kaya trend ay patuloy. 647 00:26:28,200 --> 00:26:31,160 Ngunit-b ay nangangahulugan na ang tuhugan sa programang ito bilang binary. 648 00:26:31,160 --> 00:26:32,330 Huwag patakbuhin ito. 649 00:26:32,330 --> 00:26:35,770 Itong ipakita sa akin bilang mga zero at mga, at ito ay ang C 650 00:26:35,770 --> 00:26:37,190 programa namin lamang sinulat ni. 651 00:26:37,190 --> 00:26:39,920 Ngayon, ako, bilang isang tao dito, ako matapat ay walang ideya kung ano ang 652 00:26:39,920 --> 00:26:42,230 mga iba't ibang mga pattern ng mga zero at mga kumakatawan. 653 00:26:42,230 --> 00:26:45,320 Bumalik sa araw, ako, sa aking manuntok card o ang tulad ng, gagawin 654 00:26:45,320 --> 00:26:48,080 aktwal upang tingnan kung ano ang mga iba't-ibang mga pattern ng 655 00:26:48,080 --> 00:26:51,560 01111000, aktwal na kumakatawan sa. 656 00:26:51,560 --> 00:26:54,390 O mas masahol pa, Gusto ko kailangan upang gawin ang pagsuntok o sa paglikha 657 00:26:54,390 --> 00:26:56,130 ng mga pattern ng mga zero at mga. 658 00:26:56,130 --> 00:27:00,410 Ngunit sa ngayon, sa pananampalataya na CPU, Intel loob, upang 659 00:27:00,410 --> 00:27:03,440 magsalita, sa loob ng lahat ng aming mga computer mga araw na ito, alam 660 00:27:03,440 --> 00:27:05,100 kung paano i-interpret ang mga zero at mga. 661 00:27:05,100 --> 00:27:07,010 At ilang mga zero at mga ibig sabihin ng naka-print. 662 00:27:07,010 --> 00:27:09,040 Ilang mga zero at mga ibig sabihin-play ng tunog. 663 00:27:09,040 --> 00:27:13,630 Ibig sabihin ng ilang mga zeroes at mga input ng user mula sa isang keyboard. 664 00:27:13,630 --> 00:27:15,960 Mayroong ang lahat ng mga uri ng iba't ibang mga pattern ng, ngunit hindi namin thankfully, 665 00:27:15,960 --> 00:27:19,680 bilang mga tao, tanging pangkalahatang kailangang mag-alala tungkol sa programming sa 666 00:27:19,680 --> 00:27:21,270 ito medyo mas mataas na antas. 667 00:27:21,270 --> 00:27:24,320 At sa iba pang mga klase ng CS maaari mong hanaping mabuti ang mas malalim at tumingin 668 00:27:24,320 --> 00:27:26,820 sa mga bagay tulad ng mga zero at mga, o pa 669 00:27:26,820 --> 00:27:28,000 iba pang mga bagay pa rin. 670 00:27:28,000 --> 00:27:29,210 >> Kaya ngayon sabihin convert ang. 671 00:27:29,210 --> 00:27:32,550 Natin ilipat masyadong mabilis ang layo mula sa C at lumipat sa isang bagay ng 672 00:27:32,550 --> 00:27:36,390 kaunti pa umaaliw, ng kaunti pa sa kapana-panabik na, sa na 673 00:27:36,390 --> 00:27:39,340 maaari naming makakuha ng aming mga animation at tunog at katulad na 674 00:27:39,340 --> 00:27:40,940 malinaw na escaped sa amin sa 675 00:27:40,940 --> 00:27:42,480 medyo primitive interface. 676 00:27:42,480 --> 00:27:46,430 Kaya ito parehong programa sa C kinakatawan ngayon sa 677 00:27:46,430 --> 00:27:50,060 programming language na tinatawag scratch tulad ng sumusunod. 678 00:27:50,060 --> 00:27:54,230 Ito ay katumbas ng ito kumusta na programa ng mundo na nakasulat sa 679 00:27:54,230 --> 00:27:57,370 ito piraso ng puzzle style wika na tinatawag na scratch. 680 00:27:57,370 --> 00:28:00,600 Kaya ipaalam sa akin sige at buksan up na ito napaka programa. 681 00:28:00,600 --> 00:28:01,850 Muli Ito ay tinatawag na sa simula. 682 00:28:01,850 --> 00:28:03,880 Malayang magagamit, at ito ay ang parehong bagay namin 683 00:28:03,880 --> 00:28:05,120 makapagsimula ngayon. 684 00:28:05,120 --> 00:28:07,790 >> Kaya ito dito ay wala, at ito ay pinaghiwa-up sa ilang mga 685 00:28:07,790 --> 00:28:09,700 iba't ibang piraso. 686 00:28:09,700 --> 00:28:12,690 Sa kanang tuktok, mayroon kaming ang tinatawag na entablado, at 687 00:28:12,690 --> 00:28:13,670 sa katunayan, na kung saan ang mga cookies 688 00:28:13,670 --> 00:28:15,440 gumanap ng kaunti lamang ang nakalipas. 689 00:28:15,440 --> 00:28:19,660 At sa na yugto ay bagay na tinatawag na sprites, character, o 690 00:28:19,660 --> 00:28:21,030 bagay, o entidad. 691 00:28:21,030 --> 00:28:23,320 Ito ay hindi talagang mahalaga kung paano sa tingin mo sa kanila, ngunit sila 692 00:28:23,320 --> 00:28:26,740 Programmable, naitataas na mga bagay, at sa kasong ito, ito 693 00:28:26,740 --> 00:28:30,730 programa na sinulat ni ang aming mga mag-aaral ay may ilang mga gingerbread 694 00:28:30,730 --> 00:28:32,990 mga cookies, ilang ng pabilog cookies, ang maramihang mga 695 00:28:32,990 --> 00:28:35,430 puso, ng buong bungkos ng mga salamin sa mata. 696 00:28:38,170 --> 00:28:42,420 Dahil dito, siya ay programa ang bawat isa ng mga 697 00:28:42,420 --> 00:28:44,720 indibidwal na character hiwalay. 698 00:28:44,720 --> 00:28:46,480 >> Ngayon, kung ano ang ibig sabihin ng programa ang mga character na ito? 699 00:28:46,480 --> 00:28:49,440 Well, hayaan mo akong sige at mag-click sa ang kaliwang kamay cookie na ito 700 00:28:49,440 --> 00:28:51,830 at mag-scroll sa itaas sa kaliwa dito. 701 00:28:51,830 --> 00:28:53,670 Sa kaliwang tuktok ng aking screen ngayon ang 702 00:28:53,670 --> 00:28:55,280 gayon tinatawag na script area. 703 00:28:55,280 --> 00:28:58,790 Ito ay uri ng isang blangkong slate, simula, papunta sa kung saan maaari ko 704 00:28:58,790 --> 00:29:01,540 i-drag at i-drop ang mga piraso ng puzzle na, lantaran, gawin 705 00:29:01,540 --> 00:29:03,020 eksakto kung ano ang sinasabi nila. 706 00:29:03,020 --> 00:29:05,820 Sa pinakatuktok ng ito stack ng mga piraso ng puzzle ay ang salita 707 00:29:05,820 --> 00:29:09,340 Kapag ang Green Flag-click, at kung hindi mo mapansin bago, 708 00:29:09,340 --> 00:29:12,300 ang paraan na sinimulan ko na cookie kanta ng pag-click, literal, 709 00:29:12,300 --> 00:29:13,320 ng isang kulay berdeng bandila. 710 00:29:13,320 --> 00:29:16,590 Kaya na piraso ng puzzle sa kaliwang tuktok ay nangangahulugan na kapag ang 711 00:29:16,590 --> 00:29:19,780 tao pag-click ang berdeng flag, ay nagpatuloy gawin 712 00:29:19,780 --> 00:29:21,110 ang mga sumusunod na mga bagay. 713 00:29:21,110 --> 00:29:23,330 >> Ngayon, kung ano sila cookie magpatuloy gawin? 714 00:29:23,330 --> 00:29:25,810 Hindi ko talaga alam kung paano i-interpret ang pa, ngunit ang 715 00:29:25,810 --> 00:29:29,220 cookie tila-set nito mag-uka sa zero, pagkatapos ito naghintay 716 00:29:29,220 --> 00:29:31,740 tatlong segundo, pagkatapos ito ay nagbago nito pangkat sa isa, pagkatapos ito 717 00:29:31,740 --> 00:29:33,590 naghintay isang segundo, pagkatapos ay nagbago nito 718 00:29:33,590 --> 00:29:35,100 mag-uka pabalik sa isa. 719 00:29:35,100 --> 00:29:37,373 At pagkatapos ito aktwal na mukhang isang bit ng isang bug, hindi dapat 720 00:29:37,373 --> 00:29:39,440 upang baguhin ang mga mag-uka muli at muli maliban kung ito ay 721 00:29:39,440 --> 00:29:43,380 ay nagbago sa ibang lugar, ngunit ang serye ng mga hakbang na ito ay kung ano ang 722 00:29:43,380 --> 00:29:46,800 dictating ang pag-uugali ng mga ito partikular na cookie. 723 00:29:46,800 --> 00:29:49,180 Kaya sabihin aktwal na mag-scroll nang pabalik at hindi tumingin sa isang bagay 724 00:29:49,180 --> 00:29:50,430 masyadong complex pa. 725 00:29:50,430 --> 00:29:52,260 Hayaan akong magpatuloy at pumunta sa File, New, 726 00:29:52,260 --> 00:29:53,560 at kumuha ng malinis na slate. 727 00:29:53,560 --> 00:29:56,590 >> Kaya ngayon, katunayan ako ay isang walang laman na lugar ng script, ang isang walang laman na yugto, 728 00:29:56,590 --> 00:29:59,380 sa aming scratch default engkanto, at sa kaliwang tuktok 729 00:29:59,380 --> 00:30:01,670 sa aking screen ko ang papag ng lahat ng kanilang mga 730 00:30:01,670 --> 00:30:03,400 magagamit na mga piraso ng puzzle. 731 00:30:03,400 --> 00:30:06,300 At hindi namin pumunta sa pamamagitan ng halos na marami sa mga bagay na ito 732 00:30:06,300 --> 00:30:09,470 ngayon dahil, muli, ang karamihan ay maliwanag, ngunit kami ay 733 00:30:09,470 --> 00:30:12,370 subukang maikategorya ang mga ito at ituro ang pagkakatulad 734 00:30:12,370 --> 00:30:15,380 may mga hinaharap na wika na kung saan ay namin sumisid. 735 00:30:15,380 --> 00:30:19,180 At sa kaliwang tuktok dito ay ang unang Kapag ang Green I-flag click na, 736 00:30:19,180 --> 00:30:22,170 kaya ipaalam sa akin i-drag ito sa paglipas dito, mag-zoom out ng kaunti. 737 00:30:22,170 --> 00:30:25,780 At kung ako i-click ang berdeng bandila, wala talagang mangyayari dahil 738 00:30:25,780 --> 00:30:29,360 Hindi ako naka-attach ang anumang logic, ang anumang pahayag kaya magsalita, upang 739 00:30:29,360 --> 00:30:31,040 na berdeng flag, kaya hayaan mo akong pumunta sa 740 00:30:31,040 --> 00:30:32,500 mga kategorya sa paglipas dito. 741 00:30:32,500 --> 00:30:34,840 Ako ay kasalukuyang sa Control kategorya. 742 00:30:34,840 --> 00:30:37,630 Sa halip ako pagpunta sa pumunta down sa kategorya na hitsura, at 743 00:30:37,630 --> 00:30:39,970 may isang buong grupo ng mga bagay dito na sinasabi Sabihing, 744 00:30:39,970 --> 00:30:43,110 Isipin, Baguhin ang Kulay, Lumipat Costume. 745 00:30:43,110 --> 00:30:44,860 >> Kaya maaari mong gawin ang ulok mga bagay sa mga costume at 746 00:30:44,860 --> 00:30:45,870 tunog at tulad. 747 00:30:45,870 --> 00:30:49,970 Hayaan akong magpatuloy at sabihin lamang Sabihing, at ngayon mapansin bilang drag ko 748 00:30:49,970 --> 00:30:52,940 at drop ito piraso ng puzzle, ito ay pagpunta sa gusto sa aldaba 749 00:30:52,940 --> 00:30:55,010 sa nararapat na hugis. 750 00:30:55,010 --> 00:30:58,020 Kaya kapag pumunta ako magpatuloy at ipaalam sa pumunta ng aking mouse, i-lock nila 751 00:30:58,020 --> 00:31:01,770 magkasama, at ngayon kung pumunta ako sa paglipas dito at i-click ang berdeng bandila, 752 00:31:01,770 --> 00:31:05,910 cat ay sa katunayan kamustahin dahil iyon ang kung ano ang loob 753 00:31:05,910 --> 00:31:06,980 ng puting kahon na ito. 754 00:31:06,980 --> 00:31:08,900 Namin sa lalong madaling panahon makita na ang puting kahon na ito ay kung ano ang tinatawag na 755 00:31:08,900 --> 00:31:10,250 argument, o isang parameter. 756 00:31:10,250 --> 00:31:12,560 Ito ay isang paraan ng pagbabago ng pag-uugali ng, sa kasong ito, ang isang 757 00:31:12,560 --> 00:31:15,070 piraso ng puzzle, ngunit kung gusto ko upang sabihin kung ano mismo ang ko sinabi 758 00:31:15,070 --> 00:31:18,610 bago, kamustahin, mundo, maaari ko ngayon bumalik sa paglipas dito, 759 00:31:18,610 --> 00:31:21,990 i-click ang i-play, at "hoy, mundo" ay kung ano ng sinabi. 760 00:31:21,990 --> 00:31:24,340 >> Kaya literal namin ay mga programa na ngayon. 761 00:31:24,340 --> 00:31:27,540 Ito ay hindi lahat na nakapanghihimok ng isang programa, ngunit hindi bababa sa 762 00:31:27,540 --> 00:31:30,140 ito ay isang maliit na mas nakakahimok kaysa isang bagay na ganito, sa 763 00:31:30,140 --> 00:31:31,300 unang tingin, tulad nito. 764 00:31:31,300 --> 00:31:34,190 At maaari naming masyadong mabilis ang lahat ng mga mas makahulugan 765 00:31:34,190 --> 00:31:36,600 dahil sa simula, tulad ng sa iba pang mga wika, may lahat ng 766 00:31:36,600 --> 00:31:40,010 uri ng pahayag, hindi lamang Sabihing o pag-print ng isang bagay, ngunit 767 00:31:40,010 --> 00:31:42,650 maaari mong gawin ang mga bagay tulad ng naghihintay, dahil lamang namin nakita na may 768 00:31:42,650 --> 00:31:44,240 ang cookie, ang ilang bilang ng mga segundo. 769 00:31:44,240 --> 00:31:46,440 Maaari mong i-play ang mga tunog sa kapaligiran ng scratch 770 00:31:46,440 --> 00:31:49,050 tulad ng maaari mong sa isang normal na tunog-play ng computer program. 771 00:31:49,050 --> 00:31:52,440 Maaari mong suriin kung ano ay tinatawag na Boolean expression. 772 00:31:52,440 --> 00:31:55,630 Kaya ngayon, sabihin simulan upang idagdag sa aming toolkit ilang terminolohiya 773 00:31:55,630 --> 00:31:58,840 na aktwal na nauugnay sa halimbawa na Joseph at ginawa ko 774 00:31:58,840 --> 00:32:00,080 dito sa mga medyas. 775 00:32:00,080 --> 00:32:03,040 Kaya pahayag lamang ang mga salaysay ng katotohanan. 776 00:32:03,040 --> 00:32:04,160 Gawin ito. 777 00:32:04,160 --> 00:32:07,370 Isang panuto para sa engkanto, o sa akin ang tao, upang gawin ang isang bagay. 778 00:32:07,370 --> 00:32:10,420 Ang isang Boolean expression ay isang bagay na may halaga, 779 00:32:10,420 --> 00:32:14,580 tinatawag na halaga sa katotohanan, na alinman sa zero o isa, mali o 780 00:32:14,580 --> 00:32:17,890 totoo, off o sa, walang o oo. 781 00:32:17,890 --> 00:32:19,730 Ba talagang hindi mahalaga kung paano sa tingin mo ng mga ito, ngunit ito ay isang 782 00:32:19,730 --> 00:32:20,700 binary estado. 783 00:32:20,700 --> 00:32:22,610 Bilang Nate tinalakay sa Miyerkules ng video, dalawang 784 00:32:22,610 --> 00:32:23,570 iba't ibang mga bagay. 785 00:32:23,570 --> 00:32:25,740 >> Kaya sa simula, Boolean expression mangyari upang tumingin 786 00:32:25,740 --> 00:32:28,910 tulad ng mga asul na mga bagay dito, at sa kasong ito, ang tanong 787 00:32:28,910 --> 00:32:30,960 mark nagpapahiwatig na hinihiling ng isang tanong. 788 00:32:30,960 --> 00:32:34,250 Ay ang pusa, o engkanto, ng pagpindot sa mouse pointer? 789 00:32:34,250 --> 00:32:36,580 Kaya ito ay isa lamang halimbawa ng isang bloke ng scratch na pagpunta 790 00:32:36,580 --> 00:32:39,950 -daan sa amin upang suriin ang oo o hindi, ang mouse pagpindot sa 791 00:32:39,950 --> 00:32:40,790 engkanto sa screen? 792 00:32:40,790 --> 00:32:42,840 At ito ay maaaring maging kapaki-pakinabang kung ang iyong aktwal na nais na gumawa ng mga bagay 793 00:32:42,840 --> 00:32:43,820 gamit ang iyong mouse. 794 00:32:43,820 --> 00:32:46,470 Bilang karagdagan sa mga Boolean expression, mayroon kaming mga bagay 795 00:32:46,470 --> 00:32:49,110 tulad ng mouse sa down, sa gayon ay maaari mong i-detect na uri ng 796 00:32:49,110 --> 00:32:50,200 tanong pati na rin. 797 00:32:50,200 --> 00:32:52,590 Maaari naming gawin ang mga matematika kung gusto iyong aktwal na, at may 798 00:32:52,590 --> 00:32:55,170 aktwal na mas nakakahimok paggamit para sa pa sa dalisay ng 799 00:32:55,170 --> 00:32:56,400 aritmetika, dahil kakailanganin namin nakikita. 800 00:32:56,400 --> 00:32:59,690 Palsipikado randomness at gumawa ng iyong programa ay lilitaw sa tingin 801 00:32:59,690 --> 00:33:03,490 o kumilos naiiba batay sa ilang tila random na mga halaga, 802 00:33:03,490 --> 00:33:06,610 at pagkatapos ay mayroon kami ng mga bagay tulad ng Boolean expression tulad AT. 803 00:33:06,610 --> 00:33:08,830 Kaya kung ang iyong aktwal na nais na suriin ang dalawang halaga, makikita namin makita sa 804 00:33:08,830 --> 00:33:11,110 Scratch na maaari naming tunay na subukan kung ito ay 805 00:33:11,110 --> 00:33:13,190 totoo at ito ay totoo. 806 00:33:13,190 --> 00:33:15,300 Halimbawa, sa kaso ng aking mga medyas, maaari ko nag sa 807 00:33:15,300 --> 00:33:19,045 pinakadulo nagtanong ang tanong kung kaliwa sumuntok sa at kanang sumuntok 808 00:33:19,045 --> 00:33:20,610 ay, isara. 809 00:33:20,610 --> 00:33:22,710 Lahat ng tapos ka na para sa araw, kaya na isang 810 00:33:22,710 --> 00:33:24,300 pagkakataon para sa na. 811 00:33:24,300 --> 00:33:27,740 >> Kaya sabihin at susubukan piraso ng ilan sa mga ito nang magkasama 812 00:33:27,740 --> 00:33:31,570 at pumunta sa isang ilang mga halimbawa 813 00:33:31,570 --> 00:33:32,610 nakapanghihimok kaysa ang isang ito. 814 00:33:32,610 --> 00:33:35,770 Kaya hayaan mo akong magpatuloy dito at buksan ang ilan sa mga halimbawa 815 00:33:35,770 --> 00:33:38,350 na palaging sa website ng kurso pati na rin, at 816 00:33:38,350 --> 00:33:39,870 buksan ang hello2. 817 00:33:39,870 --> 00:33:42,910 Kaya sa hello2 dito, mayroon kaming programa na ginagawa ng ilang 818 00:33:42,910 --> 00:33:46,290 bagay, ngunit hindi ito gawin ito kasing epektibo tulad ng maaari naming. 819 00:33:46,290 --> 00:33:48,900 Kaya dito sinasabi nito na "hoy, mundo" para sa isang segundo at pagkatapos ay naghihintay 820 00:33:48,900 --> 00:33:49,450 para sa isang segundo. 821 00:33:49,450 --> 00:33:51,720 At pagkatapos ay ginagawa itong muli, at pagkatapos ay ginagawa itong muli. 822 00:33:51,720 --> 00:33:55,530 Kaya kung ako i-click ang berdeng bandila, scratch nagsasabing "Kamusta, mundo. 823 00:33:55,530 --> 00:33:57,160 Kumusta, mundo. 824 00:33:57,160 --> 00:34:00,080 Kumusta, mundo. "At ito ay malinaw naman kandidato ngayon para 825 00:34:00,080 --> 00:34:00,860 pagpapabuti. 826 00:34:00,860 --> 00:34:03,070 >> Ano ang nasa gilid pagpapabuti, sana, maaari naming 827 00:34:03,070 --> 00:34:07,610 ngayon kung sa simula sumusuporta ang konsepto? 828 00:34:07,610 --> 00:34:08,310 Ang ilang mga uri ng loop. 829 00:34:08,310 --> 00:34:10,960 Ang ilang mga uri ng pag-uulit, ngayon, ay magaling, kaya ipaalam sa akin 830 00:34:10,960 --> 00:34:11,920 aktwal na subukan na. 831 00:34:11,920 --> 00:34:13,870 Ipaalam sa akin aktwal pumunta at ilipat ito. 832 00:34:13,870 --> 00:34:16,449 Kaya paunawa ay maaaring bumaklas ng mga bloke kasing-dali ng maaari mong idagdag sa 833 00:34:16,449 --> 00:34:17,420 -attach sa kanila. 834 00:34:17,420 --> 00:34:20,730 Hayaan ang mga pumunta sa akin sa ilalim ng Control, mag-scroll pababa dito, at sa katunayan, 835 00:34:20,730 --> 00:34:24,000 ito piraso ng puzzle dito, Ulitin at Habang Panahon at 836 00:34:24,000 --> 00:34:24,870 Magpakailanman Kung. 837 00:34:24,870 --> 00:34:28,500 Kaya may isang bilang ng mga paraan ng pagpapahayag ng mga looping constructs 838 00:34:28,500 --> 00:34:29,340 sa simula. 839 00:34:29,340 --> 00:34:31,730 Ang gusto ko marahil dito ay hindi Tuluyan dahil lamang ako 840 00:34:31,730 --> 00:34:34,639 gusto ito mangyari tatlong beses, ngunit marahil Ulitin. 841 00:34:34,639 --> 00:34:38,449 Kaya hayaan mo akong i-drag Ulitin sa paglipas dito, i-drag at drop ang mga ito, at 842 00:34:38,449 --> 00:34:42,530 ngayon sa halip ng pagsabi ng "hoy, mundo" tatlong hiwalay na beses, 843 00:34:42,530 --> 00:34:44,230 hayaan mo akong i-drag ito piraso ng puzzle in dito. 844 00:34:44,230 --> 00:34:46,610 At kahit na ito ay hindi mukhang upang magkasya, ang programa ay ang smart 845 00:34:46,610 --> 00:34:48,920 sapat upang mapagtanto na ito palaguin upang punan, kaya ang 846 00:34:48,920 --> 00:34:51,270 hugis na bagay at hindi ganap na laki. 847 00:34:51,270 --> 00:34:54,030 Hayaan akong baguhin ang pag-uulit sa tatlong, at ngayon ay hayaan mo akong umalis 848 00:34:54,030 --> 00:34:56,560 magpatuloy at i-drag Maghintay Isang Pangalawa sa doon pati na rin. 849 00:34:56,560 --> 00:34:59,220 Ito upang lumagot na bigla sa pati na rin, at kaya ako ngayon upang i-drag 850 00:34:59,220 --> 00:35:01,370 ang mga guys na ito sa dito at magtapon ng mga ito ang layo dahil ako 851 00:35:01,370 --> 00:35:02,710 hindi na kailangan ang mga ito. 852 00:35:02,710 --> 00:35:05,920 Hayaan akong mag-zoom out at i-click ang berdeng bandila ngayon, at kami ay may 853 00:35:05,920 --> 00:35:09,600 ang parehong programa ngunit, bilang hinulaang ko bago, mas mahusay na 854 00:35:09,600 --> 00:35:12,200 idinisenyo dahil maaari ka isipin kung gaano masama sa programang ito 855 00:35:12,200 --> 00:35:14,410 ay makakuha ng, tiyak aesthetically, kung mayroon kang 856 00:35:14,410 --> 00:35:16,640 simulan ang pagkopya at pag-paste, pagkopya at pag-paste, o 857 00:35:16,640 --> 00:35:20,020 ng pag-drag at drop ang parehong darn bagay muli at muli. 858 00:35:20,020 --> 00:35:22,260 >> Ngayon, lamang sinasabi ng mga bagay-bagay sa screen, pag-print sa 859 00:35:22,260 --> 00:35:25,350 screen, talagang lahat hindi na kapana-panabik, kaya sabihin buksan ang isang 860 00:35:25,350 --> 00:35:26,580 ikatlong pagkakaiba dito. 861 00:35:26,580 --> 00:35:29,810 At ngayon, tulad ng makikita mo, ito makikita mabilis na makuha nakakainis - 862 00:35:29,810 --> 00:35:30,850 [Ngiyaw] 863 00:35:30,850 --> 00:35:31,940 David MALAN: - ngunit ring uri ng nakatutuwa. 864 00:35:31,940 --> 00:35:35,244 [Ngiyaw] 865 00:35:35,244 --> 00:35:37,460 David MALAN: Okay, kaya mas mahusay, at maaari naming tiyak na gamitin iyon 866 00:35:37,460 --> 00:35:41,060 parehong paglipat ng asiwa ito sa isang looping 867 00:35:41,060 --> 00:35:43,520 istraktura, ngunit sabihin gawin itong mas kawili-wili pa rin. 868 00:35:43,520 --> 00:35:47,480 >> Hayaan akong sige at buksan up ng isang ika-apat na pagkakaiba dito, kung saan ako 869 00:35:47,480 --> 00:35:50,020 tumagal ang mga bagay ng isang hakbang karagdagang. 870 00:35:50,020 --> 00:35:54,450 Kaya ayon na ito, ulok bagaman ito ay sa unang 871 00:35:54,450 --> 00:35:58,530 sulyap, kung ano ang programang ito gawin? 872 00:35:58,530 --> 00:35:59,790 Ito ay pagpunta sa ngiyaw-sabay. 873 00:35:59,790 --> 00:36:00,160 Bakit? 874 00:36:00,160 --> 00:36:03,340 Well, isa, Sa pagkaalam ko, palaging hindi bababa sa dalawang. 875 00:36:03,340 --> 00:36:04,890 Walang paniwala ng randomness dito. 876 00:36:04,890 --> 00:36:07,240 Ko literal hard-code ang isa at dalawa, ngunit ito ay isang 877 00:36:07,240 --> 00:36:10,370 Halimbawa ngayon ng aktwal na paggamit ng Boolean expression. 878 00:36:10,370 --> 00:36:13,650 Karamihan bang bilang Joseph ginawa sa kanyang pseudocode, ang indentation KUNG 879 00:36:13,650 --> 00:36:17,170 mahanap ka pagtutugma ng medyas pagkatapos gawin ang mga sumusunod, dito mayroon kaming 880 00:36:17,170 --> 00:36:19,750 isang expression KUNG isa ay mas mababa kaysa sa dalawang pagkatapos - 881 00:36:19,750 --> 00:36:21,820 at sa katunayan namin kahit ng kaunting indentation, 882 00:36:21,820 --> 00:36:24,480 kung saan ang lilang ay bahagyang naka-indent sa kanan - 883 00:36:24,480 --> 00:36:26,600 Ka upang i-play ang sound ngiyaw. 884 00:36:26,600 --> 00:36:30,060 Ngayon, sa kasong ito, na ang isa ay laging mas mababa kaysa sa dalawang, kaya ito 885 00:36:30,060 --> 00:36:31,970 ay ang uri ng basura ng isang kalagayan. 886 00:36:31,970 --> 00:36:34,890 Ngunit magagawa naming, dahil kakailanganin namin nakikita, mag-plug ng iba pang mga bagay sa 887 00:36:34,890 --> 00:36:37,420 mga placeholder kung saan isa at dalawang ngayon ay. 888 00:36:37,420 --> 00:36:41,340 Kaya natin ngayon advance sa limang halimbawa ng mga ilang 889 00:36:41,340 --> 00:36:45,850 hellos at pagtingin sa kung ano ang programang ito pagpunta sa gawin. 890 00:36:45,850 --> 00:36:48,710 >> Kaya ngayon, sa isang Ingles na pangungusap, kung paano ito 891 00:36:48,710 --> 00:36:51,460 programa kumilos? 892 00:36:51,460 --> 00:36:52,950 Madla: Meows sa kalahati ng oras. 893 00:36:52,950 --> 00:36:55,380 David MALAN: kalahati ngiyaw ng oras, kaya ito ay isang paraan ng 894 00:36:55,380 --> 00:36:56,700 conveying isang napaka-simpleng ideya. 895 00:36:56,700 --> 00:36:59,400 Kahit na mangyayari namin na ang paggamit ng ilang mga inequalities dito 896 00:36:59,400 --> 00:37:01,860 sa ilang mga numero, ito ay talagang lamang programmatical 897 00:37:01,860 --> 00:37:09,490 paraan, ang isang tiyak na paraan, sinasabi kung barya ay lumalabas ulo, pumunta 898 00:37:09,490 --> 00:37:10,270 magpatuloy at ngiyaw. 899 00:37:10,270 --> 00:37:13,540 O pasalungat, kung ang barya sa ay lumalabas tails, hindi ngiyaw. 900 00:37:13,540 --> 00:37:15,110 At sa kasong ito, kung paano namin ipahayag na? 901 00:37:15,110 --> 00:37:17,950 Susubukan naming pumili ng random na numero mula 1 hanggang 10, at kung 902 00:37:17,950 --> 00:37:21,110 Ang numero ay mas mababa sa 6, magpatuloy at ngiyaw. 903 00:37:21,110 --> 00:37:22,260 At kung paano ang ito makakuha ng in dito? 904 00:37:22,260 --> 00:37:24,620 Well muli, mapansin lang ang pag-drag at pag-drop at 905 00:37:24,620 --> 00:37:26,190 bagay latches sa lugar. 906 00:37:26,190 --> 00:37:28,020 >> Kaya ngayon sabihin makita kung gumagana ito randomness. 907 00:37:28,020 --> 00:37:29,845 Hayaan akong magpatuloy at i-click ang berdeng bandila. 908 00:37:29,845 --> 00:37:31,120 [Ngiyaw] 909 00:37:31,120 --> 00:37:32,000 David MALAN: Okay. 910 00:37:32,000 --> 00:37:33,430 [Ngiyaw] 911 00:37:33,430 --> 00:37:35,260 David MALAN: Okay. 912 00:37:35,260 --> 00:37:38,510 Okay, mahusay, kaya namin nakuha ng mga ulo, ulo, tails epektibo. 913 00:37:38,510 --> 00:37:39,295 Tails. 914 00:37:39,295 --> 00:37:39,590 [Ngiyaw] 915 00:37:39,590 --> 00:37:41,829 David MALAN: Mga Paunang abiso. 916 00:37:41,829 --> 00:37:43,220 [Ngiyaw] 917 00:37:43,220 --> 00:37:44,040 David MALAN: Mahusay. 918 00:37:44,040 --> 00:37:46,220 Ito ay palaging mahirap kapag lamang istatistika kang makakuha ng isang masamang 919 00:37:46,220 --> 00:37:48,510 patakbuhin, at lahat ng mga ulo, at ang programa ay aktwal na hindi 920 00:37:48,510 --> 00:37:49,230 gumana tulad ng gusto mong umaasa. 921 00:37:49,230 --> 00:37:51,210 Ngunit ang oras na ito, nagtrabaho, at tila namin na magkaroon, kung ginawa namin 922 00:37:51,210 --> 00:37:53,830 ito isang walang-katapusang bilang ng mga beses, 50% logro. 923 00:37:53,830 --> 00:37:56,950 Ngayon muli, hindi lahat na kawili-wili, lamang ang paggawa ng pusa 924 00:37:56,950 --> 00:37:59,840 ngiyaw, kaya sabihin makita kung hindi namin advance ito ng kaunti pa 925 00:37:59,840 --> 00:38:01,820 dito sa bersyon anim. 926 00:38:01,820 --> 00:38:05,620 Sa ngayon, mayroon kaming talagang nakakainis na bersyon - 927 00:38:05,620 --> 00:38:08,215 [MEOWS BAWAT FEW SECONDS] 928 00:38:08,215 --> 00:38:10,640 David MALAN: - at ito ay kung ano ang kilala, pangkalahatan, bilang isang 929 00:38:10,640 --> 00:38:11,670 walang-katapusang loop. 930 00:38:11,670 --> 00:38:14,190 >> Kaya walang-katapusang loop sa kasong ito nararamdaman masama. 931 00:38:14,190 --> 00:38:16,970 Tiyak na ito upang simulan ang tunog masamang, at pa walang katapusan 932 00:38:16,970 --> 00:38:18,740 loop ay hindi palaging masamang. 933 00:38:18,740 --> 00:38:20,910 Maaari mong isipin ng konteksto sa mga programa sa computer kung saan ikaw ay 934 00:38:20,910 --> 00:38:22,910 aktwal na gusto ng isang walang-katapusang loop? 935 00:38:22,910 --> 00:38:23,691 Oo? 936 00:38:23,691 --> 00:38:26,520 Madla: Kapag nais mong suriin ang isang kalagayan. 937 00:38:26,520 --> 00:38:28,240 David MALAN: Okay, kapag nais mong panatilihin ang check ng isang kondisyon? 938 00:38:28,240 --> 00:38:29,190 Tulad ng kung ano? 939 00:38:29,190 --> 00:38:30,440 Madla: [hindi marinig] 940 00:38:36,060 --> 00:38:38,170 David MALAN: Okay, mabuti, kaya kung mayroon kang ilang mga programa, ang ilang 941 00:38:38,170 --> 00:38:40,440 uri ng bagay sa automation ng bahay, kung saan nais mong i-Patuloy 942 00:38:40,440 --> 00:38:41,980 monitor ay isang bagay na ang kaso. 943 00:38:41,980 --> 00:38:42,850 Ay ang mga ilaw sa? 944 00:38:42,850 --> 00:38:45,020 Ay ang mga ilaw sa dahil maaaring mayroon kang timer, at 945 00:38:45,020 --> 00:38:47,360 nais mong ang mga ito upang pumunta off, maaaring kailangan mong gawin ang isang bagay 946 00:38:47,360 --> 00:38:48,290 muli at muli. 947 00:38:48,290 --> 00:38:50,540 At sa katunayan, pagsasalita ng mga timers, anumang mo na 948 00:38:50,540 --> 00:38:53,100 Orasan sa iyong computer o digital na mga relo, na ang isang 949 00:38:53,100 --> 00:38:54,210 walang-katapusang loop. 950 00:38:54,210 --> 00:38:56,980 Patuloy na i-update ang oras dahil ito ay patuloy 951 00:38:56,980 --> 00:38:59,750 check at check at check Binago ang oras sa, 952 00:38:59,750 --> 00:39:01,000 at kung gayon, naku, ang aking diyos. 953 00:39:03,670 --> 00:39:04,740 Sa wakas ay nagbago ang orasan. 954 00:39:04,740 --> 00:39:07,020 Kailangang ipakita na halaga sa iyo. 955 00:39:07,020 --> 00:39:10,880 Kaya kung saan karamihan ng mga oras na walang-katapusang loop ay isang pagkakamali, 956 00:39:10,880 --> 00:39:13,950 o hindi bababa sa isang mahinang desisyon ng disenyo, minsan ginagawa nila 957 00:39:13,950 --> 00:39:14,785 ang kanilang mga halaga. 958 00:39:14,785 --> 00:39:18,170 >> Well, sabihin advance pa dito sa hello7. 959 00:39:18,170 --> 00:39:20,410 Kaya ngayon ang programa ay makakakuha ng kaunti mas interactive. 960 00:39:20,410 --> 00:39:23,120 Hayaan akong mag-zoom in dito, at muli, ito ay kung ano ang magaling 961 00:39:23,120 --> 00:39:23,640 tungkol sa scratch. 962 00:39:23,640 --> 00:39:26,760 At gagamitin namin ang mga ito upang maging malinaw, simula, lamang ngayon at sa 963 00:39:26,760 --> 00:39:27,780 -set ang problema sa susunod na linggo. 964 00:39:27,780 --> 00:39:31,920 Ngunit sa Monday, namin sumisid sa C. Sa programang ito dito, ginagawa nito, 965 00:39:31,920 --> 00:39:33,190 magpakailanman, ang mga sumusunod. 966 00:39:33,190 --> 00:39:35,890 KUNG pagpindot sa mouse pointer - ngayon, na ang 967 00:39:35,890 --> 00:39:36,420 konteksto dito? 968 00:39:36,420 --> 00:39:39,670 Well, at notice na na napili pababa dito sa ibaba 969 00:39:39,670 --> 00:39:43,060 karapatan ay pusa, engkanto isa, kaya ang mga script, ito 970 00:39:43,060 --> 00:39:45,720 programa, nalalapat partikular sa kanya. 971 00:39:45,720 --> 00:39:48,950 Kaya kung ang pusa na pagpindot ang pointer ng mouse, pagkatapos ito ay pagpunta 972 00:39:48,950 --> 00:39:51,350 upang i-play ito down at maghintay ng dalawang segundo, at 973 00:39:51,350 --> 00:39:53,030 ulitin ad nauseum. 974 00:39:53,030 --> 00:39:55,360 >> Kaya sabihin sige at pindutin ang pag-play. 975 00:39:55,360 --> 00:39:57,580 Walang mangyayari, ngunit kung gusto kong alagang hayop 976 00:39:57,580 --> 00:39:59,310 pusa ngayon, maaari ko lamang. 977 00:39:59,310 --> 00:40:01,130 [Ngiyaw] 978 00:40:01,130 --> 00:40:02,244 David MALAN: kaibig-ibig. 979 00:40:02,244 --> 00:40:05,956 [Ngiyaw] 980 00:40:05,956 --> 00:40:08,750 David MALAN: Okay, mas nakakainis, ngunit nakakakuha ng mapurol, 981 00:40:08,750 --> 00:40:11,480 kaya sabihin ilipat sa at makita kung hindi namin maaaring mag-inyeksyon 982 00:40:11,480 --> 00:40:12,460 ng kaunti pa sa logic. 983 00:40:12,460 --> 00:40:14,300 Na Halimbawa pitong. 984 00:40:14,300 --> 00:40:16,090 >> Dito sa halimbawa walong, kami ay pagpunta sa 985 00:40:16,090 --> 00:40:18,670 ipakilala ng Iba Pa kondisyon. 986 00:40:18,670 --> 00:40:21,440 Kaya magkano tulad ng isang literal na tinidor sa kalsada, kung saan maaari kang pumunta 987 00:40:21,440 --> 00:40:24,260 pakaliwa o maaari kang pumunta sa kanan, kundisyon sa programming 988 00:40:24,260 --> 00:40:28,120 wika tulad ng simula, o bilang namin makita ang C, maaari daan sa iyo upang 989 00:40:28,120 --> 00:40:32,230 pumunta sa isang direksyon o iba pang pamamagitan ng isang KUNG ibang tao bumuo. 990 00:40:32,230 --> 00:40:35,160 Kaya medyo literal, KUNG paghawak ng mouse pointer, ang 991 00:40:35,160 --> 00:40:38,680 ay-play ang ilang mga tunog, iba pa ito upang i-play ang isa 992 00:40:38,680 --> 00:40:39,800 tunog, ngiyaw. 993 00:40:39,800 --> 00:40:42,510 Ngayon, kung maaari mong magpakilala mula sa pangalan ng mga tunog, maaari mong 994 00:40:42,510 --> 00:40:45,310 malamang na hulaan kung ano ang programang ito nilalayong manawagan up 995 00:40:45,310 --> 00:40:46,250 ang ideya ng. 996 00:40:46,250 --> 00:40:48,742 Cat na ito ay meowing maligaya. 997 00:40:48,742 --> 00:40:49,230 [Ngiyaw] 998 00:40:49,230 --> 00:40:51,410 David MALAN: maligaya, ngunit hindi 999 00:40:51,410 --> 00:40:52,926 medyo i-hinawakan. 1000 00:40:52,926 --> 00:40:54,550 [ROARS] 1001 00:40:54,550 --> 00:40:57,500 David MALAN: Kaya ngayon mayroon kami ng pusa na ang ay sumigaw sa iyo. 1002 00:40:57,500 --> 00:41:00,570 >> Lahat ng karapatan, maayos, isang huling halimbawa may pusa dito, at 1003 00:41:00,570 --> 00:41:02,920 sabihin bukas bersyon siyam ng ito dito. 1004 00:41:02,920 --> 00:41:06,190 Sa ngayon, mayroon kaming ang susunod na pinaka-nakakainis na tunog na maaari kong 1005 00:41:06,190 --> 00:41:11,630 mahanap, kaya kami ay may isang walrus o dagat leon dito na pagpunta sa 1006 00:41:11,630 --> 00:41:13,222 gawin ang mga sumusunod. 1007 00:41:13,222 --> 00:41:20,870 [Selyo aw-aw] 1008 00:41:20,870 --> 00:41:23,310 David MALAN: Okay, kaya ito ay pumunta sa hanggang sa ikaw ay malaman kung paano 1009 00:41:23,310 --> 00:41:24,640 programa na ito ay gumagana. 1010 00:41:24,640 --> 00:41:28,560 Kaya oras na ito, ang mga hayop na ito ay may dalawang mga script, at kung ano ang 1011 00:41:28,560 --> 00:41:31,050 kawili-wili dito ay na ang mga script na ito ay upang maisagawa 1012 00:41:31,050 --> 00:41:32,260 kahanay. 1013 00:41:32,260 --> 00:41:35,340 Kaya dahil sila parehong simula may isang berdeng bandila click, 1014 00:41:35,340 --> 00:41:38,080 ito ay tulad ng pagpunta tulad nito, at parehong programa ay magsisimulang tumakbo ito 1015 00:41:38,080 --> 00:41:41,370 sabay-sabay kahit na sila ay looping magpakailanman. 1016 00:41:41,370 --> 00:41:44,420 Kaya sa tuktok na script, Mayroon akong ilang logic. 1017 00:41:44,420 --> 00:41:49,275 Anong mga tampok na nagbibigay up doon? 1018 00:41:49,275 --> 00:41:50,740 [Selyo aw-aw] 1019 00:41:50,740 --> 00:41:51,670 Madla: [hindi marinig] 1020 00:41:51,670 --> 00:41:53,295 David MALAN: Kung ang? 1021 00:41:53,295 --> 00:41:53,760 [Selyo aw-aw] 1022 00:41:53,760 --> 00:41:55,852 Madla: Kung naka-mute na sa zero, ito upang panatilihing-play ng 1023 00:41:55,852 --> 00:41:58,410 tunog. [Selyo aw-aw] 1024 00:41:58,410 --> 00:41:58,940 David MALAN: Okay, mabuti. 1025 00:41:58,940 --> 00:42:01,960 Kaya KUNG naka-mute, anumang ito ay, orange bagay na ito ay zero, 1026 00:42:01,960 --> 00:42:05,370 Pagkatapos i-play ang tunog ng dagat leon at sa tingin "Oh, 1027 00:42:05,370 --> 00:42:06,770 hi, "para sa dalawang segundo. 1028 00:42:06,770 --> 00:42:09,380 Ngayon, hindi ko alam kung ano ang naka-mute ay, ngunit zero conjures up ang 1029 00:42:09,380 --> 00:42:11,230 ideya ng mali o off. 1030 00:42:11,230 --> 00:42:14,490 Kaya kung naka-mute false, kaya kung hindi naka-mute, 1031 00:42:14,490 --> 00:42:15,660 panatilihing-play ang tunog. 1032 00:42:15,660 --> 00:42:17,350 Karapatan lahat, maayos, paano naming ihinto ang bagay na ito? 1033 00:42:17,350 --> 00:42:19,310 >> Well, tingnan natin sa pangalawang script pababa doon. 1034 00:42:19,310 --> 00:42:22,130 Ang pangalawang script sabi naka-mute sa zero. 1035 00:42:22,130 --> 00:42:25,180 Mapansin ring orange, kaya kung ano ang scratch ito kulay 1036 00:42:25,180 --> 00:42:27,400 bloke sa parehong lilim kung nito-uri-uriin 1037 00:42:27,400 --> 00:42:28,850 ng lohikal na may kaugnayan. 1038 00:42:28,850 --> 00:42:32,850 Kaya tulad ng naka-mute up itaas ay orange, kaya ay naka-mute pababa dito 1039 00:42:32,850 --> 00:42:34,060 nabanggit sa orange block. 1040 00:42:34,060 --> 00:42:36,170 Ngunit ito ay isang variable na asignatura, kaya tulad sa 1041 00:42:36,170 --> 00:42:39,170 alhebra, mayroon kang x at y at z, programming mayroon kang 1042 00:42:39,170 --> 00:42:41,440 variable, ngunit sila sa pangkalahatan - 1043 00:42:41,440 --> 00:42:42,580 natin i-pause para sa isang sandali at figure kung paano 1044 00:42:42,580 --> 00:42:44,280 upang itigil ang tumatahol na ito. 1045 00:42:44,280 --> 00:42:45,480 Paano ko gawin ito? 1046 00:42:45,480 --> 00:42:46,480 [Selyo aw-aw] 1047 00:42:46,480 --> 00:42:47,920 David MALAN: Okay. 1048 00:42:47,920 --> 00:42:49,490 Ito tumigil. Okay. 1049 00:42:49,490 --> 00:42:52,230 >> Kaya tulad sa algebra mayroon kang variable x, y, at z, ngunit sa 1050 00:42:52,230 --> 00:42:55,260 mga programa, nagkakaroon ang mga variable tulad ng x, y, at z ay 1051 00:42:55,260 --> 00:42:57,330 frowned kapag dahil wala ang mga ito sa lahat ng nagpapahayag. 1052 00:42:57,330 --> 00:43:00,070 Wala silang semantiko kahulugan sa anumang, kaya sa karamihan 1053 00:43:00,070 --> 00:43:02,110 wika programming, mga variable ay maaaring magkaroon ng ganap na 1054 00:43:02,110 --> 00:43:05,270 nasimulan pangalan o salita o parirala, gusto naka-mute, sasabihin 1055 00:43:05,270 --> 00:43:06,030 ano ang ginagawa nila. 1056 00:43:06,030 --> 00:43:09,380 Kaya din ang pangalawang script na ito ay nakikinig magpakailanman, at sinabi 1057 00:43:09,380 --> 00:43:12,100 kung ang key, ang keyboard key ng Space, 1058 00:43:12,100 --> 00:43:13,370 pinindot, tandang pananong. 1059 00:43:13,370 --> 00:43:16,300 Kaya may isang kondisyon na may isang Boolean expression na 1060 00:43:16,300 --> 00:43:19,010 pagpunta upang sagutin ang isang tanong alinman makatotohanan o mali, 1061 00:43:19,010 --> 00:43:22,880 Mayroon akong sa loob nito KUNG ang space key ay pinindot AT 1062 00:43:22,880 --> 00:43:28,020 KUNG naka-mute ay zero, itakda naka-mute sa isa, magtakda ng ibang tao naka-mute sa zero. 1063 00:43:28,020 --> 00:43:30,510 Ang iba pang tinidor Kaya sa kalsada, at paunawa kung paano nag ko 1064 00:43:30,510 --> 00:43:33,500 Nested ang dalawang KUNG kondisyon, ay isang paraan ng pag-check ang 1065 00:43:33,500 --> 00:43:36,610 Space Bar pinindot dahil kung gayon, alinman ko nais upang pumunta ito 1066 00:43:36,610 --> 00:43:38,000 paraan o na paraan. 1067 00:43:38,000 --> 00:43:40,210 At paano ko saliwain ang halaga ng naka-mute? 1068 00:43:40,210 --> 00:43:41,410 Kong suriin ito zero? 1069 00:43:41,410 --> 00:43:45,890 Kung gayon, gawin itong isa, tao gawin itong zero sa samakatuwid na magpalipat-lipat 1070 00:43:45,890 --> 00:43:47,670 nito dalawang estado. 1071 00:43:47,670 --> 00:43:50,030 >> Karapatan lahat, kaya kami ay may pagkatapos ay ang ilan sa mga pangunahing 1072 00:43:50,030 --> 00:43:50,540 constructs. 1073 00:43:50,540 --> 00:43:52,810 Mayroon kami ng Boolean expression, at mapagtanto rin, ito ay 1074 00:43:52,810 --> 00:43:54,050 hindi lahat na pamilyar. 1075 00:43:54,050 --> 00:43:56,730 Sa katunayan, narito ang isang mabilis na screenshot ng kurso sa Harvard CS50 1076 00:43:56,730 --> 00:43:59,740 shopping tool, at anumang website out doon na may checkbox 1077 00:43:59,740 --> 00:44:02,420 at drop down na talaga, lahat ng oras na ito, na ginagamit 1078 00:44:02,420 --> 00:44:03,430 Boolean expression. 1079 00:44:03,430 --> 00:44:05,760 Sa kasong ito dito, kung ikaw ay i-click ang checkbox sa tabi ng 1080 00:44:05,760 --> 00:44:08,620 Siyempre mas malaki kaysa sa o katumbas ng 4.5, o sa parehong sa tabi 1081 00:44:08,620 --> 00:44:11,200 faculty, ka ng pagtukoy ng isang Boolean expression. 1082 00:44:11,200 --> 00:44:14,780 Ipakita sa akin ng mga kurso para sa kung saan ang expression na ito ay totoo. 1083 00:44:14,780 --> 00:44:17,080 O sa kanan, hindi kontrahan na may mga kurso ako 1084 00:44:17,080 --> 00:44:20,440 pagkuha, kung iyon ay naka-check, pagkatapos ay oo, gusto mong mag-check 1085 00:44:20,440 --> 00:44:22,890 kondisyon na, iba pang gusto mong huwag pansinin ang mga ito. 1086 00:44:22,890 --> 00:44:25,170 Kaya Boolean expression ay uri ng buong, ngunit kapag 1087 00:44:25,170 --> 00:44:28,080 ilagay namin ang mga ito sa mga kondisyon, kung KUNG kundisyon, KUNG 1088 00:44:28,080 --> 00:44:30,480 ELSEs, o maaari naming kahit gayahin mas malalim 1089 00:44:30,480 --> 00:44:32,830 mga antas ng, KUNG Iba Pa KUNG iba pa - 1090 00:44:32,830 --> 00:44:34,430 kaya na uri ng estado tatluhan. 1091 00:44:34,430 --> 00:44:36,920 Maaari kang pumunta sa ganitong paraan o ang paraan na ito o ganitong paraan. 1092 00:44:36,920 --> 00:44:39,680 Maaari naming panatilihin ang nesting bagay upang pumunta sa iba't ibang direksyon. 1093 00:44:39,680 --> 00:44:41,800 >> Kaya sa simula ay may mga loop na ito, tulad ng Habang Panahon. 1094 00:44:41,800 --> 00:44:44,750 Ay may mga tampok tulad ng Ulitin 10, ang ilang 1095 00:44:44,750 --> 00:44:46,260 tiyak na bilang ng beses. 1096 00:44:46,260 --> 00:44:49,040 Mayroon kaming ang kakayahan na ngayon upang i-set ng mga variable, kaya sa kasong ito 1097 00:44:49,040 --> 00:44:51,810 Ko na ipinahayag, halimbawa, ang isang variable na tinatawag na medyas. 1098 00:44:51,810 --> 00:44:54,340 Ko na nasimulan sa 0, at na isa pang direksyon 1099 00:44:54,340 --> 00:44:56,940 hindi kami nagsagawa dito sa Joseph, kung saan maaaring ko 1100 00:44:56,940 --> 00:45:00,150 lamang subaybayan kung gaano karaming mga medyas na may ko sa at wakasan 1101 00:45:00,150 --> 00:45:03,490 ang programa kapag ang halaga na variable 2. 1102 00:45:03,490 --> 00:45:05,660 Iyon ay isa pang paraan ng uri ng generalizing na 1103 00:45:05,660 --> 00:45:08,820 problema at paggawa ng isang bagay muli at muli. 1104 00:45:08,820 --> 00:45:12,080 Well, sabihin sige at ipakilala ngayon ng ilang mga bagong bagay. 1105 00:45:12,080 --> 00:45:14,100 Kaya ang mga may bago programing karanasan ay 1106 00:45:14,100 --> 00:45:17,120 alam na ng maraming mga wika may array, o vectors o 1107 00:45:17,120 --> 00:45:19,970 listahan, at sa katunayan, sa simula ay may isang bagay na tulad nito, masyadong. 1108 00:45:19,970 --> 00:45:22,510 Kaya sabihin makita kung hindi namin maaaring tumagal bagay sa susunod na antas dito. 1109 00:45:22,510 --> 00:45:24,920 Kung mayroon ko ang kakayahan, ngayon, na may mga piraso ng puzzle sa 1110 00:45:24,920 --> 00:45:29,080 magdagdag ng isang bagay, tulad ng isang salita o numero, sa isang variable, maaari ko 1111 00:45:29,080 --> 00:45:30,550 magsimula sa maipon ang mga bagay. 1112 00:45:30,550 --> 00:45:33,630 At ito ay talagang kaakit-akit na mga bagay para sa mga bagay tulad ng mga laro, 1113 00:45:33,630 --> 00:45:35,810 papel-laro kung saan ikaw ay ang uri ng paglalakad sa paligid 1114 00:45:35,810 --> 00:45:38,600 ilang pantasiya mundo pagkolekta ng mga bagay, pagpili ng mga bagay up, 1115 00:45:38,600 --> 00:45:39,900 pagkamit ng mga puntos, o ang gusto. 1116 00:45:39,900 --> 00:45:42,310 Baka gusto mong subaybayan ng ilang mga uri ng imbentaryo, at 1117 00:45:42,310 --> 00:45:45,180 katunayan, na ang isa sa aming dating na mga mag-aaral dito ginawa na may 1118 00:45:45,180 --> 00:45:47,750 isang bagay na tinatawag Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Kaya ipaalam sa akin sige at buksan ito bagay dito, at sa 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, mayroon kaming mundong ito sa itaas. 1121 00:45:56,260 --> 00:45:58,820 Kaya hayaan mo akong magpatuloy at i-click ang berdeng bandila. 1122 00:45:58,820 --> 00:46:01,040 Abiso sa kaliwang tuktok ng ilang mga uri ng imbentaryo. 1123 00:46:01,040 --> 00:46:04,110 Na ipinatupad sa simula ng kung anong kami tatawag sa isang array o 1124 00:46:04,110 --> 00:46:06,890 isang listahan, at ngayon ay mayroon kaming maliit na animation na ito. 1125 00:46:06,890 --> 00:46:10,440 Kaya lang namin na sinimulan ng mas maaga na may ito kuwento ng pag-ibig ng cookie, 1126 00:46:10,440 --> 00:46:13,320 at pagkatapos namin sumulong sa mga pusa at sea lion, ngayon maaari kaming magkaroon 1127 00:46:13,320 --> 00:46:15,100 mga bagay na mas interactive. 1128 00:46:15,100 --> 00:46:18,250 At ito maliit na asul na tao, maaari ako magsisimula upang ilipat sa paligid ng kanyang 1129 00:46:18,250 --> 00:46:19,500 maliit na bahay dito. 1130 00:46:19,500 --> 00:46:22,570 Kaya kamukha niya nakuha sa isang exit dito, kaya gumagamit ako ng 1131 00:46:22,570 --> 00:46:25,260 ang mga arrow key, hanggang, pababa, pakaliwa kanan. 1132 00:46:25,260 --> 00:46:28,370 At ngayon ako sa labas, kaya ipaalam sa kung ano ang Mayroon akong dito. 1133 00:46:28,370 --> 00:46:30,920 Mukhang isang orange, at sa katunayan, sa lalong madaling hinawakan ko ang 1134 00:46:30,920 --> 00:46:33,110 orange, maipo-plopped sa aking imbentaryo. 1135 00:46:33,110 --> 00:46:35,640 Kung pumunta ako sa paglipas dito sa seresa, ngayon ay mayroon akong isang bagay 1136 00:46:35,640 --> 00:46:36,760 tao sa aking imbentaryo. 1137 00:46:36,760 --> 00:46:39,100 At ito ay lahat ng maganda at nakatutuwa, ngunit sa tingin tungkol sa kung paano, ngayon, ito 1138 00:46:39,100 --> 00:46:39,840 ay ipinatupad. 1139 00:46:39,840 --> 00:46:42,490 Well, mayroon kaming ang paniwala na ito ng isang listahan, at na tila isang 1140 00:46:42,490 --> 00:46:45,470 piraso ng puzzle mo lamang sabihin kung ano ang gusto mong idagdag dito, magdagdag 1141 00:46:45,470 --> 00:46:46,950 orange, idagdag ang seresa. 1142 00:46:46,950 --> 00:46:48,540 Ngayon, kung ano ang ito maliit na asul na tao ginagawa? 1143 00:46:48,540 --> 00:46:49,810 Well, siya engkanto. 1144 00:46:49,810 --> 00:46:52,190 At baka, orange at ang seresa - 1145 00:46:52,190 --> 00:46:54,140 nila ang kanilang mga sarili ay hiwalay na sprites. 1146 00:46:54,140 --> 00:46:56,980 At paggamit ng mga kondisyon sa Boolean expression, ang 1147 00:46:56,980 --> 00:47:00,530 mag-aaral ay malamang na magagawang upang ipahayag KUNG asul na tao ay 1148 00:47:00,530 --> 00:47:04,590 pagpindot seresa pagkatapos ay idagdag ang seresa salita sa kanyang 1149 00:47:04,590 --> 00:47:07,890 imbentaryo, at pagkatapos ring itago ang cherry engkanto. 1150 00:47:07,890 --> 00:47:10,600 Kaya sa ilalim ng hood, may marahil pa rin ay isang seresa 1151 00:47:10,600 --> 00:47:11,350 engkanto doon. 1152 00:47:11,350 --> 00:47:14,160 Namin ang sinabi sa ito upang maging epektibo invisible. 1153 00:47:14,160 --> 00:47:16,340 >> Ngayon, kung panatilihing ako paglalakad sa paglipas dito, maaari rin naming gawin ito 1154 00:47:16,340 --> 00:47:19,150 proximal bagay, kung saan ako maaaring pumunta at basahin ang sign. 1155 00:47:19,150 --> 00:47:23,170 Kaya kung ng asul na tao paghawak ng sign, maaari naming sabihin block na ito 1156 00:47:23,170 --> 00:47:26,455 tulad lamang ng pusa nagsalita sa amin sa salita, kumusta, mas maaga, "May 1157 00:47:26,455 --> 00:47:26,880 ilang prutas? 1158 00:47:26,880 --> 00:47:29,290 Dalhin ito sa lugar ng prutas. "Lahat ng karapatan, kaya ngayon, tila, 1159 00:47:29,290 --> 00:47:30,550 Ko ang aking direksyon. 1160 00:47:30,550 --> 00:47:33,050 Ako maaaring pumunta dito sa lugar ng prutas, linya sa aking sarili 1161 00:47:33,050 --> 00:47:33,740 na ang pinto. 1162 00:47:33,740 --> 00:47:35,390 Ngayon, ako in dito. 1163 00:47:35,390 --> 00:47:38,120 Maaari kong pumunta sa tao sa counter. 1164 00:47:38,120 --> 00:47:40,330 Nakita niya na ako malapit sa kanya, kaya hindi ito kailangang maging 1165 00:47:40,330 --> 00:47:46,780 medyo identically paghawak, at ako won ang laro. 1166 00:47:46,780 --> 00:47:49,890 Kaya mayroon kaming Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> Upang maaari naming gawin ang mga bagay na mas advanced kaysa ito. 1168 00:47:52,200 --> 00:47:53,200 Maaari naming magdagdag ng tunog. 1169 00:47:53,200 --> 00:47:54,610 Maaari naming magdagdag ng palsipikado randomness. 1170 00:47:54,610 --> 00:47:56,260 Maaari naming magdagdag ng pagiging kumplikado. 1171 00:47:56,260 --> 00:47:58,490 Hayaan akong sige dito, at sa halip na gawin ito sa aking sarili, 1172 00:47:58,490 --> 00:48:01,240 hayaan mo akong ipakita sa iyo ang isa sa mga mas sopistikadong mga pagsusumite 1173 00:48:01,240 --> 00:48:06,640 nakuha namin ang nakaraang taon mula sa isang tiyak na isang tao na may pangalang Blake. 1174 00:48:06,640 --> 00:48:08,910 Maaari naming magkaroon ng isang volunteer na ay kumportable sa paglitaw sa 1175 00:48:08,910 --> 00:48:12,600 camera at para sa laro? 1176 00:48:12,600 --> 00:48:13,450 Paano tungkol doon? 1177 00:48:13,450 --> 00:48:15,380 Halika sa up. 1178 00:48:15,380 --> 00:48:19,680 Lahat ng karapatan, kaya ang laro na mayroon ka lamang hindi- 1179 00:48:19,680 --> 00:48:20,780 nagboluntaryo upang i-play - 1180 00:48:20,780 --> 00:48:25,910 [Palakpakan] 1181 00:48:25,910 --> 00:48:28,610 David MALAN: - isang bagay mula sa nakalipas na panahon na tinatawag na 1182 00:48:28,610 --> 00:48:30,100 "Frogger." Ano ang iyong pangalan? 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: Ito ay tulad ng Brenda na may b. 1186 00:48:32,530 --> 00:48:33,190 David MALAN: Okay, Renda. 1187 00:48:33,190 --> 00:48:33,590 David. 1188 00:48:33,590 --> 00:48:34,580 Masaya akong makilala kayo. 1189 00:48:34,580 --> 00:48:38,690 >> Kaya dito sa "Frogger," at kung maaari naming taasan ang dami ng lang 1190 00:48:38,690 --> 00:48:39,780 ilang sandali, hindi mo ito kaunti 1191 00:48:39,780 --> 00:48:41,010 berdeng palaka sa ibaba. 1192 00:48:41,010 --> 00:48:43,940 Maaari mong gamitin ang kaliwa, kanan, pataas at pababa, at ang iyong layunin ay 1193 00:48:43,940 --> 00:48:46,510 cross kalye, tumawid ng ilog, at pindutin ang liryo Pad 1194 00:48:46,510 --> 00:48:47,760 sa tuktok. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Isa pang t - 1197 00:48:54,630 --> 00:48:56,400 redo, ang lahat ng karapatan? 1198 00:48:56,400 --> 00:48:58,890 Natin hit stop. 1199 00:48:58,890 --> 00:49:00,140 Walang nakita na. 1200 00:49:10,470 --> 00:49:12,930 [Palakpakan] 1201 00:49:17,023 --> 00:49:17,850 [Palakpakan] 1202 00:49:17,850 --> 00:49:19,341 David MALAN: Oo. 1203 00:49:19,341 --> 00:49:20,832 Mahusay na tapos na. 1204 00:49:20,832 --> 00:49:22,082 Mahusay, salamat sa iyo. 1205 00:49:27,300 --> 00:49:29,430 >> Kaya na may Frogger. Ngayon na alam mo kung ano ang iyong 1206 00:49:29,430 --> 00:49:32,170 nakuha inyong sarili sa, isa pang volunteer para sa isang magkakaibang 1207 00:49:32,170 --> 00:49:34,910 laro isinumite ng ibang mag-aaral. 1208 00:49:34,910 --> 00:49:35,560 Gusto ba ninyong sumama sa up? 1209 00:49:35,560 --> 00:49:36,576 Ano ang iyong pangalan? 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 Lahat ng karapatan, Richard, ay sa up. 1213 00:49:39,732 --> 00:49:42,187 [Palakpakan] 1214 00:49:45,140 --> 00:49:47,030 David MALAN: Mayroon kang isang bagay na makikita tunog 1215 00:49:47,030 --> 00:49:54,180 pamilyar sa lalong madaling panahon, kaya narito ang iyong mga tagubilin. 1216 00:49:54,180 --> 00:49:56,580 Kaya sa isang sandali, ang ilang mga piraso ng puzzle ay pumunta upang mag-scroll pataas 1217 00:49:56,580 --> 00:49:58,150 mula sa screen na hitsura alinman sa kaliwa 1218 00:49:58,150 --> 00:49:59,450 o pakanan pataas o pababa. 1219 00:49:59,450 --> 00:50:01,230 Ay pagpunta sa pindutin ang mga arrow key sa paraang 1220 00:50:01,230 --> 00:50:04,540 na ito ay tumutugma sa mga piraso ng puzzle na lining sa 1221 00:50:04,540 --> 00:50:05,720 ang mga placeholder sa itaas. 1222 00:50:05,720 --> 00:50:07,500 Kaya kapag mo ang kaliwang arrow, at mga linya sa kaliwa 1223 00:50:07,500 --> 00:50:09,260 arrow, pindutin ang kaliwang arrow. 1224 00:50:09,260 --> 00:50:10,866 Maaari kang magsimula. 1225 00:50:10,866 --> 00:50:13,674 [Music - "malakas" KAYNE WEST] 1226 00:51:21,222 --> 00:51:23,470 David MALAN: Lahat ng karapatan, malaking ikot ng papuri para sa Richard. 1227 00:51:23,470 --> 00:51:26,082 [Palakpakan] 1228 00:51:32,426 --> 00:51:33,720 David MALAN: Tunay na magaling. 1229 00:51:33,720 --> 00:51:34,110 Salamat sa inyo. 1230 00:51:34,110 --> 00:51:37,104 [Palakpakan] 1231 00:51:41,600 --> 00:51:44,330 >> David MALAN: Kaya masaya at, tila, uri ng 1232 00:51:44,330 --> 00:51:46,590 intimidating bilang maaaring ito ay upang ipatupad ang isang bagay bilang 1233 00:51:46,590 --> 00:51:49,550 tila sopistikadong bilang na ito, nauunawaan natin na ang mag-aaral 1234 00:51:49,550 --> 00:51:51,450 ay hindi itinakda at magsulat lamang ito nang sabay-sabay. 1235 00:51:51,450 --> 00:51:54,200 Sa halip, maaari mong masira ang isang problema bilang tila complex 1236 00:51:54,200 --> 00:51:56,840 ng ito sa mas maliit na piraso, at ito, masyadong, ay 1237 00:51:56,840 --> 00:51:57,560 pagpunta sa isang tema. 1238 00:51:57,560 --> 00:52:00,490 Ang pinakamasama bagay na maaari mong gawin sa pagsusulat ng isang programa sa karamihan ng anumang 1239 00:52:00,490 --> 00:52:03,480 wika ay umupo, kumuha ng talagang nabigla, isulat ang 1240 00:52:03,480 --> 00:52:07,200 buong sumpain bagay, at pagkatapos lamang umaasa na ito ay gumagana sa pamamagitan ng 1241 00:52:07,200 --> 00:52:08,510 oras na tapos ka na sa pagsusulat. 1242 00:52:08,510 --> 00:52:10,920 Sa halip, ang proseso ng programming dapat pangkalahatan 1243 00:52:10,920 --> 00:52:13,440 napaka sinadya, napaka umuulit, kung saan mo lamang 1244 00:52:13,440 --> 00:52:16,955 itakda ang napakaliit na hakbang para sa inyong sarili, kagat-laki na mga piraso 1245 00:52:16,955 --> 00:52:20,070 ang gusto mong kumagat na lubos, at iba pa na mayroon kang mga katinuan 1246 00:52:20,070 --> 00:52:21,740 pagsusuri, kaunti milestones na maaari mong matugunan. 1247 00:52:21,740 --> 00:52:24,170 At pagkatapos kang bumuo sa ibabaw ng mga upang lumikha ng higit 1248 00:52:24,170 --> 00:52:25,400 sopistikadong bagay pa rin. 1249 00:52:25,400 --> 00:52:26,820 >> Kaya halimbawa, kung paano kami pumunta tungkol sa 1250 00:52:26,820 --> 00:52:28,380 pagpapatupad ng isang laro tulad nito? 1251 00:52:28,380 --> 00:52:30,160 Well, lantaran, Gusto ko tiyak magsimula sa pamamagitan lamang 1252 00:52:30,160 --> 00:52:32,260 sumusuporta sa isang key sa isang pagkakataon. 1253 00:52:32,260 --> 00:52:34,840 Sabihin lamang ipatupad ang suporta para sa kaliwang arrow. 1254 00:52:34,840 --> 00:52:37,610 Kaya ang mag-aaral ay may sa paanuman lumikha sa Photoshop, o sa 1255 00:52:37,610 --> 00:52:40,340 Scratch mismo gamit ang maliit na graphical editor, 1256 00:52:40,340 --> 00:52:42,680 arrow key na kamukha ang isa sa tuktok umalis doon, lamang 1257 00:52:42,680 --> 00:52:43,910 sa kulay abong placeholder. 1258 00:52:43,910 --> 00:52:46,610 Pagkatapos ang mag-aaral ay may upang malaman kung anong x, y coordinate sa 1259 00:52:46,610 --> 00:52:48,380 ilagay ang mga ito, kung saan upang ilagay ang mga ito sa window. 1260 00:52:48,380 --> 00:52:50,730 0, 0 dito, kaya mayroon kang upang malaman kung ang bilang ng mga 1261 00:52:50,730 --> 00:52:53,690 pixels, o tuldok, upang i-offset ang arrow na iyon mula 1262 00:52:53,690 --> 00:52:54,800 sa tuktok ng screen. 1263 00:52:54,800 --> 00:52:57,040 At pagkatapos ay sabay-sabay na sa lugar, ang iyong programa ay hindi aktwal na 1264 00:52:57,040 --> 00:53:00,380 gawin pa, kaya mong kailangan ng pangalawang engkanto, 1265 00:53:00,380 --> 00:53:04,470 Halimbawa ng isang kulay berdeng arrow na din na nakaturo sa kaliwa, at 1266 00:53:04,470 --> 00:53:06,710 pagkatapos ay kailangan upang simulan ang pagsusulat ng ilang script para dito. 1267 00:53:06,710 --> 00:53:09,310 >> At napansin mo, marahil, ang mga bagay na ito sinimulan darating sa 1268 00:53:09,310 --> 00:53:11,470 iba't ibang mga bilis, at ang mga kulay ay sa iba't-ibang 1269 00:53:11,470 --> 00:53:13,750 lokasyon, at na dahil ang mag-aaral ay gumamit ng kaunting 1270 00:53:13,750 --> 00:53:14,990 palsipikado randomness. 1271 00:53:14,990 --> 00:53:17,440 At sa pamamagitan ng palsipikado randomness, ko lang ang ibig sabihin pumili ng isang numero 1272 00:53:17,440 --> 00:53:20,230 sa pagitan ng isang bagay at isang bagay dahil maaari mong 1273 00:53:20,230 --> 00:53:22,890 magsimula sa mga bagay sa mapa, tulad ng kung ang numero ay sa pagitan ng isa at 1274 00:53:22,890 --> 00:53:24,940 limang, na rin, sabihin bagay ang berdeng. 1275 00:53:24,940 --> 00:53:28,290 Kung ito ay sa pagitan ng 6 at 10, sabihin gawin ang mga piraso ng puzzle 1276 00:53:28,290 --> 00:53:29,730 pula sa halip. 1277 00:53:29,730 --> 00:53:31,840 Hangga't mayroon kang isang paraan ng pagbuo ng ilang uri ng 1278 00:53:31,840 --> 00:53:34,730 randomness, maaari mong gumawa ng mga pagpapasya batay sa na 1279 00:53:34,730 --> 00:53:35,260 randomness. 1280 00:53:35,260 --> 00:53:37,490 At panatilihing ko sinasabi palsipikado random dahil may 1281 00:53:37,490 --> 00:53:38,390 maliit na marumi lihim. 1282 00:53:38,390 --> 00:53:41,130 Computer ay hindi maaaring makabuo ng mga random na numero. 1283 00:53:41,130 --> 00:53:42,800 Maaari silang lamang gawin kung ano ang kanilang sinabi sa dahil 1284 00:53:42,800 --> 00:53:44,110 sila aparatong gawa ng tao. 1285 00:53:44,110 --> 00:53:45,880 Hindi lamang nila hulaan ang isang numero tulad namin tao 1286 00:53:45,880 --> 00:53:46,960 pakiramdam tulad ng aming makakaya. 1287 00:53:46,960 --> 00:53:50,970 Computer na A ay upang gawin ang isang bagay matematika sa magsalamangka ang 1288 00:53:50,970 --> 00:53:53,970 ilusyon ng matematika bilang, minsan gamit ang 1289 00:53:53,970 --> 00:53:57,420 kasalukuyang araw ng panahon bilang isang input sa pag-uunawa kung ano 1290 00:53:57,420 --> 00:53:59,570 numero upang bumalik, ngunit higit pa sa na ng isa pang oras. 1291 00:53:59,570 --> 00:54:02,060 Sa ngayon, alam na maaari naming makabuo ng palsipikado randomness. 1292 00:54:02,060 --> 00:54:04,610 >> Kaya sa sandaling mayroon akong ang kakayahan para sa kaliwang arrow upang magsimula 1293 00:54:04,610 --> 00:54:07,990 lumilitaw sa magkaibang panahon at sa iba't ibang mga bilis, pagkatapos 1294 00:54:07,990 --> 00:54:10,230 Maaari ba akong bumalik at magdagdag ng ilan sa mga KUNG kondisyon. 1295 00:54:10,230 --> 00:54:14,950 KUNG engkanto na ito ng pagpindot sa iba pang isa, AT ang kaliwang arrow 1296 00:54:14,950 --> 00:54:16,330 key ay pinindot - 1297 00:54:16,330 --> 00:54:17,900 kaya tatlong kundisyon sa kasong iyon. 1298 00:54:17,900 --> 00:54:20,750 Ang maaari kong gamitin na AT harangan marahil, sa kasong iyon - 1299 00:54:20,750 --> 00:54:23,210 Gusto kong sige at dagdagan ang iskor. 1300 00:54:23,210 --> 00:54:25,130 At sa itaas, mayroon kami ng puntos, mayroon kaming Galing, 1301 00:54:25,130 --> 00:54:26,510 Mahusay, Magandang, at Boo. 1302 00:54:26,510 --> 00:54:29,810 Kaya walang tila limang mga variable na ito mag-aaral 1303 00:54:29,810 --> 00:54:32,220 ginagamit upang subaybayan ng mga iba't-ibang mga sukatan. 1304 00:54:32,220 --> 00:54:34,180 Kaya sa maikling salita, ang resulta ay kamangha-manghang. 1305 00:54:34,180 --> 00:54:37,320 Ito ay masaya, masaya upang i-play, ito nakakaengganyo, ngunit ito ay hindi 1306 00:54:37,320 --> 00:54:38,380 kung saan ang mag-aaral ay nagsimulang. 1307 00:54:38,380 --> 00:54:42,210 Siya ay nagsimula sa isang mas maliit na hanay ng mga hakbang. 1308 00:54:42,210 --> 00:54:44,470 >> Kaya kung ano ang ilang mga iba pang mga bloke ng gusali na aming makakaya 1309 00:54:44,470 --> 00:54:45,760 lalahin sa mga programang ito? 1310 00:54:45,760 --> 00:54:48,750 Well, doon ang iba pang mga konsepto na ito sa karamihan ng mga wika, 1311 00:54:48,750 --> 00:54:50,730 Scratch kasama ng mga ito, na kilala bilang mga thread. 1312 00:54:50,730 --> 00:54:54,660 Kaya computer ng isang aktwal na hindi talagang gawin ang maramihang mga bagay ng 1313 00:54:54,660 --> 00:54:56,730 oras, hindi bababa sa hindi karaniwang. 1314 00:54:56,730 --> 00:54:59,930 Sa halip, ang computer ng isang pangkalahatang ay isa lamang CPU, at kahit 1315 00:54:59,930 --> 00:55:02,230 kahit na ang mga computer ay sobrang mabilis at maaari, samakatuwid, 1316 00:55:02,230 --> 00:55:04,740 lumikha ng ilusyon ng paggawa ng maraming mga bagay nang sabay-sabay - 1317 00:55:04,740 --> 00:55:06,180 check ang iyong mail, pagkuha ng instant 1318 00:55:06,180 --> 00:55:07,770 mensahe, pag-print ng isang dokumento - 1319 00:55:07,770 --> 00:55:11,530 talaga, ang computer ay paglukso mula sa pag-print sa IMing 1320 00:55:11,530 --> 00:55:15,160 sa pag-email, bumalik at pabalik at likod at balik kaya mabilis na namin 1321 00:55:15,160 --> 00:55:18,170 mabagal mag-isip mga tao lamang hindi mapagtanto na ito ay aktwal na 1322 00:55:18,170 --> 00:55:21,240 pagpapatakbo ng mga programa ng kaunti sa isang pagkakataon. 1323 00:55:21,240 --> 00:55:23,960 Ngayon, ito ay isang bit ng isang puting nagsisinungaling ang mga araw na ito dahil, sa kasalukuyan, 1324 00:55:23,960 --> 00:55:26,740 maraming aming mga computer ay kung ano ay tinatawag na multi-core, kaya 1325 00:55:26,740 --> 00:55:29,760 isa CPU ngunit maramihang mga core, na kung saan ay uri ng tulad ng 1326 00:55:29,760 --> 00:55:31,760 sa pagkakaroon ng maramihang mga CPUs. 1327 00:55:31,760 --> 00:55:35,020 >> At kaya minsan, computer maaari tunay gawin ang maramihang mga bagay 1328 00:55:35,020 --> 00:55:38,500 sa isang pagkakataon, ngunit sa pangkalahatan sa loob ng isang programa, ang mga programa 1329 00:55:38,500 --> 00:55:40,200 umasa sa mga bagay na ito na tinatawag thread. 1330 00:55:40,200 --> 00:55:43,160 Kaya thread ay uri ng tulad ng isang pinaliit na programa na maaari 1331 00:55:43,160 --> 00:55:46,540 umiiral sa tabi ng isa pang miniature programa at maaaring tumakbo 1332 00:55:46,540 --> 00:55:51,250 sa parallel, o hindi bababa sa ay maaaring tumakbo sa ilalim ng ilusyon na 1333 00:55:51,250 --> 00:55:52,990 sila ay tumatakbo nang sabay-sabay. 1334 00:55:52,990 --> 00:55:55,060 Kaya sa simula ay sumusuporta sa mga bagay na ito na tinatawag thread. 1335 00:55:55,060 --> 00:55:57,580 Maaari kang magkaroon ng maramihang mga script na e-execute nang sabay-sabay, tulad namin 1336 00:55:57,580 --> 00:56:00,220 ginawa sa mga leon dagat, at ito ay nagbibigay-daan sa amin upang aktwal 1337 00:56:00,220 --> 00:56:03,620 pagkatapos ay pakikipag-ugnayan kabilang ang mga sprites. 1338 00:56:03,620 --> 00:56:09,910 Hayaan akong sige dito at hilahin, sabihin nating, thread, at 1339 00:56:09,910 --> 00:56:11,870 i-play ito tulad ng sumusunod. 1340 00:56:11,870 --> 00:56:13,950 Mayroon kaming dalawang sprites, bawat isa sa kung kanino magpapadala kami makita 1341 00:56:13,950 --> 00:56:15,720 may isang script lang. 1342 00:56:15,720 --> 00:56:18,000 At napansin mo mukhang ilang katalinuhan sa 1343 00:56:18,000 --> 00:56:21,335 pusa sa isang ito sapagkat siya ay nakakakuha ng mas malapit - 1344 00:56:21,335 --> 00:56:21,730 [ROARS] 1345 00:56:21,730 --> 00:56:24,540 David MALAN: - at mas malapit sa maliit na ibon. 1346 00:56:24,540 --> 00:56:26,570 >> Kaya kung paano ang ibon operating? 1347 00:56:26,570 --> 00:56:28,200 Well, sabihin tingnan sa ibon muna. 1348 00:56:28,200 --> 00:56:31,220 Ang ibon script sinabi kapag ang berdeng bandila-click, pumunta sa x 1349 00:56:31,220 --> 00:56:34,020 katumbas ng negatibong 115 at y katumbas ng 150. 1350 00:56:34,020 --> 00:56:37,010 Kaya ko lang naisip ang isang random na lokasyon kung saan Nais kong ang 1351 00:56:37,010 --> 00:56:39,580 ibon upang simulan, at ko lang plopped kanya doon sa pamamagitan ng default. 1352 00:56:39,580 --> 00:56:42,800 Pagkatapos Habang Panahon KUNG hindi pagpindot sa pusa, kaya ito ay isang iba't ibang 1353 00:56:42,800 --> 00:56:45,080 uri ng looping bumuo, ngunit ang parehong ideya, gawin ito muli at 1354 00:56:45,080 --> 00:56:45,780 muli at muli. 1355 00:56:45,780 --> 00:56:49,410 Hangga't hindi ka ng pagpindot sa pusa, ilipat ang tatlong hakbang, at 1356 00:56:49,410 --> 00:56:51,680 kung ikaw ay nasa gilid ng bounce,, kung saan ang uri ng isang 1357 00:56:51,680 --> 00:56:53,320 sumasalamin sa kamalayan ng billiard. 1358 00:56:53,320 --> 00:56:56,140 Kaya na kung paano ibon ay gumagalaw sa palibot ng uri ng 1359 00:56:56,140 --> 00:56:58,890 tila random, ngunit ito lamang dahil ito nagba-bounce off 1360 00:56:58,890 --> 00:57:00,170 ang mga pader sa kasong ito. 1361 00:57:00,170 --> 00:57:03,170 >> Ngayon pusa, samantala, uri ng pagdaraya. 1362 00:57:03,170 --> 00:57:05,520 Cat, kapag ang berdeng bandila click ang, oo, nagsisimula sa 1363 00:57:05,520 --> 00:57:07,390 ilang mga lokasyon, isang random na lokasyon - 1364 00:57:07,390 --> 00:57:09,590 ng hindi bababa sa bahagi bilang bawat ang pick 1365 00:57:09,590 --> 00:57:11,430 random berdeng bloke doon - 1366 00:57:11,430 --> 00:57:14,660 at pagkatapos nang Tuluyan KUNG paghawak sa ibon, play ang tunog ng leon, 1367 00:57:14,660 --> 00:57:15,790 at pagkatapos ay itigil ang script. 1368 00:57:15,790 --> 00:57:18,560 Kaya kapag sinabi ko wakasan, o lumabas bago, ang isang palaisipan 1369 00:57:18,560 --> 00:57:20,600 piraso sa scratch na lang patayin ang programa sa na 1370 00:57:20,600 --> 00:57:22,900 ituro dahil ito uri ng lohikal na tapos. 1371 00:57:22,900 --> 00:57:25,030 Ngunit kung hindi man, dito, mapapansin kung ano ang pagpunta sa mangyayari. 1372 00:57:25,030 --> 00:57:28,470 Point patungo ang mga ibon at ilipat ang isang hakbang. 1373 00:57:28,470 --> 00:57:31,390 Kaya puntong ito papunta sa ibon uri ng isang kalamangan sa pusa 1374 00:57:31,390 --> 00:57:34,640 ay may na ito pauwi in sa gumalaw ibon, at kaya namin 1375 00:57:34,640 --> 00:57:37,370 ngayong gumawa ng program na ito ang lahat ng mas kawili-wiling. 1376 00:57:37,370 --> 00:57:41,520 Sa halip ng paglipat ng isang hakbang sa isang oras bawat CPU ikot ng, bawat 1377 00:57:41,520 --> 00:57:44,280 hampasin toll ng bell, kaya na magsalita, hayaan mo akong magpatuloy at 1378 00:57:44,280 --> 00:57:47,350 ilipat, sabihin nating, ang limang hakbang sa isang pagkakataon bilang pusa. 1379 00:57:47,350 --> 00:57:51,120 I-click ang tatakbo, at ngayon siya talagang hinahanap sa kanya mabilis. 1380 00:57:51,120 --> 00:57:55,620 Kung double namin ito nang higit pa sa 10 mga hakbang, ito uri ng napupunta 1381 00:57:55,620 --> 00:57:56,370 karapatan para sa kanya. 1382 00:57:56,370 --> 00:57:57,750 Ngayon, maaari naming bigyan ang mga ibon, 1383 00:57:57,750 --> 00:57:59,540 marahil, ang isang bit ng isang kalamangan. 1384 00:57:59,540 --> 00:58:02,370 Natin pumunta sa ibon at sabihin sa halip ng paglipat ng tatlong hakbang, 1385 00:58:02,370 --> 00:58:07,140 sabihin ilipat sa kanya 30 hakbang. 1386 00:58:07,140 --> 00:58:08,700 Ngunit siya pa rin Nakakuha nahuli sa katapusan. 1387 00:58:08,700 --> 00:58:10,430 >> Kaya dito, mayroon kaming dalawang thread. 1388 00:58:10,430 --> 00:58:13,230 Ito ay incarcerated sa simula may dalawang script at dalawang 1389 00:58:13,230 --> 00:58:16,150 sprites, ngunit ang mga ideya sa iba pang mga wika na maaari mong 1390 00:58:16,150 --> 00:58:19,220 magsulat, mahalagang, masyadong maraming mga programa tulad nito at may 1391 00:58:19,220 --> 00:58:22,950 patakbuhin ang mga ito tunay, o imaginarily, sa parallel. 1392 00:58:22,950 --> 00:58:25,280 >> Ngayon, mayroon ding ito konsepto sa programming kilala bilang 1393 00:58:25,280 --> 00:58:28,010 kaganapan, at ito ay isang bagay na hindi namin makikita sa C, ang 1394 00:58:28,010 --> 00:58:30,500 wika na kilala bilang C. namin makita ang mga ito patungo sa pagtatapos ng semestre 1395 00:58:30,500 --> 00:58:33,240 sa web programming, kapag naming ipakilala ang JavaScript at ang 1396 00:58:33,240 --> 00:58:36,970 paniwala ng mga pahina ng web ng gusali na dynamic at nakikipag-ugnayan 1397 00:58:36,970 --> 00:58:37,710 sa mga user. 1398 00:58:37,710 --> 00:58:40,430 Kaya sa kasong ito, mayroon kaming isang napaka-simpleng halimbawa ng dalawang 1399 00:58:40,430 --> 00:58:43,860 sprites, batang lalaki at babae, bawat isa sa kanino ay may kani-kanilang mga 1400 00:58:43,860 --> 00:58:48,040 thread, ngunit sa paanuman dalawang mga maki-ugnay sa pamamagitan ng paraan 1401 00:58:48,040 --> 00:58:49,490 ng isang bagay na tinatawag na kaganapan. 1402 00:58:49,490 --> 00:58:52,750 Kaya hayaan mo akong magpatuloy dito at mag-zoom in sa script ang batang lalaki, 1403 00:58:52,750 --> 00:58:54,050 na ganito ang hitsura. 1404 00:58:54,050 --> 00:58:57,510 Kapag ang berdeng bandila click, magpakailanman gawin ang mga sumusunod. 1405 00:58:57,510 --> 00:59:01,510 Kung ang pangunahing Space, o ang Space Bar, ay pinindot, sabihin 1406 00:59:01,510 --> 00:59:03,900 Marco para sa dalawang segundo, na pulos Aesthetic sa 1407 00:59:03,900 --> 00:59:06,860 screen, isang maliit na speech bubble, ngunit pagkatapos ay i-broadcast. 1408 00:59:06,860 --> 00:59:09,240 >> Kaya broadcast ay isa pang piraso ng scratch na 1409 00:59:09,240 --> 00:59:12,050 kinatawan ng isang klase ng mga pag-andar sa mga programa 1410 00:59:12,050 --> 00:59:15,080 na nagpapahintulot sa iba't ibang mga program, ibang thread, 1411 00:59:15,080 --> 00:59:17,120 sa maki-makipag-usap, upang ipadala sa paanuman 1412 00:59:17,120 --> 00:59:18,520 mensahe, isa sa isa pang. 1413 00:59:18,520 --> 00:59:21,930 Pagpasa sa isang piraso ng papel sa klase uri ng mababang tech 1414 00:59:21,930 --> 00:59:22,700 katumbas. 1415 00:59:22,700 --> 00:59:24,300 Kaya broadcast ang kaganapan. 1416 00:59:24,300 --> 00:59:26,210 Maaari kong ipadala ang mensaheng ito, at ang salita ng kaganapan 1417 00:59:26,210 --> 00:59:27,270 ganap na arbitrary. 1418 00:59:27,270 --> 00:59:30,000 Scratch minsan ay may mga drop down, kaya ko lang dumating up 1419 00:59:30,000 --> 00:59:33,230 may isang random na salita tulad ng kaganapan dahil ngayon, ano ang batang lalaki ang ginagawa 1420 00:59:33,230 --> 00:59:36,600 kapag pindutin ko key ay siya broadcast ang kaganapan na ito. 1421 00:59:36,600 --> 00:59:39,270 At kung tiningnan ko ngayon sa script sa batang babae, ang kanyang script ay 1422 00:59:39,270 --> 00:59:42,690 sobrang simple dahil ang lahat siya kailangang gawin ay hindi kumilos kapag 1423 00:59:42,690 --> 00:59:44,100 -click ang berdeng bandila. 1424 00:59:44,100 --> 00:59:47,910 Siya ay dinisenyo upang pagkilos kapag siya na natatanggap ng quote, magpanipi, 1425 00:59:47,910 --> 00:59:51,210 "Kaganapan", at sa puntong iyon, siya ang pakikinig samakatuwid para sa 1426 00:59:51,210 --> 00:59:52,960 ang tinatawag na kaganapan sa muli at muli. 1427 00:59:52,960 --> 00:59:55,790 Sa lalong madaling natatanggap niya na kaganapan, siya ay pagpunta sa shout 1428 00:59:55,790 --> 00:59:57,680 Polo para sa dalawang segundo. 1429 00:59:57,680 --> 01:00:01,090 >> At sa gayon ay maaari mong marahil magpakilala mula sa eksaktong kung ano ang 1430 01:00:01,090 --> 01:00:03,190 susunod na resulta ay magiging. 1431 01:00:03,190 --> 01:00:04,910 Hayaan akong i-click ang berdeng bandila. 1432 01:00:04,910 --> 01:00:06,610 Walang mangyayari dahil kailangan kong gawin kung ano? 1433 01:00:06,610 --> 01:00:07,310 Madla: 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 sabi ni Marco, batang babae sabi ni Polo. 1436 01:00:11,990 --> 01:00:13,670 Ngunit na hindi hard code per se. 1437 01:00:13,670 --> 01:00:16,740 Na maki-komunikasyon sa pagitan ng mga script, kaya na namin ngayon 1438 01:00:16,740 --> 01:00:19,240 may kakayahan upang gumawa ng mga mas kumplikadong mga programa kung saan 1439 01:00:19,240 --> 01:00:22,830 mga dalawang mga sa paanuman maki-pakikipag-ugnayan. 1440 01:00:22,830 --> 01:00:25,260 >> Kaya sa kung ano ang mga direksyon maaari naming gawin ito? 1441 01:00:25,260 --> 01:00:28,260 Well, sa problema hanay 0, talagang, ang layunin ay upang 1442 01:00:28,260 --> 01:00:29,830 magsaya sa scratch. 1443 01:00:29,830 --> 01:00:32,440 Para sa Hacker edition, makikita mo sa halip magsaya ng isang mas 1444 01:00:32,440 --> 01:00:35,850 sopistikadong bersyon ng scratch na tinatawag BYOB, Buuin 1445 01:00:35,850 --> 01:00:38,040 Iyong Sariling bloke, ngunit ang ideya ay ang parehong. 1446 01:00:38,040 --> 01:00:38,780 Magagawa mong - 1447 01:00:38,780 --> 01:00:39,710 Oo, na sinadya. 1448 01:00:39,710 --> 01:00:42,450 Nagmula sa Berkeley. 1449 01:00:42,450 --> 01:00:45,200 BYOB Hacker bersyon edisyon ng ito, ngunit pareho 1450 01:00:45,200 --> 01:00:48,180 , ang mga demograpiko, standard edition at Hacker edisyon magkamukha 1451 01:00:48,180 --> 01:00:50,940 layunin sa kamay para sa mga darating na linggo ay talagang lamang sa sumisid sa 1452 01:00:50,940 --> 01:00:53,050 malalim na, kumuha ng iyong mga kamay marumi na may programming, at gumawa ng 1453 01:00:53,050 --> 01:00:55,240 ng isang bagay na kawili-wili, gawin ang isang bagay na interactive, gumawa 1454 01:00:55,240 --> 01:00:58,020 isang bagay na pansining, gumawa ng isang bagay na masaya upang aktwal na 1455 01:00:58,020 --> 01:01:01,020 ipakita, upang sa pamamagitan ng pagtatapos ng linggo, magkakaroon ka ng isang proyekto, 1456 01:01:01,020 --> 01:01:03,770 hindi lamang para sa iyong unang CS50 pset, ngunit magkakaroon ka magkaroon ng isang 1457 01:01:03,770 --> 01:01:05,620 maliit na isang bagay na maaari mong ipakita ang off ang sa Annenberg sa 1458 01:01:05,620 --> 01:01:08,830 kaibigan o kahit pamilya sa pamamagitan ng pag-upload nito sa MIT website. 1459 01:01:08,830 --> 01:01:11,760 At iba pa tulad ng sinabi ko sa Miyerkules, inaasahan namin ang 90% ng klase, 1460 01:01:11,760 --> 01:01:13,970 pangkalahatan, upang gawin ang mga karaniwang edisyon. 1461 01:01:13,970 --> 01:01:16,660 Napagtanto na mayroon ding outlet na ito para sa mga mo na 1462 01:01:16,660 --> 01:01:18,990 na maaaring mahanap ang iyong sarili ng isang bit na nababato sa mga pangunahing kaalaman 1463 01:01:18,990 --> 01:01:21,650 at talagang gusto sa sumisid sa at Craft isang pangitain mayroon ka nang 1464 01:01:21,650 --> 01:01:25,380 may bago background sa mas friendly na 1465 01:01:25,380 --> 01:01:26,240 kapaligiran. 1466 01:01:26,240 --> 01:01:29,030 >> Kaya hayaan mo akong makuha ang isa pang halimbawa na ang isa sa aming mga dating 1467 01:01:29,030 --> 01:01:33,830 dito na ginawa ang mga mag-aaral at sabihin sa isang maliit na isang bagay sa pamamagitan ng kanta. 1468 01:01:33,830 --> 01:01:37,430 Na katulad, pati na ang play na ito, isipin ang tungkol sa kung paano pumunta ka tungkol sa 1469 01:01:37,430 --> 01:01:40,520 pagpapatupad ng programang ito sa paggamit ng tiyak na ang parehong mga 1470 01:01:40,520 --> 01:01:44,180 mga bloke ng gusali, ng kaunting palsipikado randomness, at 1471 01:01:44,180 --> 01:01:46,010 bit ng pamilyar na kanta. 1472 01:01:46,010 --> 01:01:47,910 Kung maaari naming taasan ang dami ng lang ng kaunti? 1473 01:01:47,910 --> 01:01:49,160 [Music - "Umuulan dito MEN" ANG ng mga batang babae WEATHER] 1474 01:03:02,261 --> 01:03:03,930 >> David MALAN: Iyon ay para sa CS50. 1475 01:03:03,930 --> 01:03:05,860 Makikita natin sa Lunes. 1476 01:03:05,860 --> 01:03:21,152 [Palakpakan]