1 00:00:00,000 --> 00:00:02,700 [Powered by Google Translate] [Walkthrough - Problema rinkinys 4] 2 00:00:02,700 --> 00:00:05,000 [Zamyla Chan - Harvardo universiteto] 3 00:00:05,000 --> 00:00:07,340 [Tai CS50. - CS50.TV] 4 00:00:08,210 --> 00:00:11,670 Gerai. Sveiki, visi, ir sveiki atvykę Walkthrough 4. 5 00:00:11,670 --> 00:00:14,270 >> Šiandien mūsų pset yra Forensic. 6 00:00:14,270 --> 00:00:18,080 Teismai yra tikrai įdomus pset, susijęs su bitmap failus 7 00:00:18,080 --> 00:00:21,550 atrasti, kas padarė nusikaltimą. 8 00:00:21,550 --> 00:00:24,200 Tada mes ketiname dydį keletą bitmap failus, 9 00:00:24,200 --> 00:00:27,780 tada mes taip pat ketiname spręsti tikrai įdomus dalis, vadinama Atkurti, 10 00:00:27,780 --> 00:00:31,160 , kurį mes iš esmės įteikė atminties kortelę 11 00:00:31,160 --> 00:00:34,350 , kurioje kas nors netyčia ištrynėte visus savo failus, 12 00:00:34,350 --> 00:00:38,860 ir mes susigrąžinti tuos failus. 13 00:00:38,860 --> 00:00:42,910 >> Bet pirmiausia, prieš mes į pset, aš tikrai tik noriu pasveikinti visus. 14 00:00:42,910 --> 00:00:45,230 Mes apie šio kurso Mediana. 15 00:00:45,230 --> 00:00:50,070 Viktorina 0 yra už mus, ir mes ne pset4, taip iš esmės, mes pusiaukelėje. 16 00:00:50,070 --> 00:00:55,490 Mes nuėjome ilgą kelią, jei pažvelgti atgal į savo ir psets, pset0 ir pset1 17 00:00:55,490 --> 00:00:57,300 taip pasveikinti save, apie tai, 18 00:00:57,300 --> 00:01:00,760 ir mes ketiname patekti į kai tikrai fun stuff. 19 00:01:00,760 --> 00:01:07,070 >> Taigi, vėlgi, mūsų Įrankiai šio pset vietoj veikia sudo yum-y atnaujinimą, 20 00:01:07,070 --> 00:01:13,890 mes galime tiesiog paleisti update50 jei esate versija 17,3 ir virš prietaiso. 21 00:01:13,890 --> 00:01:17,380 Taigi būkite tikri, paleisti update50 - tai daug lengviau, keletas mažiau ženklai - 22 00:01:17,380 --> 00:01:20,640 įsitikinkite, kad esate ne naujausia versija prietaiso. 23 00:01:20,640 --> 00:01:25,410 Ypač tai svarbu update50, kai mes pradėjome naudojant CS50 Atvykimas. 24 00:01:25,410 --> 00:01:28,700 Todėl įsitikinkite, įsitikinkite, kad jums padaryti, kad. 25 00:01:28,700 --> 00:01:30,760 >> Visiems už Šios pset skyrių, 26 00:01:30,760 --> 00:01:34,350 mes ketiname būti susijusios su failų įėjimų ir išėjimų, failą I / O. 27 00:01:34,350 --> 00:01:38,140 Mes ketiname būti vyksta per daug programų, kurios susiduria su matricomis 28 00:01:38,140 --> 00:01:40,350 nukreipta į failų ir panašių dalykų, 29 00:01:40,350 --> 00:01:43,050 todėl mes norime įsitikinti, kad mes tikrai susipažinę ir jaukus 30 00:01:43,050 --> 00:01:47,990 kaip įvesties ir išvesties į failus. 31 00:01:47,990 --> 00:01:52,080 >> Šio pset platinimo kodą rinkmena, pavadinta copy.c, 32 00:01:52,080 --> 00:01:55,280 ir tai, ką mes ketiname rasti bus tikrai naudinga mums 33 00:01:55,280 --> 00:02:00,340 nes mes ketiname baigti iš tikrųjų kopijuoti copy.c failą 34 00:02:00,340 --> 00:02:05,350 ir tik keičiant jį šiek tiek, kad būtų galima, siekiant įgyvendinti pirmuosius 2 dalis problemos rinkinys. 35 00:02:05,350 --> 00:02:09,030 >> Ir taip, tada kaip jau minėjau anksčiau, mes susiduriame su rastrai, taip pat JPEG. 36 00:02:09,030 --> 00:02:13,170 Taigi tikrai suprasti, kaip šie failai bus organizuojami struktūrą, 37 00:02:13,170 --> 00:02:16,170 kaip mes tikrai galime versti 0s ir 1s į structs 38 00:02:16,170 --> 00:02:19,040 ir dalykų, kad mes galime iš tikrųjų suprasti ir interpretuoti ir redaguoti, 39 00:02:19,040 --> 00:02:21,000 , kad bus tikrai svarbu, 40 00:02:21,000 --> 00:02:25,970 taip vyksta į JPEG ir bitmap failus ir suprasti tuos, struktūrą. 41 00:02:25,970 --> 00:02:30,780 >> Pset4, kaip įprasta, prasideda su klausimų skyriuje. 42 00:02:30,780 --> 00:02:36,600 Tas bus spręsti failą I / O ir esate pripratę, kad. 43 00:02:36,600 --> 00:02:42,520 Tada: 1 dalis Detektīvromāns, kuriame jums suteikta Bitmap failą 44 00:02:42,520 --> 00:02:45,630 kad atrodo mielas panašių raudonais taškais visur. 45 00:02:45,630 --> 00:02:52,180 Ir tada iš esmės tai, ką mes ketiname daryti, tai šį failą ir tiesiog redaguoti jį šiek tiek 46 00:02:52,180 --> 00:02:54,010 į versiją, kad mes galime perskaityti. 47 00:02:54,010 --> 00:02:56,000 Iš esmės, kai baigsime darbus, mes turime tą patį failą, 48 00:02:56,000 --> 00:03:02,630 išskyrus galėsime matyti paslėptą pranešimą paslėptas visų tų raudonų taškų. 49 00:03:02,630 --> 00:03:07,310 Tada Resize yra programa, kad, atsižvelgiant į failą 50 00:03:07,310 --> 00:03:11,490 ir tada failo, kad ji išveda pavadinimą ir numerį, taip pat, 51 00:03:11,490 --> 00:03:16,850 bus iš tikrųjų dydį, kad bitmap tos skaitinę vertę. 52 00:03:16,850 --> 00:03:19,240 Tada galiausiai, turime atsigavimo pset. 53 00:03:19,240 --> 00:03:24,160 Mes atminties kortelę ir tada turi susigrąžinti visas nuotraukas 54 00:03:24,160 --> 00:03:25,920 , kurie buvo atsitiktinai ištrinti, 55 00:03:25,920 --> 00:03:31,420 , tačiau, kaip mes sužinoti, o ne iš tikrųjų panaikinamas ir išimti iš bylos; 56 00:03:31,420 --> 00:03:38,470 Mes tiesiog rūšies dingsta, jei jie į bylą, bet mes ketiname susigrąžinti. 57 00:03:38,470 --> 00:03:44,950 >> Didysis. Taigi vyksta į failą I / O konkrečiau, tai yra visą sąrašą funkcijų, kad jūs naudojate. 58 00:03:44,950 --> 00:03:49,840 Jūs jau matė šiek tiek ir fopen pagrindus, fread ir fwrite, 59 00:03:49,840 --> 00:03:54,350 bet mes ketiname pažvelgti toliau į tam tikrą failą I / O funkcijas, tokias kaip fputc 60 00:03:54,350 --> 00:03:56,930 , kuriame jūs tiesiog parašyti vieną simbolį vienu metu, 61 00:03:56,930 --> 00:04:02,000 fseek, kur tipo failo padėties rodiklis judėti į priekį ir atgal, 62 00:04:02,000 --> 00:04:05,770 ir tada kai kurie kiti. Bet mes einame į tą šiek tiek vėliau metu pset. 63 00:04:08,050 --> 00:04:13,100 >> Taigi, pirma, tik gauti į failą I / O prieš mums eiti į pset 64 00:04:13,100 --> 00:04:19,860 atidaryti failą, pavyzdžiui, tai, ką jūs turite padaryti, yra iš tikrųjų nustatyti žymeklį į šio failo. 65 00:04:19,860 --> 00:04:22,710 Taigi, mes turime failą * žymeklį. 66 00:04:22,710 --> 00:04:27,140 Šiuo atveju, aš vadiname tai Nuolatinis rodyklė, nes tai bus mano failas. 67 00:04:27,140 --> 00:04:33,340 Ir todėl aš ruošiuosi naudoti funkcija fopen ir tada failo pavadinimą 68 00:04:33,340 --> 00:04:36,360 ir tada režimas, kai aš ruošiuosi būti susijusios su tuo failu. 69 00:04:36,360 --> 00:04:42,080 Todėl nėra "r", šiuo atveju skaityti, rašyti "w", o tada "" papildymo. 70 00:04:42,080 --> 00:04:44,270 Pavyzdžiui, kai jūs susiduriame su INFILE 71 00:04:44,270 --> 00:04:47,310 ir visi jūs norite daryti yra skaityti yra saugomi bitai ir baitai, 72 00:04:47,310 --> 00:04:50,420 tada jūs tikriausiai norite naudoti kaip savo režimu "R". 73 00:04:50,420 --> 00:04:54,520 , Kai norite, kad iš tikrųjų rašyti, tipo naują failą, 74 00:04:54,520 --> 00:04:57,220 tada tai, ką mes ketiname daryti, mes ketiname atidaryti naują failą 75 00:04:57,220 --> 00:05:02,410 ir naudoti "W" režimą raštu. 76 00:05:02,410 --> 00:05:07,540 >> Taip, tada, kai jūs iš tikrųjų skaityti į failų struktūra yra tokia. 77 00:05:07,540 --> 00:05:14,930 Pirmiausia jums yra rodyklę į struct, kurioje bus baitus, kad jūs skaitote. 78 00:05:14,930 --> 00:05:19,830 Taip, kad bus bytes pabaigos vieta, kad jūs skaitote. 79 00:05:19,830 --> 00:05:23,360 Tada galite nurodyti dydį, pavyzdžiui, iš esmės kiek baitų 80 00:05:23,360 --> 00:05:30,100 Jūsų programa turi skaityti failo dydis iš esmės yra vienas iš elementų, 81 00:05:30,100 --> 00:05:32,620 ir tada jūs ketinate nurodyti, kiek elementų norite skaityti. 82 00:05:32,620 --> 00:05:34,980 Ir galiausiai, jūs turite žinoti, kai jūs skaitote, 83 00:05:34,980 --> 00:05:37,580 kad bus jūsų į žymeklis. 84 00:05:37,580 --> 00:05:41,780 Aš spalvomis šių, nes fread taip pat labai panašus į fwrite, 85 00:05:41,780 --> 00:05:47,050 išskyrus tuos atvejus, jūs norite įsitikinti, kad jūs naudojate tinkamą tvarką, 86 00:05:47,050 --> 00:05:51,960 įsitikinkite, kad jūs iš tikrųjų raštu arba skaityti iš dešinės failą. 87 00:05:54,910 --> 00:05:58,610 >> Taip, tada, kaip ir anksčiau, jei mes turime elemento dydžio, taip pat elementų skaičius, 88 00:05:58,610 --> 00:06:00,600 tada mes galime pažaisti čia šiek tiek. 89 00:06:00,600 --> 00:06:06,810 Pasakyti, kad aš turėti šunį struct ir taip, tada noriu skaityti du šunis vienu metu. 90 00:06:06,810 --> 00:06:12,450 Ką aš galėčiau padaryti, tai pasakyti vieno elemento dydis bus vienas šuo dydis 91 00:06:12,450 --> 00:06:14,770 ir aš iš tiesų perskaityti du iš jų. 92 00:06:14,770 --> 00:06:18,290 Kita vertus, ką aš galėčiau padaryti, tai pasakyti aš tik ketina skaityti vieną elementą 93 00:06:18,290 --> 00:06:21,340 ir kad vienas elementas bus du šunis dydį. 94 00:06:21,340 --> 00:06:24,320 Taigi, kad analogiškas, kaip jūs galite rūšies žaisti aplink su dydis ir skaičius 95 00:06:24,320 --> 00:06:28,250 priklausomai nuo to, kas Jums labiau intuityvus. 96 00:06:28,250 --> 00:06:30,810 >> Gerai. Taigi dabar mes turime rašyti failus. 97 00:06:30,810 --> 00:06:36,880 , Kai norite įrašyti failą, pirmasis argumentas yra iš tikrųjų, kai jūs skaitote. 98 00:06:36,880 --> 00:06:42,050 Taip, kad iš esmės duomenų, kad jūs ketinate rašyti į failą, 99 00:06:42,050 --> 00:06:44,490 kuris yra iš rodyklė pabaigoje. 100 00:06:44,490 --> 00:06:47,670 Taigi, kai jūs susiduriame su pset, įsitikinkite, kad jums nereikia susipainioti. 101 00:06:47,670 --> 00:06:50,480 Gal turi apibrėžimai vienas šalia kito. 102 00:06:50,480 --> 00:06:58,090 Galite traukti apibrėžimus vadove įvesdami vyro ir tada fwrite, pavyzdžiui, 103 00:06:58,090 --> 00:06:59,950 terminale arba galite grąžinti šios skaidrės 104 00:06:59,950 --> 00:07:03,570 ir įsitikinkite, kad jūs naudojate tinkamą vieną. 105 00:07:03,570 --> 00:07:08,700 Taigi dar kartą, fwrite, kai jūs turite failą, kad norite rašyti į 106 00:07:08,700 --> 00:07:14,290 , kad bus paskutinis argumentas ir tai bus rodyklė į šį failą. 107 00:07:14,290 --> 00:07:18,670 Taip, tada tai, kaip mes elgiamės su raštu galbūt keletą baitų vienu metu, 108 00:07:18,670 --> 00:07:21,820 bet pasakyti, kad norite tiesiog parašyti tik vieną požymį. 109 00:07:21,820 --> 00:07:25,940 Kaip matysime vėliau, šiame pavyzdyje, rastrai turėsite naudoti, kad. 110 00:07:25,940 --> 00:07:32,180 Tai yra, kai mes galime naudoti fputc, iš esmės tik išleisti vieną simbolį vienu metu, chr, 111 00:07:32,180 --> 00:07:37,050 į failą žymeklį, ir tai yra mūsų iš rodyklė. 112 00:07:38,700 --> 00:07:41,560 Taip, tada, kai mes siekiame arba rašyti į failą, 113 00:07:41,560 --> 00:07:44,690 failas yra sekti, kur mes esame. 114 00:07:44,690 --> 00:07:47,810 Todėl Cursor, byla Padėties indikatorius rūšiuoti. 115 00:07:47,810 --> 00:07:54,330 Ir todėl, kai mes rašome arba skaityti vėl į failą, 116 00:07:54,330 --> 00:07:56,760 byla iš tikrųjų prisimena, kur ji yra, 117 00:07:56,760 --> 00:07:59,270 ir todėl ji ir toliau iš kur yra žymeklis. 118 00:07:59,270 --> 00:08:03,970 Tai gali būti naudinga, kai norite, tarkim, skaityti tam tikrą sumą kažką daryti 119 00:08:03,970 --> 00:08:06,160 ir tada skaityti toliau nurodytą sumą, 120 00:08:06,160 --> 00:08:10,700 bet kartais mes norime grįžti arba faktiškai pradėti nuo tam tikros pamatinės vertės. 121 00:08:10,700 --> 00:08:16,870 Taip, tada fseek funkcija, ką ji daro, leidžia perkelti žymeklį į tam tikrą failą 122 00:08:16,870 --> 00:08:19,680 tikras baitų skaičius. 123 00:08:19,680 --> 00:08:24,260 Ir tada tai, ką mes turime padaryti, tai nurodyti, kur už pamatinę vertę. 124 00:08:24,260 --> 00:08:31,520 Taigi, arba jis juda į priekį arba atgal, iš kur šiuo metu yra žymeklis, 125 00:08:31,520 --> 00:08:35,750 ar mes galime nurodyti, kad jis turėtų tiesiog pereiti nuo bylos pradžios 126 00:08:35,750 --> 00:08:37,090 arba iš failo pabaigoje. 127 00:08:37,090 --> 00:08:41,230 Ir todėl jūs galite važiuoti, neigiamas ar teigiamas vertybes suma, 128 00:08:41,230 --> 00:08:44,960 ir kad bus tipo perkelkite žymeklį arba pirmyn arba atgal. 129 00:08:46,170 --> 00:08:51,920 >> Prieš mes į kitas psets klausimų apie failą I / O? 130 00:08:53,860 --> 00:08:59,990 Gerai. Kaip mes patekti į daugiau pavyzdžių, nedvejodami sustabdyti manęs už klausimus. 131 00:08:59,990 --> 00:09:06,930 >> Taigi Detektīvromāns, jūs įteikė Bitmap failą, panašų į šios raudonos vieną skaidrę, 132 00:09:06,930 --> 00:09:14,510 ir atrodo, kad tai - raudonais taškais krūva - ir jūs tikrai nežino, kas parašyta. 133 00:09:14,510 --> 00:09:23,310 Jei jūs prisimerkti, jums gali būti galėtų pamatyti šiek tiek melsvą spalvą viduje viduryje. 134 00:09:23,310 --> 00:09:26,270 Iš esmės, tai kur tekstas saugomas. 135 00:09:26,270 --> 00:09:30,270 Ten buvo žmogžudystė, kad atsitiko, ir mes turime išsiaiškinti, kas tai padarė. 136 00:09:30,270 --> 00:09:36,760 Norėdami tai padaryti, mes turime natūra konvertuoti šį vaizdą į suprantamu formatu. 137 00:09:36,760 --> 00:09:42,740 Jei jus vaikinai tai kada nors susidūrė, kartais ten bus mažai rinkiniai 138 00:09:42,740 --> 00:09:48,510 kur jums reikės su raudona plėvele padidinamąjį stiklą. Kas nors? Taip. 139 00:09:48,510 --> 00:09:52,770 Taigi, jums bus ranka kažką panašaus į tai, jums reikės per didinamąjį stiklą 140 00:09:52,770 --> 00:09:58,130 su raudona filmas per jį, jums bus įdėti ją ant nuotraukos, 141 00:09:58,130 --> 00:10:03,410 ir jums bus galėtų pamatyti pranešimas paslėptas jame. 142 00:10:03,410 --> 00:10:07,080 Mes neturime didinamąjį stiklą su raudona, plėvele, todėl vietoj mes ketiname rūšies sukurti mūsų pačių 143 00:10:07,080 --> 00:10:09,060 į šį pset. 144 00:10:09,060 --> 00:10:15,760 Todėl vartotojas įvesties Detektīvromāns, tada clue. Bmp 145 00:10:15,760 --> 00:10:18,800 kad failas, tai "red dot pranešimą 146 00:10:18,800 --> 00:10:23,550 ir tada jie sako verdict.bmp bus mūsų outfile. 147 00:10:23,550 --> 00:10:27,900 Taigi jis ketina sukurti naują Bitmap Image panašus nei į clue 148 00:10:27,900 --> 00:10:32,600 išskyrus suprantamu formatu, kur mes galime matyti paslėptą pranešimą. 149 00:10:32,600 --> 00:10:37,550 >> Kadangi mes ketiname būti susijusios su kai rūšiuoti, redaguoti ir manipuliuoti rastrai, 150 00:10:37,550 --> 00:10:42,400 mes ketiname rūšies pasinerti į šių rastrinių failų struktūrą. 151 00:10:42,400 --> 00:10:48,130 Mes nuėjome per jų šiek tiek į paskaitą, tačiau pažvelkime į juos šiek tiek daugiau. 152 00:10:48,130 --> 00:10:51,740 Rastrai yra iš esmės tik baitų išdėstymas 153 00:10:51,740 --> 00:10:55,790 kur mes nurodėte baitai tai ką. 154 00:10:55,790 --> 00:11:00,540 Taigi čia yra rūšies kaip Bitmap Image žemėlapyje 155 00:11:00,540 --> 00:11:08,550 sakydamas, kad jis prasideda kai kurių antraštės failai, prasideda nors ten pateikta informacija. 156 00:11:08,550 --> 00:11:16,540 Jūs matote, kad apie baitų skaičius 14 dydis nurodyta Bitmap Image, 157 00:11:16,540 --> 00:11:18,520 ir ji toliau. 158 00:11:18,520 --> 00:11:23,810 Bet tada tai, ką mes tikrai domina, čia pradeda aplink baitų skaičius 54. 159 00:11:23,810 --> 00:11:26,060 Mes turime šiuos RGB, trigubėja. 160 00:11:26,060 --> 00:11:30,760 Ką ketina daryti yra faktinius pikselių, spalvų reikšmes. 161 00:11:30,760 --> 00:11:35,950 Viskas, kas išdėstyta, į antraštę yra šiek tiek informacijos 162 00:11:35,950 --> 00:11:41,240 atitinkantis dydžio vaizdą, įvaizdžio plotis, ir aukštis. 163 00:11:41,240 --> 00:11:44,930 Kai mes einame į kamšalu vėliau, mes suprasti, kodėl iš paveikslėlio dydis 164 00:11:44,930 --> 00:11:48,670 gali būti kitoks, nei plotis arba aukštis. 165 00:11:48,670 --> 00:11:54,240 Taip, tada atstovauti jų - šios bitmap atvaizdus baitų sekos - 166 00:11:54,240 --> 00:11:59,370 ką mes galime padaryti, tai pasakyti gerai, aš prisiminti, kad indeksuoti 14 167 00:11:59,370 --> 00:12:03,380 tai, kur dydis yra, pavyzdžiui, bet vietoj to, ką mes ketiname daryti, kad tai lengviau 168 00:12:03,380 --> 00:12:06,020 yra įdėti į kapsulę į struct. 169 00:12:06,020 --> 00:12:08,880 Ir taip mes turime du mums, BITMAPFILEHEADER structs 170 00:12:08,880 --> 00:12:10,440 ir BITMAPINFOHEADER 171 00:12:10,440 --> 00:12:14,840 ir todėl, kai mes skaitome į šį failą, pagal nutylėjimą ji vyksta, vyksta tam, kad, 172 00:12:14,840 --> 00:12:22,360 ir todėl, kad ji taip pat ketina užpildyti į kintamųjų, tokių kaip biWidth ir biSize. 173 00:12:25,270 --> 00:12:31,230 Ir galiausiai, kiekvienas pikselis yra atstovaujama trijų baitų. 174 00:12:31,230 --> 00:12:35,500 Pirmasis yra mėlynos pikselių kiekis, antra, žalia suma, 175 00:12:35,500 --> 00:12:41,120 ir, pagaliau, raudona, kur 0 yra iš esmės ne mėlyna žalia arba ne suma ar ne raudona 176 00:12:41,120 --> 00:12:43,720 ir tada ff yra didžiausias. 177 00:12:43,720 --> 00:12:46,800 Tai yra Šešioliktainis reikšmės. 178 00:12:46,800 --> 00:12:53,870 Taip, tada, jei mes turime FF0000, tada, kad atitinka sumą iki maksimalaus dydžio mėlyna 179 00:12:53,870 --> 00:12:58,890 ir tada ne žalia, o ne raudona, taip, tada, kad duotų mums mėlyna pikselių. 180 00:12:58,890 --> 00:13:04,190 Tada, jei mes turime FF nuo visų visur, tai reiškia, kad mes turime balta pikselių. 181 00:13:04,190 --> 00:13:11,370 Tai rūšies priešais paprastai, kai mes sakome RGB. Tai iš tikrųjų vyksta BGR. 182 00:13:12,750 --> 00:13:18,990 >> Taigi, jei mes iš tikrųjų atrodo į rastrinio atvaizdo pavyzdys - leiskite man ištraukti vieną čia. 183 00:13:31,560 --> 00:13:33,830 Tai yra šiek tiek mažas. 184 00:13:39,890 --> 00:13:47,840 Aš priartinimo, ir mes galime pamatyti, tai pixelated. Atrodo, kad spalvos blokus. 185 00:13:47,840 --> 00:13:50,110 Turite baltos spalvos blokus ir tada raudona blokai. 186 00:13:50,110 --> 00:13:53,700 Jei tu žaidi "Microsoft Paint", pavyzdžiui, jums gali padaryti kažką panašaus, kad 187 00:13:53,700 --> 00:13:58,960 pagal iš esmės tik tapyba tam tikrais kvadratais, tam tikra tvarka. 188 00:13:58,960 --> 00:14:08,060 Taip, tada, ką tai verčia į bitmapy yra taip. 189 00:14:08,060 --> 00:14:15,710 Čia mes turime pirmą baltą pikselių, kad visi 6 yra f, ir tada mes turime raudonos pikselių, 190 00:14:15,710 --> 00:14:19,910 nurodyta 0000FF. 191 00:14:19,910 --> 00:14:27,940 Ir taip baitų seka, kad mes turime, rodo, kaip rastrinis vaizdas ketina ieškoti. 192 00:14:27,940 --> 00:14:32,230 Taigi, ką aš padariau čia yra tiesiog rašyti visus tuos baitus ir tada dažyti raudona 193 00:14:32,230 --> 00:14:37,550 , kad jūs galite rūšies pamatyti, jei jūs prisimerkti šiek tiek, kaip, kad tipo rodo šypsenėlę. 194 00:14:40,180 --> 00:14:46,390 >> Taip, kad bitmap atvaizdus darbas yra tai, aš įsivaizduoti jį iš esmės kaip tinklelis. 195 00:14:46,390 --> 00:14:54,940 Ir taip pagal nutylėjimą, kiekvienas tinklelio eilutėje turi būti kartotinis 4 baitų. 196 00:15:00,520 --> 00:15:07,060 Jei pažvelgsime į Bitmap Image, jūs užpildyti kiekvieną vertės. 197 00:15:07,060 --> 00:15:17,370 Pavyzdžiui, galite turėti raudoną, žalia, mėlyna, 198 00:15:17,370 --> 00:15:24,950 , bet jūs turite įsitikinti, kad vaizdas yra užpildytas su keturių baitų kartotinio. 199 00:15:24,950 --> 00:15:32,200 Taigi, jei aš noriu, kad mano vaizdą, kuris bus trys blokai pločio, tada aš būtų įdėti tuščią vertę 200 00:15:32,200 --> 00:15:35,640 naujausia, kad ji iš keturių kartotinis. 201 00:15:35,640 --> 00:15:39,530 Taigi, aš norėčiau pridurti kažkas, kurį mes skambinate išklojimui. 202 00:15:39,530 --> 00:15:43,750 Aš tik ketina, rodo, kad su x. 203 00:15:44,920 --> 00:15:54,160 Dabar sako, kad mes norime, pavyzdžiui, vaizdą, kuris yra 7 pix. 204 00:15:54,160 --> 00:15:59,550 Mes turime 1, 2, 3, 4, 5, 6, 7, 205 00:16:04,750 --> 00:16:07,000 ir visa tai yra užpildyti su spalva. 206 00:16:07,000 --> 00:16:10,620 Būdas, kad bitmap atvaizdus dirbti, kad mums reikia 8.. 207 00:16:10,620 --> 00:16:12,460 Šiuo metu mes turime 1, 2, 3, 4, 5, 6, 7. 208 00:16:12,460 --> 00:16:19,360 Mes turime 8 erdves Bitmap Image skaityti teisingai. 209 00:16:19,360 --> 00:16:25,600 Taip, tada tai, ką mes turime padaryti, tai pridėti tik šiek tiek kamšalu 210 00:16:25,600 --> 00:16:29,430 įsitikinkite, kad visi iš pločio yra vienodi 211 00:16:29,430 --> 00:16:34,260 , kurių plotis yra 4 kartotinis. 212 00:16:42,110 --> 00:16:47,310 Ir todėl aš jau minėta, prikimšti kaip x ar deformuoti linijos, 213 00:16:47,310 --> 00:16:53,880 išklojimui, bet faktinių bitmap atvaizdus nurodyta šešioliktainis 0. 214 00:16:53,880 --> 00:16:57,340 Taip, kad būtų vienas ženklas, 0. 215 00:16:58,980 --> 00:17:06,329 Ką gali praversti xxd komanda. 216 00:17:06,329 --> 00:17:11,220 Kas ji yra iš tikrųjų rodo jums, kaip panašus į ką aš turėjau iki smiley 217 00:17:11,220 --> 00:17:15,630 kai aš iš tikrųjų atspausdinti, ką kiekviena spalva būtų pikselių 218 00:17:15,630 --> 00:17:21,800 ir tada spalva koduojami jį,, kai paleisti xxd šių komandų, 219 00:17:21,800 --> 00:17:28,670 tada tai tikrai bus atspausdinti, kokios spalvos yra tiems taškų. 220 00:17:28,670 --> 00:17:33,810 Ką jūs turite padaryti, tai čia man rodo, kaip s 54 221 00:17:33,810 --> 00:17:36,530 sako, kad aš ruošiuosi pradėti 54-ojo baitas 222 00:17:36,530 --> 00:17:40,820 nes prieš tai prisiminti, jei mes žiūrime atgal iš rastrai žemėlapį, 223 00:17:40,820 --> 00:17:42,690 , kad viskas antraštės informaciją ir ko panašaus, kad. 224 00:17:42,690 --> 00:17:46,280 Bet tai, ką mes tikrai rūpi, yra tikrasis taškų, kurie rodo, spalvą. 225 00:17:46,280 --> 00:17:52,700 Taigi, pridedant, kad laivo vėliavos, o-s 54, tada mes galime pamatyti spalvų reikšmes. 226 00:17:52,700 --> 00:17:56,020 Ir nesijaudinkite apie sudėtingus vėliavų ir panašių dalykų. 227 00:17:56,020 --> 00:18:05,020 Problemą, spec, jūs turite nurodymus, kaip naudoti xxd rodyti pikselius. 228 00:18:07,070 --> 00:18:15,590 Taigi, jei matote čia, kad tipo atrodo kaip "žaliosios dėžės", tai mažas dalykas. 229 00:18:15,590 --> 00:18:23,610 Aš spalvomis 00ff00, kaip iš esmės sakydamas, Mėlyna, daug žalios spalvos, o ne raudona. 230 00:18:23,610 --> 00:18:26,370 Taip, kad atitinka spalvą į žalią. 231 00:18:26,370 --> 00:18:31,920 Kaip matote čia, mes matome žalią stačiakampį. 232 00:18:31,920 --> 00:18:36,660 Šis žalias stačiakampis yra tik 3 pikselių pločio, taip, tada tai, ką mes turime padaryti, 233 00:18:36,660 --> 00:18:44,350 įsitikinti, kad vaizdas yra 4 pločio kartotinio yra pridėti papildomą kamšalu. 234 00:18:44,350 --> 00:18:49,460 Ir taip, tada tai, kaip jūs žiūrėti šiuos 0s čia. 235 00:18:49,460 --> 00:18:54,510 Tai tikrai bus rezultatą savo RESIZE pset, 236 00:18:54,510 --> 00:19:01,350 iš esmės atsižvelgiant į mažą bitmap ir padidinti jį iki 4. 237 00:19:01,350 --> 00:19:09,380 Ir taip, ką mes matome, kad iš tikrųjų šis vaizdas yra 12 pikselių pločio, bet 12 yra 4 kartotinis, 238 00:19:09,380 --> 00:19:12,940 ir taip mes iš tikrųjų nematau bet pabaigoje 0s, nes mums nereikia pridėti bet 239 00:19:12,940 --> 00:19:19,070 , nes jis visiškai kamšalu. Ji neturi, bet daugiau vietos. 240 00:19:20,720 --> 00:19:23,470 >> Gerai. Bet kokie klausimai apie kamšalu? 241 00:19:25,150 --> 00:19:27,460 Gerai. Cool. 242 00:19:27,460 --> 00:19:32,520 >> Kaip jau minėjau anksčiau, rastrai yra tiesiog baitų seka. 243 00:19:32,520 --> 00:19:39,170 Ir todėl tai, ką mes turime, yra, vietoj to, reikia sekti, kurie tiksliai baitų skaičius 244 00:19:39,170 --> 00:19:47,050 atitinka konkretaus elemento, mes iš tikrųjų sukūrė struct pareiškiate, kad. 245 00:19:47,050 --> 00:19:50,930 Taigi, ką mes turime, yra Struct RGBTRIPLE. 246 00:19:50,930 --> 00:19:54,590 Kai jūs turite RGB trejetui atvejis, 247 00:19:54,590 --> 00:20:00,970 , nes tai yra tipas apibrėžti struct, tada jūs galite prieiti prie rgbtBlue kintamąjį, 248 00:20:00,970 --> 00:20:09,520 panašiai žalia ir raudona kintamieji, kurie bus nurodyti, kiek mėlyna, žalia, raudona, 249 00:20:09,520 --> 00:20:11,580 atitinkamai, jūs turite. 250 00:20:11,580 --> 00:20:16,800 >> Taigi, jei mes turime mėlyną kintamasis, 0, žalia rinkinys ff 251 00:20:16,800 --> 00:20:22,060 kuri yra didžiausia vertė, jūs galite turėti, tada raudona kintamasis nustatomas į 0, 252 00:20:22,060 --> 00:20:27,870 tada kokia spalva būtų ši RGB trigubas? >> [Studentas] Žalioji. 253 00:20:27,870 --> 00:20:29,150 Žalia. Tiksliai. 254 00:20:29,150 --> 00:20:34,480 Tai bus naudinga žinoti, kad, kai jūs turite RGB trejetui atvejis, 255 00:20:34,480 --> 00:20:41,340 jūs iš tikrųjų galite naudoti spalvos kiekį - mėlyna, žalia, raudona - atskirai. 256 00:20:43,350 --> 00:20:54,900 >> Dabar, kad mes kalbėjome apie tos struktūros, tegul BMP failą išvaizdą. 257 00:20:54,900 --> 00:20:57,870 Tai yra structs padaryti už jus. 258 00:20:57,870 --> 00:21:01,820 Čia mes turime BITMAPFILEHEADER struct. 259 00:21:01,820 --> 00:21:07,610 Interesų dydis. 260 00:21:07,610 --> 00:21:12,660 Vėliau, mes turime info antraštę, kuri turi keletą dalykų, kurie yra įdomus mums, 261 00:21:12,660 --> 00:21:15,480 būtent dydis, plotis ir aukštis. 262 00:21:15,480 --> 00:21:19,170 Kaip mes eiti į vėliau, kai jūs skaitote su byla, 263 00:21:19,170 --> 00:21:25,500 ji automatiškai nuskaito, nes mes nustatyti tvarką, yra tas pats. 264 00:21:25,500 --> 00:21:31,990 Taigi biSize turėti teisę baitų, atitinkančius faktinio dydžio įvaizdžio. 265 00:21:34,700 --> 00:21:40,500 Ir tada čia, galiausiai, kaip mes kalbėjome apie, turime Typedef struct RGBTRIPLE. 266 00:21:40,500 --> 00:21:46,840 Mes turime žinutę rgbtBlue, žalia, ir RED su juo susijusios. 267 00:21:48,210 --> 00:21:49,340 >> Didysis. Gerai. 268 00:21:49,340 --> 00:21:56,360 Dabar, kai mes suprantame Rastrai šiek tiek suprasti, kad mes turime failo antraštę 269 00:21:56,360 --> 00:22:00,790 ir informacija antraštės, susijusios su juo ir tada po to, mes turime įdomių dalykų 270 00:22:00,790 --> 00:22:05,110 spalvų, ir šios spalvos atstovauja RGBTRIPLE structs 271 00:22:05,110 --> 00:22:12,710 ir tie, savo ruožtu, turi tris susijusias vertybes mėlyna, žalia ir raudona. 272 00:22:12,710 --> 00:22:17,270 >> Taigi, dabar, mes galime rūšies galvoti apie Atkurti šiek tiek. 273 00:22:17,270 --> 00:22:20,130 Atsiprašau. Pagalvokite apie Detektīvromāns. 274 00:22:20,130 --> 00:22:25,750 Kai mes turime clue failą, tada tai, ką mes norime padaryti, tai perskaityti jai taškus vieną po kito 275 00:22:25,750 --> 00:22:33,860 ir tada kažkaip pakeisti tuos pikselius, kad galėtume išvesti jį į skaitymo forma. 276 00:22:33,860 --> 00:22:41,020 Ir taip išvesti, mes ketiname rašyti pikselis pixel į verdict.bmp failą. 277 00:22:41,020 --> 00:22:45,120 Tai tipo daug ką nuveikti. Mes suprantame, kad. 278 00:22:45,120 --> 00:22:49,860 Taigi, ką mes padarėme, mes iš tikrųjų jei jums copy.c. 279 00:22:49,860 --> 00:22:57,610 Copy.c ar yra tik tam tikros rastrinio formato failą tikslią kopiją ir tada rezultatai jį. 280 00:22:57,610 --> 00:23:01,900 Taigi tai jau atidaro failą už jus, nuskaito taškus vieną po kito, 281 00:23:01,900 --> 00:23:04,510 ir tada rašo į išvesties failą. 282 00:23:04,510 --> 00:23:07,080 >> Paimkime Tuo išvaizdą. 283 00:23:13,390 --> 00:23:18,290 Tai užtikrinti tinkamą naudojimą, 284 00:23:18,290 --> 00:23:22,640 gauti varduose čia. 285 00:23:22,640 --> 00:23:29,940 Kas tai yra, jis nustato įvesties failas turi būti, ką mes priimtas INFILE čia, 286 00:23:29,940 --> 00:23:34,750 kuris yra antrasis mūsų komandų eilutės argumentas. 287 00:23:34,750 --> 00:23:37,640 Tikrina, įsitikinkite, kad galėtume atidaryti failą. 288 00:23:38,960 --> 00:23:44,860 Tikrina, įsitikinkite, kad mes galime padaryti naują outfile čia. 289 00:23:45,630 --> 00:23:53,270 Tada, Kas tai čia, tai tik iš esmės pradeda skaityti rastrinio formato failą iš pat pradžių. 290 00:23:53,270 --> 00:23:56,700 Pradžia, kaip žinome, yra BITMAPFILEHEADER 291 00:23:56,700 --> 00:24:03,200 ir todėl tie bitų sekos bus tiesiogiai užpildyti į BITMAPFILEHEADER. 292 00:24:03,200 --> 00:24:07,940 Taigi, ką mes turime čia sako, kad BITMAPFILEHEADER bf - 293 00:24:07,940 --> 00:24:13,150 tai mūsų naują kintamąjį tipo BITMAPFILEHEADER 294 00:24:13,150 --> 00:24:22,560 mes ketiname įdėti viduje bf, ką mes skaitome iš rodyklė, kuri yra mūsų failas. 295 00:24:22,560 --> 00:24:23,970 Kiek mes skaityti? 296 00:24:23,970 --> 00:24:32,160 Mes skaitome,,, kiek baitų turime būti visą BITMAPFILEHEADER. 297 00:24:32,160 --> 00:24:34,660 Be to, tai, ką mes darome info antraštėje. 298 00:24:34,660 --> 00:24:39,010 Taigi, mes tęsiame palei mūsų bylą į INFILE 299 00:24:39,010 --> 00:24:44,360 ir mes skaitant šias bitai ir baitai, ir mes prijunkite juos tiesiogiai 300 00:24:44,360 --> 00:24:47,880 į šių kintamųjų atvejais, kad mes darome. 301 00:24:49,370 --> 00:24:53,800 Čia mes tiesiog įsitikinkite, kad rastras yra bitmap. 302 00:24:57,670 --> 00:25:01,030 >> Dabar mes turime outfile, tiesa? 303 00:25:01,030 --> 00:25:04,420 Taigi, kokia ji yra, kai mes ją sukuriame, tai iš esmės tuščia. 304 00:25:04,420 --> 00:25:07,710 Taigi, mes turime iš esmės sukurti naują bitmap nuo nulio. 305 00:25:07,710 --> 00:25:12,280 Ką mes darome, mes turime įsitikinti, kad mes nukopijuoti failo antraštėje 306 00:25:12,280 --> 00:25:16,850 ir informacija antraštė tiesiog kaip INFILE. 307 00:25:16,850 --> 00:25:22,850 Ką mes darome, mes rašome - ir prisiminti, kad bf yra kintamasis 308 00:25:22,850 --> 00:25:29,300 iš tipui BITMAPFILEHEADER, kad tai, ką mes darome, yra, mes tiesiog naudoti tą turinį 309 00:25:29,300 --> 00:25:34,980 rašyti į outfile. 310 00:25:36,550 --> 00:25:38,510 Čia prisiminti, mes kalbėjome apie išklojimui, 311 00:25:38,510 --> 00:25:47,820 kaip tai svarbu įsitikinti, kad taškų, kad mes turime suma yra 4 kartotinis. 312 00:25:47,820 --> 00:25:52,790 Tai yra labai naudinga formulė apskaičiuoti, kiek prikimšti turite 313 00:25:52,790 --> 00:25:57,670 atsižvelgiant į savo failo plotis. 314 00:25:57,670 --> 00:26:04,120 Noriu jus vaikinai prisiminti, kad copy.c turime apskaičiavimo padding formulę. 315 00:26:04,120 --> 00:26:07,970 Gerai? Taigi visi prisiminti. Didysis. 316 00:26:07,970 --> 00:26:14,050 Taip, tada ką copy.c šalia yra, tai kartojasi per visus iš Scandlines. 317 00:26:14,050 --> 00:26:23,730 Jis eina per eilutes, ir tada saugo kiekvieną triviečiai, kad jis skaito 318 00:26:23,730 --> 00:26:26,920 ir tada rašo į outfile. 319 00:26:26,920 --> 00:26:33,120 Taip, tada čia mes skaitote vienu metu tik vieną RGB TRIPLE 320 00:26:33,120 --> 00:26:39,860 ir tada pradėti Tą pačią Triple į outfile. 321 00:26:41,120 --> 00:26:48,340 Keblus dalis yra tai, kad padding nėra RGB trigubas, 322 00:26:48,340 --> 00:26:55,200 ir todėl mes galime ne tik skaityti, kad padding suma RGB triviečiai. 323 00:26:55,200 --> 00:27:01,460 Tai, ką mes turime padaryti, tai iš tikrųjų tik judėti mūsų failo padėties indikatorių, perkelti mūsų žymeklį, 324 00:27:01,460 --> 00:27:06,840 rūšies praleisti visą kamšalu, todėl, kad mes į kitą eilutę. 325 00:27:06,840 --> 00:27:12,990 Ir tada Kas tai yra kopija parodys jums, kaip jūs galbūt norėsite pridėti išplėtimo. 326 00:27:12,990 --> 00:27:14,990 Taigi, mes apskaičiavome, kiek prikimšti mums reikia, 327 00:27:14,990 --> 00:27:18,220 taigi tai reiškia, kad mums reikia išklojimui skaičių 0s. 328 00:27:18,220 --> 00:27:24,510 Kas tai yra už linijos kelia išklojimui skaičių 0s į mūsų outfile. 329 00:27:24,510 --> 00:27:31,170 Ir galiausiai, jūs uždaryti abu failus. Jūs uždarote infile taip pat outfile. 330 00:27:31,170 --> 00:27:34,870 >> Štai kaip copy.c darbai, 331 00:27:34,870 --> 00:27:37,430 ir tai bus labai naudinga. 332 00:27:39,720 --> 00:27:43,750 , O ne tik faktiškai tiesiogiai kopijuoti ir įklijuoti ją 333 00:27:43,750 --> 00:27:46,800 arba tiesiog žiūri į jį ir rašyti viską, ko norite, 334 00:27:46,800 --> 00:27:49,440 galbūt tiesiog norite atlikti šią komandą terminale, 335 00:27:49,440 --> 00:27:54,520 bp copy.c whodunit.c, kuri sukurs naują failą, whodunit.c 336 00:27:54,520 --> 00:27:58,330 tai yra tą patį turinį kaip kopija. 337 00:27:58,330 --> 00:28:03,880 Taip, tada tai, ką mes galime padaryti, tai naudoti, kad kaip pagrindas, ant kurio sukurti ir redaguoti 338 00:28:03,880 --> 00:28:06,900 mūsų Detektīvromāns failą. 339 00:28:08,500 --> 00:28:14,670 >> Tai yra į DOS Detektīvromāns, bet ką copy.c 340 00:28:14,670 --> 00:28:16,730 yra iš tikrųjų rūpinasi daugelis iš jų mums. 341 00:28:16,730 --> 00:28:21,900 Taigi, viskas, ką reikia daryti toliau, yra pakeisti, kiek reikia taškų 342 00:28:21,900 --> 00:28:25,920 faktiškai padaryti failas įskaitomas. 343 00:28:25,920 --> 00:28:32,960 Atminkite, kad už tam tikrą pikselių trigubo, todėl tam tikro kintamojo tipo RGBTRIPLE 344 00:28:32,960 --> 00:28:35,990 galite naudotis mėlyna, žalia ir raudona vertybes. 345 00:28:35,990 --> 00:28:38,670 Kad ketina praversti, nes, jei jūs galite gauti prieigą prie jų, 346 00:28:38,670 --> 00:28:41,770 tai reiškia, kad jūs taip pat galite patikrinti juos, 347 00:28:41,770 --> 00:28:45,430 , o tai reiškia, kad jūs taip pat juos keisti. 348 00:28:45,430 --> 00:28:49,430 >> Taigi, kai mes grįžo į mūsų raudona didinamojo stiklo, pavyzdžiui, 349 00:28:49,430 --> 00:28:53,390 iš esmės, tai veikė kaip filtro rūšiuoti mums. 350 00:28:53,390 --> 00:28:58,160 Taigi, ką mes norime padaryti, tai norime filtruoti visus iš triviečiai, kurie ateina. 351 00:28:58,160 --> 00:29:01,240 Yra keletas skirtingų būdų, kaip tai padaryti. 352 00:29:01,240 --> 00:29:07,100 Iš esmės, jūs galite turėti, bet kokios rūšies filtras norite. 353 00:29:07,100 --> 00:29:09,890 Gal norite keisti visus raudonos pikselių 354 00:29:09,890 --> 00:29:13,570 o gal jūs norite pakeisti įvairių spalvų pikselių kita spalva. 355 00:29:13,570 --> 00:29:15,400 Tai priklauso nuo jūsų. 356 00:29:15,400 --> 00:29:19,580 Nepamirškite, kad jūs galite patikrinti, kokia spalva pikselių yra 357 00:29:19,580 --> 00:29:23,000 ir tada jūs galite taip pat pakeisti, kaip jūs ketinate per. 358 00:29:24,410 --> 00:29:26,420 >> Gerai. Taigi, kad Detektīvromāns. 359 00:29:26,420 --> 00:29:32,760 Kai paleidžiate Detektīvromāns, jūs žinosite, kuris nusikaltimo kaltininkas buvo. 360 00:29:32,760 --> 00:29:35,540 >> Dabar mes ketiname eiti į Resize. 361 00:29:35,540 --> 00:29:37,990 Mes ketiname būti susijusios su rastrai. 362 00:29:37,990 --> 00:29:40,750 Ką mes ketiname padaryti, tai mes ketiname turėti įvesties bitmap 363 00:29:40,750 --> 00:29:45,890 ir tada mes ketiname perduoti numerį ir tada gauti outfile bitmap 364 00:29:45,890 --> 00:29:51,380 jei tai iš esmės mūsų INFILE mastelis n. 365 00:29:54,670 --> 00:30:01,450 Pasakykite, mano byla buvo tik vieną tašką, didelis. 366 00:30:01,450 --> 00:30:09,100 Tada, jei mano n buvo 3, pleiskanojimas 3, tada aš norėčiau pakartoti, kad Pixel N skaičių kartų, 367 00:30:09,100 --> 00:30:14,410 taigi 3 kartus, ir tada taip pat masto jį 3 kartus, taip pat. 368 00:30:14,410 --> 00:30:17,840 Taigi, kaip matote, aš mastelio ją vertikaliai, taip pat horizontaliai. 369 00:30:17,840 --> 00:30:19,680 >> Ir tada čia pavyzdys. 370 00:30:19,680 --> 00:30:27,590 Jei turite n = 2, pamatysite, kad pirmoji mėlyna pikselių yra pakartota du kartus 371 00:30:27,590 --> 00:30:30,930 horizontaliai, taip pat kaip du kartus vertikaliai. 372 00:30:30,930 --> 00:30:38,040 Ir tada, kad ir toliau, ir todėl jūs turite tiesioginį savo originalaus atvaizdo du mastelio. 373 00:30:40,920 --> 00:30:47,600 >> Taip, tada, jei mes išsamiai pseudocode už tai, kad mes norime atidaryti failą. 374 00:30:47,600 --> 00:30:49,880 Ir tada žinoti, kad jei mes grįžti čia, 375 00:30:49,880 --> 00:30:54,540 matome, kad už outfile plotis bus kitoks nei už infile pločio. 376 00:30:54,540 --> 00:30:56,130 Ką tai reiškia? 377 00:30:56,130 --> 00:31:01,230 Tai reiškia, kad mūsų antraštės informacija ketina keisti. 378 00:31:01,230 --> 00:31:03,790 Ir todėl tai, ką mes norime padaryti, tai atnaujinti antraštės informaciją, 379 00:31:03,790 --> 00:31:11,820 žinant, kad, kai mes skaityti failus, jei jūs veikia ant copy.c sistemą, 380 00:31:11,820 --> 00:31:17,570 mes jau turime kintamąjį, rodo, kokio dydžio yra ir dalykų, pavyzdžiui, kad. 381 00:31:17,570 --> 00:31:24,060 Taigi, kai jūs turite, kad tai, ką jūs galbūt norėsite padaryti, tai pakeisti šiuos konkrečius kintamuosius. 382 00:31:24,060 --> 00:31:29,380 Atminkite, kad jei turite struct, kaip jūs pasiekiate, kad per kintamuosius. 383 00:31:29,380 --> 00:31:32,080 Galite naudoti dot operatorius, tiesa? 384 00:31:32,080 --> 00:31:36,420 Taip, tada naudoti, kad jūs žinote, kad jums reikia pakeisti antraštės informaciją. 385 00:31:36,480 --> 00:31:41,030 Taigi čia yra tik sąrašas faktinių elementų, kurie vyksta, keičiasi jūsų faile. 386 00:31:41,030 --> 00:31:45,180 Failo dydis vyksta, keičiasi, įvaizdį, taip pat plotis ir aukštis. 387 00:31:45,180 --> 00:31:50,080 Taip, tada grįžta iš rastrai žemėlapyje 388 00:31:50,080 --> 00:31:57,730 pažvelgti, ar tai failo pavadinime ar info antraštė, kuri yra ta informacija 389 00:31:57,730 --> 00:32:00,920 ir tada pakeisti, kiek reikia. 390 00:32:05,010 --> 00:32:12,470 Vėlgi, pasakyti cp copy.c resize.c. 391 00:32:12,470 --> 00:32:19,270 Tai reiškia, kad resize.c dabar yra viską, kas, esantys viduje kopiją 392 00:32:19,270 --> 00:32:24,490 nes kopija suteikia mums kelią skaitymo kiekvienam Scanline pikselių pikselių. 393 00:32:24,490 --> 00:32:29,860 Išskyrus tuos atvejus, dabar, o ne tiesiog pakeisti vertybes, kaip mes padarėme Detektīvromāns 394 00:32:29,860 --> 00:32:37,980 tai, ką mes norime padaryti, tai mes norime parašyti daugelyje taškų 395 00:32:37,980 --> 00:32:43,580 tol, kol mūsų n yra didesnis nei 1. 396 00:32:43,580 --> 00:32:47,110 >> Tada tai, ką mes norime padaryti, norime ištiesti jį horizontaliai n, 397 00:32:47,110 --> 00:32:50,490 taip pat ištempti jį vertikaliai n. 398 00:32:50,490 --> 00:32:52,710 Kaip galėtume tai padaryti? 399 00:32:52,710 --> 00:32:56,890 Pasakykite jūsų n yra 2, ir jūs turite turint mintyje tai, infile. 400 00:32:56,890 --> 00:32:58,730 Žymeklis ketina pradėti nuo pirmojo, 401 00:32:58,730 --> 00:33:03,530 ir ką jūs norite daryti, jei n yra 2, norite spausdinti 2 iš jų. 402 00:33:03,530 --> 00:33:05,490 , Todėl jūs spausdinate 2 iš jų. 403 00:33:05,490 --> 00:33:10,830 Tada žymeklis ketina perkelti į kitą pikselių, kuri yra raudona, 404 00:33:10,830 --> 00:33:18,400 ir jis ketina spausdinti 2 tų raudonųjų, pridedant jį į ką ji padaryta prieš. 405 00:33:18,400 --> 00:33:26,280 Tada žymeklis bus perkelti į kitą pikselių ir pritraukti 2 iš jų. 406 00:33:26,280 --> 00:33:37,180 Jei pažvelgti atgal į copy.c sistemą, Kas tai, čia 407 00:33:37,180 --> 00:33:42,830 jis sukuria naują instancija RGB trejetui, naujas kintamasis vadinamas trigubas. 408 00:33:42,830 --> 00:33:50,500 Ir čia, kai rašoma į jį, jis skaito iš 1 INFILE RGBTRIPLE 409 00:33:50,500 --> 00:33:53,470 ir išsaugo ją viduje šio trigubo kintamąjį. 410 00:33:53,470 --> 00:33:57,590 Taip, tada jūs iš tikrųjų turi kintamąjį atitinka tą tikrą pikselių. 411 00:33:57,590 --> 00:34:05,290 Tada, kai rašote, ką jūs galbūt norėsite padaryti, gaubiančių fwrite ataskaitoje į kilpą 412 00:34:05,290 --> 00:34:11,080 , kuris rašo jį į savo outfile tiek kartų, kiek reikia. 413 00:34:17,449 --> 00:34:20,100 Tai gana paprasta. 414 00:34:20,200 --> 00:34:27,590 Tiesiog iš esmės pakartoti rašymo procesą N skaičių, kiek kartų jį horizontaliai masto. 415 00:34:27,590 --> 00:34:32,969 >> Bet tada mes turime prisiminti, kad ketina pakeisti mūsų užpildas. 416 00:34:47,350 --> 00:34:53,020 Anksčiau, sako, mes turėjome kažką 3 ilgio. 417 00:34:53,020 --> 00:35:00,130 Tada mes tiesiog pridėti kiek prikimšti? Tik dar vienas, kad ji iš 4. 418 00:35:00,130 --> 00:35:10,480 Bet pasakyti, kad mes mastelio šį konkretų vaizdą n = 2. 419 00:35:10,480 --> 00:35:16,300 Taip, tada, kiek mes turime mėlynos pix pabaigoje? Mes norėtume turėti 6. 420 00:35:16,300 --> 00:35:21,470 1, 2, 3, 4, 5, 6. Gerai. 421 00:35:21,470 --> 00:35:26,580 6 yra 4 kartotinis. Koks artimiausias 4 kartotinis? Tai bus 8. 422 00:35:26,580 --> 00:35:33,200 Taigi, mes iš tikrųjų vyksta ten, kad 2 simbolių kamšalu. 423 00:35:33,200 --> 00:35:38,720 >> Ar kas nors prisiminti, jei mes turime formulę apskaičiuoti išklojimui 424 00:35:38,720 --> 00:35:41,350 ir kur tai galėtų būti? 425 00:35:41,350 --> 00:35:45,160 [Nesigirdi studentas atsakas] >> Taip, copy.c. Į dešinę. 426 00:35:45,160 --> 00:35:49,800 Yra formulė copy.c apskaičiuoti, kiek prikimšti turite 427 00:35:49,800 --> 00:35:53,810 skiriamas ypatingas plotis Bitmap Image. 428 00:35:53,810 --> 00:36:02,950 Taip, tada, kad manimi vyksta, kad būtų naudinga, kai reikia pridėti tam tikrą išklojimui 429 00:36:02,950 --> 00:36:06,160 iš tikrųjų išsiaiškinti, kiek prikimšti jums reikia pridėti. 430 00:36:10,820 --> 00:36:15,850 Bet viena nata, nors, yra tai, kad jūs norite įsitikinti,, kad jūs naudojate tinkamą dydį. 431 00:36:15,850 --> 00:36:21,410 Tiesiog būkite atsargūs, nes jūs iš esmės būti susijusios su dviem bitmap atvaizdus. 432 00:36:21,410 --> 00:36:23,410 Jūs norite įsitikinti, įsitikinkite, kad jūs naudojate tinkamą vieną. 433 00:36:23,410 --> 00:36:26,820 Kai jūs apskaičiuojant už outfile išplėtimo, kurį norite naudoti, kad outfile plotis 434 00:36:26,820 --> 00:36:29,860 o ne praėjusių pločio. 435 00:36:29,860 --> 00:36:37,240 >> Didysis. , Kad tipo rūpinasi tempimo visa Bitmap Image horizontaliai. 436 00:36:37,240 --> 00:36:41,290 Bet tai, ką mes norime padaryti, tai faktiškai ištempti jį vertikaliai, kaip gerai. 437 00:36:41,290 --> 00:36:48,760 Tai bus šiek tiek sudėtingiau, nes, kai mes baigsite kopijuoti eilutę 438 00:36:48,760 --> 00:36:51,580 ir raštu, kad eilutę, žymeklis bus pabaigoje. 439 00:36:51,580 --> 00:36:56,210 Taigi, jei mes skaityti dar kartą, tada jis tiesiog ketina skaityti į kitą eilutę. 440 00:36:56,210 --> 00:37:03,660 Taigi, ką mes norime padaryti, yra natūra radote kopijuoti šias eilutes vėl kelią 441 00:37:03,660 --> 00:37:12,500 arba tiesiog rūšies šią eilutę ir tada perrašyti jį vėl. 442 00:37:14,380 --> 00:37:17,940 Kaip I rūšies užsiminė, yra keletas skirtingų būdų, kaip tai padaryti. 443 00:37:17,940 --> 00:37:23,040 , Ką galite padaryti, tai, kaip jūs ketinate per ir skaityti per konkrečią Scanline 444 00:37:23,040 --> 00:37:28,560 ir jį pakeisti, kiek reikia, tada tipo parduotuvėje visų šių taškų masyvo. 445 00:37:28,560 --> 00:37:36,350 Tada vėliau jums žinoti, kad jums reikia atspausdinti, kad vėl masyvo, 446 00:37:36,350 --> 00:37:39,830 ir todėl jūs galite tiesiog naudoti masyvo, tai padaryti. 447 00:37:39,830 --> 00:37:44,500 Kitas būdas tai padaryti yra, jums gali nukopijuokite vieną eilutę, 448 00:37:44,500 --> 00:37:47,950 suprasti, kad jums reikia kopijuoti, kad vėl, todėl perkelkite žymeklį, 449 00:37:47,950 --> 00:37:50,950 ir tai bus naudojant metodą fseek. 450 00:37:50,950 --> 00:37:56,410 Jūs galite perkelti žymeklį visą kelią atgal ir tada vėl pakartokite kopijavimo procesas. 451 00:37:56,410 --> 00:38:03,960 >> Taigi, jei mūsų mastelio skaičius yra n, tai, kiek kartų tai mes turime grįžti 452 00:38:03,960 --> 00:38:10,500 ir perrašyti linija? >> [Studentas] n - 1. >> Taip, puikus. n - 1. 453 00:38:10,500 --> 00:38:14,390 Mes padarėme tai, kad kartą jau tada mes norite kartoti Grįžtant procesą 454 00:38:14,390 --> 00:38:17,460 n - 1 kiekį kartų. 455 00:38:22,730 --> 00:38:25,860 Gerai. Taigi, jūs turite savo dydžio keitimo funkcija. 456 00:38:25,860 --> 00:38:34,360 >> Dabar mes galime gauti tikrai įdomus, mano mėgstamiausia pset, kuris yra atkurti. 457 00:38:34,360 --> 00:38:39,580 Vietoj to, kad rastrai, šį kartą mes susiduriame su JPEG. 458 00:38:39,580 --> 00:38:43,370 Mes iš tikrųjų ne tik JPEG failą, 459 00:38:43,370 --> 00:38:46,600 mes iš esmės žalią atminties kortelės formatą. 460 00:38:46,600 --> 00:38:51,790 Ir todėl tai yra šiek tiek info ir šiukšlių vertybių pradžioje, 461 00:38:51,790 --> 00:38:57,240 ir tada ji prasideda ir kur ji turi JPEG failus krūva. 462 00:38:57,240 --> 00:39:03,430 Tačiau mes įteikė kortelę, kur mes ištrinti nuotraukas; 463 00:39:03,430 --> 00:39:08,300 iš esmės, mes pamiršti, kur nuotraukos yra įsikūręs pačioje kortelėje. 464 00:39:08,300 --> 00:39:12,770 Taip, tada mūsų užduotis atkurti eiti per šios kortelės formatu 465 00:39:12,770 --> 00:39:16,500 ir rasti tas nuotraukas dar kartą. 466 00:39:16,500 --> 00:39:23,990 >> Laimei, JPEG failus ir Card File struktūra yra šiek tiek naudinga. 467 00:39:23,990 --> 00:39:28,850 Jis tikrai galėjo būti šiek tiek sudėtingesnis, jei tai buvo ne šiuo konkrečiu formatu. 468 00:39:28,850 --> 00:39:40,160 Kiekvienas JPEG failas faktiškai prasideda dviejų galimų sekų, išvardytų aukščiau. 469 00:39:40,160 --> 00:39:42,970 Iš esmės, kai turite naują JPEG rinkmeną, 470 00:39:42,970 --> 00:39:52,720 jis pradeda su sekos ffd8 ffe0 ar kitas, ffd8 ffe1. 471 00:39:52,720 --> 00:39:59,530 Kitas naudingas dalykas, kurį reikia žinoti yra tai, kad JPEG saugomi Kaimynystėje. 472 00:39:59,530 --> 00:40:03,380 Taigi, kai vienas JPEG failas baigiasi, kitas prasideda. 473 00:40:03,380 --> 00:40:07,070 Taigi nėra jokių, tarp vertybių ten natūra. 474 00:40:07,070 --> 00:40:15,510 Kai paspausite, jei jūs jau skaityti JPEG, JPEG pradžią 475 00:40:15,510 --> 00:40:21,800 jūs žinote, kad jūs nukentėjo ankstesniojo ir kito pradžios pabaigos. 476 00:40:21,800 --> 00:40:25,890 >> Rūšies pavaizduoti schema, aš padariau. 477 00:40:25,890 --> 00:40:36,910 Dar apie JPEG dalykas yra tai, kad mes galime juos perskaityti 512 baitų sekas vienu metu, 478 00:40:36,910 --> 00:40:39,380 taip pat ir su kortele pradžioje. 479 00:40:39,380 --> 00:40:43,370 Mums nereikia, kad tikrinant kiekvieną vieną baitą, nes tai čiulpia. 480 00:40:43,370 --> 00:40:48,200 Taigi vietoj to, ką mes galime padaryti, tai iš tikrųjų tik skaityti 512 baitų, tuo metu, 481 00:40:48,200 --> 00:40:54,700 ir tada, o ne tikrinti tarp šių mažų mažai skiltelės, 482 00:40:54,700 --> 00:40:58,640 mes galime tik patikrinti apie 512 baitų pradžią. 483 00:40:58,640 --> 00:41:02,570 Iš esmės, tai, ką matote šioje nuotraukoje, yra kortelės pradžioje, 484 00:41:02,570 --> 00:41:08,700 turite vertybes, kurios yra tikrai nėra susiję su pačių faktinių JPEG. 485 00:41:08,700 --> 00:41:15,830 Bet tada ką aš turiu yra žvaigždė nurodyti vieną iš dviejų pradinių sekos JPEG. 486 00:41:15,830 --> 00:41:19,910 Taigi, jei matote žvaigžde, jūs žinote, kad turite JPEG failą. 487 00:41:19,910 --> 00:41:25,030 Kiekvienas JPEG formato rinkmena, ir tada bus kartotinis kai 512 baitų 488 00:41:25,030 --> 00:41:27,880 tačiau nebūtinai tą patį kelis kartus. 489 00:41:27,880 --> 00:41:32,050 Taip, kad jums žinoti, kad jūs pasiekėte kitą JPEG, jei paspausite kitą žvaigždę, 490 00:41:32,050 --> 00:41:39,090 kitas baitų seka. 491 00:41:39,090 --> 00:41:43,330 Tada tai, ką jūs čia, jūs turite raudoną JPEG failą tęsiama, kol paspausite žvaigždę, 492 00:41:43,330 --> 00:41:45,150 kuri nurodoma nauja spalva. 493 00:41:45,150 --> 00:41:48,510 Jūs tęsite ir tada paspausite kitą žvaigždę, paspausite kitą JPEG, 494 00:41:48,510 --> 00:41:50,590 jūs ir toliau visą kelią iki pabaigos. 495 00:41:50,590 --> 00:41:53,180 Esate paskutinę nuotrauką čia, rožinis. 496 00:41:53,180 --> 00:41:58,220 Eiti iki galo, kol paspausite failų pobūdžio pabaigą. 497 00:41:58,220 --> 00:42:00,820 Tai bus tikrai naudinga. 498 00:42:00,820 --> 00:42:03,170 >> Keletas pagrindinių takeaways čia: 499 00:42:03,170 --> 00:42:06,670 Kartoteka neprasideda su JPEG, 500 00:42:06,670 --> 00:42:13,350 bet kai tik JPEG prasideda, visi iš JPEG saugomi vienas šalia kito, kad vienas su kitu. 501 00:42:17,520 --> 00:42:20,420 >> Kai Atkurti Pseudocode. 502 00:42:20,420 --> 00:42:22,570 Pirma, mes ketiname atidaryti mūsų kortelės failą, 503 00:42:22,570 --> 00:42:27,500 ir tai bus naudojantis mūsų failą I / O funkcijas. 504 00:42:27,500 --> 00:42:32,430 Mes ketiname pakartoti šį procesą tol, kol mes pasiekėme failo pabaigoje. 505 00:42:32,430 --> 00:42:36,450 Mes ketiname skaityti 512 baitų vienu metu. 506 00:42:36,450 --> 00:42:39,180 O ką aš sakiau čia mes ketiname laikyti jį buferis, 507 00:42:39,180 --> 00:42:46,230 todėl iš esmės palaikykite ant tų 512 baitų, kol mes žinome, ką su jais daryti. 508 00:42:46,230 --> 00:42:50,300 Tada tai, ką mes norime padaryti, mes norime patikrinti, ar mes nukentėjo žvaigždę, ar ne. 509 00:42:50,300 --> 00:42:57,960 Jei mes nukentėjo žvaigždė, jei mes paspauskite vieną iš pradinių sekų, 510 00:42:57,960 --> 00:42:59,980 tada mes žinome, kad mes pasiekė naują JPEG failą. 511 00:42:59,980 --> 00:43:08,860 Ką mes norime padaryti, tai mes ketiname norite sukurti naują failą mūsų pset4 kataloge 512 00:43:08,860 --> 00:43:14,480 tęsti šį failą. 513 00:43:14,480 --> 00:43:18,220 Bet taip pat, jei mes jau padarė JPEG anksčiau, 514 00:43:18,220 --> 00:43:25,620 tai mes norime baigti šį failą ir stumti jį į pset4 aplanką, 515 00:43:25,620 --> 00:43:29,780 kur mes turime, kad failas saugomas, nes jei nenurodysite, kad mes jau pasibaigė, kad JPEG rinkmeną, 516 00:43:29,780 --> 00:43:37,290 tada mes iš esmės neribotam sumą. JPEG niekada nesibaigs. 517 00:43:37,290 --> 00:43:40,840 Taigi, mes norime įsitikinti, kad, kai mes skaityti į JPEG failą ir raštu, kad, 518 00:43:40,840 --> 00:43:46,590 mes norime konkrečiai arti, kad tam, kad atidaryti kitą. 519 00:43:46,590 --> 00:43:48,430 Norite patikrinti keletą dalykų. 520 00:43:48,430 --> 00:43:52,880 Mes norime patikrinti, ar mes ne naujos JPEG pradžios mūsų buferio 521 00:43:52,880 --> 00:43:56,780 ir taip pat, jei mes jau rado JPEG prieš 522 00:43:56,780 --> 00:44:03,930 , nes tai bus šiek tiek pakeisti savo procesą. 523 00:44:03,930 --> 00:44:07,880 Taip, tada, po to, kai jūs einate per visą kelią ir, kai paspausite į failo pabaigą, 524 00:44:07,880 --> 00:44:11,570 tada tai, ką jūs norite padaryti, tai jūs norite uždaryti visus failus, kurie šiuo metu atidaryti. 525 00:44:11,570 --> 00:44:14,100 Kad tikriausiai bus paskutinis JPEG failas, kad jūs turite, 526 00:44:14,100 --> 00:44:18,930 taip pat kartotekoje, kad jūs buvote, susijusius su. 527 00:44:21,940 --> 00:44:28,670 >> Paskutinė kliūtis, kad mes turime spręsti, tai, kaip iš tikrųjų padaryti JPEG rinkmeną 528 00:44:28,670 --> 00:44:31,950 ir kaip iš tikrųjų stumti jį į aplanką. 529 00:44:33,650 --> 00:44:39,850 Pset reikalauja, kad kiekvienas JPEG, kad jums rasti tokiu formatu, 530 00:44:39,850 --> 00:44:43,990 kur jūs turite numerį. jpg. 531 00:44:43,990 --> 00:44:50,750 Skaičius, net jei tai 0, mes jį vadiname 000.jpg. 532 00:44:50,750 --> 00:44:55,730 Jei rasite JPEG jūsų programoje, 533 00:44:55,730 --> 00:44:58,040 jūs ketinate norite jį pavadinti, kad ji rado. 534 00:44:58,040 --> 00:44:59,700 Ką tai reiškia? 535 00:44:59,700 --> 00:45:03,530 Turime rūšies sekti, kiek mes pastebėjome, 536 00:45:03,530 --> 00:45:08,680 ir koks skaičius turėtų būti kiekvieno JPEG. 537 00:45:08,680 --> 00:45:13,800 Čia mes ketiname pasinaudoti sprintf funkcija. 538 00:45:13,800 --> 00:45:17,480 Panašus į printf, kurioje tiesiog rūšies spaudinių vertė į terminalą, 539 00:45:17,480 --> 00:45:23,910 sprintf spausdina failą į aplanką. 540 00:45:23,910 --> 00:45:30,870 Ir kas tai daryti, jei aš turėjo sprintf, pavadinimą, ir tada ten eilutė 541 00:45:30,870 --> 00:45:36,660 spausdinti 2.jpg. 542 00:45:36,660 --> 00:45:41,020 Darant prielaidą, kad aš uždarytas mano failus teisingai, 543 00:45:41,020 --> 00:45:47,210 kad būtų tokia failą, kad aš buvo raštu. 544 00:45:47,210 --> 00:45:50,320 Tačiau vienas dalykas yra, kad kodas, kad aš čia 545 00:45:50,320 --> 00:45:53,360 ne visai patenkinti pset reikalavimus. 546 00:45:53,360 --> 00:46:02,410 Pset reikalauja, kad antrasis JPEG failas turi būti pavadintas 002, o ne tik 2. 547 00:46:02,410 --> 00:46:09,160 Taigi, kai jūs spausdinti pavadinimą, tada galbūt jūs galbūt norėsite šiek tiek pakeisti vietos rezervavimo ženklą. 548 00:46:09,160 --> 00:46:18,140 >> Ar kas nors prisiminti, kaip mes leidžiame papildomų tarpų, kai mes ką nors atspausdinti? 549 00:46:18,140 --> 00:46:22,530 Taip. >> [Studentas] Jūs įdedate 3 tarp procento ženklą ir 2. >> Taip, puikus. 550 00:46:22,530 --> 00:46:25,610 Jūs įdėti 3 Šiuo atveju, nes norime vietos 3. 551 00:46:25,610 --> 00:46:32,590 % 3D tikriausiai suteiks jums 002.jpg vietoj 2. 552 00:46:32,590 --> 00:46:40,120 Į sprintf funkcija yra iš tikrųjų pirmasis argumentas char masyvas, 553 00:46:40,120 --> 00:46:42,520 mes anksčiau žinojo kaip eilutės. 554 00:46:42,520 --> 00:46:50,700 Tas bus, tipo daugiau kaip laikinojo saugojimo, tiesiog laikyti gautą eilutę. 555 00:46:50,700 --> 00:46:54,950 Jums nebus tikrai būti susijusios su tuo, bet jums reikia jį įtraukti. 556 00:46:54,950 --> 00:47:00,710 >> Žinant, kad kiekvienas failo pavadinimas turi skaičių, kuris trunka tris simbolius, 557 00:47:00,710 --> 00:47:06,770 ir tada. jpg, kaip ilgai šis masyvas? 558 00:47:09,070 --> 00:47:14,310 Metimas iš numerį. Kiek simbolių pavadinime, pavadinimo? 559 00:47:18,090 --> 00:47:26,320 Taigi čia 3 hashtags, laikotarpis, jpg. >> [Studentas] 7. >> 7. Ne visai taip. 560 00:47:26,320 --> 00:47:32,000 Mes ketiname norite 8, nes mes norime, taip pat, kad būtų galima null terminatorius. 561 00:47:45,340 --> 00:47:49,730 >> Galiausiai, tiesiog atkreipti dėmesį į procesą, kad jums daryti už atgauti, 562 00:47:49,730 --> 00:47:55,420 turite kokių nors pradžią informaciją. 563 00:47:55,420 --> 00:48:02,460 Jūs ir toliau, kol rasite JPEG failas pradžią, 564 00:48:02,460 --> 00:48:07,900 ir kad gali būti kurios nors vienos iš dviejų pradedant sekas. 565 00:48:07,900 --> 00:48:12,510 Jūs ir toliau skaityti. Kiekvienas pasviras brūkšnys čia sudaro 512 baitų. 566 00:48:12,510 --> 00:48:22,630 Jūs ir toliau skaityti, nuolat skaityti, kol jūs susitinkate kitą pradinę seką. 567 00:48:22,630 --> 00:48:29,790 Kai jūs turite, kad jums baigti esamą JPEG - šiuo atveju, tai raudona, 568 00:48:29,790 --> 00:48:31,030 todėl norite baigti. 569 00:48:31,030 --> 00:48:35,540 Norite sprintf pavadinimu, į savo pset4 aplanką, 570 00:48:35,540 --> 00:48:41,580 tada jūs norite atidaryti naują JPEG ir tada toliau skaityti 571 00:48:41,580 --> 00:48:46,370 kol jūs susitinkate kitą. 572 00:48:46,370 --> 00:48:49,040 Laikyti svarstymą, laikyti svarstymą, 573 00:48:49,040 --> 00:48:56,290 ir galiausiai, galų gale, jūs ketinate pasiekti bylos pabaigoje, 574 00:48:56,290 --> 00:49:00,360 ir todėl jūs norite uždaryti paskutinį JPEG, kad dirbote, 575 00:49:00,360 --> 00:49:08,380 sprintf kad į savo pset4 aplanke, ir tada pažvelgti į visas nuotraukas, kad jūs Dotarłeś. 576 00:49:08,380 --> 00:49:12,050 Šios nuotraukos yra iš tikrųjų nuotraukos CS50 darbuotojų, 577 00:49:12,050 --> 00:49:16,430 ir todėl tai yra bonus įdomus iš pset dalis ateina 578 00:49:16,430 --> 00:49:26,310 yra tai, kad jūs konkuruoja jūsų sekcijose rasti nuotraukas TFS 579 00:49:26,310 --> 00:49:34,610 ir fotografuoti su jais, siekiant įrodyti, kad jūs padaryti, kad pset 580 00:49:34,610 --> 00:49:37,030 ir todėl jūs galite pamatyti, kurie darbuotojai yra paveikslėliuose. 581 00:49:37,030 --> 00:49:41,510 Taip, tada jūs fotografuoti su darbuotojais. Kartais turėsite persekioti juos žemyn. 582 00:49:41,510 --> 00:49:44,680 Galbūt kai kurie iš jų bus bandyti pabėgti nuo jūsų. 583 00:49:44,680 --> 00:49:47,320 Fotografuojate su jais. 584 00:49:47,320 --> 00:49:51,190 Tai vyksta. Tai ne dėl kai pset. 585 00:49:51,190 --> 00:49:53,340 Terminas bus paskelbta spec. 586 00:49:53,340 --> 00:49:58,060 Tada kartu su savo skyriuje, priklausomai nuo to, skyriuje užima daugiausia nuotraukas 587 00:49:58,060 --> 00:50:04,430 su daugeliu darbuotojų laimės gana awesome prizą. 588 00:50:04,430 --> 00:50:08,890 Tai tipo paskata gauti jūsų pset4 baigtas kuo greičiau 589 00:50:08,890 --> 00:50:10,820 nes tada jūs galite gauti iki verslo 590 00:50:10,820 --> 00:50:14,570 visų skirtingų CS50 darbuotojų medžioklės žemyn. 591 00:50:14,570 --> 00:50:17,500 Kad tai nėra privaloma, tačiau, todėl, kai jūs gaunate nuotraukas, 592 00:50:17,500 --> 00:50:20,310 tada baigsite su pset4. 593 00:50:20,310 --> 00:50:23,970 >> Ir aš baigė su 4 Walkthrough, todėl ačiū jums visiems, kad atvykote. 594 00:50:23,970 --> 00:50:29,330 Sėkmės Teismai. [Plojimai] 595 00:50:29,330 --> 00:50:31,000 [CS50.TV]