1 00:00:00,000 --> 00:00:11,280 2 00:00:11,280 --> 00:00:13,650 >> Tagapagsalita 1: Ang lahat ng mga karapatan. 3 00:00:13,650 --> 00:00:14,390 Maligayang pagbabalik. 4 00:00:14,390 --> 00:00:19,260 Ito ay Linggo Dalawang ng CS50, at mayroon kami kaya malayo pa gamit ang function ngunit 5 00:00:19,260 --> 00:00:20,830 higit sa lahat kinuha ito para sa ipinagkaloob. 6 00:00:20,830 --> 00:00:23,430 Ginamit namin ang printf na may mga side effect ng pag-print 7 00:00:23,430 --> 00:00:24,110 bagay sa screen. 8 00:00:24,110 --> 00:00:25,790 Ginamit namin ang makakuha-int, kumuha ng mga lumutang. 9 00:00:25,790 --> 00:00:29,230 >> Ngunit kung ano ang talagang nais upang lumikha ng ng iyong sariling mga pag-andar, tulad ng ilan sa 10 00:00:29,230 --> 00:00:31,740 maaaring ikaw ay nagsimula sa gawin para Problema Set One, bagaman 11 00:00:31,740 --> 00:00:33,140 hindi mahigpit na kinakailangan? 12 00:00:33,140 --> 00:00:37,150 Well, sabihin sige at muling bisitahin na problema ng lang nagtatanong sa gumagamit para sa 13 00:00:37,150 --> 00:00:40,660 ang kanilang pangalan at pagpi-print ng isang bagay sa screen, ngunit subukan upang salik ang ilang mga 14 00:00:40,660 --> 00:00:44,000 ng commonality na na namin nakikita sa aming code kaya malayo. 15 00:00:44,000 --> 00:00:45,120 Kaya sa pamamagitan ng na ibig sabihin ko ang mga sumusunod. 16 00:00:45,120 --> 00:00:47,315 >> Pupunta ako sa sige at lumikha ng isang bagong programa, tawagan lamang 17 00:00:47,315 --> 00:00:49,320 hello.c ito gaya ng dati. 18 00:00:49,320 --> 00:00:53,730 Pupunta ako sa sige at bigyan ang aking sarili ng pamantayang io.h sa tuktok. 19 00:00:53,730 --> 00:00:57,040 Pupuntahan ko ring bigyan ang aking sarili preemptively ang CS50 library upang ang 20 00:00:57,040 --> 00:00:59,080 Hindi ako makapag-yelled sa pamamagitan ng mga tagatala. 21 00:00:59,080 --> 00:01:02,400 At ngayon pupuntahan ko sige at ipinapahayag int, main, walang bisa. 22 00:01:02,400 --> 00:01:09,020 >> At pagkatapos ay i-in dito, ito ay kung saan gusto ko upang simulan upang outsource pag-andar sa 23 00:01:09,020 --> 00:01:12,090 sa ilang ibang mga pag-andar na ako sa aking sarili am pagpunta sa magsulat subalit hindi 24 00:01:12,090 --> 00:01:13,820 kasalukuyang umiiral. 25 00:01:13,820 --> 00:01:19,210 Halimbawa, ipagpalagay na Nais kong magsulat ng isang function na nagbibigay-daan sa akin upang 26 00:01:19,210 --> 00:01:23,830 i-print out kumusta, kuwit, at pagkatapos ng ilang mga pangalan ng gumagamit. 27 00:01:23,830 --> 00:01:29,010 Sa halip na patuloy na gawin printf kumusta,% s, hindi magiging maganda kung 28 00:01:29,010 --> 00:01:33,380 doon ay lamang ng isang function na tinatawag na hindi printf ngunit naka-print na pangalan? 29 00:01:33,380 --> 00:01:36,600 >> Kaya sa ibang salita, gusto kong ma- magsulat ng isang programa na ginagawa ng kaunti 30 00:01:36,600 --> 00:01:37,710 isang bagay na katulad nito. 31 00:01:37,710 --> 00:01:42,070 Una, ako pagpunta sa sabihin ang iyong printf pangalan, at dahil doon pagdikta sa gumagamit sa 32 00:01:42,070 --> 00:01:46,150 akong bigyan ng kanyang pangalan, at pagkatapos ay ako pagpunta sa gamitin ang pamilyar na mga string sa 33 00:01:46,150 --> 00:01:47,290 magpahayag ng isang string. 34 00:01:47,290 --> 00:01:50,420 Bigyan mo ako ng isang variable na uri ng string, call ito s, at iimbak sa na ang 35 00:01:50,420 --> 00:01:52,120 magreresulta ng pagtawag makakuha ng string. 36 00:01:52,120 --> 00:01:56,060 Ngunit ngayon sa nakalipas na linggo, Gusto ko magkaroon medyo tediously tapos kumusta,% s / n. 37 00:01:56,060 --> 00:01:58,630 38 00:01:58,630 --> 00:02:02,570 >> At sa ibang salita, nasaksihan namin ito Halimbawa ng grupo ng mga beses, at ito ay isang 39 00:02:02,570 --> 00:02:05,280 walang kuwenta halimbawa dahil mayroong isa lamang linya ng code sa gayon ito ay talagang hindi isang 40 00:02:05,280 --> 00:02:06,860 sang-ayon upang mapanatili ang pag-type sa muli. 41 00:02:06,860 --> 00:02:09,990 Ngunit ipagpalagay na ito linya ng code talaga ay nagiging pasanin, at 42 00:02:09,990 --> 00:02:12,900 hindi ito isang linya ng code ngunit ito ay 10 linya ng code ng ilang linggo mula ngayon, 43 00:02:12,900 --> 00:02:15,190 at lamang ka nakakakuha ng pagod ng pagkopya at pag-paste o 44 00:02:15,190 --> 00:02:17,180 retyping na ang parehong code. 45 00:02:17,180 --> 00:02:22,100 Hindi ba ito maging maganda sa halip ng paggawa printf kumusta,% s at iba pa, 46 00:02:22,100 --> 00:02:26,500 hindi magiging maganda kung mayroong lamang isang function na tinatawag na naka-print na pangalan 47 00:02:26,500 --> 00:02:27,560 kumukuha ng isang argumento - 48 00:02:27,560 --> 00:02:29,120 sa ibang salita, ito ay tumatagal ng input - 49 00:02:29,120 --> 00:02:30,620 at pagkatapos ay tuldok-kuwit. 50 00:02:30,620 --> 00:02:33,240 Kaya function na, hindi gagawin ito Maging mabait kung na umiral? 51 00:02:33,240 --> 00:02:36,690 Pagkatapos ay hindi ko na kailangang mag-alala tungkol sa ano printf ay, kung ano ang% s at lahat ng 52 00:02:36,690 --> 00:02:39,400 mga pagkakumplikado na hindi lahat na kawili-wili. 53 00:02:39,400 --> 00:02:40,570 Ang mga ito ay kapaki-pakinabang. 54 00:02:40,570 --> 00:02:44,700 >> Kaya naka-print na pangalan, sa kasamaang-palad, ay hindi imbento ng ilang mga 40 plus taon na ang nakakaraan. 55 00:02:44,700 --> 00:02:45,980 Walang isa naisip na isulat ito. 56 00:02:45,980 --> 00:02:48,300 Ngunit iyon lamang ang kagandahan ng pagkakaroon ng programming language, tulad ng sa 57 00:02:48,300 --> 00:02:52,930 Scratch maaari mong tukuyin ang mga pasadyang mga bloke, upang sa C at pinaka-anumang wika, maaari mong 58 00:02:52,930 --> 00:02:57,260 tukuyin ang iyong sariling mga pag-andar, maaari mong tukuyin ang iyong sariling mga function. 59 00:02:57,260 --> 00:03:01,710 Kaya kahit na makuha namin sa pamamagitan ng pangunahing Awtomatikong para sa libreng, maaari naming ipahayag 60 00:03:01,710 --> 00:03:02,730 ang aming sariling mga function. 61 00:03:02,730 --> 00:03:05,670 >> Kaya ako ng pagpunta sa gawin ang ilang mga kuwarto ng hanggang dito up tuktok, at ako pagpunta sa ipahayag ang aking 62 00:03:05,670 --> 00:03:08,210 sariling pag-andar na ang nangyayari upang tumingin ng isang medyo kakaiba sa unang ngunit magkakaroon kami dumating 63 00:03:08,210 --> 00:03:09,400 bumalik sa mga ito bago ang haba. 64 00:03:09,400 --> 00:03:12,310 Pupunta ako sa sabihin walang bisa, at dahil doon na nagpapahiwatig na ito function na gumagana 65 00:03:12,310 --> 00:03:16,040 isang bagay, ay may side effect, ngunit ito hindi nagbabalik ng isang bagay sa akin sa 66 00:03:16,040 --> 00:03:18,810 parehong paraan na makakuha ng int o makakuha ng string mismo ang ibig. 67 00:03:18,810 --> 00:03:22,450 At ako pagpunta upang bigyan ito ng isang function na pangalanan ng naka-print na pangalan, at pupuntahan ko 68 00:03:22,450 --> 00:03:26,470 tukuyin na ang tao na ito ay pagpunta sa tumagal isang string, at ako pagpunta sa tumawag na 69 00:03:26,470 --> 00:03:27,600 string pangalan. 70 00:03:27,600 --> 00:03:32,100 Kaya kong tumawag ito anumang nais ko, ngunit ko gusto ang aking code upang maging self-pagdodokumento. 71 00:03:32,100 --> 00:03:34,770 Sa ibang salita, kung ang isa sa iyo ay sa buksan ang file na ito at basahin ito, maaari mong 72 00:03:34,770 --> 00:03:39,020 uri ng magpakilala mula sa pangalan ng na input kung ano ang papel na ito ay dapat upang i-play. 73 00:03:39,020 --> 00:03:42,270 >> At ngayon sa ibaba na, pupuntahan ko buksan kulot suhay at closed kulot suhay, 74 00:03:42,270 --> 00:03:47,140 at kaya mapapansin ko na sinundan ang parehong pattern sa apat na mga linya sa pamamagitan ng pitong mga bilang 75 00:03:47,140 --> 00:03:51,622 Ko ang mga sumusunod na para sa isang mahusay na linggo plus ngayon sa pagitan ng, sabihin nating, mga linya at siyam 76 00:03:51,622 --> 00:03:53,400 14 na sumulat ng mga pangunahing. 77 00:03:53,400 --> 00:03:56,160 Sa ibang salita, i-print ang pangalan ay isa pang function. 78 00:03:56,160 --> 00:03:58,990 Ngayon, ang tagatala ay hindi pagpunta upang malaman tumawag sa bagay na ito awtomatikong 79 00:03:58,990 --> 00:04:02,670 dahil ako literal lamang imbento ito, pero ito ay kilala pa rin sa pangunahing tumawag 80 00:04:02,670 --> 00:04:08,710 awtomatiko, at pagkatapos ay siyempre sa 13 linya, ako ay tumatawag ang aking sariling mga function. 81 00:04:08,710 --> 00:04:12,805 At dahil ko na ang nagpahayag na function na hanggang sa apat na mga linya bago main, 82 00:04:12,805 --> 00:04:16,579 ito ay pagpunta sa magturo ang tagatala ano quote, magpanipi, "naka-print na pangalan" 83 00:04:16,579 --> 00:04:18,140 Nangangahulugan at ano ang dapat nitong gawin. 84 00:04:18,140 --> 00:04:22,700 Kaya ako ay isang uri ng pagbibigay ito ng isang bagong custom harangan sa konteksto ng, sabihin nating, scratch. 85 00:04:22,700 --> 00:04:27,240 >> Kaya sa dito, maaari ko bang ilagay na laganap o paulit-ulit na pattern ng code panatilihing ako 86 00:04:27,240 --> 00:04:32,300 pagsulat sa klase, printf % S halo,% s / n ", - 87 00:04:32,300 --> 00:04:36,720 88 00:04:36,720 --> 00:04:37,590 kung ano ang gusto kong ilagay dito? 89 00:04:37,590 --> 00:04:39,200 S? 90 00:04:39,200 --> 00:04:41,420 Kaya gusto ko upang ilagay ang pangalan sa kontekstong ito. 91 00:04:41,420 --> 00:04:43,440 Kaya mapansin ang isang bit ng isang paghihiwalay sa dalawang bahagi dito. 92 00:04:43,440 --> 00:04:47,680 Dahil ako deklarasyon aking sariling function na at medyo ko pa mang tinatawag na 93 00:04:47,680 --> 00:04:50,880 print ito pangalan, at dahil nag ako tinukoy sa panaklong na ito 94 00:04:50,880 --> 00:04:55,035 function na tumatagal ng isang argument, ang uri ng na kung saan ay isang string - kaya ito ay isang salita 95 00:04:55,035 --> 00:05:00,010 o parirala o isang bagay tulad na - at Ako sa pagtawag na argumento pangalan, na 96 00:05:00,010 --> 00:05:04,770 Nangangahulugan lamang ang variable na nasa saklaw, sa gayon na magsalita, ang pangalan. 97 00:05:04,770 --> 00:05:07,780 >> S lamang umiiral sa pagitan ng kung ano ang dalawang kulot tirante, siyempre? 98 00:05:07,780 --> 00:05:12,990 Well talaga, tulad ng linya 10 sa pamamagitan ng 14, kaya lang gusto sa Lunes ay hindi maaaring gamitin 99 00:05:12,990 --> 00:05:17,650 S, ngunit kung ano ang maaari kong gawin ay pumasa S sa naka-print na pangalan. 100 00:05:17,650 --> 00:05:21,030 I-print pangalan lang kaya ang mangyayari sa bigyan ito isang alias, isang kasingkahulugan, isang palayaw, 101 00:05:21,030 --> 00:05:24,400 pagtawag ito pangalan, at ngayon gamitin ito sa linyang ito. 102 00:05:24,400 --> 00:05:26,840 Kaya ngayon hayaan mo akong i-save ito, mag-zoom out. 103 00:05:26,840 --> 00:05:31,250 >> Hayaan akong sige at gumawa ng halo. 104 00:05:31,250 --> 00:05:32,400 Mukhang magandang. 105 00:05:32,400 --> 00:05:36,110 Hindi dura ang anumang mga error. . / Kumusta ang Enter. 106 00:05:36,110 --> 00:05:37,020 Ano ang aking pangalan? 107 00:05:37,020 --> 00:05:38,060 David. 108 00:05:38,060 --> 00:05:39,270 At kumusta David. 109 00:05:39,270 --> 00:05:41,820 Kaya hindi lahat ng mga kapana-panabik na, ngunit lamang sa tingin ngayon. 110 00:05:41,820 --> 00:05:44,310 Mayroon ka na ngayong na parehong sahog tulad ng ginawa namin sa scratch sa 111 00:05:44,310 --> 00:05:45,420 gumawa ng aming sariling mga function. 112 00:05:45,420 --> 00:05:46,770 >> Subalit mayroong isang bit ng isang gotcha. 113 00:05:46,770 --> 00:05:50,620 Ipagpalagay na hindi ko ay talagang naisip ito sa pamamagitan ng at ko talagang walang 114 00:05:50,620 --> 00:05:54,250 talagang nag-iisip tungkol dito ay nagsulat na function na pababa dito. 115 00:05:54,250 --> 00:05:55,420 Palagay ng ganap na ganap makatwirang. 116 00:05:55,420 --> 00:05:58,440 Sa scratch doon ay walang mga kuru-kuro ng lokasyon sa iyong mga script. 117 00:05:58,440 --> 00:06:00,670 Maaari mong ilagay up ng isa dito, isa dito ang, isa up dito, at maaari itong magsimula 118 00:06:00,670 --> 00:06:03,310 upang tumingin ng kaunti magulo kung wala ka lay out ito nang maayos, ngunit ito ay hindi 119 00:06:03,310 --> 00:06:05,910 mahalaga kung saan pisikal na mga script ay sa screen. 120 00:06:05,910 --> 00:06:09,660 Sa kasamaang palad sa C - at ito ay hindi katulad mga wika tulad ng Java at Python 121 00:06:09,660 --> 00:06:13,600 at iba pa na maaaring mong maging pamilyar may - sa kasamaang-palad sa C, ang pagkakasunud-sunod 122 00:06:13,600 --> 00:06:15,830 mahalaga dahil sa panonood ng kung ano ang pagpunta sa mangyayari ngayon. 123 00:06:15,830 --> 00:06:19,010 >> Ang default na pag-andar na ang nangyayari upang isakatuparan ay, siyempre, ang pangunahing. 124 00:06:19,010 --> 00:06:22,290 Main ay pagpunta sa tumawag print pangalan sa walong linya, ngunit sa kasamaang palad, ang 125 00:06:22,290 --> 00:06:26,660 tagatala ay hindi kahit na malaman na ang naka-print na pangalan Umiiral na hanggang sa ito ay makakakuha ng sa line 11, 126 00:06:26,660 --> 00:06:28,520 na kung saan ay sa kasamaang-palad pagpunta sa maging huli na. 127 00:06:28,520 --> 00:06:30,660 Kaya natin gawin gawing halo. 128 00:06:30,660 --> 00:06:32,950 At ngayon mapahamak, dalawang mga error na nabuo. 129 00:06:32,950 --> 00:06:36,050 Kaya ngayon hayaan mag-scroll up ako sa pinakadulo una sa lahat, bilang dapat naming laging gawin, at 130 00:06:36,050 --> 00:06:39,560 mapapansin na ito ay sumisigaw sa akin, "Implicit deklarasyon ng function na 131 00:06:39,560 --> 00:06:40,540 mag-print ng pangalan. " 132 00:06:40,540 --> 00:06:43,860 >> Kaya nasaksihan namin ang mensaheng ito bago, implicit deklarasyon ng function. 133 00:06:43,860 --> 00:06:48,080 Kapag na-nakita namin na uri ng error? 134 00:06:48,080 --> 00:06:49,180 Kapag hindi ko isama ang isang library. 135 00:06:49,180 --> 00:06:53,470 Kung nakalimutan ko ang cs50.h at Gusto ko makakuha yelled sa para makakuha ng string o kumuha ng int. 136 00:06:53,470 --> 00:06:56,880 Ngunit sa kasong ito, ang pagpapaandar na pag-print pangalan ay wala sa isang library, tama? 137 00:06:56,880 --> 00:07:00,230 Ito ay literal sa file na ito, kaya kung ano talaga ang problema? 138 00:07:00,230 --> 00:07:04,660 >> Well sa kasamaang-palad sa C, ito ay tumatagal ng sa iyo kaya hindi mapaniniwalaan o kapani-paniwala literal na kung iyong 139 00:07:04,660 --> 00:07:08,640 Gusto ng isang function na tinatawag na pag-print sa pangalan umiiral, maaaring ipatupad 140 00:07:08,640 --> 00:07:11,940 na function na sa pinakatuktok ng iyong code upang ito ay mapupuntahan sa babaan 141 00:07:11,940 --> 00:07:15,070 pag-andar, ngunit lantaran, na nagiging nanggigitata masyadong mabilis. 142 00:07:15,070 --> 00:07:18,160 Personal, ko ang paglalagay ng pangunahing muna dahil pagkatapos ay napaka ito ay i-clear kung ano ito 143 00:07:18,160 --> 00:07:19,890 programa ang ibig sa unang tingin. 144 00:07:19,890 --> 00:07:23,290 At saka, maaari kang makakuha ng kakaiba sa sulok mga kaso kung saan kung x ay nais na tumawag 145 00:07:23,290 --> 00:07:27,530 y ngunit y maaaring tumawag x, mo lamang pisikal na hindi maaaring talagang ilagay isa 146 00:07:27,530 --> 00:07:28,540 sa itaas ng iba pang mga. 147 00:07:28,540 --> 00:07:31,230 >> Ngunit ito lumiliko out sa C, maaari naming malutas ang napaka-simple. 148 00:07:31,230 --> 00:07:34,010 Pupunta ako sa maglagay ng maliit na bit ng space up dito, at lang ako sa pagpunta sa 149 00:07:34,010 --> 00:07:38,170 preemptively, kahit na medyo redundantly, pagpunta sa turuan ang 150 00:07:38,170 --> 00:07:42,320 tagatala na may umiiral na pag-andar ng tinatawag print pangalan, ito ay tumatagal ng isang string, 151 00:07:42,320 --> 00:07:46,330 at ako pagpunta sa tumawag sa ito pangalanan ang tuldok-kuwit. 152 00:07:46,330 --> 00:07:50,220 >> Kaya ito ngayon sa apat na linya, na aming hindi pa nakita bago, ay isang deklarasyon 153 00:07:50,220 --> 00:07:53,940 ng isang pangalan ng function na i-print, ngunit ito lamang isang pangako na function na ito kalooban 154 00:07:53,940 --> 00:07:56,620 kalaunan ay tinukoy, kalaunan ay ipinatupad. 155 00:07:56,620 --> 00:08:00,180 Ito ngayon ang maaari kong umalis dahil nag-iisa ngayon ito ay ang kahulugan, ang 156 00:08:00,180 --> 00:08:04,090 pagpapatupad, pag-uuri ng huling milya ng pagpapatupad ng mga ito 157 00:08:04,090 --> 00:08:05,130 partikular na function. 158 00:08:05,130 --> 00:08:08,450 Kaya nang tapat ito nakababagod, ito ay nakakainis, ngunit ito ay ang paraan ay C, at ito ay 159 00:08:08,450 --> 00:08:12,050 dahil ito ay magdadala sa iyo napaka literal at, bilang isang computer na dapat nang tapat, 160 00:08:12,050 --> 00:08:16,020 lamang ay eksakto kung ano sabihin mo ito sa gawin, at upang ang pagkakasunud-sunod ay mahalaga. 161 00:08:16,020 --> 00:08:18,940 >> Kaya panatilihin na sa isip at muli, magsimula sa mapansin ang pag-ulit ng mga pattern. 162 00:08:18,940 --> 00:08:21,850 Logro ay kalooban mo, kung hindi mo pa pa, magsimula sa magkasalubong mga mensahe 163 00:08:21,850 --> 00:08:24,700 tulad nito na sa unang sulyap ay tila ganap na misteriyoso, ngunit kung nagsimula ka 164 00:08:24,700 --> 00:08:29,000 upang tumingin para sa mga key na mga salita gaya ng "Implicit pahayag," nagbabanggit ng isang 165 00:08:29,000 --> 00:08:32,380 function na sa kasong ito - at lantaran, mo kung minsan kahit na makakuha ng isang maliit na berde 166 00:08:32,380 --> 00:08:35,010 karot simbolo na nagsasabi sa iyo kung saan ang isyu ay malamang na - 167 00:08:35,010 --> 00:08:40,980 maaari mong simulan upang gumana ang iyong paraan sa pamamagitan ng pa hindi nakikitang error na mensahe. 168 00:08:40,980 --> 00:08:45,860 Ang anumang mga katanungan sa pagsulat ng iyong sariling function na sa ganitong paraan? 169 00:08:45,860 --> 00:08:47,540 >> Tayo'y gawin ang isang bagay na ang isang maliit na mas nakakahimok. 170 00:08:47,540 --> 00:08:51,760 Sa halip na lamang gawin ang isang bagay na may isang side effect ng pag-print, hayaan mo akong pumunta 171 00:08:51,760 --> 00:08:55,340 Magpatuloy at i-save ang isang bagong file, at bibigyan namin ng tumawag ito positive.c, kahit na ito ay 172 00:08:55,340 --> 00:08:57,600 pagpunta sa maging isang maliit na iba't ibang kumpara sa huling panahon. 173 00:08:57,600 --> 00:09:01,910 At oras na ito, gusto kong muling ipatupad positive.C halimbawa huling oras, na 174 00:09:01,910 --> 00:09:04,430 ay puwersahin ang user upang mabigyan sa akin ng isang positibong integer. 175 00:09:04,430 --> 00:09:07,280 Ngunit ako ay nagkaroon na gamitin makakuha int huling oras. 176 00:09:07,280 --> 00:09:10,780 Hindi ba ito naging maganda kung nagkaroon isang function na tinatawag na makakuha ng positibong int 177 00:09:10,780 --> 00:09:13,610 na maaaring ko lang outsource ito piraso ng pag-andar sa? 178 00:09:13,610 --> 00:09:16,480 Kaya ang pagkakaiba dito ay bibigyan namin ng ipatupad makakuha ng positibong int, ngunit hindi katulad 179 00:09:16,480 --> 00:09:20,330 naka-print na pangalan ay nagkaroon ng isang pangalawang epekto - ito ay hindi nagbalik ng isang bagay sa akin tulad ng 180 00:09:20,330 --> 00:09:21,710 isang numero o isang string - 181 00:09:21,710 --> 00:09:25,510 maging positibo int ay, siyempre, pagpunta sa bumalik, sana, ang positibong int. 182 00:09:25,510 --> 00:09:26,170 >> Kaya sabihin gawin ito. 183 00:09:26,170 --> 00:09:30,840 Isama cs50.h, Isama ang standard io.h. 184 00:09:30,840 --> 00:09:33,520 Int pangunahing walang bisa. 185 00:09:33,520 --> 00:09:42,160 At ngayon sa dito, pupuntahan ko sige at sabihin nating int, tumawag n ito, ay katumbas ng 186 00:09:42,160 --> 00:09:44,270 makakuha ng positibong int. 187 00:09:44,270 --> 00:09:49,080 At tulad ng int makakuha ng Umiiral dahil ang mga tauhan ay nagsulat ito, pupuntahan ko 188 00:09:49,080 --> 00:09:53,950 upang ipalagay para sa mga sandali na makakuha positibong int umiiral, at ngayon ako pupunta 189 00:09:53,950 --> 00:09:57,730 upang sige at sabihin printf, salamat para sa% i / n ", n. 190 00:09:57,730 --> 00:10:02,940 191 00:10:02,940 --> 00:10:07,770 >> Kaya ngayon kung ako sumulat ng libro sa programang ito, ano ang ay pagpunta sa mangyayari sa aking terminal 192 00:10:07,770 --> 00:10:09,075 window sa ibaba ng screen? 193 00:10:09,075 --> 00:10:11,580 194 00:10:11,580 --> 00:10:13,900 Pupunta ako sa malamang na makakuha parehong error tulad ng dati. 195 00:10:13,900 --> 00:10:14,570 So sabihin subukan ito. 196 00:10:14,570 --> 00:10:16,450 Gawing positibo. 197 00:10:16,450 --> 00:10:19,900 At muli, walang pasubali na pagpapahayag ng pag-andar, makakuha ng positibong int. 198 00:10:19,900 --> 00:10:21,970 Kaya maaari naming malutas ito sa isang pares ng mga paraan. 199 00:10:21,970 --> 00:10:27,310 Pupunta ako sa panatilihin itong simple lamang at ilalagay ang aking deklarasyon up dito at makakuha ng 200 00:10:27,310 --> 00:10:28,120 positibong int. 201 00:10:28,120 --> 00:10:29,720 Kailangan ko ng tinatawag na lagda. 202 00:10:29,720 --> 00:10:32,410 Ang pirma ay tumutukoy lamang sa aesthetics ng 203 00:10:32,410 --> 00:10:34,090 unang linya ng programa. 204 00:10:34,090 --> 00:10:37,420 Kaya ano ang dapat makakuha ng positibong int return? 205 00:10:37,420 --> 00:10:37,970 >> Kaya sa isang int. 206 00:10:37,970 --> 00:10:41,540 Ibig kong sabihin may perpektong, magiging bumalik isang bagay tulad ng positibong int, ngunit na 207 00:10:41,540 --> 00:10:42,160 ay hindi umiiral. 208 00:10:42,160 --> 00:10:45,280 Hindi namin nakita na kasama ng aming data mga uri, kaya kami ay may upang harapin ang 209 00:10:45,280 --> 00:10:47,170 katunayan na kami ay may napakakaunting mga uri ng data upang gumana sa. 210 00:10:47,170 --> 00:10:50,360 Ngunit maaari naming bumalik sa isang int at lang pinagkakatiwalaan na ito ay magiging positibo. 211 00:10:50,360 --> 00:10:52,690 Ito ay pagpunta upang tawagin makakuha ng positibong int. 212 00:10:52,690 --> 00:10:55,122 >> At ngayon tungkol sa kung paano nito argumento? 213 00:10:55,122 --> 00:10:56,440 Gumagana ba ito gumawa ng anumang pag-input? 214 00:10:56,440 --> 00:10:58,280 Gumagana ba ito kailangan ng anumang mga input? 215 00:10:58,280 --> 00:11:00,900 Kaya hindi ito kailangang malaman nang maaga kahit ano. 216 00:11:00,900 --> 00:11:03,220 Kumuha ng string ay hindi, kumuha ng int ang hindi. 217 00:11:03,220 --> 00:11:06,430 Printf gumagana - ito ay kinakailangan na magkaroon ng ilang mga input naipasa sa ito - at naka-print na pangalan 218 00:11:06,430 --> 00:11:09,020 kinakailangan ng pag-input sa ilan, ngunit makakuha positibong int ang hindi. 219 00:11:09,020 --> 00:11:11,530 Kaya pupuntahan ko tahasan sabihin ang tagatala walang bisa. 220 00:11:11,530 --> 00:11:13,470 Walang bisa ay ang kawalan ng ano pa man. 221 00:11:13,470 --> 00:11:17,990 Kaya walang silbi ang ibig sabihin ay wala sa loob ng pagpunta ng mga panaklong, tuldok-kuwit. 222 00:11:17,990 --> 00:11:20,840 >> At ngayon sa ilalim ng aking mga file - at muli, lang ako sa pagiging uri ng anal 223 00:11:20,840 --> 00:11:23,640 dito paglalagay ng main sa tuktok, na ay mahusay na kasanayan dahil sa ganitong paraan, 224 00:11:23,640 --> 00:11:26,220 anumang oras sa iyo o sa ibang tao bubukas ang iyong mga file, ang 225 00:11:26,220 --> 00:11:27,400 pag-andar ay doon. 226 00:11:27,400 --> 00:11:29,660 Maaari mong sumisid sa mula sa square isa. 227 00:11:29,660 --> 00:11:34,190 Kaya ngayon pupuntahan ko duplicate na ito, makakuha ng positibong int walang silbi, ngunit hindi ako 228 00:11:34,190 --> 00:11:35,430 pagpunta sa pindutin ng isang tuldok-kuwit ngayon. 229 00:11:35,430 --> 00:11:38,280 Pupunta ako upang buksan ang kulot tirante, at ngayon ay kailangan ko upang humiram 230 00:11:38,280 --> 00:11:39,700 ilang mga ideya mula sa Lunes. 231 00:11:39,700 --> 00:11:44,450 >> Kaya bilang isipin ang mo, ginawa namin ng isang bagay i gawin ang mga sumusunod habang 232 00:11:44,450 --> 00:11:45,830 isang bagay na noon ay totoo. 233 00:11:45,830 --> 00:11:46,630 At kung ano ang gagawin ko? 234 00:11:46,630 --> 00:11:51,540 Ako ginawang isang bagay tulad ng ibigay sa akin ng isang positibong integer, 235 00:11:51,540 --> 00:11:52,430 Medyo ng isang prompt. 236 00:11:52,430 --> 00:11:53,540 Maaari ko bang gamitin ang anumang mga salita na gusto ko. 237 00:11:53,540 --> 00:11:54,960 At pagkatapos ay ginamit ko kung ano? 238 00:11:54,960 --> 00:11:59,530 Int n katumbas makakuha int, walang argumento dito. 239 00:11:59,530 --> 00:12:00,550 >> At mapansin ang pagkakaiba. 240 00:12:00,550 --> 00:12:04,680 Kapag tumawag ka ng isang function, kapag ginagamit mo ang isang function na, hindi mo ilalagay sa walang bisa. 241 00:12:04,680 --> 00:12:08,570 Mo lang gawin iyon kapag deklarasyon ng function, pagtuturo ang tagatala ano 242 00:12:08,570 --> 00:12:09,780 dapat itong asahan. 243 00:12:09,780 --> 00:12:11,650 Kaya hindi mo na kailangang maglagay walang silbi ang iyong sarili doon. 244 00:12:11,650 --> 00:12:12,940 >> At ngayon kung ano ang aking kalagayan? 245 00:12:12,940 --> 00:12:19,670 Well, n ay hindi katumbas ng positibo, ngunit ito lamang ay hindi tunay na code. 246 00:12:19,670 --> 00:12:22,530 Kaya paano ko ipahayag ito nang higit pa nang malinis? 247 00:12:22,530 --> 00:12:24,090 Kaya mas mababa sa o katumbas ng zero. 248 00:12:24,090 --> 00:12:26,250 Kaya muli, mapansin ang maaari mong gawin mas mababa sa o patas sa. 249 00:12:26,250 --> 00:12:28,100 Kahit na ito ay dalawang magkahiwalay na mga simbolo, maaari mong gawin ito sa 250 00:12:28,100 --> 00:12:29,350 iyong keyboard bilang naturang. 251 00:12:29,350 --> 00:12:33,950 >> Ngunit mayroon pa rin ng isang bug na Ako screwed up huling beses masyadong. 252 00:12:33,950 --> 00:12:36,950 Mayroon akong idedeklara - 253 00:12:36,950 --> 00:12:37,460 eksakto. 254 00:12:37,460 --> 00:12:39,640 Mayroon akong idedeklara n labas ng loop. 255 00:12:39,640 --> 00:12:44,180 Kaya kailangan kong ilagay n up dito, at gagawin ko hindi nais upang muling ipahayag ito sa dito 256 00:12:44,180 --> 00:12:46,480 baka makakuha ako ng isang bagong variable. 257 00:12:46,480 --> 00:12:48,860 Katatapos ko lamang nais na magtalaga ng isang halaga sa dito. 258 00:12:48,860 --> 00:12:54,320 >> At ngayon, hindi ko pa tapos dito. 259 00:12:54,320 --> 00:12:57,290 Hayaan akong makakuha nang mas maaga sa aking sarili at magpanggap na ako tapos na. 260 00:12:57,290 --> 00:13:01,220 Gawing positibo, at ngayon may bagong error. 261 00:13:01,220 --> 00:13:04,550 Control umabot sa dulo ng hindi pang-walang bisa function. 262 00:13:04,550 --> 00:13:07,760 Kaya bagong mensahe ng error, ngunit kung uri mang-ulol ng bukod sa bawat isa sa mga salitang ito, 263 00:13:07,760 --> 00:13:09,620 marahil pahiwatig sa kung ano ang mali. 264 00:13:09,620 --> 00:13:11,240 >> Kontrolin. 265 00:13:11,240 --> 00:13:14,250 Control lamang ay nangangahulugan na ang pagkakasunod-sunod ng mga operasyon sa isang program. 266 00:13:14,250 --> 00:13:16,510 Ang computer na nasa kontrol at may nangyaring mali. 267 00:13:16,510 --> 00:13:18,510 Kaya umabot sa dulo ng isang non-walang bisa function. 268 00:13:18,510 --> 00:13:21,760 Ano ang function na ito ay tila nagre-refer sa? 269 00:13:21,760 --> 00:13:24,790 Ano ang function na ay hindi-walang bisa? 270 00:13:24,790 --> 00:13:27,400 Kaya makakuha ng positibong int, at ng kaunti nakakalito sa na rin, 271 00:13:27,400 --> 00:13:29,010 ito ay uri ng walang bisa. 272 00:13:29,010 --> 00:13:33,070 Mayroon itong specification ng walang bisa para sa kanyang argumento, ngunit nito output ay pagpunta sa 273 00:13:33,070 --> 00:13:34,540 maging ng uri n. 274 00:13:34,540 --> 00:13:37,260 Kaya ang salita sa kaliwa ay ang tinatawag nang gayon return type. 275 00:13:37,260 --> 00:13:40,320 Ang salita sa loob dito ay ang zero o higit pang mga argumento 276 00:13:40,320 --> 00:13:41,970 na isang function na tumatagal. 277 00:13:41,970 --> 00:13:44,060 >> Kaya kung ano ang kailangan kong gawin? 278 00:13:44,060 --> 00:13:47,650 Sa puntong ito sa aking code, line 21 kung saan ang mga kumikislap prompt ngayon ay, ako 279 00:13:47,650 --> 00:13:51,430 mayroong positibong int loob ng variable na tinatawag n. 280 00:13:51,430 --> 00:13:55,200 Paano ko bigyan ito pabalik sa main? 281 00:13:55,200 --> 00:13:55,960 Literal. 282 00:13:55,960 --> 00:13:59,320 Bumalik n tuldok-kuwit. 283 00:13:59,320 --> 00:14:04,090 >> Kaya lang bilang Colton nagbalik ng isang piraso ng sulatin ang sagot sa akin sa pamamagitan ng pag-drop 284 00:14:04,090 --> 00:14:07,020 na piraso ng papel sa maliit na itim kahon sa mesa, upang gawin iyon sa 285 00:14:07,020 --> 00:14:10,100 code, literal ka magsulat lamang, bumalik n, at ito ay bilang bagaman Colton ay 286 00:14:10,100 --> 00:14:12,140 handing sa akin ng isang bagay na pisikal na bumalik. 287 00:14:12,140 --> 00:14:15,870 Sa kasong ito, kung ano ang nangyayari ay makakuha positibong int ay pagpunta sa ipasa pabalik 288 00:14:15,870 --> 00:14:19,220 ano ang siguro isang positibong integer kung kanino? 289 00:14:19,220 --> 00:14:21,380 Saan kinukuha ng halaga na magtapos up? 290 00:14:21,380 --> 00:14:29,080 Na nagtatapos up sa variable na ito, n, at pagkatapos namin magpatuloy sa linya siyam. 291 00:14:29,080 --> 00:14:31,920 >> Kaya sa ibang salita, sa pagkakasunud-sunod ng pagpapatakbo, programa na ito ay nagsisimula 292 00:14:31,920 --> 00:14:34,430 execute, at tagatala ang napagtanto, oh, gusto mo na ang library? 293 00:14:34,430 --> 00:14:36,310 Hayaan akong pumunta grab ano ang nasa loob na. 294 00:14:36,310 --> 00:14:37,750 Oh, gusto mo na ang standard library IO? 295 00:14:37,750 --> 00:14:39,660 Hayaan akong pumunta grab ano ang nasa loob na. 296 00:14:39,660 --> 00:14:44,510 Ano ang ibig tagatala ng sabihin sa sarili nito kapag ito ay umabot sa apat na linya? 297 00:14:44,510 --> 00:14:47,980 Oh, ikaw ipinangako upang ipatupad ang function na tinatawag na makakuha ng positibong, ngunit 298 00:14:47,980 --> 00:14:50,820 babalikan ka namin sa ibang pagkakataon na, isang bagay kasama ang mga linya. 299 00:14:50,820 --> 00:14:53,450 >> Int pangunahing walang bisa lamang ay nangangahulugan narito ang lakas ng loob ng aking mga programa. 300 00:14:53,450 --> 00:14:54,990 Linya ng pitong lamang ang kulot suhay. 301 00:14:54,990 --> 00:14:59,540 Linya ng walong ay nagsasabi sa kaliwa, bigyan sa akin 32 bits para sa isang integer, tumawag n ito. 302 00:14:59,540 --> 00:15:02,160 Sa kanang bahagi, ito ay sinasabi makakuha ng positibong int. 303 00:15:02,160 --> 00:15:07,120 Ngayon sabihin pause na kuwento dahil ngayon Hindi ko panatilihin ang aking mga gumagalaw cursor pababa. 304 00:15:07,120 --> 00:15:11,720 Aking cursor ngayon napupunta down na dahil dito ngayon makakuha ng positibong int executes. 305 00:15:11,720 --> 00:15:13,100 Int n ay ipinahayag. 306 00:15:13,100 --> 00:15:14,040 Gawin ang mga sumusunod. 307 00:15:14,040 --> 00:15:16,090 Printf nagbibigay sa akin ng isang positibong integer. 308 00:15:16,090 --> 00:15:19,740 >> Kumuha ng isang int mula sa gumagamit, iimbak ito sa n, at marahil gawin ito muli at muli. 309 00:15:19,740 --> 00:15:23,010 Loop Nangangahulugan ito na ang code na ito puwede pumugot ng ulo pataas at pababa tulad nito muli 310 00:15:23,010 --> 00:15:25,810 at muli, ngunit kapag ang mga gumagamit sa wakas cooperates at nagbibigay sa akin ng isang positibong 311 00:15:25,810 --> 00:15:31,750 int, ako pindutin ang linya 21, kung saan ang numero ay ipinasa muli, at kung alin ang 312 00:15:31,750 --> 00:15:34,280 ang dapat kong i-highlight ngayon? 313 00:15:34,280 --> 00:15:35,070 Siyam. 314 00:15:35,070 --> 00:15:39,010 Control, kaya na magsalita, nagbabalik sa line siyam. 315 00:15:39,010 --> 00:15:40,650 Iyan ang linya na ngayon sa pagsingil. 316 00:15:40,650 --> 00:15:43,250 >> Kaya na kung ano ang nangyayari na lahat oras na ito sa ilalim ng hood, ngunit 317 00:15:43,250 --> 00:15:46,480 kapag namin ginagamit mga function tulad ng printf o kahit na makakuha ng mga string na may ibang tao 318 00:15:46,480 --> 00:15:50,600 sinulat para sa iyo, control ay ina-ipinasa sa iba code ng linya 319 00:15:50,600 --> 00:15:51,290 sa pamamagitan ng linya sa pamamagitan ng linya. 320 00:15:51,290 --> 00:15:53,770 Lamang Ito ay hindi namin ma-makita ito at kami Hindi ma talagang ilarawan ito sa 321 00:15:53,770 --> 00:15:57,620 programa dahil sa ilang mga iba pang file sa hard drive 322 00:15:57,620 --> 00:16:00,000 walang anumang kaalaman sa amin. 323 00:16:00,000 --> 00:16:02,100 Kaya sabihin talagang sumulat ng libro at magpatakbo ng mga ito ngayon. 324 00:16:02,100 --> 00:16:03,890 >> Gawing positibo. 325 00:16:03,890 --> 00:16:05,260 Sumulat ng libro, iyon ang pag-unlad. 326 00:16:05,260 --> 00:16:06,650 . / Positibo. 327 00:16:06,650 --> 00:16:08,020 Bigyan mo ako ng isang positibong integer. 328 00:16:08,020 --> 00:16:08,800 Sabihin maging mahirap. 329 00:16:08,800 --> 00:16:10,430 Negatibong 1. 330 00:16:10,430 --> 00:16:11,360 Zero. 331 00:16:11,360 --> 00:16:13,370 Sabihin bigyan ito ng 50. 332 00:16:13,370 --> 00:16:18,100 Salamat para sa 50, at kaya kontrol na ngayon ang ibinalik. 333 00:16:18,100 --> 00:16:21,750 Ang anumang mga katanungan, pagkatapos, sa mga iyon? 334 00:16:21,750 --> 00:16:23,180 Oo? 335 00:16:23,180 --> 00:16:25,630 >> [Hindi marinig]. 336 00:16:25,630 --> 00:16:26,130 >> Sabihing muli. 337 00:16:26,130 --> 00:16:27,860 Oh, ang mahusay na tanong. 338 00:16:27,860 --> 00:16:31,100 Kaya maaari mong mapansin ang isang parallel na dito Ako uri ng paggupit ng isang sulok sa. 339 00:16:31,100 --> 00:16:35,420 Sa line 12, ako na nagsasabi, makakuha ng positibong int Ibinabalik ng isang int, ngunit sa pamamagitan ng na ang parehong 340 00:16:35,420 --> 00:16:39,660 logic, ito ngayon ay nakatayo sa dahilan na sa anim na linya, ako na nagsasabi na ang pangunahing tubo 341 00:16:39,660 --> 00:16:44,040 isang int, ngunit kung ano ang mayroon kaming hindi kailanman Nagkaroon sa alinman sa aming mga programa? 342 00:16:44,040 --> 00:16:46,470 Hindi namin nagkaroon ng pagbanggit ang key na ito return salita. 343 00:16:46,470 --> 00:16:49,970 >> Kaya ito lumiliko out na sa C, hindi bababa sa ang bersyon nito na ginagamit namin 344 00:16:49,970 --> 00:16:55,750 ginawa noong 1999, technically, ito ay nangyayari para sa iyo awtomatikong. 345 00:16:55,750 --> 00:16:59,300 Anumang oras mo ipatupad ang isang programa at sa iyo ipatupad ang isang function na tinatawag na main, 346 00:16:59,300 --> 00:17:04,230 na function na ay magbabalik ng zero sa pamamagitan ng default na kung hindi mo sasabihin kung hindi man, 347 00:17:04,230 --> 00:17:05,849 at zero lamang ang convention. 348 00:17:05,849 --> 00:17:09,430 Ang mundo ay nagbabalik zero dahil doon na nagpapahiwatig na ang lahat ay mabuti, 349 00:17:09,430 --> 00:17:13,040 mabisa Aalis sa amin sa 4000000000 posibleng bagay na maaaring pumunta 350 00:17:13,040 --> 00:17:17,530 mali upang kung bumalik kami ng isa, na maaaring magpahiwatig ng isang code na nangangahulugan na ito 351 00:17:17,530 --> 00:17:18,310 bagay nangyaring mali. 352 00:17:18,310 --> 00:17:20,589 Maaari naming ibalik dalawa, na nangangahulugan na ang iba pang mga bagay na nangyaring mali. 353 00:17:20,589 --> 00:17:23,440 Maaari naming ibalik 4000000000, na Nangangahulugan ito iba pang mga bagay nangyaring mali. 354 00:17:23,440 --> 00:17:27,170 >> At kung ikaw ngayon sa tingin tungkol sa iyong sarili PC o Mac, maaari mong isipin ang na 355 00:17:27,170 --> 00:17:29,610 kung minsan kumuha ka ng misteriyoso mga mensahe ng error mula sa software na ikaw ay 356 00:17:29,610 --> 00:17:32,650 paggamit, at kung minsan ito ay may pantao friendly na paglalarawan, ngunit mayroong 357 00:17:32,650 --> 00:17:35,265 madalas isang code o isang numero sa screen? 358 00:17:35,265 --> 00:17:37,800 Kung ito ay hindi dumating sa isip, lamang abangan ang para dito. 359 00:17:37,800 --> 00:17:40,790 Iyan ay karaniwang kung ano ang mga code na ito ay nagre-refer sa. 360 00:17:40,790 --> 00:17:44,200 Ang mga ito ay kasama sa Microsoft Word at iba pang mga programa upang kung mag-file ka ng isang 361 00:17:44,200 --> 00:17:48,850 bug ulat sa kumpanya, maaari mong sabihin mo sa kanila, oh, nakuha ko error number 45. 362 00:17:48,850 --> 00:17:51,750 At ilang mga programmer sa likod ng kumpanya Maaaring tumingin na hanggang sa kanyang 363 00:17:51,750 --> 00:17:54,940 code at sabihin, oh, iyon ay dahil sa aking ginawa ito bug at na ang dahilan kung bakit ang user 364 00:17:54,940 --> 00:17:56,240 Nakakuha ang mensaheng ito. 365 00:17:56,240 --> 00:17:59,490 >> Subalit lantaran, ito ay lamang ng isang maliit na distracting at medyo nakakainip na 366 00:17:59,490 --> 00:18:02,130 pagtibayin na, hindi bababa sa aming unang ilang mga programa, kaya na namin 367 00:18:02,130 --> 00:18:02,970 Na-omitting ito. 368 00:18:02,970 --> 00:18:07,450 Ngunit lahat ng oras na ito bawat isa sa iyong pangunahing pag-andar ay nagkaroon ng lihim na ito 369 00:18:07,450 --> 00:18:11,600 linya awtomatikong idinagdag para sa iyo ng mga tagatala, sa pamamagitan lamang ng convention sa 370 00:18:11,600 --> 00:18:13,172 i-save ka ng ilang oras. 371 00:18:13,172 --> 00:18:14,620 >> [Hindi marinig]. 372 00:18:14,620 --> 00:18:16,250 >> Hindi mo na kailangan upang maisama ito sa pangunahing. 373 00:18:16,250 --> 00:18:16,700 Iyon ay pinong. 374 00:18:16,700 --> 00:18:20,260 Mo kailangang isama ito kung ikaw ay pagpapatupad ng isang function na katulad nito. 375 00:18:20,260 --> 00:18:22,850 Kung hindi man ang function na flat out hindi gagana. 376 00:18:22,850 --> 00:18:24,480 Ngunit sa pangunahing, ito ay hindi kinakailangan. 377 00:18:24,480 --> 00:18:28,450 Sa isa o dalawang linggo, magsisimula kami sa pagkuha ng sa na ugali sa sandaling gusto naming simulan 378 00:18:28,450 --> 00:18:29,690 signifying error. 379 00:18:29,690 --> 00:18:32,550 Talagang mahusay na tanong. 380 00:18:32,550 --> 00:18:36,880 >> Kaya mabilis break na may kinalaman sa pandiwa upang banggitin na ito Biyernes, hindi namin ay nagkakaroon ng tanghalian 381 00:18:36,880 --> 00:18:39,980 per se, ngunit magkakaroon kami ng pagkakaroon ng hapunan sa ang ilan sa mga mag-aaral at mga kawani. 382 00:18:39,980 --> 00:18:42,940 Kung nais mong sumali sa amin, huwag mag- libre upang pumunta sa cs50.net/rsvp. 383 00:18:42,940 --> 00:18:45,030 6:00 ito Biyernes. 384 00:18:45,030 --> 00:18:47,990 Space ay, gaya ng lagi, limitado, ngunit bibigyan namin ng magpatuloy sa paggawa sa mga halos isang 385 00:18:47,990 --> 00:18:51,420 lingguhang batayan kung espasyo naubusan sa linggong ito. 386 00:18:51,420 --> 00:18:56,160 >> Kaya ang cliffhanger na iniwanan namin sa off Lunes noon ay mga string na maaari talaga 387 00:18:56,160 --> 00:19:00,520 ay mai-index sa, na kung saan ay nangangahulugan lamang sa iyo Maaaring makakuha sa unang character, ang 388 00:19:00,520 --> 00:19:03,770 ikalawang karakter, ang ikatlong karakter at iba pa, dahil maaari ka 389 00:19:03,770 --> 00:19:07,860 mabisa sa tingin ng isang string, tulad ng kumusta, bilang sa kasong ito limang 390 00:19:07,860 --> 00:19:09,670 mga titik sa loob ng mga kahon. 391 00:19:09,670 --> 00:19:13,370 At maaari kang makakuha sa bawat isa sa mga mga kahon na may kung ano ang syntax ginawa namin 392 00:19:13,370 --> 00:19:15,230 ipakilala sa Lunes? 393 00:19:15,230 --> 00:19:16,760 Yaong mga square bracket sa iyong keyboard. 394 00:19:16,760 --> 00:19:18,980 Iyon lamang nilalayong pumunta sa lokasyon zero. 395 00:19:18,980 --> 00:19:22,840 >> Simulan namin ang pagbibilang sa zero, kaya bracket zero Sumisimbolo h, isa bracket 396 00:19:22,840 --> 00:19:25,170 Sumisimbolo e, at iba pa. 397 00:19:25,170 --> 00:19:28,490 At kaya sa lahat ng oras kapag kami nakapunta gamit ang string at pag-type sa "kumusta" 398 00:19:28,490 --> 00:19:31,250 at "mundo" at iba pang mga bagay sa ang screen, ito ay nai-imbak 399 00:19:31,250 --> 00:19:32,820 sa mga kahon tulad nito. 400 00:19:32,820 --> 00:19:33,370 At tumagal ng isang hula. 401 00:19:33,370 --> 00:19:37,470 Ano ang ginagawa ng bawat kahon ay kumakatawan sa pisikal na sa loob ng iyong computer? 402 00:19:37,470 --> 00:19:38,250 >> [Hindi marinig]. 403 00:19:38,250 --> 00:19:39,150 >> Paumanhin? 404 00:19:39,150 --> 00:19:39,580 >> Mga character. 405 00:19:39,580 --> 00:19:44,760 >> Kaya isang karakter, tiyak sa kaso ng mga string, at isang character na lamang ang 406 00:19:44,760 --> 00:19:46,800 walong piraso o isa byte. 407 00:19:46,800 --> 00:19:49,550 Kaya mo marahil ay hindi bababa sa vaguely pamilyar sa ang katunayan na ang iyong 408 00:19:49,550 --> 00:19:50,500 May computer na memorya. 409 00:19:50,500 --> 00:19:52,110 Ito ay may dalawang uri ng memorya ng hindi bababa sa. 410 00:19:52,110 --> 00:19:54,810 Ang isa ay ang hard disk kung saan mo i-save ang bagay-bagay na permanente, at iyon 411 00:19:54,810 --> 00:19:57,400 Karaniwang malaki kaya maaari kang magkaroon ng pelikula at musika at iba pa. 412 00:19:57,400 --> 00:20:04,010 >> Pagkatapos ay ikaw ay may isa pang uri ng memory tinatawag na RAM, R-A-M, Random Access 413 00:20:04,010 --> 00:20:07,510 Memory, at ito ay ang uri ng memory na ginagamit kapag ang iyong computer ay 414 00:20:07,510 --> 00:20:11,520 tumatakbo ngunit kung mawalan ka ng lakas o ang iyong baterya namatay, ang anumang bagay na naka-imbak 415 00:20:11,520 --> 00:20:15,300 sa RAM mawala kung mawalan ka ng lakas nang sama-sama dahil hindi ito 416 00:20:15,300 --> 00:20:16,060 paulit-ulit. 417 00:20:16,060 --> 00:20:19,120 Ay karaniwan mong magkaroon, mga araw na ito, isang kalesa ng ito, dalawang gig, siguro higit pa. 418 00:20:19,120 --> 00:20:23,490 At ang mga bentahe ng RAM ay na ito ay magkano magkano, magkano ang mas mabilis kaysa sa na hard disk 419 00:20:23,490 --> 00:20:27,390 o kahit na solid estado nag-mamaneho nang mga araw na ito, subalit ito ay karaniwang mas mahal kaya 420 00:20:27,390 --> 00:20:28,480 mayroon kang mas kaunti sa mga ito. 421 00:20:28,480 --> 00:20:32,400 >> Kaya pag-uusap ngayong araw talaga ay tumutukoy sa RAM, na uri ng memorya na 422 00:20:32,400 --> 00:20:35,270 Umiiral lamang habang mayroong kapangyarihan ina-fed papunta sa iyong computer. 423 00:20:35,270 --> 00:20:40,530 Kaya kapag nag-type sa H-E-L-L-O, ang Enter sa ang keyboard, ang H ay pagpunta sa isa 424 00:20:40,530 --> 00:20:44,550 byte ng RAM, E ay ang pagpunta sa isa pang byte ng RAM, bilang ay 425 00:20:44,550 --> 00:20:45,800 ang natitirang bahagi ng salita. 426 00:20:45,800 --> 00:20:49,010 Kaya isipin ang kung ano ang nagawa naming upang gawin ang huling oras na ito ay. 427 00:20:49,010 --> 00:20:53,940 Hayaan akong sige at buksan ang file na tinatawag naming string.c, at pagkuhang muli 428 00:20:53,940 --> 00:20:56,860 na ito ay tumingin ng kaunti isang bagay na katulad nito. 429 00:20:56,860 --> 00:20:59,860 Hayaan akong talaga ibalik at baguhin ito sa eksaktong kung ano ang hitsura nito gaya ng, 430 00:20:59,860 --> 00:21:02,654 string haba ng s. 431 00:21:02,654 --> 00:21:04,560 >> Kaya tumingin sa mga programa dito. 432 00:21:04,560 --> 00:21:08,530 Kasama namin ang CS50 library kaya na maaari naming gamitin makakuha ng string. 433 00:21:08,530 --> 00:21:11,400 Kasama namin standard io.h upang maaari naming gamitin ang printf. 434 00:21:11,400 --> 00:21:13,580 Bakit mo kami isama string.h? 435 00:21:13,580 --> 00:21:16,980 Ito ay bagong sa Lunes. 436 00:21:16,980 --> 00:21:18,230 Kaya gusto naming string length. 437 00:21:18,230 --> 00:21:19,090 STR leng. 438 00:21:19,090 --> 00:21:21,470 Mga Tao nagpasya taon na ang nakaraan, sabihin lang maging maikli at malinaw. 439 00:21:21,470 --> 00:21:24,290 Sa halip na tumawag ito "string haba," sabihin call ito "STR leng" at hayaan ang 440 00:21:24,290 --> 00:21:28,540 mundo na figure out, at sa gayon ay ang kung ano ang aming makakuha ng access sa may string.h. 441 00:21:28,540 --> 00:21:29,390 >> Ito ay pamilyar na. 442 00:21:29,390 --> 00:21:30,320 Ito ay pamilyar na. 443 00:21:30,320 --> 00:21:31,450 Ito ay pamilyar na. 444 00:21:31,450 --> 00:21:32,370 Ito ay isang maliit na bago. 445 00:21:32,370 --> 00:21:35,420 Sa line 22 - at kami ay bumalik upang ito, ngunit sa ngayon alam - 446 00:21:35,420 --> 00:21:37,880 at gusto mo lamang malaman na ito mula sa pagkakaroon ng basahin ang mga babasahin o kung 447 00:21:37,880 --> 00:21:39,010 Alam mo na C - 448 00:21:39,010 --> 00:21:41,510 makakuha ng string minsan ay maaaring magtaas. 449 00:21:41,510 --> 00:21:45,130 Kung ang gumagamit ay talagang adversarial o uncooperative at siya lang 450 00:21:45,130 --> 00:21:49,450 Hindi type ng kahit ano sa keyboard o mga uri kaya magkano sa keyboard na 451 00:21:49,450 --> 00:21:53,760 ito overwhelms memory ang computer, sa teorya, kumuha ng string ay maaaring bumalik 452 00:21:53,760 --> 00:21:56,270 bagay maliban sa isang string ng mga character. 453 00:21:56,270 --> 00:22:01,930 Maaaring ito ay nagbabalik ng espesyal na halaga na tinatawag na Walang bisa sa lahat caps, N-U-L-L, at ito ay 454 00:22:01,930 --> 00:22:03,390 lamang ng isang tinaguriang halaga nagbabantay. 455 00:22:03,390 --> 00:22:08,010 Ito ay isang espesyal na halaga na Sumisimbolo isang bagay masamang nangyari sa kasong ito. 456 00:22:08,010 --> 00:22:10,520 Ito ay ang kawalan ng isang string. 457 00:22:10,520 --> 00:22:16,190 >> Kaya null Lalabas na ako para lamang sa gayon, mahaba kuwento maikli, STR leng at 458 00:22:16,190 --> 00:22:20,230 iba pang mga function na ay may C, kung Inaasahan nila ang isang string pero pumasa ka sa kanila 459 00:22:20,230 --> 00:22:23,630 ang kawalan ng isang string, kung pumasa ka null kanila, ang computer o ang programa 460 00:22:23,630 --> 00:22:25,000 ay lamang crash ng tahas. 461 00:22:25,000 --> 00:22:25,610 Ito ay mag-hang. 462 00:22:25,610 --> 00:22:27,250 Ito ay throw up ng ilang mga mensahe ng error. 463 00:22:27,250 --> 00:22:28,690 Masamang bagay ang mangyayari. 464 00:22:28,690 --> 00:22:31,130 Kaya kahit na ito ay pa rin hindi mahusay na tinukoy - 465 00:22:31,130 --> 00:22:33,730 ito ay gumawa ng higit pa pakiramdam sa isang linggo o dalawang - sa linya 22, na ito ay isa lamang 466 00:22:33,730 --> 00:22:38,790 halimbawa ng pagtatanggol sa sarili error checking kung sakali isa oras sa labas ng 467 00:22:38,790 --> 00:22:42,040 isang milyong isang bagay napupunta mali, sa hindi bababa sa aking mga programa ay hindi pag-crash. 468 00:22:42,040 --> 00:22:45,960 >> Kaya kung s ay hindi katumbas ng isang bagay na masama, Mayroon akong na ito para sa loop, at ito ay 469 00:22:45,960 --> 00:22:47,710 kung saan nagkaroon kami na ang ibang bagong piraso ng syntax. 470 00:22:47,710 --> 00:22:51,580 Mayroon akong para sa loop iterating mula sa sa zero hanggang sa ang haba ng s. 471 00:22:51,580 --> 00:22:56,140 At pagkatapos dito, ako ay isang pag-print out s i bracket, ngunit bakit ko bang gamitin% c lahat ng 472 00:22:56,140 --> 00:23:00,770 isang biglaang sa halip ng% s kahit na bagaman s ay isang string? 473 00:23:00,770 --> 00:23:02,110 Ito ay isang karakter, tama? 474 00:23:02,110 --> 00:23:06,560 S ay isang string, ngunit may mga bracket, s bracket i kung saan ay i zero 475 00:23:06,560 --> 00:23:10,380 o isa o dalawang, na ang isang indibidwal na character sa string, at kaya para sa 476 00:23:10,380 --> 00:23:14,970 na, printf Kailangang ma-alam na ito ay sa katunayan ng isang character ang aasahan. 477 00:23:14,970 --> 00:23:18,096 >> At pagkatapos ay isipin ang, ano ang ginawa ito programa talagang gawin? 478 00:23:18,096 --> 00:23:19,848 >> Naka-print out ito sa mga haligi. 479 00:23:19,848 --> 00:23:21,120 >> Oo, eksakto. 480 00:23:21,120 --> 00:23:24,990 Ito lang ang naka-print na mga salita na aking i-type sa isang hanay, sa isang character sa bawat linya. 481 00:23:24,990 --> 00:23:26,190 Kaya natin makita ito muli. 482 00:23:26,190 --> 00:23:27,810 Kaya gumawa ng string. 483 00:23:27,810 --> 00:23:30,200 Pinagsama-sama ang OK. . / String. 484 00:23:30,200 --> 00:23:35,560 Hayaan akong mag-type sa H-E-L-L-O, Magpasok, at sa katunayan ko na ito, isa sa bawat linya. 485 00:23:35,560 --> 00:23:37,280 >> Kaya ipaalam sa akin gawin isa-optimize dito. 486 00:23:37,280 --> 00:23:40,240 Kung sa tingin mo tungkol dito, lalo na kung mo na ang program bago, mayroong 487 00:23:40,240 --> 00:23:43,340 arguably isang kawalan ng kaalaman sa linya 24. 488 00:23:43,340 --> 00:23:46,160 Sa ibang salita, ito ay hindi kinakailangang ang pinakamahusay na disenyo. 489 00:23:46,160 --> 00:23:50,200 Ang diretsong, ng hindi bababa sa isang beses mo matandaan kung ano STR leng ay, subalit ito ay 490 00:23:50,200 --> 00:23:52,640 paggawa ng isang bagay pipi potensyal. 491 00:23:52,640 --> 00:23:54,863 Ano ang maaaring na maging? 492 00:23:54,863 --> 00:23:56,280 >> [Hindi marinig]. 493 00:23:56,280 --> 00:23:56,800 >> Mismong. 494 00:23:56,800 --> 00:24:00,340 Ito ay para sa pagsuri sa haba ng s bawat solong oras kahit na 495 00:24:00,340 --> 00:24:02,980 H-E-L-L-O ay palaging pagpunta upang maging limang mga character. 496 00:24:02,980 --> 00:24:05,490 Sa bawat oras na ito sa pamamagitan ng loop, ang lima ay hindi nagbabago. 497 00:24:05,490 --> 00:24:08,750 Baka ako incrementing ko, ngunit kung ano ay ang haba ng s sa bawat 498 00:24:08,750 --> 00:24:09,690 pag-ulit ng loop na ito? 499 00:24:09,690 --> 00:24:15,810 Ito ay limang ito, lima, ito ay limang, at gayunman pa ako ay humihingi ito 500 00:24:15,810 --> 00:24:18,320 tanong muli at muli at muli. 501 00:24:18,320 --> 00:24:20,750 Ngayon lantaran, ang computer ay kaya sumpain mabilis, walang sinuman ang nangyayari sa mapansin ang isang 502 00:24:20,750 --> 00:24:23,780 pagkakaiba sa kasong ito, ngunit mga ganitong uri ng hindi magandang mga desisyon disenyo maaari 503 00:24:23,780 --> 00:24:28,330 simulan upang magdagdag ng hanggang kung ang tagatala mismo hindi subukan upang ayusin ito para sa iyo kung aling mga 504 00:24:28,330 --> 00:24:30,630 ito ay karaniwang hindi gagawin, sa hindi bababa sa appliance. 505 00:24:30,630 --> 00:24:31,540 >> Kaya ako ng pagpunta sa gawin ito. 506 00:24:31,540 --> 00:24:34,580 Pupunta ako sa magdagdag ng isang comma pagkatapos ang aking unang variable, i. 507 00:24:34,580 --> 00:24:37,310 Pupunta ako sa sarili ko bibigyan ng isa pang variable, pagtawag ito n, sa pamamagitan lamang ng 508 00:24:37,310 --> 00:24:41,330 convention para sa mga numero, at pagkatapos ay ako pagpunta sa italaga n ang halaga ng string 509 00:24:41,330 --> 00:24:42,530 haba ng s. 510 00:24:42,530 --> 00:24:46,060 At pagkatapos ay ako pagpunta sa baguhin ang aking kondisyon na maging ano? 511 00:24:46,060 --> 00:24:51,960 Pupuntahan ko babaguhin ang aking kondisyon habang upang i Mababa sa n. 512 00:24:51,960 --> 00:24:55,700 >> Kaya ngayon, kung gaano karaming beses ako check ang haba ng s? 513 00:24:55,700 --> 00:25:00,110 Sa sandaling, ngunit ito ay ang OK upang i-check laban sa n muli at muli ngayon dahil sa mga 514 00:25:00,110 --> 00:25:03,170 halaga ay hindi tunay na nagbabago. 515 00:25:03,170 --> 00:25:06,020 Ngayon para sa ngayon, lamang malaman na ang anumang oras mo tumawag sa isang function, mayroong isang bit ng 516 00:25:06,020 --> 00:25:09,930 overhead, hindi sapat upang pahinain ang loob sa iyo talaga mula sa kailanman gamit ang pag-andar, ngunit 517 00:25:09,930 --> 00:25:12,750 tiyak kapag mayroong isang linya ng code nais na - at ang mga linya ay makakakuha ng 518 00:25:12,750 --> 00:25:15,490 mas kawili-wiling bago mahaba - kung saan mayroong isang pagkakataon upang mag-isip, kung ako 519 00:25:15,490 --> 00:25:18,320 i-type ang code na ito, kung gaano karaming beses ay isakatuparan ito? 520 00:25:18,320 --> 00:25:20,950 Magsisimula ka upang makita sa paglipas ng panahon ang pagganap ng iyong mga programa maaari 521 00:25:20,950 --> 00:25:21,660 talagang baguhin. 522 00:25:21,660 --> 00:25:24,110 >> Sa katunayan, ang isa sa mga problema Nagtatakda na namin tapos na sa nakalipas na taon ay nagsasangkot 523 00:25:24,110 --> 00:25:27,600 pagpapatupad, bilang maaari mong isipin ang mula sa linggo zero, isang spell checker, ngunit isang 524 00:25:27,600 --> 00:25:31,380 oras ng paggawa checker na dinisenyo upang suportahan ang isang diksyunaryo ng 150,000 plus 525 00:25:31,380 --> 00:25:32,860 mga salita na kami magbibigay sa iyo ng guys. 526 00:25:32,860 --> 00:25:37,100 Gusto mong mag-isulat ang code na naglo-load mga salitang iyon sa RAM, kaya sa 527 00:25:37,100 --> 00:25:40,700 mga kahon tulad ng nakita natin sa screen ng sandali ang nakalipas, at pagkatapos ay mas mabilis hangga't sa iyo 528 00:25:40,700 --> 00:25:43,740 maaari, kailangan mong magawang sagutin ang isang tanong ng form, ay ang salitang ito 529 00:25:43,740 --> 00:25:44,280 tamang spelling? 530 00:25:44,280 --> 00:25:45,420 Ay salitang ito tamang spelling? 531 00:25:45,420 --> 00:25:46,770 Ay salitang ito tamang spelling? 532 00:25:46,770 --> 00:25:49,525 >> At sa isang bagay tulad na kung ano na namin tapos na sa nakalipas na taon ay nakabukas ito sa, 533 00:25:49,525 --> 00:25:53,500 kahit na sa isang opt-in opsyonal na batayan, isang kumpetisyon ng uri, kung saan ang 534 00:25:53,500 --> 00:25:59,470 mag-aaral na gumagamit ng mas mababa RAM at mas mababa oras, mas kaunting mga cycle CPU, magtapos up 535 00:25:59,470 --> 00:26:02,640 bulubok up sa tuktok ng isang maliit na lider board o ranking na aming inilagay sa 536 00:26:02,640 --> 00:26:04,770 homepage ng kurso bilang na namin tapos na sa nakalipas na taon. 537 00:26:04,770 --> 00:26:08,100 Kaya muli, lubos opsyonal, ngunit ito Binabanggit sa mga pagkakataon sa disenyo 538 00:26:08,100 --> 00:26:11,250 na mas maaga sa oras na magsimula namin pagbuo nasa ibabaw ang ilan sa mga 539 00:26:11,250 --> 00:26:14,010 pangunahing gusali ng mga bloke. 540 00:26:14,010 --> 00:26:16,780 >> Kaya hayaan mo akong bumalik sa diagram na ito para sa sandali lamang at magbunyag ng kaunti 541 00:26:16,780 --> 00:26:17,610 isang bagay na mas. 542 00:26:17,610 --> 00:26:21,400 Ito talaga ay isang string, at nagsagawa kami ng kalamangan ng ilang mga aklatan, 543 00:26:21,400 --> 00:26:25,150 standard io.h na may - 544 00:26:25,150 --> 00:26:26,110 >> Printf. 545 00:26:26,110 --> 00:26:27,860 >> Printf, bukod sa iba pang mga bagay. 546 00:26:27,860 --> 00:26:31,540 cs50.h, na kung saan ay makakakuha ng int at kumuha ng string at iba pa, string.h, na 547 00:26:31,540 --> 00:26:32,570 Nagkaroon STR leng. 548 00:26:32,570 --> 00:26:34,800 Ngunit ito lumiliko out mayroong isa pang. 549 00:26:34,800 --> 00:26:38,540 Nang tapat, mayroong maraming at maraming mga header mga file na magpahayag ng mga function 550 00:26:38,540 --> 00:26:43,320 para sa mga aklatan, ngunit ito ay ctype.h talagang pagpunta na medyo 551 00:26:43,320 --> 00:26:46,900 makabubuti ito dahil ako pupunta upang magpatuloy at ipatupad isa 552 00:26:46,900 --> 00:26:48,120 iba pang mga programa dito. 553 00:26:48,120 --> 00:26:52,420 >> Hayaan akong sige at buksan up ng isang bagay Ako ay sumulat ng mas maaga na tinatawag na 554 00:26:52,420 --> 00:26:55,750 capitalize.c, at sabihin tumagal isang pagtingin sa kung paano ito gumagana. 555 00:26:55,750 --> 00:27:00,340 Pansinin na gumagamit ako, sa ang bersyon na ito ng mga ito, tatlong pamilyar na mga file. 556 00:27:00,340 --> 00:27:04,110 Pansinin na sa linya 18, ako pagkuha ng isang linya ng teksto. 557 00:27:04,110 --> 00:27:07,660 Abiso sa linya 21, ako nagke-claim na ang sumusunod na code ay pagpunta sa 558 00:27:07,660 --> 00:27:12,170 sulatin sa malaking titik s, kahit anong user ang nag-type sa, at kung paano ako paggawa na? 559 00:27:12,170 --> 00:27:13,300 Well, ako paglalaan - 560 00:27:13,300 --> 00:27:14,750 aralin natutunan mula sa huling oras - 561 00:27:14,750 --> 00:27:18,370 Ako deklarasyon at i n at iterating sa ibabaw ng mga character sa string. 562 00:27:18,370 --> 00:27:22,720 At pagkatapos ay kung ano ang bloke ng code sa linya 24 sa pamamagitan ng 27 563 00:27:22,720 --> 00:27:24,550 paggawa sa mga tuntunin lego ni? 564 00:27:24,550 --> 00:27:27,766 565 00:27:27,766 --> 00:27:29,730 >> Maliit na titik sulat pabalik. 566 00:27:29,730 --> 00:27:30,430 >> Mismong. 567 00:27:30,430 --> 00:27:35,920 Kung s bracket i - kaya kung ang i-ika katangian ng mga, na kung saan ay isang partikular na 568 00:27:35,920 --> 00:27:40,220 pansamantalang trabaho sa string, ay mas malaki sa o katumbas ng lowercase at - 569 00:27:40,220 --> 00:27:42,670 isipin ang na double ampersand maging tanda at - 570 00:27:42,670 --> 00:27:46,810 at ang parehong mga katangian, mga bracket ko, ay mas mababa sa o katumbas ng lowercase z, 571 00:27:46,810 --> 00:27:50,600 na nangangahulugan na ito ay isang isang o isang b o a c o tuldok, tuldok, tuldok, o isang z, na nangangahulugang 572 00:27:50,600 --> 00:27:51,340 ito ay lowercase. 573 00:27:51,340 --> 00:27:52,900 Ano ang gusto kong gawin sa kasong iyon? 574 00:27:52,900 --> 00:27:55,010 Well, maaari kong gawin ito medyo cryptically, ngunit 575 00:27:55,010 --> 00:27:56,160 sabihin mang-ulol-hatiin ito. 576 00:27:56,160 --> 00:28:00,210 >> Pupunta ako sa call printf, mga Kopya% c dahil gusto kong i-print muli ito 577 00:28:00,210 --> 00:28:01,580 na character sa screen. 578 00:28:01,580 --> 00:28:06,650 Pagkatapos ay ako pagpunta sa tumagal ng mga bracket i, ang i-ika-character sa s, at pagkatapos ay kung bakit 579 00:28:06,650 --> 00:28:12,330 ako ginagawa ito maliit na bilis ng kamay dito, lowercase ng minus A kabisera? 580 00:28:12,330 --> 00:28:16,352 Ano ay na pagpunta sa bigyan sa akin, sa pangkalahatan ay nagsasalita? 581 00:28:16,352 --> 00:28:18,600 >> [Hindi marinig]. 582 00:28:18,600 --> 00:28:19,390 >> Mismong. 583 00:28:19,390 --> 00:28:20,860 Hindi ko talaga matandaan - 584 00:28:20,860 --> 00:28:24,390 ito ay 65 para sa capital A. gawin ko hindi talaga matandaan kung ano lowercase isang ay, 585 00:28:24,390 --> 00:28:25,540 ngunit hindi mahalaga. 586 00:28:25,540 --> 00:28:26,580 Ang computer na nakakaalam. 587 00:28:26,580 --> 00:28:30,380 Kaya sa pamamagitan ng sinasabi, lowercase ng minus capital A, ito ay kakaiba upang maging 588 00:28:30,380 --> 00:28:33,530 pagbabawas isang pansamantalang trabaho mula sa isa pang, ngunit kung ano ang mga karakter sa ilalim ng hood? 589 00:28:33,530 --> 00:28:34,520 Ang mga ito ay mga numero lamang. 590 00:28:34,520 --> 00:28:36,980 Kaya kahit anong mga numerong ito ay, hayaan ang computer matandaan ito 591 00:28:36,980 --> 00:28:38,240 sa halip na sa akin ang mga tao. 592 00:28:38,240 --> 00:28:41,710 >> Kaya lowercase ng minus capital A ay pagpunta sa bigyan ako ng isang pagkakaiba. 593 00:28:41,710 --> 00:28:45,370 Ito ay nangyayari na maging 32, at iyon ay magiging ang kaso para sa maliit na mga b at capital B 594 00:28:45,370 --> 00:28:45,930 at iba pa. 595 00:28:45,930 --> 00:28:47,710 Ito ay nananatiling pare-pareho, thankfully. 596 00:28:47,710 --> 00:28:51,930 Kaya mahalagang ako sinasabi, gawin ang lowercase letter, ibabawas off na 597 00:28:51,930 --> 00:28:55,340 standard pagkakaiba, at na epektibong mga pagbabago s bracket i mula sa 598 00:28:55,340 --> 00:28:59,400 lowercase na, siyempre, malalaki, nang wala ang aking talagang nagkakaproblema sa tingin 599 00:28:59,400 --> 00:29:03,040 o tungkol sa Tandaan, ano ang mga iyon mga numero ng usapan natin ang tungkol sa kapag ang walong 600 00:29:03,040 --> 00:29:04,800 boluntaryo ay dumating up sa entablado? 601 00:29:04,800 --> 00:29:08,800 Ngayon samantala, sa ibang tao, kung ito ay hindi isang maliit na mga titik tulad ng natukoy 602 00:29:08,800 --> 00:29:10,400 sa pamamagitan ng line 24, lamang i-print ito. 603 00:29:10,400 --> 00:29:12,590 Gusto ko lang i-pindutin ang mga character na 604 00:29:12,590 --> 00:29:14,410 tunay na orihinal na lowercase. 605 00:29:14,410 --> 00:29:15,150 >> Kaya natin makita ito. 606 00:29:15,150 --> 00:29:17,400 Gumawa ng sulatin sa malaking titik. 607 00:29:17,400 --> 00:29:18,470 Pinagsama-sama, ang OK. 608 00:29:18,470 --> 00:29:19,730 . / Sulatin sa malaking titik. 609 00:29:19,730 --> 00:29:23,530 At hayaan mo akong mag-type sa H-E-L-L-O sa lowercase, ang Enter. 610 00:29:23,530 --> 00:29:26,370 At mapapansin na ito ay nai-convert sa uppercase. 611 00:29:26,370 --> 00:29:27,940 Hayaan ang gawin sa akin ito muli gamit sa ibang salita. 612 00:29:27,940 --> 00:29:32,720 Paano tungkol sa D-A-V-ko-D sa unang D malaking titik bilang isang karaniwang pangalan ay? 613 00:29:32,720 --> 00:29:33,560 Enter. 614 00:29:33,560 --> 00:29:34,870 Pansinin pa ito sa tama. 615 00:29:34,870 --> 00:29:40,250 Ito lamang outputted na muna D hindi nagbabago sa pamamagitan ng ibang tao na bumuo. 616 00:29:40,250 --> 00:29:42,170 >> Kaya tandaan, pagkatapos, isang dalawang bagay dito. 617 00:29:42,170 --> 00:29:45,060 One, kung sakaling gusto mong tingnan ang dalawang kundisyon nang sabay-sabay, maaari mong at ang mga ito 618 00:29:45,060 --> 00:29:46,500 magkasama bilang namin hinulaang. 619 00:29:46,500 --> 00:29:49,900 Maaari mong ihambing ang mga character sa paraang ito at mabisa tinatrato ang mga character na bilang 620 00:29:49,900 --> 00:29:53,050 mga numero, ngunit lantaran, ito ay kaya sumpain misteriyoso hindi kailanman pupuntahan ko matandaan 621 00:29:53,050 --> 00:29:56,510 kung paano makabuo ng mga ito mula sa simula walang nagpapasiya sa pamamagitan nito para sa lubos 622 00:29:56,510 --> 00:29:57,140 ng kaunting oras. 623 00:29:57,140 --> 00:30:00,590 >> Hindi ba ito naging maganda kung may isang taong out doon ay nagsulat ng isang function na tinatawag ay 624 00:30:00,590 --> 00:30:05,390 babaan na maaaring sagutin para sa akin totoo o hindi totoo, na character na ito ay lowercase? 625 00:30:05,390 --> 00:30:09,350 Well thankfully, kung sinuman ang nagsulat ctype.h ginawa eksakto na. 626 00:30:09,350 --> 00:30:15,540 Hayaan akong pumunta up dito at magdagdag ctype para sa c uri, at ngayon hayaan mo akong pumunta down na dito at 627 00:30:15,540 --> 00:30:18,820 muling isulat ang linya na ito bilang mga sumusunod. 628 00:30:18,820 --> 00:30:27,510 >> Kaya kung ang tawag dito ay mas mababa, inaangkin ko, s bracket ko, pagkatapos pupuntahan ko tanggalin 629 00:30:27,510 --> 00:30:29,400 mga dalawang linya nang sama-sama. 630 00:30:29,400 --> 00:30:32,570 Kaya ngayon ibang tao, ako umaasa, nagsulat isang function na tinatawag ay mas mababa, at ito 631 00:30:32,570 --> 00:30:36,250 liko out ang kanilang ginawa at ipinahayag nila ito sa loob ng ctype.h. 632 00:30:36,250 --> 00:30:39,480 At ngayon ako pagpunta sa umalis linya 27 nag-iisa, pupuntahan ko umalis linya 31 633 00:30:39,480 --> 00:30:41,890 mag-isa, ngunit napansin kung magkano nag ako tightened up ang aking code. 634 00:30:41,890 --> 00:30:42,690 Ngayon ay mas malinis. 635 00:30:42,690 --> 00:30:47,250 Ito ay mas mahirap upang tumingin sa pamamagitan ng dahil ngayon ang function, bukod doon, ay 636 00:30:47,250 --> 00:30:50,080 kaya kamangha-mangha na may pangalang ito lamang ginagawa kung ano ang sinasabi nito. 637 00:30:50,080 --> 00:30:51,520 >> Kaya ngayon ako pagpunta sa i-save ito. 638 00:30:51,520 --> 00:30:52,930 Pupunta ako upang mag-zoom out. 639 00:30:52,930 --> 00:30:56,650 At tulad sa scratch maaari kang magkaroon ng Booleans, Boolean halaga o totoo 640 00:30:56,650 --> 00:31:01,530 hindi totoo, na eksakto kung ano ang babaan epektibo returns. 641 00:31:01,530 --> 00:31:02,960 Hayaan akong mag-recompile. 642 00:31:02,960 --> 00:31:04,500 Hayaan akong re-run. 643 00:31:04,500 --> 00:31:07,350 At ngayon sabihin subukan ito muli, H-E-L-L-O, Enter. 644 00:31:07,350 --> 00:31:07,970 Iyon ay medyo magandang. 645 00:31:07,970 --> 00:31:10,150 At subukan ito muli, siguraduhin na ako Hindi tornilyo isang bagay up. 646 00:31:10,150 --> 00:31:11,670 Iyon ay sa malaking titik pati na rin. 647 00:31:11,670 --> 00:31:14,190 >> Ngunit ito ay hindi sapat na mahusay na dahil ang iba pang mga bagay na hindi kailanman pupuntahan ko 648 00:31:14,190 --> 00:31:19,090 matandaan maliban kung gumana ko sa pamamagitan nito talaga Maingat sa, sabihin nating, papel ay 649 00:31:19,090 --> 00:31:19,920 ito sumpain linya. 650 00:31:19,920 --> 00:31:23,450 Hindi ba ito maging maganda kung mayroong isang function na tinatawag na sa itaas? 651 00:31:23,450 --> 00:31:26,930 Well ito lumiliko out doon ay nasa ctype.h pati na rin. 652 00:31:26,930 --> 00:31:30,150 Pupunta ako sa sige at i-type - 653 00:31:30,150 --> 00:31:31,340 hayaan mo akong dalhin ang linyang iyon pabalik. 654 00:31:31,340 --> 00:31:36,430 Sa halip na ito dito, sabihin sa akin sige at sinasabi, halangan ang% c ang 655 00:31:36,430 --> 00:31:42,110 resulta ng pagtawag sa function na ito upang itaas sa i-ika-character ng s. 656 00:31:42,110 --> 00:31:45,430 At ngayon mapansin nakakakuha ito ng isang maliit na balanse. 657 00:31:45,430 --> 00:31:48,870 Mayroon akong upang masubaybayan kung gaano karaming panaklong ko iyong binuksan at sarado. 658 00:31:48,870 --> 00:31:50,050 >> Kaya ngayon ito ay kahit na mas malinis. 659 00:31:50,050 --> 00:31:53,460 Ngayon programa na ito ay nakakakuha ng mas mahusay na at mas mahusay na dinisenyo arguably dahil ito ay 660 00:31:53,460 --> 00:31:56,450 magkano, magkano ang mas nababasa ngunit hindi ito sabihin itama. 661 00:31:56,450 --> 00:31:57,600 Gumawa ng sulatin sa malaking titik. 662 00:31:57,600 --> 00:31:58,930 . / Sulatin sa malaking titik. 663 00:31:58,930 --> 00:32:03,220 H-E-L-L-O. Sabihin patakbuhin itong muli, D-A-V-ko-D. OK, sa gayon pa rin kami sa 664 00:32:03,220 --> 00:32:04,250 medyo magandang hugis. 665 00:32:04,250 --> 00:32:06,030 >> Ngunit ngayon sa itaas. 666 00:32:06,030 --> 00:32:09,720 Ipanukala ko na may isa pa refinement kami maaaring magsagawa ng iyon ay magiging 667 00:32:09,720 --> 00:32:12,820 talagang maganda, na maaaring talagang higpitan up ang code na ito at talagang bigyan kami ng limang 668 00:32:12,820 --> 00:32:15,150 out sa lima para sa disenyo, halimbawa. 669 00:32:15,150 --> 00:32:16,510 Ano ang gusto maging mabait sa mapupuksa ang? 670 00:32:16,510 --> 00:32:20,770 Well, tingnan kung paano sumpain mahaba ang bloke ng code ay lamang na gawin ng isang bagay. 671 00:32:20,770 --> 00:32:23,850 >> Ngayon bilang isang bukod, bilang na maaaring mayroon ka nakikita sa sobrang seksyon nakalipas na ito 672 00:32:23,850 --> 00:32:27,570 katapusan ng linggo, hindi mo kailangang mahigpit na kailangan ang kulot tirante kapag ikaw lamang magkaroon ng isa 673 00:32:27,570 --> 00:32:32,180 linya ng code, kahit kami ipinanukala pinapanatili ang mga ito upang ito ay ginagawang mas 674 00:32:32,180 --> 00:32:36,190 mas malinaw, tulad ng sa scratch ni U-hugis bloke, kung ano ang nasa loob ng mga sanga. 675 00:32:36,190 --> 00:32:40,170 Ngunit hindi magiging maganda kung sa itaas, kapag ibinigay na input nito, naka-on ito sa 676 00:32:40,170 --> 00:32:44,730 uppercase kung hindi, at kung ano ang gagawin maging kahanga-hanga sa tapat kaso kung 677 00:32:44,730 --> 00:32:47,210 ito ay nasa uppercase? 678 00:32:47,210 --> 00:32:49,620 Lamang pumasa ito sa pamamagitan ng at iwanan ito nang nag-iisa. 679 00:32:49,620 --> 00:32:50,660 >> Kaya siguro ginagawa nito iyon. 680 00:32:50,660 --> 00:32:52,990 Kaya kong subukan at umaasa lamang na ito, ngunit hayaan mo akong 681 00:32:52,990 --> 00:32:54,450 ipakilala ang isa iba pang mga bagay. 682 00:32:54,450 --> 00:32:57,440 Sa halip na gamitin ang built-in na terminal down na window dito, isipin ang na 683 00:32:57,440 --> 00:33:01,130 ito square icon itim ay nagbibigay sa iyo ng isang mas malaking terminal na window na maaari kong full 684 00:33:01,130 --> 00:33:02,260 screen kung gusto ko? 685 00:33:02,260 --> 00:33:05,820 Kaya ito lumiliko out ang mga ito ay uri ng mga nang kakatwa pinangalanan, ngunit mayroong mga bagay na ito na tinatawag na 686 00:33:05,820 --> 00:33:10,970 tao pahina, manu-manong mga pahina, ang tao para sa maikling, at ang maaari kong i-access ito sa pamamagitan ng 687 00:33:10,970 --> 00:33:14,515 pag-type ng tao - 688 00:33:14,515 --> 00:33:15,570 kung ano ang gusto kong i-type? 689 00:33:15,570 --> 00:33:17,830 Man sa itaas. 690 00:33:17,830 --> 00:33:21,090 >> At ngayon mapansin kung mayroong isang umiiral gumana sa loob ng mga computer, sa 691 00:33:21,090 --> 00:33:23,970 kasong ito ang appliance, na kung saan ay lamang sa operating system ng Linux, ito ay pagpunta 692 00:33:23,970 --> 00:33:27,920 upang bigyan ako ng isang medyo misteriyoso hanay ng mga output, ngunit makikita mo ang paglipas ng panahon na 693 00:33:27,920 --> 00:33:31,720 ito laging na-format ang medyo magkano ang parehong kaya simulan mo upang masanay ito. 694 00:33:31,720 --> 00:33:35,130 Pansinin sa tuktok upang itaas, at wari ay pareho dokumentasyon 695 00:33:35,130 --> 00:33:35,680 para sa babaan. 696 00:33:35,680 --> 00:33:38,740 Kung sinuman ang nagsulat nito ay paggupit ilang kanto at ilagay ang lahat ng ito sa isang pahina. 697 00:33:38,740 --> 00:33:40,720 Ang mga bagay na 'layunin sa buhay ay ang pag-convert ang isang 698 00:33:40,720 --> 00:33:42,780 sulat sa itaas o lowercase. 699 00:33:42,780 --> 00:33:46,290 >> Pansinin na sa ilalim ng Buod, ang tao pahina ay nagturo sa akin kung ano ang file na mayroon akong 700 00:33:46,290 --> 00:33:48,130 upang isama ang upang magamit ang bagay. 701 00:33:48,130 --> 00:33:51,320 Ito ay nagbibigay sa akin ang mga lagda para sa mga pag-andar, pareho ng mga ito, kahit na 702 00:33:51,320 --> 00:33:53,510 bagaman kami ngayon lamang nagmamalasakit tungkol sa isa. 703 00:33:53,510 --> 00:33:54,730 Narito ngayon ang isang paglalarawan. 704 00:33:54,730 --> 00:33:58,800 Upang itaas na-convert ang titik c sa uppercase kung maaari. 705 00:33:58,800 --> 00:34:02,280 >> Hindi pa rin na may itinuturo, ngunit hayaan mo akong ngayon tumingin sa ilalim ng return na halaga, ang mga bagay 706 00:34:02,280 --> 00:34:03,520 na ipinasa pabalik. 707 00:34:03,520 --> 00:34:08,600 Kaya ang halaga ay ibinalik na ng convert na titik o c kung ang 708 00:34:08,600 --> 00:34:09,870 conversion ay hindi posible. 709 00:34:09,870 --> 00:34:11,202 Ano ang c? 710 00:34:11,202 --> 00:34:12,560 >> Ang orihinal na karakter. 711 00:34:12,560 --> 00:34:15,370 >> Ang orihinal na katangian at alam namin na sa pamamagitan ng, muli, pagpunta hanggang sa ang 712 00:34:15,370 --> 00:34:19,179 buod, at kung sinuman ang nagsulat na ito function na lamang nagpasya na ang pag-input 713 00:34:19,179 --> 00:34:22,909 upang sa itaas at sa mas mababa lamang ang mang pagpunta sa tawagin c. 714 00:34:22,909 --> 00:34:24,909 Maaari nilang na tinatawag na ito pinaka-anumang bagay gusto nila, ngunit sila ay iningatan ito 715 00:34:24,909 --> 00:34:26,270 simpleng bilang c. 716 00:34:26,270 --> 00:34:27,880 Kaya ko na consulted ang tao pahina. 717 00:34:27,880 --> 00:34:31,870 Pangungusap na ito ay sinisigurado na sa akin kung ito ay hindi isang maliit na mga titik na ito, 718 00:34:31,870 --> 00:34:34,969 pagpunta sa makatarungan bigyan ako pabalik c, na siyang perpekto, na nangangahulugan na maaari ko mapupuksa ang 719 00:34:34,969 --> 00:34:36,199 ang aking mga tao na kondisyon. 720 00:34:36,199 --> 00:34:39,679 >> Kaya hayaan mo akong bumalik sa GEdit, at ngayon hayaan mo akong lamang gawin ito. 721 00:34:39,679 --> 00:34:41,960 Pupunta ako upang kopyahin ang aking printf statement. 722 00:34:41,960 --> 00:34:45,969 Pupunta ako sa sige at sa loob mismo ng ang para sa loop na pag-print out, at makakuha 723 00:34:45,969 --> 00:34:48,760 alisan ito ngayon buo kung tayuan. 724 00:34:48,760 --> 00:34:51,860 Ay hindi isang masamang ideya, at ito ay napaka magkano ang tama at pare-pareho sa 725 00:34:51,860 --> 00:34:54,100 ang lahat ng bagay na namin ipinangaral, ngunit hindi lamang ang kinakailangan. 726 00:34:54,100 --> 00:34:57,070 Sa lalong madaling mapagtanto mo ang ilang mga library function na ay umiiral na ibang tao 727 00:34:57,070 --> 00:35:01,340 Nagsulat, o marahil ay sumulat ka sa ibang lugar sa ang file, maaari mo itong gamitin at talagang 728 00:35:01,340 --> 00:35:02,690 simulan upang higpitan ang mga code. 729 00:35:02,690 --> 00:35:06,080 >> At kapag sinabi ko ang mga bagay tulad ng mahusay na estilo, ang katotohanan na ang taong ito ay tinatawag na 730 00:35:06,080 --> 00:35:11,490 gumana sa itaas, o dati ay mas mababa ay kamangha-mangha kapaki-pakinabang dahil 731 00:35:11,490 --> 00:35:12,900 ang mga ito ay masyadong mapaglarawan. 732 00:35:12,900 --> 00:35:16,120 Hindi mo gugustuhing upang tawagan ang iyong mga function x at y at z, kung saan ay mayroon 733 00:35:16,120 --> 00:35:19,620 magkano, higit na mas mababa kahulugan. 734 00:35:19,620 --> 00:35:25,160 Anumang mga katanungan na sa serye ng mga pagpapabuti? 735 00:35:25,160 --> 00:35:28,010 >> Kaya magkasiya ito upang sabihin ang isa sa mga takeaways ay kahit na bilang iyong sariling problema 736 00:35:28,010 --> 00:35:30,960 set - siguro problema sa hanay ng isa, ngunit tiyak P itakda dalawa at pasulong, kahit na 737 00:35:30,960 --> 00:35:34,380 kapag ikaw ay tama ang mga ito ay hindi kinakailangang ibig sabihin ang mga ito ay perpekto lamang 738 00:35:34,380 --> 00:35:36,155 pa o partikular na mahusay na dinisenyo. 739 00:35:36,155 --> 00:35:38,420 Iyan ang iba pang axis sa simulan ang pag-iisip tungkol sa. 740 00:35:38,420 --> 00:35:41,730 Kaya ito ay isang string sa loob ng iyong computer memory, ngunit kung mayroon kang isang 741 00:35:41,730 --> 00:35:46,180 buong bungkos ng mga character tulad ng H-E-L-L-O sa loob ng RAM, at ipagpalagay 742 00:35:46,180 --> 00:35:51,330 na sa iyo sa iyong mga programa tumawag makakuha ng string maraming beses na tulad mo 743 00:35:51,330 --> 00:35:54,200 tumawag makakuha ng string sabay-sabay, pagkatapos ay sa iyo tumawag makakuha ng string muli. 744 00:35:54,200 --> 00:35:55,880 Well, kung ano ang nangyayari sa mangyari sa paglipas ng panahon? 745 00:35:55,880 --> 00:35:59,170 >> Sa ibang salita, kung mayroon kang isang linya ng code, kahit na nasa labas ng konteksto, tulad ng 746 00:35:59,170 --> 00:36:02,120 string s ay nakakakuha - 747 00:36:02,120 --> 00:36:02,960 natin gawin ito. 748 00:36:02,960 --> 00:36:05,270 String pangalan ay katumbas makakuha ng string. 749 00:36:05,270 --> 00:36:08,590 Kaya ipagpalagay na linya ng code ay sinadya upang hilingin sa gumagamit para sa kanyang pangalan. 750 00:36:08,590 --> 00:36:14,580 Ang susunod na linya ng code ay sinadya upang tanungin ang mga gumagamit para sa kanyang paaralan, at 751 00:36:14,580 --> 00:36:15,920 ito susunod na linya, at iba pa. 752 00:36:15,920 --> 00:36:18,150 Ipagpalagay na panatilihin kami nagtatanong ang mga gumagamit para sa iba at ang 753 00:36:18,150 --> 00:36:19,750 isa pa at ng isa pang string. 754 00:36:19,750 --> 00:36:22,390 Ang mga ito ay pagpunta upang manatili sa memory sa parehong oras. 755 00:36:22,390 --> 00:36:24,280 Hindi isa ay pagpunta sa gumulpi sa iba pa. 756 00:36:24,280 --> 00:36:26,420 Paaralan ay hindi patungan ang iba pang mga. 757 00:36:26,420 --> 00:36:28,520 Ngunit kung saan ginagawa nila ang lahat ng hantungan memory? 758 00:36:28,520 --> 00:36:32,030 >> Well, kung sinimulan namin upang gumuhit sa screen, kung saan maaari naming gamitin ito bagay 759 00:36:32,030 --> 00:36:35,800 dito tulad ng isang Chalkboard, kung ito itim Kinakatawan ng parihaba ng aking computer 760 00:36:35,800 --> 00:36:39,800 memorya, pupuntahan ko mang simulan paghahati nito hanggang sa maliit na kuwadrado, 761 00:36:39,800 --> 00:36:42,120 sa bawat isa sa kung saan ay kumakatawan isa byte ng memorya. 762 00:36:42,120 --> 00:36:46,560 Nang tapat, kung mayroon kang isang gigabyte ng RAM mga araw na ito, mayroon kang isang bilyong bytes 763 00:36:46,560 --> 00:36:49,540 ng memorya sa iyong computer, kaya isang bilyong ng mga parisukat. 764 00:36:49,540 --> 00:36:52,110 Kaya magkasiya ito upang sabihin, ito ay hindi talaga sa scale. 765 00:36:52,110 --> 00:36:58,250 >> Ngunit maaari naming panatilihin ang pagguhit ng lahat ng mga malinaw na hindi upang masukat ang kuwadrado, at ito 766 00:36:58,250 --> 00:37:01,260 kapag pinagsama-sama ay kumakatawan memorya ng aking computer. 767 00:37:01,260 --> 00:37:03,136 Ngayon lang namin gawin tuldok, tuldok, tuldok. 768 00:37:03,136 --> 00:37:06,260 Kaya sa ibang salita, kapag ako ngayong i-prompt ang gumagamit na may get string upang bigyan ako ng isang 769 00:37:06,260 --> 00:37:07,350 string, ano ang mangyayari? 770 00:37:07,350 --> 00:37:14,270 Kung gumagamit ang mga uri sa "kumusta," na nagtatapos up sa H-E-L-L-O. Ngunit ipagpalagay na ang 771 00:37:14,270 --> 00:37:15,720 gumagamit pagkatapos ay sa mga uri - 772 00:37:15,720 --> 00:37:17,250 talaga, hindi ko dapat nagawa na kumusta dahil hinihiling namin sa 773 00:37:17,250 --> 00:37:18,330 ang mga ito para sa kanilang mga pangalan. 774 00:37:18,330 --> 00:37:20,580 So sabihin bumalik kung maaari kong gawin ito. 775 00:37:20,580 --> 00:37:26,130 >> Kaya kung nagta-type ako sa D-A-V-ko-D para sa aking pangalan, ngunit isipin ang na pangalawang linya ng 776 00:37:26,130 --> 00:37:29,220 code ay makakuha ng string muli upang makuha ang kanilang paaralan. 777 00:37:29,220 --> 00:37:32,090 Saan ang salita na iyon ang user mga uri sa pagpunta sa pumunta susunod? 778 00:37:32,090 --> 00:37:38,290 Well, marahil ito ay pagpunta sa pumunta sa H-A-R-V-A-R-D. Kaya kahit na nag ako 779 00:37:38,290 --> 00:37:41,560 iginuhit na ito bilang dalawang mga hanay, ito lamang ang ang maramihang mga bytes sa iyong 780 00:37:41,560 --> 00:37:42,710 computer RAM. 781 00:37:42,710 --> 00:37:46,560 Mayroong isang problema sa ngayon dahil ngayon kung ako paggamit ng RAM ito sa napaka-makatwirang 782 00:37:46,560 --> 00:37:49,910 ngunit ang uri ng mga walang muwang paraan, kung ano ang maaari mong hindi makilala sa mukha? 783 00:37:49,910 --> 00:37:52,640 784 00:37:52,640 --> 00:37:54,680 Kung saan ang isa ay nagsisimula at saan isa dulo, tama? 785 00:37:54,680 --> 00:37:55,860 Ang mga ito ay uri ng blurring magkasama. 786 00:37:55,860 --> 00:37:57,920 >> Kaya ito lumiliko out ang computer ay hindi gawin ito. 787 00:37:57,920 --> 00:38:04,720 Hayaan akong talaga mag-scroll pabalik sa panahon ng ilang mga character, at sa halip ng Harvard 788 00:38:04,720 --> 00:38:09,570 pagpunta agad pagkatapos ng pangalan ng gumagamit, ang user ay makakakuha talaga, sa likod ng 789 00:38:09,570 --> 00:38:12,000 ng mga pangyayari, ang isang espesyal na character ipinasok sa pamamagitan ng mga 790 00:38:12,000 --> 00:38:13,885 computer para sa kanya. 791 00:38:13,885 --> 00:38:19,470 / 0, kung hindi, na kilala bilang ang nul na character annoyingly tinatawag na N-U-L, hindi 792 00:38:19,470 --> 00:38:22,190 N-U-L-L, ngunit isulat mo ito bilang / 0. 793 00:38:22,190 --> 00:38:27,130 Ito ay lamang ang lahat ng zero bits ay isang marker sa sa pagitan ng mga unang salita na ng gumagamit 794 00:38:27,130 --> 00:38:28,290 nai-type at ang pangalawang. 795 00:38:28,290 --> 00:38:33,020 >> Kaya Harvard talaga ngayon ay nagtatapos up bilang na ito pagkakasunud-sunod ng mga character 796 00:38:33,020 --> 00:38:36,110 at isa pa / 0. 797 00:38:36,110 --> 00:38:41,690 Kaya sa ibang salita, sa pamamagitan ng pagkakaroon ng mga nagbabantay halaga, walong magkadikit zero 798 00:38:41,690 --> 00:38:45,220 bits, maaari mo na ngayong simulan upang makilala ang isang character mula sa isa pang. 799 00:38:45,220 --> 00:38:49,720 Kaya lahat ng mga oras na ito kung ano ang "kumusta" ay talaga "kumusta" na may isang / 0, at 800 00:38:49,720 --> 00:38:53,580 samantala, may kapangyarihan nang napakahusay lubos ng kaunti pang RAM 801 00:38:53,580 --> 00:38:56,400 sa loob ng mga computer. 802 00:38:56,400 --> 00:38:57,810 >> Hayaan ang gawin sa akin ng isa pang bagay ngayon. 803 00:38:57,810 --> 00:39:01,800 Ito ay lumiliko out na ang lahat ng mga parisukat kami pagguhit, ang mga ito, oo, 804 00:39:01,800 --> 00:39:06,140 mga string, ngunit mas pangkalahatang paraan, mga bagay na ito ay array. 805 00:39:06,140 --> 00:39:10,590 Ang isang array ay lamang ng isang tipak ng memory na bumalik upang i-back-back sa likod, 806 00:39:10,590 --> 00:39:15,130 at karaniwan kang gumamit ng isang array sa pamamagitan ng paraan ng square na ito pagtatanda bracket. 807 00:39:15,130 --> 00:39:18,210 Kaya kami ay pagpunta upang makita ang mga lubos ng kaunti sa paglipas ng panahon, ngunit hayaan mo akong magpatuloy at 808 00:39:18,210 --> 00:39:21,160 buksan up, sabihin call ito edad. 809 00:39:21,160 --> 00:39:23,920 At mapansin kung ano ang maaari naming gawin sa ang parehong mga trick, ng kaunti 810 00:39:23,920 --> 00:39:25,750 kaunti pang syntax dito. 811 00:39:25,750 --> 00:39:29,270 >> Kaya sa linya 17 ng programang ito - talaga, hayaan mo akong tumakbo sa programa unang 812 00:39:29,270 --> 00:39:30,770 upang maaari naming makita kung ano ang bagay na ito gumagana. 813 00:39:30,770 --> 00:39:33,530 Hayaan akong tawagan gumawa edad sa sumulat ng libro sa programang ito. 814 00:39:33,530 --> 00:39:34,950 . / Edad. 815 00:39:34,950 --> 00:39:36,480 Gaano karaming mga tao ay sa kuwarto? 816 00:39:36,480 --> 00:39:38,020 Tawagan ang tatlong ito. 817 00:39:38,020 --> 00:39:39,575 Edad ng unang tao? 818 00:39:39,575 --> 00:39:42,710 18, 19, at 20. 819 00:39:42,710 --> 00:39:46,770 At ngayon medyo ridiculously, ko lang ginawa ng isang program na edad mga 820 00:39:46,770 --> 00:39:47,740 tatlong tao. 821 00:39:47,740 --> 00:39:50,390 >> Kaya mayroong malinaw na isang pagkakataon para sa ilang mga masaya aritmetika dito. 822 00:39:50,390 --> 00:39:51,560 Thankfully, ang matematika ay tama. 823 00:39:51,560 --> 00:39:54,720 18 napunta sa 19, 19 nagpunta sa 20 at iba pa. 824 00:39:54,720 --> 00:39:58,510 Ngunit kung ano talaga ang sinadya upang maging nakapagpapakita dito ay kung paano namin ang pag-iimbak ng 825 00:39:58,510 --> 00:40:00,190 mga tatlong tao edad. 826 00:40:00,190 --> 00:40:02,370 Hayaan akong mag-zoom in sa kung ano ang pagpunta sa dito. 827 00:40:02,370 --> 00:40:06,240 >> Kaya una, ang mga unang ilang mga linya dapat ay nakakakuha ng medyo pamilyar. 828 00:40:06,240 --> 00:40:08,770 Lang ako sa pagdikta sa gumagamit para sa bilang ng tao sa kuwarto. 829 00:40:08,770 --> 00:40:11,490 Pagkatapos ay gumagamit ako makakakuha ng int at gawin habang upang gawin ito muli at muli at muli. 830 00:40:11,490 --> 00:40:15,780 Nasaksihan namin pattern na bago, ngunit line 27 ay bago at talagang medyo 831 00:40:15,780 --> 00:40:18,160 kapaki-pakinabang, at ay magiging nagiging kapaki-pakinabang. 832 00:40:18,160 --> 00:40:21,620 Pansinin na kung ano ang naiiba sa linya 27 ay lumitaw na ako na deklarasyon ng isang 833 00:40:21,620 --> 00:40:23,960 int tinatawag na edad, ngunit maghintay. 834 00:40:23,960 --> 00:40:27,140 Ito ay hindi lamang int edad. 835 00:40:27,140 --> 00:40:30,130 Mayroong mga square bracket, sa loob ng na kung saan ay n. 836 00:40:30,130 --> 00:40:35,150 >> Kaya ang bracket n sa kontekstong ito, hindi sa loob ng isang printf pahayag dito ngunit 837 00:40:35,150 --> 00:40:44,370 ito sa nag-iisang linya 27, linya na ito ay sinasabi, akong bigyan n ints, ang bawat isa 838 00:40:44,370 --> 00:40:46,080 ang uri ng int. 839 00:40:46,080 --> 00:40:49,870 Kaya ito ay isang bucket, kaya na magsalita, ng, sa kasong ito, tatlong integer pabalik sa 840 00:40:49,870 --> 00:40:52,770 bumalik upang i-back kaya ako na epektibong may tatlong variable. 841 00:40:52,770 --> 00:40:54,890 Ang mga alternatibo, upang maging malinaw, magiging ito. 842 00:40:54,890 --> 00:40:57,400 >> Kung Nais kong sa unang mag-aaral edad, maaari kong gawin ito. 843 00:40:57,400 --> 00:40:59,520 Kung Nais kong sa pangalawang mag-aaral edad na maaaring kong gawin ito. 844 00:40:59,520 --> 00:41:01,860 Kung Nais kong sa ikatlong mag-aaral edad, maaari kong gawin ito. 845 00:41:01,860 --> 00:41:04,320 At diyos sawayin kailangan namin ng lahat edad sa kuwartong ito - 846 00:41:04,320 --> 00:41:07,670 Ibig kong sabihin, ito ay isang ano ba ng ng maraming kopya, ilagay muli at muli at muli. 847 00:41:07,670 --> 00:41:10,870 At plus isang beses ako sumulat ng libro sa programang ito, kung ang mag-aaral ay nagtuturo sa isa pang sa ibabaw out 848 00:41:10,870 --> 00:41:14,200 ng pinto na, ngayon bilang aking ng mga variable ay hindi tama. 849 00:41:14,200 --> 00:41:17,450 >> Kaya kung ano ang maganda tungkol sa isang array ay bilang lalong madaling simulan mo ang iyong sarili pakiramdam 850 00:41:17,450 --> 00:41:20,190 pagkopya at pag-paste, logro ay na hindi ang pinakamahusay na diskarte. 851 00:41:20,190 --> 00:41:22,240 Ang isang array ay dynamic na potensyal. 852 00:41:22,240 --> 00:41:24,610 Hindi ko alam nang maaga kung gaano karaming mga tao ay pagpunta sa maging sa kuwarto, 853 00:41:24,610 --> 00:41:28,670 ngunit ko alam kung kailangan ko n sa kanila, at idedetalye ko tayahin n kapag oras ng pagdating. 854 00:41:28,670 --> 00:41:35,500 Ang linya ng code ngayon ay nangangahulugan, ninyo ako ng tipak ng memory na ganito ang hitsura 855 00:41:35,500 --> 00:41:40,380 kung saan ang bilang ng mga kahon sa screen ay ganap na nakasalalay sa n na 856 00:41:40,380 --> 00:41:42,010 gumagamit ang nai-type in 857 00:41:42,010 --> 00:41:44,850 >> Kaya ngayon ang natitirang bahagi ng programang ito ay talagang kaakit-akit na katulad ng kung ano ang aming 858 00:41:44,850 --> 00:41:46,860 lamang ginawa na may mga character. 859 00:41:46,860 --> 00:41:49,970 PAUNAWA Mayroon akong para sa loop nagsisimula sa line 30. 860 00:41:49,970 --> 00:41:54,920 Kaya karapatan pagkatapos makuha ko ang mga array, ako umulit mula sa y katumbas ng zero sa hanggang sa n. 861 00:41:54,920 --> 00:41:58,890 Ko na lang ay ito nakapagtuturo printf mensahe lang sinasabi, magbigay sa akin ang edad 862 00:41:58,890 --> 00:42:03,690 ng tao #% i, kaya bilang isa, dalawang numero, numero ng tatlo. 863 00:42:03,690 --> 00:42:04,730 At bakit ko ito magagawa? 864 00:42:04,730 --> 00:42:08,870 Nang tapat, mga kawani na tao ginusto upang mabilang mula sa isa sa up samantalang ang mga siyentipiko computer, 865 00:42:08,870 --> 00:42:09,620 sa zero up. 866 00:42:09,620 --> 00:42:11,700 computer na siyentipiko ay hindi pagpunta sa gamitin ang ganitong uri ng programa, kaya kami ay 867 00:42:11,700 --> 00:42:13,990 pagpunta sa makatarungan simulan ang pagbibilang sa isa tulad ng normal na tao. 868 00:42:13,990 --> 00:42:17,630 >> At ngayon sa linya 33, mapansin ang bahagyang iba't ibang piraso ng syntax. 869 00:42:17,630 --> 00:42:23,710 Ang i-ika sa edad na variable ng uri array ay pagpunta upang makakuha ng isang int. 870 00:42:23,710 --> 00:42:25,770 At ngayon bilang wakas, ito lamang ang pang-aritmetika pababa dito. 871 00:42:25,770 --> 00:42:29,200 Ako nagpasya sa isang hiwalay na loop upang i-claim ilang oras pumasa, at ngayon ay nasa ito 872 00:42:29,200 --> 00:42:31,400 hiwalay loop, ang mga linyang execute. 873 00:42:31,400 --> 00:42:35,810 >> Isang taon mula ngayon, ang tao ay i maging i taong gulang, ngunit mapapansin na ito ay hindi ang 874 00:42:35,810 --> 00:42:36,500 i variable. 875 00:42:36,500 --> 00:42:38,390 Ito ay ngayon% i para sa int. 876 00:42:38,390 --> 00:42:43,210 At notice bilang unang placeholder, ako plug in i plus 1, kaya umaasa kami na parang isang 877 00:42:43,210 --> 00:42:44,250 normal na tao. 878 00:42:44,250 --> 00:42:49,190 At pagkatapos ay para sa ang halaga ng kanilang edad, para sa i taong gulang, ako ng mga edad bracket 879 00:42:49,190 --> 00:42:52,980 i - at kung bakit ako paggawa plus isa dito? 880 00:42:52,980 --> 00:42:53,760 Sila lamang na may edad na. 881 00:42:53,760 --> 00:42:55,030 Ito'y aking nakababagod pagpipilian ng mga programa. 882 00:42:55,030 --> 00:42:56,810 Sila lamang ang may edad na isang taon. 883 00:42:56,810 --> 00:42:59,770 Kaya kong i-type sa anumang numero na Ko talagang gusto doon. 884 00:42:59,770 --> 00:43:02,430 >> Kaya kung ano ang talagang lahat ng ang kaugnayan dito? 885 00:43:02,430 --> 00:43:07,610 Well, hayaan mo akong talaga mag-scroll pabalik sa paglipas dito at pintura ng isang larawan 886 00:43:07,610 --> 00:43:10,830 ng kung ano ang namamalagi maaga. 887 00:43:10,830 --> 00:43:15,720 Ano lilikha kami ginagawa sa aming mga susunod na Problema Itakda Dalawang ay dabbling sa 888 00:43:15,720 --> 00:43:17,070 mundo ng cryptography. 889 00:43:17,070 --> 00:43:22,500 Kaya ito ay isang string ng mga character, kaya isang pagkakasunod-sunod ng maramihang mga karakter, at kung ano 890 00:43:22,500 --> 00:43:23,750 ang ibig sabihin? 891 00:43:23,750 --> 00:43:28,530 892 00:43:28,530 --> 00:43:30,600 Hindi ito sa online na bersyon ng mga slide. 893 00:43:30,600 --> 00:43:35,880 >> Kaya inaangkin ko na ito ay katumbas ng ito, isang nakababagod advertisement mula sa maraming mga taon 894 00:43:35,880 --> 00:43:39,950 nakalipas na maaaring aktwal na isipin ang isa sa mga pinagmulan nito. 895 00:43:39,950 --> 00:43:42,740 Kaya ito ay isang halimbawa ng pag-encrypt o cryptography. 896 00:43:42,740 --> 00:43:46,150 Ito ay lumiliko out na kung nais mong talagang magpadala ng impormasyon o magbahagi 897 00:43:46,150 --> 00:43:49,310 impormasyon sa isang tao nang ligtas, tulad ng isang mensahe tulad nito, maaari mong 898 00:43:49,310 --> 00:43:50,500 pakikipag-agawan ang mga titik. 899 00:43:50,500 --> 00:43:53,170 Ngunit karaniwan, ang mga salita ay hindi scrambled random. 900 00:43:53,170 --> 00:43:56,365 Sila ay naka-permuted sa ilang mga paraan o nagbago sa ilang mga paraan upang ang - oops. 901 00:43:56,365 --> 00:43:59,040 Iyan ay isang masaya spoiler para sa susunod na pagkakataon. 902 00:43:59,040 --> 00:44:04,390 >> Kaya maaari mong i-map kung ano ay tila O sa B. Abiso na ang mga linya up 903 00:44:04,390 --> 00:44:05,420 capitalization-matalino. 904 00:44:05,420 --> 00:44:07,960 Tila nagiging r e. 905 00:44:07,960 --> 00:44:14,000 Sa malas F-H-E-R ay nagiging S-U-R-E. Kaya ito lumiliko out mayroong isang pagmamapa, at sa 906 00:44:14,000 --> 00:44:18,720 kasong ito mayroong isang medyo bobo paggawa ng mga mapa kung sinuman ay may korte ito out? 907 00:44:18,720 --> 00:44:21,440 Ito ay isang bagay na tinatawag na Rot 13, I-rotate 13. 908 00:44:21,440 --> 00:44:24,760 Ito ay ang stupidest ng encryption mekanismo na ito dahil literal lamang 909 00:44:24,760 --> 00:44:29,160 nagdadagdag ng 13 sa bawat isa sa mga titik, nakababagod sa kamalayan na kung ikaw lamang 910 00:44:29,160 --> 00:44:31,890 magkaroon ng kaunting libreng oras sa iyong mga kamay at isang lapis, o mo lamang sa tingin ito 911 00:44:31,890 --> 00:44:35,260 sa pamamagitan ng sa iyong ulo, maaari mong subukan ang lahat ng posibleng mga karagdagan - isa, dalawa, 912 00:44:35,260 --> 00:44:38,470 tatlong, tuldok, tuldok, tuldok, 25 na lang ikutin ang buong alpabeto, at 913 00:44:38,470 --> 00:44:40,860 kalaunan, makikita mo malaman kung ano ang mensaheng ito ay. 914 00:44:40,860 --> 00:44:43,700 Kaya't kung ikaw ginawang isang bagay na tulad nito sa elementarya pagpasa ng mga mensahe sa iyong 915 00:44:43,700 --> 00:44:46,830 pinakamatalik na kaibigan, kung ang iyong mga grado sa paaralan guro lamang basahin sa pamamagitan ng 916 00:44:46,830 --> 00:44:50,320 mensahe at mga taong malupit pinilit ang solusyon, baka nakuha mo 917 00:44:50,320 --> 00:44:52,550 isang sagot sa pamamagitan ng na. 918 00:44:52,550 --> 00:44:54,970 >> Ngayon siyempre, sa tunay na mundo, cryptography ay mas sopistikadong. 919 00:44:54,970 --> 00:45:00,120 Ito ay isang snippet ng teksto mula sa isang computer system na may mga username at 920 00:45:00,120 --> 00:45:03,630 mga password, bilang halos lahat ng atin gawin, at ito ay kung ano ang iyong password kapangyarihan 921 00:45:03,630 --> 00:45:07,260 hitsura kung naka-imbak sa iyong hard magmaneho ngunit sa naka-encrypt na form. 922 00:45:07,260 --> 00:45:11,050 Ito ay hindi lamang isang pag-ikot ng mga titik, A ay B at B ay C. Ito ay 923 00:45:11,050 --> 00:45:15,620 higit na mas sopistikadong, ngunit ito ay gumagamit ng ano ang karaniwang kilala bilang sikretong key 924 00:45:15,620 --> 00:45:16,690 cryptography. 925 00:45:16,690 --> 00:45:20,210 Ang larawan na ito ay nagsasabi sa mga sumusunod na kuwento na may ilang mga icon. 926 00:45:20,210 --> 00:45:22,250 >> Sa kaliwa, mayroon kaming kung ano Makikita kami tatawag sa plain text. 927 00:45:22,250 --> 00:45:25,420 Sa mundo ng cryptography, plain teksto lamang ang orihinal na mensahe 928 00:45:25,420 --> 00:45:29,050 nakasulat sa Ingles o Pranses o anumang wika kung ano pa man. 929 00:45:29,050 --> 00:45:32,405 Kung gusto mong i-encrypt ito, kailangan namin pumasa pictorially ito sa pamamagitan ng isang padlock, kaya 930 00:45:32,405 --> 00:45:35,580 ang ilan sa mga uri ng mga algorithm, ang ilang mga pag-andar o programa na may isang taong nagsulat 931 00:45:35,580 --> 00:45:39,880 na scrambles ang mga titik sana mas complicatedly pa sa pagdaragdag ng 13 932 00:45:39,880 --> 00:45:40,980 sa bawat isa sa kanila. 933 00:45:40,980 --> 00:45:43,780 >> Ano kang makakuha ng out sa prosesong iyon sa gitna doon ay tinatawag cyphertext. 934 00:45:43,780 --> 00:45:44,850 Kaya uri ng isang sexy salita. 935 00:45:44,850 --> 00:45:47,630 Ito lamang ay nangangahulugan na ito ay naka-encrypt ang bersyon ng plain text. 936 00:45:47,630 --> 00:45:52,570 At lamang kung mayroon kang na parehong lihim, 13 o minus 13, ikaw ay makapag- 937 00:45:52,570 --> 00:45:54,970 i-decrypt ng isang mensahe tulad na. 938 00:45:54,970 --> 00:45:57,770 >> Kaya sa Problema Itakda Dalawang, bukod sa mga bagay na makikita mo gawin kung sa Hacker 939 00:45:57,770 --> 00:46:01,860 Edition, ikaw ay mayroon na magsulat code sa lumagutok ang mga password, ang pag-uunawa 940 00:46:01,860 --> 00:46:05,170 kung ano sila ay at kung paano sila ay naka-encrypt na, bagaman ang ginagawa namin magbibigay sa iyo ng kaunti 941 00:46:05,170 --> 00:46:06,460 ng paggabay kasama ang paraan. 942 00:46:06,460 --> 00:46:09,320 Sa Standard Edition, namin ipakilala isang pares ng mga ciphers, encryption 943 00:46:09,320 --> 00:46:12,400 mekanismo, isa na tinatawag Caesar, isa tinatawag Vigenere, na hindi pa rin 944 00:46:12,400 --> 00:46:16,100 palitin ciphers kung saan ay nagiging isang isang bagay, B ay nagiging isang bagay, ngunit 945 00:46:16,100 --> 00:46:18,820 kailangan mo lang gawin ito ayon sa programa dahil doon ay talagang maging isang lihim na 946 00:46:18,820 --> 00:46:22,840 key kasangkot na kung saan ay karaniwang isang numero o ang isang keyword na lamang ang 947 00:46:22,840 --> 00:46:26,420 nagpadala at ang tatanggap ng mga mga mensahe ay dapat maunawaan. 948 00:46:26,420 --> 00:46:28,660 >> Ngayon, ito ay aktwal na anyo sa tunay na mundo. 949 00:46:28,660 --> 00:46:32,910 Ito ay, halimbawa, ay maliit para sa mga ulila Lihim na decoder Annie ng ring, at ikaw 950 00:46:32,910 --> 00:46:35,180 Maaari aktwal na ipatupad ang mga palitin ciphers - 951 00:46:35,180 --> 00:46:37,930 Ang isang nagiging isang bagay, nagiging B isang bagay - na may isang pares ng mga wheels, 952 00:46:37,930 --> 00:46:40,840 isa sa labas, isa sa loob tulad na kung mong paikutin ang wheel o 953 00:46:40,840 --> 00:46:44,170 ang singsing, maaari mong talagang pumila ang mga titik na may iba't ibang mga titik, 954 00:46:44,170 --> 00:46:45,430 pagkuha ng isang lihim na code. 955 00:46:45,430 --> 00:46:48,110 At kaya bilang ang cliffhanger para sa araw, kung ano naisip ko na gusto kong gawin ay isang bit ng 956 00:46:48,110 --> 00:46:52,170 kilos sa pabalik na kung iyong i-on ang TV sa Disyembre 24, maaari mong panoorin ang 957 00:46:52,170 --> 00:46:55,390 pelikula ad nauseum para sa 24 oras sa isang hilera. 958 00:46:55,390 --> 00:47:06,030 Ngunit para sa ngayon, kukunin ko na buksan ito up dito at bigyan kami lang dalawang minuto ng isang 959 00:47:06,030 --> 00:47:13,493 pedagogically may-katuturang mga Christmas Story na may isang maliit na tao na may pangalang Ralphie. 960 00:47:13,493 --> 00:47:14,400 >> [Video playback] 961 00:47:14,400 --> 00:47:17,420 >> Ma-kilala ito sa lahat at sari-sari na Ralph Parker pamamagitan nito ay itinalaga ng isang 962 00:47:17,420 --> 00:47:20,650 kasapi ng Little ulila Annie lihim lupon at karapat-dapat sa lahat 963 00:47:20,650 --> 00:47:23,460 mga parangal at mga benepisyo nagaganap doon. 964 00:47:23,460 --> 00:47:25,990 >> Naka-sign-, Little ulila Annie. 965 00:47:25,990 --> 00:47:30,100 Countersigned, Pierre Andre sa tinta. 966 00:47:30,100 --> 00:47:34,270 Mga parangal at mga benepisyo na sa edad ng siyam. 967 00:47:34,270 --> 00:47:39,440 >> [Abot-ON Radio] 968 00:47:39,440 --> 00:47:40,770 >> Halika sa, sabihin makakuha sa sa mga ito. 969 00:47:40,770 --> 00:47:44,965 Hindi ko kailangan ang lahat na jazz tungkol sa smugglers at pirates. 970 00:47:44,965 --> 00:47:48,270 >> Makinig-bukas gabi para sa concluding pakikipagsapalaran ng mga itim 971 00:47:48,270 --> 00:47:49,650 tulisang-dagat barko. 972 00:47:49,650 --> 00:47:53,320 Ngayon, oras na para sa Annie ng Lihim Mensahe para sa iyo miyembro 973 00:47:53,320 --> 00:47:55,720 ng lihim na bilog. 974 00:47:55,720 --> 00:47:56,580 Tandaan, ang mga bata. 975 00:47:56,580 --> 00:48:01,720 Ang mga kasapi lamang ng Secret Circle ni Annie Maaari decode lihim na mensahe ni Annie. 976 00:48:01,720 --> 00:48:05,872 Tandaan, Annie ay nakasalalay sa iyo. 977 00:48:05,872 --> 00:48:08,670 Itakda ang iyong mga pin sa B2. 978 00:48:08,670 --> 00:48:11,000 Heto ang mensahe ng. 979 00:48:11,000 --> 00:48:12,335 12, 11, 2 - 980 00:48:12,335 --> 00:48:14,670 >> -Isa akong sa aking unang lihim na pulong. 981 00:48:14,670 --> 00:48:19,720 >> -25, 14, 11, 18, 16 - 982 00:48:19,720 --> 00:48:21,650 >> -Pierre ay nasa mahusay na boses ngayong gabi. 983 00:48:21,650 --> 00:48:24,830 Maaari ko bang sabihin sa mensahe na ngayong gabi ni ay talagang mahalaga. 984 00:48:24,830 --> 00:48:26,400 >> -3, 25. 985 00:48:26,400 --> 00:48:28,540 Iyan ay isang mensahe mula sa kanyang sarili Annie. 986 00:48:28,540 --> 00:48:30,086 Tandaan, huwag sabihin sa sinuman. 987 00:48:30,086 --> 00:48:34,370 988 00:48:34,370 --> 00:48:38,710 >> -90 Segundo mamaya, ako sa room lamang sa bahay kung saan ang isang batang lalaki ng siyam 989 00:48:38,710 --> 00:48:42,668 maaaring umupo sa privacy at decode. 990 00:48:42,668 --> 00:48:47,628 Aha, B. nagpunta ako sa susunod. 991 00:48:47,628 --> 00:48:53,060 E. Ang unang salita ay "maging." S. Ito ay darating na mas madali na ngayon. 992 00:48:53,060 --> 00:48:54,980 U. 25. 993 00:48:54,980 --> 00:48:55,940 Iyon R. 994 00:48:55,940 --> 00:48:56,900 >> -Halika sa, Ralphie. 995 00:48:56,900 --> 00:48:57,860 I gotta go. 996 00:48:57,860 --> 00:48:59,780 >> -I'll maging kanan pababa, Ma. 997 00:48:59,780 --> 00:49:01,030 Hi humaging. 998 00:49:01,030 --> 00:49:04,300 999 00:49:04,300 --> 00:49:08,220 >> -T. O. Maging sigurado na. 1000 00:49:08,220 --> 00:49:09,500 Maging sigurado sa kung ano? 1001 00:49:09,500 --> 00:49:11,660 Ano ang Little ulila Annie sinusubukan mong sabihin? 1002 00:49:11,660 --> 00:49:12,844 Maging sigurado sa kung ano? 1003 00:49:12,844 --> 00:49:14,732 >> -Ralphie, Randy ay nakuha ko upang pumunta. 1004 00:49:14,732 --> 00:49:16,148 Babaguhin ba ninyo ang mangyaring dumating out? 1005 00:49:16,148 --> 00:49:17,092 >> -Ang lahat ng mga karapatan, Ma. 1006 00:49:17,092 --> 00:49:18,510 Makikita ko ba ang tamang out. 1007 00:49:18,510 --> 00:49:20,270 >> -Ako ay nakakakuha ng mas malapit sa ngayon. 1008 00:49:20,270 --> 00:49:21,823 Malamig ang samahan ay kahila-hilakbot. 1009 00:49:21,823 --> 00:49:23,045 Ano ito? 1010 00:49:23,045 --> 00:49:26,510 Ang kapalaran ng mga planeta maaari maging nakasalalay. 1011 00:49:26,510 --> 00:49:28,985 >> -Ralphie, gotta go ni Randy. 1012 00:49:28,985 --> 00:49:32,680 >> -I'll maging kanan out para sa umiiyak nang malakas. 1013 00:49:32,680 --> 00:49:33,956 >> -Halos doon. 1014 00:49:33,956 --> 00:49:35,140 Aking mga daliri nagsakay. 1015 00:49:35,140 --> 00:49:36,880 Ang aking isip ay isang asero bitag. 1016 00:49:36,880 --> 00:49:38,010 Napakaliit na butas Tuwing vibrated. 1017 00:49:38,010 --> 00:49:39,878 Ito ay halos malinaw. 1018 00:49:39,878 --> 00:49:43,210 Oo, oo, oo, oo, oo. 1019 00:49:43,210 --> 00:49:49,030 >> -Maging sigurado na uminom ng iyong Ovaltine. 1020 00:49:49,030 --> 00:49:50,280 Ovaltine? 1021 00:49:50,280 --> 00:49:53,980 1022 00:49:53,980 --> 00:49:55,230 Isang pangit komersyal? 1023 00:49:55,230 --> 00:49:58,572 1024 00:49:58,572 --> 00:50:00,694 Anak ng isang asong babae. 1025 00:50:00,694 --> 00:50:01,900 >> [END-playback ng video] 1026 00:50:01,900 --> 00:50:04,260 >> Tagapagsalita 1: Ito ang CS50, at na magiging Problema Itakda Dalawang. 1027 00:50:04,260 --> 00:50:06,305 Tingnan mo sa susunod na linggo. 1028 00:50:06,305 --> 00:50:08,800 >> Tagapagsalita 2: Sa susunod na CS50, ito ang mangyayari. 1029 00:50:08,800 --> 00:50:11,060 >> Tagapagsalita 1: So isa topic mayroon kaming hindi Tiningnan kaya kalayo 1030 00:50:11,060 --> 00:50:12,220 na payo ng function. 1031 00:50:12,220 --> 00:50:14,540 Ngayon, ang isang function pointer lamang ang ang address ng isang pampublikong 1032 00:50:14,540 --> 00:50:17,000 function, ngunit tulad ng - 1033 00:50:17,000 --> 00:50:18,250 anak na lalaki ng isang - 1034 00:50:18,250 --> 00:50:19,670