1 00:00:00,000 --> 00:00:02,700 [Powered by Google Translate] [Bisita gidatua - Arazoa Set 4] 2 00:00:02,700 --> 00:00:05,000 [Zamyla Chan - Harvard Unibertsitatea] 3 00:00:05,000 --> 00:00:07,340 [Hau CS50 da. - CS50.TV] 4 00:00:08,210 --> 00:00:11,670 Guztiak eskubidea. Kaixo, guztioi, eta gidatua 4 ongietorria. 5 00:00:11,670 --> 00:00:14,270 >> Gaur gure pset Kernet da. 6 00:00:14,270 --> 00:00:18,080 Kernet datza fitxategiak bitmap aurre pset benetan dibertigarria da 7 00:00:18,080 --> 00:00:21,550 hilketa baten ezagutzeko. 8 00:00:21,550 --> 00:00:24,200 Ondoren, bitmap zenbait fitxategi tamaina aldatzeko goaz, 9 00:00:24,200 --> 00:00:27,780 ondoren ari gara, halaber, zati bat benetan dibertigarria izeneko Berreskuratu aurre egingo 10 00:00:27,780 --> 00:00:31,160 gaude, batez ere, memoria entregatu txartel bat 11 00:00:31,160 --> 00:00:34,350 norbait ustekabean ezabatu beren fitxategiak 12 00:00:34,350 --> 00:00:38,860 gaude eta fitxategiak horiek berreskuratzeko eskatu. 13 00:00:38,860 --> 00:00:42,910 >> Baina lehen, pset sartu iritsi aurretik, besterik ez dut nahi denek zoriondu. 14 00:00:42,910 --> 00:00:45,230 Ikastaro honen erdigunea gara. 15 00:00:45,230 --> 00:00:50,070 Quiz 0 atzean, eta pset4 dugu, eta, beraz, funtsean, erdibidean gaude. 16 00:00:50,070 --> 00:00:55,490 Etorri dugu bide luzea itxura itzuliz gero zure psets, pset0 eta pset1 17 00:00:55,490 --> 00:00:57,300 beraz, zoriondu zeure burua buruz, 18 00:00:57,300 --> 00:01:00,760 eta batzuk benetan fun stuff sartu dugu. 19 00:01:00,760 --> 00:01:07,070 >> Laukitik Beraz pset hau, berriro ere, sudo Yum-y update exekutatu beharrean, 20 00:01:07,070 --> 00:01:13,890 ahal izateko aski da update50 gara bertsio 17,3 eta, batez ere, aparatuaren baduzu. 21 00:01:13,890 --> 00:01:17,380 Beraz, ziurtatu update50 exekutatu asko errazten du, gutxiago karaktere batzuk - 22 00:01:17,380 --> 00:01:20,640 Ziur tresnaren azken bertsioa zaudela. 23 00:01:20,640 --> 00:01:25,410 Bereziki update50 garrantzitsua da CS50 Check erabiltzen hasten gara. 24 00:01:25,410 --> 00:01:28,700 Beraz, ziurtatu ez duzula. 25 00:01:28,700 --> 00:01:30,760 >> Pset honen atal guztiak, 26 00:01:30,760 --> 00:01:34,350 fitxategi sarrera eta irteera izango aurre goaz, fitxategian I / O. 27 00:01:34,350 --> 00:01:38,140 Array aurre egiteko programa asko bat baino gehiago egingo dugu 28 00:01:38,140 --> 00:01:40,350 fitxategiak eta horrelako gauzak seinalatuz, 29 00:01:40,350 --> 00:01:43,050 beraz, ziurtatu Oraindik ezagutzen dugun benetan eta erosoa egin nahi dugu 30 00:01:43,050 --> 00:01:47,990 sarrera eta irteera fitxategiak sartu aurre. 31 00:01:47,990 --> 00:01:52,080 >> Banaketa pset honetan kodea copy.c izeneko fitxategi bat da, 32 00:01:52,080 --> 00:01:55,280 eta hori da zer aurkituko dugu benetan erabilgarria izango da 33 00:01:55,280 --> 00:02:00,340 ari gara amaitzeko delako benetan copy.c fitxategia kopiatzean 34 00:02:00,340 --> 00:02:05,350 eta besterik ez da aldatu apur bat arazoa multzoa 2 lehen zatiak lortzeko gai izan. 35 00:02:05,350 --> 00:02:09,030 >> Eta, beraz, ondoren, aurretik aipatutako I bezala, bit-mapak, baita JPEGs ari gara aurre. 36 00:02:09,030 --> 00:02:13,170 Fitxategi horiek nola antolatzen dira, beraz, oso egitura ulertzeko, 37 00:02:13,170 --> 00:02:16,170 nola benetan 0 s eta 1s structs sartu ahal izango dugu itzultzeko 38 00:02:16,170 --> 00:02:19,040 eta gauzak ahal izango dugu benetan ulertu eta interpretatu eta editatzeko, 39 00:02:19,040 --> 00:02:21,000 benetan garrantzitsua izango da, 40 00:02:21,000 --> 00:02:25,970 beraz, JPEG eta fitxategiak bitmap sartu eta horien egitura ulertzeko. 41 00:02:25,970 --> 00:02:30,780 >> Pset4, ohikoa den bezala, atal bat galdera batekin hasten da. 42 00:02:30,780 --> 00:02:36,600 Dutenek egingo I / O fitxategi aurre egiteko eta, ohituta duzula. 43 00:02:36,600 --> 00:02:42,520 Ondoren, part 1 Whodunit da, zauden eman bitmap fitxategi bat 44 00:02:42,520 --> 00:02:45,630 itxura mota puntu gorria bezala osoan zehar. 45 00:02:45,630 --> 00:02:52,180 Eta gero, batez ere, zer egin behar dugu, fitxategi hau hartu eta besterik ez da apur bat editatu 46 00:02:52,180 --> 00:02:54,010 bertsio bat sartu ahal izango dugu irakurri. 47 00:02:54,010 --> 00:02:56,000 Funtsean, behin, amaitzeko fitxategi bera izan dugu, 48 00:02:56,000 --> 00:03:02,630 puntu gorri horiek guztiak ezkutatu ezkutuko mezua ikusteko gai izan ezik izango da. 49 00:03:02,630 --> 00:03:07,310 Ondoren Resize programa bat, fitxategi bat eman da 50 00:03:07,310 --> 00:03:11,490 eta, ondoren, eman izena fitxategia irteera dela eta, ondoren, zenbaki bat eman baita, 51 00:03:11,490 --> 00:03:16,850 benetan tamainaz aldatu bitmap hori egingo duten osoko balioa. 52 00:03:16,850 --> 00:03:19,240 Gero, azkenik, berreskuratu pset dugu. 53 00:03:19,240 --> 00:03:24,160 Dugu memoria txartel bat ematen zaie, eta ondoren argazki guztiak berreskuratu 54 00:03:24,160 --> 00:03:25,920 ustekabean ezabatu egin dira, 55 00:03:25,920 --> 00:03:31,420 , baina ikasi dugu bezala, ez ezabatu eta fitxategia kendu da; 56 00:03:31,420 --> 00:03:38,470 dugu mota horretako galdu ziren fitxategia, baina berreskuratzen ari gara. 57 00:03:38,470 --> 00:03:44,950 >> Great. Beraz, I / O fitxategi zehazki, honako hauek dira joan behar duzula erabiltzen dugu funtzio zerrenda osoa. 58 00:03:44,950 --> 00:03:49,840 Dagoeneko ikusi duzu pixka bat fopen-oinarriak, fread, eta fwrite 59 00:03:49,840 --> 00:03:54,350 baina gehiago nahi izanez gero begiratu fitxategi batean goaz, I / O, hala nola fputc funtzioak 60 00:03:54,350 --> 00:03:56,930 horretan, karaktere bat idatzi besterik ez duzu, aldi berean, 61 00:03:56,930 --> 00:04:02,000 kokapenean fseek egin, non mota mugitu fitxategia posizioa adierazlea aurreraka eta atzeraka, 62 00:04:02,000 --> 00:04:05,770 eta, ondoren, beste batzuk. Baina hori izan dugu pixka bat beranduago pset zehar. 63 00:04:08,050 --> 00:04:13,100 >> Beraz, lehenik eta behin, fitxategi I / O pset sartu genuen joan aurretik, 64 00:04:13,100 --> 00:04:19,860 fitxategi bat ireki, esaterako, zer egin behar duzu benetan ezarri fitxategiaren erakuslea. 65 00:04:19,860 --> 00:04:22,710 Beraz, FITXATEGIA * erakuslea dugu. 66 00:04:22,710 --> 00:04:27,140 Kasu honetan, erakuslea bat deitzen dut nire infile izango delako. 67 00:04:27,140 --> 00:04:33,340 Eta, beraz, funtzioa fopen fitxategiaren izena eta, ondoren, erabili ahal izateko noa 68 00:04:33,340 --> 00:04:36,360 eta, ondoren, modua egingo dut fitxategia aurre. 69 00:04:36,360 --> 00:04:42,080 Beraz, ez da "r" kasu honetan irakurtzeko, idazteko "w", eta, ondoren, "a" gehituaz. 70 00:04:42,080 --> 00:04:44,270 Esate baterako, infile batekin ari zara aurre 71 00:04:44,270 --> 00:04:47,310 eta egin nahi duzun guztia irakurri eta bertan gordetzen bit eta byte 72 00:04:47,310 --> 00:04:50,420 ondoren, seguruenik ari zaren "r" Zure moduan erabili nahi du. 73 00:04:50,420 --> 00:04:54,520 Benetan idatzi nahi baduzu, mota honetako fitxategi berri bat egiteko, 74 00:04:54,520 --> 00:04:57,220 ondoren, zer egin behar dugu, fitxategi berria ireki dugu 75 00:04:57,220 --> 00:05:02,410 eta erabili "w" moduan idazteko. 76 00:05:02,410 --> 00:05:07,540 >> Beraz, orduan, benetan ari zaren fitxategiak sartu irakurketa, egitura ondorengoa da. 77 00:05:07,540 --> 00:05:14,930 Lehenik eta behin, egitura bytes ari zaren irakurtzen edukiko du erakuslea. 78 00:05:14,930 --> 00:05:19,830 Beraz, ari zaren irakurtzen bytes kokapena izango da. 79 00:05:19,830 --> 00:05:23,360 Ondoren ari zara tamaina adierazteko, funtsean, zenbat byte 80 00:05:23,360 --> 00:05:30,100 zure programa fitxategi irakurtzeko, tamaina, funtsean, elementu bat izan da, 81 00:05:30,100 --> 00:05:32,620 eta, ondoren, zenbat elementu irakurri nahi duzun zehaztu behar duzu. 82 00:05:32,620 --> 00:05:34,980 Eta gero, azkenik, irakurtzen ari zaren jakin behar duzu, 83 00:05:34,980 --> 00:05:37,580 Beraz, zure erakuslea izango da. 84 00:05:37,580 --> 00:05:41,780 I-kolore kodetu horiek fread ere oso antzekoak fsync 85 00:05:41,780 --> 00:05:47,050 Ziur erabiltzeko eskubidea duzula ordena egin nahi duzun izan ezik, 86 00:05:47,050 --> 00:05:51,960 ziurtatu ari zaren benetan edo idatziz eskuin fitxategia irakurtzean. 87 00:05:54,910 --> 00:05:58,610 >> Orduan aurretik, elementuaren tamaina ditugu, baita elementu kopurua izanez gero, 88 00:05:58,610 --> 00:06:00,600 ondoren, play inguruan dezakegu hemen apur bat. 89 00:06:00,600 --> 00:06:06,810 Esan DOG eta egitura bat behar dut eta, beraz, ondoren, aldi berean bi txakur irakurri nahi dut. 90 00:06:06,810 --> 00:06:12,450 Zer egin izan dut, elementu bat tamaina esan da DOG bat tamaina izango 91 00:06:12,450 --> 00:06:14,770 eta horietako bi benetan irakurri dut. 92 00:06:14,770 --> 00:06:18,290 Bestela, zer egin izan dut besterik ez dut elementu bat irakurri du esan da 93 00:06:18,290 --> 00:06:21,340 eta elementu bat bi txakurren tamaina izango da. 94 00:06:21,340 --> 00:06:24,320 Beraz, antzeko play-mota, tamaina eta kopurua inguruan 95 00:06:24,320 --> 00:06:28,250 zer duzun intuitiboa arabera. 96 00:06:28,250 --> 00:06:30,810 >> Guztiak eskubidea. Beraz, gaur egun idazteko fitxategiak dugu. 97 00:06:30,810 --> 00:06:36,880 Fitxategi bat idatzi nahi duzun, lehen argumentua da benetan non irakurtzen ari zaren. 98 00:06:36,880 --> 00:06:42,050 Beraz, funtsean, datuen fitxategia idazten ari zarela, 99 00:06:42,050 --> 00:06:44,490 erakuslea amaieran out da. 100 00:06:44,490 --> 00:06:47,670 Beraz, pset batera ari zaren aurre, ziurtatu ez duzu get nahastu. 101 00:06:47,670 --> 00:06:50,480 Agian definizio aldamenean. 102 00:06:50,480 --> 00:06:58,090 Definizioak tira ditzakezu eskuliburua man idatziz eta, ondoren, fwrite, esate baterako, 103 00:06:58,090 --> 00:06:59,950 terminalean, edo erreferentzia atzera dezakezu diapositiba honetan 104 00:06:59,950 --> 00:07:03,570 eta ziurtatu eskuineko ari zaren bat erabiliz. 105 00:07:03,570 --> 00:07:08,700 Beraz, berriro ere, fwrite, fitxategi bat behar duzu nahi duzun idazteko sartu, 106 00:07:08,700 --> 00:07:14,290 den azken argumentua izango da eta hori izango da fitxategiaren erakuslea. 107 00:07:14,290 --> 00:07:18,670 Beraz, orduan nola aurre agian idatziz, aldi berean hainbat bytes dugu, 108 00:07:18,670 --> 00:07:21,820 baina esan karaktere bat bakarra idatzi nahi duzu. 109 00:07:21,820 --> 00:07:25,940 Aurrerago ikusiko dugun bezala dugu, adibide honetan, bitmap hori erabili dugu. 110 00:07:25,940 --> 00:07:32,180 Orduan erabili fputc ahal izango dugu, batez ere, karaktere bat jarriz aldi berean, CHR 111 00:07:32,180 --> 00:07:37,050 fitxategi erakuslea sartu, eta hori gure out erakuslea hor. 112 00:07:38,700 --> 00:07:41,560 Orduan bilatzen dugu direnean edo idatzi fitxategi batean, 113 00:07:41,560 --> 00:07:44,690 fitxategia jarraipena da non gauden. 114 00:07:44,690 --> 00:07:47,810 Beraz, kurtsorea, fitxategi posizioa adierazle moduko bat da. 115 00:07:47,810 --> 00:07:54,330 Eta horrela direnean edo idatzi dugu, irakurri berriro fitxategi batean, 116 00:07:54,330 --> 00:07:56,760 fitxategi benetan gogoratzen non da, 117 00:07:56,760 --> 00:07:59,270 eta, beraz, jarraitzen kurtsorea non dagoen. 118 00:07:59,270 --> 00:08:03,970 Hau onuragarria izan daiteke nahi duzun, esan, irakurri, kopuru jakin batean zerbait egin 119 00:08:03,970 --> 00:08:06,160 eta, ondoren, honako kopuru hauek irakurri, 120 00:08:06,160 --> 00:08:10,700 baina batzuetan nahi atzera edo benetan joan abiatuko da erreferentzia-balio jakin bat izatea. 121 00:08:10,700 --> 00:08:16,870 Orduan kokapenean fseek egin funtzioa, zer egiten da, aukera ematen du kurtsorea mugitzeko zenbait fitxategi batean 122 00:08:16,870 --> 00:08:19,680 byte kopuru jakin bat. 123 00:08:19,680 --> 00:08:24,260 Eta gero, zer egin behar dugu zehaztu non da erreferentzia-balioa. 124 00:08:24,260 --> 00:08:31,520 Beraz, bai aurrera edo atzera mugitzen da kurtsorea non da gaur egun, 125 00:08:31,520 --> 00:08:35,750 edo zehaztu behar dela mugitu fitxategia hasieran dezakegu 126 00:08:35,750 --> 00:08:37,090 edo fitxategia amaiera. 127 00:08:37,090 --> 00:08:41,230 Eta beraz, balio negatiboak edo positiboak dezakezu gainditzeko zenbatekoa, 128 00:08:41,230 --> 00:08:44,960 eta hori mota mugitu kurtsorea bai aurreraka, bai atzeraka. 129 00:08:46,170 --> 00:08:51,920 >> Beste psets iritsi baino lehen, fitxategia edozein galdera I / O? 130 00:08:53,860 --> 00:08:59,990 Ongi da. Adibide gehiago sartu gara, sentitzen free me gelditzeko zalantzak argitzeko. 131 00:08:59,990 --> 00:09:06,930 >> Beraz Whodunit, zu entregatu bitmap file diapositiba bat gorri hau antzekoa, 132 00:09:06,930 --> 00:09:14,510 eta itxura hau atsegin puntu gorri sorta bat - eta ez duzu benetan dakit zer idatzi. 133 00:09:14,510 --> 00:09:23,310 Duzu squint bada, erdian barruan kolore urdin apur bat ikusteko gai izango ahal izango duzu. 134 00:09:23,310 --> 00:09:26,270 Funtsean, hori da testua gordetzen. 135 00:09:26,270 --> 00:09:30,270 Hilketa bat gertatu zen, eta jakiteko nor zuen behar dugu. 136 00:09:30,270 --> 00:09:36,760 Horretarako, irudi hau irakurgarria formatu batean bihurtzeko mota behar dugu. 137 00:09:36,760 --> 00:09:42,740 Inoiz aurkitu duzu guys bada, horrek, batzuetan gutxi kit izango litzateke 138 00:09:42,740 --> 00:09:48,510 , non gorria film batekin lupa bat izango litzateke. Edonork? Bai. 139 00:09:48,510 --> 00:09:52,770 Beraz, honen antzeko zerbait jasotzen baduzu, lupa bat izango litzateke 140 00:09:52,770 --> 00:09:58,130 film gorri, jarri nahi duzun irudiaren gainean, 141 00:09:58,130 --> 00:10:03,410 eta mezua ezkutuan bertan ikus ahal izango litzateke. 142 00:10:03,410 --> 00:10:07,080 Ez dugu film gorria lupa, beraz, horren ordez, mota sortu gure goaz 143 00:10:07,080 --> 00:10:09,060 pset honetan. 144 00:10:09,060 --> 00:10:15,760 Eta horrela, erabiltzaileak sarrera whodunit, ondoren arrastoren,. Bmp 145 00:10:15,760 --> 00:10:18,800 beraz, infile, dot mezu gorria, 146 00:10:18,800 --> 00:10:23,550 eta, ondoren, verdict.bmp gure outfile izango esaten ari dira. 147 00:10:23,550 --> 00:10:27,900 Beraz, bitmap irudi arrastoren bat antzekoa berri bat sortu da 148 00:10:27,900 --> 00:10:32,600 formatu irakurtzeko modukoa izan ezik, non ezkutuko mezua ikusi ahal izango dugu. 149 00:10:32,600 --> 00:10:37,550 >> Ari gara Nolabaiteko bitmap eta editatzeko manipulatzeko aurre joan zenetik, 150 00:10:37,550 --> 00:10:42,400 bitmap fitxategiak hauen egitura sartu dive mota dugu. 151 00:10:42,400 --> 00:10:48,130 Horiek apur baino gehiago joan gara hitzaldi,, baina dezagun begiratu batzuk gehiago. 152 00:10:48,130 --> 00:10:51,740 Bitmap horretarako bytes moldaketa bat besterik ez dira, funtsean, 153 00:10:51,740 --> 00:10:55,790 zehaztu dugu zein bytes esan nahi. 154 00:10:55,790 --> 00:11:00,540 Beraz, hemen da mota bitmap image mapa batean bezala, 155 00:11:00,540 --> 00:11:08,550 zenbait goiburu fitxategiak hasten dela esaten duena, bertan zenbait informazio batekin hasten da. 156 00:11:08,550 --> 00:11:16,540 Buruzko byte kopurua 14 tamaina bitmap image adierazten ikusiko duzu, 157 00:11:16,540 --> 00:11:18,520 eta jarraitzen du. 158 00:11:18,520 --> 00:11:23,810 Baina orduan zer benetan gaude hemen interesatzen byte kopurua 54 inguruan hasten da. 159 00:11:23,810 --> 00:11:26,060 RGB triples hauek ditugu. 160 00:11:26,060 --> 00:11:30,760 Zer den egingo da eduki pixel, benetako koloreak balio. 161 00:11:30,760 --> 00:11:35,950 Goiburua baino Dena informazio batzuk 162 00:11:35,950 --> 00:11:41,240 dagokion irudia, irudiaren zabalera, altuera eta tamaina. 163 00:11:41,240 --> 00:11:44,930 Noiz joan betegarria dugu geroago, ikusiko dugu zergatik irudiaren tamaina 164 00:11:44,930 --> 00:11:48,670 zabalera edo altuera desberdina izan daiteke. 165 00:11:48,670 --> 00:11:54,240 Orduan horiek bitmap irudi horiek ez dira byte sekuentziak 166 00:11:54,240 --> 00:11:59,370 zer egin izan dugu ados esaten da, gogoratzen dut index 14, 167 00:11:59,370 --> 00:12:03,380 duen tamaina da, esate baterako, baizik eta errazago hau egiteko zer egin dugu 168 00:12:03,380 --> 00:12:06,020 it enkapsulatu struct batean. 169 00:12:06,020 --> 00:12:08,880 Eta beraz, bi Gurekin egindako structs, BITMAPFILEHEADER bat dugu 170 00:12:08,880 --> 00:12:10,440 eta BITMAPINFOHEADER bat, 171 00:12:10,440 --> 00:12:14,840 eta, beraz, bakoitzean fitxategi hori irakurri dugu, berez ordena egingo da joan, 172 00:12:14,840 --> 00:12:22,360 eta, beraz, ordena ere bete hala nola biWidth eta biSize aldagai sartu egingo. 173 00:12:25,270 --> 00:12:31,230 Eta gero, azkenik, pixel bakoitzean hiru bytes irudikatzen. 174 00:12:31,230 --> 00:12:35,500 Lehena urdina pixel zenbatekoa da, bigarrena berdea zenbatekoa da, 175 00:12:35,500 --> 00:12:41,120 eta, azkenik, gorria, non 0 funtsean urdina edo berde ez zenbatekoa edo ez gorria 176 00:12:41,120 --> 00:12:43,720 eta, ondoren, ff gehienezko balioa da. 177 00:12:43,720 --> 00:12:46,800 Hamaseitarra balioak dira. 178 00:12:46,800 --> 00:12:53,870 Orduan dugu FF0000 gero, blue gehienezko zenbatekoa dagokion 179 00:12:53,870 --> 00:12:58,890 eta, ondoren, ez da berdea eta gorria ez, eta, beraz, gero gaituen luke pixel bat urdina. 180 00:12:58,890 --> 00:13:04,190 Ondoren dugu ff guztien taula osoan, eta gero esan nahi du pixel zuri bat dugula. 181 00:13:04,190 --> 00:13:11,370 Eta normalean kontrakoa mota da RGB esaten dugu. Benetan da BGR joan. 182 00:13:12,750 --> 00:13:18,990 >> Beraz, benetan bitmap irudi adibide bat hartuz gero itxura - let me tira bat sortu hemen. 183 00:13:31,560 --> 00:13:33,830 Txiki-txiki bat da. 184 00:13:39,890 --> 00:13:47,840 Zooma handitzen ari naiz, eta ikusi du pixelated ahal izango dugu. Itxura kolore blokeak bezalakoa da. 185 00:13:47,840 --> 00:13:50,110 Zuri blokeak eta gero gorria bloke duzu. 186 00:13:50,110 --> 00:13:53,700 Microsoft Paint play bada, esate baterako, horrelako zerbait egin ahal izango duzu 187 00:13:53,700 --> 00:13:58,960 funtsean, zenbait lauki pintura ordena jakin bat. 188 00:13:58,960 --> 00:14:08,060 Orduan zer itzultzen bit hau da, honela. 189 00:14:08,060 --> 00:14:15,710 Hemen lehen pixel zuri dugu, 6 f-en, eta ondoren gorria pixel dugu, 190 00:14:15,710 --> 00:14:19,910 0000ff bidez adierazten da. 191 00:14:19,910 --> 00:14:27,940 Adierazten du, eta beraz, bytes dugun sekuentzia bitmap image nola begiratzen du. 192 00:14:27,940 --> 00:14:32,230 Beraz, zer egin dut hemen besterik ez da idatzitako byte horiek guztiak eta, ondoren, koloretako gorria 193 00:14:32,230 --> 00:14:37,550 beraz, mota ikus dezakezu, pixka bat squint duzun, nola mota horretako smiley face adierazten bada. 194 00:14:40,180 --> 00:14:46,390 >> Bitmap irudiak lan egiten duten I funtsean sareta bat kenduko zituela. 195 00:14:46,390 --> 00:14:54,940 Eta horrela, lehenespenez saretaren lerro guztietan 4 byte multiplo bat izan du. 196 00:15:00,520 --> 00:15:07,060 Bitmap image begiratzen badiogu, balio guztietan ari zaren betez. 197 00:15:07,060 --> 00:15:17,370 Esate baterako, gorri bat izan dezake duzu hemen, berde bat hemen, hemen urdin bat, 198 00:15:17,370 --> 00:15:24,950 baina ziur irudi hori bete lau byte multiplo bat egin behar duzu. 199 00:15:24,950 --> 00:15:32,200 Beraz, nahi dut nire irudi hiru bloke zabala izan bada, orduan Balio huts bat jarri nahi dut 200 00:15:32,200 --> 00:15:35,640 azken batean, lau multiploa izan dadin. 201 00:15:35,640 --> 00:15:39,530 Orduan horrek betegarria deitzen ari gara nuke. 202 00:15:39,530 --> 00:15:43,750 Besterik ez naiz x bat ez dagoela adierazi du. 203 00:15:44,920 --> 00:15:54,160 7 pixel luzera duen irudi bat da orain esan nahi dugu, esate baterako. 204 00:15:54,160 --> 00:15:59,550 1, 2, 3, 4, 5, 6, 7, 205 00:16:04,750 --> 00:16:07,000 eta hori guztia betetzen da kolore. 206 00:16:07,000 --> 00:16:10,620 Bitmap irudiak lan egiten duten 8an bat behar dugu. 207 00:16:10,620 --> 00:16:12,460 Oraintxe bertan, 1, 2, 3, 4, 5, 6, 7 dugu. 208 00:16:12,460 --> 00:16:19,360 Behar bezala irakurri bitmap irudi 8 espazioak behar dugu. 209 00:16:19,360 --> 00:16:25,600 Orduan, zer egin behar dugu betegarria apur bat gehitu 210 00:16:25,600 --> 00:16:29,430 Ziur zabalerak guztiak uniforme 211 00:16:29,430 --> 00:16:34,260 eta zabalerak diren 4 multiploa. 212 00:16:42,110 --> 00:16:47,310 Eta, beraz, aldez aurretik adierazitako I, x bat edo line squiggly gisa kokatu betegarriz osatu eta, 213 00:16:47,310 --> 00:16:53,880 baina benetako irudiak bitmap betegarria hamaseitarra 0 adierazten da. 214 00:16:53,880 --> 00:16:57,340 Beraz, pertsonaia bakar bat, 0 izango litzateke. 215 00:16:58,980 --> 00:17:06,329 Komandoa xxd baliteke handy etorriko da. 216 00:17:06,329 --> 00:17:11,220 Zer egiten da, benetan erakusten dizu, zer aurretik nuen aurpegieren antzekoak gustatzen 217 00:17:11,220 --> 00:17:15,630 inprimatutako actually I kolore bakoitzak zer pixel izango litzateke 218 00:17:15,630 --> 00:17:21,800 eta, ondoren, kolore-kodetuta, ondorengo komandoak xxd exekutatzen duzun, 219 00:17:21,800 --> 00:17:28,670 ondoren, benetan inprima izango da zer koloreak pixel horiek dira. 220 00:17:28,670 --> 00:17:33,810 Zer egin behar duzu hemen adierazten dut,-s 54 bezalako 221 00:17:33,810 --> 00:17:36,530 naiz dela dio I 54 byte hasteko 222 00:17:36,530 --> 00:17:40,820 delako hori baino lehen, gogoan izan dugu itzuliz gero bitmap mapa 223 00:17:40,820 --> 00:17:42,690 goiburu guztiek informazio eta gauzak horrela. 224 00:17:42,690 --> 00:17:46,280 Baina, zer axola benetan gara benetako kolorea adierazten duten pixel da. 225 00:17:46,280 --> 00:17:52,700 Beraz, Ez hori,-s 54 gehituz, eta, ondoren, kolore-balioak ikusteko gai gara. 226 00:17:52,700 --> 00:17:56,020 Eta ez kezkatu banderak korapilatsu eta gauzak horrela. 227 00:17:56,020 --> 00:18:05,020 Arazo multzo zehaztapenak, nola xxd erabili pixel erakutsi jarraibideak izango duzu. 228 00:18:07,070 --> 00:18:15,590 Beraz, hemen ikusten duzun, kutxa berde bat, gauza txiki hau atsegin mota itxura. 229 00:18:15,590 --> 00:18:23,610 Nik kolore-kodetuta 00ff00, funtsean, ez urdin, berde asko, eta gorria ez esaten. 230 00:18:23,610 --> 00:18:26,370 Beraz, berdea dagokio. 231 00:18:26,370 --> 00:18:31,920 Hemen ikusten duzun bezala, laukizuzen berde bat ikusiko dugu. 232 00:18:31,920 --> 00:18:36,660 Laukizuzen berde hau da, 3 baino ez pixel zabalera, eta, beraz, orduan zer egin behar dugu 233 00:18:36,660 --> 00:18:44,350 ziurtatu irudia dela 4 zabal bat baino gehiago egin da betegarria gehigarria gehitu. 234 00:18:44,350 --> 00:18:49,460 Eta, beraz, Orduan, 0 s horiek nola ikusten duzu hemen. 235 00:18:49,460 --> 00:18:54,510 Hau izango da benetan zure Resize pset ondorio izan, 236 00:18:54,510 --> 00:19:01,350 funtsean bit txikia hartu eta, ondoren, 4 handitzeko. 237 00:19:01,350 --> 00:19:09,380 Eta beraz, zer ikusten dugun irudi hau da, benetan 12 pixeletako zabalera, baina 12 4 multiplo bat da, 238 00:19:09,380 --> 00:19:12,940 eta, beraz, ez dugu ez ikusi behar dugu ez delako edozein amaieran 0 s gehitu 239 00:19:12,940 --> 00:19:19,070 guztiz hedatu delako. Ez du gehiago gela. 240 00:19:20,720 --> 00:19:23,470 >> Ongi da. Betegarria buruzko edozein galdera? 241 00:19:25,150 --> 00:19:27,460 Ongi da. Cool. 242 00:19:27,460 --> 00:19:32,520 >> Aurretik aipatutako I bezala, bitmap byte sekuentzia bat besterik ez dira. 243 00:19:32,520 --> 00:19:39,170 Eta beraz, zer dugun pista mantentzeko zehazki byte kopurua beharrik ordez 244 00:19:39,170 --> 00:19:47,050 elementu jakin bat dagokio, izan dugu eta egitura bat sortu ordezkatzen dituzten. 245 00:19:47,050 --> 00:19:50,930 Beraz, zer dugu RGBTRIPLE eta egitura bat da. 246 00:19:50,930 --> 00:19:54,590 Bakoitzean RGB triple baten instantzia bat behar duzu, 247 00:19:54,590 --> 00:20:00,970 hau da, mota bat definitzea eta egitura delako, eta gero rgbtBlue aldagaia sartu ahal izango duzu, 248 00:20:00,970 --> 00:20:09,520 era berean, Green eta Red aldagaiak, hau da, adierazi zenbat urdina, berdea eta gorria, 249 00:20:09,520 --> 00:20:11,580 hurrenez hurren, duzu. 250 00:20:11,580 --> 00:20:16,800 >> Beraz, bada, aldagai multzo urdina dugu, 0 ff set berdea, 251 00:20:16,800 --> 00:20:22,060 gehienezko balioa izan dezakezu, eta, ondoren, aldagai 0 ezarri gorria, 252 00:20:22,060 --> 00:20:27,870 orduan zer kolore zehatz honetan RGB triple irudikatzeko? >> [Ikasleak] Green. 253 00:20:27,870 --> 00:20:29,150 Green. Hain zuzen ere. 254 00:20:29,150 --> 00:20:34,480 Erabilgarria izan jakin bakoitzean RGB triple baten instantzia bat behar duzu, 255 00:20:34,480 --> 00:20:41,340 benetan sartu ahal izango duzu kolore zenbatekoa - urdina, berdea eta gorria, banan-banan. 256 00:20:43,350 --> 00:20:54,900 >> Orain horren egiturari buruz hitz egin dugu dugun dezagun, BMP fitxategia begirada bat. 257 00:20:54,900 --> 00:20:57,870 Hauek zuretzat egin structs dira. 258 00:20:57,870 --> 00:21:01,820 Hemen BITMAPFILEHEADER eta egitura bat behar dugu. 259 00:21:01,820 --> 00:21:07,610 Interes-tamaina da. 260 00:21:07,610 --> 00:21:12,660 Geroago, info goiburua ditu, batzuk gehiago diren gauzak interesgarri dugu, 261 00:21:12,660 --> 00:21:15,480 hots, tamaina, zabalera, altuera eta. 262 00:21:15,480 --> 00:21:19,170 Geroago ikusiko dugun bezala sartu, irakurri duzun fitxategia, 263 00:21:19,170 --> 00:21:25,500 dugu delako ordena berdinak izatea automatikoki irakurtzen du. 264 00:21:25,500 --> 00:21:31,990 Beraz biSize bytes eskuineko irudiaren benetako tamaina dagozkion edukiko du. 265 00:21:34,700 --> 00:21:40,500 Eta gero, azkenik, dugu buruz hitz gisa, RGBTRIPLE typedef struct dugu. 266 00:21:40,500 --> 00:21:46,840 RgbtBlue, Green, eta Red lotutako ditugu. 267 00:21:48,210 --> 00:21:49,340 >> Great. Ongi da. 268 00:21:49,340 --> 00:21:56,360 Orain ulertzen dugu bitmap pixka bat, ulertzen dugun fitxategiaren goiburua 269 00:21:56,360 --> 00:22:00,790 eta lotutako info goiburu bat da eta, ondoren, horren ondoren, material interesgarria izan dugu 270 00:22:00,790 --> 00:22:05,110 koloreak, eta kolore horiek structs RGBTRIPLE irudikatzen 271 00:22:05,110 --> 00:22:12,710 eta horiek, aldi berean, hiru urdina, berdea eta gorria lotutako balioak. 272 00:22:12,710 --> 00:22:17,270 >> Beraz, gaur egun, mota pentsatu pixka bat berreskuratu ahal dugu. 273 00:22:17,270 --> 00:22:20,130 Sentitzen dugu. Whodunit pentsatu. 274 00:22:20,130 --> 00:22:25,750 Gure arrastoren fitxategia dugu, orduan zer egin nahi dugun da irakurtzeko pixel pixel 275 00:22:25,750 --> 00:22:33,860 eta, ondoren, nolabait aldatu pixel horiek horrela bistaratu ahal izango dugu formatu irakurtzeko modukoa. 276 00:22:33,860 --> 00:22:41,020 Eta beraz, irteera, fitxategi verdict.bmp pixel pixel idatzi dugu. 277 00:22:41,020 --> 00:22:45,120 Mota asko egin da. Dela konturatzen gara. 278 00:22:45,120 --> 00:22:49,860 Beraz, zer egin dugu, ez dago zer dugu zurekin copy.c. 279 00:22:49,860 --> 00:22:57,610 Zer copy.c ez da bitmap emandako fitxategi kopia zehatza egiten du, eta, ondoren, irteera. 280 00:22:57,610 --> 00:23:01,900 Beraz, hau dagoeneko fitxategi irekiko da, pixel Irakurketa pixel, 281 00:23:01,900 --> 00:23:04,510 eta, ondoren, idazten du irteera fitxategi batean. 282 00:23:04,510 --> 00:23:07,080 >> Ikus dezagun begirada bat. 283 00:23:13,390 --> 00:23:18,290 Erabilera egokia bermatzeko, 284 00:23:18,290 --> 00:23:22,640 fitxategi-izenak eskuratzen hemen. 285 00:23:22,640 --> 00:23:29,940 Zer da hau? Du sarrerako fitxategia ezartzen du gainditu dugu in infile, hemen izango da, 286 00:23:29,940 --> 00:23:34,750 komando-lerroko argumentu gure bigarren. 287 00:23:34,750 --> 00:23:37,640 Egiaztapen ziurtatu fitxategia ireki ahal izango dugu egin. 288 00:23:38,960 --> 00:23:44,860 Egiaztapen ziur outfile berri bat egin ahal izango dugu hemen. 289 00:23:45,630 --> 00:23:53,270 Orduan, zer hau da, hemen, funtsean, besterik ez da hasten bitmap file irakurketa hasieratik. 290 00:23:53,270 --> 00:23:56,700 Hasieran, ezagutzen dugun bezala, BITMAPFILEHEADER dauka, 291 00:23:56,700 --> 00:24:03,200 eta beraz, sekuentzia horiek bit zuzenean BITMAPFILEHEADER en bete. 292 00:24:03,200 --> 00:24:07,940 Beraz, zer Hemen dugu BITMAPFILEHEADER BF dela esaten 293 00:24:07,940 --> 00:24:13,150 dela gure mota BITMAPFILEHEADER aldagai berria 294 00:24:13,150 --> 00:24:22,560 BF barruan jarri erakuslea hasi zer irakurri dugun goaz, gure infile da. 295 00:24:22,560 --> 00:24:23,970 Zenbat ez dugu irakurri? 296 00:24:23,970 --> 00:24:32,160 Irakurri zenbat byte osoa BITMAPFILEHEADER eduki behar dugu. 297 00:24:32,160 --> 00:24:34,660 Era berean, hori da egiten duguna info goiburua. 298 00:24:34,660 --> 00:24:39,010 Beraz, gure fitxategi batera ari gara infile en jarraitu 299 00:24:39,010 --> 00:24:44,360 eta bit eta byte horiek ari gara irakurtzen, eta horietako plugging ari gara zuzenean 300 00:24:44,360 --> 00:24:47,880 aldagai ari gara instantzia horietan. 301 00:24:49,370 --> 00:24:53,800 Hemen ari gara ziur bit bit-mapa bat da. 302 00:24:57,670 --> 00:25:01,030 >> Orain outfile bat dugu, ezta? 303 00:25:01,030 --> 00:25:04,420 Beraz, noiz sortu dugu nabarmentzen da, funtsean, hutsik da. 304 00:25:04,420 --> 00:25:07,710 Beraz, funtsean, hutsetik bitmap berri bat sortu behar dugu. 305 00:25:07,710 --> 00:25:12,280 Zer egiten dugu ziur fitxategiaren goiburua dugun kopiatu egin behar dugu 306 00:25:12,280 --> 00:25:16,850 eta infile bezala header info ditu. 307 00:25:16,850 --> 00:25:22,850 Zer egiten dugu idatzi dugu, eta gogoratu BF aldagaia 308 00:25:22,850 --> 00:25:29,300 mota BITMAPFILEHEADER, zer egiten dugun da eduki hori erabili besterik ez dugu beraz, 309 00:25:29,300 --> 00:25:34,980 outfile sartu idazten. 310 00:25:36,550 --> 00:25:38,510 Hemen, gogoratu hitz betegarria gara, 311 00:25:38,510 --> 00:25:47,820 nola garrantzitsua da ziur dugun pixel zenbatekoa 4 multiploa da. 312 00:25:47,820 --> 00:25:52,790 Zenbat betegarria duzu kalkulatzeko formula nahiko erabilgarria da 313 00:25:52,790 --> 00:25:57,670 eman zure koadernoan zabalera. 314 00:25:57,670 --> 00:26:04,120 You guys copy.c betegarria kalkulatzeko formula bat dugu gogoratu nahi dut. 315 00:26:04,120 --> 00:26:07,970 Ados? Beraz, guztion gogoan. Great. 316 00:26:07,970 --> 00:26:14,050 Orduan, zer copy.c du hurrengo da iterates bigarrenak lerroak garbitu, guztiak. 317 00:26:14,050 --> 00:26:23,730 Doa ilara bitartez, lehenik eta, ondoren, hirukoitza behin irakurtzen dela gordetzen 318 00:26:23,730 --> 00:26:26,920 eta, ondoren,, idazten du outfile sartu. 319 00:26:26,920 --> 00:26:33,120 Orduan hemen bakarra RGB triple ari gara aldi berean irakurtzen 320 00:26:33,120 --> 00:26:39,860 eta, ondoren, triple hori bera jarriz outfile sartu. 321 00:26:41,120 --> 00:26:48,340 Delikatua da, betegarria ez dela RGB triple bat, 322 00:26:48,340 --> 00:26:55,200 eta, beraz, ezin dugu irakurri RGB triples zenbatekoa betegarria hori. 323 00:26:55,200 --> 00:27:01,460 Zer egin behar dugu gaur egun besterik ez mugitu gure fitxategia posizioa adierazle, gure kurtsorea mugitzeko, 324 00:27:01,460 --> 00:27:06,840 saltatzeko betegarria guztiak baino gehiago da, beraz, hurrengo errenkadan mota. 325 00:27:06,840 --> 00:27:12,990 Eta gero, zer hau ez da kopia erakusten dizu nola nahi betegarria gehitu dezakezu. 326 00:27:12,990 --> 00:27:14,990 Beraz, kalkulatzen dugu zenbat betegarria behar dugu, 327 00:27:14,990 --> 00:27:18,220 beraz, horrek esan nahi du behar ditugu betegarria 0 s zenbakia. 328 00:27:18,220 --> 00:27:24,510 Zer da hau ez da begizta betegarria 0 s zenbakia jartzen gure outfile sartu. 329 00:27:24,510 --> 00:27:31,170 Eta gero, azkenik, bi fitxategiak itxi duzu. Infile ondo gisa outfile itxi duzu. 330 00:27:31,170 --> 00:27:34,870 >> Beraz, nola copy.c lanak, 331 00:27:34,870 --> 00:27:37,430 eta hori nahiko erabilgarria izango da. 332 00:27:39,720 --> 00:27:43,750 Horren ordez, besterik gabe, benetan zuzenean kopiatu eta itsasteko 333 00:27:43,750 --> 00:27:46,800 edo, besterik gabe, begiratu eta nahi duzuna idazten 334 00:27:46,800 --> 00:27:49,440 besterik ez dezakezu nahi terminalean komando hau exekutatzeko, 335 00:27:49,440 --> 00:27:54,520 cp copy.c whodunit.c, fitxategi berri bat sortuko da, whodunit.c 336 00:27:54,520 --> 00:27:58,330 zehatza eduki bera kopia gisa ez dauka. 337 00:27:58,330 --> 00:28:03,880 Orduan, zer egin dezakegu esparru gisa gainean eraiki eta editatzeko erabiltzen da 338 00:28:03,880 --> 00:28:06,900 gure whodunit fitxategia. 339 00:28:08,500 --> 00:28:14,670 >> Hauek dira gure dos Whodunit egin, baina zer copy.c du 340 00:28:14,670 --> 00:28:16,730 horietako gehienak benetan Gurekin arreta hartzen du. 341 00:28:16,730 --> 00:28:21,900 Beraz, hurrengo egin behar dugu behar bezala aldatu pixel 342 00:28:21,900 --> 00:28:25,920 benetan fitxategia irakurtzeko. 343 00:28:25,920 --> 00:28:32,960 Gogoratu pixel bat eman hirukoitza, eta, beraz, mota RGBTRIPLE aldagai jakin bat, 344 00:28:32,960 --> 00:28:35,990 urdina, berdea eta gorria balioak sartu ahal izango duzu. 345 00:28:35,990 --> 00:28:38,670 Hori etorri egingo handy horiek sartu ahal izango delako, 346 00:28:38,670 --> 00:28:41,770 horrek esan nahi du ezin duzula ere egiaztatu 347 00:28:41,770 --> 00:28:45,430 eta horrek esan nahi du ezin duzula ere aldatu. 348 00:28:45,430 --> 00:28:49,430 >> Beraz, itzuli ginen gure lupa gorria adibidez, 349 00:28:49,430 --> 00:28:53,390 funtsean, hori zen iragazkia sort Gurekin gisa. 350 00:28:53,390 --> 00:28:58,160 Beraz, zer egin nahi dugun da diren sartu datozen triples guztiak iragazi nahi dugu 351 00:28:58,160 --> 00:29:01,240 Hau egiteko modu ezberdinak daude. 352 00:29:01,240 --> 00:29:07,100 Funtsean, edozein dela ere iragazki mota nahi duzun. 353 00:29:07,100 --> 00:29:09,890 Agian gorria pixel guztiak aldatu nahi duzun 354 00:29:09,890 --> 00:29:13,570 edo agian beste kolore bat beste kolore pixel aldatu nahi duzun. 355 00:29:13,570 --> 00:29:15,400 Hori da. 356 00:29:15,400 --> 00:29:19,580 Gogoratu zer kolore pixel dela egiaztatu ahal 357 00:29:19,580 --> 00:29:23,000 eta, ondoren, ere ahal izango dituzu aldatu zaren bidez joan. 358 00:29:24,410 --> 00:29:26,420 >> Ongi da. Beraz, Whodunit. 359 00:29:26,420 --> 00:29:32,760 Behin Whodunit exekutatzen duzun, ezagutzen delitua culprit izan duzu. 360 00:29:32,760 --> 00:29:35,540 >> Orain Resize joan goaz. 361 00:29:35,540 --> 00:29:37,990 Oraindik ere bitmap aurre goaz. 362 00:29:37,990 --> 00:29:40,750 Zer egin dugu sarrera bitmap bat izan dugu 363 00:29:40,750 --> 00:29:45,890 eta, ondoren, zenbaki bat pasa eta gero bitmap outfile bat lortu dugu 364 00:29:45,890 --> 00:29:51,380 non da hori, funtsean, gure infile n eskalatzen. 365 00:29:54,670 --> 00:30:01,450 Esan nire fitxategia besterik ez pixel handi bat izan zen. 366 00:30:01,450 --> 00:30:09,100 Orduan, nire n 3, eskalatzea izan zen 3 eta, ondoren, pixel kopuru hori n aldiz errepikatu nahi dut, 367 00:30:09,100 --> 00:30:14,410 beraz, 3 aldiz, eta, ondoren, ere eskalatu du 3 aldiz ere bai. 368 00:30:14,410 --> 00:30:17,840 Beraz, naiz eskalatuz bertikalki eta baita horizontalki ikusiko duzu. 369 00:30:17,840 --> 00:30:19,680 >> Eta gero, hona hemen adibide bat. 370 00:30:19,680 --> 00:30:27,590 N = 2 bada, urdin lehen pixel errepikatu bi aldiz ikusiko duzu 371 00:30:27,590 --> 00:30:30,930 horizontalki bi aldiz bertikalki baita. 372 00:30:30,930 --> 00:30:38,040 Eta gero jarraitzen duela, eta, beraz, zure jatorrizko irudia eskalatzeko bi zuzeneko duzu. 373 00:30:40,920 --> 00:30:47,600 >> Orduan ginen xehetasunez pseudocode hau bada, espedientea ireki nahi dugu. 374 00:30:47,600 --> 00:30:49,880 Eta gero, atzera egin dugu hemen ezagutu, 375 00:30:49,880 --> 00:30:54,540 outfile, zabalera hori infile kodea zabalera baino desberdinak izango ikusiko dugu. 376 00:30:54,540 --> 00:30:56,130 Zer esan nahi du horrek? 377 00:30:56,130 --> 00:31:01,230 Horrek esan nahi du, gure goiburua informazio hori aldatu egingo da. 378 00:31:01,230 --> 00:31:03,790 Eta beraz, zer egin nahi dugu goiburuaren informazio eguneratu da, 379 00:31:03,790 --> 00:31:11,820 irakurri fitxategiak gaude copy.c esparru jarduten jakitea, 380 00:31:11,820 --> 00:31:17,570 dagoeneko badugu aldagai bat adierazten duen tamaina da, eta horrelako gauzak. 381 00:31:17,570 --> 00:31:24,060 Beraz, behin, zer egin nahi duzu agian bereziki aldagai horiek aldatu behar duzu. 382 00:31:24,060 --> 00:31:29,380 Gogoratu, eta egitura bat behar duzu bada, nola horren barruan aldagaiak sartzeko. 383 00:31:29,380 --> 00:31:32,080 Dot operadorea erabili duzu, ezta? 384 00:31:32,080 --> 00:31:36,420 Orduan hori erabiliz, header info aldatu beharko duzula badakizu. 385 00:31:36,480 --> 00:31:41,030 Beraz, hemen diren zure koadernoan aldatzen joan da benetako elementu zerrenda bat besterik ez da. 386 00:31:41,030 --> 00:31:45,180 Fitxategiaren tamaina aldatzen, irudi, baita zabalera eta altuera. 387 00:31:45,180 --> 00:31:50,080 Orduan joan bitmap mapa 388 00:31:50,080 --> 00:31:57,730 begiratzen ote den fitxategiaren goiburua edo informazio hori duen info goiburua 389 00:31:57,730 --> 00:32:00,920 eta, ondoren, aldatu behar. 390 00:32:05,010 --> 00:32:12,470 Berriz ere, esan cp copy.c resize.c. 391 00:32:12,470 --> 00:32:19,270 Horrek esan nahi du resize.c kopia barruan duen guztia dauka 392 00:32:19,270 --> 00:32:24,490 kopia pixel bakoitzaren scanline pixel irakurtzeko modu bat eskaintzen digu. 393 00:32:24,490 --> 00:32:29,860 Orain ezik, balioak aldatzen Whodunit genuen bezala ordez, 394 00:32:29,860 --> 00:32:37,980 zer egin nahi dugun da pixel bat baino gehiago idatzi nahi dugu 395 00:32:37,980 --> 00:32:43,580 betiere gure n 1 baino handiagoa da. 396 00:32:43,580 --> 00:32:47,110 >> Orduan, zer egin nahi dugun luzatzeko horizontalki n nahi dugu, 397 00:32:47,110 --> 00:32:50,490 eta baita luza bertikalki n. 398 00:32:50,490 --> 00:32:52,710 Nola egiten dugu hori? 399 00:32:52,710 --> 00:32:56,890 Esan zure n da 2 eta emandako infile duzu. 400 00:32:56,890 --> 00:32:58,730 Zure kurtsorea lehen hasi behar da, 401 00:32:58,730 --> 00:33:03,530 eta zer egin nahi duzun n da 2 bada, horietako 2 inprimatu nahi duzun. 402 00:33:03,530 --> 00:33:05,490 Beraz, inprimatu horietako 2. 403 00:33:05,490 --> 00:33:10,830 Gero, kurtsorea mugitu eta hurrengo pixel, gorria da, 404 00:33:10,830 --> 00:33:18,400 eta inprimatu dira horiek gorria 2, zer egin aurretik kalera erantsi dute. 405 00:33:18,400 --> 00:33:26,280 Gero, kurtsorea hurrengo pixel mugitu eta horietako 2 marrazteko. 406 00:33:26,280 --> 00:33:37,180 Atzera begiratzen duzu bada copy.c esparrua, zer honek hemen 407 00:33:37,180 --> 00:33:42,830 RGB triple bat, aldagai berri bat deitu hirukoitza instantzia berri bat sortzen da. 408 00:33:42,830 --> 00:33:50,500 Eta hemen irakurtzen sartu, irakurketak infile 1 RGBTRIPLE 409 00:33:50,500 --> 00:33:53,470 gordetzen da eta barruan hori hirukoitza aldagai. 410 00:33:53,470 --> 00:33:57,590 Orduan benetan aldagai bat, bereziki pixel hori adierazten du. 411 00:33:57,590 --> 00:34:05,290 Orduan, idatzi zer nahi egin dezake sartu adierazpen loop fwrite encase da 412 00:34:05,290 --> 00:34:11,080 hori idazten du zure outfile, behar bezain gisa. 413 00:34:17,449 --> 00:34:20,100 Hori da simple nahikoa. 414 00:34:20,200 --> 00:34:27,590 Just funtsean errepikatu idazketa prozesua n aldiz zenbaki eskalatzeko horizontalki. 415 00:34:27,590 --> 00:34:32,969 >> Baina orduan gure betegarria hori aldatu egingo gogoratu behar dugu. 416 00:34:47,350 --> 00:34:53,020 Aurretik, luzera 3 zerbait esan izan dugu. 417 00:34:53,020 --> 00:35:00,130 Ondoren, besterik ez genuke zenbat betegarria gehitu? Just bat edo gehiago 4 multiploa izan dadin. 418 00:35:00,130 --> 00:35:10,480 Baina esaten ari gara, bereziki irudi hori eskalatzerakoan n = 2. 419 00:35:10,480 --> 00:35:16,300 Orduan zenbat blue pixel litzateke amaieran dugu? 6 izan nahi dugu. 420 00:35:16,300 --> 00:35:21,470 1, 2, 3, 4, 5, 6. Guztiak eskubidea. 421 00:35:21,470 --> 00:35:26,580 Ez da, 6 4 multiploa. Zer 4 multiplo hurbilen? Hori 8 izango da. 422 00:35:26,580 --> 00:35:33,200 Beraz, benetan ari gara 2 karaktere betegarria Hara joan. 423 00:35:33,200 --> 00:35:38,720 >> Does Edozeinek gogoratzen dugu betegarria kalkulatzeko formula bat bada 424 00:35:38,720 --> 00:35:41,350 eta non egongo den? 425 00:35:41,350 --> 00:35:45,160 [Inaudible ikaslearen erantzuna] >> Bai, copy.c. Eskuin. 426 00:35:45,160 --> 00:35:49,800 Copy.c formula zenbat betegarria duzu kalkulatzeko 427 00:35:49,800 --> 00:35:53,810 bitmap image zabalera jakin bat. 428 00:35:53,810 --> 00:36:02,950 Orduan hori joan erabilgarria izan betegarria kopuru jakin bat gehitu behar duzu. 429 00:36:02,950 --> 00:36:06,160 benetan daki zenbat betegarria gehitu behar duzu. 430 00:36:10,820 --> 00:36:15,850 Baina ohar bat, nahiz eta, ziur ari zaren eskuineko tamaina erabiliz egin nahi duzun. 431 00:36:15,850 --> 00:36:21,410 Just kontuz ari zaren, funtsean, delako bi bitmapa irudien aurre. 432 00:36:21,410 --> 00:36:23,410 Ziur zarela eskubidea erabiliz egin nahi duzu. 433 00:36:23,410 --> 00:36:26,820 Noiz betegarria ari zaren kalkulatzeko outfile kodea, outfile-zabalera erabili nahi duzun 434 00:36:26,820 --> 00:36:29,860 eta ez aurreko zabalera. 435 00:36:29,860 --> 00:36:37,240 >> Great. Bitmap irudi osoa horizontalki luzatzen mota hori arduratzen. 436 00:36:37,240 --> 00:36:41,290 Baina, zer egin nahi dugu, benetan luzatzen bertikalki baita. 437 00:36:41,290 --> 00:36:48,760 Hau da, pixka bat trickier amaitu dugu dugulako errenkada bat kopiatzea 438 00:36:48,760 --> 00:36:51,580 eta errenkada horretan idazten, gure kurtsorea amaieran izango da. 439 00:36:51,580 --> 00:36:56,210 Beraz, berriro irakurriko dugu, eta, ondoren, besterik ez da irakurtzen hurrengo lerroan. 440 00:36:56,210 --> 00:37:03,660 Beraz, zer egin nahi dugun da mota aurkitu errenkada horiek berriro kopiatzea nolabait 441 00:37:03,660 --> 00:37:12,500 edo, besterik gabe, mota errenkada horretan hartu eta gero berridazketa berriro. 442 00:37:14,380 --> 00:37:17,940 Mota dut aipatu bezala, badaude hainbat modu hau egiteko. 443 00:37:17,940 --> 00:37:23,040 Zer egin ahal izango duzu ari zaren bitartez, eta bereziki scanline bidez irakurtzen 444 00:37:23,040 --> 00:37:28,560 eta behar diren eremuak aldatuz, gero denda mota array bat pixel horiek guztiak. 445 00:37:28,560 --> 00:37:36,350 Gero duzun jakin array hori berriro inprimatu beharko duzu, 446 00:37:36,350 --> 00:37:39,830 eta, beraz, besterik ez dezakezu array hori erabili horretarako. 447 00:37:39,830 --> 00:37:44,500 Kopiatu behera lerro bat egiteko beste modu bat da, 448 00:37:44,500 --> 00:37:47,950 ulertzen berriz kopiatu behar duzu, eta, beraz, benetan mugitu kurtsorea 449 00:37:47,950 --> 00:37:50,950 eta hori erabiliz metodoa kokapenean fseek egin. 450 00:37:50,950 --> 00:37:56,410 Mugitu kurtsorea modu guztiak atzera eta, ondoren, kopia prozesua errepikatu berriro. 451 00:37:56,410 --> 00:38:03,960 >> Beraz, gure eskalatzea kopurua n izanez gero, ondoren, zenbat aldiz litzateke atzera joan behar dugu 452 00:38:03,960 --> 00:38:10,500 eta berridatzi line? >> [Ikasleen] n - 1. >> Bai, perfektua. n - 1. 453 00:38:10,500 --> 00:38:14,390 Egin dugu behin dagoeneko, eta, beraz, ondoren, joan atzera prozesua errepikatu nahi dugu 454 00:38:14,390 --> 00:38:17,460 n - 1 zenbatekoa aldiz. 455 00:38:22,730 --> 00:38:25,860 Ongi da. Beraz, zure resize funtzioa duzu. 456 00:38:25,860 --> 00:38:34,360 >> Orain benetan fun, my favorite pset, hau da, berreskuratu ahal izango dugu. 457 00:38:34,360 --> 00:38:39,580 Bitmap, baizik eta, une honetan JPEGs ari gara aurre. 458 00:38:39,580 --> 00:38:43,370 Egia esan, ez gara emandako horretarako JPEGs fitxategi bat besterik ez, 459 00:38:43,370 --> 00:38:46,600 gaude, batez ere, memoria-txartel bat raw formatuan. 460 00:38:46,600 --> 00:38:51,790 Eta, beraz, hau bit hasieran info eta zabor balio badu, 461 00:38:51,790 --> 00:38:57,240 eta, ondoren, hasten da eta JPEG fitxategi sorta bat du. 462 00:38:57,240 --> 00:39:03,430 Hala eta guztiz ere, txartel bat gaude entregatu argazkiak ezabatuko dugu; 463 00:39:03,430 --> 00:39:08,300 funtsean, ahaztu dugu non argazkiak txartela barruan kokatzen dira. 464 00:39:08,300 --> 00:39:12,770 Orduan gure Berreskuratu egitekoa da txartel-formatu honen bidez joan 465 00:39:12,770 --> 00:39:16,500 eta pictures horiek berriro aurkitu. 466 00:39:16,500 --> 00:39:23,990 >> Zorionez, JPEG fitxategiak eta txartelaren fitxategia egitura pixka bat lagungarria da. 467 00:39:23,990 --> 00:39:28,850 Izan da behin betiko izan da pixka bat trickier ez balitz formatu zehatz honetan. 468 00:39:28,850 --> 00:39:40,160 JPEG fitxategia bakoitza benetan bi sekuentzia posible, goian zerrendatutako batekin hasten da. 469 00:39:40,160 --> 00:39:42,970 Funtsean, beti berri bat JPEG fitxategia duzu, 470 00:39:42,970 --> 00:39:52,720 bai sekuentzia ffd8 ffe0 edo bestea, ffd8 ffe1 hasten da. 471 00:39:52,720 --> 00:39:59,530 Another lagungarria da jakitea gauza JPEGs contiguously gordetzen dira. 472 00:39:59,530 --> 00:40:03,380 Beraz, betiere, bat JPEG fitxategia eta ondorioz, beste bat hasten da. 473 00:40:03,380 --> 00:40:07,070 Beraz, ez dago balio han-arteko edozein motatako. 474 00:40:07,070 --> 00:40:15,510 Behin JPEG bat Irteeran hit duzun dagoeneko JPEG bat irakurtzen, 475 00:40:15,510 --> 00:40:21,800 aurreko eta hurrengo hasieran amaieran hit duzula badakizu. 476 00:40:21,800 --> 00:40:25,890 >> Ikusteko lotura mota, eskematiko bat egin nuen. 477 00:40:25,890 --> 00:40:36,910 JPEGs buruz beste gauza bat da horiek irakurri ahal izango dugun 512 byte sekuentziak aldi berean, 478 00:40:36,910 --> 00:40:39,380 era berean, txartelaren hasieran. 479 00:40:39,380 --> 00:40:43,370 Ez dugu behar dira single byte bakoitza egiaztatzen zela zurrupatu delako. 480 00:40:43,370 --> 00:40:48,200 Beraz, horren ordez, zer egin ahal izango dugu gaur egun 512 byte irakurri aldi berean 481 00:40:48,200 --> 00:40:54,700 eta, ondoren, tiny little horiek xerratan artean ordez egiaztatzea, 482 00:40:54,700 --> 00:40:58,640 512 byte bakarrik egiaztatu ahal izango dugu hasieran. 483 00:40:58,640 --> 00:41:02,570 Funtsean, irudi hau, zer ikusten duzun txartela hasieran, 484 00:41:02,570 --> 00:41:08,700 benetako JPEGs bere burua benetan garrantzitsuak diren balioak ez duzu. 485 00:41:08,700 --> 00:41:15,830 Baina orduan zer daukat bi JPEG bat hasierako sekuentzia bat adierazi izar bat da. 486 00:41:15,830 --> 00:41:19,910 Beraz, betiere, izar bat ikusiko duzu, JPEG fitxategi bat duzula badakizu. 487 00:41:19,910 --> 00:41:25,030 Eta gero JPEG fitxategi bakoitzak 512 byte multiplo batzuk izango 488 00:41:25,030 --> 00:41:27,880 bat baino gehiago, baina ez da gauza bera izan behar. 489 00:41:27,880 --> 00:41:32,050 Ezagutzen duzun modu hit duzula JPEG beste hit izar beste, 490 00:41:32,050 --> 00:41:39,090 bytes hasierako sekuentzia beste. 491 00:41:39,090 --> 00:41:43,330 Ondoren, hemen duzu gorria JPEG file jarraitu behar duzu izar bat sakatzen duzun arte, 492 00:41:43,330 --> 00:41:45,150 den kolore berri bat adierazten da. 493 00:41:45,150 --> 00:41:48,510 Eta aurrera jarraitu nahi baduzu, orduan izarra beste hit duzu, JPEG beste hit 494 00:41:48,510 --> 00:41:50,590 guztiak jarraitzen amaiera arte. 495 00:41:50,590 --> 00:41:53,180 Oraindik azken irudia hemen, arrosa bat. 496 00:41:53,180 --> 00:41:58,220 Amaieran joan hit fitxategia pertsonaia amaiera arte. 497 00:41:58,220 --> 00:42:00,820 Hau da, benetan erabilgarria izango da. 498 00:42:00,820 --> 00:42:03,170 >> A nagusiak takeaways batzuk hemen: 499 00:42:03,170 --> 00:42:06,670 Txartela fitxategia ez JPEG batekin hasiko da, 500 00:42:06,670 --> 00:42:13,350 baina JPEG behin hasten, JPEGs-guztiak gordetzen dira ondoan beste bat. 501 00:42:17,520 --> 00:42:20,420 >> Berreskuratu for pseudocode batzuk. 502 00:42:20,420 --> 00:42:22,570 Lehenik eta behin, gure txartela fitxategia ireki dugu, 503 00:42:22,570 --> 00:42:27,500 eta hori gure fitxategia I / O funtzioak erabiliz. 504 00:42:27,500 --> 00:42:32,430 Prozesu hau errepikatu dugu lerro amaierara iritsi arte gara. 505 00:42:32,430 --> 00:42:36,450 512 byte irakurri aldi berean ari gara. 506 00:42:36,450 --> 00:42:39,180 Eta zer esan dut buffer batean gorde dugu, 507 00:42:39,180 --> 00:42:46,230 beraz, funtsean, 512 byte horiek mantendu dakigu zehatz-mehatz zer haiekin egin arte. 508 00:42:46,230 --> 00:42:50,300 Orduan, zer egin nahi dugun dugu ala ez dugu hit izar bat edo ez egiaztatu nahi dugu. 509 00:42:50,300 --> 00:42:57,960 Dugu hit bada izar bat dugu, hit bada, hasierako sekuentzia bat, 510 00:42:57,960 --> 00:42:59,980 JPEG fitxategia berri bat hit ditudan ezagutzen dugu. 511 00:42:59,980 --> 00:43:08,860 Zer egin nahi dugu gure direktorioan pset4 fitxategi berri bat sortu nahi dugu 512 00:43:08,860 --> 00:43:14,480 fitxategi hori egiten jarraitzeko. 513 00:43:14,480 --> 00:43:18,220 Baina, era berean, dugu dagoeneko JPEG bat baino lehen, 514 00:43:18,220 --> 00:43:25,620 ondoren, fitxategi hori amaitzeko eta karpeta pset4 bultza nahi dugu, 515 00:43:25,620 --> 00:43:29,780 non fitxategi hori gordetzen dugu zehaztu ez badugu amaitu JPEG fitxategia ditudan delako, 516 00:43:29,780 --> 00:43:37,290 ondoren, funtsean, izan dugu zehaztugabea zenbatekoa. JPEGs ez da inoiz amaituko da. 517 00:43:37,290 --> 00:43:40,840 Beraz, ziur JPEG fitxategi bat irakurtzen ari gara, eta hori idatziz egin nahi dugu, 518 00:43:40,840 --> 00:43:46,590 zehazki itxi duten ordena hurrengo bat ireki nahi dugu. 519 00:43:46,590 --> 00:43:48,430 Hainbat gauza ikusteko nahi dugu. 520 00:43:48,430 --> 00:43:52,880 JPEG berri baten hasiera da ala ez dugu gure buffer Oraindik egiaztatu nahi dugu 521 00:43:52,880 --> 00:43:56,780 eta, gainera, dagoeneko egin dugu bada aurkitzen JPEG bat baino lehen 522 00:43:56,780 --> 00:44:03,930 zure prozesua apur bat aldatu egingo delako. 523 00:44:03,930 --> 00:44:07,880 Orduan guztietan zehar joan ondoren eta fitxategiaren amaiera! 524 00:44:07,880 --> 00:44:11,570 orduan zer egin nahi duzu gaur egun diren fitxategiak irekitzeko guztiak itxi nahi duzu. 525 00:44:11,570 --> 00:44:14,100 Hori izango da, ziur aski, azken JPEG formatuan duzula izango da, 526 00:44:14,100 --> 00:44:18,930 baita txartel-fitxategi gisa duzula aurre. 527 00:44:21,940 --> 00:44:28,670 >> Azken oztopoa behar dugu aurre nola benetan egin JPEG fitxategi bat 528 00:44:28,670 --> 00:44:31,950 eta nola benetan bultza karpetan. 529 00:44:33,650 --> 00:44:39,850 Pset eskatzen JPEG aurkitzen duzun bakoitzean honako formatu, 530 00:44:39,850 --> 00:44:43,990 non zenbakia duzu. jpg. 531 00:44:43,990 --> 00:44:50,750 Kopurua, nahiz eta 0 da, 000.jpg deitzen diogu. 532 00:44:50,750 --> 00:44:55,730 Bakoitzean JPEG bat aurkituko duzu zure programan, 533 00:44:55,730 --> 00:44:58,040 ordena hori aurkitu izendatu nahi duzu. 534 00:44:58,040 --> 00:44:59,700 Zer esan nahi du horrek? 535 00:44:59,700 --> 00:45:03,530 Behar mota horretako jarraituko dugu pista aurkitu dugu zenbat 536 00:45:03,530 --> 00:45:08,680 eta zer JPEG bakoitzeko zenbakia izan behar du. 537 00:45:08,680 --> 00:45:13,800 Hemen sprintf funtzioa baliatu nahi dugu. 538 00:45:13,800 --> 00:45:17,480 Similar printf, balio bat besterik ez grabatuak mota terminal sartu, 539 00:45:17,480 --> 00:45:23,910 sprintf fitxategi bistaratzen karpeta sartu. 540 00:45:23,910 --> 00:45:30,870 Eta beraz, zer sprintf, izenburu hau izan nuen bada ez litzateke, eta, ondoren, katea ez dago 541 00:45:30,870 --> 00:45:36,660 inprimatu litzateke 2.jpg. 542 00:45:36,660 --> 00:45:41,020 Dudan nire fitxategiak itxi behar bezala hartuta, 543 00:45:41,020 --> 00:45:47,210 fitxategi nintzen out idatziz edukiko luke. 544 00:45:47,210 --> 00:45:50,320 Baina gauza bat da kodea dut hemen 545 00:45:50,320 --> 00:45:53,360 ez da nahiko asetzeko zer da pset behar. 546 00:45:53,360 --> 00:46:02,410 JPEG file bigarren izendatu behar da, besterik ez 2 ordez 002 pset eskatzen du. 547 00:46:02,410 --> 00:46:09,160 Beraz inprimatu izena eta, ondoren, agian biltegian pixka bat aldatu nahi duzun dezake. 548 00:46:09,160 --> 00:46:18,140 >> Does Edozeinek gogoratzen nola esker, espazio estra dugu zerbait inprimatu dugu? 549 00:46:18,140 --> 00:46:22,530 Bai. >> [Ikasleak] 3 bat jarri duzu ehuneko ikurra eta 2 artean. >> Bai, perfektua. 550 00:46:22,530 --> 00:46:25,610 Kasu honetan 3 bat jarri duzu nahi dugu espazio delako 3. 551 00:46:25,610 --> 00:46:32,590 % 3d seguruenik emango dizu 002.jpg ordez 2. 552 00:46:32,590 --> 00:46:40,120 Sprintf funtzioa sartu lehen argumentua da, benetan, char array bat, 553 00:46:40,120 --> 00:46:42,520 kateak gisa aldez aurretik bazekien dugu. 554 00:46:42,520 --> 00:46:50,700 Borondatea dutenek, aldi baterako biltegiratze atsegin gehiago mota, gordetzeko emaitzak katea. 555 00:46:50,700 --> 00:46:54,950 Ez duzu benetan honekin, aurre, baina sartu behar duzu. 556 00:46:54,950 --> 00:47:00,710 >> Fitxategi-izena behin egiten den kopurua, hiru karaktere jakiteak, 557 00:47:00,710 --> 00:47:06,770 eta gero. jpg, zenbat denbora beharko luke array hau izango ote da? 558 00:47:09,070 --> 00:47:14,310 Bota zenbaki bat. Zenbat izenburua pertsonaiak, izena? 559 00:47:18,090 --> 00:47:26,320 Beraz, ez da 3 hashtags, epea, jpg. >> [Ikasleak] 7. >> 7. Ez da nahiko. 560 00:47:26,320 --> 00:47:32,000 8 nahi dugu, nahi dugu, baita null amaierako ahalbidetuko duelako. 561 00:47:45,340 --> 00:47:49,730 >> Azkenik, marrazteko Berreskuratu duzun egingo egiteko prozesua, 562 00:47:49,730 --> 00:47:55,420 hasieran zenbait informazio duzu. 563 00:47:55,420 --> 00:48:02,460 JPEG fitxategi bat aurkituko duzu Irteeran arte jarraituko duzu, 564 00:48:02,460 --> 00:48:07,900 eta hori bai bi sekuentzia hasierako bat izan daiteke. 565 00:48:07,900 --> 00:48:12,510 Mantentzeko irakurtzen duzu. Barrarik bakoitzak hemen 512 byte adierazten du. 566 00:48:12,510 --> 00:48:22,630 Mantentzeko irakurketa, hasierako sekuentzia beste topo arte irakurtzen mantentzeko. 567 00:48:22,630 --> 00:48:29,790 Behin, uneko JPEG amaituko duzu, kasu honetan, gorria da, 568 00:48:29,790 --> 00:48:31,030 beraz, amaitzeko nahi duzun. 569 00:48:31,030 --> 00:48:35,540 Sprintf zure karpeta pset4 duen izena sartu nahi duzu, 570 00:48:35,540 --> 00:48:41,580 ondoren JPEG berri bat irekitzeko eta, ondoren, irakurtzen jarraitu nahi duzun 571 00:48:41,580 --> 00:48:46,370 aurkituko duzu hurrengo arte. 572 00:48:46,370 --> 00:48:49,040 Irakurketa mantentzeko, irakurketa jarraitzeko, 573 00:48:49,040 --> 00:48:56,290 eta, ondoren, azkenik, azkenean, fitxategi amaiera iritsiko zaren joan 574 00:48:56,290 --> 00:49:00,360 eta, beraz, azken JPEG itxi nahi duzu zinen lan egiten, 575 00:49:00,360 --> 00:49:08,380 sprintf zure karpeta pset4 sartu, eta, ondoren, argazkiak duzula ahaztuak begiratu. 576 00:49:08,380 --> 00:49:12,050 Irudi horiek benetan CS50 langileen pictures, 577 00:49:12,050 --> 00:49:16,430 eta, beraz, hau da, non bonus fun pset du parte datorren 578 00:49:16,430 --> 00:49:26,310 ari zaren zure atal argazkiak TFS lehian 579 00:49:26,310 --> 00:49:34,610 eta haiekin hartu pictures egin duzula pset frogatzeko 580 00:49:34,610 --> 00:49:37,030 eta zein langile kideen argazkiak daude, beraz, ikusi ahal izango dituzu. 581 00:49:37,030 --> 00:49:41,510 Orduan argazkiak atera langileak. Batzuetan Chase behera duzu. 582 00:49:41,510 --> 00:49:44,680 Seguruenik, horietako batzuk ihes duzu saiatuko da. 583 00:49:44,680 --> 00:49:47,320 Argazkiak atera haiekin. 584 00:49:47,320 --> 00:49:51,190 Hau da, etengabe. Ez dela denean pset dela. 585 00:49:51,190 --> 00:49:53,340 Zehaztutako epea emango dira ezagutzera. 586 00:49:53,340 --> 00:49:58,060 Ondoren, elkarrekin zure atala, edozein atal hartzen pictures 587 00:49:58,060 --> 00:50:04,430 pretty awesome langileen kide gehienak saria irabazi du. 588 00:50:04,430 --> 00:50:08,890 Pizgarriak lortzeko mota zure pset4 amaitu bezain laster ahalik eta 589 00:50:08,890 --> 00:50:10,820 ondoren lortu duzulako enpresa 590 00:50:10,820 --> 00:50:14,570 CS50 hainbat taldekide guztiek behera ehizatzea. 591 00:50:14,570 --> 00:50:17,500 Hori ez da derrigorrezkoa, nahiz eta, beraz, behin argazkiak lortuko duzu, 592 00:50:17,500 --> 00:50:20,310 gero pset4 amaitu dira. 593 00:50:20,310 --> 00:50:23,970 >> Eta nago Bisita gidatua 4 amaitu zuen, eta, beraz, eskerrik asko etortzeagatik. 594 00:50:23,970 --> 00:50:29,330 Kernet Zorte ona izan. [Txalo] 595 00:50:29,330 --> 00:50:31,000 [CS50.TV]