1 00:00:00,000 --> 00:00:03,395 >> [Musika jotzen] 2 00:00:03,395 --> 00:00:11,031 3 00:00:11,031 --> 00:00:13,280 DAVID J. MALAN: Hau bezalakoa da gaur freshman mintegi batean. 4 00:00:13,280 --> 00:00:14,060 ONDO DA. 5 00:00:14,060 --> 00:00:15,024 Beraz, oso euritsua atera. 6 00:00:15,024 --> 00:00:17,690 Honetarako asteazkenetan gertatuko, baina zenbat eta gehiago aukera guztiak 7 00:00:17,690 --> 00:00:18,700 galdera gaur. 8 00:00:18,700 --> 00:00:22,210 Hargatik hasteko off benetan une bat besterik filmarekin. 9 00:00:22,210 --> 00:00:24,560 Baina holuku hasiko dugu, beti bezala. 10 00:00:24,560 --> 00:00:28,000 >> Hau CS50 da, eta hau Aste 4 bukaera da. 11 00:00:28,000 --> 00:00:30,820 Beraz, bada inoiz zaintzen TV movie edo dua bat 12 00:00:30,820 --> 00:00:34,690 informatikariak batzuk han eta polizia edo FBI, edo agentzia batzuk 13 00:00:34,690 --> 00:00:36,930 batzuk harrapatzen saiatzen aurkariarekiko, bai, duzun 14 00:00:36,930 --> 00:00:40,850 ziurrenik adierazpena entzun "hobetzeko" Horren bidez, teknikari, nolabait, 15 00:00:40,850 --> 00:00:44,750 magikoki infinituki ere zooma handituko du urrun gaizkile ikusteko 16 00:00:44,750 --> 00:00:48,640 identitate edo matrikula kopuruari nahiz eta ispilu baten shimmer batean 17 00:00:48,640 --> 00:00:50,390 edo norbait begi distira. 18 00:00:50,390 --> 00:00:55,196 Beraz, hain zuzen ere, dezagun begirada bat Hollywood, hala nola eszena batzuk. 19 00:00:55,196 --> 00:00:55,862 [Bideo-erreprodukzioa] 20 00:00:55,862 --> 00:00:59,243 -Ados, Orain gaitezen duzu itxura ona. 21 00:00:59,243 --> 00:01:06,488 22 00:01:06,488 --> 00:01:07,415 >> Eutsi da. 23 00:01:07,415 --> 00:01:08,267 Exekutatu back hori. 24 00:01:08,267 --> 00:01:09,121 >> -Itxaron minutu bat. 25 00:01:09,121 --> 00:01:11,300 Joan eskubidea. 26 00:01:11,300 --> 00:01:12,209 >> -Ez, Izozteko duten. 27 00:01:12,209 --> 00:01:12,750 -Pantaila osoa. 28 00:01:12,750 --> 00:01:13,558 -Ados, Izozteko duten. 29 00:01:13,558 --> 00:01:14,820 -Estutu Sortu horretan, ahal izango duzu? 30 00:01:14,820 --> 00:01:16,530 -Vector Ere horretan atzeko gurpila arabera lasaia. 31 00:01:16,530 --> 00:01:19,400 Hementxe Leku honetako in Zoom. 32 00:01:19,400 --> 00:01:22,846 Eskuineko -Ekipoak, irudia ampliada litezke eta zorroztu. 33 00:01:22,846 --> 00:01:24,065 -Zer da hori? 34 00:01:24,065 --> 00:01:25,600 -Ez Hobekuntza programa bat da. 35 00:01:25,600 --> 00:01:26,860 -Ezin Duela garbitu sortu duen? 36 00:01:26,860 --> 00:01:27,890 -Nik Ez dakit. 37 00:01:27,890 --> 00:01:29,050 Dezagun areagotuko da. 38 00:01:29,050 --> 00:01:31,575 >> -Hobetu Atal A6. 39 00:01:31,575 --> 00:01:33,642 >> -I Xehetasun hobetu, and-- Uste dut ez da 40 00:01:33,642 --> 00:01:35,433 nahikoa hobetzeko, askatu nire pantailara. 41 00:01:35,433 --> 00:01:37,080 -I Bere begi isla hobetu. 42 00:01:37,080 --> 00:01:38,830 >> -Dezagun Exekutatu honen bidez Bideo hobekuntza. 43 00:01:38,830 --> 00:01:40,100 -Edgar, Hau hobetzeko? 44 00:01:40,100 --> 00:01:41,875 >> -Hang Orrian. 45 00:01:41,875 --> 00:01:44,010 >> -I've Dira hausnarketa hori lantzen. 46 00:01:44,010 --> 00:01:44,995 >> Norbaitek-en gogoeta. 47 00:01:44,995 --> 00:01:45,495 -Hausnarketa. 48 00:01:45,495 --> 00:01:47,399 -Ez Gizonaren aurpegia, gogoeta bat da. 49 00:01:47,399 --> 00:01:48,065 -Hausnarketa. 50 00:01:48,065 --> 00:01:48,981 -Bada, Gogoeta bat da. 51 00:01:48,981 --> 00:01:50,600 Ispilu orrian. 52 00:01:50,600 --> 00:01:52,712 Hausnarketa bat ikusiko beharretara. 53 00:01:52,712 --> 00:01:54,350 -Leku Irudia hobetzeko hemendik aurrera? 54 00:01:54,350 --> 00:01:55,370 -Ezin Hura hobetzeko duzu hemen? 55 00:01:55,370 --> 00:01:56,210 -Ezin Hobetzen duzu? 56 00:01:56,210 --> 00:01:56,900 Ezin da hobetzeko? 57 00:01:56,900 --> 00:01:57,870 >> -Ezin Dugu hau hobetzeko? 58 00:01:57,870 --> 00:01:58,717 >> -Ezin Hobetzen duzu? 59 00:01:58,717 --> 00:02:00,050 Bigarren an-Eutsi, hobetu dut. 60 00:02:00,050 --> 00:02:00,924 Ate-en Txikiagotu orrian. 61 00:02:00,924 --> 00:02:01,700 -Times 10. 62 00:02:01,700 --> 00:02:02,586 Zoom. 63 00:02:02,586 --> 00:02:03,490 Ere -Move. 64 00:02:03,490 --> 00:02:03,990 -Informazio. 65 00:02:03,990 --> 00:02:04,690 -ez Alde, gelditzeko. 66 00:02:04,690 --> 00:02:05,190 -Gelditu. 67 00:02:05,190 --> 00:02:05,970 -Pause Da. 68 00:02:05,970 --> 00:02:09,460 -Biratu Digu 75 gradu bertikalaren inguruan, mesedez. 69 00:02:09,460 --> 00:02:10,962 -Gelditu. 70 00:02:10,962 --> 00:02:14,040 Joan atzera zatia atea, berriro buruz. 71 00:02:14,040 --> 00:02:15,860 >> Got-irudi Enhancer ahal bit? 72 00:02:15,860 --> 00:02:18,776 >> -Aizu, Agian Pradeep erabili ahal izango dugu Sen metodoa leihoetatik sartzen ikusi. 73 00:02:18,776 --> 00:02:20,372 -Hau Software artearen egoera da. 74 00:02:20,372 --> 00:02:21,845 >> Autobalio -The da off. 75 00:02:21,845 --> 00:02:24,300 >> Eskubidea -partaide algoritmo konbinazioa 76 00:02:24,300 --> 00:02:26,755 >> -Hartu Zuen ezabatzea Hurrengo mailara algoritmoak, 77 00:02:26,755 --> 00:02:28,730 eta horiek erabili ahal izango dut argazki hau indartzeko. 78 00:02:28,730 --> 00:02:31,286 >> -Lock Eta z ardatzean handitzeko. 79 00:02:31,286 --> 00:02:32,560 >> -Hobetu. 80 00:02:32,560 --> 00:02:33,100 >> -Hobetu. 81 00:02:33,100 --> 00:02:33,600 >> -Hobetu. 82 00:02:33,600 --> 00:02:34,960 Izoztu-eta hobetzeko. 83 00:02:34,960 --> 00:02:37,180 >> [END erreprodukzioa] 84 00:02:37,180 --> 00:02:41,160 >> DAVID J. MALAN: Ondo da, beraz, horiek guztiak ez dira benetan hitzak. 85 00:02:41,160 --> 00:02:44,450 Bakarrik ari dira elkarrekin bat zabalduta Bide hori ez da benetan sensible. 86 00:02:44,450 --> 00:02:48,400 Eta, hain zuzen ere, CS50 eta hura bezalako ikastaroak Telebista eta film asko hondatu ohi 87 00:02:48,400 --> 00:02:48,900 zuretzat. 88 00:02:48,900 --> 00:02:52,330 Informatikariak horietan delako ari dagokionez off rattling eta esanez 89 00:02:52,330 --> 00:02:56,860 bezalako beste gauza autobektorearen, eta z ardatzean, 90 00:02:56,860 --> 00:02:59,572 eta beste edozein zenbaki benetan, termino tekniko, 91 00:02:59,572 --> 00:03:02,030 ari dira benetan besterik stringing hitzak elkarrekin askotan. 92 00:03:02,030 --> 00:03:05,020 Da gure itxaropen bat dela, alde jarriz ikastaroak efektu gisa 93 00:03:05,020 --> 00:03:08,245 Hau atsegin, izango du pertsona gehiago Mundu benetan izan nahi du pisatzen duela 94 00:03:08,245 --> 00:03:12,040 eta besterik ez inoiz beraz, apur eragina du kalitatea eta filmak badira zehaztasuna? 95 00:03:12,040 --> 00:03:14,350 >> Izan ere, dezagun errealitate begirada bat. 96 00:03:14,350 --> 00:03:18,070 Hortaz, hona hemen langileen argazkia da Mary, gure irakaskuntza bekadun bat. 97 00:03:18,070 --> 00:03:20,050 Eta suposatzen zuen da Zerbait susmatzen. 98 00:03:20,050 --> 00:03:23,730 Eta, hala ere, ez izpi bat da frogak pieza batzuk bere begi, 99 00:03:23,730 --> 00:03:25,480 edo bere betaurrekoak isla ere. 100 00:03:25,480 --> 00:03:30,760 Beno, zehazki ez bada filmetan bezala dugu proposatzeko, dua mapan handiago eta "hobetzeko", 101 00:03:30,760 --> 00:03:34,080 honek informazio zenbat da Mary aurpegia da 102 00:03:34,080 --> 00:03:36,795 argazki bat ateratzen duzu jatorrizko Ebazpen horrekin. 103 00:03:36,795 --> 00:03:39,120 >> Eta, hain zuzen ere, puntu horiek ikusi ahal izango duzu. 104 00:03:39,120 --> 00:03:41,900 Eta horiek zer dira pixel izeneko, P-I-X-E-L-S, 105 00:03:41,900 --> 00:03:45,740 bertan plaza bat besterik ez da, normalean Hori dela irudi bat konposatzen dot bat da. 106 00:03:45,740 --> 00:03:49,200 Eta egun atzera, eta, egia esan, nahiz eta Gaur egungo LED telebistak batzuk gaur 107 00:03:49,200 --> 00:03:51,950 edo LCD telebistak, duzun got bada Zure gelan edo etxean, 108 00:03:51,950 --> 00:03:55,100 Igo zara super hurbil bada, eta TV zaharxeagoa da batez ere, 109 00:03:55,100 --> 00:03:58,760 ziurrenik ere ikusi ahal izango duzu, puntu horiek eta zer konposatzen irudi bat da. 110 00:03:58,760 --> 00:04:00,980 >> Eta ez da gehiago hau baino informazio. 111 00:04:00,980 --> 00:04:05,400 Zitekeen "hobetu" dugu zentzuan Gauzak baino gehiago eta Ordena leuntzeko 112 00:04:05,400 --> 00:04:09,040 motatako, ordenatzeko zer ondorioztatu kolore Mariaren begi ondoan egon behar du 113 00:04:09,040 --> 00:04:10,910 beraz, ez da benetan, beraz, pixelated. 114 00:04:10,910 --> 00:04:14,510 Baina mantendu dut zooma bada, ez dago bere begi txarra lasaia da. 115 00:04:14,510 --> 00:04:16,600 Horrelakoa da guztien Informazio daukagun. 116 00:04:16,600 --> 00:04:18,920 Ezin duzu sortu Informazio ezerezetik. 117 00:04:18,920 --> 00:04:20,790 Ni bakarrik finitua bit han kopurua. 118 00:04:20,790 --> 00:04:22,873 >> Arazoa Ezarri 4, non ere aukera duzu 119 00:04:22,873 --> 00:04:24,580 mundu-mota honetan jolasteko. 120 00:04:24,580 --> 00:04:27,610 Arazoa Set 4, aztertuko dituzu grafikoak, eta auzitegi-munduan, 121 00:04:27,610 --> 00:04:30,870 eta benetan idatzi kodea hori galdu irudiak berreskuratzen. 122 00:04:30,870 --> 00:04:33,510 Idatzi dituzu Código Lehendik dauden irudiak manipulatzen 123 00:04:33,510 --> 00:04:36,120 eta, azken finean, ulertzen zer da gertatzen kanpaia azpian. 124 00:04:36,120 --> 00:04:38,540 >> Eta, bihurtzen da, egia esan, ez dela konplikatuak. 125 00:04:38,540 --> 00:04:41,320 Esate baterako, nahi izanez gero smiley face non adierazten 126 00:04:41,320 --> 00:04:44,160 pixel beltza hauekin, edo puntu beltzak horiek, 127 00:04:44,160 --> 00:04:47,230 ondo, besterik gabe, ezin dugu ordezkatzen horiek benetan gisa bitmap bat. 128 00:04:47,230 --> 00:04:50,040 Eta baduzu inoiz entzun zuen hori adierazpen bitmap, agian 129 00:04:50,040 --> 00:04:52,330 orain bat egiten hasten da little more gaur zentzurik. 130 00:04:52,330 --> 00:04:53,580 >> Dagoeneko badakigu pixka bat zer den. 131 00:04:53,580 --> 00:04:54,160 Da 0 edo 1. 132 00:04:54,160 --> 00:04:56,201 Eta mapa bat besterik ez da, zerbait paper bat bezala 133 00:04:56,201 --> 00:04:59,180 norabide ematen dizu, eta duela Agian x- eta y-koordenadak sare bat. 134 00:04:59,180 --> 00:05:00,540 Hortaz, hona hemen bitmap bat da. 135 00:05:00,540 --> 00:05:03,680 Da bit-mapa bat egiten Horren bidez, 1 a itxuraz da 136 00:05:03,680 --> 00:05:07,857 pixel zuri bat irudikatu nahi du, eta bat 0 da pixel beltz bat irudikatu nahi du. 137 00:05:07,857 --> 00:05:09,440 Baina zalantzarik gabe izan dugu irauli inguruan. 138 00:05:09,440 --> 00:05:11,648 Ez du benetan axola orain luze koherentea ari garen bezala. 139 00:05:11,648 --> 00:05:15,570 Eta hemen nola, binary barruan ordenagailu baten memoria, edo are barruan 140 00:05:15,570 --> 00:05:18,160 Zure gogorrean fitxategi baten drive-- ezin gorde duzu 141 00:05:18,160 --> 00:05:20,240 smiley face irudiak errazena. 142 00:05:20,240 --> 00:05:23,990 Baina zer egin behar dugu, noski, irudi hau peitu 143 00:05:23,990 --> 00:05:24,610 Kolorea, ezta? 144 00:05:24,610 --> 00:05:28,220 Hurrengo pausoa bistako bat da, edo hobekuntza hau hobetzeko kolorez. 145 00:05:28,220 --> 00:05:32,230 Beraz, besterik bakar batez zoritxarrez bit, 0 edo 1, kolore irudikatu izan dugu. 146 00:05:32,230 --> 00:05:36,100 Hau da, gorria, edo urdina izan daiteke, edo beltza edo zuria, berdea, edo arrosa, 147 00:05:36,100 --> 00:05:37,420 edo kolore bikoteak edozein. 148 00:05:37,420 --> 00:05:40,860 Baina soiltasun en mesedetan, dizkizugu suposatuko zuri-beltzean. 149 00:05:40,860 --> 00:05:45,930 >> Beraz, zer logikoki egin behar dugu badugu Irudi bateko kolore ezartzea nahi? 150 00:05:45,930 --> 00:05:49,080 Zer egin behar dugu? 151 00:05:49,080 --> 00:05:51,900 Mugatuz faktore hemen bada Like dela pixka batekin egin dezakezu bakarrik 152 00:05:51,900 --> 00:05:55,977 ordezkatzen bi estatu, 0 edo 1, zuriak edo beltzak, zer egin nahi duzu? 153 00:05:55,977 --> 00:05:56,810 Ikusleak: More datuak. 154 00:05:56,810 --> 00:05:58,813 DAVID J. MALAN: bit gehiago, yeah datu gehiago, bit gehiago. 155 00:05:58,813 --> 00:06:01,440 Eta, hain zuzen ere, hori zehazki nola kolore irudiak irudikatzen dira. 156 00:06:01,440 --> 00:06:05,120 Bit bakar bat erabili beharrean, a 0 edo 1 pixel bakoitzeko, puntu bakoitza, 157 00:06:05,120 --> 00:06:06,170 anitz erabili besterik ez duzu. 158 00:06:06,170 --> 00:06:09,660 Agian erabili 8, agian, gehiago normalean erabili 24, eta hain zuzen ere, arazo multzo 159 00:06:09,660 --> 00:06:13,300 4, izango da play fitxategia batekin 24 bit egunero erabiltzen normalean formatuan. 160 00:06:13,300 --> 00:06:15,430 >> Baina duzun gehienak dira ziurrenik JPEGs ezagutzen. 161 00:06:15,430 --> 00:06:17,460 Nik inoiz hartu bada argazki bat zure telefonoan, 162 00:06:17,460 --> 00:06:20,360 edo igo edo zerbait ikusten Facebook edo Flickr, edozein zenbaki 163 00:06:20,360 --> 00:06:24,882 argazki oinarritutako webguneen, duzun Seguruenik JPEG irudi bat lehenago. 164 00:06:24,882 --> 00:06:27,840 Eta bihurtzen da, hau fitxategia da formatu goaz pset 4 erabili doa, 165 00:06:27,840 --> 00:06:30,340 Horren bidez, zu joan irudiak berreskuratu behar 166 00:06:30,340 --> 00:06:35,160 dudan ustekabean a ezabatuko hondaturik memoria txartela kamera ere, 167 00:06:35,160 --> 00:06:35,800 izango bada. 168 00:06:35,800 --> 00:06:38,490 >> Eta bihurtzen da, nahiz eta JPEG nahiko sophisticated-- da 169 00:06:38,490 --> 00:06:40,906 askoz ere sofistikatuagoa da eta zuri-beltzeko dots baino 170 00:06:40,906 --> 00:06:44,480 duela une bat ikusi genuen, ez delako benetan fancy algoritmoak 171 00:06:44,480 --> 00:06:47,410 JPEG bat konprimitzeko erabiltzen dira, beraz, benetan polit bat izan dezakezu, 172 00:06:47,410 --> 00:06:49,832 kalitate argazki baizik erabiliz bit gutxi. 173 00:06:49,832 --> 00:06:51,790 Eta itzuli dugu nahi luze baino lehen konpresioa. 174 00:06:51,790 --> 00:06:56,280 Bihurtzen lehena dela hiru byte JPEG image-- batean 175 00:06:56,280 --> 00:07:02,750 ez du axola zein argazki bat hartu duzun of-- balioak 255, 216, 255 dira. 176 00:07:02,750 --> 00:07:05,990 >> Beste era batera esanda, nahi izanez gero, besterik gabe, ikusi bit eredua dela, 177 00:07:05,990 --> 00:07:09,180 Hemen hiru gisa irudikatzen byte, edo 24 bit osotara, 178 00:07:09,180 --> 00:07:13,810 probabilitate handia duten inferitu ahal izango duzu egiten lehen hiru honetan bilatzen ari zaren 179 00:07:13,810 --> 00:07:15,230 JPEG a byte. 180 00:07:15,230 --> 00:07:18,040 Eta hau da, zer da ezaguna ikusi JPEG baten sinadura gisa. 181 00:07:18,040 --> 00:07:20,540 Fitxategia formatu asko han joera hasteko 182 00:07:20,540 --> 00:07:23,735 0 s eta 1s eredu jakin batzuk batera, beraz, Windows eta Mac OS, eta iOS, 183 00:07:23,735 --> 00:07:28,272 eta Android dakit zer motatako fitxategia dute dira, fitxategia deiturikoak gain 184 00:07:28,272 --> 00:07:29,730 luzapena duten fitxategiak asko izan. 185 00:07:29,730 --> 00:07:32,590 Duzu .jpg izan bada, hori da Ordenagailua den beste gako bat. 186 00:07:32,590 --> 00:07:35,310 >> Hargatik orai honetan begiratu apur bat gehiago teknikoki. 187 00:07:35,310 --> 00:07:37,390 Digituak hamartarra Badakigu sistemaren 0 9 bidez. 188 00:07:37,390 --> 00:07:38,740 Badakigu binary 0 eta 1 da. 189 00:07:38,740 --> 00:07:41,842 Eta uste itzuliz gero pset nahi 0, borrokarako batekin izan genuen, 190 00:07:41,842 --> 00:07:43,800 Pixka, zerbait batentzat hamaseitar deitzen, 191 00:07:43,800 --> 00:07:47,320 Bertan 16 digituak duzu, ordez 10 edo 2 ordez. 192 00:07:47,320 --> 00:07:50,405 Eta digituak horiek, konbentzio, 0 9 eta gero baten bidez 193 00:07:50,405 --> 00:07:55,040 f, non f zer adierazten bidez zenbaki hamartar bezala, behatu azkar bat bezala 194 00:07:55,040 --> 00:07:56,640 egiaztatu? 195 00:07:56,640 --> 00:07:57,610 Beraz, 15. 196 00:07:57,610 --> 00:08:01,390 Eta a 10 izan beharko du, besterik arabera dudan jakin arazi izaera. 197 00:08:01,390 --> 00:08:04,350 Konbentzio arbitrario bat besterik ez da, baina nahiko estandarra da. 198 00:08:04,350 --> 00:08:06,870 >> Beraz begiratzen dugu patroi hau hartuz gero Hiruren utzi byte en 199 00:08:06,870 --> 00:08:09,620 besterik begiratzen hasteko nola koherentea 200 00:08:09,620 --> 00:08:12,450 informatikariak, oro har, begiratu eta fitxategiak pentsatzen. 201 00:08:12,450 --> 00:08:15,580 Zalantzarik gabe, ezin duzu pentsatu 0 s fitxategiak, eta 1s, eta dezimaletik 202 00:08:15,580 --> 00:08:19,340 baina, egia esan, binary erabili ohi dugu edo gehiago normalean hexadecimal-- 203 00:08:19,340 --> 00:08:20,760 0 pset itzulia. 204 00:08:20,760 --> 00:08:25,857 Hargatik proposatzen duten 255, 216, 255 eta 0 s eta 1s eredu horiek besterik ez dira. 205 00:08:25,857 --> 00:08:28,440 Eta hau egiaztatu dezakezu baduzu math egin Astea 0 diona. 206 00:08:28,440 --> 00:08:30,810 Baina, oraingoz, besterik ez ditu bere gain hartuko hori da, hain zuzen ere, zuzena. 207 00:08:30,810 --> 00:08:33,850 Dut berridatzi hiru hamartar zenbakiak hiru balio bitar bezala. 208 00:08:33,850 --> 00:08:36,100 Orain zer egin behar dut da besterik espazio zuri batzuk gehitu, 209 00:08:36,100 --> 00:08:37,266 besterik irakurgarritasuna en mesedetan. 210 00:08:37,266 --> 00:08:39,940 Eta, adi, I besterik ez noa gauzak mugitzeko aparte. 211 00:08:39,940 --> 00:08:43,090 Beraz, aurretik, ondoren, aurretik, atzetik. 212 00:08:43,090 --> 00:08:46,180 Ezer interesgarri batzuk egiten ari naiz besterik gabe, gauza beraz zabaltzeko asmoz 213 00:08:46,180 --> 00:08:50,380 ohar horretan zortzi multzo bakoitzeko bit bi lau bit multzo da orain. 214 00:08:50,380 --> 00:08:54,920 Hau oso erabilgarria da hamaseitar delako da bereziki modan 215 00:08:54,920 --> 00:09:00,930 delako hamaseitar bakoitzak 0 bitartez f, edo 15, zehatzago esanda 0 bitartez, 216 00:09:00,930 --> 00:09:03,430 irudikatzen daiteke zehazki, lau bit. 217 00:09:03,430 --> 00:09:07,960 Beste era batera esanda, hamaseitarrean baduzu 0 bat irudikatu nahi, da, besterik gabe, 0000, 218 00:09:07,960 --> 00:09:08,780 lau zero. 219 00:09:08,780 --> 00:09:13,997 Eta 15 ordezkatzen nahi baduzu, da 1111 da, eta bertan lau bit da. 220 00:09:13,997 --> 00:09:16,080 Eta math egiten baduzu, hau da leku direnak bada, 221 00:09:16,080 --> 00:09:18,210 hau da 16s lekua, hori da zuk eman joan 222 00:09:18,210 --> 00:09:19,960 baizik eta hori joan Sentitzen zaie, bitarretan, 223 00:09:19,960 --> 00:09:23,660 hori da zuk emateko 15 joan, bai lekua, twos leku, hankan eta eights lekua. 224 00:09:23,660 --> 00:09:26,821 Hargatik proposatzen duten me lau bit ezarri ezkerrean 225 00:09:26,821 --> 00:09:28,070 zer ari gara f deitu behar. 226 00:09:28,070 --> 00:09:30,110 Kopuru handiena da duzu lau bit adierazten daiteke. 227 00:09:30,110 --> 00:09:33,300 Eta badakigu hamaseitarrean dugu, f hamaseitarrean digitu handiena da. 228 00:09:33,300 --> 00:09:36,020 Lortu f beste ditugu han, Bi han gehiago. 229 00:09:36,020 --> 00:09:38,980 Eta orain, fede on hori egin nuen, matematika eskubidea 230 00:09:38,980 --> 00:09:41,890 eta ezkerreko erdian dagoela bit horiek, 1101, 231 00:09:41,890 --> 00:09:43,980 hamaseitarrean d gauza bera da. 232 00:09:43,980 --> 00:09:46,490 Eta eskuineko eskua, 1000, 8 da. 233 00:09:46,490 --> 00:09:48,140 >> Eta erraz bat, en, ikusi nahi ez? 234 00:09:48,140 --> 00:09:51,670 8 represents-- da eskubidea leku eights hori azpian. 235 00:09:51,670 --> 00:09:56,040 Beraz eights zutabean bat daukagu eta hankan, binaka edo direnak ere, ez da ezer. 236 00:09:56,040 --> 00:09:59,830 Beraz, gaur egun gehiago conventionally, gizakiak joera hamaseitarra digituak honetan bezala idazten, 237 00:09:59,830 --> 00:10:03,000 squish besterik ez duzu elkarrekin, eta, ondoren, horien zeinua duzu 0x batera. 238 00:10:03,000 --> 00:10:05,920 Ezer ez den beste esan nahi du bisuala human-- bat pista batean 239 00:10:05,920 --> 00:10:10,350 Hemen balioa hamaseitar bat delako dator agian ez bestela argi dago. 240 00:10:10,350 --> 00:10:13,629 >> Zein da, esateko, azken finean, hori zeroen eta bai patroia, 241 00:10:13,629 --> 00:10:16,170 edo hamaseitarra patroia digituak baliokidean duzu zarela 242 00:10:16,170 --> 00:10:18,990 bila joan hasteko Arazoa Ezarri 4 da hau 243 00:10:18,990 --> 00:10:22,120 eta arazo multzo 4 zehaztapenak oinez egingo honen bidez detail-- gehiago 244 00:10:22,120 --> 00:10:25,344 baina konturatzen urrutira moduko bezain Baliteke hau Lehen begiratuan itxura, 245 00:10:25,344 --> 00:10:27,010 hau asko ikusten hasteko ari zaren. 246 00:10:27,010 --> 00:10:30,320 Eta hain zuzen ere, nahiz eta GDB batean, araztailea sartu astelehenean dugu 247 00:10:30,320 --> 00:10:35,440 eta Dan PSet 3 aurkezten, va sarritan erakusten duzun balio hamaseitar 248 00:10:35,440 --> 00:10:39,910 besterik gehiago izan ohi dute delako hamartarrekin edo binary baino konbentzionalak 249 00:10:39,910 --> 00:10:41,157 ordenagailuen munduan. 250 00:10:41,157 --> 00:10:42,490 Orain dezagun jarri hau testuinguru batean. 251 00:10:42,490 --> 00:10:48,040 Askoren duzu hau gogoratzeko liteke argazki hemen, eta horrek zer zetorren? 252 00:10:48,040 --> 00:10:51,240 Vista, beraz, nahiz eta lehenago baino hori, Windows XP debut honetan egin. 253 00:10:51,240 --> 00:10:52,620 Beraz, hau paisaia eder bat da. 254 00:10:52,620 --> 00:10:55,940 Eta hain zuzen ere, ikutu duzu online-- bada Uste dut Wikipedia artikulu bat da, 255 00:10:55,940 --> 00:11:00,110 dua norbait oso amazingly egitera atera aurkitutako kokapena honetan munduan girotutako eman 256 00:11:00,110 --> 00:11:02,240 bere kamerarekin hain zuzen ere, eskuineko place-- 257 00:11:02,240 --> 00:11:06,510 eta, gaur egun, hau itxura antzekoak baina zehazki, ez da ezarpen berberak. 258 00:11:06,510 --> 00:11:10,060 Irudi hori, ordea, fitxategi batean dagoen bitmap izeneko formatuan, b-m-p. 259 00:11:10,060 --> 00:11:12,910 Eta ari gara super aterako Begirada azkar zer esan nahi zuen. 260 00:11:12,910 --> 00:11:17,770 >> Baina bitmap ezberdinak modu bat besterik ez da Irudi ordezkari oraindik pixel erabiliz 261 00:11:17,770 --> 00:11:19,580 0 s eta 1s, azken finean. 262 00:11:19,580 --> 00:11:23,282 Baina begiratu azkar batean, eta egundaino Sinadura interesgarriagoa 263 00:11:23,282 --> 00:11:24,490 Fitxategiaren hasieran. 264 00:11:24,490 --> 00:11:26,670 Ez da bakarrik hiru byte, hobeto esanda, ez da 265 00:11:26,670 --> 00:11:30,770 byte ereduak sorta oso bat duten esanahia aurrez ezarria dute. 266 00:11:30,770 --> 00:11:34,490 Esate baterako, nonbait ere etorri bitmap irudi baten lehen byte gutxi 267 00:11:34,490 --> 00:11:37,440 da tamaina izango da irudia, irudi zabalera, 268 00:11:37,440 --> 00:11:40,390 Irudiaren altuera, beraz, metadata erabilgarria, izango bada. 269 00:11:40,390 --> 00:11:43,940 Informazio baliagarria dela Photoshop edo grafikoak edozein programa erabiltzen ari zarela 270 00:11:43,940 --> 00:11:45,180 agian benetan zaintzeko. 271 00:11:45,180 --> 00:11:47,170 >> Beraz honetako gehiago Arazoa Ezarri 4, baina hau 272 00:11:47,170 --> 00:11:49,220 bakarrik nahi duela esaten Egunaren amaieran 273 00:11:49,220 --> 00:11:52,390 formatuen guztiak dira erabiltzen dituzun years-- Microsoft Word fitxategiak dira, 274 00:11:52,390 --> 00:11:55,820 Zenbakiak fitxategiak, Excel fitxategiak, Edozein formatuak 275 00:11:55,820 --> 00:11:57,770 duten batzuk izan liteke ezagutzen fitxategi-luzapen 276 00:11:57,770 --> 00:12:00,130 0 s eta 1s besterik kanpaia azpian daude. 277 00:12:00,130 --> 00:12:02,970 Eta gizakiak erabaki dute zer konbentzio daude, 278 00:12:02,970 --> 00:12:08,340 zer 0 s eta 1s ereduak ordezkatzen Word-en fitxategi Excel fitxategi bat versus, 279 00:12:08,340 --> 00:12:10,322 Edozein beste formatuak honako versus. 280 00:12:10,322 --> 00:12:12,780 Beraz, 4 pset ere, bat izango duzu Aukera horrekin jolastu. 281 00:12:12,780 --> 00:12:14,405 >> Baina zer egiten du egitura bat behar izateak. 282 00:12:14,405 --> 00:12:18,012 Hau da, benetan segue polit bat orain C sartu, bertan pare bat besterik ez du 283 00:12:18,012 --> 00:12:20,220 Ezaugarriz osagarriak oraindik ez dugula begiratu zion. 284 00:12:20,220 --> 00:12:24,230 Da hizkuntza eta bat nahiko txiki bat egiten C inguru polita ezaugarriak eta egitura bat da. 285 00:12:24,230 --> 00:12:27,300 Esate baterako, baduzu dezagun irudikatzeko nahi 286 00:12:27,300 --> 00:12:33,690 aldagai bat izan nahi duzu esan programa batzuk ere ikasle bat adierazten du. 287 00:12:33,690 --> 00:12:37,330 Agian ikastaro bat idazten ari zinen Izena emateko programa, edo core erosketak 288 00:12:37,330 --> 00:12:38,870 tresna, edo horrelako zerbait. 289 00:12:38,870 --> 00:12:42,922 Zer dira lotutako datu zati etortzen burura ikasle izatea? 290 00:12:42,922 --> 00:12:44,880 Like ikaslea da zer balioekin irudikatzen? 291 00:12:44,880 --> 00:12:45,732 Bai? 292 00:12:45,732 --> 00:12:46,940 Izen bat ikasle gisa duzu. 293 00:12:46,940 --> 00:12:48,900 Zer gehiago Ikasle arrunt bat izan? 294 00:12:48,900 --> 00:12:49,320 >> Ikusleak: [INAUDIBLE] 295 00:12:49,320 --> 00:12:50,200 >> DAVID J. MALAN: Beraz, barkatu. 296 00:12:50,200 --> 00:12:50,660 >> Ikusleak: Age. 297 00:12:50,660 --> 00:12:52,980 >> DAVID J. MALAN: adin bat edo urtebetetzea hots, bai. 298 00:12:52,980 --> 00:12:53,557 Zer gehiago? 299 00:12:53,557 --> 00:12:54,390 Ikusleak: NAN zenbakia? 300 00:12:54,390 --> 00:12:57,460 DAVID J. MALAN: Beraz ID zenbakia, agian, Telefono zenbaki bat, agian, gela bat, edo etxe, 301 00:12:57,460 --> 00:12:58,670 edo unibertsitatean, edo horrelako zerbait. 302 00:12:58,670 --> 00:13:01,820 Datu zati edozein zenbaki hori Kontaktuen zerrendan agian duzu 303 00:13:01,820 --> 00:13:03,890 horixe ikasle bat definitu liteke. 304 00:13:03,890 --> 00:13:08,490 Beraz, hori egin ahal izateko, kodea ere nahi badugu, honelako zerbait simple egiten dugu hori. 305 00:13:08,490 --> 00:13:15,670 Baliteke, beraz, programa bat daukagu ditu demagun, int main (void). 306 00:13:15,670 --> 00:13:18,920 Eta bat irudikatu nahi badut Ikasle izan nuen, esate baterako, 307 00:13:18,920 --> 00:13:24,330 izen izeneko ikasle haren kate bat, ikasleari gela izeneko kate bat, 308 00:13:24,330 --> 00:13:26,900 agian, ikasle haren NAN izeneko int bat. 309 00:13:26,900 --> 00:13:30,840 Eta nik katea erabiliz delako, I atzera egin eta jarri cs50.h. behar 310 00:13:30,840 --> 00:13:33,300 Agian ez dut stdio.h behar du. 311 00:13:33,300 --> 00:13:38,190 Hargatik egin didaten preemptively eta ez naiz student.c hau deitu oraingoz joan 312 00:13:38,190 --> 00:13:40,080 eta gorde hau. 313 00:13:40,080 --> 00:13:44,206 >> Eta orain zerbait egin ahal dut aldagai hauekin. 314 00:13:44,206 --> 00:13:46,830 Eta besterik ez gabiltza idatzi joan sasi kodea iruzkin bat bezala, 315 00:13:46,830 --> 00:13:48,829 Ez da interesgarria delako orain artean egiten dugu. 316 00:13:48,829 --> 00:13:51,242 Ados, beraz, hau da, programa bat dela nolabait ikasle bat gordetzen. 317 00:13:51,242 --> 00:13:53,450 Zer egin halakoetan nahi dut bi ikasle gorde nahi? 318 00:13:53,450 --> 00:13:55,991 Beraz, nire lehen sena va eskubidea izango, minutu bat itxaron, 319 00:13:55,991 --> 00:14:01,920 Adiskide batek behar badut, zergatik ez dut besterik ez kate izena 2, kate gela 2, 320 00:14:01,920 --> 00:14:04,190 int id2. 321 00:14:04,190 --> 00:14:06,540 Eta egin dugu desagertu Errepide honen aurretik behera 322 00:14:06,540 --> 00:14:10,890 eta zer gure dirudien irtenbide zen hackish kopia itsatsi baten antzeko zerbait izan nahi du 323 00:14:10,890 --> 00:14:11,555 Lana hemen? 324 00:14:11,555 --> 00:14:12,346 Ikusleak: Array bat. 325 00:14:12,346 --> 00:14:13,830 DAVID J. MALAN: Bai, array bat erabili izan dugu. 326 00:14:13,830 --> 00:14:15,620 Eskuin hau oso azkar unwieldy bihurtzen. 327 00:14:15,620 --> 00:14:18,453 Ren arbitrarioki ordenatzeko behar duzu aldagai horiek guztiak izendatzen hasteko. 328 00:14:18,453 --> 00:14:22,190 Eta zuk, giza, izan mantentzeko jarraipena OK izena2 dagokion 329 00:14:22,190 --> 00:14:25,060 dorm2 batera id2 dagokio. 330 00:14:25,060 --> 00:14:26,200 Nahaspila bat bihurtzen da, besterik ez da. 331 00:14:26,200 --> 00:14:29,350 Beraz, asko errazagoa da, Duela aste gutxi batzuk gogora ekarri, 332 00:14:29,350 --> 00:14:34,300 besterik kate izenak izeneko izatea eta, agian, ematen diguten horietako hiru. 333 00:14:34,300 --> 00:14:36,940 Eta gero, agian, ez dugu katea gela eta 334 00:14:36,940 --> 00:14:41,900 horietako hiru, edo konstante bat izan da, ids int eta horietako hiru izan. 335 00:14:41,900 --> 00:14:45,250 Baina, nahiz eta gaur egun hori sentitzen a little sloppy, eskubidea. 336 00:14:45,250 --> 00:14:49,440 Ikasle eta oraindik ari gara I benetan maila baxuko etxebizitza nabil 337 00:14:49,440 --> 00:14:50,470 ezartzeko xehetasunak. 338 00:14:50,470 --> 00:14:52,790 Ikaslea izen bat eta gela bat eta NAN da. 339 00:14:52,790 --> 00:14:59,814 >> Zergatik ezin deklaratzeko besterik ez dut aldagai bat Ikasle deitzen eta deitzen s. 340 00:14:59,814 --> 00:15:02,230 Eta beste ikasle batek nahi badut, zergatik ez deitu nuen t. 341 00:15:02,230 --> 00:15:05,260 Edo sorta oso bat nahi badut Ikasle, zergatik besterik ez dut 342 00:15:05,260 --> 00:15:09,740 esan klase oso bat daukat ikasleak, eta horietako hiru da. 343 00:15:09,740 --> 00:15:12,470 Beste era batera esanda, zergatik ezin dut etortzen nire datu-mota propioa, deitzen sortu 344 00:15:12,470 --> 00:15:15,641 Ikasleak, horien barruan dago, Izen bat, identifikazio bat da, gela bat da, 345 00:15:15,641 --> 00:15:16,890 beste edozein alorretan kopurua da. 346 00:15:16,890 --> 00:15:19,030 Eta bihurtzen da duzu zehazki hori egin daiteke. 347 00:15:19,030 --> 00:15:21,850 >> Beraz, C eta egitura izeneko ezaugarri hau. 348 00:15:21,850 --> 00:15:24,700 Hizkuntza ezaugarri bat dela ahalbidetzen zehazki hau egin digu. 349 00:15:24,700 --> 00:15:28,370 Aurrera joan noa eta ireki structs.h 350 00:15:28,370 --> 00:15:32,299 non ari gara ikusteko joan Ikasle baten definizioa jarraituz. 351 00:15:32,299 --> 00:15:35,215 Bihurtzen da - eta hau, nahiz eta Bat ID bat inplikatuz baino errazagoa 352 00:15:35,215 --> 00:15:36,080 une bat duela. 353 00:15:36,080 --> 00:15:39,120 Etorri nahi baduzu Zure datuak etxekoa mota, 354 00:15:39,120 --> 00:15:42,750 eta, gainera, INT eta char eta karroza eta besteei horiek guztiak existitzen dela, 355 00:15:42,750 --> 00:15:45,810 hacerlo literalki dezakezula Typedef struct idazten, 356 00:15:45,810 --> 00:15:47,880 ondoren, kizkur giltza batzuk, barruan zein duzu 357 00:15:47,880 --> 00:15:51,460 Nahi duzun aldagaiak zerrendatu Ohiko datuak berriari lotu 358 00:15:51,460 --> 00:15:55,670 Izen bat eta gela bat bezala idazten, eta ondoren, kizkur giltza ondoren 359 00:15:55,670 --> 00:15:57,860 datu-mota berri den izen bat ematen dizute. 360 00:15:57,860 --> 00:15:59,220 Beraz, adibidez, ikaslea. 361 00:15:59,220 --> 00:16:03,247 >> Eta zer da honi buruz nice orain dela begiratzen dugu dagokion kodea kontuan hartuz gero, 362 00:16:03,247 --> 00:16:05,080 konbentzio, lehen guztia, da hau jarri 363 00:16:05,080 --> 00:16:08,230 izeneko fitxategi zerbait dot h batean, Goiburu-fitxategi bat, eta hori ez daukagu 364 00:16:08,230 --> 00:16:09,780 geure erabiliz gehiegi zen. 365 00:16:09,780 --> 00:16:12,120 Baina ari gara hasiko joan nahiko pixka bat erabiliz orain. 366 00:16:12,120 --> 00:16:18,650 Eta zer egin dezakegu, azken finean, kode lerro gutxi hauetan 367 00:16:18,650 --> 00:16:22,130 zehazki dela deklaratzen da datu-mota, ikasle batek. 368 00:16:22,130 --> 00:16:23,230 Eta orain, hura erabiltzeko. 369 00:16:23,230 --> 00:16:27,274 >> Sartu orain joan noa fitxategi batean structs1.c deitzen. 370 00:16:27,274 --> 00:16:29,440 Eta dezagun begirada bat Ezaugarri batzuk hemen. 371 00:16:29,440 --> 00:16:32,250 Beraz, gauza bat ireki da hemen batez ere, ezaguna, eta dizkizugu 372 00:16:32,250 --> 00:16:35,040 itzuli, zer ez da une bat besterik ezagutzen. 373 00:16:35,040 --> 00:16:39,880 Ikastaro hau da nire barne goiburua fitxategia, berria da, bai, 374 00:16:39,880 --> 00:16:42,580 PSet 3 non ezik, oroitzapen, helpers.h ditugu. 375 00:16:42,580 --> 00:16:45,150 Beraz # besteak helpers.h gogoratzen dezakezu. 376 00:16:45,150 --> 00:16:49,381 >> Zergatik arren komatxorik erabiltzen dut angeluarekin parentesi ordez? 377 00:16:49,381 --> 00:16:50,630 Noiz aukeratzen da bien arteko I? 378 00:16:50,630 --> 00:16:52,310 Ia beti dirudi I angeluarekin parentesi erabili. 379 00:16:52,310 --> 00:16:55,040 Eta gero, bat-batean guztiak on lerro sei komatxo erabiltzen dut. 380 00:16:55,040 --> 00:16:55,860 Zergatik izan liteke hori? 381 00:16:55,860 --> 00:16:56,700 Bai? 382 00:16:56,700 --> 00:16:57,725 >> Ikusleak: [INAUDIBLE] 383 00:16:57,725 --> 00:16:59,350 DAVID J. MALAN: Hori da benetako bat, eta zer? 384 00:16:59,350 --> 00:17:00,559 Ikusleak: Hori da zure IDE ere. 385 00:17:00,559 --> 00:17:02,475 DAVID J. MALAN: Bai, Hori da nire benetako IDE bat da. 386 00:17:02,475 --> 00:17:05,690 Eta dezagun IDE Ohar ez, zeren Hori dela erabiltzen dut tresna bat besterik ez da. 387 00:17:05,690 --> 00:17:08,119 Hori da nire uneko gida, zehazki. 388 00:17:08,119 --> 00:17:11,647 Beraz structs.h nire fitxategia egin da Ez IDE dauka egoitza, 389 00:17:11,647 --> 00:17:14,480 sistema eragilea berez, baizik eta nire uneko direktorioan da. 390 00:17:14,480 --> 00:17:16,910 Beraz, hitzarmena nahi baduzu Egin zure goiburua fitxategia, besteak beste, 391 00:17:16,910 --> 00:17:18,200 komatxo erabili besterik ez duzu. 392 00:17:18,200 --> 00:17:23,290 >> Zer gauza hau deitzen dugun line 8, oro har? 393 00:17:23,290 --> 00:17:25,200 Hau da, zer? 394 00:17:25,200 --> 00:17:28,220 define zerbait. 395 00:17:28,220 --> 00:17:31,040 Hau konstanteak adierazten du, ezta? 396 00:17:31,040 --> 00:17:33,140 Eduki nahi baduzu programan balio 397 00:17:33,140 --> 00:17:35,110 osotasunean erabiltzen duzula aldiz sorta, da 398 00:17:35,110 --> 00:17:39,330 ona konbentzio da faktore atera, deklaratzen da, hash sinbolo batera 399 00:17:39,330 --> 00:17:43,340 definitzeko, ondoren, konbentzio, guztiak ere maiuskulaz word-- ez izan arren 400 00:17:43,340 --> 00:17:45,320 Guztiz beharrezkoak, baina giza konbentzio da 401 00:17:45,320 --> 00:17:47,210 konstanteak larriz salto beraz dutela 402 00:17:47,210 --> 00:17:50,380 espaziorik visually-- duzu eta ondoren, nahi duzun balioa izan 403 00:17:50,380 --> 00:17:52,250 etengabeko izenaren baliokidea. 404 00:17:52,250 --> 00:17:56,110 Puntu eta koma, baina besterik ez duzu eredu hori jarraitu ez. 405 00:17:56,110 --> 00:17:57,770 >> Beraz, nik zer egiten dugun kodea honetako dut. 406 00:17:57,770 --> 00:18:00,660 Beraz, dezagun begirada bat Programa nagusia hemen. 407 00:18:00,660 --> 00:18:04,080 Linea 12 dudalako Izan structs.h barne, 408 00:18:04,080 --> 00:18:06,492 Izan magikoki dut orain nire esku datu-mota berri bat. 409 00:18:06,492 --> 00:18:09,200 Ez dut besterik behar int sarbidea, eta char, eta karroza, eta katea, 410 00:18:09,200 --> 00:18:10,060 eta urdinak eta beste batzuk. 411 00:18:10,060 --> 00:18:12,470 Orain sarbidea daukat Ikasle datu-mota bat. 412 00:18:12,470 --> 00:18:17,740 Beraz line 12, bi konbinatuz naiz ideas-- datu-mota pertsonalizatua bat eta bi, 413 00:18:17,740 --> 00:18:18,940 array bat erabiliz. 414 00:18:18,940 --> 00:18:21,700 Eta beraz, programa honen bada ere Benetan lagundu nahi dut 415 00:18:21,700 --> 00:18:24,320 hiru ikasle ezberdinak nire programa, I 416 00:18:24,320 --> 00:18:30,480 besterik gabe, esan daiteke eman dit aldagai bat ikasleak deitzen ditu, hauetako bakoitza 417 00:18:30,480 --> 00:18:32,970 mota ikasleak, da bertan Nire datuak pertsonalizatua mota da. 418 00:18:32,970 --> 00:18:35,890 Eta, zehazki, ematen dit Nire lerrotan horietako hiru. 419 00:18:35,890 --> 00:18:37,750 >> Beraz, orain zer egiten dugu programa honetan? 420 00:18:37,750 --> 00:18:40,670 Hemen da besterik begizta errepikatzean for a 0 eta 3, hori delako 421 00:18:40,670 --> 00:18:42,110 zer ikasleak balioa da. 422 00:18:42,110 --> 00:18:44,420 Besterik ez naiz erabiltzaileari galdetu eman dit ikaslearen izena. 423 00:18:44,420 --> 00:18:48,090 Eta gero, linea 17, dugu lerro batez ere ezagutzen dute. 424 00:18:48,090 --> 00:18:50,370 Gure lagun zaharra daukagu Eskuin hegaletik GetString. 425 00:18:50,370 --> 00:18:52,345 Eta zer sintaxia pieza itxuraz berria, 426 00:18:52,345 --> 00:18:55,130 Nik inoiz ez C programatu bada aurretik, eta inoiz erabili structs du? 427 00:18:55,130 --> 00:18:55,510 Bai? 428 00:18:55,510 --> 00:18:56,417 >> Ikusleak: .name The. 429 00:18:56,417 --> 00:18:57,500 DAVID J. MALAN: .name The. 430 00:18:57,500 --> 00:19:01,220 Baina hori ez da gehiegi jauzi bat askoz, orain Ikasle tarte delako i 431 00:19:01,220 --> 00:19:02,590 i-garren ikaslearen ematen dizu. 432 00:19:02,590 --> 00:19:04,730 Eta murgiltze nahi baduzu egitura horren barruan, 433 00:19:04,730 --> 00:19:09,490 aldi bakar bat erabili besterik ez duzu, eta aldagai-izenaren barruan, 434 00:19:09,490 --> 00:19:11,900 edo barruan jabetza sarbidea lortu nahi duzun. 435 00:19:11,900 --> 00:19:14,816 Era berean, ondoren, badut hau ekidin du Erabiltzaile, ematen dit ikaslearen gela, 436 00:19:14,816 --> 00:19:18,390 era berean, ezin duzu gordetzea gela aldakorra barnean katea 437 00:19:18,390 --> 00:19:19,940 Ikasle egitura hori. 438 00:19:19,940 --> 00:19:21,410 >> Eta, orain, gauzak apur fancy bat. 439 00:19:21,410 --> 00:19:24,420 Eta hau da, itxura joan agian asko nahiko laster. 440 00:19:24,420 --> 00:19:27,970 Baina hau oso urruti pset gehiago ikusiko duzu 4, beraz dezagun at begiratu besterik ez gaur egun. 441 00:19:27,970 --> 00:19:33,364 Bihurtzen linea 23 bidez dela 38, zer uste duzu dut agian egiten ari naiz? 442 00:19:33,364 --> 00:19:35,530 Kendu Nik iruzkinak gaur egun, baina bertsioari 443 00:19:35,530 --> 00:19:38,660 Kodea online egiteko erreferentziazko iruzkinak ditu. 444 00:19:38,660 --> 00:19:40,171 Zer egiten egon badirudi I? 445 00:19:40,171 --> 00:19:42,530 >> Ikusleak: guztiarekin Agiria gordetzea duten erabiltzaileak sartu dituzun datuak. 446 00:19:42,530 --> 00:19:44,530 >> DAVID J. MALAN: Bai, zehazki, modu berri bat da 447 00:19:44,530 --> 00:19:46,370 bi ari garela ikustea, C ezaugarri bat, 448 00:19:46,370 --> 00:19:48,700 Horren bidez, nire fitxategiak propioa sortu ahal izango dut. 449 00:19:48,700 --> 00:19:51,580 Horrela, orain arte, ia programa guztietan estaturik gabeko duzu zuk idatzitako. 450 00:19:51,580 --> 00:19:53,334 Nik egin bezala exekutatzen bezain laster, kito. 451 00:19:53,334 --> 00:19:55,000 Ez dago memoria edo haren oroitzapena ez da. 452 00:19:55,000 --> 00:19:56,110 Ez dago gordetako fitxategiak. 453 00:19:56,110 --> 00:19:58,120 Baina ez baduzu nahi gorde ditu sarrerako 454 00:19:58,120 --> 00:20:02,100 gertatu zen, joko bat bezala edo programa batean Hau atsegin, bihurtzen da, beraz, egin ahal izango dugu. 455 00:20:02,100 --> 00:20:04,360 Eta hau gehiago ikusiko duzu pset 4 eta artikulua ere. 456 00:20:04,360 --> 00:20:08,661 Baina lerro hau 23 funtsean students.csv izeneko fitxategi bat sortzen du. 457 00:20:08,661 --> 00:20:10,160 Eta zuk ikusi dezake hau baino lehen. 458 00:20:10,160 --> 00:20:14,250 Nik inoiz ikasi Nahiz CS aurretik, CSV komaz bereizitako aldagaiak. 459 00:20:14,250 --> 00:20:19,000 Da gizon oso eskasa izan da bat bezalakoa da Excel fitxategi baten bertsioa, 460 00:20:19,000 --> 00:20:22,270 horrek esan nahi du ireki behar izan Excel eta Apple zenbakiak ere, 461 00:20:22,270 --> 00:20:23,830 eta lerro eta zutabe ditu. 462 00:20:23,830 --> 00:20:26,485 Baina ez da jabetza- Microsoft edo Apple bezalako formatuan. 463 00:20:26,485 --> 00:20:29,840 Besterik komaz banantzen da balioak momentu batean ikusiko dugu. 464 00:20:29,840 --> 00:20:31,010 >> Eta besterik ez, etxebizitza bat. 465 00:20:31,010 --> 00:20:33,480 Linea 23, oso at azkenean, nire bigarren argumentu 466 00:20:33,480 --> 00:20:37,700 izeneko funtzio berri honetara f ireki fitxategia irekita w da. 467 00:20:37,700 --> 00:20:39,430 Zer w adierazteko liteke? 468 00:20:39,430 --> 00:20:40,022 Bai? 469 00:20:40,022 --> 00:20:41,260 >> Ikusleak: idatzi beharreko fitxategia aukera ematen du? 470 00:20:41,260 --> 00:20:42,630 >> DAVID J. MALAN: aukera ematen du idatzi duzun fitxategia. 471 00:20:42,630 --> 00:20:44,810 Beraz, ez da aldaera pare bat Hori irudirik konektatu ahal izango duzu. 472 00:20:44,810 --> 00:20:47,184 Baina irakurtzeko besterik nahi ez baduzu fitxategiak orduan, hori dela begiratzeko 473 00:20:47,184 --> 00:20:50,010 eta irakurri memorian, zuk besterik erabili aurrekontua unquote "r". 474 00:20:50,010 --> 00:20:53,110 To the idatzi nahi baduzu fitxategia, aurrekontua erabili duzu "w" unquote. 475 00:20:53,110 --> 00:20:55,190 Ez da, gainera, eta erantsi Beste gauza pare bat 476 00:20:55,190 --> 00:20:57,356 Dauden fitxategiak aldatu nahi izanez gero. 477 00:20:57,356 --> 00:21:00,480 Orain ari gara hau ikusten jarraitzea gauza, ondoren, itzuli dugu 24 lerro. 478 00:21:00,480 --> 00:21:02,640 NULL, bihurtzen da, da balio berezia duten 479 00:21:02,640 --> 00:21:06,070 beharreko zenbait eginkizun ak itzulitako dezake Zerbait desagertu wrong-- izan baditu 480 00:21:06,070 --> 00:21:08,490 fitxategia ez badago, Nik memoria agortu bada, 481 00:21:08,490 --> 00:21:09,620 edo beste huts mordo bat. 482 00:21:09,620 --> 00:21:13,470 Baina, oraingoz, Demagun besterik hori besterik konbentzionalak error egiaztapena da. 483 00:21:13,470 --> 00:21:17,090 Hemen line 26, errepikatzean naiz 0 eta 3 Nire ikasle guztiak baino gehiago. 484 00:21:17,090 --> 00:21:20,470 Eta hau da, mota moduko funtzio berri bat, fprintf, 485 00:21:20,470 --> 00:21:21,460 baina besterik etxebizitza bat. 486 00:21:21,460 --> 00:21:24,370 Printf besterik inprimatu badago formatu kate bat, 487 00:21:24,370 --> 00:21:26,507 zer esan nahi du seguruenik fprintf? 488 00:21:26,507 --> 00:21:27,590 Ikusleak: inprimatzen fitxategi batean gordetzeko. 489 00:21:27,590 --> 00:21:29,290 DAVID J. MALAN: Print bat formateatuta fitxategi batean gordetzen katea. 490 00:21:29,290 --> 00:21:31,180 Hau da, zer gehiago behar izateagatik f bitartekoak fitxategia da. 491 00:21:31,180 --> 00:21:36,420 Eta lehen argumentua berri du izan aldakorra, zure fitxategia adierazten du. 492 00:21:36,420 --> 00:21:38,866 Ondoren, besterik ez dugu formatu bat katea bezala printf. 493 00:21:38,866 --> 00:21:40,740 Eta hori, nahiz eta sintaxia berria da, hau da, besterik gabe 494 00:21:40,740 --> 00:21:44,610 esan nahi du ikaslearen izen-abizenak, konektatu plug-in ikaslea gela, eta, ondoren, 495 00:21:44,610 --> 00:21:47,160 fclose, fitxategia itxi. 496 00:21:47,160 --> 00:21:49,730 Eta gero lastly-- hau da berria eta itzuli dugu honetarako 497 00:21:49,730 --> 00:21:53,240 long-- libre uzten ari naiz aurretik arrazoiak direla eta ikaslearen 498 00:21:53,240 --> 00:21:54,860 Hori gertatu da han goian. 499 00:21:54,860 --> 00:21:56,820 Baina itzuli egingo dugu long-- hori iritsi aurretik 500 00:21:56,820 --> 00:21:59,820 Hori of GetString nola dagoelako benetan kanpaia azpian lanean. 501 00:21:59,820 --> 00:22:01,280 >> Beraz, dezagun begirada bat hemen. 502 00:22:01,280 --> 00:22:04,380 Ls idazten dudanean bada nire direktorioa, nabarituko ez duten I 503 00:22:04,380 --> 00:22:09,360 students.csv izeneko fitxategi bat dute, Ez dago besterik, ez da existitzen. 504 00:22:09,360 --> 00:22:14,965 Beraz, programa honetan bildu badut, structs-1,. / Structs-1, 505 00:22:14,965 --> 00:22:20,570 eta aurrera joan eta idatzi egingo dut Andi, nor Berkeley-en bizi Yale. 506 00:22:20,570 --> 00:22:26,350 Rob izan goaz nor Thayer bizi da egun hauetan. 507 00:22:26,350 --> 00:22:33,760 Eta ez dezagun etorriko non batera da, nire ustez, Maria Mather da, 508 00:22:33,760 --> 00:22:35,100 I behar bezala gogoratuko dute gero. 509 00:22:35,100 --> 00:22:36,460 >> Beraz, ezer gutxi gertatzen. 510 00:22:36,460 --> 00:22:40,680 Baina ls badut orain, ez students.csv da. 511 00:22:40,680 --> 00:22:43,080 Dezagun aurrera eta students.csv irekita. 512 00:22:43,080 --> 00:22:46,050 Hau da, berriro ere oso bat arin fitxategi formatua. 513 00:22:46,050 --> 00:22:49,570 Baina ez dut besterik konbentzio bat onartu bi lerro eta zutabe hemen dudala. 514 00:22:49,570 --> 00:22:52,020 Lehenengo zutabean pertsonen abizenak. 515 00:22:52,020 --> 00:22:55,740 Bigarren zutabean da ikaslearen du gela, edo unibertsitatean, edo etxe edo whatnot. 516 00:22:55,740 --> 00:22:57,900 Eta orain salbatu honek Nik fitxategi batean betirako. 517 00:22:57,900 --> 00:22:59,280 >> Beraz, ez da hori guztia interesgarria. 518 00:22:59,280 --> 00:23:02,980 Baina hau ez da, besterik gabe, urrats harri bat orain Informazio diraute ahal izateaz 519 00:23:02,980 --> 00:23:04,040 betirako. 520 00:23:04,040 --> 00:23:08,340 Beraz, ikus dezagun orain zer gehiago ezin dugu Ezaugarri horiek eta beste egin. 521 00:23:08,340 --> 00:23:10,729 Baina lehen, edozein galdera? 522 00:23:10,729 --> 00:23:12,145 Asko izan zen, eta hori izan zen azkar. 523 00:23:12,145 --> 00:23:16,131 Baina asko ikusiko duzu pset 4 gehiago, eta baita. 524 00:23:16,131 --> 00:23:16,630 Bai? 525 00:23:16,630 --> 00:23:19,360 >> Ikusleak: Ba al dago modu bat izenak gehituz fitxategi hori jarraituko? 526 00:23:19,360 --> 00:23:19,880 >> DAVID J. MALAN: Galdera ona. 527 00:23:19,880 --> 00:23:21,800 Ba al dago jarraituko modu bat izenak gehituz fitxategi hori? 528 00:23:21,800 --> 00:23:22,340 Bai. 529 00:23:22,340 --> 00:23:24,630 Eta, hain zuzen ere, azkenean baduzu ireki fitxategia berriro irekitzea, 530 00:23:24,630 --> 00:23:26,780 aurrekontua erabili beharko duzu: unquote "a" append, 531 00:23:26,780 --> 00:23:31,090 bertan besterik linea berri bat gehitu litzateke, bat linea berria behin eta berriro, zehazki. 532 00:23:31,090 --> 00:23:32,010 Ona galdera. 533 00:23:32,010 --> 00:23:32,950 Beste galdera? 534 00:23:32,950 --> 00:23:33,450 Bai? 535 00:23:33,450 --> 00:23:35,580 Ikusleak: you ran badu programa berriro oraintxe, 536 00:23:35,580 --> 00:23:38,000 litzateke izenak gehituz mantendu da artxibatzen edo litzateke zabalduko da fitxategi berri bat? 537 00:23:38,000 --> 00:23:38,740 >> DAVID J. MALAN: Ah, galdera ona. 538 00:23:38,740 --> 00:23:41,448 Programaren berriro eskuineko ran baduzu orain, agian, izen berriak idatzi, 539 00:23:41,448 --> 00:23:44,820 litzateke gehitu beharko diote da edo gainidatzi fitxategiak orduan? 540 00:23:44,820 --> 00:23:47,420 Bigarrenak, berriz, ez naiz delako Ez erantsi moduarekin. 541 00:23:47,420 --> 00:23:49,930 Eta besterik blindly nagoelako fitxategia ireki idazteko ireki, 542 00:23:49,930 --> 00:23:51,310 besterik ez da fitxategia gainidatzi egingo da. 543 00:23:51,310 --> 00:23:54,570 Beraz, ez dut hain zuzen ere, behar litzateke egin eransteko da, epe luzean benetan izan nahi badut 544 00:23:54,570 --> 00:23:55,350 datu-basea. 545 00:23:55,350 --> 00:23:58,220 >> Orain CSV erabilgarria da, Egia, nahiz eta bezalako bazaude writing-- 546 00:23:58,220 --> 00:24:00,100 eta azkenean, ikusiko dugu hau geroago seihilekoan denean 547 00:24:00,100 --> 00:24:01,455 beste helburuetarako CSVs erabiltzen dugu. 548 00:24:01,455 --> 00:24:04,920 Pertsona guztiak gorde nahi baduzu duten ekitaldi batzuk matrikulatu 549 00:24:04,920 --> 00:24:07,420 edo sinatu zure ikaslea taldea, edo horrelako zerbait, 550 00:24:07,420 --> 00:24:10,330 datuak gordetzeko mota honetan formatuaren da super erosoa. 551 00:24:10,330 --> 00:24:12,580 Literalki delako, badut ziren fitxategi hau deskargatzeko. 552 00:24:12,580 --> 00:24:14,540 Double-- izan dut eta utzi benetan saiatu honetan 553 00:24:14,540 --> 00:24:16,720 Excel edo zenbakiak izan beharko dut hemen. 554 00:24:16,720 --> 00:24:19,130 >> Eskuin-klik noa edo kontrol-klikatu nire fitxategia. 555 00:24:19,130 --> 00:24:20,020 Whoops. 556 00:24:20,020 --> 00:24:21,830 Eskuin-klikatu edo kontrol-klikatu nire fitxategia. 557 00:24:21,830 --> 00:24:24,960 Tira, nire saguaren ez da lankideen. 558 00:24:24,960 --> 00:24:32,694 Download-- noa fitxategi guztiak deskargatzeko hemen orain 559 00:24:32,694 --> 00:24:33,860 Besterik ez, beraz, batek hartu ahal izango dut. 560 00:24:33,860 --> 00:24:37,850 Eta ikus dezagun lan egiten bada students.csv-- lehen aldiz 561 00:24:37,850 --> 00:24:39,310 I aktibatu duzun. 562 00:24:39,310 --> 00:24:41,360 Orain nire kontaktuak ikusi nahi dute. 563 00:24:41,360 --> 00:24:44,310 Orain, izena eman behar dut. 564 00:24:44,310 --> 00:24:47,620 Ikusi nola erraza CSVs erabili ahal da? 565 00:24:47,620 --> 00:24:50,840 Bai, gorde sortu data. 566 00:24:50,840 --> 00:24:52,375 Ados, orain class egiteko prest gaude. 567 00:24:52,375 --> 00:24:58,750 568 00:24:58,750 --> 00:25:00,370 Ados, ai, zer berri? 569 00:25:00,370 --> 00:25:02,920 Ados, hurbil. 570 00:25:02,920 --> 00:25:04,750 Hori magikoa izan zen. 571 00:25:04,750 --> 00:25:07,280 Ados, orain eguneratu dugu. 572 00:25:07,280 --> 00:25:10,890 Eta orain, hura ahaztu eta artxibatzen jatorriz ireki nuen, 573 00:25:10,890 --> 00:25:13,090 baina zer a-- Hor dugu. 574 00:25:13,090 --> 00:25:16,341 Ados, beraz, orain Excel fitxategi bat daukagu. 575 00:25:16,341 --> 00:25:18,290 Eskerrik asko. 576 00:25:18,290 --> 00:25:20,764 >> Ados, beraz, zer egin nuen zatia erraza izan zen. 577 00:25:20,764 --> 00:25:23,930 Noski, ezin izan du aurrez instalatutako Excel edo zenbakiak, edo dena delakoa programa. 578 00:25:23,930 --> 00:25:25,846 Baina hau ez da polita, zeren orain manipulatu ahal izango dut 579 00:25:25,846 --> 00:25:28,090 formatu estandar batean dauden datuak. 580 00:25:28,090 --> 00:25:30,294 >> Beraz, gaur egun dezagun testuingurua non utzi dugun aldatzeko 581 00:25:30,294 --> 00:25:32,710 azken aldiz, bertan zegoen hasteko off hartu prestakuntza gurpilak. 582 00:25:32,710 --> 00:25:34,543 Baina lehen, zuk ez ikusi lehenago bazkaria honetan 583 00:25:34,543 --> 00:25:38,150 da berriro hemen gertatzen Fire at eta Cambridge, Sitar New Haven izotza. 584 00:25:38,150 --> 00:25:43,150 Kontu CS50s webgunean ASAP CS50 ikasleak eta langileak batzeko. 585 00:25:43,150 --> 00:25:46,090 >> Beraz, prestakuntza gurpilak hartu genuen astelehenean off follows-- gisa 586 00:25:46,090 --> 00:25:49,120 katea izan ere deklaratu CS50s denbora pixka liburutegian. 587 00:25:49,120 --> 00:25:52,650 Eta polita da, aukera ematen duelako digu aldagai buruz hitz izateaz 588 00:25:52,650 --> 00:25:54,660 hitzak osatu eta esaldi eta gehiago. 589 00:25:54,660 --> 00:25:56,710 Baina bihurtzen da katea ez da existitzen. 590 00:25:56,710 --> 00:26:00,200 Hori besterik ez da sinonimo bat, edo alias bat da, zerbait sortu dugu hori 591 00:26:00,200 --> 00:26:03,780 Egia esan, apur bat gehiago tekniko char bat izeneko *. 592 00:26:03,780 --> 00:26:07,900 >> Eta hain zuzen ere, adibide bat ikusi genuen astelehenean programa baten 593 00:26:07,900 --> 00:26:11,200 Ez zuela jokatu espero dugu nahiko. 594 00:26:11,200 --> 00:26:13,630 Hau fitxategia bere, konparazio-0. 595 00:26:13,630 --> 00:26:17,910 Eta gogoratzen duten alderatu-0, bada Asteleheneko programa berkonpilatu dut 596 00:26:17,910 --> 00:26:22,670 eta exekutatu alderatu-0 eta mota ama ere Minuskulaz, eta ama minuskula berriro. 597 00:26:22,670 --> 00:26:25,320 Programak azpimarratu dut idatzi gauza desberdinak, 598 00:26:25,320 --> 00:26:29,210 nahiz eta ama, guztiak ere, nahiz eta Minuskulaz, berdin-berdina da ikusmen. 599 00:26:29,210 --> 00:26:31,990 Beraz, zer erantzun laburra izan zen zergatik ordenagailua pentsatzen 600 00:26:31,990 --> 00:26:34,500 bi kate horiek desberdinak dira? 601 00:26:34,500 --> 00:26:35,250 Bai? 602 00:26:35,250 --> 00:26:36,534 >> Ikusleak: [INAUDIBLE] 603 00:26:36,534 --> 00:26:37,450 DAVID J. MALAN: Eskuin. 604 00:26:37,450 --> 00:26:39,600 Beraz, ama eta, lehen aldiz , Idatzi dut, ez dago izateaz 605 00:26:39,600 --> 00:26:42,710 nonbait gordetzen nire ordenagailuan memoria, baina beste leku batean 606 00:26:42,710 --> 00:26:44,690 Bigarren denbora baino idatz ama naiz. 607 00:26:44,690 --> 00:26:46,580 Orain zalantzarik optimizatzeko zitekeen. 608 00:26:46,580 --> 00:26:49,205 Ordenagailua smart izan daiteke eta bi kateak konturatzen, beno, 609 00:26:49,205 --> 00:26:49,954 berdin-berdina ari dira. 610 00:26:49,954 --> 00:26:51,520 Gurea ez dit premiazkoak gorde. 611 00:26:51,520 --> 00:26:54,229 Baina ordenagailuak ez egin, optimizazioa haiei kontatu ezean. 612 00:26:54,229 --> 00:26:56,061 Beraz, besterik ezean, ari dira besterik azkenean joan 613 00:26:56,061 --> 00:26:57,670 oroimenez bi leku desberdinetan. 614 00:26:57,670 --> 00:27:01,570 Eta beraz, argiagoa, noiz izango den bi kate alderatu dugu, 615 00:27:01,570 --> 00:27:03,950 s lehen deitzen zen, Bigarren deitzen zen 616 00:27:03,950 --> 00:27:08,530 t, zer zehazki nengoen on line 13 hemen alderatuz? 617 00:27:08,530 --> 00:27:09,494 Bai. 618 00:27:09,494 --> 00:27:12,390 >> Ikusleak: da memorian tokia da aldakorra dela seinalatzen duten. 619 00:27:12,390 --> 00:27:14,900 >> DAVID J. MALAN: Zehazki, nengoen memorian lekua alderatuz 620 00:27:14,900 --> 00:27:16,300 aldagai horiek duten adierazi da. 621 00:27:16,300 --> 00:27:20,560 Beraz, zehazki, ama balitz zen byte 2 zenbakia 1, eta, eta 3, 622 00:27:20,560 --> 00:27:24,020 eta, 4 delako gogoratu backslash 0 beharra amaieran modu guztiak izan nahi du. 623 00:27:24,020 --> 00:27:29,420 Eta beste ama, m-o-m instantzia, helbidea, 10, 11, 12, eta 13 izan zen. 624 00:27:29,420 --> 00:27:33,100 Zen alderatuz I 1, helbide hori, memoria kokaleku horretara, 625 00:27:33,100 --> 00:27:35,160 10 aurka, hau da, jakina, ez da gauza bera. 626 00:27:35,160 --> 00:27:36,260 1 ez da 10. 627 00:27:36,260 --> 00:27:39,620 >> Beraz, hau da, polita, nahiko erraza da. 628 00:27:39,620 --> 00:27:42,870 Baina problematikoa da heinean Ezin dugu badirudi kateak konparatzeko. 629 00:27:42,870 --> 00:27:44,930 Beraz fundamentally-- eta maila baxua honetan, 630 00:27:44,930 --> 00:27:47,300 ezartzea nahi baduzu programa bat konparatu 631 00:27:47,300 --> 00:27:50,270 bi hitz bereizten dituzten Erabiltzaile kalitateagatik idatzitako, 632 00:27:50,270 --> 00:27:53,944 egiten sortu line gastatuen char, besterik oro har, 633 00:27:53,944 --> 00:27:55,360 Zer egin itxuraz behar dugu? 634 00:27:55,360 --> 00:27:57,940 Ez da nahikoa, besterik gabe, Bi helbide horiek begiratu. 635 00:27:57,940 --> 00:27:58,860 Zer egin behar dugu? 636 00:27:58,860 --> 00:27:59,360 Bai? 637 00:27:59,360 --> 00:28:01,120 >> Ikusleak: Batetik bestera joateko bitartez katea [INAUDIBLE]. 638 00:28:01,120 --> 00:28:02,600 >> DAVID J. MALAN: Bai, dezagun kate bidez batetik bestera joateko. 639 00:28:02,600 --> 00:28:05,808 Dezagun erabili ren bat amaitzen da, berriz, begizta bat egiteko, edo edozein dela ere ari erosoenak. 640 00:28:05,808 --> 00:28:08,840 Eta nik bi kateak lortu dugu nonbait oroimenean, dezagun en bakoitzeko 641 00:28:08,840 --> 00:28:11,770 Lehenengo karaktereak, ondoren, bakoitzak egin bigarren pertsonaia, ondoren, hirugarren eta laugarren, 642 00:28:11,770 --> 00:28:15,206 eta bosgarrena, dugu hit arte zer Sentinel balio berezia? 643 00:28:15,206 --> 00:28:16,080 Ikusleak: [INAUDIBLE] 644 00:28:16,080 --> 00:28:18,800 DAVID J. MALAN: Bai, backslash zero, eta amaitzen bai katea at 645 00:28:18,800 --> 00:28:20,100 erabaki hori dela esan daiteke. 646 00:28:20,100 --> 00:28:21,970 Agian karaktere bakar bat datorren dugu? 647 00:28:21,970 --> 00:28:22,990 Hala ez bada, faltsua itzuliko. 648 00:28:22,990 --> 00:28:24,770 Hala bada, itzultzeko egia. 649 00:28:24,770 --> 00:28:28,800 Eta beraz, hori zehazki zer bertsio honetan Programaren konparazio-1.c du. 650 00:28:28,800 --> 00:28:31,677 Berdina da zer egiten dugun Astelehena begiratu nuen ditudan ezik 651 00:28:31,677 --> 00:28:34,760 Ahaztuak hitza kate kentzeko arren Hori ez impact-- funtzionalak ditu guztiak 652 00:28:34,760 --> 00:28:37,450 Orain egiten ari naiz da kendu visual prestakuntza gurpilak batzuk, 653 00:28:37,450 --> 00:28:40,880 baina argi eta garbi ikusi ahal izateko s eta t helbideak dira. 654 00:28:40,880 --> 00:28:43,020 Eta hori da, izar ditu, izartxoa, adierazten 655 00:28:43,020 --> 00:28:46,690 Helbide bat da, bestela ezaguna Gehiago teknikoki erakuslea. 656 00:28:46,690 --> 00:28:49,880 >> Beraz, noiz s on deklaratzen dut 9 lerro eta char * s esaten, 657 00:28:49,880 --> 00:28:52,160 horrek ez du esan emaidazu kate bat. 658 00:28:52,160 --> 00:28:56,360 Horrek esan nahi du eman dit aldagai baten helburua bizitza Helbide bat gordetzeko. 659 00:28:56,360 --> 00:29:00,400 Eta azkenean buruz diodalako sartu kate baten helbidea. 660 00:29:00,400 --> 00:29:03,500 Eta hain zuzen ere, GetString, nahi izan argi eta garbi, ez du kate bat itzuli. 661 00:29:03,500 --> 00:29:06,110 Ez du ama itzultzeko backslash zero, per se. 662 00:29:06,110 --> 00:29:10,005 Zer esan nahi du zehazki, GetString eta, hain zuzen itzultzeko? 663 00:29:10,005 --> 00:29:10,880 Ikusleak: [INAUDIBLE] 664 00:29:10,880 --> 00:29:14,080 DAVID J. MALAN: helbide bat, lehen karaktere helbidea 665 00:29:14,080 --> 00:29:16,070 kate batzuk ere egiten ditu ahaztuak. 666 00:29:16,070 --> 00:29:19,250 Eta, beraz, gaur egun ikusten ari gara keyword berezi bat berriro. 667 00:29:19,250 --> 00:29:20,640 Eta, aipatu lehenago dut. 668 00:29:20,640 --> 00:29:23,620 Hau da konbentzio ona izango da orain ikusiko dugu behin eta berriro. 669 00:29:23,620 --> 00:29:27,540 Dut egiaztatuz ziur dagoela egiteko s ez da nulua eta t ez da nulua. 670 00:29:27,540 --> 00:29:30,100 Oinarritutako delako benetan nire on Aipamen azkar lehenago, 671 00:29:30,100 --> 00:29:35,510 GetString ez itzultzen bada, zer esan nahi helbide bat baina N-U-L-L, hau da, berriro, 672 00:29:35,510 --> 00:29:36,990 balio berezi batzuk? 673 00:29:36,990 --> 00:29:37,890 >> Ikusleak: Akatsa. 674 00:29:37,890 --> 00:29:38,600 >> DAVID J. MALAN: error bat da. 675 00:29:38,600 --> 00:29:39,550 Zerbait oker joan. 676 00:29:39,550 --> 00:29:41,341 Eta zer normalean Gerta liteke, batez ere, 677 00:29:41,341 --> 00:29:45,162 bertan strings-- batera egongo den advance-- luzera ezezaguneko 678 00:29:45,162 --> 00:29:46,870 agian, ordenagailuak ' oroimen gabe, agian, 679 00:29:46,870 --> 00:29:49,280 mekanografiatuak, besteak beste, bat duzu Hitz edo esaldi luze 680 00:29:49,280 --> 00:29:51,880 edo, besteak beste, idazlan erraldoi bat itsatsiko ez da nahikoa memoria da. 681 00:29:51,880 --> 00:29:55,340 Eta beraz, GetString ezin itzuli gauza osoa helbidea, 682 00:29:55,340 --> 00:29:56,620 beraz, besterik ez da ezer itzuliko da. 683 00:29:56,620 --> 00:30:00,580 Eta akats bat gertatu esaten du NULL balioa berezi itzuliz. 684 00:30:00,580 --> 00:30:02,890 Zero helbidea da, nolabait esateko. 685 00:30:02,890 --> 00:30:06,157 >> Orain bihurtzen da C bat dator Funtzio hori iterazio egiten duen. 686 00:30:06,157 --> 00:30:09,240 Guk ez dugu izan, hau ezartzeko batera begizta edo bitartean geure begizta bat izan da. 687 00:30:09,240 --> 00:30:11,150 Funtzio bat erabili ahal izango dugu, laburki izeneko, 688 00:30:11,150 --> 00:30:15,400 irabiatu comp, edo kate alderatu, zeinen bizitzako helburua da, zehazki horretarako. 689 00:30:15,400 --> 00:30:19,990 Dela bi erakusle, bi helbide ematean, eta izango da helbide horiek joan 690 00:30:19,990 --> 00:30:23,130 eta gero alderatu gutun for kalitateagatik gutun egiteko gutun, 691 00:30:23,130 --> 00:30:26,610 denean bakarrik zer da egia gelditu? 692 00:30:26,610 --> 00:30:31,540 When senez comp irabiatu behar gelditu errepikatzean, argi izaten? 693 00:30:31,540 --> 00:30:35,400 When 0 barra hits ere bai katea, eta amaitzen da erabaki ahal izango da 694 00:30:35,400 --> 00:30:38,910 ha guztia datorren, edo han izan da desadostasun bat? 695 00:30:38,910 --> 00:30:42,740 >> Beraz, hau abiarazi dugu orain eta saiatu bada gure little kapitalizazio jokoa, 696 00:30:42,740 --> 00:30:49,260 beraz, alderatu-1, ./compare-1, eta ama idatzi minuskulaz bi aldiz. 697 00:30:49,260 --> 00:30:50,560 Orain, gauza bera da. 698 00:30:50,560 --> 00:30:54,080 Eta berriro egiten badut batera Minuskulaz eta gero, agian, maiuskulaz. 699 00:30:54,080 --> 00:30:56,720 Orain, hain zuzen ere bereizten ditu goiko eta minuskulak. 700 00:30:56,720 --> 00:31:00,440 Beraz, ez dela gogor edo magikoa, baina ez du orain azaldu 701 00:31:00,440 --> 00:31:03,140 zer ari den gertatzen kanpaia azpian. 702 00:31:03,140 --> 00:31:07,640 >> Beraz, zer gehiago atera ikasgai mota honetan? 703 00:31:07,640 --> 00:31:08,980 Beraz, dezagun begirada bat. 704 00:31:08,980 --> 00:31:15,380 Aurrera joan eta idatzi bat noa programa azkar hemen kopia-0 deitzen. 705 00:31:15,380 --> 00:31:21,594 Eta orain, goazen aurrera, eta benetan en hau egin kopia-0 batera utzi, 706 00:31:21,594 --> 00:31:23,010 hemen zer dut begirada bat hartu. 707 00:31:23,010 --> 00:31:24,712 Lehenengo erabiltzaileak esaten dut, esan zerbait. 708 00:31:24,712 --> 00:31:26,420 Ondoren kate bat lortuko dut eta bertan gordeta I s ere. 709 00:31:26,420 --> 00:31:29,810 Gero check I s berdinen NULL, besterik gabe itzultzeko 1. 710 00:31:29,810 --> 00:31:31,590 Beraz, hau da, besterik gabe standard error egiaztapena da. 711 00:31:31,590 --> 00:31:33,112 Ezer interesgarria gertatu da. 712 00:31:33,112 --> 00:31:36,320 Eta hain zuzen ere, lortuko dugu error kentzeko bada egiaztapena, hau bezalako aste 1 kodea itxura 713 00:31:36,320 --> 00:31:36,985 une honetan. 714 00:31:36,985 --> 00:31:39,110 Baina hasi naiz bat lortzeko apur hori hobeto. 715 00:31:39,110 --> 00:31:43,340 >> 16 linea Orain, duela astebete, agian, nahiz eta duela pare bat egun edo minutu, 716 00:31:43,340 --> 00:31:46,720 esan dezakezue line 16 da t aldakorra izeneko bat sortzeko 717 00:31:46,720 --> 00:31:48,219 eta kopiatzea sartu s. 718 00:31:48,219 --> 00:31:50,010 Eta hori ezin hobeto bat arrazoizkoa eramateko. 719 00:31:50,010 --> 00:31:51,560 Baina zehazkiago orain. 720 00:31:51,560 --> 00:31:54,190 Zer da line 16 gertatzen da? 721 00:31:54,190 --> 00:31:56,170 Zer da ohitu kopiatutako eskuinetik ezkerrera? 722 00:31:56,170 --> 00:31:56,669 Bai? 723 00:31:56,669 --> 00:31:58,490 Ikusleak: t s helbide bat lortzeko? 724 00:31:58,490 --> 00:32:01,220 >> DAVID J. MALAN: Zehazki, t s, helbide lortzean. 725 00:32:01,220 --> 00:32:05,170 Beraz, argi izan orain, alde egiten badut Adibide horretan itzuli 726 00:32:05,170 --> 00:32:08,520 eta marraztu dut gauza idatzi dut. 727 00:32:08,520 --> 00:32:11,640 Eta zer idatzi dut in-- hemen s da, eta hemen 728 00:32:11,640 --> 00:32:15,830 dago zer nonbait idatzi dut ere memoria, ama eta, ondoren, barra bat 729 00:32:15,830 --> 00:32:17,840 0 hori niretzat gehitu. 730 00:32:17,840 --> 00:32:23,060 Zer gordetzen dut hemen ere, gogora ekarri, hau kokapena 1, 2, 3, 4, da, 731 00:32:23,060 --> 00:32:24,655 hau da, zer da gaur egun, s ere. 732 00:32:24,655 --> 00:32:29,220 Beraz, on line 16 bada, ematen dit esaten dut beste t eta denda aldakorra izeneko 733 00:32:29,220 --> 00:32:33,590 s balioan ere, zer ez dut hemen gordeta lortzen ez ama 734 00:32:33,590 --> 00:32:35,480 baizik eta, besterik gabe, 1 zenbakia. 735 00:32:35,480 --> 00:32:38,520 >> Beraz, aurrera begiratu behar dugu programa honetan bada orain, zer gertatuko? 736 00:32:38,520 --> 00:32:40,690 Beraz, ez dagoela ohartuko da Funtzio honek dituzun 737 00:32:40,690 --> 00:32:44,410 Duela denbora batzuk erabili dituzte, hau Zesar, edo Vigenere, edo, agian, ez da batere. 738 00:32:44,410 --> 00:32:48,170 Diotenez, nire printf dut, ez naiz kopia t larriz joan. 739 00:32:48,170 --> 00:32:51,616 Lehen lerroan 19, azkar behatu ere egiaztatu, strlen egiaztapen t luzera. 740 00:32:51,616 --> 00:32:53,740 Zeren eta ez dut nahi saiatu zerbait larriz 741 00:32:53,740 --> 00:32:55,104 ez katerik ez bada. 742 00:32:55,104 --> 00:32:57,520 Erabiltzaile hit bada bakarrik sartzen, ez dago ezer larriz. 743 00:32:57,520 --> 00:33:01,100 Beraz, ez dut nahi line 21 egin. 744 00:33:01,100 --> 00:33:05,758 Beraz line 21 kapitalizatuz da letra, antza denez, t? 745 00:33:05,758 --> 00:33:06,514 >> Ikusleak: m? 746 00:33:06,514 --> 00:33:08,722 DAVID J. MALAN: Itxura atsegin kopiatzea da zein den? 747 00:33:08,722 --> 00:33:09,486 Ikusleak: m. 748 00:33:09,486 --> 00:33:10,450 DAVID J. MALAN: Uh, m. 749 00:33:10,450 --> 00:33:12,685 Ados, beraz, lehen m, oharra naizela delako 750 00:33:12,685 --> 00:33:14,935 , toupper aurretik igaro bertan Nik inoiz ez baduzu ikusi da, 751 00:33:14,935 --> 00:33:16,980 da, funtzio bat Bere sarrera gisa larriz. 752 00:33:16,980 --> 00:33:20,240 t tarte zero esan eman me zero t izaera. 753 00:33:20,240 --> 00:33:22,550 Eta beraz, nola ez hau irudi aldaketa, argi izan behar du? 754 00:33:22,550 --> 00:33:25,490 755 00:33:25,490 --> 00:33:29,160 Zer berridatzi emateko edo aldatu behar s errespetua eta t eta ama 756 00:33:29,160 --> 00:33:30,097 backslash zero. 757 00:33:30,097 --> 00:33:31,470 >> Ikusleak: [INAUDIBLE] 758 00:33:31,470 --> 00:33:34,030 >> DAVID J. MALAN: Bai, Beraz, hau hemen, besterik gabe, 759 00:33:34,030 --> 00:33:40,860 beharrak aldatu emateko zaie Halako konpondu den kapital m a ezagutu aldatu beharra. 760 00:33:40,860 --> 00:33:44,330 Baina orain, begiratu geroago ere programa, bada inprimatu dut 761 00:33:44,330 --> 00:33:49,800 s eta t hemen garbitu nuen bezala, kontuz zer da s eta t inprimatzeko gertatuko. 762 00:33:49,800 --> 00:33:54,310 Beraz, kopia-0, ./copy-0. 763 00:33:54,310 --> 00:33:57,140 Dezagun aurrera me eta idatzi Minuskulaz guztiak ama ere. 764 00:33:57,140 --> 00:34:00,140 Iragarki bai jatorrizko eta kopiarekin izan kapitalizatzen dira. 765 00:34:00,140 --> 00:34:00,850 Zergatik? 766 00:34:00,850 --> 00:34:04,431 Beno, s eta t dira biak seinalatuz, izango bada, memoria zatia berdina. 767 00:34:04,431 --> 00:34:06,930 Eta Egia, lortzean honetan Izan ere, benetan uninteresting-- 768 00:34:06,930 --> 00:34:09,150 helbide zero erabiltzen ari gara hemen. 769 00:34:09,150 --> 00:34:11,719 Esan nahi dut, ez dut benetan axola non gauzak oroimenean da. 770 00:34:11,719 --> 00:34:13,550 Sentitzen dut pixka bat gehiegi ezabatuz naiz. 771 00:34:13,550 --> 00:34:15,674 Baina ez dut benetan axola non gauzak memorian dira. 772 00:34:15,674 --> 00:34:18,510 Eta, beraz, hain zuzen ere, zer programatzaileak joera pentsatu 773 00:34:18,510 --> 00:34:21,080 dela buruz ari zarenean helbide bat, edo erakuslea, 774 00:34:21,080 --> 00:34:22,679 zaintzen duten non dagoen memorian. 775 00:34:22,679 --> 00:34:24,989 Ez zait axola da kontuan hartuz gero byte bat edo bat milioi. 776 00:34:24,989 --> 00:34:27,920 Berdin zait, besterik gabe, hori aldakorra da eraginkortasunez 777 00:34:27,920 --> 00:34:29,620 zatia memoria hori seinalatuz. 778 00:34:29,620 --> 00:34:33,350 Eta, beraz, gaurtik aurrera, baino quibble arbitrarioa memoria helbideak baino gehiago, dezagun 779 00:34:33,350 --> 00:34:36,710 besterik hasteko erakusleak marrazteko erakusleak, geziak bezala. 780 00:34:36,710 --> 00:34:39,340 Beraz, zer s eta t benetan dira, Programa honen arabera, 781 00:34:39,340 --> 00:34:42,130 t nola sortu dut delako, aldagai bi besterik bereizi da 782 00:34:42,130 --> 00:34:43,840 memoria zatia bera seinalatuz. 783 00:34:43,840 --> 00:34:45,215 Eta ez dugu axola non dauden. 784 00:34:45,215 --> 00:34:47,130 Beraz, ezin dugu zehatz-mehatz hori urruntzen abstraktuak. 785 00:34:47,130 --> 00:34:48,780 >> Beraz, nola ez hau konpontzeko? 786 00:34:48,780 --> 00:34:54,120 Kopia bertsio bat idatzi nahi dut programa hori benetan kopiak katea 787 00:34:54,120 --> 00:34:56,840 eta kapitalizatzen bakarrik kopia, besterik gabe, intuizioa, 788 00:34:56,840 --> 00:34:59,766 zer da lortu bat izan nahi du gure irtenbide osagai? 789 00:34:59,766 --> 00:35:00,640 Ikusleak: [INAUDIBLE] 790 00:35:00,640 --> 00:35:01,420 DAVID J. MALAN: a zer behar dugu? 791 00:35:01,420 --> 00:35:01,820 Ikusleak: memoria zatia. 792 00:35:01,820 --> 00:35:03,280 DAVID J. MALAN: behar dugu beste zatia memoria, ezta? 793 00:35:03,280 --> 00:35:05,360 Ez dakigu nola oraindik ez da, nahitaez. 794 00:35:05,360 --> 00:35:11,330 Baina mota behar dut, beraz gertatuko Hori minuskulatan jatorrizko ama 795 00:35:11,330 --> 00:35:14,170 ondorioz sortu memoria zatia aparteko hori ere. 796 00:35:14,170 --> 00:35:19,770 Eta orduan, kopia aldatu dut, ez dute nahi, kopia hau aldatzeko hemen. 797 00:35:19,770 --> 00:35:26,020 Ordez, aldaketa hori bakarrik nahi dut kopia, beraz, jatorrizkoa ez da aldatu. 798 00:35:26,020 --> 00:35:27,980 >> Beraz, ikus dezagun nola egiten dugu agian. 799 00:35:27,980 --> 00:35:31,800 Kopia-1, dagoeneko sido iruzkin aintzat harturik, 800 00:35:31,800 --> 00:35:33,250 baina online iruzkindu da. 801 00:35:33,250 --> 00:35:36,710 Ordez egiten dugu honako hau horiek lerro-berdinak dira, get me kate bat 802 00:35:36,710 --> 00:35:38,340 eta deitu s. 803 00:35:38,340 --> 00:35:43,500 Baina orain dezagun gure gehien batean konplexu baina konplexutasuna azkena 804 00:35:43,500 --> 00:35:47,340 awhile, 16 lerro ez zehazki hau. 805 00:35:47,340 --> 00:35:49,400 Beraz, zure comfy batera bada Irudian drew-- besterik ez dugu 806 00:35:49,400 --> 00:35:51,790 eman dit zatia memoria bat, dena kopiatu sartu, 807 00:35:51,790 --> 00:35:53,730 ikus dezagun hori nola itzuli dugu kodeari. 808 00:35:53,730 --> 00:35:59,400 >> Beraz, 16 lerro, ezkerreko aldean, char * t ematen dit kutxa hau hemen baino. 809 00:35:59,400 --> 00:36:00,230 Hori guztia egiten du. 810 00:36:00,230 --> 00:36:03,240 Eskuinean On, m esleipenen, edo malloc, 811 00:36:03,240 --> 00:36:06,480 memoria esleipena, super fancy da, besterik esateko modu bat críptica 812 00:36:06,480 --> 00:36:07,640 ematen dit memoria zatia. 813 00:36:07,640 --> 00:36:09,290 Zenbat memoria behar dugu? 814 00:36:09,290 --> 00:36:10,910 Beno, adierazpen handi baten antzeko zerbait da. 815 00:36:10,910 --> 00:36:12,570 Baina ikus dezagun hemen zer dioen. 816 00:36:12,570 --> 00:36:15,940 Beraz, hau, noski, ez da emango me katea s luzera. 817 00:36:15,940 --> 00:36:19,094 Beraz, ama zer izan behar du? 818 00:36:19,094 --> 00:36:21,010 Beraz, hiru, ezta? ama, hiru pertsonaia da. 819 00:36:21,010 --> 00:36:22,830 Zuk ez duzu zenbatu du backslash zero duzunean 820 00:36:22,830 --> 00:36:25,960 Kate bat da, luzera buruz hitz egin Egia esan, giza ikusgai letrak. 821 00:36:25,960 --> 00:36:28,020 Beraz, ama, beraz, honek ematen dit 3. 822 00:36:28,020 --> 00:36:31,170 Baina itxaron minutu bat eta ni hala gehituz nabil 1. 823 00:36:31,170 --> 00:36:34,861 Zergatik ez dut benetan nahi esleitu 4 byte, eta ez soilik 3? 824 00:36:34,861 --> 00:36:35,360 Bai? 825 00:36:35,360 --> 00:36:36,910 >> Ikusleak: Sentinel balioa For? 826 00:36:36,910 --> 00:36:38,951 >> DAVID J. MALAN: Zehazki, Sentinel balio horretarako. 827 00:36:38,951 --> 00:36:40,840 Backslash zero, Behar dut 4 byte guztira. 828 00:36:40,840 --> 00:36:42,870 Beraz, luzera behar dut katea gehi 1. 829 00:36:42,870 --> 00:36:45,400 Eta gero measure-- ona besterik baita sistema honetan, nahiz eta, 830 00:36:45,400 --> 00:36:49,390 nik beti 1-- egoteko esaten dut joan biderkatu hau char bat tamainaren arabera. 831 00:36:49,390 --> 00:36:51,552 Turns sizeof da C operadore batek 832 00:36:51,552 --> 00:36:53,260 besterik esaten dizu hori da byte kopurua 833 00:36:53,260 --> 00:36:54,700 datu-mota jakin bat behar da. 834 00:36:54,700 --> 00:36:57,740 Ez du arrayak lan, normalean, batzuetan ez. 835 00:36:57,740 --> 00:36:59,210 Baina kasu orokorra, ez. 836 00:36:59,210 --> 00:37:02,330 Baina esango dit zenbat byte bat char da, eta horrek bihurtzen da beti 1. 837 00:37:02,330 --> 00:37:04,080 Beraz, hau 1 biderkatuz bezalakoa da. 838 00:37:04,080 --> 00:37:05,900 >> Bila Beraz super críptica kode lerro. 839 00:37:05,900 --> 00:37:09,320 Baina guztiak du ematen me memoria zatia. 840 00:37:09,320 --> 00:37:13,590 Baina ez du, kopiatzea dirudien ezer memoria hori sartu? 841 00:37:13,590 --> 00:37:14,560 Oraindik ez. 842 00:37:14,560 --> 00:37:22,040 Eta orain zer egin behar dut on line 22, eta 23, 24, 25, bai, ez dut besterik honetan. 843 00:37:22,040 --> 00:37:23,760 Eta hau da Ordena eskola zaharra stuff orain. 844 00:37:23,760 --> 00:37:26,010 Hau PSet 2, non bezalakoa da besterik gauzak mugitzen ari zarenean 845 00:37:26,010 --> 00:37:28,620 Inguruan oroimenez, edo hobeto esanda, kateak. 846 00:37:28,620 --> 00:37:31,920 >> Beraz, ez dut 0tik errepikatzean katea s luzera. 847 00:37:31,920 --> 00:37:37,820 Eta i-garren pertsonaia kopiatzea naiz s i-garren t izaera sartu ere. 848 00:37:37,820 --> 00:37:41,820 Eta dudalako, programatzailea, egin Ziur byte zehazki asko esleitu 849 00:37:41,820 --> 00:37:44,600 behar dudan bezala, ezin hobea da bat-bateko harremana. 850 00:37:44,600 --> 00:37:47,060 Eta ama kopiatu dut berria minuskulan. 851 00:37:47,060 --> 00:37:50,170 Eta gero, azkenik, lerro hau egin dut. 852 00:37:50,170 --> 00:37:54,637 Eta beraz, eragina da soilik t honi probetxua ateratzen hemen. 853 00:37:54,637 --> 00:37:56,470 Beraz, asko, xurgatzeko baina kontuan hartu besterik ez baduzu 854 00:37:56,470 --> 00:37:58,220 zer benetan joan kanpaia azpian on 855 00:37:58,220 --> 00:38:00,880 hau da, besterik gabe, horiek mugitzen byte inguruan, hori guztia 856 00:38:00,880 --> 00:38:06,617 behar da arazo hau konpondu ahal izateko besterik digute zatia memoria. 857 00:38:06,617 --> 00:38:08,450 Orain arriskuan jartzen erabatekoa, let me erakutsi 858 00:38:08,450 --> 00:38:13,200 beste adibide bat hori da, ia berdin-berdina, batek ezik 859 00:38:13,200 --> 00:38:14,350 kode lerro. 860 00:38:14,350 --> 00:38:18,870 Beraz, hau hacker bertsioa da Programa honen, izango bada. 861 00:38:18,870 --> 00:38:21,050 Baina utzi destila nahiko luke zer ari den gertatzen sartu da. 862 00:38:21,050 --> 00:38:28,920 24 Line t hau izaten zen tarte i s tarte i lortzen. 863 00:38:28,920 --> 00:38:33,370 Orain, aldatzen ari naiz hau askoz gehiago críptica izar t 864 00:38:33,370 --> 00:38:36,280 plus 1 berdinen izar s gehi 1. 865 00:38:36,280 --> 00:38:38,702 >> Beraz, zer gertatzen ari den eta zergatik Zer izar pertsonaia bat behar dugu? 866 00:38:38,702 --> 00:38:41,410 Izarraren aurretik ikusi dugu, eta ezberdinean hemen erabiltzen ari. 867 00:38:41,410 --> 00:38:45,490 Aurretik char * ikusi dugu, orain ikusten dut a hasieran izarra, eta hori OK. 868 00:38:45,490 --> 00:38:48,190 Bihurtzen da dugulako motatako ondoriozta daiteke, besterik gabe, 869 00:38:48,190 --> 00:38:50,280 Lehenengo ditugunen printzipio zer gertatzen den. 870 00:38:50,280 --> 00:38:53,860 Beraz, argi izan behar, zer da? 871 00:38:53,860 --> 00:38:55,052 Joan den astean, kate bat izan zen. 872 00:38:55,052 --> 00:38:56,260 Hori ez da nahikoa jada. 873 00:38:56,260 --> 00:38:57,690 Zer da s, zehazki? 874 00:38:57,690 --> 00:38:58,590 >> Ikusleak: [INAUDIBLE] 875 00:38:58,590 --> 00:38:59,881 >> DAVID J. MALAN: erakuslea da. 876 00:38:59,881 --> 00:39:02,610 Helbidea sartu da Lehenengo karaktereak idatzitako dugu. 877 00:39:02,610 --> 00:39:04,780 Ados, zer da t? 878 00:39:04,780 --> 00:39:05,660 >> Ikusleak: [INAUDIBLE] 879 00:39:05,660 --> 00:39:07,950 >> DAVID J. MALAN: The Lehenengo byte helbidea 880 00:39:07,950 --> 00:39:10,490 t ere, zatia memoria hori reallocated. 881 00:39:10,490 --> 00:39:14,720 Eta gertatu da guk 0 eta batetik bestera joateko katea gora 882 00:39:14,720 --> 00:39:17,424 luzera, lehenik eta behin, i Hasten 0, zeren 883 00:39:17,424 --> 00:39:18,840 begizta gauza egiteko eskola zahar hau. 884 00:39:18,840 --> 00:39:22,400 Beraz, soilik Erraza, dezagun Lehenengo duten kode lerro suposatuko 885 00:39:22,400 --> 00:39:23,760 Benetan, besterik gabe hau, eskuinera. 886 00:39:23,760 --> 00:39:26,080 I zero bada, zero gehitzen zerbait zentzuzkoa 887 00:39:26,080 --> 00:39:27,540 Ez da ondorio bat izan da. 888 00:39:27,540 --> 00:39:28,560 >> Beraz, zer da esaera hau? 889 00:39:28,560 --> 00:39:31,600 Bihurtzen izarraren dela Testuinguru honetan operadorea 890 00:39:31,600 --> 00:39:33,700 dereference da operadorea, besterik ez da 891 00:39:33,700 --> 00:39:37,530 go esaten modu dotore bat ondoko helbidera. 892 00:39:37,530 --> 00:39:42,080 Beraz s bada lehenengoa helbidea da memoria zatia honetan pertsonaia, 893 00:39:42,080 --> 00:39:43,630 * S bitartez joan. 894 00:39:43,630 --> 00:39:45,630 Eta guk marrazten duelako Modu honetan, argazkia, 895 00:39:45,630 --> 00:39:47,430 adoptatu ahal izango duzu eredu mental jarraituz. 896 00:39:47,430 --> 00:39:51,030 Hau s badago, eta esaten duzu * s, * s motatako buzoiak eta eskailerak bezala, 897 00:39:51,030 --> 00:39:54,540 Joko gogoratzen duzu bada haurtzarotik, gezi hori jarraitu eta joan bezalakoa da 898 00:39:54,540 --> 00:39:55,570 helbidera. 899 00:39:55,570 --> 00:39:57,080 >> * T gauza bera da. 900 00:39:57,080 --> 00:39:59,855 Beraz, hasteko hemen, joan bere zatia da. 901 00:39:59,855 --> 00:40:03,350 Ezin dut besterik marraztu Pantaila honetan, era horretan. 902 00:40:03,350 --> 00:40:05,560 * Hemen joateko t esan nahi du. 903 00:40:05,560 --> 00:40:08,830 Eta gero, begizta for besterik ez da mugitu pertsonaia hau hemen esaten, 904 00:40:08,830 --> 00:40:11,330 mugitu pertsonaia hau hemen, mugitu pertsonaia hau hemen. 905 00:40:11,330 --> 00:40:12,890 Baina, nola egin dezaket incrementation hori? 906 00:40:12,890 --> 00:40:15,430 Zer ezabatu besterik ez dut desegin behar dut. 907 00:40:15,430 --> 00:40:18,140 Hau da, oro har izeneko erakuslea aritmetika, eta horrek 908 00:40:18,140 --> 00:40:20,040 helbideak matematika esan nahi du. 909 00:40:20,040 --> 00:40:22,460 >> Bada, hau begizta, I Incrementing jarraitzen dut, 910 00:40:22,460 --> 00:40:26,880 eta s helbide bat da eta t da helbidea, I besterik ez duzu bada gehituz 1, 911 00:40:26,880 --> 00:40:31,406 bakarrik esan nahi segi horrela, eta aurrera, eta memorian aurrera. 912 00:40:31,406 --> 00:40:34,030 Oxford Street bezalakoa da, etorri kale CS eraikinean dago. 913 00:40:34,030 --> 00:40:36,490 CS eraikinak 33 Oxford Street da. 914 00:40:36,490 --> 00:40:39,870 Beraz, bada, 33 egin zinen Oxford Street plus 1, 915 00:40:39,870 --> 00:40:42,870 eramango zaitu 34 Oxfordera Street, ondoren, 35 Oxford Street, 916 00:40:42,870 --> 00:40:46,380 ondoren, 36 Oxford Street, edozein dela horiek eraikin benetan dira - balego. 917 00:40:46,380 --> 00:40:50,540 Eta beraz, hori guztia egiten ari gara Hemen erakuslea aritmetika batera. 918 00:40:50,540 --> 00:40:53,820 >> Beraz, modu super urrutira bat da geure burua adierazteko. 919 00:40:53,820 --> 00:40:56,160 Baina hori guztia gertatzen ari kanpaia azpian 920 00:40:56,160 --> 00:40:59,330 Helbide hauek honako hau da, besterik gabe, Mapa bat jarraituz bezala, izango bada, 921 00:40:59,330 --> 00:41:02,692 edo honako bezalako geziak pantailan agertzen dugun marrazten. 922 00:41:02,692 --> 00:41:04,910 Ados, asko digeritzeko. 923 00:41:04,910 --> 00:41:10,410 Sintaxia edozein zalantza argitzeko, kontzeptuak, erakusleak, malloc, edo antzekoak. 924 00:41:10,410 --> 00:41:11,480 Bai, hemen baino lehen. 925 00:41:11,480 --> 00:41:13,755 >> IKUSLEEN: non duten dio * t berdin toupper * t, 926 00:41:13,755 --> 00:41:15,575 da hori larriz joan Hizki guztiak edo just 927 00:41:15,575 --> 00:41:17,283 >> DAVID J. MALAN: Ah, Galdera benetan ona. 928 00:41:17,283 --> 00:41:19,805 Beraz, lerro hau hemen ere, 31 da hau larriz joan 929 00:41:19,805 --> 00:41:21,430 Lehenengo letra edo letrak guztiak. 930 00:41:21,430 --> 00:41:23,460 Hargatik erantzun hori joanda lehenengo printzipioak itzuli. 931 00:41:23,460 --> 00:41:26,168 Eta hemen lehen printzipioak esan nahi dut besterik joan oinarrizko definizioei 932 00:41:26,168 --> 00:41:27,000 Zer da parte hartzen dute. 933 00:41:27,000 --> 00:41:29,770 Beraz toupper funtzio bat hori char kapitalizatzen. 934 00:41:29,770 --> 00:41:30,530 Hori da dena. 935 00:41:30,530 --> 00:41:36,740 * Lehen aukera joateko t esan nahi du t helbide joan. 936 00:41:36,740 --> 00:41:40,350 Beraz, irudian, hau zatika bada oroimenaren esleitu malloc dugu, 937 00:41:40,350 --> 00:41:43,310 eta hau t da, * t esan nahi du hemen. 938 00:41:43,310 --> 00:41:46,710 >> Bien bitartean, pasatzen ari zaren balio hori, minuskula m 939 00:41:46,710 --> 00:41:50,040 toupper, atzera lortzean ari zaren capital M, non bizi zara jarriz? 940 00:41:50,040 --> 00:41:52,410 Zuk jartzen ari gara duten leku berean. 941 00:41:52,410 --> 00:41:55,540 Eta beraz, horien logika horren arabera Oinarrizko definizioak da soilik 942 00:41:55,540 --> 00:41:58,792 Lehenengo letra kapitalizatuz batetik bestera joateko ezean i edo batekin 943 00:41:58,792 --> 00:42:02,000 begizta edo bitartean begizta bat, ez da joan ezer gehiago eskatu duzun baino ez da. 944 00:42:02,000 --> 00:42:02,583 Ona galdera. 945 00:42:02,583 --> 00:42:03,237 Bai? 946 00:42:03,237 --> 00:42:05,369 >> Ikusleak: Zergatik erabili zenuen du beharrean metodoa erreferentzia kenduta 947 00:42:05,369 --> 00:42:05,979 Array? 948 00:42:05,979 --> 00:42:07,395 >> DAVID J. MALAN: Ah, galdera ona. 949 00:42:07,395 --> 00:42:10,672 Zergatik dereference erabili duzu ordez array metodoaren metodoa? 950 00:42:10,672 --> 00:42:12,130 Ez dago arrazoi berezirik, egia esateko. 951 00:42:12,130 --> 00:42:15,290 Eta, hain zuzen ere, horretarako Adibidez mota, eskubidea, 952 00:42:15,290 --> 00:42:17,556 Besterik ez naiz egiten argudiatuz programa zailagoa, 953 00:42:17,556 --> 00:42:19,680 Begiak gehiago dira behin kristal, Jende dira egiaztatzen 954 00:42:19,680 --> 00:42:22,830 honek itxura super urrutira delako, baina nahiz eta gauza bera egiten ari da, nahiz eta. 955 00:42:22,830 --> 00:42:26,695 Eta beraz, Egia, hau da Konponbidea alferrik ikusmen konplexua 956 00:42:26,695 --> 00:42:27,320 arazoari. 957 00:42:27,320 --> 00:42:29,580 >> Oraindik ere ez da ona diseinua, bost bost diseinua egiteko daudelarik, 958 00:42:29,580 --> 00:42:33,140 da parentesi ala notazioa edo erakuslea idazkera. 959 00:42:33,140 --> 00:42:36,299 But-- batez ere lortuko dugu Ikasturtean zehar beranduago pset 5 960 00:42:36,299 --> 00:42:39,340 denean hiztegi ezartzeko dugun Garaietatik pare bat aipatu dut 961 00:42:39,340 --> 00:42:42,300 benetan dugu buruzko zaintzeko maila baxua memoria helbideak 962 00:42:42,300 --> 00:42:44,140 Benetan ulertzen dugun Zer gertatzen ari da. 963 00:42:44,140 --> 00:42:48,300 >> Baina, oraingoz, bihurtzen da hori kodea parentesi hemen koadroko lerroa 964 00:42:48,300 --> 00:42:49,900 ez da benetan existitzen. 965 00:42:49,900 --> 00:42:52,230 Zer deitzen dira Azukre sintaktikoa, eta horrek 966 00:42:52,230 --> 00:42:58,390 Bat esateko modu besterik weirdly cool da Konpiladore bihurtzen karratu parentesi izan 967 00:42:58,390 --> 00:43:00,420 adierazpen matematiko hori. 968 00:43:00,420 --> 00:43:02,660 Beraz, giza konbentzio bat da besterik idatzi ahal izateko 969 00:43:02,660 --> 00:43:04,220 oso lagungarria parentesi horiek. 970 00:43:04,220 --> 00:43:06,850 Baina zer konpilatzailea, Clang, Zinez edonoiz egiten 971 00:43:06,850 --> 00:43:10,970 zer gertatzen den lerro nabarmenduta idatzi duzun 24, kanpaia azpian da benetan 972 00:43:10,970 --> 00:43:12,330 bihurtzeko honetarako. 973 00:43:12,330 --> 00:43:16,200 Besterik gizatiarragoa gisa dibertigarriagoa irakurtzen eta 24 linea bezala idatzi kodea. 974 00:43:16,200 --> 00:43:18,530 Baina azkenean horiek prestakuntza gurpilak ere etorri off 975 00:43:18,530 --> 00:43:21,780 norberaren erosotasuna propioak indartsuagoa lortzen denean. 976 00:43:21,780 --> 00:43:27,240 >> Ondo da, beraz, gogora ekarri ondoren, hori Arazorik larriena moduko zen 977 00:43:27,240 --> 00:43:27,807 sartu zuena dugu. 978 00:43:27,807 --> 00:43:30,640 Eta hori da, zer piztu osoak honetan erakusleak buruzko elkarrizketa madarikatua, 979 00:43:30,640 --> 00:43:32,340 eta helbideak, eta kopiatzea gauzak. 980 00:43:32,340 --> 00:43:35,410 Erori garelako izan da ergelak, ergelak Arazo hau, zeinaren 981 00:43:35,410 --> 00:43:38,830 Logically-- ezarri dut Lauren batera Hemen demo eta laranja zukua eman 982 00:43:38,830 --> 00:43:43,770 milk-- ere primeran bat Funtzio karguen zuzena 983 00:43:43,770 --> 00:43:47,010 Bi aldagai 'trukea egiteko balioak, baina gauza madarikatua 984 00:43:47,010 --> 00:43:50,550 ez dute iraunkorrak edozein, edo iraunkorra, efektu nire kodea orrian. 985 00:43:50,550 --> 00:43:51,820 >> Eta zergatik gertatu zen hori? 986 00:43:51,820 --> 00:43:54,650 Hitz batean, zergatik da hau swap ezartzeko 987 00:43:54,650 --> 00:43:58,740 logikoki zuzena, baina eragina ez du direla bertan pasatako aldagaien gainean, 988 00:43:58,740 --> 00:44:01,119 x eta y nagusientzako bezala? 989 00:44:01,119 --> 00:44:02,410 Zein izan zen gai bi ideia nagusi? 990 00:44:02,410 --> 00:44:02,909 Bai? 991 00:44:02,909 --> 00:44:05,532 Ikusleak: delako aldakorra egin aldakorreko kopiak mendatean 992 00:44:05,532 --> 00:44:06,240 funtzioaren bidez. 993 00:44:06,240 --> 00:44:09,060 >> DAVID J. MALAN: Zehazki, pasatzen duzu funtzio batean aldagai edo argumentuak 994 00:44:09,060 --> 00:44:11,030 funtzio batean, Oraindik dute kopia, onartu zuen bertan 995 00:44:11,030 --> 00:44:14,770 esan nahi berdina aurkezten ari lortuko duzu bai x eta y bit eredua, 996 00:44:14,770 --> 00:44:15,955 a eta b hemen deitzen. 997 00:44:15,955 --> 00:44:18,080 Eta ezer egin dezakezu kopia horiek nahi baduzu, 998 00:44:18,080 --> 00:44:20,657 baina ari dira ez dute joan zenbakira deituz funtzioa eragin. 999 00:44:20,657 --> 00:44:22,990 Eta, hain zuzen ere, genuen hori Irudian pantailan, oroitzapen on 1000 00:44:22,990 --> 00:44:25,520 Azken aldian, zeinaren baduzu benetan zer pentsatzen 1001 00:44:25,520 --> 00:44:28,570 gertatzen hood-- bada azpian hau da ordenagailuaren memoria da, 1002 00:44:28,570 --> 00:44:31,650 eta hemen behera zatia da memoria ari nagusia erabiltzen, 1003 00:44:31,650 --> 00:44:34,020 honen zatia da memoria ari swap erabiltzen, 1004 00:44:34,020 --> 00:44:37,090 eta duela nagusia bada, beraz, nahiz eta bi aldagai, x eta y, 1005 00:44:37,090 --> 00:44:41,840 swap bila berdin-berdina izan liteke balioak, biak dira 1 eta 2, 1006 00:44:41,840 --> 00:44:44,520 baina erabat ari dira memoria zatiak ezberdinak. 1007 00:44:44,520 --> 00:44:46,130 >> Beraz, horri irtenbide bat behar dugu. 1008 00:44:46,130 --> 00:44:51,580 Eta Egia, ez dugu orain dela iruditzen zait Arazo horri irtenbidea izan, eskubidea. 1009 00:44:51,580 --> 00:44:55,760 Orain gaitasuna to the baditugu gauzak manipulatzeko helbideak bidez 1010 00:44:55,760 --> 00:44:59,310 eta, ordenatzeko buzoiak eta eskailerak style, jarraitu gezi horiek 1011 00:44:59,310 --> 00:45:02,820 eta inora joan nahi dugu memoria, ezin izan dugu 1012 00:45:02,820 --> 00:45:06,220 Arazo hau konpontzeko nagusitik pasatzen trukatzeko 1013 00:45:06,220 --> 00:45:09,650 balioak ez dadin nahi dugu swap, baina intuizioz 1014 00:45:09,650 --> 00:45:11,630 zer pasatu izan dugu ordez trukatu? 1015 00:45:11,630 --> 00:45:12,620 >> [AHOTS INTERPOSING] 1016 00:45:12,620 --> 00:45:15,244 >> DAVID J. MALAN: Zergatik ez dugu besterik pasa ezazu helbideetara, ezta? 1017 00:45:15,244 --> 00:45:17,470 Zergatik ez swap bat eman dugu altxorra mapa, izango bada, 1018 00:45:17,470 --> 00:45:20,950 eramango da behar Benetako balioak x eta y. 1019 00:45:20,950 --> 00:45:24,340 Dezagun swap, benetan aldatzeko jatorrizko bit horiek, baino 1020 00:45:24,340 --> 00:45:26,797 bit kopiak pasatuz. 1021 00:45:26,797 --> 00:45:29,130 Eta, beraz, hain zuzen ere, horixe da joan konponbidea izan nahi du. 1022 00:45:29,130 --> 00:45:31,899 Bertsio hau hemen dago Argi eta garbi txarra eta flawed. 1023 00:45:31,899 --> 00:45:35,190 Eta orain, hasiera batean, itxura besterik ez da atsegin ko sorta bat gehitu dugu ausaz 1024 00:45:35,190 --> 00:45:37,106 eta gure behatzak zeharkatu Hori konpilatu litzateke. 1025 00:45:37,106 --> 00:45:38,460 Baina, gaur egun biltzeko litzateke. 1026 00:45:38,460 --> 00:45:40,090 >> Baina ikus dezagun zer gauza horiek esan. 1027 00:45:40,090 --> 00:45:43,990 Eta, zoritxarrez, egileek C sinbolo bat aukeratu ahal izan 1028 00:45:43,990 --> 00:45:46,380 Hau apur bat egiteko argiagoa, baina izar operadoreak 1029 00:45:46,380 --> 00:45:48,610 esanahi desberdinak ditu bi testuinguru desberdinetan. 1030 00:45:48,610 --> 00:45:50,890 Eta ikusi dugu bai, baina dezagun bereizteko. 1031 00:45:50,890 --> 00:45:55,310 >> Beraz goialdean dago up, denean eta b aldatu dut 1032 00:45:55,310 --> 00:46:00,470 int izatearen txarrak ere bertatik Bertsio izarrak, eta b Int 1033 00:46:00,470 --> 00:46:01,740 Aurretik, osokoak izan ziren. 1034 00:46:01,740 --> 00:46:05,752 Zeintzuk dira gaur egun eta b ona, berde bertsioa? 1035 00:46:05,752 --> 00:46:06,900 Helbideak ari dira. 1036 00:46:06,900 --> 00:46:09,610 Zer, helbideak argi izan behar du? 1037 00:46:09,610 --> 00:46:10,770 Osokoak helbideak. 1038 00:46:10,770 --> 00:46:12,520 Izan ere, naiz dela int izar bitartekoak esanez 1039 00:46:12,520 --> 00:46:15,440 honen helbidea da zenbaki oso bat, zehazki. 1040 00:46:15,440 --> 00:46:19,120 >> Beraz, orain, kode lerro nabarituko, beste zerbait ere aldatu egin da. 1041 00:46:19,120 --> 00:46:22,770 tmp berdin jarraituko du, izan ere, Aldi baterako osokoa besterik ez da, 1042 00:46:22,770 --> 00:46:24,110 no memoria magia ez. 1043 00:46:24,110 --> 00:46:26,370 Baina bat orain izar bat behar du. 1044 00:46:26,370 --> 00:46:28,560 Eta, hain zuzen ere, behin beste bat, eta b aipamen, 1045 00:46:28,560 --> 00:46:31,780 nabarituko da hori guztia gorritik berdera aldatzen 1046 00:46:31,780 --> 00:46:34,209 dela aurretik naiz izarrez aldagai horiek. 1047 00:46:34,209 --> 00:46:35,750 Ez dudalako nahi eta b kopiatzeko. 1048 00:46:35,750 --> 00:46:40,350 Dudalako kopiatu besterik ez bada bat eta b swap a eta b, zer naiz benetan aldaketa dut? 1049 00:46:40,350 --> 00:46:43,760 Just helbideak, swap nahi dut zer helbideak horiek at da. 1050 00:46:43,760 --> 00:46:44,860 Hara joan nahi dut. 1051 00:46:44,860 --> 00:46:48,000 Eta beraz, izar-operadorea barruan nire funtzioa, 1052 00:46:48,000 --> 00:46:51,700 Ez parametro-zerrendaren barruan, esan nahi du horiek joan helbideak duzu 1053 00:46:51,700 --> 00:46:54,490 eta balio horiek benetan aldatzeko. 1054 00:46:54,490 --> 00:46:56,500 >> Beraz, zer irudian egiten du orain ordez itxurarik. 1055 00:46:56,500 --> 00:47:03,250 Beno, pasatzen dut ordez batez ere, eta B, ez 1 eta 2-- 1056 00:47:03,250 --> 00:47:05,790 Benetan dut gehitu behar beste definizio bat hemen. 1057 00:47:05,790 --> 00:47:09,030 Beraz, eman dezagun pusketa hori oroimenaren kokapena 10ekoa baldin bada. 1058 00:47:09,030 --> 00:47:12,960 >> Hau kokapena 11a da, baina hau sinplifikazio bat pixka bat da, 1059 00:47:12,960 --> 00:47:18,900 Daukat orain bi aukera egin dut gainditu x eta y edo ez, beren helbideak igaroko da? 1060 00:47:18,900 --> 00:47:22,500 Beren helbide pasatzen dut bada Hau atsegin, besterik ez dut 1061 00:47:22,500 --> 00:47:25,390 orain ezartzeko behar berde kodea per swap 1062 00:47:25,390 --> 00:47:29,080 beraz, ikusten duten bat eta noiz ikusten b, ez du besterik kopia bat eta b 1063 00:47:29,080 --> 00:47:30,540 eta esnea eta laranja zukua mugitu. 1064 00:47:30,540 --> 00:47:32,664 Esnea eta laranja zukua Metafora orain hausten behera, 1065 00:47:32,664 --> 00:47:35,060 edalontziak dira horiek delako likido eta ez mapak. 1066 00:47:35,060 --> 00:47:37,750 Ordez joan behar dugu 10 eta guk aurre egiteko 1067 00:47:37,750 --> 00:47:42,420 11 helbidera joan behar, eta gero aldaketa logika lantzeko. 1068 00:47:42,420 --> 00:47:45,580 >> Beraz, logika bera da, baina pixka bat eta beste modu bat behar dugu 1069 00:47:45,580 --> 00:47:47,160 ren aldagai horiek sartzeko. 1070 00:47:47,160 --> 00:47:52,400 Eta beraz, azken batean, zer egin programa da hau itxura emateko. 1071 00:47:52,400 --> 00:47:56,610 Swap.c literalki kopiatu egin eta itsatsiko berde bertsioa. 1072 00:47:56,610 --> 00:47:58,450 Baina aldaketa bat egin behar dut. 1073 00:47:58,450 --> 00:48:00,180 Ez da nahikoa besterik swap aldatzeko. 1074 00:48:00,180 --> 00:48:03,830 Zer beste kode lerro ez da aldatu behar dut? 1075 00:48:03,830 --> 00:48:04,330 Bai? 1076 00:48:04,330 --> 00:48:05,770 >> Ikusleak: Non argudioak hartzen du. 1077 00:48:05,770 --> 00:48:07,603 >> DAVID J. MALAN: Non Bere argumentu hartzen du. 1078 00:48:07,603 --> 00:48:09,985 Beraz, joan I nagusira bada, I Ezin duzu besterik ez x eta y gainditu, 1079 00:48:09,985 --> 00:48:12,820 eta, zin egiten dut, azkena sintaxia berrien pieza gaur. 1080 00:48:12,820 --> 00:48:17,200 Ez x gainditu behar dut eta y baina x eta y helbidea. 1081 00:48:17,200 --> 00:48:20,400 Eta bihurtzen da, ikurra C egileek aukeratu 1082 00:48:20,400 --> 00:48:23,860 da & ikurra hemen erabiltzen baduzu, ez egon bitekin ampersand nahastu, 1083 00:48:23,860 --> 00:48:27,130 & ikurra erabiltzen baduzu Hemen eta ampersand bat hemen, 1084 00:48:27,130 --> 00:48:29,570 hau zifrak zuretzat, Zer da x helbidea, 1085 00:48:29,570 --> 00:48:31,740 Agian da 10, zer da y helbidea, agian, 1086 00:48:31,740 --> 00:48:35,400 11 eta pasatzen ordez dutenak. 1087 00:48:35,400 --> 00:48:37,210 >> Beraz, asko guztia xurgatzeko aldi berean. 1088 00:48:37,210 --> 00:48:40,190 Baina utzi bizkor ikusiko orain hamarkadaren gure gainerako lau minutu 1089 00:48:40,190 --> 00:48:42,150 non gauzak gaizki joan daiteke. 1090 00:48:42,150 --> 00:48:45,120 Eta alde batera, benetan gisa Argazki hau hartu dut, 1091 00:48:45,120 --> 00:48:46,920 TF hartu zuten argazki hau urte bat edo bi ago. 1092 00:48:46,920 --> 00:48:49,190 Beraz, hau da atzera izkinan da Eliot Jantokia Hall of. 1093 00:48:49,190 --> 00:48:52,310 Erakusle dira agian gogorrena Gai hori estaliko dugu CS50. 1094 00:48:52,310 --> 00:48:54,810 Beraz moduko kezkatu baduzu malda da, agian atsegin da 1095 00:48:54,810 --> 00:48:56,770 hockey makila bat gehiago Hau atsegin, konturatzen 1096 00:48:56,770 --> 00:49:00,160 Oraindik ere gailurra motatako eska dugu kontzeptuala konplexutasuna dagokionez. 1097 00:49:00,160 --> 00:49:02,300 >> Eta eman hau ekarri dut Argazkia, I zin delako 1098 00:49:02,300 --> 00:49:05,920 jainkoa, jaitsiera 1996an, noiz hartu nuen Nire irakaskuntza fellow CS50, 1099 00:49:05,920 --> 00:49:09,620 Nishat Mehta, me eseri zuen behera en izkinan Eliot D. Hall of bazkaria baino gehiago, 1100 00:49:09,620 --> 00:49:12,330 edo afaria, edo zerbait saiatu erakusleak ulertu ahal izateko. 1101 00:49:12,330 --> 00:49:16,520 Eta hau da, non aste ondoren nengoen hitzaldia denean ere sartu zen 1102 00:49:16,520 --> 00:49:18,170 Azkenik ulertu nuen erakusleak. 1103 00:49:18,170 --> 00:49:20,590 Eta itxaropentsu hori naiz urrun lehenago zuretzat klik egingo. 1104 00:49:20,590 --> 00:49:23,540 Baina konturatzen hau erabat artean gaiak sofistikatuagoa 1105 00:49:23,540 --> 00:49:24,420 begiratu dugu. 1106 00:49:24,420 --> 00:49:25,819 Baina boteretsuena artean. 1107 00:49:25,819 --> 00:49:28,860 Eta noiz lortuko duzu, benetan denak da besterik azkenik etorri elkarrekin joan. 1108 00:49:28,860 --> 00:49:31,460 Beraz, atseden ziurtaturik ez du egiten gaur konketa guztiak behar. 1109 00:49:31,460 --> 00:49:32,980 >> Hortaz, hona hemen azken programa da begiratzen goaz. 1110 00:49:32,980 --> 00:49:35,605 Eta ari gara batekin amaituko joan claymation hiru minutu azkar 1111 00:49:35,605 --> 00:49:37,030 gure laguna, Nick Parlante egindako. 1112 00:49:37,030 --> 00:49:41,440 Hemen programa bat da, goiko bi on lerro x eta y aldagai bat deklaratzen. 1113 00:49:41,440 --> 00:49:44,780 Biak dira helbideak osokoak, AKA erakusleak. 1114 00:49:44,780 --> 00:49:48,125 Ondoren, esleitu nahikoa dugu int bat gordetzeko memoria 1115 00:49:48,125 --> 00:49:51,344 eta helbidea gordetzeko x memoria hori. 1116 00:49:51,344 --> 00:49:53,260 Beraz, nahiz eta errazagoa da Adibidez baino. 1117 00:49:53,260 --> 00:49:56,100 Give me lau memoria byte, int baten tamaina da, 1118 00:49:56,100 --> 00:49:58,000 eta jarri helbide hori x ere. 1119 00:49:58,000 --> 00:50:01,070 Linea horrek esan nahi hemen x-en helbide joan 1120 00:50:01,070 --> 00:50:05,270 eta esanahia jarri Bizitza, 42 zenbakian dago. 1121 00:50:05,270 --> 00:50:07,710 Baina lerro honek kezkatzen nau. 1122 00:50:07,710 --> 00:50:12,620 Star y helbide joan y esan nahi du, eta jarri unlucky 13 zenbakia ez. 1123 00:50:12,620 --> 00:50:15,780 Zergatik da arriskutsua, puntu honetan kontu batean bada ere, oso azkar kontatu 1124 00:50:15,780 --> 00:50:17,980 Gure Ilbeheran minututan hemen zergatik da txarra 1125 00:50:17,980 --> 00:50:19,660 Ba niri esateko, joan y en helbide honetara? 1126 00:50:19,660 --> 00:50:21,077 >> Ikusleak: ez daukazu [INAUDIBLE]. 1127 00:50:21,077 --> 00:50:22,910 DAVID J. MALAN: ez daukat ezer ipini y en. 1128 00:50:22,910 --> 00:50:25,520 Beraz, zer y balioa da, Istorioa Puntu honetan? 1129 00:50:25,520 --> 00:50:26,570 Ez dakigu. 1130 00:50:26,570 --> 00:50:29,190 Zabor balio batzuk da eta ezta daki hegazti. 1131 00:50:29,190 --> 00:50:32,532 Ohar honetan genezake amaituko bada. 1132 00:50:32,532 --> 00:50:34,832 >> [Bideo-erreprodukzioa] 1133 00:50:34,832 --> 00:50:36,500 >> -Aizu, Hegazti, esnatu. 1134 00:50:36,500 --> 00:50:39,140 Erakuslea pasatzeko garaia da. 1135 00:50:39,140 --> 00:50:40,210 >> -Zer da hori? 1136 00:50:40,210 --> 00:50:41,690 Erakusleak buruz ikasi? 1137 00:50:41,690 --> 00:50:43,570 Oh, Goody. 1138 00:50:43,570 --> 00:50:46,600 >> -Ba, Urratsak emateko, asmatzen dut gaude erakusleak pare bat behar da. 1139 00:50:46,600 --> 00:50:47,380 >> -ONDO DA. 1140 00:50:47,380 --> 00:50:51,120 Kode hau bi erakusleak esleitzen bertan zenbaki osoen seinalatu dezake. 1141 00:50:51,120 --> 00:50:53,557 >> -Ados, Ondo ikusten dut bi erakusleak, baina ez dute 1142 00:50:53,557 --> 00:50:55,140 ez dirudi ezer behar seinalatuz. 1143 00:50:55,140 --> 00:50:55,970 >> -Hori Da. 1144 00:50:55,970 --> 00:50:58,100 Hasieran Erakusleak ez ezer seinalatu. 1145 00:50:58,100 --> 00:51:00,950 Seinalatzen dute gauzak dira pointees izeneko eta horien ezarpena 1146 00:51:00,950 --> 00:51:02,330 beste urrats bat da. 1147 00:51:02,330 --> 00:51:03,210 >> -Oh, Eskuinera, eskuinetik. 1148 00:51:03,210 --> 00:51:03,940 Hori banekien. 1149 00:51:03,940 --> 00:51:05,730 Pointees dira bereizita. 1150 00:51:05,730 --> 00:51:08,310 Beraz, nola ez pointee esleitu duzu? 1151 00:51:08,310 --> 00:51:11,960 >> -Ados, Bai kodea bideratzen honetan zenbaki oso pointee berri bat, 1152 00:51:11,960 --> 00:51:15,050 eta zati honetan ezartzen x da seinalatu. 1153 00:51:15,050 --> 00:51:16,240 >> -Aizu, Itxura hobea. 1154 00:51:16,240 --> 00:51:17,743 Beraz, zerbait egin da. 1155 00:51:17,743 --> 00:51:23,580 >> -Ados, Ez dut erakuslea x dereference 42 zenbakia gordetzeko bere pointee. 1156 00:51:23,580 --> 00:51:27,130 Trikimailu hau egiteko, behar dut nire dereferencing makila magikoa. 1157 00:51:27,130 --> 00:51:30,200 >> -Zure Dereferencing makila magikoa? 1158 00:51:30,200 --> 00:51:32,310 Ai, hori, handia da. 1159 00:51:32,310 --> 00:51:34,270 >> Zer kodea itxura da horra. 1160 00:51:34,270 --> 00:51:35,970 Besterik ez dut sortu kopurua and-- 1161 00:51:35,970 --> 00:51:37,070 >> [POP SOUND] 1162 00:51:37,070 --> 00:51:39,140 >> -Aizu, Itxura ez da doan. 1163 00:51:39,140 --> 00:51:43,980 Beraz, x dereference bat egiten jarraitzen ditu gezi bere pointee sartzeko. 1164 00:51:43,980 --> 00:51:46,150 Kasu honetan, 42 gordetzeko han. 1165 00:51:46,150 --> 00:51:50,700 Hey, saiatu erabiltzen zenbakia gordetzeko 13 beste erakuslea, y. 1166 00:51:50,700 --> 00:51:51,840 >> -ONDO DA. 1167 00:51:51,840 --> 00:51:56,270 Dut joan Hemen y, eta kopurua 13 set up. 1168 00:51:56,270 --> 00:52:00,380 Eta gero, hartu makila dereferencing eta just 1169 00:52:00,380 --> 00:52:01,646 >> [Buzzer soinu] 1170 00:52:01,646 --> 00:52:04,080 >> -Oh, Beno ez zuen lan. 1171 00:52:04,080 --> 00:52:06,470 Esan, uh, hegazti, baina nik ez dut Uste dereferencing 1172 00:52:06,470 --> 00:52:10,850 y ideia ona da, zeren, pointee beste urrats bat da. 1173 00:52:10,850 --> 00:52:12,480 Eta ez dut uste inoiz egin dugu. 1174 00:52:12,480 --> 00:52:14,620 >> -Hmm, Puntu ona. 1175 00:52:14,620 --> 00:52:19,810 >> -Bai, Erakuslea, y bideratu dugu, baina ez dugu inoiz ezarri da pointee bat seinalatu. 1176 00:52:19,810 --> 00:52:21,590 >> -Hmm, Oso observant. 1177 00:52:21,590 --> 00:52:23,215 -Aizu, Ona ez bilatzen ari zaren, hegazti. 1178 00:52:23,215 --> 00:52:26,390 Ezin konpondu da, beraz, y puntuak pointee x-ren berdina da. 1179 00:52:26,390 --> 00:52:29,290 >> -Sure, Nire makila magikoa erabili dut erakuslea esleitzeko. 1180 00:52:29,290 --> 00:52:31,970 >> -Hau Da, bat izango da Arazoa, lehen bezala? 1181 00:52:31,970 --> 00:52:33,790 >> -Ez, Horrek ez du pointees ukitzeko. 1182 00:52:33,790 --> 00:52:35,840 Aldatzen erakuslea bat egiten den gauza bera ez seinalatuko 1183 00:52:35,840 --> 00:52:36,465 >> [Soinu leihoa] 1184 00:52:36,465 --> 00:52:37,450 beste --as. 1185 00:52:37,450 --> 00:52:38,440 >> -Oh, Ikusten dut. 1186 00:52:38,440 --> 00:52:41,200 X bezala, leku berean Orain y puntu. 1187 00:52:41,200 --> 00:52:42,950 Beraz, itxaron, orain y finkoa da. 1188 00:52:42,950 --> 00:52:44,110 Pointee bat du. 1189 00:52:44,110 --> 00:52:47,779 Beraz, makila dastatu ahal izango dituzu berriro dereferencing 13 baino gehiago bidaltzeko. 1190 00:52:47,779 --> 00:52:51,110 >> -Oh, OK, hemen doa. 1191 00:52:51,110 --> 00:52:52,330 >> -Aizu, Hori begiratu. 1192 00:52:52,330 --> 00:52:53,570 Orain y gaineko lan dereferencing. 1193 00:52:53,570 --> 00:52:57,900 Eta erakusleak partekatzen ari delako pointee bat dela, biek ikusi du 13. 1194 00:52:57,900 --> 00:52:59,952 >> -Bai, Partekatzea, uh, edozein dela ere. 1195 00:52:59,952 --> 00:53:01,535 Beraz, leku batetik bestera joateko gaur egun? 1196 00:53:01,535 --> 00:53:03,730 >> -Oh, Begiratu gara denbora. 1197 00:53:03,730 --> 00:53:04,660 >> -But-- 1198 00:53:04,660 --> 00:53:06,520 >> Kolektiboaren hiru erakuslea arauak gogoratu. 1199 00:53:06,520 --> 00:53:09,550 Zenbakia 1, oinarrizko egitura da erakuslea bat duzula, 1200 00:53:09,550 --> 00:53:11,630 eta puntu baino gehiagoko da pointee bat. 1201 00:53:11,630 --> 00:53:13,740 Baina erakuslea eta pointee bereizi dira. 1202 00:53:13,740 --> 00:53:15,620 Eta akats arruntenak konfiguratzeko erakuslea 1203 00:53:15,620 --> 00:53:18,000 baina pointee emateko ahaztea. 1204 00:53:18,000 --> 00:53:21,170 >> Zenbakia 2, erakuslea dereferencing erakusleak hasten 1205 00:53:21,170 --> 00:53:24,020 eta gehiagoko bere gezi bere pointee sartzeko. 1206 00:53:24,020 --> 00:53:27,815 Dakigun bezala, hau bakarrik ez bada lan egiten du pointee bada, mota horretako lortzen da 1207 00:53:27,815 --> 00:53:29,260 zenbakia 1 araua. 1208 00:53:29,260 --> 00:53:31,990 >> 3. zenbakia, erakuslea esleitzeko erakuslea bat hartzen 1209 00:53:31,990 --> 00:53:35,330 eta aldaketak egiteko puntu da pointee bera erakuslea beste gisa. 1210 00:53:35,330 --> 00:53:37,150 Beraz, esleipena egin ondoren, bi erakusleak 1211 00:53:37,150 --> 00:53:40,927 bera pointee seinalatu, Batzuetan izeneko partekatzea. 1212 00:53:40,927 --> 00:53:42,510 Eta hori guztia ez da egin behar da, benetan. 1213 00:53:42,510 --> 00:53:43,130 Bye-bye orain. 1214 00:53:43,130 --> 00:53:43,475 >> [END erreprodukzioa] 1215 00:53:43,475 --> 00:53:44,830 >> DAVID J. MALAN: Hori da CS50 da. 1216 00:53:44,830 --> 00:53:46,246 Nick Parlante Irakaslea esker. 1217 00:53:46,246 --> 00:53:47,730 Datorren astetik Ikusiko dugu. 1218 00:53:47,730 --> 00:53:51,706 1219 00:53:51,706 --> 00:53:56,435 >> [ELECTRONIC Musika jotzen] 1220 00:53:56,435 --> 00:57:22,775