1 00:00:00,000 --> 00:00:07,070 [Powered by Google Translate] [♪ paghiging ♪] 2 00:00:07,070 --> 00:00:10,380 Kaya upang ipakilala ka sa kung ano ang Mayroon akong sa screen; 3 00:00:10,380 --> 00:00:12,710 ito ay isa sa mga tool na aming binuo sa ibabaw ng tag-araw; 4 00:00:12,710 --> 00:00:15,530 ito ay tinatawag na CS50 puwang, 5 00:00:15,530 --> 00:00:18,860 at ito ay aming collaborative coding application 6 00:00:18,860 --> 00:00:20,180 na kami ay pagpunta upang gamitin sa mga seksyon. 7 00:00:20,180 --> 00:00:22,470 Ito ay medyo cool. 8 00:00:22,470 --> 00:00:26,040 Na-anumang mo nakikita CS50 run? 9 00:00:26,040 --> 00:00:29,760 Hayaan akong hilahin ang up na iyon sa isa pang tab. 10 00:00:29,760 --> 00:00:33,440 Run.cs50.net 11 00:00:33,440 --> 00:00:36,230 Kaya 12 00:00:36,230 --> 00:00:39,700 kung pumunta ka sa run.cs50.net, 13 00:00:39,700 --> 00:00:43,030 maaari mong makita na ito ay isang sa iyong browser na paraan upang 14 00:00:43,030 --> 00:00:45,940 aktwal na code - isulat ang C code, 15 00:00:45,940 --> 00:00:47,460 at pagkatapos patakbuhin ang mga ito, 16 00:00:47,460 --> 00:00:50,960 kaya parehong compiles ito, tumatakbo ito, pagkatapos ay bumalik ang output sa iyo, 17 00:00:50,960 --> 00:00:53,350 kaya ito ay uri ng isang cool na paraan upang eksperimento 18 00:00:53,350 --> 00:00:56,060 sa ilan sa ang code na David napupunta sa aralin 19 00:00:56,060 --> 00:00:58,640 at bigyan kami sa iyo sa hanay ng problema 20 00:00:58,640 --> 00:01:01,900 nang hindi aktwal na pagkakaroon painitin ang appliance. 21 00:01:01,900 --> 00:01:04,489 >> Kaya kung ano ang mga puwang ginagawa na naiiba mula sa 22 00:01:04,489 --> 00:01:07,450 kung lumipat ako pabalik sa tab na ito, 23 00:01:07,450 --> 00:01:11,580 Puwang CS50 run, tulad ng makikita mo dito mismo, 24 00:01:11,580 --> 00:01:15,380 ngunit kung mag-scroll namin at tingnan ang iba pang mga bahagi ng window, 25 00:01:15,380 --> 00:01:18,130 makikita mo sa kanan ako lamang ang tao sa puwang na ito, 26 00:01:18,130 --> 00:01:21,030 ngunit kung ano ako pagpunta sa gawin ay hilingin mo guys na sumali sa Space sa akin 27 00:01:21,030 --> 00:01:24,590 at namin ang lahat ng sa code sa parehong maliit na window, 28 00:01:24,590 --> 00:01:26,070 ibahagi ang code sa bawat isa, 29 00:01:26,070 --> 00:01:28,900 at makipag-usap tungkol sa mga pagkakaiba sa pagitan ng aming code. 30 00:01:28,900 --> 00:01:31,530 Kaya ito ay uri ng isang cool na bagay - 31 00:01:31,530 --> 00:01:35,770 kaya sumali, kung gusto mong bisitahin ang link na ito dito mismo sa tuktok 32 00:01:35,770 --> 00:01:38,980 na nai-highlight ko, 33 00:01:38,980 --> 00:01:53,860 maaari mong i-type lamang sa apps.cs50.net/spaces/vqcspSnO. 34 00:01:53,860 --> 00:01:56,610 >> Lahat ng karapatan, kaya magsimula, 35 00:01:56,610 --> 00:01:59,720 Ako pagpunta upang bigyan ka ng ilang sandali ng isang tour ng ito. 36 00:01:59,720 --> 00:02:01,720 Hindi namin gonna gawin ang ilang ulok maliit na coding dito sa unang, 37 00:02:01,720 --> 00:02:06,200 lamang upang ang lahat ay medyo nakakakuha ng isang pakiramdam para sa kung ano ito ay tulad ng, 38 00:02:06,200 --> 00:02:09,000 ngunit kung ano ang ko na gawin - 39 00:02:09,000 --> 00:02:11,830 o kung ano ako tungkol sa gawin dito mismo ay - 40 00:02:11,830 --> 00:02:13,480 Ako pagpunta sa gawin ang mga code na ko na nakasulat sa dito, 41 00:02:13,480 --> 00:02:15,800 kung saan tulad ng nakikita mo ngayon ay walang laman; 42 00:02:15,800 --> 00:02:17,090 hindi ito gawin. 43 00:02:17,090 --> 00:02:21,080 Lang boiler plate ng code, makakakita kami tatawag ito. 44 00:02:21,080 --> 00:02:23,820 Na may isang maliit na gagawin komento. 45 00:02:23,820 --> 00:02:27,850 Ako pagpunta sa i-save ang mga ito sa pamamagitan ng pagpindot ang pindutang I-save. 46 00:02:27,850 --> 00:02:30,190 At ano ang ginagawa nito 47 00:02:30,190 --> 00:02:34,400 naka-highlight na ito dito maikling - na rebisyon save berdeng kahon, 48 00:02:34,400 --> 00:02:37,570 at ngayon, kung kang maghanap para sa akin sa Space, 49 00:02:37,570 --> 00:02:40,340 sa iyo na i-click ang aking pangalan, 50 00:02:40,340 --> 00:02:43,370 maaari mong makita na Mayroon akong ang pagbabago na ito dito mismo, 51 00:02:43,370 --> 00:02:45,490 at kung nag-click ka sa na rebisyon, 52 00:02:45,490 --> 00:02:48,240 ito load na ang code sa iyong Space,. 53 00:02:50,510 --> 00:02:54,160 >> Kaya ang lahat load na ang code sa kanilang Space? 54 00:02:54,160 --> 00:02:57,810 Karapatan lahat, kung mayroon kang hindi pa, sige at gawin iyon, 55 00:02:57,810 --> 00:03:01,120 at pagkatapos ay kung ano ang gusto kong mo guys na gawin sa ang maliit na ito upang gawin ang seksyon 56 00:03:01,120 --> 00:03:05,940 ay magsulat ng kaunti gamit printf tungkol sa iyong sarili, 57 00:03:05,940 --> 00:03:08,310 kaya halimbawa, nais kong isulat 58 00:03:08,310 --> 00:03:12,270 printf ("Ang pangalan ko ay Nate"); 59 00:03:15,140 --> 00:03:17,700 at gusto kong isulat 60 00:03:17,700 --> 00:03:21,660 "Ako nagtapos noong 2009 61 00:03:21,660 --> 00:03:24,440 mula sa Stanford " 62 00:03:26,050 --> 00:03:28,390 at gusto kong makarinig ng tungkol sa 63 00:03:28,390 --> 00:03:30,270 ano taon sa paaralan, 64 00:03:30,270 --> 00:03:33,910 kung ikaw ay sa kolehiyo o sa negosyo paaralan 65 00:03:33,910 --> 00:03:36,130 o iba pang Harvard paaralan, 66 00:03:36,130 --> 00:03:39,200 kung ano ang iyong pag-aaral kung ito ay kilala pa; 67 00:03:39,200 --> 00:03:41,290 kung hindi ito kilala, na lubos na cool na. 68 00:03:41,290 --> 00:03:45,170 Hindi ko magpasya hanggang ako ay late sa aking sopomor taon. 69 00:03:46,910 --> 00:03:49,210 at pagkatapos ay Gusto ko ring ibigin malaman 70 00:03:49,210 --> 00:03:51,610 anumang mabaliw gusto mong sabihin sa akin o 71 00:03:51,610 --> 00:03:54,790 isang bagay tungkol sa klase o anumang bagay. 72 00:03:56,930 --> 00:04:00,370 Kapag tapos ka nang pagsusulat na sa iyong maliit na printf, 73 00:04:00,370 --> 00:04:03,480 kung makikita mo i-save ang rebisyon o sa halip 74 00:04:03,480 --> 00:04:06,080 siguraduhin munang maaari mong patakbuhin ang mga ito 75 00:04:06,080 --> 00:04:10,640 at ito mga Kopya kung eksakto kung ano ang nais mo ito upang i-print ang, 76 00:04:14,050 --> 00:04:16,399 at pagkatapos ay kung pupunta ka magpatuloy at i-save na ang rebisyon 77 00:04:16,399 --> 00:04:21,600 gamit ang pindutan ng I-save ang Pagbabago, ang unang maliit na tao sa paglipas dito, 78 00:04:24,080 --> 00:04:27,340 at magpapadala kami ay medyo pumunta sa pamamagitan ng at gawin ang isang maliit na panimula na paraan. 79 00:04:27,340 --> 00:04:30,150 Kaya dapat mo lamang pindutin ang pindutan ng Play, 80 00:04:30,150 --> 00:04:32,550 na dito sa tuktok na kaliwang, 81 00:04:32,550 --> 00:04:35,340 kaya ito Play button sa kaliwang tuktok ay 82 00:04:35,340 --> 00:04:39,050 ipadala ang iyong code sa aming server na kung saan ito ay makakakuha ng inipon at pagkatapos ay magpatakbo ng. 83 00:04:40,600 --> 00:04:43,300 Kaya kung ano ang ay medyo mabaliw tungkol sa 84 00:04:43,300 --> 00:04:46,550 ang code na ito ay hindi aktwal na tumatakbo sa iyong computer; 85 00:04:46,550 --> 00:04:49,290 aktwal na ito ay ipinadala sa Internet. 86 00:04:49,290 --> 00:04:51,240 >> Paano ang pagpunta, Charlotte? 87 00:04:51,240 --> 00:04:54,810 >> Ko - okay. I'm - tingin ko ako 88 00:04:54,810 --> 00:04:57,330 pag-kahirapan-save ito 89 00:04:57,330 --> 00:05:00,530 sa server tulad na ito - Maaari ko bang patakbuhin ang program. 90 00:05:02,090 --> 00:05:05,780 At pagkatapos ay kapag sinusubukan kong patakbuhin ito, sinasabi nito na may isang error. 91 00:05:05,780 --> 00:05:08,850 Ipinahayag bilang isang virus, na kung saan ay hindi doon ngayon. 92 00:05:08,850 --> 00:05:11,860 Oh, sabihin makita, maaari mong pindutin ang I-save muli? 93 00:05:11,860 --> 00:05:13,770 Ko makita ito sa screen. 94 00:05:13,770 --> 00:05:15,120 >> Karapatan, okay, kaya na kung ano ang mayroon akong. 95 00:05:15,120 --> 00:05:19,430 At hindi ko alam kung bakit hindi ito ipaalam sa akin patakbuhin ito. 96 00:05:22,990 --> 00:05:24,990 Oh, okay, paumanhin. 97 00:05:27,930 --> 00:05:31,220 Maaari mong ipaliwanag kung bakit - kung ano ang mali - kung ano ang hindi gumagana dito? 98 00:05:31,220 --> 00:05:34,760 >> Oo, dahil hindi ko nakita na nagkaroon ng huling linya kung saan may pa rin sa isang variable 99 00:05:34,760 --> 00:05:37,700 na hindi ako ay ipinahayag, na hindi ko nilayong para dito doon. 100 00:05:37,700 --> 00:05:38,730 Oo, perpekto! 101 00:05:38,730 --> 00:05:40,390 >> Ngayon kung ko bang i-save ito, tingin ko ito ay gagana. 102 00:05:40,390 --> 00:05:42,970 Ngayon na nai-save mo ito, ito gumagana; kahanga-hangang. 103 00:05:42,970 --> 00:05:44,570 >> Kaya oo, bilang namin pumunta sa pamamagitan ng - 104 00:05:44,570 --> 00:05:46,690 kaya kung ano ang pagpunta sa, 105 00:05:46,690 --> 00:05:49,130 Ako pagpunta sa ulitin ito para sa camera. 106 00:05:49,130 --> 00:05:51,760 Ano ang nangyayari ay na ito variable s 107 00:05:51,760 --> 00:05:54,310 ay naiwan sa pagkatapos - ipinapalagay ko tinanggal mo ang ilang iba pang mga bagay-bagay 108 00:05:54,310 --> 00:05:56,670 kung saan mo ipinahayag bilang, 109 00:05:56,670 --> 00:05:59,560 at kaya ito ay ibinabato bagay off at hindi hinahayaan kang patakbuhin ito. 110 00:05:59,560 --> 00:06:02,540 Kaya ito ay kung ano mismo ang gusto naming gawin sa seksyon 111 00:06:02,540 --> 00:06:05,690 ay na ang mga tao na subukang pagsusulat ng mga iba't ibang mga piraso ng code, 112 00:06:05,690 --> 00:06:08,490 kino-compile ito, tingnan kung ano ang gumagana, makita kung ano ang hindi, 113 00:06:08,490 --> 00:06:10,730 at pagkatapos ay medyo makipag-usap tungkol sa mga bagay na ito, dahil ang mga balakid puntos na 114 00:06:10,730 --> 00:06:12,850 Ko pa rin nakatagpo, 115 00:06:12,850 --> 00:06:15,470 Ko pa rin - gagawin ko maraming ng ulok mga bagay-bagay sa lahat ng oras, 116 00:06:15,470 --> 00:06:17,820 at hindi ko alam kung bakit hindi ito gumana, 117 00:06:17,820 --> 00:06:22,960 kaya sabihin makuha ang Charlotte ng rebisyon 3, 118 00:06:23,980 --> 00:06:25,380 at kami na patakbuhin ito. 119 00:06:25,380 --> 00:06:28,950 >> Kaya kapag nagpatakbo ako, ngayon na Mayroon akong kanyang code in dito, 120 00:06:28,950 --> 00:06:31,450 Maaari kong mag-zoom in, pindutin ang pindutang Run, 121 00:06:31,450 --> 00:06:33,680 upload ito, bumubuo ito, tumatakbo ito, 122 00:06:33,680 --> 00:06:36,980 sabi ni tumakbo ito matagumpay, at kung mag-scroll ko pababa, 123 00:06:36,980 --> 00:06:39,440 makita Charlotte ay isang junior sa Adams House, 124 00:06:39,440 --> 00:06:42,720 sikolohiya, pangalawang sa economics; kahanga-hangang. 125 00:06:42,720 --> 00:06:44,310 Ang Great upang matugunan sa iyo! 126 00:06:44,310 --> 00:06:46,550 Kahanga-hanga. 127 00:06:46,550 --> 00:06:49,670 Okay, paglipat sa, sabihin pumunta sa Daniel, 128 00:06:49,670 --> 00:06:52,710 pumunta sa rebisyon 3, 129 00:06:52,710 --> 00:06:54,180 makatipon, patakbuhin; 130 00:06:54,180 --> 00:06:56,680 bakit hindi mo sabihin sa amin ng kaunti tungkol sa iyong sarili, Daniel? 131 00:06:56,680 --> 00:06:59,380 >> Tawagan ako Dan. 132 00:06:59,380 --> 00:07:01,920 Ako pagpunta sa paaralan ng negosyo sa kabuuan mula sa iyo guys, 133 00:07:01,920 --> 00:07:05,020 at ako ay sa Marino bago dito, 134 00:07:05,020 --> 00:07:08,020 at ito ay lahat ng mga bagong sa akin, kaya oo. 135 00:07:08,020 --> 00:07:11,060 Huwag sumama ang pakiramdam, ako 30 at hindi ko alam ang anumang ng mga bagay na ito. 136 00:07:11,060 --> 00:07:13,800 Kahanga-hanga; salamat, Dan! 137 00:07:13,800 --> 00:07:17,300 Karapatan lahat, nakuha namin ng isa pang Daniel. 138 00:07:17,300 --> 00:07:20,930 Pumunta ka sa pamamagitan ng Daniel - ay mong ipakilala ang iyong sarili, Daniel? 139 00:07:20,930 --> 00:07:22,260 >> >> Oo naman, ako Daniel. 140 00:07:22,260 --> 00:07:24,330 Ako isang sopomor sa Mather ngayon. 141 00:07:24,330 --> 00:07:25,840 Ako sa pagtuon sa mga pamahalaan, 142 00:07:25,840 --> 00:07:28,760 ngunit Nais kong gumawa ng CS50 dahil narinig ko na mahusay na mga review tungkol sa mga klase 143 00:07:28,760 --> 00:07:30,750 at hindi ko na sinubukan CS bago. 144 00:07:30,750 --> 00:07:34,680 Mag-scroll down dito at ipakita ito - cool. 145 00:07:36,330 --> 00:07:39,090 Paglipat sa, Jared. 146 00:07:39,090 --> 00:07:41,990 Paano ang pagpunta? 147 00:07:41,990 --> 00:07:43,430 >> Magandang, kung paano ka? 148 00:07:43,430 --> 00:07:47,520 Tulad ng iyong nakikita, ako junior concentrator pilosopiya sa Eliot, 149 00:07:47,520 --> 00:07:50,260 orihinal na mula sa timog California, 150 00:07:50,260 --> 00:07:53,100 at ako ay interesado sa pagkuha CS50 dahil gusto ko ang logic nito, 151 00:07:53,100 --> 00:07:57,420 at tila talagang cool na upang gawin ang mga bagay sa computer, kaya. 152 00:07:57,420 --> 00:07:59,570 Kahanga-hanga, kung saan sa katimugang California ay mula sa? 153 00:07:59,570 --> 00:08:02,340 >> Tungkol sa isang oras mula sa [hindi marinig], isang maliit na lungsod [hindi marinig]. 154 00:08:02,340 --> 00:08:04,850 Oh, oo, ang aking ama mula sa Redlands. 155 00:08:04,850 --> 00:08:07,060 Cool na bagay. 156 00:08:07,060 --> 00:08:12,130 >> Lahat ng karapatan, Jimmy; kung paano ang ito pagpunta, Jimmy? 157 00:08:12,130 --> 00:08:15,130 >> Magandang, kung paano ka? 158 00:08:15,130 --> 00:08:16,040 Paggawa medyo na rin! 159 00:08:16,040 --> 00:08:17,710 Sabihin sa amin ang tungkol sa iyong sarili. 160 00:08:17,710 --> 00:08:20,840 >> Ako ng isang primer anyo, at ako ay hindi ganap na sigurado kung ano ako majoring sa 161 00:08:20,840 --> 00:08:22,820 ngunit ay medyo ako nakahilig patungo sa economics. 162 00:08:22,820 --> 00:08:25,680 Tulad Daniel bago sa akin, hindi ko nagawa mo na ang anumang CS, ngunit ito tunog ay medyo cool na. 163 00:08:25,680 --> 00:08:28,120 Ako ay orihinal na mula sa Chicago. 164 00:08:28,120 --> 00:08:31,640 Kahanga-hanga. Kaya tingnan ang kanyang printout dito. 165 00:08:31,640 --> 00:08:34,630 Nais kong hilingin, ginawa ito print out bilang inaasahan mo? 166 00:08:34,630 --> 00:08:37,650 >> Hindi, nakalimutan ko upang mag-print ng isang bagong linya. 167 00:08:37,650 --> 00:08:41,270 Nakalimutan ko aktwal na kapag ako ay sumusulat ng aking mga bagay 168 00:08:41,270 --> 00:08:43,090 sa unang pagkakataon, masyadong. 169 00:08:43,090 --> 00:08:46,330 Ito ay uri ng isang sakit sa tandaan na ilagay ang mga nang manu-mano. 170 00:08:46,330 --> 00:08:50,560 Nais ito ay gandang kung ito lang alam na kung ano ang nais. 171 00:08:50,560 --> 00:08:53,630 >> Okay, Kelly. 172 00:08:53,630 --> 00:08:56,050 Wow, mayroon kaming 2 Kellys; 2 Daniels, 2 Kellys. 173 00:08:56,050 --> 00:09:00,490 Kaya Kelly - kang pumunta ni Kelly Ren? 174 00:09:00,490 --> 00:09:03,870 Okay, kahanga-hangang. 175 00:09:03,870 --> 00:09:07,270 O Kelly, ibig sabihin ko. 176 00:09:07,270 --> 00:09:10,260 >> Kaya oo, kaya ako Kelly. 177 00:09:10,260 --> 00:09:12,930 Ako isang sopomor sa Pfoho. 178 00:09:12,930 --> 00:09:17,000 Nakatanggap ako ng e-mail ngayon na Mayroon pa akong 7 linggo upang idedeklara ang aking konsentrasyon, 179 00:09:17,000 --> 00:09:20,940 kaya sinusubukan ko ang hindi mag-isip tungkol dito, 180 00:09:20,940 --> 00:09:24,090 at gusto ko sa pagbe-bake, pagtakbo, at Craisins. 181 00:09:24,090 --> 00:09:29,110 Wala akong karanasan sa karamihan ng CS; 182 00:09:29,110 --> 00:09:32,700 Taught ko sa aking sarili upang bumuo ng mga Web site kapag ako ay talagang batang, 183 00:09:32,700 --> 00:09:35,750 ngunit tingin ko ko marahil taught aking sarili mali ng maraming beses. 184 00:09:35,750 --> 00:09:39,260 Sana matuto ako ng kaunti higit pa 185 00:09:39,260 --> 00:09:41,450 at - oo. 186 00:09:41,450 --> 00:09:44,100 >> Kahanga-hanga; na rin, salamat sa iyo. 187 00:09:44,100 --> 00:09:47,190 Natin pumunta sa iba pang mga Kelly; 188 00:09:47,190 --> 00:09:48,880 Wala akong anumang - ang sinabi ninyo ng isang bagay in dito? 189 00:09:48,880 --> 00:09:51,880 >> [Hindi marinig] 190 00:09:51,880 --> 00:09:56,180 May ito ay! 191 00:09:56,180 --> 00:09:58,120 Magaling! 192 00:09:58,120 --> 00:10:01,400 >> Lahat ng karapatan, kaya ako Kelly. 193 00:10:01,400 --> 00:10:03,980 Ako ng unang taon mag-aaral ng graduate. 194 00:10:03,980 --> 00:10:05,560 Majoring ako sa isip, Utak, at Education. 195 00:10:05,560 --> 00:10:07,940 Nagtapos ako sa Franklin & Marshall College noong 2008 196 00:10:07,940 --> 00:10:10,840 may mga majors sa sikolohiya at sosyolohiya 197 00:10:10,840 --> 00:10:13,120 at isang menor de edad sa Pranses. 198 00:10:13,120 --> 00:10:15,330 Ako ang pagkuha CS50 199 00:10:15,330 --> 00:10:18,080 dahil ako ay interesado sa pagkuha ng isang PhD sa Neuroscience 200 00:10:18,080 --> 00:10:21,220 at pakiramdam ko tulad ng ito ay makakatulong sa akin na maunawaan ang mga teknolohiya na ginagamit. 201 00:10:21,220 --> 00:10:23,150 Kahanga-hanga. 202 00:10:26,980 --> 00:10:29,390 Paglipat sa, Mikaela. 203 00:10:29,390 --> 00:10:31,640 Ay na tamang pagbigkas? 204 00:10:31,640 --> 00:10:32,990 Okay, kahanga-hangang. 205 00:10:32,990 --> 00:10:34,640 >> >> Ako Mikhaila. 206 00:10:34,640 --> 00:10:36,870 Ako isang sopomor sa Kirkland House, 207 00:10:36,870 --> 00:10:39,950 at ako pagtuon sa Mechanical Engineering. 208 00:10:39,950 --> 00:10:43,180 Gusto ko talagang pagbibisikleta, na binuo ng bisikleta ito tag-init. 209 00:10:43,180 --> 00:10:46,140 Ako ang pagkuha ng CS, aktwal na, 210 00:10:46,140 --> 00:10:48,350 bilang isang konsentrasyon kinakailangan, 211 00:10:48,350 --> 00:10:52,550 ngunit alam mo, tingin ko pa rin ito cool na uri ng klase ng engineering. 212 00:10:52,550 --> 00:10:55,150 Kahanga-hanga - bumuo ng isang bike ang tag-init na ito? 213 00:10:55,150 --> 00:10:56,730 >> Oo. 214 00:10:56,730 --> 00:10:58,900 Wow, tulad ng frame at ang lahat na? 215 00:10:58,900 --> 00:11:00,120 >> Uh-hunh (positibong). 216 00:11:00,120 --> 00:11:01,530 Wow, na talagang cool na. 217 00:11:01,530 --> 00:11:06,370 >> [Hindi marinig off-camera chat] 218 00:11:06,370 --> 00:11:10,000 [Tawa] 219 00:11:12,640 --> 00:11:14,200 Oo, ito ay kaya mahaba. 220 00:11:14,200 --> 00:11:16,730 Hindi mo alam, i-right? 221 00:11:16,730 --> 00:11:19,420 Well, cool na; well salamat, Mikhaila. 222 00:11:19,420 --> 00:11:21,390 >> Lahat ng karapatan, Missy. 223 00:11:21,390 --> 00:11:23,280 >> Missy ng Aking pangalan; ako ng primer anyo, 224 00:11:23,280 --> 00:11:25,500 sa gayon ay nangangahulugan na hindi ko alam ang anumang! 225 00:11:25,500 --> 00:11:29,180 Gusto ko upang tumutok sa mga astropisika. 226 00:11:29,180 --> 00:11:31,220 Sa CS50, 227 00:11:31,220 --> 00:11:33,350 Pakiramdam ko ay tulad ay tiyak makatulong na iyon. 228 00:11:33,350 --> 00:11:37,750 Isang kakaibang katotohanan tungkol sa akin ako ng isang nationally certified firefighter. 229 00:11:37,750 --> 00:11:39,960 Wow! 230 00:11:39,960 --> 00:11:42,440 Paano ay na mangyayari? 231 00:11:42,440 --> 00:11:45,570 >> Ko dinaluhan ng isang akademya 232 00:11:45,570 --> 00:11:49,000 at nagpunta sa pamamagitan ng impiyerno para sa isang maraming linggo 233 00:11:49,000 --> 00:11:51,200 at nakuha ang aking certification. 234 00:11:51,200 --> 00:11:54,090 Wow, Malugod na pagbati! 235 00:11:54,090 --> 00:11:57,280 Iyon ay hindi maliit na gawa, para bang. 236 00:11:57,280 --> 00:11:59,070 Okay, kaya ngayon gagamitin namin gawin sa akin. 237 00:11:59,070 --> 00:12:01,290 Ako sa susunod na isa sa sunud-sunod. 238 00:12:01,290 --> 00:12:04,510 I'm - patakbuhin ito. 239 00:12:04,510 --> 00:12:07,580 >> Kaya ang aking pangalan ay Nate. 240 00:12:07,580 --> 00:12:11,160 Ako ay klase ng 2009 sa Stanford. 241 00:12:11,160 --> 00:12:13,840 Ako ay isang symbolic Systems pangunahing, 242 00:12:13,840 --> 00:12:17,370 na katulad sa isip, Utak, Ugali ng konsentrasyon dito, 243 00:12:17,370 --> 00:12:19,300 ngunit ito ay uri ng isang halo ng mga 244 00:12:19,300 --> 00:12:22,350 computer science, lingguwistika, sikolohiya, at pilosopiya. 245 00:12:22,350 --> 00:12:26,600 Uri ng - oo, ng maraming mga bagay na kakaiba, ngunit ito ay mahusay, 246 00:12:26,600 --> 00:12:29,880 at pagkatapos ko ang aking master sa Computer Science doon, pati na rin. 247 00:12:29,880 --> 00:12:33,250 Kaya ako bago sa Harvard sa taon na ito. 248 00:12:33,250 --> 00:12:35,750 Ko talagang gusto upang makakuha ng sa pagtuturo. 249 00:12:35,750 --> 00:12:39,860 Ginugol ko ang huling 4 na taon sa Stanford TA-Pina klase ng Computer Science 250 00:12:39,860 --> 00:12:43,370 at kaya ipaalam David dumating ako sa, 251 00:12:43,370 --> 00:12:45,550 at ako ay gonna ay ang pagtulong sa may CS50, 252 00:12:45,550 --> 00:12:47,890 kaya ko full time na ito, Hindi ako sa Grad paaralan. 253 00:12:47,890 --> 00:12:50,330 Ito ay masaya. 254 00:12:50,330 --> 00:12:53,130 Sana ito ay patuloy na maging masaya, ako ba ay ito. 255 00:12:53,130 --> 00:12:56,040 >> Lahat ng karapatan, Sam. 256 00:13:01,910 --> 00:13:05,470 >> Ang pangalan ko ay Sam; ako sopomor sa kolehiyo, sa batas partikular. 257 00:13:05,470 --> 00:13:10,110 Aking mga pangunahing ay kasaysayan ng agham, marahil, at VES pangalawang, 258 00:13:10,110 --> 00:13:13,240 at ang aking paboritong kulay ay dilaw. 259 00:13:18,790 --> 00:13:21,100 Hindi na kailangan upang pumasa paghuhukom o anumang bagay, ngunit ito ay isang mahusay na kulay! 260 00:13:21,100 --> 00:13:24,780 At Stella. 261 00:13:24,780 --> 00:13:26,980 >> Hi, ako Stella, ako isang primer anyo sa Grays. 262 00:13:26,980 --> 00:13:30,070 Mayroon akong walang bakas kung ano ang ko na puro sa pa, 263 00:13:30,070 --> 00:13:32,500 kaya CS50 lamang uri ng random, 264 00:13:32,500 --> 00:13:34,220 na kawili-wili. 265 00:13:34,220 --> 00:13:36,080 Kasayahan katunayan, Jimmy unang Harvard kaibigan ng minahan, 266 00:13:36,080 --> 00:13:38,360 dahil hindi namin parehong mula sa Chicago. 267 00:13:38,360 --> 00:13:42,450 Mahusay, at Grace - na dapat na talagang maganda ang isa, i-right? 268 00:13:42,450 --> 00:13:45,220 >> Naisip ko na [hindi marinig]. 269 00:13:45,220 --> 00:13:46,690 Oh, oo. 270 00:13:46,690 --> 00:13:51,210 [Hindi marinig / off-camera chat] 271 00:13:51,210 --> 00:13:54,420 Okay; pa rin ako sa pag-aaral, pa rin ang pag-aaral. 272 00:13:54,420 --> 00:13:57,800 >> Kaya Mayroon namin ang ibang bagay na uri ng kawili-wiling dito. 273 00:13:59,600 --> 00:14:02,870 Oo, ako nagtataka, mayroon kang isang ideya na ang nangyayari sa dito? 274 00:14:02,870 --> 00:14:05,890 Alam mo kung paano i-interpret ang? 275 00:14:05,890 --> 00:14:13,340 >> Ko ay dapat na ilagay ang semicolon pagkatapos ng bawat solong linya. 276 00:14:13,340 --> 00:14:16,370 Iyon ay uri ng isang sakit. 277 00:14:16,370 --> 00:14:19,100 Minsan ang mga semicolons ay maaaring maging isang tunay na sakit upang subaybayan ang down na. 278 00:14:19,100 --> 00:14:21,420 Kaya ito lumiliko out na 279 00:14:21,420 --> 00:14:22,820 ang mga espesyal na programa na aming ginagamit ang taon na ito sa 280 00:14:22,820 --> 00:14:26,670 makatipon ang aming code sa C ay tinatawag na kumalatong, 281 00:14:26,670 --> 00:14:29,460 at ang dahilan na sinimulan namin upang gamitin ang kumalatong sa taong ito - 282 00:14:29,460 --> 00:14:32,030 dahil hindi pa namin ginamit ang program na sa nakaraan; 283 00:14:32,030 --> 00:14:35,710 ginamit namin ang isa pa tinatawag GCC na talagang sikat na - 284 00:14:35,710 --> 00:14:38,420 Kumalatong aktwal ay nagbibigay sa iyo ng mga mensahe ng error na may kabuluhan. 285 00:14:38,420 --> 00:14:41,420 Ang isang ito nagsasabing "inaasahan ';' pagkatapos expression", 286 00:14:41,420 --> 00:14:45,260 at kahit na nagsasabi sa iyo ang expression na kung saan pagkatapos, kailangan mo ng isang tuldok-kuwit. 287 00:14:45,260 --> 00:14:47,830 Kaya mo ang pag-aayos nito? 288 00:14:47,830 --> 00:14:48,930 >> Oo, sa ngayon. 289 00:14:48,930 --> 00:14:52,040 Kahanga-hanga, ipaalam sa akin at makikita namin ito hilahin pataas, at kami na patakbuhin ito. 290 00:14:52,040 --> 00:14:55,830 Ngunit oo, paglalagay ng mga semicolons na ito sa uri ng isang sakit. 291 00:14:55,830 --> 00:14:59,580 >> Naayos ko ito, kaya tingin ko ito ay gagana. 292 00:14:59,580 --> 00:15:02,760 Kahanga-hanga - rebisyon 3. 293 00:15:02,760 --> 00:15:05,250 Na kamukha nito. 294 00:15:05,250 --> 00:15:08,580 Karapatan lahat, kaya ngayon kung patatakbuhin namin ito, 295 00:15:08,580 --> 00:15:11,020 may napupunta ito. 296 00:15:11,020 --> 00:15:13,830 Cool na bagay. 297 00:15:13,830 --> 00:15:15,340 >> Ayos lang. 298 00:15:15,340 --> 00:15:18,230 Kaya salamat para sa paggawa na. 299 00:15:18,230 --> 00:15:20,210 Ito ay mahusay na upang matugunan sa iyo guys. 300 00:15:20,210 --> 00:15:22,880 Ano ang hindi namin gonna gawin ngayon ay gastusin sa susunod na kaunti 301 00:15:22,880 --> 00:15:24,740 ay medyo diving sa problema ng seksyon 302 00:15:24,740 --> 00:15:27,550 na dumating mula sa problema mula sa linggong ito 303 00:15:27,550 --> 00:15:29,920 at gagawin namin na para sa karamihan ng mga seksyon 304 00:15:29,920 --> 00:15:32,110 para sa iba pang mga bahagi ng termino, 305 00:15:32,110 --> 00:15:35,580 at pagkatapos ay gagamitin namin i-save ang huling 15, 20 minuto o kaya 306 00:15:35,580 --> 00:15:38,490 makipag-usap tungkol sa problema ang mismong 307 00:15:38,490 --> 00:15:41,420 at pagkatapos ay anumang iba pang mga tanong na mayroon ka sa pangkalahatang tungkol sa klase. 308 00:15:43,380 --> 00:15:45,670 Na sinabi, kung ano ang aming talagang Gusto gawin 309 00:15:45,670 --> 00:15:49,390 ay na lahat kalahok 310 00:15:49,390 --> 00:15:51,500 gamit ang mga puwang sa mga bagay-bagay, 311 00:15:51,500 --> 00:15:53,500 ibinabato sa code, ibinabato sa mga mungkahi, 312 00:15:53,500 --> 00:15:56,500 at pakikipag-usap tungkol sa kapag ang mga bagay na gusto ito ng break 313 00:15:56,500 --> 00:15:58,360 o hindi gumagana, dahil lang sa mga bagay na 314 00:15:58,360 --> 00:16:00,870 Alam ko na ako ay dumating sa buong 315 00:16:00,870 --> 00:16:03,180 kapag nagsimula ako coding, 316 00:16:03,180 --> 00:16:05,490 at talaga ay medyo nakakadismaya sa mga oras 317 00:16:05,490 --> 00:16:08,690 dahil kung ito ay tulad ng 2:00 bago ang iyong hanay ng problema ay dahil, 318 00:16:08,690 --> 00:16:11,330 kaya - para lamang sa pagsisiwalat, 319 00:16:11,330 --> 00:16:14,590 Hindi ko simulan ang programming hanggang ako ay isang sopomor sa kolehiyo. 320 00:16:14,590 --> 00:16:17,360 Ito ay uri ng ito kakaiba, hindi alam na bagay 321 00:16:17,360 --> 00:16:20,360 na Narinig ko ay medyo cool na 322 00:16:20,360 --> 00:16:23,590 at narinig ko din maaaring ito ay isang tunay na sakit sa puwit 323 00:16:23,590 --> 00:16:27,610 kung miss ka ng semicolon at na lamang ang error na pinapanatili ang iyong programa mula sa pagtatrabaho 324 00:16:27,610 --> 00:16:30,890 at pinapanatili sa iyo mula sa pag-sleep, 325 00:16:30,890 --> 00:16:32,650 kaya talagang, 326 00:16:32,650 --> 00:16:34,020 kung mayroon kang mga katanungan na tulad nang, 327 00:16:34,020 --> 00:16:37,060 kung mayroon kang mga alalahanin na tulad nang, ipaalam sa akin, 328 00:16:37,060 --> 00:16:40,050 dahil gusto ko upang gawin itong isang mahusay na karanasan para sa iyo guys. 329 00:16:40,050 --> 00:16:44,620 >> Kaya mo lahat ng na-download ang mga guys ang problema ay itakda ang pa? 330 00:16:44,620 --> 00:16:47,160 Ay medyo malaman kung saan ito ay? Okay. 331 00:16:47,160 --> 00:16:51,490 Kaya kailangan naming pumunta sa cs50.net, dahil hindi ko ito sa account na ito, 332 00:16:51,490 --> 00:16:54,110 makuha ang mga hanay ng problema, 333 00:16:54,110 --> 00:16:57,940 makuha ang problema set 2, at titingnan namin sa standard edition ngayon. 334 00:16:57,940 --> 00:17:01,190 Susubukan naming makuha ang detalye ng dito. 335 00:17:02,640 --> 00:17:04,420 Mag-scroll pababa. 336 00:17:06,790 --> 00:17:11,109 Kaya hindi namin gonna simulan ang pagtingin sa seksyong ito ng mga tanong. 337 00:17:14,069 --> 00:17:16,710 Mo ba ang guys pinanood pa ang mga shorts na ito? 338 00:17:16,710 --> 00:17:18,329 Okay. 339 00:17:18,329 --> 00:17:21,329 Kaya may short sa loop, 340 00:17:21,329 --> 00:17:24,700 na ginawa ni Tommy, isa ng ang mga Fellows ng pagtuturo ng ulo. 341 00:17:24,700 --> 00:17:27,230 Mayroong isa sa saklaw, 342 00:17:27,230 --> 00:17:30,530 Ako Naniniwala ginawa ng ibang kapwa ng pagtuturo na may pangalang David 343 00:17:30,530 --> 00:17:33,400 at pagkatapos ay isa sa Caesar Cipher na ginawa sa pamamagitan ng David. 344 00:17:33,400 --> 00:17:35,550 Ang mga ito ay medyo cool. 345 00:17:35,550 --> 00:17:37,770 Mo ba ang guys na nanonood sa ngayon ang kanilang mga shorts? 346 00:17:37,770 --> 00:17:39,270 How've sila ay? 347 00:17:39,270 --> 00:17:41,490 Nakakatulong? Okay, magandang malaman. 348 00:17:41,490 --> 00:17:44,210 Kung hindi, maaari mong sabihin ito. 349 00:17:46,290 --> 00:17:49,870 Ngunit bago mo ito gawin, 350 00:17:49,870 --> 00:17:52,600 mo guys tumingin sa mga tanong na ito 351 00:17:52,600 --> 00:17:55,430 sa lahat? 352 00:17:55,430 --> 00:17:57,480 >> Natin makipag-usap tungkol sa ilang sandali. 353 00:17:57,480 --> 00:18:00,600 Kaya ipinakilala namin ang sa huling dalawang linggo 354 00:18:00,600 --> 00:18:02,480 sa panayam 355 00:18:02,480 --> 00:18:04,910 ng isang bilang ng mga iba't ibang mga loop. 356 00:18:04,910 --> 00:18:06,140 Ang loop, 357 00:18:06,140 --> 00:18:09,570 habang loop, at pagkatapos ay ang Do-habang loop, 358 00:18:09,570 --> 00:18:13,100 at sa panayam, kami ay pakikipag-usap ng maraming tungkol sa 359 00:18:13,100 --> 00:18:16,010 kung paano ang mga loop ang lahat 360 00:18:16,010 --> 00:18:18,320 medyo katulad sa maraming paraan, 361 00:18:18,320 --> 00:18:21,210 at maaari mong gawin mas ng parehong mga bagay na may isang habang loop 362 00:18:21,210 --> 00:18:23,260 na maaari mong may isang para sa loop. 363 00:18:23,260 --> 00:18:26,300 Mo lamang sa uri ng gamitin ang tamang kumbinasyon ng mga variable at tulad. 364 00:18:26,300 --> 00:18:28,680 at kaya talagang 365 00:18:28,680 --> 00:18:31,200 ang tunay na pagkakaiba sa pagitan ng lahat ng mga loop na 366 00:18:31,200 --> 00:18:33,620 minsan ito ay mas kapaki-pakinabang 367 00:18:33,620 --> 00:18:36,930 gamitin ang mga ito sa isang oras kaysa sa ibang oras. 368 00:18:36,930 --> 00:18:39,340 >> Kaya halimbawa, 369 00:18:39,340 --> 00:18:42,260 habang loop magkakaibang mula sa isang Do-habang loop. 370 00:18:42,260 --> 00:18:45,680 Pakiramdam ba ang lahat tulad ng mayroon sila ng isang mahusay na hawakan sa kung kailan 371 00:18:45,680 --> 00:18:48,650 isang gawin-habang loop ay mas 372 00:18:48,650 --> 00:18:50,990 kapaki-pakinabang o kung ano ang pagkakaiba sa? 373 00:18:50,990 --> 00:18:53,410 >> Sa tingin ko na ang pagkakaiba ay isang Do-habang loop 374 00:18:53,410 --> 00:18:56,960 tumatakbo - Hindi ko alam lubos kung ano ang terminolohiya ay, 375 00:18:56,960 --> 00:18:59,750 ngunit ang serye ng mga function sa loob ng loop. 376 00:18:59,750 --> 00:19:02,020 Ito ay awtomatikong - ginagawa nito nito Nagpapatakbo ng hindi bababa sa 377 00:19:02,020 --> 00:19:05,390 bago ito sumusuri ang kundisyon, o habang loop ay tatakbo lamang ito kapag 378 00:19:05,390 --> 00:19:08,290 ito patuloy na tumatakbo - man o hindi ang kondisyon ay nasiyahan. 379 00:19:08,290 --> 00:19:11,010 Oo, ay na magkaroon ng kahulugan? 380 00:19:11,010 --> 00:19:14,200 >> Natin tingnan sa ilang sandali ng code. 381 00:19:14,200 --> 00:19:16,930 Kaya lang ulitin ang tanong, 382 00:19:16,930 --> 00:19:19,230 o ang sagot, sa halip; 383 00:19:19,230 --> 00:19:22,050 ang sagot ay na 384 00:19:22,050 --> 00:19:25,850 habang loop ay suriin upang makita kung ang kundisyon 385 00:19:25,850 --> 00:19:27,440 na tinukoy mo ay natugunan 386 00:19:27,440 --> 00:19:31,320 bago ito tumatakbo ang katawan ng loop para sa unang pagkakataon, 387 00:19:31,320 --> 00:19:35,000 samantalang ang Do-habang loop ay awtomatikong tatakbo ang katawan ng loop, 388 00:19:35,000 --> 00:19:38,450 ay kung ano ang tinatawag naming ito - ito ay kakaiba terminolohiya, 389 00:19:38,450 --> 00:19:41,460 ngunit kung ako man nating ang anumang bagay na hindi magkaroon ng kahulugan, ipaalam sa akin - 390 00:19:41,460 --> 00:19:45,360 sa loop katawan na mga bagay-bagay na iyong ilagay in sa pagitan ng mga kulot tirante. 391 00:19:45,360 --> 00:19:47,840 At sa do-habang loop, 392 00:19:47,840 --> 00:19:50,220 na katawan makapag patakbuhin ang nang hindi bababa sa isang beses, 393 00:19:50,220 --> 00:19:54,460 at pagkatapos ay ang kundisyon ay makakakuha ng naka-check bago ito ay tumatakbo sa bawat sunud-sunod na oras. 394 00:19:54,460 --> 00:19:56,580 >> Sa aktwal, Sam, 395 00:19:56,580 --> 00:20:00,820 tututol ba kayo sumulat ng isang simpleng habang loop 396 00:20:00,820 --> 00:20:02,840 sa puwang? 397 00:20:02,840 --> 00:20:05,600 >> Paano mo ayusin ng tulad ng 398 00:20:05,600 --> 00:20:07,060 gumawa ng bagong ...? 399 00:20:07,060 --> 00:20:09,220 Ko lang tanggalin ang anumang mayroon kang doon. 400 00:20:09,220 --> 00:20:11,300 Oo, i-clear lang ito. 401 00:20:11,300 --> 00:20:14,510 >> Well, naniniwala ako Nagkakaroon ako ng mga ito - 402 00:20:14,510 --> 00:20:16,640 kung alin ang gusto mo, habang, o ang gusto mong ...? 403 00:20:16,640 --> 00:20:19,350 Oo, lamang ang habang totoo, i-print ng isang bagay out. 404 00:20:21,050 --> 00:20:23,140 At sabihin makita. 405 00:20:23,140 --> 00:20:25,850 Alexander, natanto ko ipinakilala namin kailanman mo. 406 00:20:25,850 --> 00:20:27,510 >> Oh, na fine. 407 00:20:27,510 --> 00:20:30,760 Ka ba - maaari mong code do-habang loop para sa amin? 408 00:20:30,760 --> 00:20:32,520 >> Oo, kukunin ko na subukan. 409 00:20:32,520 --> 00:20:34,370 Karapatan lahat, kami lang hilahin ang mga up sa screen, 410 00:20:34,370 --> 00:20:38,240 sa gayon ay uri ng isang hawakan sa kung ano ang pagkakaiba. 411 00:20:38,240 --> 00:20:41,280 >> Kaya narito ang Sam tapos. 412 00:20:41,280 --> 00:20:44,460 Siya nakakuha ng isang integer tinatawag na i 413 00:20:44,460 --> 00:20:47,480 na siya nasimulan sa 17. 414 00:20:47,480 --> 00:20:51,570 Pagkatapos sabi niya habang (int i = 17) 415 00:20:51,570 --> 00:20:54,230 printf ("Ang pangalan ko ay Sam."); 416 00:20:54,230 --> 00:20:57,300 Kaya kung ano ang mangyayari kapag nagpatakbo namin ang code na ito? 417 00:20:57,300 --> 00:21:00,340 Mayroong isang error, kung ano ang sabihin ng error? 418 00:21:00,340 --> 00:21:02,890 Natin hilahin ang mga ito at makipag-usap tungkol dito. 419 00:21:02,890 --> 00:21:05,040 May naganap na error, sinasabi nito. 420 00:21:05,040 --> 00:21:07,400 Natin mag-scroll pababa. 421 00:21:07,400 --> 00:21:09,460 Kaya ibinigay sa amin ang error na ito, at sinabi, 422 00:21:09,460 --> 00:21:12,690 "Uy, inaasahan ko ng isang expression." 423 00:21:12,690 --> 00:21:16,180 Iyon ay medyo misteriyoso. 424 00:21:19,160 --> 00:21:23,140 Oo, kaya eksakto - at muli, 425 00:21:23,140 --> 00:21:27,140 ay may isa pang maliit na bug na kami mahuli sa loob lamang ng pangalawang. 426 00:21:27,140 --> 00:21:31,800 Ngunit ito ay isa pang isa sa mga uri ng kakaiba terminolohiya bagay, 427 00:21:31,800 --> 00:21:36,150 kaya ito int i = 17 428 00:21:36,150 --> 00:21:39,290 ay hindi isang expression. 429 00:21:39,290 --> 00:21:41,220 Ano ang mukhang ito ginagawa ito 430 00:21:41,220 --> 00:21:43,410 deklarasyon isang integer na tinatawag i 431 00:21:43,410 --> 00:21:45,540 at pag-set ito upang pumatas sa 17 432 00:21:45,540 --> 00:21:48,780 o, sa halip, paglalagay ng 17 sa int na tinatawag i. 433 00:21:50,560 --> 00:21:53,350 At na hindi magkaroon ng kahulugan 434 00:21:53,350 --> 00:21:55,790 sa konteksto ng mga ito habang loop. 435 00:21:55,790 --> 00:21:58,190 Ito ay hindi magkaroon ng kahulugan, dahil kakailanganin namin nakikita, 436 00:21:58,190 --> 00:22:01,250 sa konteksto ng isang loop, dahil para sa mga pagdeklara ng loop magsimula 437 00:22:01,250 --> 00:22:05,800 sa na ang para sa int i katumbas ng isang bagay 438 00:22:05,800 --> 00:22:07,830 at napupunta sa. 439 00:22:07,830 --> 00:22:09,500 >> Kaya ginawa mo - 440 00:22:09,500 --> 00:22:12,630 ayusin ang isang bagay, ang lahat ng karapatan. 441 00:22:12,630 --> 00:22:15,270 Narito ito napupunta; kahanga-hangang. 442 00:22:15,270 --> 00:22:17,920 Kaya ngayon bagay tumingin ng kaunti ibang. 443 00:22:17,920 --> 00:22:19,030 Ang ilang mga bagay ay nagbago. 444 00:22:19,030 --> 00:22:21,300 Maaari mong sabihin sa amin kung ano ang bagay ay nagbago? 445 00:22:21,300 --> 00:22:24,950 >> Kinuha ko ang int, kaya ang walang deklarasyon [hindi marinig] sa halip ng isang pagtatalaga. 446 00:22:24,950 --> 00:22:28,770 Ang isang katumbas sign, ko bang ilagay ang 2 katumbas na palatandaan, na nangangahulugan ng isang katumbas. 447 00:22:28,770 --> 00:22:30,560 Kahanga-hanga. 448 00:22:30,560 --> 00:22:33,320 Oo, kaya kung ano ang Sam ay ay kinuha niya ang int 449 00:22:33,320 --> 00:22:35,770 na dito mismo mas maaga, 450 00:22:35,770 --> 00:22:39,340 kaya kung ko lang tumingin sa ito - ito ay kung ano ito ay mas maaga, sinabi int, 451 00:22:39,340 --> 00:22:41,970 na deklarasyon ito - kaya kinuha namin ang uri. 452 00:22:41,970 --> 00:22:44,710 May int, magpasinda, string, maikling, 453 00:22:44,710 --> 00:22:47,380 iyon ay tinatawag na uri. 454 00:22:47,380 --> 00:22:49,510 Kaya mo kinuha ang uri 455 00:22:49,510 --> 00:22:51,580 at pagkatapos ay dati, 456 00:22:51,580 --> 00:22:54,190 nagkaroon siya lamang iisang equals sign 457 00:22:54,190 --> 00:22:57,300 at kung ano ang sinabi niya ay may problemang tungkol sa 458 00:22:57,300 --> 00:22:59,580 kapag mayroon kang 1 equals sign, 459 00:22:59,580 --> 00:23:01,780 na ang isang operator sa pagtatalaga. 460 00:23:01,780 --> 00:23:04,930 Na hindi sa pagsubok man o hindi ang 2 bagay ay pantay-pantay. 461 00:23:04,930 --> 00:23:07,920 Na aktwal na pagtatakda ng isang bagay na katumbas sa isang bagay. 462 00:23:07,920 --> 00:23:11,110 Namin ang paglalagay ng bilang 17 sa variable i. 463 00:23:11,110 --> 00:23:13,850 Kaya gawin na uri ng paghahambing, 464 00:23:13,850 --> 00:23:16,430 mayroon kang upang gamitin ang double katumbas, 465 00:23:16,430 --> 00:23:19,640 na uri ng kakaiba bagay 466 00:23:19,640 --> 00:23:22,760 ngunit ito ay isang medyo karaniwang error. 467 00:23:23,980 --> 00:23:27,830 Kaya isa pang bagay kukunin ko na ituro, kung hindi tututol kayo, 468 00:23:27,830 --> 00:23:30,610 ay na sa 469 00:23:30,610 --> 00:23:33,210 ang aming function na dito sa int pangunahing, 470 00:23:33,210 --> 00:23:36,740 nakikita mo na ang katawan ng aming mga function na 471 00:23:36,740 --> 00:23:39,810 offset mula sa kaliwang bahagi 472 00:23:39,810 --> 00:23:42,400 ng 4 na mga puwang o isang tab. 473 00:23:42,400 --> 00:23:44,730 Ang dahilan na gawin namin ito 474 00:23:44,730 --> 00:23:47,000 ay para lamang sa pagiging madaling mabasa. 475 00:23:47,000 --> 00:23:51,620 Tulad ng iyong nakikita sa habang loop Sam dito, 476 00:23:51,620 --> 00:23:53,120 hindi siya i-indent sa lahat, 477 00:23:53,120 --> 00:23:55,390 at na hindi nakakaapekto sa pag-andar ng code. 478 00:23:55,390 --> 00:23:57,860 Ito ay magpatakbo ng eksaktong kapareho. 479 00:23:57,860 --> 00:24:00,950 >> Kaya halimbawa, kung dumating kami sa tuktok dito 480 00:24:00,950 --> 00:24:02,680 at pindutin ang aming Play button, ito ay bumuo ng ang mga ito, 481 00:24:02,680 --> 00:24:04,470 ito patakbuhin ito, 482 00:24:04,470 --> 00:24:06,700 at kung ano ang pagpunta sa mangyayari? 483 00:24:06,700 --> 00:24:08,360 Bakit ang sinasabi pa rin ito ang tumatakbo? 484 00:24:08,360 --> 00:24:10,560 >> Dahil ito ay patuloy na paulit-ulit na hi. 485 00:24:10,560 --> 00:24:12,900 Eksakto, at bakit ang patuloy na paulit-ulit na hi? 486 00:24:12,900 --> 00:24:15,850 >> Hindi kailanman Dahil integer ang mga pagbabago, kaya ito ay palaging 17. 487 00:24:15,850 --> 00:24:18,030 Oo, eksakto, kaya 488 00:24:18,030 --> 00:24:20,970 sabihin makita, pagkatapos - ipaalala sa akin ng muli ang iyong pangalan? 489 00:24:20,970 --> 00:24:24,020 Jimmy. Kaya Jimmy sinabi na 490 00:24:24,020 --> 00:24:27,340 ang dahilan kung bakit ito mapigil ang paulit-ulit na hi nang paulit-ulit 491 00:24:27,340 --> 00:24:30,510 ay dahil sa kondisyon na ito ay palaging tunay. 492 00:24:30,510 --> 00:24:33,270 Hindi namin baguhin ang halaga ng i. 493 00:24:33,270 --> 00:24:36,170 Hindi namin baguhin ang mga nilalaman ng kung ano ang naka-imbak sa variable na. 494 00:24:36,170 --> 00:24:39,180 Kaya sa puntong ito namin nakuha ang error na ito na 495 00:24:39,180 --> 00:24:42,170 ang iyong programa ay nakabuo ng masyadong maraming output, 496 00:24:42,170 --> 00:24:45,100 at kung mag-scroll pababa namin at uri ng pagtingin sa kung anong nangyayari sa dito, 497 00:24:45,100 --> 00:24:49,160 maaari mong makita na ito ay hi, hi, hi, hi, hi, hi, hi ang lahat ng mga paraan sa pamamagitan ng. 498 00:24:49,160 --> 00:24:51,200 Kahanga-hanga. 499 00:24:51,200 --> 00:24:53,750 >> Kaya uri ng bumalik sa orihinal na punto 500 00:24:53,750 --> 00:24:57,020 na ang pagkakaroon dito ang indentation 501 00:24:57,020 --> 00:25:00,110 sa katawan ng loop habang hindi makakaapekto sa anumang bagay. 502 00:25:00,110 --> 00:25:03,050 Ang programa pa rin tumatakbo lamang fine. 503 00:25:03,050 --> 00:25:06,790 Karaniwan para sa mahusay na estilo - 504 00:25:06,790 --> 00:25:10,210 at ito ay isang bagay na tinitingnan namin para sa iyong mga hanay ng problema - 505 00:25:10,210 --> 00:25:13,930 kami ay magtatanong sa iyo upang ipasok ito sa pamamagitan ng 4 puwang, na maaari mong gawin 506 00:25:13,930 --> 00:25:16,440 sa pamamagitan ng lamang ng pagpindot sa key ng tab 507 00:25:16,440 --> 00:25:18,860 o sa pamamagitan ng manu-manong ng paglalagay sa 4 puwang sa iyong sarili. 508 00:25:21,880 --> 00:25:25,050 Cool, okay kaya sabihin bumalik at tumingin sa 509 00:25:25,050 --> 00:25:30,460 Alexander gawin-habang. 510 00:25:30,460 --> 00:25:32,980 >> Lamang ay medyo nagkakaroon ng kaunti ng problema. 511 00:25:32,980 --> 00:25:34,390 Okay, mahusay na sabihin sa pamamagitan ng ito. 512 00:25:34,390 --> 00:25:36,400 Na cool na? 513 00:25:36,400 --> 00:25:37,430 >> Oo. 514 00:25:37,430 --> 00:25:39,200 >> Okay, kaya dito namin pumunta. 515 00:25:39,200 --> 00:25:41,010 Ito ay ang code na Alexander sinulat ni. 516 00:25:41,010 --> 00:25:43,410 Huwag kang pumunta sa pamamagitan ng Alex - okay. 517 00:25:43,410 --> 00:25:46,380 Kaya narito ang code na Alex ay nakasulat. 518 00:25:46,380 --> 00:25:50,500 Kaya, na nakuha namin sa aming deklarasyon ng pangunahing dito mismo, 519 00:25:50,500 --> 00:25:54,410 at pagkatapos namin Mayroon integer variable na ito na tinatawag na i 520 00:25:54,410 --> 00:25:57,320 na ipinahayag dito mismo. 521 00:25:57,320 --> 00:26:01,060 Mayroon kaming Do pahayag 522 00:26:01,060 --> 00:26:04,600 at pagkatapos ay ang katawan muli sa mga tirante, 523 00:26:04,600 --> 00:26:06,520 kaya ito ay ang katawan ng Do-habang - 524 00:26:06,520 --> 00:26:09,210 hayaan mo akong mag-zoom in sa upang mas nababasa - 525 00:26:09,210 --> 00:26:12,730 at sa katawan, kami ay sinusubukang i-print "ito ay katawan", 526 00:26:12,730 --> 00:26:14,300 i + +, 527 00:26:14,300 --> 00:26:17,710 kaya dagdagan ang mga nilalaman ng i at gawin ito 528 00:26:17,710 --> 00:26:19,470 hanggang sa i ay nakakakuha na 3, 529 00:26:19,470 --> 00:26:22,440 at pagkatapos ay nagtatapos ang aming programa. 530 00:26:22,440 --> 00:26:24,680 >> Kaya kung ano ang mangyayari kapag nagpatakbo namin sa programang ito? 531 00:26:24,680 --> 00:26:27,580 >> Inaasahan ko isang identifier. 532 00:26:27,580 --> 00:26:32,070 Okay, sa gayon bumuo, patakbuhin, ang error ay nangyayari. 533 00:26:32,070 --> 00:26:34,820 Ano ang mangyayari? 534 00:26:34,820 --> 00:26:37,060 Mag-scroll pababa namin dito, 535 00:26:37,060 --> 00:26:40,260 makuha namin ito medyo misteriyoso hinahanap na bagay, 536 00:26:40,260 --> 00:26:43,930 inaasahan semicolon pagkatapos ng nangungunang antas na pagpapahayag. 537 00:26:43,930 --> 00:26:46,620 Iyon ay medyo kakaiba. 538 00:26:46,620 --> 00:26:50,990 Ba ang sinuman magkaroon ng isang ideya ng kung ano ang maaaring nangyayari sa? 539 00:26:53,080 --> 00:26:54,640 Ay medyo kakaiba, oo. 540 00:26:54,640 --> 00:26:57,640 >> [Hindi marinig] ay ipinahayag sa labas ng panaklong? 541 00:26:57,640 --> 00:27:03,480 Kaya ay hindi pagkatapos ay ilapat kapag gumamit ka ng panaklong? 542 00:27:03,480 --> 00:27:07,390 Kaya ipinahayag niya ang tao sa labas ng kung saan panaklong? 543 00:27:09,670 --> 00:27:12,240 Oh, mga guys - ang kulot tirante? 544 00:27:12,240 --> 00:27:13,850 >> Oo. 545 00:27:13,850 --> 00:27:15,310 Oo, eksakto. 546 00:27:15,310 --> 00:27:17,120 Kaya ito lumiliko out na 547 00:27:17,120 --> 00:27:21,550 hindi tunay ka maaaring ipinapahayag sa isang variable dito mismo tulad nito. 548 00:27:23,750 --> 00:27:26,690 Ano ang maaari mong sinusubukan na gawin ay - 549 00:27:26,690 --> 00:27:30,110 cut ito ng doon - 550 00:27:30,110 --> 00:27:34,330 maaari mong ilagay ang mga ito sa loob ng kulot tirante dito mismo 551 00:27:34,330 --> 00:27:37,400 o iba pang alternatibo 552 00:27:37,400 --> 00:27:40,350 ay upang ilagay ito nang ganap sa labas. 553 00:27:42,480 --> 00:27:46,610 At kaya ang mga - depende sa kung saan ang iyong aktwal na ilagay ang deklarasyon 554 00:27:46,610 --> 00:27:48,550 ng na integer variable, 555 00:27:48,550 --> 00:27:53,540 maaari kang makakuha ng 2 napaka-iba't ibang mga uri ng variable; 556 00:27:53,540 --> 00:27:55,100 kapag ito ay sa labas ng pangunahing, 557 00:27:55,100 --> 00:27:58,240 ito ay kung ano ang tinatawag naming isang pandaigdigang na variable. 558 00:27:58,240 --> 00:28:00,070 Ito ay sa labas ng saklaw ng anumang mga pag-andar - 559 00:28:00,070 --> 00:28:03,420 ito ay hindi sa loob ng isang function - 560 00:28:03,420 --> 00:28:07,050 samantalang kung namin itong ilagay sa loob ng pangunahing, 561 00:28:07,050 --> 00:28:10,000 bang dito mismo, pagkatapos ito ay tinatawag na isang lokal na variable, 562 00:28:10,000 --> 00:28:13,830 dahil ito ay lokal sa saklaw ng pangunahing. 563 00:28:13,830 --> 00:28:16,720 At makipag-usap namin ng kaunti higit pa tungkol sa kung ano ang mga pagkakaiba sa 564 00:28:16,720 --> 00:28:20,970 sa pagitan ng 2 uri at kung bakit gumagamit ka ng iba't ibang mga uri ng variable, 565 00:28:20,970 --> 00:28:23,040 ngunit sa ngayon, 566 00:28:23,040 --> 00:28:25,070 Maaari mo lamang panatilihin ang lahat ng mga variable na lokal, 567 00:28:25,070 --> 00:28:28,320 dahil wala kaming anumang mga pangangailangan para sa mga pangkalahatang variable. 568 00:28:28,320 --> 00:28:31,390 >> Okay, sa gayon na ang isang bagay doon. 569 00:28:31,390 --> 00:28:34,680 Natin subukang patakbuhin ito muli, makita kung ano ang mangyayari. 570 00:28:37,420 --> 00:28:40,270 Patakbuhin, kumuha ng isa pang error. 571 00:28:40,270 --> 00:28:43,320 Mag-zoom sa isang bit, ano ang gagawin namin? 572 00:28:45,110 --> 00:28:50,000 Makuha namin ito inaasahan panaklong pagkatapos gawin / habang. 573 00:28:53,660 --> 00:28:55,260 Anumang mga ideya sa kung anong nangyayari sa? Dan? 574 00:28:55,260 --> 00:28:58,880 >> Ang habang pagkatapos panaklong at pagkatapos - 575 00:28:58,880 --> 00:29:01,990 Hindi ko alam kung kailangan mong redeclare int, 576 00:29:01,990 --> 00:29:04,980 ngunit ang gawin habang (i <3). 577 00:29:04,980 --> 00:29:06,930 Eksakto, oo. 578 00:29:06,930 --> 00:29:08,830 Kaya ito lumiliko out na Dan akmang-akma. 579 00:29:08,830 --> 00:29:11,230 Hindi namin kailangan upang ilagay dito ang uri na ito muli. 580 00:29:11,230 --> 00:29:14,440 Maaari namin sa halip pumatay sa uri 581 00:29:14,440 --> 00:29:17,220 at gawin iyon. 582 00:29:19,270 --> 00:29:21,640 Ayos lang. 583 00:29:21,640 --> 00:29:24,950 Makikita ako mag-zoom out, subukan ito ng isa pang beses. 584 00:29:26,360 --> 00:29:29,580 Tumingin sa iyon; tumatakbo matagumpay ito. 585 00:29:29,580 --> 00:29:33,260 Kung mag-scroll pababa namin, "ito ang katawan ng" print mo ng 3 beses. 586 00:29:33,260 --> 00:29:35,820 Iyon ay medyo matamis. 587 00:29:35,820 --> 00:29:38,670 Magaling, magaling, guys. 588 00:29:38,670 --> 00:29:41,080 Magaling. 589 00:29:41,080 --> 00:29:43,250 Paano na ito ng pagpunta sa ngayon? 590 00:29:43,250 --> 00:29:46,200 Disenteng makasabay? 591 00:29:46,200 --> 00:29:49,200 Okay, cool. 592 00:29:49,200 --> 00:29:52,590 >> Kaya, namin ang uri ng bumalik sa orihinal na tanong, 593 00:29:52,590 --> 00:29:55,430 namin - at ngayon kung makita natin ang pagkakaiba, 594 00:29:55,430 --> 00:29:58,240 nakikita mo na sa Do-habang loop, 595 00:29:58,240 --> 00:30:00,030 ang kundisyon na ito ay huling. 596 00:30:00,030 --> 00:30:02,530 Kaya bilang computer bumabasa sa programa 597 00:30:02,530 --> 00:30:06,050 dahil ang C programa ay isinasagawa uri ng sunud-sunod na ito, 598 00:30:06,050 --> 00:30:09,450 kung saan sila literal magsimula sa ang unang linya ng pangunahing, 599 00:30:09,450 --> 00:30:13,450 at pagkatapos ay magsagawa ng linya 6, linya 7, linya 8, linya 9, 600 00:30:13,450 --> 00:30:16,150 linya 10, linya 11, 601 00:30:16,150 --> 00:30:18,440 ang lahat ng ito bagay-bagay sa kanang tuktok dito 602 00:30:18,440 --> 00:30:20,020 ay pagpunta upang maisagawa sa sandaling 603 00:30:20,020 --> 00:30:23,350 bago namin subukan ang kundisyong ito upang makita 604 00:30:23,350 --> 00:30:26,240 man o hindi i - o ang mga nilalaman ng i, sa halip - 605 00:30:26,240 --> 00:30:29,750 ay mas mababa ang bilang 3. 606 00:30:29,750 --> 00:30:33,300 At lamang kung sa sandaling makuha namin sa linya 12, 607 00:30:33,300 --> 00:30:36,260 ang mga nilalaman ng i mas mababa sa 3 608 00:30:36,260 --> 00:30:39,150 namin aktwal na tumalon ng pabalik hanggang sa linya 7 609 00:30:39,150 --> 00:30:41,140 at ulitin ang proseso, 610 00:30:41,140 --> 00:30:44,620 at pagkatapos namin subukan ang kundisyon muli at muli at muli. 611 00:30:44,620 --> 00:30:47,440 >> Upang maaari naming Contrast ito 612 00:30:47,440 --> 00:30:50,240 may --zoom umurong, 613 00:30:50,240 --> 00:30:56,500 mag-scroll pababa sa Sam sa bersyon, 614 00:30:56,500 --> 00:31:00,760 hindi namin gonna tingnan ito, bahagyang nagbago sa gayon ay hindi na ito isang walang-katapusang loop - 615 00:31:00,760 --> 00:31:03,570 kung saan kung naming mag-zoom in, 616 00:31:03,570 --> 00:31:06,300 nakikita namin na ang program na ito executes, 617 00:31:06,300 --> 00:31:09,120 ito sa unang idedeklara int i, 618 00:31:09,120 --> 00:31:12,030 itakda ang mga nilalaman ng i sa 0, 619 00:31:12,030 --> 00:31:15,820 at pagkatapos ay pinindot niya ang kundisyon ng habang loop unang, 620 00:31:15,820 --> 00:31:19,210 kaya sa kasong ito, ang katawan na ito, ito printf ("hi") at i + + 621 00:31:19,210 --> 00:31:21,630 ay hindi kahit execute 622 00:31:21,630 --> 00:31:24,310 maliban kung i ay talagang mas mababa sa o katumbas ng 2. 623 00:31:24,310 --> 00:31:26,750 Kaya kung i 3, halimbawa, 624 00:31:26,750 --> 00:31:28,840 kung kami itakda ito karapatan dito 625 00:31:28,840 --> 00:31:32,160 katumbas ng 4 - o ko ng 3, dahil sinabi ko 3 - 626 00:31:32,160 --> 00:31:34,890 at pagkatapos patakbuhin ang mga ito, 627 00:31:34,890 --> 00:31:38,320 ito bumuo, magpatakbo ng lubos pinong, 628 00:31:38,320 --> 00:31:40,530 ngunit hindi tunay na ito i-print ang anumang bagay, 629 00:31:40,530 --> 00:31:43,030 dahil ito Nabigo na pagsubok para sa unang kaso. 630 00:31:44,780 --> 00:31:47,530 Kaya sa klase, namin uri ng uusapang tungkol sa kung bakit ang mga Do-habang loop 631 00:31:47,530 --> 00:31:49,800 kapaki-pakinabang minsan 632 00:31:49,800 --> 00:31:53,140 at bakit namin gamitin ito bilang laban sa isang loop habang. 633 00:31:53,140 --> 00:31:56,450 >> Mayroon bang - ka guys ay may anumang mga mungkahi 634 00:31:56,450 --> 00:31:59,090 para sa kung bakit ang isang gawin-habang loop ay maaaring maging mas kapaki-pakinabang? 635 00:31:59,090 --> 00:32:02,560 >> Well, sa tingin ko gawin-habang loop ay kung gusto mo ang user input, 636 00:32:02,560 --> 00:32:05,020 dahil ang paraan na maaari mong hayaan silang 637 00:32:05,020 --> 00:32:07,780 maglagay ng isang bagay sa sabay-sabay, kung ito ay tama, 638 00:32:07,780 --> 00:32:09,300 maaari naming ilipat sa sa ibang bahagi ng programa, 639 00:32:09,300 --> 00:32:11,250 ngunit kung ito ay hindi tama, pagkatapos mong panatilihin sa pagdikta sa gumagamit 640 00:32:11,250 --> 00:32:13,250 hanggang sa ikaw ay ilagay ang tamang input. 641 00:32:13,250 --> 00:32:14,260 Oo, eksakto - eksakto, 642 00:32:14,260 --> 00:32:16,840 kaya ang gawin-habang loop ay kapaki-pakinabang 643 00:32:16,840 --> 00:32:18,930 dahil kapag pagdikta para sa user input 644 00:32:18,930 --> 00:32:23,000 dahil kailangan mo upang makuha ang input ng user bago aktwal mong suriin ito. 645 00:32:23,000 --> 00:32:27,330 Kaya sa pset 1, sa pset 2, 646 00:32:27,330 --> 00:32:29,650 kung saan ka pagdikta para sa user input ng maraming, 647 00:32:29,650 --> 00:32:31,200 na isang madaling gamitin na bagay upang gamitin ang 648 00:32:31,200 --> 00:32:33,740 bilang laban sa isang simpleng habang loop. 649 00:32:33,740 --> 00:32:36,780 Kung gumamit ka ng isang habang loop, maaari mong gawin ang parehong bagay - 650 00:32:36,780 --> 00:32:38,750 maaari mong gawin ang parehong bagay sa isang loop habang 651 00:32:38,750 --> 00:32:40,580 tulad ng iyong ginagawa sa do-habang loop. 652 00:32:40,580 --> 00:32:43,380 Mo lang ay ang uri ng duplicate na proseso na ito 653 00:32:43,380 --> 00:32:47,010 kung saan mo makuha ang input una at pagkatapos ay simulan ang iyong habang loop. 654 00:32:47,010 --> 00:32:49,800 Sapagkat isang Do-habang loop, mo lamang upang isulat ang mga ito sa sandaling 655 00:32:49,800 --> 00:32:52,430 at ito ay isang maraming mas malinis. 656 00:32:52,430 --> 00:32:54,650 >> Ayos lang. 657 00:32:55,970 --> 00:32:57,330 Anumang mga katanungan? 658 00:32:59,350 --> 00:33:01,380 Kabuluhan? 659 00:33:01,380 --> 00:33:06,200 >> Ang return 0 - na lamang ang uri ng isang stall o ito -? 660 00:33:06,200 --> 00:33:08,960 Oo, kaya maaari namin - 661 00:33:08,960 --> 00:33:11,960 mahusay, tatalakayin namin ito ng kaunti mamaya 662 00:33:11,960 --> 00:33:13,290 ngunit ito lumiliko out na 663 00:33:13,290 --> 00:33:15,720 ito balik 0 na inilalagay namin 664 00:33:15,720 --> 00:33:19,090 sa dulo ng pangunahing sa lahat ng oras - 665 00:33:19,090 --> 00:33:21,980 Maaari mo ay medyo lang ang dadalhin ang mga ito bilang isang bagay na ginagawa namin 666 00:33:21,980 --> 00:33:24,930 para sa oras. 667 00:33:24,930 --> 00:33:28,860 Ano Sinimulan na namin ang makipag-usap tungkol sa may function 668 00:33:28,860 --> 00:33:31,600 uri ng sa dulo ng nakaraang linggo at pagkatapos ay muli sa linggong ito 669 00:33:31,600 --> 00:33:33,550 ay na ang isang function 670 00:33:33,550 --> 00:33:37,680 tumatagal ng input na ang mga bagay na ito sa loob ng panaklong; 671 00:33:37,680 --> 00:33:41,690 ito ay 2 input, ang aming mga argumento o mga parameter, 672 00:33:41,690 --> 00:33:44,540 kung ano ang tinatawag din sila sa aming pangunahing function na, 673 00:33:44,540 --> 00:33:48,510 at pagkatapos ay ang function na gumagawa ng isang output 674 00:33:48,510 --> 00:33:51,290 na tinatawag naming may return halaga. 675 00:33:51,290 --> 00:33:56,260 At ang return halaga sa kaso ng mga pangunahing int na ito, 676 00:33:56,260 --> 00:33:58,320 ito integer, 677 00:33:58,320 --> 00:34:01,160 at ang paraan na sabihin sa iyo ang isang function, "Hey, ito ay kung ano ang iyong output 678 00:34:01,160 --> 00:34:05,840 ay magiging, "na ang salitang" kita ", 679 00:34:05,840 --> 00:34:07,960 keyword na iyon, sa halip, 680 00:34:07,960 --> 00:34:11,000 at kaya pangunahing bumabalik 0 681 00:34:11,000 --> 00:34:13,389 o pangunahing outputting 0 682 00:34:13,389 --> 00:34:15,139 Standard sa C programa 683 00:34:15,139 --> 00:34:18,110 dahil bumabalik 0 mula sa pangunahing paraan na 684 00:34:18,110 --> 00:34:21,600 "Uy, pinaandar ang lahat ng may sa aking programa lamang fine." 685 00:34:21,600 --> 00:34:24,639 Kung kami ay maglagay ng bagay maliban sa 0, 686 00:34:24,639 --> 00:34:27,440 tulad ng 1, halimbawa, 687 00:34:27,440 --> 00:34:31,080 na ginagamit upang sabihin sa sinumang tumakbo sa programang ito 688 00:34:31,080 --> 00:34:33,540 isang bagay na nangyaring mali. 689 00:34:35,739 --> 00:34:39,989 Kaya bilang makakakuha tayo ng mas kasangkot na may mga bagay sa ibabaw ng semestre, 690 00:34:39,989 --> 00:34:42,670 kung ka nangangailangan ng sasabihin, 691 00:34:42,670 --> 00:34:46,650 "Naku, alam mo, may nangyaring mali sa programang ito," 692 00:34:46,650 --> 00:34:49,409 sa halip ng pagkakaroon ng pag-crash ng aking programa, gusto ko upang i-notify 693 00:34:49,409 --> 00:34:52,310 runner ng aking mga programa na may nangyaring mali, 694 00:34:52,310 --> 00:34:54,530 maaari mong gamitin ang return halaga, 695 00:34:54,530 --> 00:34:57,230 na tinatawag naming, na hindi 0. 696 00:35:00,180 --> 00:35:02,240 >> Kaya tatalakayin namin na ang isang maliit na bit higit pa 697 00:35:02,240 --> 00:35:05,480 sa sandaling makuha namin sa function. 698 00:35:05,480 --> 00:35:09,030 Na uri ng saysay? 699 00:35:09,030 --> 00:35:11,240 Okay. 700 00:35:11,240 --> 00:35:13,530 Pag-andar uri ng kakaiba - 701 00:35:13,530 --> 00:35:17,270 Tingin ko para sa mga tao na may maraming ng matematika background, 702 00:35:17,270 --> 00:35:20,100 ito ay isang maliit na mas madali, 703 00:35:20,100 --> 00:35:22,540 lalo na kung mayroon kang kaunti mas abstract na background matematika 704 00:35:22,540 --> 00:35:24,240 at ginamit ka sa pinag-uusapan ng mga function 705 00:35:24,240 --> 00:35:27,370 at lahat na uri ng mga bagay-bagay. 706 00:35:28,590 --> 00:35:30,610 Ngunit susubukan naming at masakop ang mga ito 707 00:35:30,610 --> 00:35:33,280 at pumunta ng maganda at mabagal na ang mga ito ay. 708 00:35:34,730 --> 00:35:37,870 Gayundin, ang buong argc int, 709 00:35:37,870 --> 00:35:41,090 magpasinda * argv [], 710 00:35:41,090 --> 00:35:44,960 para sa ngayon, maaari mo ring na bilang kuluan plate. 711 00:35:46,650 --> 00:35:49,050 Sinimulan na namin ang upang masakop ang mga kaunti sa panayam 712 00:35:49,050 --> 00:35:53,060 kapag makipag-usap namin tungkol sa mga argumento na makapag ang pumasa sa mga programa sa command line, 713 00:35:53,060 --> 00:35:55,700 ngunit sa iyong mga set ng problema at ang iyong mga programa, 714 00:35:55,700 --> 00:35:58,760 lubos pinong lamang sa sumulat ng walang bisa at panatilihin ang mga ito sa simpleng. 715 00:35:58,760 --> 00:36:01,490 At kung ano ang walang silbi ang ibig sabihin nito ay ay na 716 00:36:01,490 --> 00:36:04,630 "Uy, pangunahing ay hindi tanggapin ang anumang input; 717 00:36:04,630 --> 00:36:07,440 ito ay isang programa na kami ay gonna lamang patakbuhin ang. 718 00:36:07,440 --> 00:36:09,320 Hindi namin gonna bigyan ito ng anumang karagdagang impormasyon 719 00:36:09,320 --> 00:36:12,420 sa tuwing sisimulan namin ito sa pagtakbo. " 720 00:36:14,730 --> 00:36:16,600 Kaya sa ngayon, maaari mong gawin ito; 721 00:36:16,600 --> 00:36:19,710 maaari mo ring kahit na alisin ang return 0 722 00:36:19,710 --> 00:36:22,650 sa dulo ng iyong mga programa at tumakbo ang mga ito lamang fine, 723 00:36:22,650 --> 00:36:26,150 ngunit inirerekumenda ko lamang pinapanatili na in 724 00:36:26,150 --> 00:36:28,320 Sa loob ng ilang linggo, sisimulan namin sa uri ng 725 00:36:28,320 --> 00:36:31,340 hilahin pabalik ang takip ng kaunti at maunawaan ang higit pa tungkol sa 726 00:36:31,340 --> 00:36:34,380 lahat ng mga iba't ibang mga maliit na gumalaw na mga bahagi. 727 00:36:34,380 --> 00:36:38,160 >> Lahat ng karapatan, ngayon sabihin makipag-usap tungkol sa aming ikalawang tanong dito. 728 00:36:38,160 --> 00:36:43,190 Kaya kung ano ang "hindi nagbigay-alam identifier" ay karaniwang ipahiwatig 729 00:36:43,190 --> 00:36:46,040 kung outputted sa pamamagitan ng kalatong? 730 00:36:46,040 --> 00:36:49,290 Tingin ko nakita natin na na ngayon. 731 00:36:51,170 --> 00:36:54,370 Maaari isang tao magbigay ng isang pagbabalik-tanaw ng kung ano ito ay nangangahulugan na? 732 00:36:54,370 --> 00:36:57,680 Natin makita, Kelly - isa ng ang Kellys. 733 00:37:02,580 --> 00:37:05,300 >> Kaya - 734 00:37:05,300 --> 00:37:07,080 Oo, kung ano ang - 735 00:37:07,080 --> 00:37:10,140 >> Tingin ko kapag sa iyo, tulad ng, hindi ipinapahayag ang mga variable at subukan mong gamitin ang mga ito. 736 00:37:10,140 --> 00:37:13,310 Oo, eksakto, eksakto. 737 00:37:13,310 --> 00:37:15,250 Kaya kung sakaling makita ang output 738 00:37:15,250 --> 00:37:17,690 kapag ikaw subukan at ipunin ang iyong programa, 739 00:37:17,690 --> 00:37:19,470 lamang tulad ng Kelly sinabi, 740 00:37:19,470 --> 00:37:24,210 nangangahulugan ito na gumamit ka ng variable na hindi mo idedeklara, 741 00:37:24,210 --> 00:37:28,460 kaya kung pumunta ako pabalik sa aming Space, 742 00:37:28,460 --> 00:37:31,150 at gagawin ko isang bagay tulad ng 743 00:37:31,150 --> 00:37:34,800 printf ( 744 00:37:34,800 --> 00:37:38,260 "Kumusta% s") 745 00:37:40,070 --> 00:37:42,440 at subukan at punan na% s 746 00:37:42,440 --> 00:37:45,640 may isang variable na s na hindi ko na ipinahayag sa kahit saan 747 00:37:45,640 --> 00:37:48,330 at subukan kong patakbuhin ito, 748 00:37:48,330 --> 00:37:51,330 makikita mo kung ano ako makakakuha ng sa ibaba dito mismo: 749 00:37:51,330 --> 00:37:54,010 "Paggamit ng hindi nagbigay-alam identifier 's'"; 750 00:37:54,010 --> 00:37:57,710 na lamang ang ibig sabihin nito ay hindi mo idedeklara ang iyong variable. 751 00:37:57,710 --> 00:38:00,750 Parehong bagay ang mangyayari kung 752 00:38:00,750 --> 00:38:05,240 mayroon kang x at mong subukan at mag-store ng 7 sa loob nito 753 00:38:05,240 --> 00:38:08,720 at hindi ko ipinapahayag X. 754 00:38:08,720 --> 00:38:10,200 Ko na parehong error: 755 00:38:10,200 --> 00:38:13,480 "Gumamit ng 'x' hindi nagbigay-alam identifier". 756 00:38:16,390 --> 00:38:18,250 >> Lahat ng karapatan, 757 00:38:18,250 --> 00:38:21,720 kaya ang Caesar Cipher, hindi napaka-secure na, 758 00:38:21,720 --> 00:38:24,590 Ipapaalam ko mo guys panoorin ang maikling, uri ng maunawaan kung bakit, 759 00:38:24,590 --> 00:38:27,590 at sana matapos na ginagawa ang problemang ito linggo itakda 760 00:38:27,590 --> 00:38:29,270 kung saan ang iyong aktwal na magsulat ng isang Caesar Cipher, makikita mo maunawaan ng kaunti higit pa 761 00:38:29,270 --> 00:38:32,600 tungkol sa kung ano ang ibig sabihin nito upang maging isang secure at hindi secure na - 762 00:38:36,180 --> 00:38:38,960 o hindi secure, hulaan ko - hindi secure na ay bahagyang naiiba. 763 00:38:40,560 --> 00:38:43,140 Ang iba pang bagay ay mayroon kaming iba pang mga tanong dito 764 00:38:43,140 --> 00:38:45,470 tungkol sa mga function 765 00:38:45,470 --> 00:38:47,330 at kung ano ang function na ay, 766 00:38:47,330 --> 00:38:52,820 at hindi na namin uri ng uusapang tungkol na panandaliang kapag usapan natin ang tungkol sa mga halaga return; 767 00:38:52,820 --> 00:38:54,560 para sa isang tao na naging panayam, 768 00:38:54,560 --> 00:38:57,790 maaari mong paglalagom na naging panayam ngayon? 769 00:38:57,790 --> 00:38:59,670 Ayos lang. 770 00:39:01,210 --> 00:39:04,320 Natin makita, sabihin mayroon - maaari isang tao sabihin sa amin kung ano ang isang function na? 771 00:39:04,320 --> 00:39:06,060 Kelly? 772 00:39:07,800 --> 00:39:11,260 >> >> Talaga ng isang bagay kang gumuhit kapag isang bagay na nakasulat sa library na 773 00:39:11,260 --> 00:39:14,460 mas komplikado banda roon, at pagkatapos mo lamang na magsulat ng isang maikling form nito, 774 00:39:14,460 --> 00:39:17,360 kaya tulad ka nagre-refer na bumalik sa library na iyon, gamit 775 00:39:17,360 --> 00:39:19,650 lahat na mahaba code at [hindi marinig]. 776 00:39:19,650 --> 00:39:22,680 Oo, eksakto, at pagkatapos mo Gusto mo bang magdagdag ng isang bagay na iyon? 777 00:39:22,680 --> 00:39:27,050 >> Oo, sa tingin ko tungkol dito bilang katulad sa ang konsepto ng isang formula sa matematika 778 00:39:27,050 --> 00:39:30,130 kung saan ka magsulat lamang ng formula at maaari mong plug ang mga variable sa 779 00:39:30,130 --> 00:39:32,660 at iyon ang kung ano ang function ng [hindi marinig]. 780 00:39:32,660 --> 00:39:35,390 >> Oo, kaya namin Mayroon ng ilang ng mga sagot dito 781 00:39:35,390 --> 00:39:38,080 na parehong talagang mabuti at pakanan sa. 782 00:39:38,080 --> 00:39:43,040 May tumutukoy sa code na nakasulat sa library sa isang lugar 783 00:39:43,040 --> 00:39:45,390 na mas komplikado 784 00:39:45,390 --> 00:39:47,130 at pagkatapos ay maaari kang gumuhit kapag ang code 785 00:39:47,130 --> 00:39:50,480 at aktwal na gamitin ang mga ito sa pamamagitan ng pagsusulat lamang ng maikling form nito - 786 00:39:50,480 --> 00:39:54,060 o, sa halip, ang pangalan nito - 787 00:39:54,060 --> 00:39:57,590 at pagkatapos ay mayroon ding ang paghahambing na ito sa isang formula sa matematika 788 00:39:57,590 --> 00:40:00,400 o pisika, lahat na uri ng mga bagay-bagay 789 00:40:00,400 --> 00:40:02,980 kung saan mayroon kang isang formula 790 00:40:02,980 --> 00:40:05,690 at maaari mong plug sa 791 00:40:05,690 --> 00:40:08,100 ang mga variable na formula 792 00:40:08,100 --> 00:40:11,130 upang makuha ang resulta ng formula, 793 00:40:11,130 --> 00:40:14,580 kaya sa tingin mo tungkol dito tulad ng parisukat equation. 794 00:40:14,580 --> 00:40:17,690 Isipin kung sa halip ng pagkakaroon upang malaman ang tungkol 795 00:40:17,690 --> 00:40:21,310 kung ano ang parisukat na formula ay sa matematika klase, 796 00:40:21,310 --> 00:40:24,610 mo lamang ay nagkaroon ng isang maliit na programa na calculator na ginawa ito para sa iyo. 797 00:40:24,610 --> 00:40:28,930 Ba sinuman gamitin ang mga programa ng calculator sa klase ng matematika sa high school? 798 00:40:28,930 --> 00:40:31,020 Oo, pisika klase? 799 00:40:31,020 --> 00:40:34,670 Kung saan maaari mo lamang sabihin, "Uy, parisukat formula. 800 00:40:34,670 --> 00:40:37,740 Ito ay ang mga variable na gusto kong input. 801 00:40:37,740 --> 00:40:40,250 Ngayon ninyo akong bigyan ang kasagutan. " 802 00:40:40,250 --> 00:40:42,170 Iyon ay uri ng kung ano ang isang function na. 803 00:40:42,170 --> 00:40:44,850 Ito ay isang paraan para sa amin upang 804 00:40:44,850 --> 00:40:47,720 uri ng mga write tulad ng isang maliit na maliit na sub programa 805 00:40:47,720 --> 00:40:51,700 sa loob ng aming mas malaking programa 806 00:40:51,700 --> 00:40:55,090 at gamitin ito nang paulit-ulit 807 00:40:55,090 --> 00:40:58,380 sa gayon ay hindi namin upang kopyahin at i-paste ang code, 808 00:40:58,380 --> 00:41:04,220 maaari naming bigyan ito ng ibang mga input at makakuha ng ibang output, 809 00:41:04,220 --> 00:41:07,090 sobrang madaling gamiting 810 00:41:07,090 --> 00:41:11,420 kapag ikaw ay sinusubukan upang isulat ang iba't ibang mga programa sa iba't ibang oras. 811 00:41:11,420 --> 00:41:14,580 >> Kaya halimbawa, ang isang function na namin ang gamit at paulit-ulit 812 00:41:14,580 --> 00:41:17,310 buong kurso ay printf. 813 00:41:17,310 --> 00:41:19,680 Ay mismo Printf isang function 814 00:41:19,680 --> 00:41:23,360 at ito ay lumiliko out na ito ay talagang isang medyo mahaba at kumplikadong, 815 00:41:23,360 --> 00:41:26,420 makukulit hinahanap, gumana na magsulat. 816 00:41:26,420 --> 00:41:29,590 Kaya bilang simpleng bilang tila sa amin 817 00:41:29,590 --> 00:41:31,810 upang i-print ang mga bagay-bagay sa screen, 818 00:41:31,810 --> 00:41:34,820 dahil namin ang lahat lamang ginawa iyon sa simula ng seksyon ngayon, 819 00:41:34,820 --> 00:41:36,870 ito lumiliko out na ito aktwal, alam mong, 820 00:41:36,870 --> 00:41:39,900 isang magandang ilang daang mga linya ng code. 821 00:41:42,030 --> 00:41:45,620 Ito ay hindi isang bagay na Gusto ko kailanman nais na magsulat, para bang, 822 00:41:45,620 --> 00:41:47,480 ngunit makuha namin upang gamitin ito araw-araw, na uri ng mga cool na, 823 00:41:47,480 --> 00:41:49,020 kaya namin upang ibahagi ang mga ito sa bawat isa, 824 00:41:49,020 --> 00:41:51,790 sa iba't ibang mga programa, 825 00:41:51,790 --> 00:41:54,520 kaya kami ay magiging diving higit pa sa function; 826 00:41:54,520 --> 00:41:56,090 para sa oras, hindi kami - 827 00:41:56,090 --> 00:41:59,150 lamang ang function na kami ay pagpunta sa ay pagsusulat ay pangunahing. 828 00:41:59,150 --> 00:42:01,570 Pangunahing din mismo ay isang function, 829 00:42:01,570 --> 00:42:04,270 at maaari mong makita ang mga ito ay nakuha nito output, 830 00:42:04,270 --> 00:42:06,610 nitong mga input tulad namin uusapang tungkol sa, 831 00:42:06,610 --> 00:42:08,930 at pagkatapos ay ang pangalan nito, na siyang pangunahing. 832 00:42:08,930 --> 00:42:11,800 Pangunahing uri ng - ay isang espesyal na function na doon. 833 00:42:11,800 --> 00:42:14,800 Sa iyong programa sa C, ay isang pangunahing function na, 834 00:42:14,800 --> 00:42:17,900 at iba pa sa ngayon, na namin uri ng tinanggal pagsulat 835 00:42:17,900 --> 00:42:21,400 ang prototype, o ang deklarasyon ng pangunahing. 836 00:42:21,400 --> 00:42:23,050 Nagbigay kami na sa iyo, 837 00:42:23,050 --> 00:42:25,650 at kami ay mong punan sa uri ng blangko. 838 00:42:25,650 --> 00:42:29,120 >> >> Kaya para sa pangalawang hanay ng problema, hindi namin kailangang 839 00:42:29,120 --> 00:42:31,350 sumulat ang mga ito sa ang pangalawang function na? 840 00:42:31,350 --> 00:42:34,200 Hindi ako naniniwala ito. 841 00:42:34,200 --> 00:42:37,600 Naniniwala ako na ang lahat ng ito dito. 842 00:42:37,600 --> 00:42:41,710 Oo, kaya Caesar Cipher, 843 00:42:41,710 --> 00:42:45,000 hindi mo, ito ay hindi hitsura, 844 00:42:48,740 --> 00:42:53,150 at Vigenere, hindi mo pag alinman, 845 00:42:53,150 --> 00:42:56,400 kaya - at ito ay lumiliko out hindi mo kailanman aktwal na magsulat 846 00:42:56,400 --> 00:42:58,250 isang function, i-right? 847 00:42:58,250 --> 00:43:01,950 Tawagan ka palaging ilagay ang lahat ng iyong code sa loob ng pangunahing, 848 00:43:01,950 --> 00:43:04,500 at maraming programmer gawin na. 849 00:43:04,500 --> 00:43:07,130 Habang kami, 850 00:43:07,130 --> 00:43:09,480 simulan namin nagpapakilala ng mga function bilang isang paraan 851 00:43:09,480 --> 00:43:11,530 upang linisin ang iyong code, 852 00:43:11,530 --> 00:43:13,380 upang gawin itong mas eleganteng, 853 00:43:13,380 --> 00:43:16,890 kung sakaling mayroon kang gawain - uri ng tulad ng kapag usapan natin ang tungkol sa mga loop, 854 00:43:16,890 --> 00:43:20,400 kung paano minsan may mga bagay na gusto mong gawin muli at muli at muli, 855 00:43:20,400 --> 00:43:23,510 at mayroon kang uri ng musmos paraan - 856 00:43:23,510 --> 00:43:26,360 o kung ano ang madalas naming tawagan ang "dayami tao" na solusyon, 857 00:43:26,360 --> 00:43:29,390 ay upang kopyahin lamang at i-paste ang paulit-ulit - 858 00:43:29,390 --> 00:43:31,000 maaari mong gawin ang parehong bagay sa function kung saan mo lamang kopyahin at i-paste 859 00:43:31,000 --> 00:43:33,360 ang parehong code nang paulit-ulit, 860 00:43:33,360 --> 00:43:35,750 ngunit iyon bloats iyong code - 861 00:43:35,750 --> 00:43:38,550 ito ay nagtatapos up paggawa ng iyong code talagang mahaba - 862 00:43:38,550 --> 00:43:41,550 at ito din ay nakakakuha ng kaunti nakalilito, 863 00:43:41,550 --> 00:43:43,470 at pagkatapos ito ay nangangahulugan na ikaw ay hindi magagawang i - 864 00:43:43,470 --> 00:43:45,250 kung sakaling gusto mong gamitin muli ang code na iyon sa ibang programa, 865 00:43:45,250 --> 00:43:48,610 ka rin natigil ang pagkopya at pag-paste itong muli, 866 00:43:48,610 --> 00:43:51,170 kaya ang isa sa mga bagay na gagamitin namin makipag-usap tungkol sa 867 00:43:51,170 --> 00:43:54,960 uri ng disenyo at estilo ng iyong mga programa, 868 00:43:54,960 --> 00:43:57,010 at kaya kapag saysay sa uri ng 869 00:43:57,010 --> 00:43:59,800 pakete ng isang bagay up at ilagay ang mga ito bilang isang hiwalay na function na, 870 00:43:59,800 --> 00:44:02,080 hinihikayat ka namin na gawin iyon, 871 00:44:02,080 --> 00:44:04,700 at iyon ay isang bagay na, muli, 872 00:44:04,700 --> 00:44:07,790 walang mahirap at mabilis na panuntunan. 873 00:44:07,790 --> 00:44:11,540 Bihira namin sinasabi na dapat mong magsulat ng isang function na tinatawag na ito, 874 00:44:12,870 --> 00:44:16,320 subalit ito ay higit pa sa isa sa mga bagay mo lamang bumuo sa paglipas ng panahon 875 00:44:16,320 --> 00:44:19,470 habang sumulat ka ng higit pa at higit pa na mga programa. 876 00:44:21,940 --> 00:44:24,790 >> Anumang higit pang mga tanong? 877 00:44:26,340 --> 00:44:30,610 Okay, kaya natin ngayon 878 00:44:30,610 --> 00:44:34,750 pumunta-back up ito tao dito mismo, 879 00:44:34,750 --> 00:44:37,800 kaya ako pa rin sa seksyon na ito ng mga tanong. 880 00:44:37,800 --> 00:44:39,900 Namin ang uusapang tungkol sa lahat ng mga iba't ibang mga, 881 00:44:39,900 --> 00:44:42,050 kung ano ang isang function na, bakit sa sumulat ng mga function, 882 00:44:42,050 --> 00:44:44,700 kapag maaari mong kopyahin lamang at i-paste? 883 00:44:44,700 --> 00:44:47,700 Sana kami kumbinsido mo na ang pagsusulat function ay isang magandang bagay. 884 00:44:47,700 --> 00:44:50,870 Kaya ngayon sabihin lumipat sa MySpace programa na ito, 885 00:44:50,870 --> 00:44:53,080 at kami na gastos ng kaunting oras paggawa nito. 886 00:44:54,600 --> 00:44:56,480 >> Kaya, sabihin makita, 887 00:44:56,480 --> 00:45:00,230 ko na ang isang tao na basahin ito para sa akin? 888 00:45:02,640 --> 00:45:04,660 Natin may Mikhaila - mong basahin ang mga ito para sa amin? 889 00:45:07,660 --> 00:45:08,890 >> Ibig sabihin mo pabalik kapag MySpace - 890 00:45:08,890 --> 00:45:10,920 Back kapag MySpace ay cool na. 891 00:45:10,920 --> 00:45:12,070 >> "Bumalik kapag MySpace ay cool, 892 00:45:12,070 --> 00:45:14,900 ito ay ang lahat ng galit i-type tulad nito. 893 00:45:14,900 --> 00:45:17,320 Siguro pa rin ito ay? Hindi ako talagang sigurado. 894 00:45:17,320 --> 00:45:19,990 Sa anumang kaso, gamit ang CS50 Appliance, 895 00:45:19,990 --> 00:45:22,600 CS50 Run, o CS50 puwang, 896 00:45:22,600 --> 00:45:25,370 magsulat ng isang programa na prompt ang user para sa isang mensahe 897 00:45:25,370 --> 00:45:29,350 at pagkatapos output ang message na may malaking titik ang unang titik nito, 898 00:45:29,350 --> 00:45:31,800 sa lahat ng iba pang mga titik sa alternating kaso, 899 00:45:31,800 --> 00:45:34,010 tulad ng bawat ang sample output sa ibaba, 900 00:45:34,010 --> 00:45:37,060 kung saan boldfaced teksto ay kumakatawan sa input ilang user. 901 00:45:37,060 --> 00:45:39,800 Simple, maaari mong ipagpalagay na ang mga gumagamit 902 00:45:39,800 --> 00:45:42,810 ay lamang input maliliit na titik at espasyo. 903 00:45:42,810 --> 00:45:45,900 Isaalang-alang ang problemang ito ng pagkakataon na magsanay; 904 00:45:45,900 --> 00:45:48,640 hindi mo hilingin sa iyo na isumite ang programang ito. " 905 00:45:48,640 --> 00:45:51,640 >> Kahanga-hanga, salamat. 906 00:45:51,640 --> 00:45:54,750 Kaya bilang Mikhaila sinabi, 907 00:45:54,750 --> 00:45:58,850 kami ay pagpunta sa magsulat ng isang programa na MySpaces iyong code. 908 00:45:58,850 --> 00:46:02,230 Kaya ang anumang mo guys gamitin MySpace? 909 00:46:02,230 --> 00:46:04,100 Anumang mo ay may MySpace account? 910 00:46:04,100 --> 00:46:05,920 Oh, oo, oo! 911 00:46:05,920 --> 00:46:08,300 Ito ay medyo cool. 912 00:46:08,300 --> 00:46:09,950 [Tawa] 913 00:46:09,950 --> 00:46:12,060 Alam ko. 914 00:46:12,060 --> 00:46:14,500 Dating aking sarili. 915 00:46:15,490 --> 00:46:18,300 Kaya kung ano ang sinusubukan naming gawin ay isulat ang isang programa 916 00:46:18,300 --> 00:46:21,110 na Dumadaan 917 00:46:21,110 --> 00:46:24,490 at capitalizes ang unang titik 918 00:46:24,490 --> 00:46:27,140 at pagkatapos bawat titik na sandali - 919 00:46:27,140 --> 00:46:29,350 o bawat iba pang sulat noon, ako ng paumanhin. 920 00:46:29,350 --> 00:46:32,910 >> Kaya - at maaari mong makita sa halimbawang ito, 921 00:46:32,910 --> 00:46:35,260 ito ay kung paano patakbuhin ang namin ang programa, 922 00:46:35,260 --> 00:46:38,780 at kaya ito ay lamang na nagsasabi, "Kami ay nagpapatakbo ng isang programa na tinatawag na a.out. 923 00:46:41,490 --> 00:46:44,630 Ang input na kami ay pagpunta sa pagbibigay ito 924 00:46:44,630 --> 00:46:47,090 pagpunta sa-prompt. 925 00:46:47,090 --> 00:46:51,150 Hindi namin gonna ibigay ang input sa command line. " 926 00:46:51,150 --> 00:46:54,100 Kung ikaw ay pagsunod sa lahat ng mga aralin 927 00:46:54,100 --> 00:46:56,710 at pagdinig tungkol sa mga argumento sa command line, 928 00:46:57,810 --> 00:47:00,080 na uri ng kung saan ang mga - na funky syntax 929 00:47:00,080 --> 00:47:04,530 sa pangunahing ay may int argc, ang lahat ng mga bagay-bagay, 930 00:47:04,530 --> 00:47:07,630 kaya dito hindi namin ginagamit na, hindi namin pagharap sa anuman sa mga iyon. 931 00:47:09,400 --> 00:47:12,650 Humihingi kami lamang gonna makakuha ito-type ng user, 932 00:47:12,650 --> 00:47:15,700 at pagkatapos ay ang pangalawang linya na ito na may funky capitalization 933 00:47:15,700 --> 00:47:18,550 kung ano ang gusto namin ang aming programa sa output. 934 00:47:19,790 --> 00:47:22,860 >> Kaya sa halip na gamitin ang Appliance o Run, gagamitin namin ang mga puwang, 935 00:47:22,860 --> 00:47:25,360 dahil kami nakakuha puwang, 936 00:47:25,360 --> 00:47:28,640 at kaya kung ka guys gagawin 937 00:47:28,640 --> 00:47:32,380 makuha ang iyong code upang tumingin ng isang bagay na tulad nito, 938 00:47:32,380 --> 00:47:35,930 kaya ako pagpunta sa i-save ang pagbabago na ito 939 00:47:35,930 --> 00:47:38,390 lang kaya mo Mayroon boiler plate dito mismo 940 00:47:38,390 --> 00:47:42,840 na ganito ang hitsura, int pangunahing (walang bisa), wala sa loob nito. 941 00:47:44,480 --> 00:47:48,460 Aktwal na, kung ano kami na lang namin tanggalin ang lahat ng lahat ng sama-sama. 942 00:47:48,460 --> 00:47:50,330 Gusto namin ng blangkong slate, 943 00:47:50,330 --> 00:47:52,470 dahil hindi namin gonna simulan ang pagsusulat ng code; 944 00:47:52,470 --> 00:47:55,380 sa halip, hindi namin gonna subukan ang pagsusulat ng ilang pseudocode 945 00:47:55,380 --> 00:47:58,580 kung saan talagang lamang ay nangangahulugan na ang kami ay pagpunta sa magsulat ng isang bagay na hindi code 946 00:47:58,580 --> 00:48:01,010 na uri ng naglalarawan kung ano ang gusto naming gawin, 947 00:48:01,010 --> 00:48:05,180 ay medyo tulad ng David ay ginawa sa unang araw ng panayam, 948 00:48:05,180 --> 00:48:08,310 o hulaan ko na ang ikalawang araw ng panayam kapag ginawa niya ang buong demo ng mga medyas. 949 00:48:08,310 --> 00:48:10,990 Mong guys tandaan na - nakikita ang medyas? 950 00:48:10,990 --> 00:48:13,300 Joseph ay doon uri ng pag-type sa Ingles? 951 00:48:13,300 --> 00:48:16,300 Kaya hindi namin gonna gawin ang parehong bagay. 952 00:48:16,300 --> 00:48:18,380 >> Kaya kapag sisimulan ko ang pagsusulat ng pseudocode, 953 00:48:18,380 --> 00:48:22,640 Gusto kong magsimula sa pamamagitan ng pagtingin sa kung ano ang input ay magiging. 954 00:48:22,640 --> 00:48:24,950 At bigyan ko ang aking sarili ng isang sample ng kaso, 955 00:48:24,950 --> 00:48:28,780 kaya tulad ng "salamat para sa add!" 956 00:48:35,030 --> 00:48:38,010 At pagkatapos ko ring sumulat kung ano ang gusto kong output na, 957 00:48:38,010 --> 00:48:42,210 na sa kasong ito ay isang bagay tulad nito. 958 00:48:53,790 --> 00:48:56,050 At ang uri ng nagbibigay sa akin ng isang mahusay na, tulad ng, na nagsisimula lugar na isipin ang tungkol, 959 00:48:56,050 --> 00:48:59,730 "Okay, gusto kong linya 1 960 00:48:59,730 --> 00:49:03,560 at gusto ko na baguhin ang mga ito sa linya 2, " 961 00:49:03,560 --> 00:49:06,570 at sa uri ng tumutulong na gabayan ang aking pag-iisip. 962 00:49:06,570 --> 00:49:09,990 Ito ay isang magandang lugar upang magsimula. 963 00:49:09,990 --> 00:49:12,190 Isa pang paraan upang tingin tungkol dito, masyadong, bilang ay medyo namin ilipat sa 964 00:49:12,190 --> 00:49:15,020 at ginawa mo na ito sa iyong sariling mga programa, ay 965 00:49:15,020 --> 00:49:18,530 isipin ang tungkol sa uri ng tulad ng kung ano ang kaso sa gilid na ito? 966 00:49:18,530 --> 00:49:20,740 Ano ang mga uri ng kakaiba sitwasyon? 967 00:49:20,740 --> 00:49:23,660 Ano ang kakaiba input na maaari naming makakuha ng? 968 00:49:23,660 --> 00:49:26,550 At ano ang dapat mga output hitsura? 969 00:49:26,550 --> 00:49:29,670 Halimbawa, isang kakaiba input 970 00:49:29,670 --> 00:49:33,200 ay ang isang ito, 971 00:49:33,200 --> 00:49:35,630 paglikha ng ganap na walang, 972 00:49:35,630 --> 00:49:37,840 tulad ng kung ano ang dapat naming output sa kasong iyon? 973 00:49:37,840 --> 00:49:40,530 Isang bagay na gusto naming mag-isip tungkol sa, masyadong. 974 00:49:40,530 --> 00:49:44,450 >> Kaya lang ng isang tanong, 975 00:49:44,450 --> 00:49:46,870 kung ano ang maaari naming nais na output? 976 00:49:46,870 --> 00:49:50,740 Kung hindi kami makakuha ng anumang mga input sa lahat, ano ang dapat aming programa outputting? 977 00:49:53,740 --> 00:49:54,860 >> Walang. 978 00:49:54,860 --> 00:49:57,340 Wala? Tunog mahusay. 979 00:49:57,340 --> 00:49:59,280 Kaya gusto namin upang matiyak na hindi kami ay sumusulat ng anumang out 980 00:49:59,280 --> 00:50:01,500 kung hindi kami makakuha ng anumang. 981 00:50:01,500 --> 00:50:04,320 Cool. Okay. 982 00:50:04,320 --> 00:50:07,370 Kaya 983 00:50:07,370 --> 00:50:09,380 Ako pagpunta sa tumawag sa isang ilang mga tao bilang pumunta kami sa pamamagitan ng 984 00:50:09,380 --> 00:50:12,790 at malaman ang uri ng tulad ng kung ano ang pangkalahatang algorithm 985 00:50:12,790 --> 00:50:15,250 at kami na uri simulan ang nagtatrabaho sa pamamagitan ng sama-sama na ito. 986 00:50:16,240 --> 00:50:19,710 >> Kaya, sabihin makita. Missy. 987 00:50:19,710 --> 00:50:21,220 Paano mo tingin gusto namin magsimula? 988 00:50:21,220 --> 00:50:24,830 Ano ang gusto maging isang magandang lugar upang magsimula dito 989 00:50:24,830 --> 00:50:27,900 kung gusto namin na baguhin, sabihin, linya 1 990 00:50:27,900 --> 00:50:29,440 sa linya 2? 991 00:50:29,440 --> 00:50:32,650 Maaari mong uri ng lamang ipaliwanag sa akin, sa Ingles, ano ang iyong iniisip? 992 00:50:32,650 --> 00:50:34,770 Huwag kahit na mag-alala tungkol sa code. 993 00:50:34,770 --> 00:50:38,250 >> Unang bagay na gusto kong gawin ay 994 00:50:38,250 --> 00:50:41,170 uri ng direktang ng gumagamit upang sabihin sa kanila kung ano ang nais mong. 995 00:50:41,170 --> 00:50:44,730 Okay, kaya, sabihin nating, 996 00:50:44,730 --> 00:50:47,450 "Uy, gumagamit. Gusto ko 997 00:50:47,450 --> 00:50:50,560 isang string "- kahanga-hangang. 998 00:50:50,560 --> 00:50:52,990 Kaya sabihin isulat ito pababa. 999 00:50:52,990 --> 00:50:56,140 -Prompt ng ng gumagamit para sa isang string. 1000 00:50:56,140 --> 00:50:59,270 Iyan tulad ng isang mahusay na pagsisimula. 1001 00:51:03,920 --> 00:51:06,460 Ayos lang. 1002 00:51:06,460 --> 00:51:09,750 Natin hilingin Kelly Ren oras na ito. 1003 00:51:09,750 --> 00:51:11,580 Ano ang gusto namin gusto ang susunod na gagawin? 1004 00:51:11,580 --> 00:51:14,220 Ano ang uri ng aming susunod na -? 1005 00:51:14,220 --> 00:51:18,080 >> Kolektahin ang kanilang mga input at mag-imbak ang mga ito bilang isang variable. 1006 00:51:18,080 --> 00:51:20,470 Mahusay. 1007 00:51:20,470 --> 00:51:24,280 Kaya mangolekta ang string, 1008 00:51:25,450 --> 00:51:27,880 -imbak ang mga ito sa isang variable. 1009 00:51:34,840 --> 00:51:36,460 Kaya Mayroong anumang espesyal na gusto naming gawin dito? 1010 00:51:36,460 --> 00:51:39,700 Gusto naming suriin ang kanilang mga input 1011 00:51:39,700 --> 00:51:42,260 bago -? 1012 00:51:42,260 --> 00:51:43,790 >> Oo. 1013 00:51:43,790 --> 00:51:46,330 Ano ang maaari naming gusto upang suriin para sa? 1014 00:51:46,330 --> 00:51:48,980 >> Well, sinabi hindi namin upang suriin kung ito ay isang numero, i-right? 1015 00:51:48,980 --> 00:51:52,400 Dahil ito ay ipinapalagay na ito ay lowercase? 1016 00:51:52,400 --> 00:51:55,650 Oo. 1017 00:51:56,380 --> 00:51:58,920 >> Kaya ito lumiliko out na - oo. 1018 00:51:58,920 --> 00:52:01,850 Kaya getString katiyakan upang bumalik sa amin ng isang string. 1019 00:52:01,850 --> 00:52:05,050 Hindi ito upang bumalik ang isang numero sa amin o anumang bagay tulad na. 1020 00:52:05,050 --> 00:52:09,140 Maaaring digit na mga character sa loob ng string na iyon, bagaman. 1021 00:52:09,140 --> 00:52:13,460 At sa mga, maaari naming huwag pansinin namin ginawa ang capitalization. 1022 00:52:13,460 --> 00:52:16,620 Ngunit ang isang walang laman na string ay lubos pinong, 1023 00:52:16,620 --> 00:52:19,900 kaya ang kaso dito mismo sa linya 4 at 5, 1024 00:52:19,900 --> 00:52:22,020 kanan, kung saan ang walang input, 1025 00:52:22,020 --> 00:52:25,190 at hindi na namin inilagay ang mga walang bilang aming output. 1026 00:52:25,190 --> 00:52:28,730 Hindi namin kailangang mag-alala tungkol sa siguraduhin na may isang bagay sa string 1027 00:52:28,730 --> 00:52:31,840 o na ang string ay hindi bababa sa 4 na mga character ang haba; 1028 00:52:31,840 --> 00:52:34,190 anumang ay pinong. 1029 00:52:34,190 --> 00:52:38,270 Kaya ito ay contrasted, halimbawa, tulad ng programa pennies na iyong sinulat ni 1030 00:52:38,270 --> 00:52:42,340 kung saan mayroon kang upang tiyakin na ikaw ay nakakakuha ng di-negatibong numero; 1031 00:52:42,340 --> 00:52:46,430 mayroon kang upang matiyak na ikaw ay pagkuha ng tamang bilang ng mga araw sa isang buwan. 1032 00:52:46,430 --> 00:52:49,630 At kung paano mo guys na ginagawa na? 1033 00:52:49,630 --> 00:52:51,470 Paano mo ire-gawin na pagsubok? 1034 00:52:51,470 --> 00:52:54,090 Ano ang na nangangailangan mong gamitin? 1035 00:52:54,090 --> 00:52:55,650 >> Ba-habang loop. 1036 00:52:55,650 --> 00:53:00,840 Gawin-habang loop, ang iba pang mga uri ng mga loop, masyadong, oo. 1037 00:53:02,190 --> 00:53:04,520 Kaya ito lumiliko out wala kaming gumamit ng loop sa kasong ito, 1038 00:53:04,520 --> 00:53:07,360 kapag kami ay pagdikta para sa isang string, na uri ng magaling. 1039 00:53:08,280 --> 00:53:10,620 >> Lahat ng karapatan, paglipat sa. 1040 00:53:12,410 --> 00:53:14,270 Kaya, Stella. 1041 00:53:14,270 --> 00:53:17,530 Maaari mong sabihin sa amin ng kaunti tungkol sa kung ano ang dapat naming gawin ang mga susunod na? 1042 00:53:17,530 --> 00:53:20,270 Kaya ngayon namin Mayroon string, kami nakuha ko na naka-imbak sa isang variable; 1043 00:53:20,270 --> 00:53:23,360 kung ano ang kailangan naming gawin sa mga string? 1044 00:53:26,790 --> 00:53:33,530 >> Kailangan naming - 1045 00:53:33,530 --> 00:53:36,550 makilala ang 2 - 1046 00:53:36,550 --> 00:53:39,290 Oo, lamang ito sinasabi sa Ingles, na kahanga-hangang. 1047 00:53:39,290 --> 00:53:42,670 >> Kilalanin ang [hindi marinig] capitals - o, uppercase. 1048 00:53:44,420 --> 00:53:48,130 Oo, kaya nais mong makilala kung aling mga uppercase at lowercase. 1049 00:53:50,020 --> 00:53:54,180 Hindi namin uppercase o lowercase ang mga ito hanggang namin natukoy kung alin. 1050 00:54:03,790 --> 00:54:06,350 Kaya maglalagay kami na in dito. 1051 00:54:06,350 --> 00:54:10,210 >> Kaya, lamang pag-iisip tungkol sa prosesong ito, 1052 00:54:10,210 --> 00:54:13,200 kung paano namin gawin ito identification? 1053 00:54:13,200 --> 00:54:15,050 Alam mo ba, Dan? 1054 00:54:15,050 --> 00:54:18,120 Uri ng kung ano ang aming - kung ano ang tool na nais namin upang gamitin sa aming mga toolbox? 1055 00:54:18,120 --> 00:54:22,500 >> Nais ko bang ilagay ito sa sa paanuman sa tulad ng isang array o bawat linya 1056 00:54:22,500 --> 00:54:24,240 ng sarili nitong maliit na kahon, 1057 00:54:24,240 --> 00:54:27,240 at pagkatapos ay uppercase ito mula doon o hindi. 1058 00:54:27,240 --> 00:54:30,440 Okay, sa gayon ang isang tool na maaari naming gamitin ang isang array. 1059 00:54:30,440 --> 00:54:33,760 Ano ang gagawin namin upang tingnan sa string, 1060 00:54:33,760 --> 00:54:36,680 bagaman, upang malaman kung - nagkaroon kami upang tingnan ang mga character na. 1061 00:54:36,680 --> 00:54:40,890 >> Kaya mo Mayroon upang tumingin sa ang haba ng string? 1062 00:54:40,890 --> 00:54:43,880 Oo, kaya bahagi na pagkuha ng haba ng string. 1063 00:54:50,450 --> 00:54:54,150 Lamang sa labas ng pagkausyoso, ano ang gagawin namin gamitin upang makuha ang haba ng isang string? 1064 00:54:54,150 --> 00:54:58,080 >> Strlen? 1065 00:54:58,080 --> 00:55:02,870 Oo, strlen; tumawag namin ito "strlen" 1066 00:55:04,180 --> 00:55:08,620 Ang lahat ng mga function ng string, kaya strlen ay isang function, 1067 00:55:08,620 --> 00:55:10,670 at sobrang madaling-magamit na, dahil maaari naming gamitin ang mga ito sa lamang sabihin, 1068 00:55:10,670 --> 00:55:13,430 Uy, strlen: Narito ang isang string, sabihin sa akin kung gaano ito kahaba. 1069 00:55:13,430 --> 00:55:17,350 Sa panayam ngayon, David uusapang ng maraming tungkol sa kung paano strlen ay ipinatupad, 1070 00:55:17,350 --> 00:55:20,370 kung ano ang aktwal na pagpunta sa likod ng mga eksena. 1071 00:55:20,370 --> 00:55:25,450 Ngunit ito ay isa ng napaka sobrang madaling-gamiting mga. 1072 00:55:25,450 --> 00:55:29,170 May iba pang mga na din sa library ng string, 1073 00:55:29,170 --> 00:55:34,690 tulad ng strcmp, na-spell na "strcmp", 1074 00:55:34,690 --> 00:55:38,010 na ginagamit upang ihambing ang mga string sa bawat isa. 1075 00:55:41,220 --> 00:55:45,020 Iba pang mga mong gamitin tulad ng strstr, 1076 00:55:45,020 --> 00:55:48,770 na ay mabuti para sa paghahanap ng mga sub string at iba pa. 1077 00:55:48,770 --> 00:55:53,380 Para sa nakararaming bahagi, lahat sila magsimula sa STR at pagkatapos ay pumunta sa iba pa. 1078 00:55:53,380 --> 00:55:57,080 Ang dahilan kung bakit hindi nila aktwal na ini-ispel ito tulad ng string at iba pa 1079 00:55:57,080 --> 00:56:00,260 ay dahil pabalik sa tulad ng maagang araw ng C, 1080 00:56:00,260 --> 00:56:04,100 kapag ang mga tao ay unang nakasulat at ang lahat na, 1081 00:56:04,100 --> 00:56:07,580 nagkaroon sila ng mga limitasyon sa bilang ng mga character na maaari mong gamitin 1082 00:56:07,580 --> 00:56:09,950 para sa mga function na pangalan at mga variable na pangalan, 1083 00:56:09,950 --> 00:56:12,620 kaya ang lahat ng bagay ay tulad ng sobrang condensed. 1084 00:56:12,620 --> 00:56:15,750 Ngunit anumang oras mo makita ang isang bagay na nagsisimula sa STR, 1085 00:56:15,750 --> 00:56:18,600 na karaniwang ay nangangahulugan na ito ay isang bagay na gawin sa isang string. 1086 00:56:20,990 --> 00:56:23,350 >> Okay, kaya mo na nakuha sa ang haba ng string, 1087 00:56:23,350 --> 00:56:27,110 at pagkatapos, ano ang gagawin namin gawin sa ang mga character? 1088 00:56:27,110 --> 00:56:29,020 Alam mo ba, Sam? 1089 00:56:29,020 --> 00:56:32,410 >> Wala akong palagay; ako ay sinusubukan upang malaman ito. 1090 00:56:32,410 --> 00:56:35,410 Ko talagang hindi alam - nais ko mayroong ilang mga paraan upang - 1091 00:56:35,410 --> 00:56:38,990 Ibig kong sabihin, Gusto ko sa tingin siguro kami maaaring gawin ang isang bagay na may logro at Tabla, 1092 00:56:38,990 --> 00:56:40,860 ngunit hindi ko alam ng anumang function na tulad na. 1093 00:56:40,860 --> 00:56:42,240 Oo. 1094 00:56:43,160 --> 00:56:45,200 >> Ngunit iyon - hindi kinakailangang ito ay gumana, 1095 00:56:45,200 --> 00:56:48,690 dahil gusto mong makakuha ng mga puwang na - 1096 00:56:48,690 --> 00:56:51,130 gusto mong magkaroon ng puwang upang makakuha ng mga tip sa kung paano - 1097 00:56:51,130 --> 00:56:54,310 Okay. 1098 00:56:54,310 --> 00:56:56,490 >> Hindi ko alam - I'm uri ng nawala sa puntong ito. 1099 00:56:56,490 --> 00:56:58,120 Oo - hindi, hindi, hindi, ito ay mahusay na puntos. 1100 00:56:58,120 --> 00:57:00,420 Kaya kung ano ang kailangan namin upang gawin, tulad ng Sam sinabi, 1101 00:57:00,420 --> 00:57:02,970 kailangan namin upang subaybayan kung aling mga titik ang mga kakaibang titik, 1102 00:57:02,970 --> 00:57:05,540 at kung alin ang kahit mga titik. 1103 00:57:06,650 --> 00:57:09,090 Ngunit nais naming upang matiyak na hindi namin lamang hinahanap 1104 00:57:09,090 --> 00:57:12,110 sa kakaiba at kahit 1105 00:57:12,110 --> 00:57:14,030 mga indeks sa string, 1106 00:57:14,030 --> 00:57:17,660 ngunit sa halip ay naghahanap sa kakaiba at kahit na mga titik sa string, 1107 00:57:17,660 --> 00:57:20,190 kaya kailangan namin ay medyo ang pagkakaiba sa pagitan ng ito 1108 00:57:20,190 --> 00:57:25,190 titik - tulad ng kung ano ang aktwal na A, B, C, D, o kaya, 1109 00:57:25,190 --> 00:57:29,090 at kung ano ang mga bagay na hindi titik ngunit pa rin sa aming mga string. 1110 00:57:29,090 --> 00:57:32,390 Para sa halimbawa dito, tulad ng exclamation point na ito ay hindi isang sulat, 1111 00:57:32,390 --> 00:57:36,060 ngunit pa rin bahagi ng aming string; pa rin ito ng pansamantalang trabaho. 1112 00:57:36,060 --> 00:57:38,820 Gayundin, ang lahat ng mga puwang - 1113 00:57:38,820 --> 00:57:41,710 ito ay hindi magkaroon ng kahulugan upang mapakinabangan ng isang puwang, i-right? 1114 00:57:41,710 --> 00:57:46,160 Kaya gusto namin upang matiyak na namin sa paanuman laktawan ang mga 1115 00:57:46,160 --> 00:57:49,410 habang pagsubaybay ng mga logro at Tabla. 1116 00:57:50,900 --> 00:57:54,990 >> Kaya uri ng sa aming programming toolbox 1117 00:57:54,990 --> 00:57:57,270 sa ngayon, kung kalooban mo, 1118 00:57:57,270 --> 00:58:01,310 mayroon kaming isang bilang ng iba't ibang mga tool na namin ang uusapang tungkol sa. 1119 00:58:01,310 --> 00:58:04,640 Kaya isa, halimbawa, ang mga variable, 1120 00:58:04,640 --> 00:58:07,120 tulad namin na uusapang tungkol dito. 1121 00:58:07,120 --> 00:58:10,730 Isa pang tool na namin ang uusapang tungkol function. 1122 00:58:10,730 --> 00:58:15,800 Kaya nagbigay kami uusapang tungkol sa mga variable sa aming pseudocode dito 1123 00:58:15,800 --> 00:58:19,760 tulad ng kung ano ang namin ang pagpunta upang gamitin upang mag-imbak ang aming string. 1124 00:58:19,760 --> 00:58:24,630 Namin na uusapang tungkol sa mga function upang makuha ang haba ng isang string, tulad strlen. 1125 00:58:28,510 --> 00:58:31,170 Namin ang pakikipag-usap tungkol sa iba pa, at uusapang namin ang tungkol dito 1126 00:58:31,170 --> 00:58:34,850 para sa ng maraming mas maaga sa seksyon ngayon: loop. 1127 00:58:39,390 --> 00:58:42,030 >> Ano ang gagawin mo guys sa tingin tungkol sa paggamit ng isang loop sa programang ito? 1128 00:58:42,030 --> 00:58:44,110 Jared, kung ano ang tingin mo? 1129 00:58:47,150 --> 00:58:50,030 Gusto naming gumamit ng loop sa programang ito? 1130 00:58:50,030 --> 00:58:52,500 >> Malamang hindi, hindi, dahil hindi mo na kailangang pumunta sa pamamagitan nito nang higit sa isang beses. 1131 00:58:52,500 --> 00:58:55,260 Okay, hindi mo na kailangang pumunta sa pamamagitan ng kung ano ang higit sa isang beses? 1132 00:58:55,260 --> 00:58:57,190 >> Ang buong string. 1133 00:58:57,190 --> 00:59:00,660 Karapatan, kaya hindi mo na kailangang pumunta sa pamamagitan ng string buong sabay-sabay. 1134 00:59:00,660 --> 00:59:03,330 Paumanhin na ginawa ganap na walang kahulugan! 1135 00:59:03,330 --> 00:59:06,360 Hindi mo na kailangang pumunta sa pamamagitan ng buong string higit sa isang beses. 1136 00:59:06,360 --> 00:59:08,660 Okay. 1137 00:59:09,790 --> 00:59:11,920 Ano sa tingin ninyo? 1138 00:59:11,920 --> 00:59:14,110 >> Sa tingin ko na ito ay mas mahusay na gamitin ang mga ito 1139 00:59:14,110 --> 00:59:16,640 upang maaari naming gawin tulad ng mapakinabangan habang 1140 00:59:16,640 --> 00:59:19,750 ang lokasyon nito ay [hindi marinig] numero. 1141 00:59:19,750 --> 00:59:22,940 Mahusay, at gayon mapakinabangan kung ano? 1142 00:59:22,940 --> 00:59:25,200 Okay, sa gayon kami ay nagsasabi na 1143 00:59:25,200 --> 00:59:28,130 dapat naming gumamit ng loop dahil gusto naming 1144 00:59:28,130 --> 00:59:32,550 mapakinabangan ng sulat habang ito ay hindi isang numero. 1145 00:59:35,130 --> 00:59:37,140 Kaya - paumanhin, ang gusto mong idagdag? 1146 00:59:37,140 --> 00:59:39,340 >> Ako pagpunta sa sabihin na ang paraan sa tinatrato ang string 1147 00:59:39,340 --> 00:59:42,290 at ito [hindi marinig] hiwalay na ang [] hindi marinig sa mga character? 1148 00:59:42,290 --> 00:59:43,710 Oo. 1149 00:59:43,710 --> 00:59:45,850 >> At pagkatapos ay maaari naming italaga ang mga numero sa - 1150 00:59:45,850 --> 00:59:47,780 o batay sa lokasyon ng ang mga titik sa string? 1151 00:59:47,780 --> 00:59:49,720 Oo. 1152 00:59:49,720 --> 00:59:53,640 >> At kilalanin kung ito ay kakaiba o kahit at upang mapakinabangan ang titik mismo 1153 00:59:53,640 --> 00:59:57,750 habang ang lokasyon ng sulat ay [hindi marinig] - paumanhin. 1154 00:59:57,750 --> 01:00:00,150 Mahusay. 1155 01:00:00,150 --> 01:00:03,430 >> Kaya lamang pagbabalik-tanaw. 1156 01:00:03,430 --> 01:00:05,840 Maaari mong ipaalala sa akin muli ng iyong pangalan - I'm paumanhin. 1157 01:00:05,840 --> 01:00:06,900 >> Charlotte. 1158 01:00:06,900 --> 01:00:08,490 Charlotte, okay. 1159 01:00:08,490 --> 01:00:11,130 Kaya kung ano ang Charlotte ay sinasabi, 1160 01:00:11,130 --> 01:00:14,950 na lubos na karapatan - sus, ang gusto na ito upang awtomatikong i-indent sa akin - 1161 01:00:14,950 --> 01:00:17,770 ay na kung tinitingnan namin ang isang string 1162 01:00:17,770 --> 01:00:19,160 tulad ng isang ito sa tuktok - 1163 01:00:19,160 --> 01:00:21,590 "Salamat para sa ang mga add" - 1164 01:00:21,590 --> 01:00:24,790 bilang isang pagkakasunud-sunod ng mga character 1165 01:00:24,790 --> 01:00:29,010 kung saan ay sa posisyon 0, 1166 01:00:29,010 --> 01:00:32,260 h ay sa posisyon 1. 1167 01:00:32,260 --> 01:00:36,880 Ay sa 2, pagkatapos namin nakuha 3, 4, 5; 1168 01:00:36,880 --> 01:00:40,830 espasyo sa posisyon 6. 1169 01:00:42,380 --> 01:00:45,300 Ngayon - kung ano ang posisyon ng f? 1170 01:00:45,300 --> 01:00:47,610 7! 1171 01:00:47,610 --> 01:00:49,300 O? 8. 1172 01:00:49,300 --> 01:00:52,070 R? 9. 1173 01:00:52,070 --> 01:00:54,340 At pagkatapos namin Mayroon 10, at hindi talaga ako makapag sumulat ito nang wala ito 1174 01:00:54,340 --> 01:00:57,430 ay medyo pagkuha ng magulo sa screen. 1175 01:00:57,430 --> 01:01:02,340 Ngunit ito ay talagang kung paano maaari naming makipag-usap tungkol sa mga string sa memorya. 1176 01:01:02,340 --> 01:01:04,660 Ay isang string 1177 01:01:04,660 --> 01:01:07,920 ay isang pagkakasunud-sunod ng mga character, 1178 01:01:07,920 --> 01:01:12,430 at kapag sumangguni namin sa isang indibidwal na character sa isang string, 1179 01:01:12,430 --> 01:01:15,280 madalas naming gawin ito sa pamamagitan ng pagsangguni sa posisyon na karakter 1180 01:01:15,280 --> 01:01:17,620 sa loob ng string, 1181 01:01:17,620 --> 01:01:19,910 marahil sa parehong paraan na makipag-usap namin tungkol sa Septiyembre 1182 01:01:19,910 --> 01:01:22,870 sa ika-siyam na buwan ng taon 1183 01:01:22,870 --> 01:01:27,730 o Lunes ang unang araw ng linggo. 1184 01:01:29,280 --> 01:01:33,070 Kaya ito ay nagbibigay sa amin ng isang paraan upang 1185 01:01:33,070 --> 01:01:37,030 malaman kung aling mga kakaiba kumpara sa kahit 1186 01:01:37,030 --> 01:01:39,540 dahil maaari mong makikita dito, 1187 01:01:39,540 --> 01:01:43,640 kung tumutugma namin ito gamit ang T, 1188 01:01:46,310 --> 01:01:49,360 maaari mong makita na ang lahat ng mga capitalized na mga 1189 01:01:49,360 --> 01:01:53,040 sa kahit na posisyon, 1190 01:01:53,040 --> 01:01:55,880 hindi bababa sa para sa unang salita, 1191 01:01:55,880 --> 01:01:59,080 at pagkatapos ay mga bagay na makapag itinapon off sa sandaling pindutin namin sa puwang na iyon, 1192 01:01:59,080 --> 01:02:02,460 dahil hindi namin bilangin ang puwang na ito bilang isang sulat, 1193 01:02:02,460 --> 01:02:05,150 kaya bilang kung nagsimula kaming 1194 01:02:05,150 --> 01:02:08,930 at nagpunta 0, 1, 2, 3, 4, 5, 1195 01:02:08,930 --> 01:02:12,600 espasyo, 6, 7, 8, espasyo, 1196 01:02:12,600 --> 01:02:16,440 9, at pagkatapos ay 10, 11, 12, at iba pa. 1197 01:02:19,300 --> 01:02:22,910 >> Mahusay, kaya namin talagang ay nais na gumamit ng ilang mga uri ng loop 1198 01:02:22,910 --> 01:02:27,760 pumunta sa bawat isa ng ang mga character na siya namang. 1199 01:02:31,330 --> 01:02:34,580 Kaya sa puntong ito, 1200 01:02:36,490 --> 01:02:38,360 magpapadala kami bumalik sa aming lumang pseudocode dito. 1201 01:02:40,970 --> 01:02:42,650 Bilang bahagi ng ito pagkakakilanlan ng alin 1202 01:02:42,650 --> 01:02:45,350 ay uppercase at kung alin ang lowercase, 1203 01:02:45,350 --> 01:02:48,340 namin gusto mong gawin ito sa ilang mga uri ng loop. 1204 01:02:51,080 --> 01:02:53,390 Loop, colon. 1205 01:02:55,070 --> 01:03:01,220 Anong uri ng loop, sa labas ng ang mga uri ng mga loop na mayroon kaming, 1206 01:03:01,220 --> 01:03:03,670 tila na maging isang mahusay na gamitin sa kasong ito? 1207 01:03:03,670 --> 01:03:05,610 >> Ako ay nag-iisip para sa loop. 1208 01:03:05,610 --> 01:03:07,500 At bakit mo pag-iisip ng para sa loop? 1209 01:03:07,500 --> 01:03:10,000 >> Dahil ito ay nagsisimula sa zero, at pagkatapos ay 1210 01:03:10,000 --> 01:03:13,000 kapag naabot namin ang haba ng string, 1211 01:03:13,000 --> 01:03:16,170 at pagkatapos ay sa bawat pag-ulit na maaari mong [hindi marinig], masyadong? 1212 01:03:16,170 --> 01:03:18,260 Oo, eksakto. 1213 01:03:18,260 --> 01:03:21,490 Kaya, sa labas ng ang iba't ibang mga pagpipilian ng loop, 1214 01:03:21,490 --> 01:03:25,350 na mayroon kami para sa mga loop, habang loop, at gawin-habang loop. 1215 01:03:25,350 --> 01:03:28,550 Kung saan isang para sa loop ay partikular na kapaki-pakinabang 1216 01:03:28,550 --> 01:03:32,120 kapag gusto mong malaman 1217 01:03:32,120 --> 01:03:34,940 uri ng kung saan ikaw ay nasa sa loop, 1218 01:03:34,940 --> 01:03:38,520 kung gaano karaming beses loop ay pinaandar sa ngayon. 1219 01:03:38,520 --> 01:03:42,490 Na kung saan ay kung ano mismo ang gusto naming malaman sa sitwasyong ito, 1220 01:03:42,490 --> 01:03:44,640 tulad ng sinabi Kelly, 1221 01:03:44,640 --> 01:03:47,400 batay off ng mas maaga Charlotte komento na gusto naming malaman ang posisyon 1222 01:03:47,400 --> 01:03:49,900 ng mga character sa loob ng string, 1223 01:03:49,900 --> 01:03:51,750 at ang para sa loop ay magbibigay sa amin lamang na, 1224 01:03:51,750 --> 01:03:54,680 dahil kung sisimulan namin ang uri ng naghahanap pabalik sa aming string, 1225 01:03:54,680 --> 01:03:57,140 kung sinimulan namin ang aming para sa loop sa 0, 1226 01:03:57,140 --> 01:04:00,350 at pumunta kami sa pamamagitan ng haba ng buong string, 1227 01:04:00,350 --> 01:04:04,740 maaari naming iugnay ang mga titik T 1228 01:04:04,740 --> 01:04:08,110 0 sa aming para sa loop, 1229 01:04:09,950 --> 01:04:13,080 sulat H na may 1 sa aming loop, at iba pa, 1230 01:04:13,080 --> 01:04:16,600 pagpunta ang lahat ng mga paraan sa pamamagitan ng dulo ng string. 1231 01:04:18,810 --> 01:04:21,890 >> Kaya natin simulan ang coding ito lamang ng kaunti 1232 01:04:21,890 --> 01:04:24,930 lang kaya mo guys makakuha ng isang pakiramdam para sa kung ano ito mukhang. 1233 01:04:24,930 --> 01:04:27,980 Ako pagpunta upang i-save ito, 1234 01:04:27,980 --> 01:04:31,230 kaya Mayroon namin ang aming palsipikado code in dito, 1235 01:04:33,490 --> 01:04:38,120 at ako pagpunta sa tanggalin ang lahat. 1236 01:04:38,120 --> 01:04:42,210 Kaya ako ng blangkong slate. 1237 01:04:42,210 --> 01:04:45,910 Ako gonna magsimula sa pamamagitan ng pagsusulat int pangunahing (walang bisa) 1238 01:04:45,910 --> 01:04:48,440 { 1239 01:04:48,440 --> 01:04:51,380 Ako gonna ilagay ang return 0 sa 1240 01:04:51,380 --> 01:04:53,320 at pagkatapos ay ang}. 1241 01:04:53,320 --> 01:04:56,130 Kaya karaniwang kapag nagsimula ako sa programa, ito ay kung ano ang sisimulan ko na may. 1242 01:04:56,130 --> 01:04:59,370 Ko bang i-save ang mga ito upang ang guys na may ito. 1243 01:05:06,290 --> 01:05:08,440 Kaya isa sa mga unang bagay usapan natin ang tungkol ay 1244 01:05:08,440 --> 01:05:10,920 pagkuha ng input mula sa user 1245 01:05:10,920 --> 01:05:13,740 at pag-imbak nito sa isang string. 1246 01:05:13,740 --> 01:05:16,420 Paano kami makakuha ng input mula sa isang user? 1247 01:05:16,420 --> 01:05:19,640 >> GetString. 1248 01:05:19,640 --> 01:05:21,870 GetString, ang lahat ng karapatan. 1249 01:05:23,150 --> 01:05:26,820 Kaya kung type ko ang GetString () 1250 01:05:26,820 --> 01:05:32,150 at isang tuldok-kuwit. 1251 01:05:32,150 --> 01:05:36,630 Natin subukang patakbuhin ito; ay run na ito, una sa lahat ng? 1252 01:05:36,630 --> 01:05:38,430 At bakit hindi ito tatakbo? 1253 01:05:38,430 --> 01:05:40,090 >> Mayroon kang idedeklara ang variable. 1254 01:05:40,090 --> 01:05:43,040 Mayroon akong idedeklara ng variable. Okay. 1255 01:05:43,040 --> 01:05:45,700 >> Kaya paano ang gagawin ko na? 1256 01:05:45,700 --> 01:05:48,400 Tututol ba kayo pagsusulat ng isang bagay, ang pagbabahagi ito? 1257 01:05:48,400 --> 01:05:51,270 At pagkatapos ay maaari naming hilahin ito. 1258 01:05:51,270 --> 01:05:54,630 Natin makita, si Dan, kanan, okay. 1259 01:05:54,630 --> 01:05:59,100 O Daniel. Kopyahin sa, string input = GetString (). 1260 01:05:59,100 --> 01:06:01,340 Kahanga-hanga. 1261 01:06:01,340 --> 01:06:02,890 Ay ito patakbuhin? 1262 01:06:02,890 --> 01:06:05,210 Hayaan ang subukan ito. 1263 01:06:05,210 --> 01:06:08,890 Pindutin run, nag-a-upload source code, gusali, may naganap na error. 1264 01:06:08,890 --> 01:06:11,040 Okay. 1265 01:06:11,040 --> 01:06:14,950 Kaya kung ano ang pagpunta sa dito? 1266 01:06:14,950 --> 01:06:18,700 Gamitin ng hindi nagbigay-alam identifier na 'string'. 1267 01:06:18,700 --> 01:06:22,840 >> Mayroon kaming isama ang library? 1268 01:06:22,840 --> 01:06:25,130 Oo, kaya Dan ang sinasabi namin upang isama ang mga aklatan. 1269 01:06:25,130 --> 01:06:28,270 Ay na kung ano ang iyong pagpunta sa sabihin, Stella? Kahanga-hanga. 1270 01:06:29,450 --> 01:06:31,430 Iyan ay kahanga-hangang, kaya Stella, maaari mong 1271 01:06:31,430 --> 01:06:34,800 kopyahin ang code na ito sa labas ng Daniel ng Space? 1272 01:06:34,800 --> 01:06:37,580 Kung nag-click ka sa Daniel Roland Ki, kopyahin ito, 1273 01:06:37,580 --> 01:06:41,360 at pagkatapos ay ilagay ang kinabibilangan ng linya sa, at pagkatapos ay i-save ito? 1274 01:06:46,580 --> 01:06:49,360 Ipaalam sa akin kapag handa ka na. 1275 01:06:57,160 --> 01:06:59,490 Kaya ito ang syntax ding uri ng funky; 1276 01:06:59,490 --> 01:07:02,210 may tulad na hash tag, 1277 01:07:02,210 --> 01:07:05,760 at mayroong ang isama, at pagkatapos ay may mga anggulo bracket. 1278 01:07:12,490 --> 01:07:15,360 Huwag mo matandaan kung paano ito gumagana, o dapat ko bang ilagay ang mga ito sa ang code na ito dito mismo? 1279 01:07:15,360 --> 01:07:17,850 >> Ako mabuti. 1280 01:07:17,850 --> 01:07:19,810 Okay. 1281 01:07:19,810 --> 01:07:23,260 >>-Print ko ito - ako ay hindi sigurado kung anong library, bagaman. 1282 01:07:23,260 --> 01:07:25,570 Oh, okay - oo, kaya ang CS50 library. 1283 01:07:25,570 --> 01:07:27,660 >> Oh, ko bang ilagay ang stdio library. 1284 01:07:27,660 --> 01:07:30,950 >> Oh, nakuha ko ito - oo, hindi, that's - 1285 01:07:30,950 --> 01:07:34,380 kaya lumiliko na string ay talagang isang bagay na espesyal sa CS50. 1286 01:07:36,590 --> 01:07:41,240 May aktwal na ay hindi isang tunay na uri ng string 1287 01:07:41,240 --> 01:07:45,000 dahil dito mismo, ang string ay sa posisyon ng uri, - 1288 01:07:45,000 --> 01:07:49,140 deklarasyon kami ay isang variable na tinatawag na input ng uri ng string - 1289 01:07:49,140 --> 01:07:53,320 at kami ay paglalagay ng loob ng input 1290 01:07:53,320 --> 01:07:58,440 ang halaga na ay makakakuha ibinalik sa amin: ang output ng ito GetString function na tawag. 1291 01:07:58,440 --> 01:08:02,910 Maaari mong sabihin na ito ay isang function na tawag dahil ito ay nakuha ang mga panaklong, tulad ng printf ginagawa, 1292 01:08:02,910 --> 01:08:05,920 tulad ng strlen ginagawa. 1293 01:08:05,920 --> 01:08:09,860 Ngunit string ay talagang hindi isang tunay na uri 1294 01:08:09,860 --> 01:08:11,760 sa C wika. 1295 01:08:11,760 --> 01:08:15,710 Iyong ginawa namin ito sa isang uri, at isasaalang-alang namin ang tungkol sa higit pa sa kung ano talaga 1296 01:08:15,710 --> 01:08:19,000 sa C, dahil mayroong ay isang paraan upang gumana sa string; 1297 01:08:19,000 --> 01:08:22,479 lamang kami ng isang bagay upang gawin itong tumingin ng kaunti nicer. 1298 01:08:22,479 --> 01:08:25,240 >> Kaya dito namin pumunta. 1299 01:08:25,240 --> 01:08:28,439 Narito ang code ng Stella. 1300 01:08:28,439 --> 01:08:32,470 Ang nakuha # include . 1301 01:08:32,470 --> 01:08:36,390 Ay tinatawag ito ng mga ibang tao tulad ng isang hash ang minsan o isang matalim isama. 1302 01:08:36,390 --> 01:08:39,580 Ngayon ay maaari naming simulan ito, patakbuhin ito, 1303 01:08:39,580 --> 01:08:43,649 at hindi na namin pa ring makakuha ng isang error. 1304 01:08:43,649 --> 01:08:46,290 Natin makita kung ano ang nangyayari. 1305 01:08:48,069 --> 01:08:50,569 "'Input' Unused variable." 1306 01:08:50,569 --> 01:08:53,350 Okay, sa gayon ay cool, na cool na. 1307 01:08:53,350 --> 01:08:55,859 Ibig kong sabihin, ito ay hindi talagang cool na, 1308 01:08:55,859 --> 01:08:57,930 dahil kami ay nakakakuha ng isang error at hindi ito tumatakbo, 1309 01:08:57,930 --> 01:09:00,410 ngunit kung ano ito ay sinasabi na 1310 01:09:00,410 --> 01:09:03,130 hindi namin ginagamit ang aming variable, na saysay. 1311 01:09:03,130 --> 01:09:06,090 Hindi namin sinubukan gawin dito. 1312 01:09:07,819 --> 01:09:10,490 Ito ay isang paraan na 1313 01:09:10,490 --> 01:09:14,170 Kumalatong ay sinusubukan upang tulungan kaming tiyakin na hindi namin lamang gamit ang mga variable 1314 01:09:14,170 --> 01:09:18,819 at pagkatapos ay sinasadyang pagtawag sa kanila ng ibang bagay sa ibang pagkakataon sa aming code, 1315 01:09:18,819 --> 01:09:21,649 pagtulong sa amin maiwasan ang mga error na paraan. 1316 01:09:23,130 --> 01:09:28,810 >> Karapatan lahat, kaya namin Mayroon input mula sa user, 1317 01:09:28,810 --> 01:09:31,910 naka-imbak namin ito sa isang variable. 1318 01:09:31,910 --> 01:09:34,569 Ang susunod na hakbang ay pagkatapos 1319 01:09:34,569 --> 01:09:37,609 simulan ang pagtingin sa lahat ng ang mga character na sa string 1320 01:09:37,609 --> 01:09:41,830 at pagkilala sa kung alin ang na uppercase 1321 01:09:41,830 --> 01:09:44,600 at kung alin ang na lowercase. 1322 01:09:44,600 --> 01:09:49,439 At tulad ng Kelly at Charlotte nagdala up, 1323 01:09:49,439 --> 01:09:52,340 namin ito gamit ang isang para sa loop. 1324 01:09:52,340 --> 01:09:55,520 Kaya ang sinuman tandaan ang syntax ng isang para sa loop 1325 01:09:55,520 --> 01:09:58,670 at nais na tumagal ng isang ulos sa lamang pagsulat 1326 01:09:58,670 --> 01:10:03,170 ang unang linya ng loop, ang para sa bit? 1327 01:10:05,740 --> 01:10:07,330 Kelly, Gusto mo bang subukan ito? 1328 01:10:07,330 --> 01:10:10,300 >> Oo, kaya mayroon kang initialize muna, 1329 01:10:10,300 --> 01:10:13,170 kaya ko bang ilagay i = 0, 1330 01:10:13,170 --> 01:10:15,390 at pagkatapos ko ginawa i 01:10:18,570 Ba ito sa iyong Space - Maaari ko bang bunutin ito? 1332 01:10:18,570 --> 01:10:21,330 >> Oo, ako screwed ng kaunti, ngunit oo. 1333 01:10:21,330 --> 01:10:24,180 >> Okay, sabihin bunutin ito. 1334 01:10:24,180 --> 01:10:26,490 Kahanga-hanga. 1335 01:10:26,490 --> 01:10:29,510 >> Ngunit pagkatapos ay hindi ko malalaman kung mayroon kang na - 1336 01:10:29,510 --> 01:10:32,180 Oo, okay. 1337 01:10:33,020 --> 01:10:36,030 Kaya narito ang Kelly ay nakuha: tingnan natin ito nang mabilis. 1338 01:10:36,030 --> 01:10:40,290 Kaya siya kasama ang cs50 library sa tuktok. 1339 01:10:40,290 --> 01:10:44,790 Siya kasama ang standard IO library sa tuktok, 1340 01:10:45,550 --> 01:10:48,990 at ang standard IO ay function tulad ng printf, 1341 01:10:48,990 --> 01:10:51,690 kaya kung sakaling nais na gumamit ng printf, kailangan mo na linya. 1342 01:10:53,060 --> 01:10:56,140 At pagkatapos siya kasama ang string library, 1343 01:10:56,140 --> 01:10:58,200 na kailangan namin, 1344 01:10:58,200 --> 01:11:01,010 dahil ang string library ay may strlen function, 1345 01:11:01,010 --> 01:11:04,320 na namin sa loob lamang ng kaunti. 1346 01:11:04,320 --> 01:11:07,560 Kaya't kung tiningnan namin sa kung ano Kelly tapos dito, 1347 01:11:07,560 --> 01:11:10,260 Maaari kang maglakad sa amin sa pamamagitan ng kung ano ang ginawa mo? 1348 01:11:10,260 --> 01:11:13,600 >> Oo, kaya - Ibig kong sabihin, Nakatanggap ako error, sa gayon - 1349 01:11:13,600 --> 01:11:15,380 Oo, hindi, it's - 1350 01:11:15,380 --> 01:11:18,580 >> Kaya ko nais upang tawagan ang string na nakuha ko lang "string". 1351 01:11:18,580 --> 01:11:22,230 Gusto ko upang i-print ang string 1352 01:11:22,230 --> 01:11:25,640 at pagkatapos ko - 1353 01:11:27,450 --> 01:11:30,930 Gusto ko upang i-set ang string tulad ng tulad ng isang array ng bawat karakter 1354 01:11:30,930 --> 01:11:33,170 pagiging ibang [hindi marinig], tama? 1355 01:11:33,170 --> 01:11:38,080 At pagkatapos Nais kong magsimula sa posisyon 0 1356 01:11:38,080 --> 01:11:40,630 at pagkatapos bawat 2 puwang, 1357 01:11:40,630 --> 01:11:42,580 Ako pagpunta sa sulatin sa malaking titik, 1358 01:11:42,580 --> 01:11:45,680 kaya ko lang inilarawan ito bilang 23, dahil ako ay naghahanap sa ASCII table. 1359 01:11:45,680 --> 01:11:48,730 Kaya na kung ano ako ay nag-iisip - Alam ko ito ay hindi tama. 1360 01:11:48,730 --> 01:11:50,920 >> Nakuha ko, kaya ito ay isang mahusay na pagsisimula. 1361 01:11:50,920 --> 01:11:54,120 Tingin ko ng maraming ng balangkas sa lugar dito. 1362 01:11:54,120 --> 01:11:57,500 Natin pumunta sa pamamagitan ng uri ng linya sa pamamagitan ng linya at makita kung ano ang nangyayari sa. 1363 01:11:57,500 --> 01:12:01,040 Kaya ang paraan na gusto kong gawin ito lamang magsimula sa pamamagitan ng kino-compile ang code 1364 01:12:01,040 --> 01:12:04,300 at pagpapaalam tagatala ang sabihin sa akin tulad ng kung ano ang mali sa aking code, 1365 01:12:04,300 --> 01:12:07,450 dahil ang tagatala ay talagang mahusay na nagsasabi sa iyo kung ano ang mali sa iyong code. 1366 01:12:09,790 --> 01:12:12,780 Kaya kung i-play namin ito, pagbuo, at ito ay hindi bumuo. 1367 01:12:12,780 --> 01:12:14,860 Sinasabi nito na nagkaroon ng isang error, 1368 01:12:14,860 --> 01:12:17,320 kaya kung mag-scroll namin down at tumingin sa unang error, 1369 01:12:17,320 --> 01:12:20,960 ito sinabi - 1370 01:12:20,960 --> 01:12:22,040 mag-scroll namin pabalik hanggang sa tuktok, 1371 01:12:22,040 --> 01:12:26,070 maaari naming makita may 5 error nabuo dito sa ibaba. 1372 01:12:26,070 --> 01:12:30,180 Oops, na talagang maputol. 1373 01:12:31,810 --> 01:12:35,790 Hulaan ko na lamang hindi pagpunta upang makakuha ng anumang mas mahusay. 1374 01:12:36,970 --> 01:12:38,500 >> Narito kami. 1375 01:12:39,790 --> 01:12:42,530 Kaya may 5 kabuuang mga error na nabuo. 1376 01:12:42,530 --> 01:12:45,140 Dito maaari ko lamang makita ang unang 2, 1377 01:12:45,140 --> 01:12:49,100 kaya ko ilipat ang up ng kaunti at ang uri ng mag-scroll up. 1378 01:12:49,100 --> 01:12:53,220 Ito ang utos na patakbuhin ang upang ipunin ang code, 1379 01:12:53,220 --> 01:12:59,030 at pagkatapos ay ang unang error sa file.c dito: 1380 01:12:59,030 --> 01:13:03,300 "Kilalanin ang inaasahan o '('", at ito ay sa linyang ito 1381 01:13:03,300 --> 01:13:06,680 kung saan sinabi namin string = GetString (). 1382 01:13:07,660 --> 01:13:12,920 Maaari mong makita dito mismo na ito ay sa linya 8 ng file.c, 1383 01:13:12,920 --> 01:13:17,230 at pagkatapos ay naniniwala ako na ito ay karakter 12 - na ang error. 1384 01:13:17,230 --> 01:13:20,390 Kaya kung ano ang nangyayari mali sa linya 8 - Kelly? 1385 01:13:20,390 --> 01:13:22,810 >> Kailangan lang na tumawag ito, tulad ng, isang titik o isang bagay, 1386 01:13:22,810 --> 01:13:24,400 tulad ng string s o isang bagay? 1387 01:13:24,400 --> 01:13:28,250 Oo, kaya ito lumiliko out na ang mga espesyal na uri ng pangalan, 1388 01:13:28,250 --> 01:13:31,770 kaya string, int, pansamantalang trabaho, maikli, 1389 01:13:31,770 --> 01:13:35,740 na ang mga ito ang lahat ng mga espesyal na mga keyword, 1390 01:13:35,740 --> 01:13:38,940 at hindi tunay ka maaaring gamitin ang mga ito bilang mga pangalan ng iyong mga variable, 1391 01:13:38,940 --> 01:13:41,430 dahil tagatala tinitingnan na at sabi, 1392 01:13:41,430 --> 01:13:43,680 "Oh, alam ko na isang uri," 1393 01:13:43,680 --> 01:13:46,530 kaya hindi na aktwal mong magkaroon ng isang string variable na tinatawag na string, 1394 01:13:46,530 --> 01:13:50,800 tulad ako sinusubukang gawin dito, ito ay hindi gagana. 1395 01:13:52,610 --> 01:13:58,250 Ngunit sa halip, maaari naming tumawag ito isang bagay tulad ng mga o st o STR. 1396 01:13:58,250 --> 01:14:01,540 Din namin hindi maaaring tumawag ito int. 1397 01:14:01,540 --> 01:14:03,740 Hindi namin maaaring magkaroon ng isang string na tinatawag int. 1398 01:14:03,740 --> 01:14:06,740 Hindi namin maaaring magkaroon ng isang string na tinatawag na pansamantalang trabaho, wala ng mga gagana. 1399 01:14:06,740 --> 01:14:09,420 >> Kaya namin lamang tumawag ito s para sa oras. 1400 01:14:10,630 --> 01:14:13,170 Kahanga-hanga. 1401 01:14:13,170 --> 01:14:17,500 Kaya kung ano ang susunod na pagpunta sa linya na ito? 1402 01:14:21,390 --> 01:14:24,350 String - medyo magandang hitsura ng linyang ito? 1403 01:14:24,350 --> 01:14:27,830 Natin bigyan ito ng isa pang subukan, sabihin patakbuhin ito. 1404 01:14:27,830 --> 01:14:30,360 Okay, sa gayon pa rin makakuha ng mga error. 1405 01:14:30,360 --> 01:14:32,080 Oras na ito, hindi namin down sa 4 na error. 1406 01:14:32,080 --> 01:14:34,350 Kaya namin nakuha ang isa sa mga ito. 1407 01:14:34,350 --> 01:14:36,130 Natin kumilos pataas. 1408 01:14:36,130 --> 01:14:38,890 "'String' Hindi inaasahang uri ng pangalan: inaasahang expression," oo? 1409 01:14:38,890 --> 01:14:41,780 >> Oo, na dahil sinubukan ko upang pangalanan ang string. 1410 01:14:41,780 --> 01:14:44,270 Oo, kaya mukhang namin ngayon din pumunta aayos 1411 01:14:44,270 --> 01:14:46,560 ang lahat ng mga sanggunian sa string. 1412 01:14:46,560 --> 01:14:50,070 Maaari mong makita may isang reference sa string dito, dito, dito, 1413 01:14:50,070 --> 01:14:53,440 upang maaari naming ilipat ang lahat ng mga ito sa mga. 1414 01:14:56,040 --> 01:15:00,930 Mahusay. Okay, patakbuhin itong muli. 1415 01:15:00,930 --> 01:15:03,260 Building - Naganap ang isa pang naganap. 1416 01:15:03,260 --> 01:15:06,900 >> Okay, ngayon hindi namin down sa isang error, 1417 01:15:06,900 --> 01:15:11,090 kaya int i = s at pagkatapos ay ang mga square bracket. 1418 01:15:11,090 --> 01:15:14,880 Sa gayon maaari mong sabihin sa amin ng kaunti tungkol sa kung ano ang iyong ginagawa dito, Kelly? 1419 01:15:14,880 --> 01:15:17,120 >> Oo. 1420 01:15:17,120 --> 01:15:19,410 Ito ay sa linya 10. 1421 01:15:19,410 --> 01:15:22,760 >> Hindi ko alam kung kailangan namin ang lahat ng ito, 1422 01:15:22,760 --> 01:15:25,560 ngunit tingin ko ako ay sinusubukan upang - 1423 01:15:25,560 --> 01:15:27,580 Ko bang i-save ito sa gayon ay maaari mong sundin sa kahabaan. 1424 01:15:27,580 --> 01:15:30,470 >> Tingin ko ako ay 1425 01:15:30,470 --> 01:15:33,150 sinusubukan upang sabihin dito upang magsimula sa posisyon 0 1426 01:15:33,150 --> 01:15:35,030 sa simula ng aking para sa loop, 1427 01:15:35,030 --> 01:15:38,370 kaya tingin ko siguro na sinasabi ay hindi kinakailangang. 1428 01:15:39,690 --> 01:15:41,350 Kaya lang sa paglalagom, 1429 01:15:41,350 --> 01:15:44,850 ikaw ay nagsasabi na ito - ikaw ay sinusubukan upang simulan ito sa posisyon 0 1430 01:15:44,850 --> 01:15:47,030 at makakuha ng ito - oo, 1431 01:15:47,030 --> 01:15:50,460 kaya tingin ko mas maaga, masyadong, kapag ikaw ay paglalakad sa pamamagitan ng code, 1432 01:15:50,460 --> 01:15:54,070 ikaw ay pakikipag-usap tungkol sa kung paano mo nais na ituturing ang string na ito bilang isang array 1433 01:15:54,070 --> 01:15:57,440 upang maaari naming ma-access nang isa-isa ang bawat karakter. 1434 01:15:57,440 --> 01:16:00,660 Tingin ko Dan nabanggit na array, masyadong, subukang i-convert ang mga string sa array. 1435 01:16:01,400 --> 01:16:03,300 >> Ito lumiliko out na uri ng sa ilalim ng hood, 1436 01:16:03,300 --> 01:16:06,060 string ay aktwal na naka-imbak bilang isang array na, 1437 01:16:06,060 --> 01:16:08,060 at maaari mong i-access ang mga ito tulad ng isang array; 1438 01:16:08,060 --> 01:16:12,390 walang conversion na kailangan mong gawin. 1439 01:16:12,390 --> 01:16:15,770 Ang isang string isn't - kaya - 1440 01:16:15,770 --> 01:16:18,200 string ay hindi talagang isang array, 1441 01:16:18,200 --> 01:16:21,940 ngunit maaari mong i-access ito bilang tulad, dahil ang lahat ng ang mga character na ay naka-imbak 1442 01:16:21,940 --> 01:16:25,160 isa sa tabi mismo sa bawat isa sa memorya, 1443 01:16:25,160 --> 01:16:28,310 kaya kung nais mong makuha ang unang character ng string, 1444 01:16:28,310 --> 01:16:31,910 ito ay katulad ng pagkuha ng unang integer sa isang integer array. 1445 01:16:31,910 --> 01:16:35,010 Kaya madalas naming - we'll 1446 01:16:35,010 --> 01:16:36,360 sumangguni sa 2 tulad 1447 01:16:36,360 --> 01:16:38,590 oh, bilang isang string, bilang isang array, 1448 01:16:38,590 --> 01:16:40,830 kahit talaga - they're napaka-ibang mga bagay, 1449 01:16:40,830 --> 01:16:43,410 ngunit maaari mong ituring ang mga ito napaka ang parehong. 1450 01:16:44,700 --> 01:16:47,400 Kaya ito lumiliko out na ang linya na ito sa aktwal na - 1451 01:16:47,400 --> 01:16:51,270 hindi namin kailangan upang gawin ang anumang conversion, 1452 01:16:51,270 --> 01:16:53,500 at sa katunayan, 1453 01:16:53,500 --> 01:16:56,790 ito aktwal na ay hindi isang wastong expression, 1454 01:16:56,790 --> 01:16:59,040 na kung ano ang aming tagatala ng pagsasabi sa amin. 1455 01:16:59,040 --> 01:17:01,290 Ito ay sinasabi, "Uy, inaasahan isang expression, 1456 01:17:01,290 --> 01:17:04,610 at kung ano ang Mayroon akong dito ay isang bagay na hindi isang expression. " 1457 01:17:04,610 --> 01:17:07,310 Idedeklara ng isang array, 1458 01:17:07,310 --> 01:17:11,780 lahat ng kailangan mong gawin ay isang bagay tulad nito na may semicolon, 1459 01:17:11,780 --> 01:17:15,080 at pagkatapos mo sabihin ang array kung gaano katagal ang nais mo itong maging, 1460 01:17:15,080 --> 01:17:18,370 tulad ng 5, kaya ang line 10 1461 01:17:18,370 --> 01:17:23,880 ay ipinapahayag ng isang array na tinatawag na i may 5 integer sa loob nito. 1462 01:17:23,880 --> 01:17:26,540 >> Ito ay isang bukod, ito ay hindi kinakailangan para sa code, 1463 01:17:26,540 --> 01:17:30,970 ngunit ito ay - ito ay uri ng kung ano ang deklarasyon kamukha. 1464 01:17:30,970 --> 01:17:35,310 >> Paano hindi mo gamitin ang magpasinda i [strlen (s)]? 1465 01:17:35,310 --> 01:17:38,500 Magpasinda i [strlen (mga)]? 1466 01:17:38,500 --> 01:17:41,500 >> Magpasinda i, at pagkatapos ay sa loob ng mga bracket, strlen (mga). 1467 01:17:43,900 --> 01:17:47,710 Oo, kaya maaari namin - 1468 01:17:47,710 --> 01:17:49,460 kami maaaring gawin ito, 1469 01:17:49,460 --> 01:17:52,160 at ito ay ipinapahayag - kung ano ang ito gawin? 1470 01:17:52,160 --> 01:17:55,900 >> Tingin ko ay ito ipinapahayag ng isang array 1471 01:17:55,900 --> 01:18:01,780 ng, tulad ng - ng - 1472 01:18:01,780 --> 01:18:04,540 oh, hindi mo na kailangan ang i - oh, 1473 01:18:04,540 --> 01:18:06,420 oo, tiyak ka ay hindi kailangan ang i. 1474 01:18:06,420 --> 01:18:10,250 Idedeklara sa iyo ng isang hanay ng mga character 1475 01:18:10,250 --> 01:18:13,150 ng haba s. 1476 01:18:14,680 --> 01:18:16,770 At kaya kung ano ang Sam ang sinasabi ay 1477 01:18:16,770 --> 01:18:20,660 ito linya 10 - hayaan mo akong ilagay ang ilang mga puwang sa pagitan ito at ang natitira ihiwalay ito upang maaari naming - 1478 01:18:20,660 --> 01:18:23,440 ang line 10 ipinapahayag ng isang array 1479 01:18:23,440 --> 01:18:28,520 ng mga karakter, strlen (mga) halaga ng mga ito, 1480 01:18:28,520 --> 01:18:32,270 ngunit aktwal na namin kailangang i, 1481 01:18:32,270 --> 01:18:35,710 at ang dahilan na kailangan namin ang i ay dahil kailangan namin upang bigyan ang array ng pangalan; 1482 01:18:35,710 --> 01:18:38,900 kung hindi man, hindi namin magkaroon ng isang paraan upang sumangguni sa array sa ibang pagkakataon sa code. 1483 01:18:38,900 --> 01:18:41,180 >> Kaya ito karapatan dito ang array pangalan 1484 01:18:41,180 --> 01:18:43,420 at sa loob ay ang haba. 1485 01:18:43,420 --> 01:18:45,010 Ay magbibigay sa amin ng isang array, 1486 01:18:45,010 --> 01:18:47,430 ngunit ito ay - muli, ito ay isang deklarasyon. 1487 01:18:47,430 --> 01:18:50,380 Hindi ito isang pagtatalaga, ito ay hindi isang Pinasimulan. 1488 01:18:50,380 --> 01:18:52,330 Kung ipinapahayag namin ang array na ito tulad ng ito, 1489 01:18:52,330 --> 01:18:54,490 may aktwal na wala sa mga nilalaman ng array. 1490 01:18:54,490 --> 01:18:57,490 Lang junk - anumang doon. 1491 01:18:57,490 --> 01:18:59,780 At tulad ng sinabi namin, 1492 01:18:59,780 --> 01:19:01,340 hindi namin aktwal kailangan upang gawin ito conversion, 1493 01:19:01,340 --> 01:19:04,810 dahil na namin tinatrato ang string s bilang isang array. 1494 01:19:06,750 --> 01:19:09,170 Alam ko namin ang pagpapatakbo ng isang bit mahaba sa oras, 1495 01:19:09,170 --> 01:19:12,330 ngunit nais ko lang talagang makakuha ng mabilis na ito para sa loop 1496 01:19:12,330 --> 01:19:14,850 at ipakita sa iyo kung paano upang ma-access ang mga indibidwal na mga character sa array, 1497 01:19:14,850 --> 01:19:17,170 dahil na key para sa aming pagtatalaga. 1498 01:19:17,170 --> 01:19:20,790 At pagkatapos ay ipapaalam namin sa iyo pumunta mula doon. 1499 01:19:20,790 --> 01:19:24,610 >> Kaya dito, hindi namin Mayroon para sa loop 1500 01:19:24,610 --> 01:19:28,310 na mukhang halos magandang. 1501 01:19:28,310 --> 01:19:30,960 Ano ang hindi pa halos doon? 1502 01:19:30,960 --> 01:19:33,240 What's - kung ano ang hindi masyadong tama tungkol sa para sa loop? 1503 01:19:33,240 --> 01:19:36,010 >> Walang kulot tirante? 1504 01:19:36,010 --> 01:19:38,420 Walang mga kulot tirante, para sa isa. 1505 01:19:38,420 --> 01:19:42,580 Nais mong tiyakin na namin ang katawan ng loop na may kulot tirante. 1506 01:19:42,580 --> 01:19:45,240 Oops, hindi ang parisukat suhay! 1507 01:19:45,240 --> 01:19:48,660 At kung ano ang susunod na bagay na kailangan namin upang gawin sa loop na ito? 1508 01:19:48,660 --> 01:19:52,640 Kung ako subukan at patakbuhin ito, 1509 01:19:52,640 --> 01:19:56,740 kung ano ang error na ito na nakukuha ko? 1510 01:19:56,740 --> 01:20:00,990 Nakukuha ko ang lahat ng mga error na ito - kong i initialize. 1511 01:20:00,990 --> 01:20:03,610 Mahusay. 1512 01:20:03,610 --> 01:20:05,770 Kaya ito ay isang loop - ito ay hindi pa doon, 1513 01:20:05,770 --> 01:20:08,680 ngunit nakakakuha ito ng talagang malapit. 1514 01:20:08,680 --> 01:20:11,260 Code na ito, maaari naming ngayon tumakbo, 1515 01:20:11,260 --> 01:20:14,620 bumuo, pa rin ang isang error nangyayari. 1516 01:20:17,960 --> 01:20:19,800 Bakit ito pa rin nagrereklamo, 1517 01:20:19,800 --> 01:20:22,030 sinasabi ang expression ay hindi nagamit, 1518 01:20:22,030 --> 01:20:24,600 at iyon dahil ang linya na ito ay hindi gawin. 1519 01:20:24,600 --> 01:20:27,620 Hindi namin iimbak ito kahit saan, hindi namin i-save ang mga resulta. 1520 01:20:27,620 --> 01:20:30,210 Saan dapat namin sine-save ang resultang ito? 1521 01:20:30,210 --> 01:20:32,920 >> Mga o i? 1522 01:20:32,920 --> 01:20:35,990 Eksakto, at ito funky syntax, 1523 01:20:35,990 --> 01:20:38,550 ang mga ito na may mga square bracket 1524 01:20:38,550 --> 01:20:41,500 ay nangangahulugan na ma-access ang i-ika na character ng mga. 1525 01:20:41,500 --> 01:20:45,650 Na pagpunta sa isang bagay na talagang mahalaga para sa pagtatalaga. 1526 01:20:45,650 --> 01:20:48,070 Sa kasamaang-palad, hindi namin ay pagpunta sa may upang ihinto dito, 1527 01:20:48,070 --> 01:20:50,550 kaya na ang Sebastian seksyon ay maaaring dumating sa, 1528 01:20:50,550 --> 01:20:53,980 ngunit ako masaya upang manatili pagkatapos sa labas at gumawa ng anumang mga katanungan. 1529 01:20:53,980 --> 01:20:56,680 Kaya salamat sa iyo guys para sa darating na. 1530 01:20:56,680 --> 01:20:59,730 Ito ay dapat na ngayong mag-upload, bumuo, patakbuhin. 1531 01:21:01,570 --> 01:21:04,320 Maaari naming magpasok ng isang string tulad ng "kumusta" 1532 01:21:06,570 --> 01:21:08,730 at mga Kopya ang "QOX". 1533 01:21:08,730 --> 01:21:11,030 [Tawa] 1534 01:21:11,030 --> 01:21:14,640 >> Kaya hindi pa doon, ngunit gumagalaw, pagkuha patungo sa mga loop! 1535 01:21:14,640 --> 01:21:18,640 Salamat para sa darating na, at ko makikita sa labas.