1 00:00:00,000 --> 00:00:07,810 2 00:00:07,810 --> 00:00:09,840 >> JASON HIRSCHHORN: Welcome, të gjithë, për të Javës 6. 3 00:00:09,840 --> 00:00:14,790 Unë jam i lumtur të shoh se jeni të gjithë të gjallë dhe të mirë pas Quiz 0, sepse unë e di se 4 00:00:14,790 --> 00:00:15,810 ishte pak i përafërt. 5 00:00:15,810 --> 00:00:18,370 Por fatmirësisht, ju të gjithë e bëri tepër të mirë. 6 00:00:18,370 --> 00:00:21,680 Dhe në mënyrë që është e mrekullueshme. 7 00:00:21,680 --> 00:00:25,840 Nëse ju jeni në seksionin tim, unë kam dhënë më nga ju të mbështetur kuize tuaj tashmë. 8 00:00:25,840 --> 00:00:28,050 >> Një çift nga ju, unë jam takuar pas klasës. 9 00:00:28,050 --> 00:00:32,360 Dhe nëse ju jeni një student i zgjerimit dhe ju nuk keni marrë quiz tuaj mbrapa 10 00:00:32,360 --> 00:00:35,490 ende, TF juaj është ndoshta duke punuar në atë dhe nota atë, dhe do të merrni atë 11 00:00:35,490 --> 00:00:36,490 për ju së shpejti. 12 00:00:36,490 --> 00:00:39,650 Kështu studentët e mi extension që janë shikuar tani - me shpresë të jetojnë - 13 00:00:39,650 --> 00:00:42,880 Unë do të marrë kuize tuaj pak si. 14 00:00:42,880 --> 00:00:45,670 >> Axhenda jonë për sot është si më poshtë. 15 00:00:45,670 --> 00:00:50,170 Së pari, ne do të shkoj për disa Burimet që CS50 ofron për ju. 16 00:00:50,170 --> 00:00:54,590 Ne jemi duke shkuar për të shkuar mbi Quiz 0 ardhshëm, dhe Unë do të përgjigjen për çdo pyetje askujt 17 00:00:54,590 --> 00:00:57,360 ka lidhje me probleme të veçanta. 18 00:00:57,360 --> 00:01:02,050 Dhe atëherë, ne do të shkojnë mbi file I / O dhe problemi vendosur 5. 19 00:01:02,050 --> 00:01:07,360 Këto dy tema e fundit do të marrë deri pjesa më e madhe e seksionit sot. 20 00:01:07,360 --> 00:01:11,680 >> I vënë këtë listë deri çdo javë si një kujtesë për ju të gjithë, por e kryesore 21 00:01:11,680 --> 00:01:14,650 seksion, ne kemi vetëm 90 minuta - ne nuk janë në gjendje të mbulojnë çdo gjë që unë 22 00:01:14,650 --> 00:01:16,280 do të duan për të mbuluar për ju djema. 23 00:01:16,280 --> 00:01:21,170 Por ne kemi një ton të burimeve për ju për të nxjerrë mbi të si ju të merrni të dini 24 00:01:21,170 --> 00:01:24,000 materiale dhe të punës përmes problemi juaj vendos. 25 00:01:24,000 --> 00:01:30,810 >> Një kujtim që unë kam në internet një tekst kuti, e krijuar për ju që të plotësoni në qoftë se ju 26 00:01:30,810 --> 00:01:33,250 keni ndonjë reagime për mua, pozitiv apo 27 00:01:33,250 --> 00:01:35,180 konstruktive, në lidhje me nenin. 28 00:01:35,180 --> 00:01:38,600 Kjo URL është e vendosur të drejtë këtu. 29 00:01:38,600 --> 00:01:43,250 Pra ju lutem, të marrë një moment në qoftë se ju keni ndonjë reagime, nëse gjatë seksionit, 30 00:01:43,250 --> 00:01:48,030 ose pas, ose pasi të keni shikuar këtë video në internet, për të më jepni përshtypjet tuaja. 31 00:01:48,030 --> 00:01:52,100 I really appreciate çdo dhe të gjithë atë. 32 00:01:52,100 --> 00:01:55,730 >> Kështu që unë kam qenë që ka biseda të vogla me një shumë të tim 33 00:01:55,730 --> 00:01:59,350 Nxënësit në të gjithë javës - si unë dorë kuize mbrapa, duke folur për 34 00:01:59,350 --> 00:02:01,480 Sigurisht, duke parë se si ju jeni duke bërë. 35 00:02:01,480 --> 00:02:05,120 Dhe një temë ka dalë mbi dhe mbi ne duke folur për - në 36 00:02:05,120 --> 00:02:05,660 të veçantë - 37 00:02:05,660 --> 00:02:07,710 Problemi vendos. 38 00:02:07,710 --> 00:02:13,090 Dhe unë kam encapsulated këtë temë në bordin tani. 39 00:02:13,090 --> 00:02:16,630 >> Në thelb, ka një ndryshim në mes të kthyer në diçka që është e 40 00:02:16,630 --> 00:02:19,590 bëhet si duhet dhe diçka që është bërë mirë. 41 00:02:19,590 --> 00:02:22,920 Shumica e njerëzve kanë bërë fantastike në aspektin e saktësisë - 42 00:02:22,920 --> 00:02:25,460 5-të ose 4-të në të gjitha psets. 43 00:02:25,460 --> 00:02:27,930 Shumica e njerëzve janë duke u ato të gjitha të kohës. 44 00:02:27,930 --> 00:02:31,150 >> Megjithatë, vetëm për shkak se ju keni bërë diçka e drejtë nuk do të thotë që ju keni 45 00:02:31,150 --> 00:02:34,450 bërë diçka si elegante, ose efikase, apo si pastër si ju 46 00:02:34,450 --> 00:02:35,270 mund të ketë bërë atë. 47 00:02:35,270 --> 00:02:36,790 Dhe kjo është ajo design - 48 00:02:36,790 --> 00:02:39,230 dhe në një shkallë më të vogël, stil - 49 00:02:39,230 --> 00:02:40,450 Akset janë për. 50 00:02:40,450 --> 00:02:45,130 Kështu që unë jam shtyrë ju të gjithë, dhe NGP tjera janë shtyrë ju djema, për të jo vetëm nga ana e tij 51 00:02:45,130 --> 00:02:48,320 në gjërat që janë të sakta, por të kthehet në gjërat që janë të koduara mirë. 52 00:02:48,320 --> 00:02:53,060 >> Jo duke bërë të panevojshme për sythe, nuk recalculating variabla nëse është 53 00:02:53,060 --> 00:02:53,800 ju nuk keni për të. 54 00:02:53,800 --> 00:02:58,520 Për shembull, duke kërkuar përsëri në problemit të vendosur 4, kur vënë tulla në 55 00:02:58,520 --> 00:03:03,070 ekran, çdo rresht - çdo tulla në një rresht duke pasur parasysh të njëjtën gjë ka koordinatën y - 56 00:03:03,070 --> 00:03:04,390 njëjtën lartësi koordinuar. 57 00:03:04,390 --> 00:03:07,930 >> Kështu që koordinatën y nuk ka nevojë të të llogaritet brenda të brendshme 58 00:03:07,930 --> 00:03:11,070 mbivendosur për lak që ju të ngjarë përdorur për të vënë ato tulla në ekran. 59 00:03:11,070 --> 00:03:14,030 Ajo ka nevojë vetëm për të llogaritet çdo herë që kaloi një rresht, ose 60 00:03:14,030 --> 00:03:15,200 lëvizur poshtë një rresht. 61 00:03:15,200 --> 00:03:19,760 Pra, thonë se në qoftë se ka 10 tulla në një rresht, çdo tullë mund të ketë të njëjtën 62 00:03:19,760 --> 00:03:22,260 y-koordinuar, dhe se y-koordinuar vetëm mund të llogaritet 63 00:03:22,260 --> 00:03:23,550 një herë për të gjithë ata. 64 00:03:23,550 --> 00:03:27,810 >> Ajo nuk ka nevojë për të llogaritet 10 herë, as që llogaritja nevojë 65 00:03:27,810 --> 00:03:30,220 të ndodhë në aktuale funksion thirrje - 66 00:03:30,220 --> 00:03:33,020 thirrje e re funksion gracked. 67 00:03:33,020 --> 00:03:37,820 Pra, nëse kjo ishte pak konfuze për ju, më përgjithësisht, gjëra që 68 00:03:37,820 --> 00:03:40,730 nuk duhet të ndodhë çdo herë të vetme ju shkoni nëpër një lak PËR nuk duhet të jetë 69 00:03:40,730 --> 00:03:42,900 vënë brenda lak PËR, dhe nuk duhet të ndodhë çdo herë që shkoni 70 00:03:42,900 --> 00:03:44,080 përmes lak PËR. 71 00:03:44,080 --> 00:03:49,270 >> Një tjetër shembull i mirë dizajn pamë në Java 3 për 15, ju mund të mbani 72 00:03:49,270 --> 00:03:50,500 udhë të zero. 73 00:03:50,500 --> 00:03:53,600 Pra, kur ju nisja e bordit, ju të shpëtuar - në një ndryshore globale, ndoshta - 74 00:03:53,600 --> 00:03:56,140 x dhe y koordinatën i zero. 75 00:03:56,140 --> 00:03:57,520 Dhe atëherë sa herë që ju - 76 00:03:57,520 --> 00:04:00,310 në funksion tuaj masë, sa herë që ju bëni një veprim i suksesshëm, ju update 77 00:04:00,310 --> 00:04:02,040 vendndodhjen e zero. 78 00:04:02,040 --> 00:04:06,240 >> Kjo do t'ju shpëtojë nga detyrimi për të bërë mbivendosur për sythe për të kërkuar përmes 79 00:04:06,240 --> 00:04:10,700 hipte në çdo kohë në funksion tuaj masë dhe për të gjetur zero, ose të gjejnë tjegull, 80 00:04:10,700 --> 00:04:12,460 dhe pastaj shikoni ç'pritet më tej në të. 81 00:04:12,460 --> 00:04:16,329 Në vend të kësaj, ju keni vendndodhjen e zero, ju vetëm mund të shikoni më lart, poshtë, 82 00:04:16,329 --> 00:04:21,160 dhe në të majtë dhe të djathtë të saj, për të gjetur tjegull ju po kërkoni. 83 00:04:21,160 --> 00:04:24,970 >> Pra, për sa i përket programeve që ne jemi shkrim, ata kurrë nuk janë mjaft e madhe 84 00:04:24,970 --> 00:04:28,580 se disa nga këto vendime të projektimit janë me të vërtetë do të pengojë tuaj 85 00:04:28,580 --> 00:04:31,670 program, ose të bëjë atë të kandiduar më ngadalë, apo ndoshta edhe të dalë jashtë kujtesës. 86 00:04:31,670 --> 00:04:35,030 Por ne jemi ende duke shtyrë ju djema për të shkruar si elegante dhe 87 00:04:35,030 --> 00:04:36,450 Kodi efikas të jetë e mundur. 88 00:04:36,450 --> 00:04:39,910 >> Pra, nëse ju bëni të përfundojë duke shkruar gjëra që kanë një mënyrë të konsiderueshme më të mëdha 89 00:04:39,910 --> 00:04:44,660 Shtrirja, ata do të shkruhet me të mirë projektimit përveç për të qenë të sakta. 90 00:04:44,660 --> 00:04:46,300 Pra një numër i keni sjellë atë jashtë. 91 00:04:46,300 --> 00:04:48,560 Kjo është diçka që ne jemi duke kërkuar për - diçka që ne do të vazhdojmë të 92 00:04:48,560 --> 00:04:49,840 ju djema në shtytje. 93 00:04:49,840 --> 00:04:52,460 >> Nëse ndonjëherë keni ndonjë pyetje në lidhje hartimin e programit tuaj, të ndjehen të lirë 94 00:04:52,460 --> 00:04:56,870 për të arritur deri tek unë, dhe unë jam i lumtur për të ecin nëpër programin tuaj me ju, 95 00:04:56,870 --> 00:05:01,320 dhe të nxjerr në pah disa të dizajnit Vendimet që ju bëra, dhe të ju jap disa 96 00:05:01,320 --> 00:05:06,240 sugjerime se si për të bërë edhe Vendimet më të mirë të projektimit. 97 00:05:06,240 --> 00:05:08,870 >> Pra, ne jemi duke shkuar për të shkuar përpara për të folur për Quiz 0. 98 00:05:08,870 --> 00:05:11,300 Para se të bëjmë këtë, e bën dikush keni ndonjë pyetje në lidhje me atë që 99 00:05:11,300 --> 00:05:14,252 Unë kam mbuluar deri më tani? 100 00:05:14,252 --> 00:05:21,500 >> [Shushurimës ZHURMA] 101 00:05:21,500 --> 00:05:22,750 >> JASON HIRSCHHORN: Shtatë sekonda. 102 00:05:22,750 --> 00:05:23,250 OK. 103 00:05:23,250 --> 00:05:24,970 Le të flasim për Quiz 0 për një grimë. 104 00:05:24,970 --> 00:05:26,700 Shumica prej jush kanë Quiz tuaj 0 e mbrapa. 105 00:05:26,700 --> 00:05:29,820 Nëse ju nuk e bëjnë, me shpresë ju kujtohet atë pak. 106 00:05:29,820 --> 00:05:34,770 Por në qoftë se ju keni marrë Quiz 0, atëherë ju gjithashtu kanë qasje në internet në PDF 107 00:05:34,770 --> 00:05:35,890 zgjidhjet mostër. 108 00:05:35,890 --> 00:05:39,480 >> A ka dikush ndonjë pyetje para se të ne hidhen në materiale të javës, në lidhje me 109 00:05:39,480 --> 00:05:41,520 një problem i veçantë për Quiz 0 - 110 00:05:41,520 --> 00:05:44,630 pse përgjigja është se çfarë është ajo? 111 00:05:44,630 --> 00:05:47,255 A është dikush hutuar për ndonjë gjë? 112 00:05:47,255 --> 00:05:50,230 Edhe në qoftë se ju mori problemin e drejtë, por ashtu do të donte mua për të shpjeguar atë pak 113 00:05:50,230 --> 00:05:52,640 më shumë, unë jam i lumtur për të bërë këtë tani. 114 00:05:52,640 --> 00:05:57,800 >> Kështu që unë kam kërkuar për të ju djema vijnë të përgatitur me disa 115 00:05:57,800 --> 00:05:59,440 mendime për Quiz 0. 116 00:05:59,440 --> 00:06:02,660 Pra, kush do të donte të na marrë filloi me një pyetje ose 117 00:06:02,660 --> 00:06:04,655 komentojë rreth Quiz 0? 118 00:06:04,655 --> 00:06:07,435 119 00:06:07,435 --> 00:06:10,410 >> [LETËR shushurimës] 120 00:06:10,410 --> 00:06:11,470 >> JASON HIRSCHHORN: Jo të gjithë e bëri të përkryer. 121 00:06:11,470 --> 00:06:12,720 Kështu që unë e di [qesh] 122 00:06:12,720 --> 00:06:15,950 nuk duhet të ketë disa pyetje rreth Quiz 0. 123 00:06:15,950 --> 00:06:27,940 124 00:06:27,940 --> 00:06:28,590 OK. 125 00:06:28,590 --> 00:06:29,210 Po. 126 00:06:29,210 --> 00:06:29,600 Ompica. 127 00:06:29,600 --> 00:06:30,520 >> OMPICA: Numri 10. 128 00:06:30,520 --> 00:06:33,560 >> JASON HIRSCHHORN: Numri 10. 129 00:06:33,560 --> 00:06:35,400 Cili e kishte numrin 10? 130 00:06:35,400 --> 00:06:35,840 >> OMPICA: - 131 00:06:35,840 --> 00:06:36,420 >> JASON HIRSCHHORN: I haven't - 132 00:06:36,420 --> 00:06:37,670 >> OMPICA: përfshijnë - 133 00:06:37,670 --> 00:06:40,060 134 00:06:40,060 --> 00:06:42,180 >> JASON HIRSCHHORN: Numri 10 ka qenë tetë për të i - shkruar tetë të i? 135 00:06:42,180 --> 00:06:42,980 >> OMPICA: Po. 136 00:06:42,980 --> 00:06:43,630 >> JASON HIRSCHHORN: OK. 137 00:06:43,630 --> 00:06:47,390 Pra, një pyetje tjetër që ju mund të keni pyeti ishte parashikues jam unë? 138 00:06:47,390 --> 00:06:48,630 Përgjigja është po. 139 00:06:48,630 --> 00:06:52,060 Në seksionin para quiz, e pyeta ju djema për të kodojnë dy Sterling dhe 140 00:06:52,060 --> 00:06:52,980 tetë për i. 141 00:06:52,980 --> 00:06:54,770 Dy prej tyre ka ndodhur me shfaqen në quiz. 142 00:06:54,770 --> 00:06:57,510 Kështu që shpresojmë se, ju paguar vëmendje për atë. 143 00:06:57,510 --> 00:07:02,520 >> Dhe në qoftë se keni pasur, atëherë ju do të keni ndoshta bëhet edhe për ata të dy. 144 00:07:02,520 --> 00:07:06,030 Por tetë të i, ne nuk të vërtetë kodin ajo në klasë, por ajo ishte, përsëri, 145 00:07:06,030 --> 00:07:07,500 pyetur në quiz. 146 00:07:07,500 --> 00:07:13,270 Pra disa gjëra për të marrë vini re kur kodim tetë për i. 147 00:07:13,270 --> 00:07:17,320 Gjëja e parë, për pyetjen, ishte që ju nevojitet për të kontrolluar nëse vargu 148 00:07:17,320 --> 00:07:20,300 ishte e barabartë me null. 149 00:07:20,300 --> 00:07:28,060 >> Një çift njerëz u përpoqën të kontrolloni më vonë në në programin e në qoftë se s simboli i ishte - 150 00:07:28,060 --> 00:07:30,940 kështu që një karakter të veçantë në se string - ishte e barabartë me null. 151 00:07:30,940 --> 00:07:35,600 Por mos harroni, kjo null është në thelb - është e mirë për të menduar për 152 00:07:35,600 --> 00:07:39,100 null si një tregues zero - një tregues për zero - 153 00:07:39,100 --> 00:07:40,920 diku në kujtesë, ku ju nuk mund të hyni. 154 00:07:40,920 --> 00:07:44,730 >> Pra, nëse diçka është e barabartë me null, ju e di se ajo nuk është nisur, 155 00:07:44,730 --> 00:07:46,430 ose nuk ka asgjë atje. 156 00:07:46,430 --> 00:07:50,950 Pra, është një yll char, s simboli i është një char. 157 00:07:50,950 --> 00:07:57,410 Kështu që ka kuptim për të krahasuar s për të null, por kllapa nuk s i te null. 158 00:07:57,410 --> 00:07:59,390 Por përsëri - kështu që ishte gjëja e parë që ju është dashur për të bërë - 159 00:07:59,390 --> 00:08:03,510 kontrolloni për të siguruar që ju të vërtetë mori një varg të vërtetë. 160 00:08:03,510 --> 00:08:08,020 >> Tjetra, ju të kërkuar për të shkuar nëpërmjet çdo karakter në vargun. 161 00:08:08,020 --> 00:08:12,500 Dhe kështu që do të jetë si një s kllapa Unë, për shembull, në qoftë se i është iterator tuaj. 162 00:08:12,500 --> 00:08:17,250 Dhe të marrë atë karakter, dhe të marrë vlerën e saj aktuale. 163 00:08:17,250 --> 00:08:21,800 Ju keni atë ruhet si një char, por vlera ASCII për zero - 164 00:08:21,800 --> 00:08:23,010 zero si karakter - 165 00:08:23,010 --> 00:08:25,450 nuk është në të vërtetë zero numer i plote. 166 00:08:25,450 --> 00:08:28,700 Kjo është një numër tjetër që ju mund të shikoni në tabelën ASCII. 167 00:08:28,700 --> 00:08:30,790 >> Pra, një mënyrë për të korrigjuar për këtë - ndoshta mënyra më e mirë për të korrigjuar për 168 00:08:30,790 --> 00:08:33,760 se - po hiqni asgjë vlera karakter - 169 00:08:33,760 --> 00:08:35,140 zero si një karakter. 170 00:08:35,140 --> 00:08:38,490 Quote Pra minus vetme, zero, një tjetër apostrofë. 171 00:08:38,490 --> 00:08:44,620 Kjo do të marrë çfarëdo numri që ju keni si një char, dhe të merrni atë të barabartë me 172 00:08:44,620 --> 00:08:46,720 Numri si një numër të plotë aktuale. 173 00:08:46,720 --> 00:08:50,300 >> Dhe kjo është shumë e ngjashme me qasjen e shumë njerëz mori në 174 00:08:50,300 --> 00:08:52,800 Problemi vendosur 2, me Cezarit dhe Viginere - 175 00:08:52,800 --> 00:08:55,160 ato ciphers, kur ju u rradhës e tyre. 176 00:08:55,160 --> 00:08:59,210 Pra, pasi që e keni këtë në një numër nga zero deri nëntë, pastaj - varësi 177 00:08:59,210 --> 00:09:02,750 ku shkon në numrin përfundimtar - ju duhet të shumëfishohen atë 178 00:09:02,750 --> 00:09:04,120 me një fuqi prej 10. 179 00:09:04,120 --> 00:09:07,340 >> Disa njerëz u zhvendos nga mbrapa për të para, dhe shumëzuar individuale 180 00:09:07,340 --> 00:09:08,940 Numri me një fuqi prej 10. 181 00:09:08,940 --> 00:09:11,160 Disa njerëz u zhvendos nga para për të mbështetur - 182 00:09:11,160 --> 00:09:14,430 dhe kështu mori më të lartë urdhërojë numrat e parë - 183 00:09:14,430 --> 00:09:18,190 dhe do të shpëtojë ata që janë në një globale kundër ndryshueshme. 184 00:09:18,190 --> 00:09:20,880 Dhe pastaj çdo herë përmes PER loop, shumohen se gjigandi globale 185 00:09:20,880 --> 00:09:25,640 kundërvënë ndryshore me 10, për të bërë hapësirë ​​për char ardhshëm. 186 00:09:25,640 --> 00:09:28,750 >> Kështu që ishte pak konfuze, pa me shkrim atë në bord. 187 00:09:28,750 --> 00:09:31,550 Por zgjidhja e mostrës është në dispozicion për ju. 188 00:09:31,550 --> 00:09:32,870 Por ata ishin gjërat e mëdha ne kemi qenë duke kërkuar për. 189 00:09:32,870 --> 00:09:36,400 Gjithashtu një kontroll për t'u siguruar se çdo Karakteri individ ishte me të vërtetë një 190 00:09:36,400 --> 00:09:39,780 Karakteri mes zero dhe nëntë, dhe nuk disa karakter tjetër, si një A, 191 00:09:39,780 --> 00:09:41,160 për shembull. 192 00:09:41,160 --> 00:09:43,150 >> Këto ishin gjërat që ne po kërkonin në këtë pyetje. 193 00:09:43,150 --> 00:09:46,510 194 00:09:46,510 --> 00:09:47,980 A do të përgjigjem pyetjes tuaj? 195 00:09:47,980 --> 00:09:49,320 >> OMPICA: Po. 196 00:09:49,320 --> 00:09:50,240 >> JASON HIRSCHHORN: OK. 197 00:09:50,240 --> 00:09:53,940 A ka pyetje të tjera rreth Quiz 0? 198 00:09:53,940 --> 00:09:55,440 Po në lidhje me hartimin e? 199 00:09:55,440 --> 00:09:56,740 Gjithkush hartimin e drejtë? 200 00:09:56,740 --> 00:09:58,370 Jo. 201 00:09:58,370 --> 00:09:58,840 Ka qenë një - 202 00:09:58,840 --> 00:10:01,010 [Qesh] 203 00:10:01,010 --> 00:10:03,265 Çdo pyetje në lidhje me proces hartimi? 204 00:10:03,265 --> 00:10:06,050 205 00:10:06,050 --> 00:10:06,966 Wow. 206 00:10:06,966 --> 00:10:11,090 >> [LETËR shushurimës] 207 00:10:11,090 --> 00:10:11,520 >> JASON HIRSCHHORN: Po. 208 00:10:11,520 --> 00:10:11,700 Michael. 209 00:10:11,700 --> 00:10:14,140 >> Michael: A është numri 7 - të rastit? 210 00:10:14,140 --> 00:10:16,500 >> JASON HIRSCHHORN: Numri 7. 211 00:10:16,500 --> 00:10:20,670 Numri 7 ishte marrë një numër të plotë të rastit. 212 00:10:20,670 --> 00:10:21,110 Excellent. 213 00:10:21,110 --> 00:10:25,630 Pra, ju jeni të dhënë një numër të plotë a dhe një b numër i plotë, dhe ju doni një të rastit 214 00:10:25,630 --> 00:10:28,710 integer midis a dhe b. 215 00:10:28,710 --> 00:10:31,740 Ne fakt mund të shkruaj këtë një të tillë në bordi, sepse kjo 216 00:10:31,740 --> 00:10:33,320 ishte një linjë e kodit - 217 00:10:33,320 --> 00:10:34,390 një mënyrë për të bërë atë. 218 00:10:34,390 --> 00:10:37,810 >> Pra, ne jemi duke dhënë drand si një funksion ne mund të përdorim. 219 00:10:37,810 --> 00:10:38,820 Dhe çfarë bën drand - 220 00:10:38,820 --> 00:10:40,290 duke supozuar kjo është seeded - 221 00:10:40,290 --> 00:10:42,316 çfarë do drand kthehet? 222 00:10:42,316 --> 00:10:44,840 >> Michael: Një noton nga 0.0 në 1.0. 223 00:10:44,840 --> 00:10:45,530 >> JASON HIRSCHHORN: Një numër - po. 224 00:10:45,530 --> 00:10:47,910 Një numër midis 0 dhe 1. 225 00:10:47,910 --> 00:10:51,760 Dhe kështu që ne kemi b dhe një. 226 00:10:51,760 --> 00:10:55,480 Dhe pastaj ne kemi numrin tonë të rastit midis 0 dhe 1 dhënë për ne nga drand. 227 00:10:55,480 --> 00:11:01,480 228 00:11:01,480 --> 00:11:06,630 Disa njerëz u përpoqën për të vënë b, ose minus b një, apo diçka brenda atyre 229 00:11:06,630 --> 00:11:07,960 kllapa. 230 00:11:07,960 --> 00:11:11,210 Kjo do të thotë se ata janë të Argumentet për këtë funksion. 231 00:11:11,210 --> 00:11:13,450 >> drand nuk merr argumente - si getString bën 232 00:11:13,450 --> 00:11:14,330 nuk marrin argumente. 233 00:11:14,330 --> 00:11:16,600 Pra, është vetëm Paren hapur, të ngushtë Paren - dhe që, në vetvete, është e 234 00:11:16,600 --> 00:11:17,330 thirrje funksion. 235 00:11:17,330 --> 00:11:19,770 Dhe kjo ju jep një numër midis 0 dhe 1. 236 00:11:19,770 --> 00:11:22,820 Natyrisht, ne kemi një gamë të tërë se numrat mund të in 237 00:11:22,820 --> 00:11:28,470 >> Thotë, nëse b eshte 10 dhe a eshte 5, ne vërtetë duan një numër me një sërë 5. 238 00:11:28,470 --> 00:11:36,940 Pra, gjëja tjetër që ne duhet të bëni është shumohen kjo nga varg b minus një. 239 00:11:36,940 --> 00:11:40,380 Pra, duke supozuar se është shumëzuar. 240 00:11:40,380 --> 00:11:42,590 Dhe kjo do të na japë një numër brenda një gamë të caktuar. 241 00:11:42,590 --> 00:11:46,610 Dhe kjo varg specifik të qenë Dallimi në mes të b minus një. 242 00:11:46,610 --> 00:11:50,030 >> Dhe së fundi, se do të të jap atë vetëm nga - thonë varg mes b minus a 243 00:11:50,030 --> 00:11:52,520 është 5, që do të na japin një numër nga 0 në 5. 244 00:11:52,520 --> 00:11:56,000 Por në qoftë se një është në fakt 5, ne kemi nevojë për të rritur ky varg deri ku është e 245 00:11:56,000 --> 00:12:01,380 në fakt menduar të jetë, duke shtuar një. 246 00:12:01,380 --> 00:12:02,580 Kështu që merr të drejtën logjikë. 247 00:12:02,580 --> 00:12:03,745 Dhe pastaj, do ju duhet një pyetje tjetër? 248 00:12:03,745 --> 00:12:04,547 >> Michael: Jo. 249 00:12:04,547 --> 00:12:06,010 Unë vetëm ndjehen me të vërtetë memec tani. 250 00:12:06,010 --> 00:12:06,405 [Qesh] 251 00:12:06,405 --> 00:12:06,730 >> JASON HIRSCHHORN: Jo. 252 00:12:06,730 --> 00:12:08,640 A nuk e ndjeni të vërtetë memec. 253 00:12:08,640 --> 00:12:10,560 Një numër i njerëzve të luftuar me këtë pyetje. 254 00:12:10,560 --> 00:12:13,920 Dhe pastaj, pyetja tjetër është, drand, ju tha, ju jep një noton - 255 00:12:13,920 --> 00:12:14,940 kthen një noton. 256 00:12:14,940 --> 00:12:18,020 Por ky funksion kërkohet në të vërtetë për një numër të plotë të kthehet. 257 00:12:18,020 --> 00:12:23,700 >> Ju nuk keni nevojë për të hedhur këtë në mënyrë të qartë për një numër të plotë, sepse këto 258 00:12:23,700 --> 00:12:29,090 Operacionet do të trajtojnë atë si të gjitha a noton - si një numër lundrues pikë. 259 00:12:29,090 --> 00:12:31,570 Ashtu si këtë vullneti - edhe nëse kjo është një numër i plotë, kjo do 260 00:12:31,570 --> 00:12:32,890 qoftë e saktë. 261 00:12:32,890 --> 00:12:34,000 Të gjitha shumëzimit do të punojnë. 262 00:12:34,000 --> 00:12:35,060 Ju nuk keni nevojë për të hedhur atë këtu. 263 00:12:35,060 --> 00:12:36,480 Në fakt, ju nuk duhet të hedhur atë. 264 00:12:36,480 --> 00:12:37,310 >> Kjo do të - 265 00:12:37,310 --> 00:12:40,750 në qoftë se ju do të hedhur një numër që është midis 0 dhe 1 - 266 00:12:40,750 --> 00:12:42,680 një numër të rastit, një pikë lundrues - 267 00:12:42,680 --> 00:12:47,850 atëherë ajo do të jetë ose vetëm 0 ose 1, kështu që ju do të humbni të gjithë që saktësi. 268 00:12:47,850 --> 00:12:50,120 Por në fund, kur të ktheheni, ajo automatikisht merr 269 00:12:50,120 --> 00:12:51,620 kthyer si një numër të plotë. 270 00:12:51,620 --> 00:12:56,870 Pra, ju nuk keni nevojë të bëni që hedh veten. 271 00:12:56,870 --> 00:13:00,810 >> Pra, kjo ishte përgjigja e se pyetja, numër 7. 272 00:13:00,810 --> 00:13:02,190 Çdo pyetje të tjera në Quiz 0? 273 00:13:02,190 --> 00:13:03,300 Po, Annie. 274 00:13:03,300 --> 00:13:05,050 >> Annie: Kur ne përdorim recursive - 275 00:13:05,050 --> 00:13:07,850 kur i përdorim sythe përsëritës? 276 00:13:07,850 --> 00:13:10,210 >> JASON HIRSCHHORN: Kur përdorni recursive - në mënyrë më të përgjithshme, 277 00:13:10,210 --> 00:13:14,110 pro dhe kundër të recursion kundrejt një qasje përsëritës. 278 00:13:14,110 --> 00:13:17,110 A mund dikush të ofrojë një pro apo con? 279 00:13:17,110 --> 00:13:19,460 Ju lutem? 280 00:13:19,460 --> 00:13:20,140 Nuk mund dikush. 281 00:13:20,140 --> 00:13:22,526 Kush mund të ofrojë një pro apo con? 282 00:13:22,526 --> 00:13:26,963 >> [LETËR shushurimës] 283 00:13:26,963 --> 00:13:29,730 >> STUDENT 1: rekursive është më pak coding - më pak të shtypni? 284 00:13:29,730 --> 00:13:33,170 >> JASON HIRSCHHORN: Pra, në përgjithësi, recursion në veçanti, një funksion - 285 00:13:33,170 --> 00:13:35,750 ose një algoritmi si bashkimi lloj - e cila jep veten 286 00:13:35,750 --> 00:13:37,300 në një qasje gjithkund rekursive - 287 00:13:37,300 --> 00:13:40,710 mund të jenë më të drejtpërdrejtë të kodit Recursively. 288 00:13:40,710 --> 00:13:43,940 Dhe vetëm të bëjë më shumë kuptim për të bërë atë Recursively. 289 00:13:43,940 --> 00:13:46,230 Kështu që do të ishte një pro për recursion. 290 00:13:46,230 --> 00:13:46,610 Të tjerët? 291 00:13:46,610 --> 00:13:47,467 Po? 292 00:13:47,467 --> 00:13:49,240 >> STUDENT 2: Con për recursion - 293 00:13:49,240 --> 00:13:50,940 Ai përdor më shumë memorie. 294 00:13:50,940 --> 00:13:52,200 >> JASON HIRSCHHORN: Pra, saktësisht e drejtë. 295 00:13:52,200 --> 00:13:55,720 Një funksion gjithkund rekursive do të mbajë duke shtuar rafte korniza në rafte. 296 00:13:55,720 --> 00:13:59,690 Pra, nëse ju jeni të veprojnë në një shumë të numrat, dhe kanë për të thirrur këtë 297 00:13:59,690 --> 00:14:02,560 funksionojë një shumë, atëherë ju me siguri do të marrë më shumë memorie, ndërsa 298 00:14:02,560 --> 00:14:05,810 një qasje përsëritës do të vënë vetëm një rafte kornizë në rafte, sepse 299 00:14:05,810 --> 00:14:08,420 të gjitha ndodh brenda një funksion. 300 00:14:08,420 --> 00:14:11,010 >> Çdo të tjera pro dhe kundra? 301 00:14:11,010 --> 00:14:11,500 Po. 302 00:14:11,500 --> 00:14:12,550 >> STUDENT 3: Pro për recursion. 303 00:14:12,550 --> 00:14:15,950 Ju nuk keni për të përcaktuar në të avancuar se sa herë 304 00:14:15,950 --> 00:14:17,660 Kodi desh të përsëriteshin. 305 00:14:17,660 --> 00:14:22,810 Ju mund të keni një numër të paracaktuar të herë që ju duhet të iterate, atëherë 306 00:14:22,810 --> 00:14:26,420 recursion është më e mirë, për shkak se ajo merr këtë rezultat. 307 00:14:26,420 --> 00:14:27,780 >> JASON HIRSCHHORN: Unë mendoj se kjo është e vërtetë. 308 00:14:27,780 --> 00:14:30,770 Por unë mendoj se në të dyja rastet ju kurrë nuk do të - 309 00:14:30,770 --> 00:14:33,290 ju ndoshta do të merrni disa të dhëna nga përdoruesit. 310 00:14:33,290 --> 00:14:35,990 Apo ky funksion do të ketë disa të dhëna që do të përcaktojë se sa herë ajo 311 00:14:35,990 --> 00:14:36,730 duhet të kandidojë. 312 00:14:36,730 --> 00:14:39,520 Pra në përgjithësi, ju nuk do kodin vështirë - edhe në një qasje përsëritës - si 313 00:14:39,520 --> 00:14:40,940 shumë herë se loop duhet të drejtohet. 314 00:14:40,940 --> 00:14:46,100 315 00:14:46,100 --> 00:14:48,670 >> A ju keni një tjetër keni qenë duke menduar për, Annie? 316 00:14:48,670 --> 00:14:49,330 OK. 317 00:14:49,330 --> 00:14:51,650 Pra, ata janë ndoshta dy - 318 00:14:51,650 --> 00:14:54,370 pro më i madh dhe më i madh con në një recursive kundrejt 319 00:14:54,370 --> 00:14:57,080 një qasje përsëritës. 320 00:14:57,080 --> 00:14:57,690 OK. 321 00:14:57,690 --> 00:14:59,465 Çdo gjë tjetër në Quiz 0? 322 00:14:59,465 --> 00:15:08,940 323 00:15:08,940 --> 00:15:09,920 >> Le të lëvizë. 324 00:15:09,920 --> 00:15:15,260 Dokumentit I / O. Nuk është një e mrekullueshme e shkurtër këtë javë në dosje I / O që shpresojmë se 325 00:15:15,260 --> 00:15:19,270 ju kane shikuar të shumta herë, dhe admiruar. 326 00:15:19,270 --> 00:15:22,910 Një punë e madhe shkoi në këtë, dhe unë kam dëgjuar se është insanely dobishme. 327 00:15:22,910 --> 00:15:25,740 Unë gjithashtu përfshinte lidhje në këtë rrëshqitje, në rast se ju nuk keni pasur një 328 00:15:25,740 --> 00:15:29,160 shans për të parë atë 10 herë. 329 00:15:29,160 --> 00:15:35,280 >> Pra, ne do të shkojë shkurtimisht mbi hapa të mëdha për hapjen dhe duke punuar 330 00:15:35,280 --> 00:15:38,400 me fotografi, dhe pastaj ne do të pikiatë në një problem kodimit para 331 00:15:38,400 --> 00:15:40,400 shqyrtimit të vendosur problemin. 332 00:15:40,400 --> 00:15:44,330 Pra, përsëri, unë jam duke shkuar për të vënë këtë deri në ekran, por unë jam duke shkuar për të folur për 333 00:15:44,330 --> 00:15:47,630 vetëm një minutë për atë që ne jemi duke bërë këtu me dosjen I/O-- 334 00:15:47,630 --> 00:15:49,090 çfarë do të thotë kjo? 335 00:15:49,090 --> 00:15:55,280 >> Kjo do të thotë se ne mund të krijojë tonë programe, dhe më pas kanë programet tona 336 00:15:55,280 --> 00:16:00,370 dalje, dhe nuk kanë bërë ndonjë ndikim në bota e jashtme e programit tonë. 337 00:16:00,370 --> 00:16:04,630 Por kur ne të fillojnë të punojnë me fotografi - edhe leximin e tyre në krijimin dhe 338 00:16:04,630 --> 00:16:10,460 ato - ne mund të kemi disa efekt në bota e jashtme e programit tonë. 339 00:16:10,460 --> 00:16:15,440 >> Ashtu si në qoftë se Microsoft Word nuk ishte në gjendje për të bërë të gjitha dokumentet Word, atëherë 340 00:16:15,440 --> 00:16:18,710 një herë Microsoft Word lë, të gjitha nga tuaj Puna do të jetë zhdukur, dhe kjo do të 341 00:16:18,710 --> 00:16:19,740 të vërtetë të jetë i kotë. 342 00:16:19,740 --> 00:16:23,620 Ne në fund të fundit duan të jenë në gjendje të shkruajnë programe të cilat mund të ndikojnë 343 00:16:23,620 --> 00:16:31,350 bota rreth tyre, edhe duke marrë në inputeve komplekse - në aspektin e dosjeve dhe 344 00:16:31,350 --> 00:16:37,080 nëpërmjet fotografi, dhe gjithashtu duke krijuar interesante dhe rezultatet bindëse - 345 00:16:37,080 --> 00:16:39,520 në aspektin e llojeve të ndryshme të dosjeve. 346 00:16:39,520 --> 00:16:43,730 >> Pra, kjo është arsyeja pse ne jemi duke filluar për të mësojnë se si të punojnë me fotografi. 347 00:16:43,730 --> 00:16:47,080 Më konkretisht, çfarë ne bëjmë është si më poshtë. 348 00:16:47,080 --> 00:16:47,680 Është shumë e thjeshtë. 349 00:16:47,680 --> 00:16:51,530 Ka vetëm disa hapa, dhe ata janë të listuar këtu në këtë kod. 350 00:16:51,530 --> 00:16:55,130 Pra, ne jemi duke shkuar për të shkuar nëpërmjet kjo linjë kod pas rreshti. 351 00:16:55,130 --> 00:16:57,630 >> Së pari, ju shihni theksuar - 352 00:16:57,630 --> 00:17:01,330 kur ju jeni duke punuar me një fotografi, pavarësisht nga lloji i dosjes është, 353 00:17:01,330 --> 00:17:02,670 ju keni nevojë për të hapur atë. 354 00:17:02,670 --> 00:17:05,130 Dhe kjo është me një thirrje për të fopen - 355 00:17:05,130 --> 00:17:05,950 të drejtë këtu. 356 00:17:05,950 --> 00:17:07,980 Ju përfshijë emrin e file. 357 00:17:07,980 --> 00:17:11,930 Nëse skedari nuk është në directory tuaj, apo dosje ku ky program 358 00:17:11,930 --> 00:17:15,910 jetën, atëherë ju gjithashtu duhet të përfshijë një rrugë për të ku fotografi që është. 359 00:17:15,910 --> 00:17:19,099 >> Ne do të supozojmë se ky file i quajtur "text.txt" - 360 00:17:19,099 --> 00:17:24,220 një dokument tekst të thjeshtë - është në njëjtën dosje si ky program është. 361 00:17:24,220 --> 00:17:26,859 Pra, kjo është një tjetër gjë për të mbajtur në mendje - se në qoftë se ju doni të hapur një skedë 362 00:17:26,859 --> 00:17:30,050 diku tjetër, ju në të vërtetë nevojë për për të përfshirë vendndodhjen e saj. 363 00:17:30,050 --> 00:17:33,520 >> Së dyti, ju mund të kalojë një argument për të fopen, dhe kjo është ajo që ju doni të bëni 364 00:17:33,520 --> 00:17:34,620 me dosjen. 365 00:17:34,620 --> 00:17:38,450 Ka tre argumente kryesore që ju jeni do të kalojë për të fopen. 366 00:17:38,450 --> 00:17:40,060 Kush mund të jepni për këta të tre? 367 00:17:40,060 --> 00:17:44,960 368 00:17:44,960 --> 00:17:47,130 Kush mund të më jepni një prej tyre? 369 00:17:47,130 --> 00:17:48,130 Po. 370 00:17:48,130 --> 00:17:50,010 >> STUDENT 4: Emri i file? 371 00:17:50,010 --> 00:17:50,440 >> JASON HIRSCHHORN: Na vjen keq. 372 00:17:50,440 --> 00:17:55,490 Tre argumentet kryesore që ju mund të kalojnë si argumenti i dytë për fopen. 373 00:17:55,490 --> 00:17:57,060 Ju jeni të drejtë - emri i skedarit është argumenti i parë. 374 00:17:57,060 --> 00:18:01,620 Por argumenti i dytë për fopen janë në përgjithësi tre vargjet, dhe - po. 375 00:18:01,620 --> 00:18:02,210 Aleja. 376 00:18:02,210 --> 00:18:03,490 >> Aleja: Një për append. 377 00:18:03,490 --> 00:18:06,840 >> JASON HIRSCHHORN: Një, në qoftë se ju doni të append në një skedë që tashmë ekziston. 378 00:18:06,840 --> 00:18:07,810 >> STUDENT 5: R për të lexuar. 379 00:18:07,810 --> 00:18:09,930 >> JASON HIRSCHHORN: R, në qoftë se ju dëshironi të lexoni nga një skedar. 380 00:18:09,930 --> 00:18:10,670 >> STUDENT 6: W për të shkruar. 381 00:18:10,670 --> 00:18:12,840 >> JASON HIRSCHHORN: Dhe w, në qoftë se ju dua të shkruaj në një skedar. 382 00:18:12,840 --> 00:18:17,570 Pra, në këtë rast, ne jemi me shkrim të dosjes, kështu që ne kemi w. 383 00:18:17,570 --> 00:18:22,360 Ju hapur atë, ju gjithashtu keni për të shpëtuar paraqesë diku, dhe kjo është me 384 00:18:22,360 --> 00:18:26,000 Kodi në anën e majtë të operatori detyrë - 385 00:18:26,000 --> 00:18:31,220 Unë jam duke krijuar një tregues për një skedar quajtur, në këtë rast, dosje. 386 00:18:31,220 --> 00:18:36,070 >> Ne nuk do të shqetësohen se çfarë këtë të gjitha shkronja kapitale gjë FILE është. 387 00:18:36,070 --> 00:18:40,600 Mjafton të them, kjo është një kohë të gjatë lumë të zero dhe ato. 388 00:18:40,600 --> 00:18:44,970 Dhe kjo është se si ne do të vepruar atë dhe për të kuptuar atë. 389 00:18:44,970 --> 00:18:47,300 >> Gjë tjetër ne duhet të bëjmë - dhe kjo është tepër e rëndësishme - 390 00:18:47,300 --> 00:18:49,070 sa herë që ju të hapur një skedë - 391 00:18:49,070 --> 00:18:54,250 në fakt, sa herë që ju telefononi malloc, për shembull, dhe për të marrë disa kujtesës dhe të përpiqen 392 00:18:54,250 --> 00:18:57,980 dhe për të shpëtuar atë në një tregues, ju gjithmonë dëshironi të kontrolloni për të siguruar që kjo 393 00:18:57,980 --> 00:19:00,230 funksion nuk u kthye null. 394 00:19:00,230 --> 00:19:05,230 >> Pra, në këtë rast, ne jemi të kontrolluar për të sigurt se ne fakt u hap 395 00:19:05,230 --> 00:19:10,230 paraqesë në mënyrë korrekte, dhe nuk kishte asnjë gabim në programin tonë. 396 00:19:10,230 --> 00:19:15,160 Tjetra, një herë ne kemi kontrolluar për të siguruar se ne kemi një fotografi pune, ne mund të 397 00:19:15,160 --> 00:19:18,520 shkruaj për të, ose lexuar nga, ose append në dosjen. 398 00:19:18,520 --> 00:19:24,270 Në këtë rast, unë jam thjesht shtypje një linjë tek kjo skedë. 399 00:19:24,270 --> 00:19:25,450 >> Si mund ta dini se? 400 00:19:25,450 --> 00:19:27,990 E pra, unë jam duke përdorur këtë funksion të quajtur fprintf. 401 00:19:27,990 --> 00:19:30,970 Të gjitha funksionet që ju do të jetë duke përdorur kur shkrim për të, ose të lexuar nga, ose 402 00:19:30,970 --> 00:19:34,950 manipuluar fotografi do të jetë i ngjashëm me funksionet që ju keni parë më parë, por 403 00:19:34,950 --> 00:19:38,420 fillojnë me shkronjën F, në këmbë për dosjen. 404 00:19:38,420 --> 00:19:43,440 Dhe fprintf, ndryshe nga të shtypura tonë normale app, merr një argument më shumë, 405 00:19:43,440 --> 00:19:47,800 dhe se është skedari ku ju doni të shtypura këtë linjë për të. 406 00:19:47,800 --> 00:19:50,640 >> Unë nuk kam asgjë për të e drejta e ohai. 407 00:19:50,640 --> 00:19:52,860 Unë nuk e kanë të tretën Argumenti për printf - 408 00:19:52,860 --> 00:19:57,030 ose argumenti dytë të printf, Argumenti i tretë për fprintf, sepse unë 409 00:19:57,030 --> 00:19:59,480 nuk kanë ndonjë placeholders këtu. 410 00:19:59,480 --> 00:20:01,070 Unë nuk jam përfshirë ndonjë variablave. 411 00:20:01,070 --> 00:20:06,070 Por përsëri, fprintf dhe të gjitha këto dosje funksionet që operojnë me fotografi 412 00:20:06,070 --> 00:20:09,820 janë në përgjithësi do të duhet skedarin në të cilën ata janë duke funksionuar. 413 00:20:09,820 --> 00:20:15,960 >> Së fundi, gjëja e fundit e rëndësishme që të bëni është për të mbyllur dosjen, ashtu si 414 00:20:15,960 --> 00:20:19,530 me të - sa herë që ne malloc diçka, ne duam të diçka të lirë, që të mos ne 415 00:20:19,530 --> 00:20:22,730 të ketë një rrjedhje kujtesës - ne duam për të mbyllur dosjen tonë. 416 00:20:22,730 --> 00:20:28,180 Nëse ky program exited pa mbylljen fotografi, shanset janë asgjë nuk do të shkojë 417 00:20:28,180 --> 00:20:30,050 gabuar, veçanërisht nëse ajo ishte një fotografi e vogël. 418 00:20:30,050 --> 00:20:35,020 >> Por ajo sigurisht që është stil i mirë coding dhe praktikë për të gjithmonë të mbyllur dosjen tuaj 419 00:20:35,020 --> 00:20:38,050 kur të keni mbaruar duke e përdorur atë. 420 00:20:38,050 --> 00:20:43,630 Kështu që është bazat e dosjes I / O. Ju ndoshta keni parë që më parë, ose 421 00:20:43,630 --> 00:20:45,710 pashë atë në atë Short fantastike. 422 00:20:45,710 --> 00:20:48,410 A ka dikush ndonjë pyetje, para se të ne do të shkojmë në disa praktikë kodim 423 00:20:48,410 --> 00:20:51,800 Problemet, rreth dosjes I / O ose Hapat Unë vetëm kaloi? 424 00:20:51,800 --> 00:21:00,198 425 00:21:00,198 --> 00:21:03,162 >> [Typing Sounds] 426 00:21:03,162 --> 00:21:04,150 >> JASON HIRSCHHORN: A ju kam një pyetje, AVI? 427 00:21:04,150 --> 00:21:04,660 >> AVI: Jo. 428 00:21:04,660 --> 00:21:04,740 >> JASON HIRSCHHORN: OK. 429 00:21:04,740 --> 00:21:06,746 Unë jam duke shkuar për të pritur një tjetër shtatë sekonda. 430 00:21:06,746 --> 00:21:07,590 [Qesh] 431 00:21:07,590 --> 00:21:08,620 Kjo është një tip i vërtetë të mirë. 432 00:21:08,620 --> 00:21:10,750 Ju djema thjesht nuk më pëlqen pyetje. 433 00:21:10,750 --> 00:21:11,660 Kjo është në rregull. 434 00:21:11,660 --> 00:21:12,330 OK. 435 00:21:12,330 --> 00:21:17,620 Pra problemi ynë i parë praktikë është, ne jemi duke shkuar për të kopjuar funksionin e 436 00:21:17,620 --> 00:21:22,330 një mjet command line që ju ndoshta përdorur më parë - kopje - 437 00:21:22,330 --> 00:21:23,500 mjet kopje. 438 00:21:23,500 --> 00:21:28,050 Nëse ju shkruani krah dhe pastaj të kalojë atë dy Argumentet Në terminalin tuaj, ju mund të 439 00:21:28,050 --> 00:21:28,980 kopjoni një skedar. 440 00:21:28,980 --> 00:21:31,220 Dhe kjo është ajo që ne do për të shkruar tani. 441 00:21:31,220 --> 00:21:35,830 >> Pra, përsëri, lexuar off e kësaj rrëshqitje, unë do të ju për të shkruar një program që merr 442 00:21:35,830 --> 00:21:38,130 dy dhe vetëm dy command-line Argumentet - 443 00:21:38,130 --> 00:21:40,750 një fotografi burim dhe një fotografi destinacion - 444 00:21:40,750 --> 00:21:44,590 dhe kopje përmbajtjen e burimit paraqesë në dosjen e destinacionit 445 00:21:44,590 --> 00:21:46,960 një bajt në një kohë. 446 00:21:46,960 --> 00:21:48,510 Pra, kjo është një shumë për të kërkuar. 447 00:21:48,510 --> 00:21:52,200 >> Përsëri, një qasje e mirë për këtë është që të mos shkoni direkt në kodin C, por 448 00:21:52,200 --> 00:21:54,280 thyejnë atë në disa hapa. 449 00:21:54,280 --> 00:21:58,400 Së pari, mendoj se për logjikën - pikërisht ajo që unë jam duke kërkuar që ju për të bërë - 450 00:21:58,400 --> 00:22:00,620 dhe për të kuptuar të gjitha të Hapat për këtë problem. 451 00:22:00,620 --> 00:22:04,410 Jo në C, vetëm në disa pseudokod, apo edhe një modeli mendor i 452 00:22:04,410 --> 00:22:06,030 çfarë po ndodh. 453 00:22:06,030 --> 00:22:10,050 >> Tjetra, një herë ju keni të pseudokod poshtë, kuptoj se si pseudokod 454 00:22:10,050 --> 00:22:14,600 harta onto mjeteve dhe gjërat që ne kemi mësuar për të përdorur në C. 455 00:22:14,600 --> 00:22:19,070 >> Dhe së fundi, një herë ju keni të gjitha që së bashku, ju mund kodin problemin. 456 00:22:19,070 --> 00:22:23,370 Merrni 5 deri në 10 minuta për të të punuar në këtë problem. 457 00:22:23,370 --> 00:22:25,800 Unë do të vënë udhëzimet mbështetur në një të dytë. 458 00:22:25,800 --> 00:22:27,990 Dhe pastaj ne do të shkoj për pseudokod, dhe kodi 459 00:22:27,990 --> 00:22:29,230 ajo jetojmë si grup. 460 00:22:29,230 --> 00:22:31,640 >> Nëse keni ndonjë pyetje, ndërsa ju jeni duke punuar në këtë, të ndjehen të lirë për të rritur 461 00:22:31,640 --> 00:22:34,260 dora jote, dhe unë do të vij përreth dhe përgjigjet atyre. 462 00:22:34,260 --> 00:22:37,020 463 00:22:37,020 --> 00:22:39,330 >> STUDENT 7: A mund të shpullë një copë letër? 464 00:22:39,330 --> 00:22:41,537 >> JASON HIRSCHHORN: Si është puna? 465 00:22:41,537 --> 00:26:46,047 466 00:26:46,047 --> 00:26:48,043 >> [Typing Sounds] 467 00:26:48,043 --> 00:26:48,730 >> JASON HIRSCHHORN: OK. 468 00:26:48,730 --> 00:26:51,710 Le të shkojnë mbi pseudokod parë, dhe atëherë unë do të ju jap një çift më shumë 469 00:26:51,710 --> 00:26:52,960 minuta për të përfunduar coding. 470 00:26:52,960 --> 00:26:55,540 471 00:26:55,540 --> 00:26:58,650 >> Kush do të donte për të filluar me off me vijën e parë të 472 00:26:58,650 --> 00:27:00,030 pseudokod për këtë funksion? 473 00:27:00,030 --> 00:27:03,330 474 00:27:03,330 --> 00:27:05,740 >> STUDENT 8: Kontrollo për të siguruar që ju janë dhënë dy fotografi. 475 00:27:05,740 --> 00:27:06,990 >> JASON HIRSCHHORN: OK. 476 00:27:06,990 --> 00:27:21,270 477 00:27:21,270 --> 00:27:22,990 Dhe në qoftë se ne nuk jemi? 478 00:27:22,990 --> 00:27:25,974 >> STUDENT 8: Unë do të kthehet 0. 479 00:27:25,974 --> 00:27:27,872 >> JASON HIRSCHHORN: A duhet të kthehemi 0? 480 00:27:27,872 --> 00:27:30,182 >> STUDENT 8: Kthimi a - 481 00:27:30,182 --> 00:27:30,650 U boshatis sepse të. 482 00:27:30,650 --> 00:27:30,850 Më vjen keq. 483 00:27:30,850 --> 00:27:31,210 >> JASON HIRSCHHORN: Po. 484 00:27:31,210 --> 00:27:32,710 Ndoshta jo 0. 485 00:27:32,710 --> 00:27:34,680 Sepse 0 do të thotë çdo gjë ishte e mirë. 486 00:27:34,680 --> 00:27:35,030 OK. 487 00:27:35,030 --> 00:27:36,730 Pra, kjo është vija e parë i pseudokod. 488 00:27:36,730 --> 00:27:38,715 Kush ka linjë të dytë të pseudokod? 489 00:27:38,715 --> 00:27:40,630 >> STUDENT 9: Hapur dy fotografi? 490 00:27:40,630 --> 00:27:41,880 >> JASON HIRSCHHORN: Hapni dy fotografi. 491 00:27:41,880 --> 00:27:49,970 492 00:27:49,970 --> 00:27:50,920 OK? 493 00:27:50,920 --> 00:27:52,850 >> STUDENT 10: Kontrollo për të parë nëse skedari është NULL? 494 00:27:52,850 --> 00:28:10,906 495 00:28:10,906 --> 00:28:12,580 >> JASON HIRSCHHORN: Kontrollo për të bërë i sigurt as janë NULL. 496 00:28:12,580 --> 00:28:15,800 Si një mënjanë - 497 00:28:15,800 --> 00:28:17,540 çaj 0 - 498 00:28:17,540 --> 00:28:18,887 është se NULL? 499 00:28:18,887 --> 00:28:20,080 >> STUDENT 11: Jo. 500 00:28:20,080 --> 00:28:21,190 >> JASON HIRSCHHORN: Kjo nuk është NULL. 501 00:28:21,190 --> 00:28:23,400 Kjo quhet terminator NULL. 502 00:28:23,400 --> 00:28:25,580 Është e shkruar në të vërtetë vetëm me një l. 503 00:28:25,580 --> 00:28:28,580 Pra kontrolluar diçka kundër që - kjo është në fakt një karakter - 504 00:28:28,580 --> 00:28:31,710 kështu kontrolluar diçka kundër që është nuk është njëjtë si kontrolluar për të parë nëse ajo 505 00:28:31,710 --> 00:28:32,690 është e barabartë NULL. 506 00:28:32,690 --> 00:28:34,100 >> Dhe disa njerëz - 507 00:28:34,100 --> 00:28:36,040 on kuize e tyre dhe problemin e tyre grupe - kanë marrë 508 00:28:36,040 --> 00:28:36,890 dy nga ata të hutuar. 509 00:28:36,890 --> 00:28:38,830 Por dy nga këto janë në të vërtetë të ndryshme. 510 00:28:38,830 --> 00:28:40,220 Një mbaron një varg - 511 00:28:40,220 --> 00:28:43,210 një është një tregues 0. 512 00:28:43,210 --> 00:28:46,490 >> STUDENT 12: Pse nuk do të kontrolloni për të të sigurt se dosjet nuk janë NULL 513 00:28:46,490 --> 00:28:48,670 para se hapjen e tyre? 514 00:28:48,670 --> 00:28:54,772 >> JASON HIRSCHHORN: Pra hapur kursen diçka në këtë dosje. 515 00:28:54,772 --> 00:28:57,780 Dhe në qoftë se ju shkoni përsëri këtu - 516 00:28:57,780 --> 00:28:59,520 kështu që kjo linjë - fopen - 517 00:28:59,520 --> 00:29:05,300 do t'ju japë një adresë dhe dyqan se adresa në dosjen e nëse ajo punon. 518 00:29:05,300 --> 00:29:07,650 Nëse kjo nuk funksionon, ajo do të ruajë NULL - 519 00:29:07,650 --> 00:29:08,020 >> STUDENT 12: Oh. 520 00:29:08,020 --> 00:29:08,180 OK. 521 00:29:08,180 --> 00:29:08,500 Ju mori. 522 00:29:08,500 --> 00:29:09,050 >> JASON HIRSCHHORN: Në dosjen. 523 00:29:09,050 --> 00:29:11,990 Pra, ju nuk mund të kontrolloni për NULL para se ju keni hapur ato. 524 00:29:11,990 --> 00:29:13,520 NULL do të thotë diçka që nuk e bëri të funksionoj në rregull. 525 00:29:13,520 --> 00:29:18,030 526 00:29:18,030 --> 00:29:18,740 OK. 527 00:29:18,740 --> 00:29:22,590 Pra, kontrolloni për t'u siguruar që nuk është? 528 00:29:22,590 --> 00:29:23,200 Apo jeni? 529 00:29:23,200 --> 00:29:23,770 Çfarë mendojmë? 530 00:29:23,770 --> 00:29:24,310 Ne do të shkojnë me këtë. 531 00:29:24,310 --> 00:29:24,520 >> STUDENT 13: A është. 532 00:29:24,520 --> 00:29:25,020 >> JASON HIRSCHHORN: A është? 533 00:29:25,020 --> 00:29:25,930 As është? 534 00:29:25,930 --> 00:29:26,350 >> STUDENT 13: A është. 535 00:29:26,350 --> 00:29:26,390 >> JASON HIRSCHHORN: OK. 536 00:29:26,390 --> 00:29:28,510 Ne duket se kemi disa konsensus mbi atë. 537 00:29:28,510 --> 00:29:30,520 As është NULL. 538 00:29:30,520 --> 00:29:32,250 OK, linjë e ardhshme e pseudokod. 539 00:29:32,250 --> 00:29:33,600 Kush nuk më ka dhënë një linjë ende? 540 00:29:33,600 --> 00:29:37,350 541 00:29:37,350 --> 00:29:38,295 Ne do të presim për ju. 542 00:29:38,295 --> 00:29:39,020 Po. 543 00:29:39,020 --> 00:29:40,895 >> STUDENT 14: Ju keni për të lexuar nga dosja e parë? 544 00:29:40,895 --> 00:29:42,290 >> JASON HIRSCHHORN: OK. 545 00:29:42,290 --> 00:29:46,240 >> STUDENT 14: Ose ne përdorim fscanf ose diçka si kjo dosjen e parë? 546 00:29:46,240 --> 00:29:50,650 >> JASON HIRSCHHORN: Pra, ne duam të lexuar nga dosja e parë dhe - 547 00:29:50,650 --> 00:29:51,900 le të vënë atë të drejtë këtu. 548 00:29:51,900 --> 00:30:00,600 549 00:30:00,600 --> 00:30:01,880 Lexoni nga burim file. 550 00:30:01,880 --> 00:30:05,370 Dhe pastaj, çfarë bëjmë ne pas ne lexohet nga burim file? 551 00:30:05,370 --> 00:30:06,620 Dikush tjetër? 552 00:30:06,620 --> 00:30:09,150 553 00:30:09,150 --> 00:30:12,190 >> STUDENT 15: Shkruani në fotografi destinacion? 554 00:30:12,190 --> 00:30:22,080 555 00:30:22,080 --> 00:30:25,620 >> JASON HIRSCHHORN: Ne shkruaj për të fotografi destinacion, dhe - 556 00:30:25,620 --> 00:30:26,210 OK. 557 00:30:26,210 --> 00:30:30,030 Çfarë tjetër jemi ne të humbur? 558 00:30:30,030 --> 00:30:32,460 Dikush tjetër që nuk e ka dhënë një linjë e kodit ende - të pseudokod. 559 00:30:32,460 --> 00:30:33,510 Po. 560 00:30:33,510 --> 00:30:36,540 >> STUDENT 16: Ndoshta ju mund të kontrolloni gjithmonë nëse ka diçka për të lexuar për, 561 00:30:36,540 --> 00:30:37,970 si rreshtin tjetër? 562 00:30:37,970 --> 00:30:39,550 Që janë si rreshtin tjetër, të shohim nëse ajo ekziston. 563 00:30:39,550 --> 00:30:40,660 >> [ELEKTRONIKE BEEP] 564 00:30:40,660 --> 00:30:41,095 >> JASON HIRSCHHORN: Oops. 565 00:30:41,095 --> 00:30:43,120 Kjo është software im journaling. 566 00:30:43,120 --> 00:30:43,580 Po? 567 00:30:43,580 --> 00:30:44,960 >> STUDENT 16: Po. 568 00:30:44,960 --> 00:30:48,940 >> JASON HIRSCHHORN: Pra, jepni ajo për mua edhe një herë. 569 00:30:48,940 --> 00:30:51,640 >> STUDENT 16: Kontrolloni nëse ka ende një vijë tjetër nga 570 00:30:51,640 --> 00:30:52,920 burim fotografi për të lexuar. 571 00:30:52,920 --> 00:30:53,500 >> JASON HIRSCHHORN: OK. 572 00:30:53,500 --> 00:30:56,060 Pra, ne nuk jemi duke lexuar linja - u lexuar bytes këtu - 573 00:30:56,060 --> 00:30:57,590 por ju jeni të saktë. 574 00:30:57,590 --> 00:31:00,040 Ne duam të lexojnë dhe të shkruajnë deri nuk ka më bytes. 575 00:31:00,040 --> 00:31:11,430 576 00:31:11,430 --> 00:31:11,735 OK. 577 00:31:11,735 --> 00:31:16,940 Dhe kështu këto duhet të vërtetë të jetë e prerë pak, sepse ata janë në aty. 578 00:31:16,940 --> 00:31:17,470 E drejtë? 579 00:31:17,470 --> 00:31:20,620 Deri ne jemi nga bytes, ne do të lexohet nga burim file dhe shkruani 580 00:31:20,620 --> 00:31:22,160 në dosjen e destinacionit. 581 00:31:22,160 --> 00:31:24,510 >> Dhe pastaj, çfarë është e fundit linjë e pseudokod? 582 00:31:24,510 --> 00:31:26,380 Dikush që nuk është dhënë mua diçka akoma. 583 00:31:26,380 --> 00:31:29,270 584 00:31:29,270 --> 00:31:30,260 >> STUDENT 17: Mbyllni fotografi? 585 00:31:30,260 --> 00:31:31,510 >> JASON HIRSCHHORN: Pikërisht. 586 00:31:31,510 --> 00:31:36,370 587 00:31:36,370 --> 00:31:37,450 Mbylle fotografi. 588 00:31:37,450 --> 00:31:38,400 Pra, nuk ka pseudokod tonë. 589 00:31:38,400 --> 00:31:41,870 Unë jam duke shkuar për të vënë në pseudokod në gedit, dhe në disa minuta ne 590 00:31:41,870 --> 00:31:44,626 do të kodit këtë së bashku. 591 00:31:44,626 --> 00:33:55,280 592 00:33:55,280 --> 00:33:56,000 >> OK. 593 00:33:56,000 --> 00:33:58,290 Le të ketë filluar si një grup. 594 00:33:58,290 --> 00:33:59,940 Nishant, unë kam dosjen time të re. 595 00:33:59,940 --> 00:34:01,130 Unë e kam hapur vetëm këtë ide. 596 00:34:01,130 --> 00:34:01,880 Dokument Untitled 1. 597 00:34:01,880 --> 00:34:05,490 Cila është gjëja e parë që duhet të bëjë? 598 00:34:05,490 --> 00:34:07,040 >> Nishant: Përfshini biblioteka? 599 00:34:07,040 --> 00:34:08,219 >> JASON HIRSCHHORN: OK. 600 00:34:08,219 --> 00:34:11,070 Çfarë bibliotekat? 601 00:34:11,070 --> 00:34:17,570 >> Nishant: Stdio.h, stdlib.h, besoj? 602 00:34:17,570 --> 00:34:18,000 >> JASON HIRSCHHORN: OK. 603 00:34:18,000 --> 00:34:21,592 Çfarë është stdlib për? 604 00:34:21,592 --> 00:34:23,010 >> Nishant: Kam harruar. 605 00:34:23,010 --> 00:34:23,219 >> JASON HIRSCHHORN: OK. 606 00:34:23,219 --> 00:34:24,179 Pra përfshijnë stdio. 607 00:34:24,179 --> 00:34:28,630 Çfarë duhet të bëj edhe më parë Unë të fillojë kodim? 608 00:34:28,630 --> 00:34:29,710 >> Nishant: Shkruaj një kokë? 609 00:34:29,710 --> 00:34:31,830 >> JASON HIRSCHHORN: Si mund ta marrë atë me ngjyrë? 610 00:34:31,830 --> 00:34:34,060 >> [VOICES Mbivendosje] 611 00:34:34,060 --> 00:34:35,040 >> Nishant: Si mund të merrni atë me ngjyrë? 612 00:34:35,040 --> 00:34:38,060 >> JASON HIRSCHHORN: Si duhet me ngjyra kodim? 613 00:34:38,060 --> 00:34:38,570 >> Nishant: Nuk e di. 614 00:34:38,570 --> 00:34:38,830 Oh. 615 00:34:38,830 --> 00:34:39,389 Ruaj. 616 00:34:39,389 --> 00:34:39,929 >> JASON HIRSCHHORN: Save. 617 00:34:39,929 --> 00:34:40,270 Po. 618 00:34:40,270 --> 00:34:41,760 Unë duhet të ruani atë si një. C. 619 00:34:41,760 --> 00:34:46,239 Pra, ruajeni në desktop si cp.c. 620 00:34:46,239 --> 00:34:47,280 Sweet. 621 00:34:47,280 --> 00:34:51,199 Dhe në qoftë se unë dua të të marrë stilin e plotë pika, çfarë duhet të 622 00:34:51,199 --> 00:34:53,085 përfshijnë në krye? 623 00:34:53,085 --> 00:34:58,390 >> Nishant: Ju mund të shkruani emrin tuaj, emrin e programit, dhe me qëllim 624 00:34:58,390 --> 00:34:59,640 e programit si? 625 00:34:59,640 --> 00:35:08,400 626 00:35:08,400 --> 00:35:10,040 >> JASON HIRSCHHORN: Duket e mirë. 627 00:35:10,040 --> 00:35:10,470 Excellent. 628 00:35:10,470 --> 00:35:12,940 Pra, ju keni filluar të na jashtë të përkryer. 629 00:35:12,940 --> 00:35:13,720 # Include - 630 00:35:13,720 --> 00:35:15,365 ne gjithashtu do të shkruaj - 631 00:35:15,365 --> 00:35:30,050 632 00:35:30,050 --> 00:35:30,870 OK. 633 00:35:30,870 --> 00:35:33,520 Kështu që unë mendoj se jam të gjithë të vendosur për të shkuar. 634 00:35:33,520 --> 00:35:38,003 Kush ka linjë të parë të kodit për mua - ose linjat e para të kodit që 635 00:35:38,003 --> 00:35:41,280 ajo do të marrë për të kënaqur jonë e parë komentoni në pseudokod? 636 00:35:41,280 --> 00:35:41,985 Ju. 637 00:35:41,985 --> 00:35:48,780 >> STUDENT 18: A nuk duhet të jetë int argc, dhe pastaj char * ARGV? 638 00:35:48,780 --> 00:35:49,490 >> JASON HIRSCHHORN: Unë mendoj se ju jeni të drejtë. 639 00:35:49,490 --> 00:35:56,270 Le të ndryshojë atë për të int kryesore, Paren të hapura, argc int, comma, char * ARGV? 640 00:35:56,270 --> 00:35:57,150 Si kjo? 641 00:35:57,150 --> 00:35:57,410 >> STUDENT 18: Kllapa. 642 00:35:57,410 --> 00:35:58,260 >> JASON HIRSCHHORN: Kllapa. 643 00:35:58,260 --> 00:35:59,860 Kllapa e hapur, kllapa të ngushtë, prind ngushtë. 644 00:35:59,860 --> 00:36:00,240 Perfect. 645 00:36:00,240 --> 00:36:02,160 Tani unë mund të marrë argumente command-line. 646 00:36:02,160 --> 00:36:02,430 OK. 647 00:36:02,430 --> 00:36:04,250 Sigurimi ne jemi duke i dhënë dy fotografi. 648 00:36:04,250 --> 00:36:07,905 Ju mund të jepni se si. 649 00:36:07,905 --> 00:36:09,180 >> STUDENT 18: Nëse argc - 650 00:36:09,180 --> 00:36:11,060 kjo nuk ka të barabartë 3. 651 00:36:11,060 --> 00:36:14,360 >> JASON HIRSCHHORN: Nëse Paren hapura argc nuk barabartë 3? 652 00:36:14,360 --> 00:36:16,970 >> STUDENT 18: Po, ju të ktheheni 1 apo ndonjë gjë. 653 00:36:16,970 --> 00:36:17,460 >> JASON HIRSCHHORN: Na vjen keq. 654 00:36:17,460 --> 00:36:19,120 >> STUDENT 18: Kthimi 1 apo ndonjë gjë. 655 00:36:19,120 --> 00:36:20,270 >> JASON HIRSCHHORN: Kthehu 1. 656 00:36:20,270 --> 00:36:22,230 OK? 657 00:36:22,230 --> 00:36:22,970 Great. 658 00:36:22,970 --> 00:36:24,290 Hapur dy fotografi. 659 00:36:24,290 --> 00:36:26,160 Kush mund të më ndihmojë të hapë dy fotografi? 660 00:36:26,160 --> 00:36:28,125 Kush nuk më ka dhënë kodin akoma? 661 00:36:28,125 --> 00:36:31,510 662 00:36:31,510 --> 00:36:32,320 Kurt? 663 00:36:32,320 --> 00:36:36,145 >> Kurt: Pra, të gjitha shkronja kapitale F-I-L-E burim yll. 664 00:36:36,145 --> 00:36:39,390 665 00:36:39,390 --> 00:36:40,920 >> JASON HIRSCHHORN: Unë jam duke shkuar për të marrë nga zanoret. 666 00:36:40,920 --> 00:36:41,570 Ata janë të ftohtë. 667 00:36:41,570 --> 00:36:42,716 Është si Tumblr. 668 00:36:42,716 --> 00:36:44,610 >> STUDENT 18: barabartë fopen - 669 00:36:44,610 --> 00:36:46,612 >> JASON HIRSCHHORN: barabartë fopen? 670 00:36:46,612 --> 00:36:49,870 >> STUDENT 18: Paren Open, ARGV, kllapa e hapur. 671 00:36:49,870 --> 00:36:50,055 >> JASON HIRSCHHORN: Prisni. 672 00:36:50,055 --> 00:36:50,240 Më vjen keq. 673 00:36:50,240 --> 00:36:51,050 Paren e hapur. 674 00:36:51,050 --> 00:36:51,456 OK. 675 00:36:51,456 --> 00:36:53,080 >> STUDENT 18: Po. 676 00:36:53,080 --> 00:36:55,110 ARGV nën 1. 677 00:36:55,110 --> 00:36:55,860 >> JASON HIRSCHHORN: Nën 1? 678 00:36:55,860 --> 00:36:56,140 >> STUDENT 18: Po. 679 00:36:56,140 --> 00:36:58,540 ARGV kllapa e hapur 1 - 680 00:36:58,540 --> 00:36:59,730 po. 681 00:36:59,730 --> 00:37:06,470 Dhe pastaj presje, dhe pastaj të hapur të dyfishtë quote, r, të japin kuotën e dyfishtë, 682 00:37:06,470 --> 00:37:08,250 Paren ngushtë, pikëpresje. 683 00:37:08,250 --> 00:37:09,450 >> JASON HIRSCHHORN: Sweet. 684 00:37:09,450 --> 00:37:10,950 Dhe çfarë lidhje me një tjetër? 685 00:37:10,950 --> 00:37:16,030 >> STUDENT 18: Shumë i ngjashëm, por në vend të kësaj i S-R-C, ju do të telefononi atë d-S-T. 686 00:37:16,030 --> 00:37:17,060 >> JASON HIRSCHHORN: Oo! 687 00:37:17,060 --> 00:37:17,772 Më pëlqen kjo. 688 00:37:17,772 --> 00:37:20,010 >> STUDENT 18: Vetëm D-S-T. Po. 689 00:37:20,010 --> 00:37:23,057 Dhe pastaj ARGV, kllapa të hapur, 2. 690 00:37:23,057 --> 00:37:23,200 Po. 691 00:37:23,200 --> 00:37:26,720 Dhe pastaj w vend të r. 692 00:37:26,720 --> 00:37:27,620 Po. 693 00:37:27,620 --> 00:37:29,630 >> JASON HIRSCHHORN: Great. 694 00:37:29,630 --> 00:37:31,360 Çifti i ardhshëm i linjave. 695 00:37:31,360 --> 00:37:34,040 Gjithashtu, në qoftë se dikush ka gjëra për të rritur Linjat që ne kemi bërë, të ndjehen të lirë për të 696 00:37:34,040 --> 00:37:35,690 shtoni ato si. 697 00:37:35,690 --> 00:37:37,520 Kontrolloni për t'u siguruar që nuk është NULL. 698 00:37:37,520 --> 00:37:41,450 Kush mund të jepni kodin Unë duhet të përmbushin këtë linjë të pseudokod? 699 00:37:41,450 --> 00:37:44,430 700 00:37:44,430 --> 00:37:45,870 Archer. 701 00:37:45,870 --> 00:37:58,645 >> ARCHER: src Nëse është e barabartë me të barabartëve NULL ose DST barabartë është e barabartë me 702 00:37:58,645 --> 00:38:04,590 NULL, atëherë ju kthehen - 703 00:38:04,590 --> 00:38:07,130 704 00:38:07,130 --> 00:38:07,976 >> JASON HIRSCHHORN: Çfarë? 705 00:38:07,976 --> 00:38:08,890 >> ARCHER: Kthimi 2? 706 00:38:08,890 --> 00:38:09,760 >> JASON HIRSCHHORN: Kthimi 2. 707 00:38:09,760 --> 00:38:14,400 Pra, nëse Paren hapur src është e barabartë me barabartë NULL, ose - 708 00:38:14,400 --> 00:38:15,590 çfarëdo që thing's - tub? 709 00:38:15,590 --> 00:38:16,346 Tub? 710 00:38:16,346 --> 00:38:17,140 Ne do të thërrasë atë tub. 711 00:38:17,140 --> 00:38:22,340 Tub, tub, DST barabartë është e barabartë me NULL, kthehen 2. 712 00:38:22,340 --> 00:38:23,900 OK? 713 00:38:23,900 --> 00:38:26,060 Deri ne jemi jashtë bytes - 714 00:38:26,060 --> 00:38:29,820 ne lloj anashkaluar këtë hap nga pjesa pseudokod për të shkuar në këtu. 715 00:38:29,820 --> 00:38:31,970 >> Por deri sa ne jemi jashtë bytes - çfarë e bën këtë të tingëllojë si? 716 00:38:31,970 --> 00:38:34,680 Çfarë lloji i strukturës C - 717 00:38:34,680 --> 00:38:36,160 por unë nuk e përdorin strukturën fjalën, sepse ne jemi duke shkuar për të filluar me 718 00:38:36,160 --> 00:38:37,350 që në raste të tjera - 719 00:38:37,350 --> 00:38:39,495 por C mjet A tingëllon kjo si? 720 00:38:39,495 --> 00:38:39,970 >> STUDENT 19: Një lak. 721 00:38:39,970 --> 00:38:40,980 >> JASON HIRSCHHORN: Një lak. 722 00:38:40,980 --> 00:38:43,060 Tingëllon si një lak. 723 00:38:43,060 --> 00:38:49,670 Pra, kush mund të më jepni rreshtin e parë i kodit lak të drejtë këtu? 724 00:38:49,670 --> 00:38:56,320 725 00:38:56,320 --> 00:39:01,980 Ju gjithashtu mund të zgjedhë se çfarë lloj të loop ju dëshironi, nëse ju jepni 726 00:39:01,980 --> 00:39:03,215 kjo linjë e kodit. 727 00:39:03,215 --> 00:39:04,150 Ka tri lloje. 728 00:39:04,150 --> 00:39:06,530 Ju merrni të marr. 729 00:39:06,530 --> 00:39:08,080 Unë do të sugjeroja një nga ata. 730 00:39:08,080 --> 00:39:08,410 Avi. 731 00:39:08,410 --> 00:39:09,230 Cili e do? 732 00:39:09,230 --> 00:39:09,960 >> AVI: PËR. 733 00:39:09,960 --> 00:39:11,460 >> JASON HIRSCHHORN: PËR. 734 00:39:11,460 --> 00:39:15,180 >> AVI: int i barabartë me zero. 735 00:39:15,180 --> 00:39:17,360 >> JASON HIRSCHHORN: OK. 736 00:39:17,360 --> 00:39:18,570 >> AVI: Kjo pjesë Unë nuk jam i sigurt rreth. 737 00:39:18,570 --> 00:39:29,080 Por i është më pak se madhësia i burimit yll? 738 00:39:29,080 --> 00:39:31,128 Unë nuk jam i sigurt për këtë. 739 00:39:31,128 --> 00:39:32,580 >> JASON HIRSCHHORN: OK. 740 00:39:32,580 --> 00:39:35,870 >> AVI: Për shkak se ju doni madhësie fotografish, e drejtë? 741 00:39:35,870 --> 00:39:41,090 >> JASON HIRSCHHORN: Pra, kjo ndoshta nuk do të na japin madhësinë aktuale 742 00:39:41,090 --> 00:39:43,010 paraqesë në bytes. 743 00:39:43,010 --> 00:39:47,680 Pra, çfarë tjetër mund të bëjmë? 744 00:39:47,680 --> 00:39:48,810 Çfarë është një lloj tjetër lak? 745 00:39:48,810 --> 00:39:50,180 Apo duhet të rrinë me lak PËR? 746 00:39:50,180 --> 00:39:55,350 747 00:39:55,350 --> 00:39:57,900 >> STUDENT 20: A mund të bëni një lak, ndërsa? 748 00:39:57,900 --> 00:40:01,350 Dhe pastaj, çfarë ju do të bëni është you'd - 749 00:40:01,350 --> 00:40:03,930 sepse ne kemi një * char për dosjen. 750 00:40:03,930 --> 00:40:07,950 Pra, nëse ne vetëm i mbajnë bën rritjen që deri sa ne do të gjeni në karakterin NULL 751 00:40:07,950 --> 00:40:08,500 fundi i saj? 752 00:40:08,500 --> 00:40:11,130 Apo nuk ka, është se nuk se si fotografi të punuar? 753 00:40:11,130 --> 00:40:14,300 >> JASON HIRSCHHORN: Pra, ne mund të vazhdojmë bën rritjen e char * 754 00:40:14,300 --> 00:40:16,340 deri sa të gjeni NULL - 755 00:40:16,340 --> 00:40:18,580 >> STUDENT 20: Në thelb të mbajë karakteri nga karakteri deri ne goditi 756 00:40:18,580 --> 00:40:21,250 në fund të file. 757 00:40:21,250 --> 00:40:21,600 >> JASON HIRSCHHORN: Po. 758 00:40:21,600 --> 00:40:22,560 Pra, kjo është ajo që ne duam të bëjmë. 759 00:40:22,560 --> 00:40:24,545 Ne duam të mbajtur lexim, karakterin me karakter, deri sa të kemi të 760 00:40:24,545 --> 00:40:25,080 në fund të file. 761 00:40:25,080 --> 00:40:25,375 >> STUDENT 20: Po. 762 00:40:25,375 --> 00:40:25,860 Gjej të - 763 00:40:25,860 --> 00:40:28,540 çfarë është fundi apo shenjë të ndaluar në fund të një skedar teksti. 764 00:40:28,540 --> 00:40:28,620 >> JASON HIRSCHHORN: OK. 765 00:40:28,620 --> 00:40:30,140 Pra, kur ne të marrë në fund të skedarit - si mund ta dimë që kemi arritur 766 00:40:30,140 --> 00:40:33,200 fundi i një fotografi? 767 00:40:33,200 --> 00:40:34,710 Nëse unë jam duke e quajtur - 768 00:40:34,710 --> 00:40:35,910 kështu që le të hap prapa. 769 00:40:35,910 --> 00:40:37,550 Çfarë është një funksion? 770 00:40:37,550 --> 00:40:39,360 Le të shkojnë në këtë linjë të drejtë këtu. 771 00:40:39,360 --> 00:40:40,630 Lexoni nga burim file. 772 00:40:40,630 --> 00:40:41,880 Kush mund të jepni atë linjë e kodit? 773 00:40:41,880 --> 00:40:45,592 774 00:40:45,592 --> 00:40:47,590 >> STUDENT 21: Fscanf? 775 00:40:47,590 --> 00:40:49,110 >> JASON HIRSCHHORN: Fscanf. 776 00:40:49,110 --> 00:40:49,510 OK. 777 00:40:49,510 --> 00:40:52,240 Çka nëse unë dua të lexuar, shumë në mënyrë të veçantë, e bajt? 778 00:40:52,240 --> 00:40:55,012 779 00:40:55,012 --> 00:40:56,860 >> STUDENT 21: Nuk e di. 780 00:40:56,860 --> 00:40:57,110 >> JASON HIRSCHHORN: OK. 781 00:40:57,110 --> 00:40:59,380 Edhe më të thjeshta se fscanf - ajo është një - 782 00:40:59,380 --> 00:41:01,890 Unë dua të lexuar nga një burim file? 783 00:41:01,890 --> 00:41:03,720 Lexoni nga një burim file. 784 00:41:03,720 --> 00:41:04,850 Çfarë është një funksion - po. 785 00:41:04,850 --> 00:41:05,380 >> STUDENT 22: Kjo është fread? 786 00:41:05,380 --> 00:41:06,070 >> JASON HIRSCHHORN: Fread. 787 00:41:06,070 --> 00:41:07,550 Unë mendoj se le të rrinë me se një për tani. 788 00:41:07,550 --> 00:41:10,380 789 00:41:10,380 --> 00:41:13,650 Çfarë lloj argumenteve ka fread marrë? 790 00:41:13,650 --> 00:41:17,410 >> STUDENT 22: Ndoshta file type, dhe më pas vend në dosjen? 791 00:41:17,410 --> 00:41:19,550 >> JASON HIRSCHHORN: Çfarë mund të shtypni këtu të kuptoj se çfarë lloji i argumenteve 792 00:41:19,550 --> 00:41:20,950 fread merr? 793 00:41:20,950 --> 00:41:23,710 >> STUDENTËT E SHUMËFISHTA: Njeriu fread. 794 00:41:23,710 --> 00:41:24,740 >> JASON HIRSCHHORN: Man fread dhe fwrite. 795 00:41:24,740 --> 00:41:25,980 Duket si ata rri së bashku. 796 00:41:25,980 --> 00:41:29,589 Pra fread merr si shumë argumente? 797 00:41:29,589 --> 00:41:30,920 >> STUDENT 23: Katër. 798 00:41:30,920 --> 00:41:32,690 >> JASON HIRSCHHORN: Ajo merr katër argumente. 799 00:41:32,690 --> 00:41:41,100 Ajo merr një tregues, një madhësi, dhe se Gjë, e cila është e pazakontë, dhe disa fotografi. 800 00:41:41,100 --> 00:41:42,000 OK? 801 00:41:42,000 --> 00:41:43,990 Le të lexuar në lidhje me të këtu. 802 00:41:43,990 --> 00:41:49,370 "Funksioni fread lexon n memb elemente të të dhënave, çdo madhësi bytes 803 00:41:49,370 --> 00:41:53,840 e gjatë, nga lumë vuri në dukje nga lumë, ruajtjen e tyre në vendin e 804 00:41:53,840 --> 00:41:56,170 dhënë nga akrep. " 805 00:41:56,170 --> 00:41:57,960 >> Pra katër argumente. 806 00:41:57,960 --> 00:42:04,510 Pse nuk mundem të vetëm kopje këtë, dhe ngjitur atë të drejtë këtu. 807 00:42:04,510 --> 00:42:10,060 808 00:42:10,060 --> 00:42:10,770 OK. 809 00:42:10,770 --> 00:42:13,673 Pra, kush mund të fillojnë të plotësojë këto argumente për mua? 810 00:42:13,673 --> 00:42:15,840 Avi. 811 00:42:15,840 --> 00:42:17,720 >> AVI: Merrni nga boshllëkun. 812 00:42:17,720 --> 00:42:20,530 Vendos vetëm src. 813 00:42:20,530 --> 00:42:23,142 Merrni nga treguesin dhe yllin. 814 00:42:23,142 --> 00:42:26,102 Vendos src. 815 00:42:26,102 --> 00:42:27,050 Pastaj - 816 00:42:27,050 --> 00:42:28,500 >> JASON HIRSCHHORN: Kështu që unë jam duke shkuar për të ndaluar ju atje, sepse kjo është e gabuar. 817 00:42:28,500 --> 00:42:32,590 818 00:42:32,590 --> 00:42:34,710 Ju jeni të drejtë me src, por ku duhet src shkoni? 819 00:42:34,710 --> 00:42:35,960 >> [VOICES Mbivendosje] 820 00:42:35,960 --> 00:42:38,976 821 00:42:38,976 --> 00:42:41,610 >> JASON HIRSCHHORN: Ajo duhet të shkojnë mbi këtu. 822 00:42:41,610 --> 00:42:43,790 Kjo është src - src tonë është një lloj. 823 00:42:43,790 --> 00:42:44,610 Le të shohim këtu. 824 00:42:44,610 --> 00:42:49,610 Kjo është duke kërkuar një lloj FILE *, ne në fakt zakonisht i shohin ato si kjo. 825 00:42:49,610 --> 00:42:57,630 Pra, kjo është duke i kërkuar për një argument të file type * quajtur lumë që është src. 826 00:42:57,630 --> 00:42:58,480 OK? 827 00:42:58,480 --> 00:43:00,410 >> Çfarë Madhësia e gjëra; ne duam të lexuar? 828 00:43:00,410 --> 00:43:03,340 Unë ju dha këtë në përshkrimi problem. 829 00:43:03,340 --> 00:43:04,370 >> STUDENT 24: Një bajt në një kohë. 830 00:43:04,370 --> 00:43:05,340 >> JASON HIRSCHHORN: Një bajt. 831 00:43:05,340 --> 00:43:08,205 Sa i madh është një bajt? 832 00:43:08,205 --> 00:43:11,642 Madhësia e saj është në bytes, kështu që çfarë mund të kam vënë atje? 833 00:43:11,642 --> 00:43:12,910 >> STUDENT 25: One. 834 00:43:12,910 --> 00:43:14,730 >> JASON HIRSCHHORN: One. 835 00:43:14,730 --> 00:43:17,020 E drejta. 836 00:43:17,020 --> 00:43:19,940 Madhësia e saj është në njësi bajt, kështu që 1 është 1 bajt. 837 00:43:19,940 --> 00:43:22,284 Sa shumë mund të dëshironi të lexoni në një kohë. 838 00:43:22,284 --> 00:43:23,520 >> STUDENT 26: One? 839 00:43:23,520 --> 00:43:24,270 >> JASON HIRSCHHORN: Një gjë. 840 00:43:24,270 --> 00:43:28,540 Unë dua të lexoj një gjë e madhësisë 1, e bite në një kohë. 841 00:43:28,540 --> 00:43:32,110 Dhe ku mund ta vënë atë, një herë kam lexuar atë? 842 00:43:32,110 --> 00:43:35,050 843 00:43:35,050 --> 00:43:36,510 >> STUDENT 27: Destinacioni? 844 00:43:36,510 --> 00:43:39,270 >> JASON HIRSCHHORN: Kështu që unë nuk mund të vënë ajo drejt e në destinacion. 845 00:43:39,270 --> 00:43:40,800 >> STUDENT 28: Ju jeni gonna të vënë atë në një tregues të tretë? 846 00:43:40,800 --> 00:43:41,780 >> STUDENT 27: Të destinacion. 847 00:43:41,780 --> 00:43:42,270 >> JASON HIRSCHHORN: OK. 848 00:43:42,270 --> 00:43:42,630 Po. 849 00:43:42,630 --> 00:43:46,820 >> STUDENT 29: Ju mund të deklarojë diçka të të veprojë si një ruajtje të përkohshme më parë. 850 00:43:46,820 --> 00:43:47,350 >> JASON HIRSCHHORN: OK. 851 00:43:47,350 --> 00:43:50,080 Ma jep atë. 852 00:43:50,080 --> 00:43:53,930 >> STUDENT 29: Një tjetër fotografi akrep, ndoshta? 853 00:43:53,930 --> 00:43:54,220 >> JASON HIRSCHHORN: OK. 854 00:43:54,220 --> 00:43:55,585 Pra, kjo është yll i pavlefshëm - 855 00:43:55,585 --> 00:43:57,750 kjo është një lloj i pavlefshëm yll, kështu që nuk ka duhet të jetë një tregues fotografi. 856 00:43:57,750 --> 00:44:02,520 Dhe në qoftë se unë jam duke lexuar një bajt, ku do të ishte një vend i mirë 857 00:44:02,520 --> 00:44:03,850 për të ruajtur një bajt? 858 00:44:03,850 --> 00:44:04,660 >> STUDENT 29: Një grup? 859 00:44:04,660 --> 00:44:05,770 >> JASON HIRSCHHORN: Një grup. 860 00:44:05,770 --> 00:44:07,730 OK. 861 00:44:07,730 --> 00:44:14,040 Dhe çfarë tjetër është diçka që është vetëm madhësi një bajt? 862 00:44:14,040 --> 00:44:16,980 863 00:44:16,980 --> 00:44:18,060 >> STUDENT 30: Një char *? 864 00:44:18,060 --> 00:44:18,530 >> STUDENT 29: Po. 865 00:44:18,530 --> 00:44:19,880 >> JASON HIRSCHHORN: A char * nuk është një bajt. 866 00:44:19,880 --> 00:44:20,440 >> STUDENT 29: A char. 867 00:44:20,440 --> 00:44:21,810 >> JASON HIRSCHHORN: Një char është një bajt. 868 00:44:21,810 --> 00:44:22,920 E drejtë? 869 00:44:22,920 --> 00:44:26,740 Pra, le të quajmë këtë mbrojtëse është një gjenerik emrin e përdorur për këto gjëra për të ruajtur 870 00:44:26,740 --> 00:44:27,910 diçka përkohësisht. 871 00:44:27,910 --> 00:44:30,880 Kështu që unë të krijojë një tampon. 872 00:44:30,880 --> 00:44:31,150 E drejtë? 873 00:44:31,150 --> 00:44:32,990 Por kjo do të marrë një zbrazëti *. 874 00:44:32,990 --> 00:44:38,660 Pra, ndoshta ju jeni të drejtë, se ajo duhet të jetë një tampon të madhësisë 0. 875 00:44:38,660 --> 00:44:41,070 Pra, ajo ruan një të tillë - 876 00:44:41,070 --> 00:44:41,280 drejtë. 877 00:44:41,280 --> 00:44:43,560 >> Për shkak se kjo e drejtë këtu - char buffer është një karakter, por 878 00:44:43,560 --> 00:44:45,110 kjo merr një zbrazëti * - 879 00:44:45,110 --> 00:44:45,870 një akrep. 880 00:44:45,870 --> 00:44:50,640 Kështu që unë mund të bëjë këtë dhe tani buffer është një akrep. 881 00:44:50,640 --> 00:44:53,214 Çfarë tjetër mund të bëj? 882 00:44:53,214 --> 00:44:55,775 >> STUDENT 31: Vendos një yllin afër char. 883 00:44:55,775 --> 00:44:58,380 >> JASON HIRSCHHORN: unë mund të kanë krijuar atë char *. 884 00:44:58,380 --> 00:45:00,216 OK. 885 00:45:00,216 --> 00:45:03,131 Çfarë është një tjetër gjë unë mund të bëj? 886 00:45:03,131 --> 00:45:04,050 Ose le të shkojë me këtë një të tillë. 887 00:45:04,050 --> 00:45:05,740 Char * tampon, kështu që çfarë mund ta vënë në këtu? 888 00:45:05,740 --> 00:45:08,290 889 00:45:08,290 --> 00:45:09,310 >> STUDENT 31: Buffer. 890 00:45:09,310 --> 00:45:10,560 >> JASON HIRSCHHORN: Buffer. 891 00:45:10,560 --> 00:45:12,640 892 00:45:12,640 --> 00:45:14,500 Buffer është një tregues për një char. 893 00:45:14,500 --> 00:45:19,480 Dhe në atë vend, ne jemi duke një bajt për diçka që kemi lexuar. 894 00:45:19,480 --> 00:45:19,980 Po. 895 00:45:19,980 --> 00:45:20,700 Avi. 896 00:45:20,700 --> 00:45:21,230 >> AVI: Vetëm një pyetje të shpejtë. 897 00:45:21,230 --> 00:45:24,440 A doni të malloc tampon? 898 00:45:24,440 --> 00:45:25,930 >> JASON HIRSCHHORN: Kush mund të përgjigjem kësaj pyetjeje? 899 00:45:25,930 --> 00:45:30,210 >> STUDENT 32: E pra, S'ka pikë për çdo gjë të drejtë tani, kështu - 900 00:45:30,210 --> 00:45:32,610 >> JASON HIRSCHHORN: Por a ne duam të malloc atë? 901 00:45:32,610 --> 00:45:35,600 >> STUDENT 32: Nëse ju do të bëni atë që mënyrë, unë mendoj, vërtet, sepse ju do të duhet 902 00:45:35,600 --> 00:45:36,990 disa vend për të për pikë për të. 903 00:45:36,990 --> 00:45:38,350 >> JASON HIRSCHHORN: A ne duhet të malloc atë? 904 00:45:38,350 --> 00:45:40,580 >> STUDENT 33: Nëse ju jeni do të përdorin atë jashtë lak. 905 00:45:40,580 --> 00:45:42,524 >> JASON HIRSCHHORN: A do të përdorin atë jashtë lak? 906 00:45:42,524 --> 00:45:44,392 >> STUDENT 34: Po. 907 00:45:44,392 --> 00:45:44,860 >> STUDENT 35: Prisni. 908 00:45:44,860 --> 00:45:46,980 A duam ta deklarojnë atë në lak të përtej? 909 00:45:46,980 --> 00:45:50,100 >> JASON HIRSCHHORN: Kështu që unë mendoj që ne kemi disa pseudo GJATË loop këtu se ne jemi 910 00:45:50,100 --> 00:45:51,950 duke u përpjekur të kuptoj, se ne nuk kemi marrë për të ende. 911 00:45:51,950 --> 00:45:54,710 912 00:45:54,710 --> 00:45:56,010 Ne nuk kemi nevojë të malloc atë. 913 00:45:56,010 --> 00:45:59,310 Ne jemi të veprojnë në kryesore, ajo është vetëm do për t'u përdorur brenda këtij lak. 914 00:45:59,310 --> 00:46:00,540 Ajo nuk ka nevojë të ekzistojë jashtë kësaj. 915 00:46:00,540 --> 00:46:02,340 >> Pra, ajo mund të jetë një variabël lokale. 916 00:46:02,340 --> 00:46:03,925 Ju keni një tregues për një variabël lokale. 917 00:46:03,925 --> 00:46:07,984 918 00:46:07,984 --> 00:46:09,590 >> STUDENT 36: Por nuk është duke treguar për çdo gjë. 919 00:46:09,590 --> 00:46:11,540 >> JASON HIRSCHHORN: Jo, nuk është e initialized për çdo gjë. 920 00:46:11,540 --> 00:46:12,790 Por ne nuk do të përdorin atë gjithashtu. 921 00:46:12,790 --> 00:46:15,300 Ne jemi duke shkuar për të vënë diçka në kjo hera e parë që ne e përdorin atë. 922 00:46:15,300 --> 00:46:16,580 Kështu që duket OK. 923 00:46:16,580 --> 00:46:17,780 Pra, ne nuk kemi nevojë malloc këtu. 924 00:46:17,780 --> 00:46:19,360 Dhe unë mendoj se është në rregull si është. 925 00:46:19,360 --> 00:46:24,350 926 00:46:24,350 --> 00:46:25,790 OK. 927 00:46:25,790 --> 00:46:27,190 Ne kemi linjë fread. 928 00:46:27,190 --> 00:46:28,490 Le të bëjmë linjë tjetër. 929 00:46:28,490 --> 00:46:32,984 >> Në qoftë se ne duam të shkruani në një skedar, ajo që është një funksion i mirë për të përdorur për të bërë këtë? 930 00:46:32,984 --> 00:46:33,770 >> STUDENT 37: fwrite? 931 00:46:33,770 --> 00:46:35,140 >> STUDENT 38: Fprintf? 932 00:46:35,140 --> 00:46:36,010 >> JASON HIRSCHHORN: Fprintf është një. 933 00:46:36,010 --> 00:46:37,260 Çfarë është një tjetër? 934 00:46:37,260 --> 00:46:37,680 >> STUDENT 39: fwrite. 935 00:46:37,680 --> 00:46:38,510 >> JASON HIRSCHHORN: fwrite. 936 00:46:38,510 --> 00:46:41,250 Dhe për qëllimet tona, fwrite, të cilat ne pamë këtu, është 937 00:46:41,250 --> 00:46:42,500 ndoshta zgjedhja më e mirë. 938 00:46:42,500 --> 00:46:51,970 939 00:46:51,970 --> 00:46:53,950 Ajo merr katër argumente si. 940 00:46:53,950 --> 00:46:57,570 Nishant, mund të jepni mua argumentet? 941 00:46:57,570 --> 00:47:00,570 >> Nishant nis të bëhet i pari-së të jetë vetëm tampon. 942 00:47:00,570 --> 00:47:02,210 >> JASON HIRSCHHORN: OK. 943 00:47:02,210 --> 00:47:06,752 >> Nishant: një të dytë vetëm do të jetë 1. 944 00:47:06,752 --> 00:47:09,510 Një e treta do të jetë 1. 945 00:47:09,510 --> 00:47:11,470 Dhe i katërti do të jetë DST. 946 00:47:11,470 --> 00:47:18,010 947 00:47:18,010 --> 00:47:19,550 >> JASON HIRSCHHORN: A ka dikush ndonjë pyetje në lidhje me atë vijë? 948 00:47:19,550 --> 00:47:28,370 949 00:47:28,370 --> 00:47:29,130 Kjo duket e mirë. 950 00:47:29,130 --> 00:47:29,590 OK. 951 00:47:29,590 --> 00:47:34,250 Deri tani ajo duket si një gjë që jeni humbur - në të vërtetë, le të shkruajë 952 00:47:34,250 --> 00:47:35,090 kjo linjë e fundit. 953 00:47:35,090 --> 00:47:36,300 Mbylle fotografi. 954 00:47:36,300 --> 00:47:38,880 Kush mund të na përfundojë deri shkrim këto dy linja e fundit? 955 00:47:38,880 --> 00:47:39,120 Po. 956 00:47:39,120 --> 00:47:39,850 Na vjen keq, si e ke emrin? 957 00:47:39,850 --> 00:47:40,580 >> Lucy: Lucy. 958 00:47:40,580 --> 00:47:41,580 >> JASON HIRSCHHORN: Lucy. 959 00:47:41,580 --> 00:47:47,560 >> Lucy: src fclose dhe pastaj destinacion fclose. 960 00:47:47,560 --> 00:47:52,430 >> JASON HIRSCHHORN: fclose, Paren hapur, src, Paren ngushtë, pikëpresje. 961 00:47:52,430 --> 00:47:53,680 Dhe fclose - 962 00:47:53,680 --> 00:47:57,560 963 00:47:57,560 --> 00:47:58,090 vërtet? 964 00:47:58,090 --> 00:48:01,710 >> Lucy: kllapat Open, DST dhe pastaj pikëpresje. 965 00:48:01,710 --> 00:48:02,520 >> JASON HIRSCHHORN: Great. 966 00:48:02,520 --> 00:48:04,338 Dhe çfarë duhet të përfshijë në fund? 967 00:48:04,338 --> 00:48:05,210 >> Lucy: Kthen 0. 968 00:48:05,210 --> 00:48:05,570 >> JASON HIRSCHHORN: Kthen 0. 969 00:48:05,570 --> 00:48:06,820 A duhet të? 970 00:48:06,820 --> 00:48:10,560 971 00:48:10,560 --> 00:48:12,590 Vetëm një pyetje. 972 00:48:12,590 --> 00:48:14,957 A kemi të përfshijë kthimin 0? 973 00:48:14,957 --> 00:48:16,240 >> STUDENTËT E SHUMËFISHTA: Jo. 974 00:48:16,240 --> 00:48:16,430 >> JASON HIRSCHHORN: Jo. 975 00:48:16,430 --> 00:48:18,090 Kryesor e bën këtë automatikisht në qoftë se ju merrni në fund. 976 00:48:18,090 --> 00:48:20,580 Por unë mendoj se është e mirë për përfshijë atë në mënyrë eksplicite. 977 00:48:20,580 --> 00:48:23,860 Sidomos kur ne jemi duke u kthyer tjera gjërat në të gjithë programin. 978 00:48:23,860 --> 00:48:24,810 OK. 979 00:48:24,810 --> 00:48:26,230 Kjo është ajo që ne jemi të humbur - 980 00:48:26,230 --> 00:48:28,520 GJATË çfarë? 981 00:48:28,520 --> 00:48:31,630 Kush mund të mendoj për disa - 982 00:48:31,630 --> 00:48:35,240 ka një kuptim të asaj që gjërat mund të shkojnë në atje? 983 00:48:35,240 --> 00:48:37,350 Edhe në qoftë se ajo është vetëm në disa pseudokod si gjuhë? 984 00:48:37,350 --> 00:48:41,330 >> Ajo që ne me të vërtetë janë - çfarë duam të shkojnë deri? 985 00:48:41,330 --> 00:48:41,980 Po, Lucy. 986 00:48:41,980 --> 00:48:43,240 >> Lucy: Fundi i file. 987 00:48:43,240 --> 00:48:44,990 >> JASON HIRSCHHORN: Fundi i file. 988 00:48:44,990 --> 00:48:49,280 Pra, çfarë do të thotë nga fund të file? 989 00:48:49,280 --> 00:48:50,955 >> Lucy: Pasi të keni arritur fund të skedarit, të ndaluar. 990 00:48:50,955 --> 00:48:51,240 >> JASON HIRSCHHORN: OK. 991 00:48:51,240 --> 00:48:53,460 Pra, një herë kemi arritur në fund të skedarit. 992 00:48:53,460 --> 00:48:56,893 Si e dimë ne kur ne kemi arritur fundi i dosjes? 993 00:48:56,893 --> 00:48:59,900 >> STUDENT 40: Mendoj buffer do të jetë i vendosur për NULL. 994 00:48:59,900 --> 00:49:01,885 >> STUDENT 41: Buffer deklarohet brenda lak. 995 00:49:01,885 --> 00:49:03,670 >> JASON HIRSCHHORN: Pra, ju mendoni se tampon do të jetë i vendosur për NULL. 996 00:49:03,670 --> 00:49:05,850 Pse do tampon jetë i vendosur për NULL? 997 00:49:05,850 --> 00:49:10,420 >> STUDENT 40: Sepse kur ju fread, ju jeni duke u përpjekur për të vënë 998 00:49:10,420 --> 00:49:13,528 asgjë në tampon. 999 00:49:13,528 --> 00:49:13,980 >> JASON HIRSCHHORN: OK. 1000 00:49:13,980 --> 00:49:15,550 Pra, ju jeni duke menduar fread - 1001 00:49:15,550 --> 00:49:19,000 kur ne kemi arritur në fund të skedar, ajo që është fread do të bëni? 1002 00:49:19,000 --> 00:49:21,230 Unë mendoj se kjo është çështja ne duhet të kuptoj. 1003 00:49:21,230 --> 00:49:21,960 Çfarë do fread bëni? 1004 00:49:21,960 --> 00:49:25,640 A do të vënë NULL në tampon, ose e bën atë të bëjë diçka tjetër? 1005 00:49:25,640 --> 00:49:27,510 Si mund të kuptoj se çfarë bën? 1006 00:49:27,510 --> 00:49:28,190 >> STUDENT 42: Man. 1007 00:49:28,190 --> 00:49:28,810 >> JASON HIRSCHHORN: Man. 1008 00:49:28,810 --> 00:49:32,280 Pra, le të shohim këtu. 1009 00:49:32,280 --> 00:49:34,000 Kthehu vlerë. 1010 00:49:34,000 --> 00:49:39,620 Më suksesit, fread dhe fwrite kthehen Numri i artikujve lexuar apo të shkruara. 1011 00:49:39,620 --> 00:49:43,700 Ky numër i barabartë me numrin e bytes transferuar vetëm kur madhësia është 1. 1012 00:49:43,700 --> 00:49:47,780 Në qoftë se ndodh një gabim, ose në fund të fotografi arrihet, vlera e kthyer është një 1013 00:49:47,780 --> 00:49:51,490 numërimin shkurtër pika ose 0. 1014 00:49:51,490 --> 00:49:57,860 >> Pra, për qëllimet tona, nëse arrin fread në fund të skedarit, dhe lexon nga 1015 00:49:57,860 --> 00:50:02,100 në fund të dosjes, nuk ka mbetur asgjë për të lexuar, atë që ajo do të kthehet? 1016 00:50:02,100 --> 00:50:03,290 >> STUDENT 43: Zero? 1017 00:50:03,290 --> 00:50:04,540 >> JASON HIRSCHHORN: Çfarë? 1018 00:50:04,540 --> 00:50:05,300 >> STUDENT 43: Zero? 1019 00:50:05,300 --> 00:50:05,690 >> JASON HIRSCHHORN: Zero. 1020 00:50:05,690 --> 00:50:06,940 Ajo do të kthehen zero. 1021 00:50:06,940 --> 00:50:09,360 1022 00:50:09,360 --> 00:50:13,010 Pra, ne e dimë se fread, kur ne kemi arritur në fund të skedarit, është duke shkuar 1023 00:50:13,010 --> 00:50:13,690 të kthehen zero. 1024 00:50:13,690 --> 00:50:17,460 Si mund të përdorni atë në avantazhin tonë? 1025 00:50:17,460 --> 00:50:21,733 >> AVI: Ju mund të deklarojë një ndryshore jashtë e lak quajtur çek. 1026 00:50:21,733 --> 00:50:27,040 Nëse është e barabartë me check - 1027 00:50:27,040 --> 00:50:28,190 tani për tani - një. 1028 00:50:28,190 --> 00:50:28,920 >> JASON HIRSCHHORN: OK. 1029 00:50:28,920 --> 00:50:38,050 >> AVI: Dhe pastaj ju mund të vendosni një IF deklaratë menjëherë pas fread thënë nëse 1030 00:50:38,050 --> 00:50:42,600 fread është e barabartë me zero - 1031 00:50:42,600 --> 00:50:43,850 nr. 1032 00:50:43,850 --> 00:50:46,002 1033 00:50:46,002 --> 00:50:47,252 >> JASON HIRSCHHORN: Kush mund të ndihmojë Avi jashtë? 1034 00:50:47,252 --> 00:50:49,690 1035 00:50:49,690 --> 00:50:52,410 >> AVI: Cila është vlera e kthyer nga fread? 1036 00:50:52,410 --> 00:50:54,060 >> JASON HIRSCHHORN: Ne vetëm shkoi mbi këtë. 1037 00:50:54,060 --> 00:50:55,450 >> AVI: Si e përfaqësojnë atë? 1038 00:50:55,450 --> 00:50:57,190 >> JASON HIRSCHHORN: Pra, ai kthehet - Le kërkoni këtu - ajo kthehet një 1039 00:50:57,190 --> 00:50:59,340 size_t, e cila është në thelb një numër të plotë. 1040 00:50:59,340 --> 00:51:02,240 1041 00:51:02,240 --> 00:51:03,410 Pra, ajo kthehet një numër të plotë. 1042 00:51:03,410 --> 00:51:05,160 Dhe në rastin tonë, ajo do të kthehen 1 ose 0 - 1043 00:51:05,160 --> 00:51:08,760 1 në qoftë se lexoni një gjë - një bajt, dhe 0 në qoftë se ne kemi arritur në fund. 1044 00:51:08,760 --> 00:51:13,560 1045 00:51:13,560 --> 00:51:16,450 Pra, nëse fread - 1046 00:51:16,450 --> 00:51:16,855 vërtet? 1047 00:51:16,855 --> 00:51:20,330 >> STUDENT 45: Nuk mund të ju vetëm vënë plotë fread (buffer, 1, 1, SRC) në 1048 00:51:20,330 --> 00:51:21,660 ndërsa lak? 1049 00:51:21,660 --> 00:51:26,510 >> JASON HIRSCHHORN: Pra, ju propozojmë duke bërë këtë në atje? 1050 00:51:26,510 --> 00:51:27,600 >> [VOICES Mbivendosje] 1051 00:51:27,600 --> 00:51:29,520 >> JASON HIRSCHHORN: Prit. 1052 00:51:29,520 --> 00:51:30,885 Pra, ne jemi duke hequr këtë. 1053 00:51:30,885 --> 00:51:33,300 Pra, ju jeni duke propozuar fread në atje? 1054 00:51:33,300 --> 00:51:35,457 Çfarë duhet të gjithashtu të lëvizë në qoftë se ju doni të bëni këtë? 1055 00:51:35,457 --> 00:51:36,740 >> STUDENT 45: tampon jashtë. 1056 00:51:36,740 --> 00:51:38,110 >> JASON HIRSCHHORN: Ne duhet gjithashtu të lëvizë këtë këtu. 1057 00:51:38,110 --> 00:51:41,700 >> STUDENT 45: Por e bën që vazhdimisht lëvizin atë përpara? 1058 00:51:41,700 --> 00:51:42,950 >> [VOICES Mbivendosje] 1059 00:51:42,950 --> 00:51:46,540 1060 00:51:46,540 --> 00:51:47,470 >> JASON HIRSCHHORN: OK. 1061 00:51:47,470 --> 00:51:50,570 Pra, kjo është ajo që Okshar propozuar. 1062 00:51:50,570 --> 00:51:51,930 Ne krijimin e tampon tonë. 1063 00:51:51,930 --> 00:51:57,020 Ne GJATË fread, atëherë ne fwrite. 1064 00:51:57,020 --> 00:51:59,760 Mendime mbi këtë? 1065 00:51:59,760 --> 00:52:04,050 >> STUDENT 46: Pyetja ime e vetme është, do të ai në fakt ekzekutuar fread komandës? 1066 00:52:04,050 --> 00:52:06,175 >> JASON HIRSCHHORN: pyetje e Madhe. 1067 00:52:06,175 --> 00:52:11,050 Kur ju jeni duke i dhënë një telefonatë funksion brenda një kusht, bën që 1068 00:52:11,050 --> 00:52:12,300 thirrje funksion të ekzekutuar? 1069 00:52:12,300 --> 00:52:15,760 1070 00:52:15,760 --> 00:52:17,770 Ne kemi parë shembuj të këtë më parë. 1071 00:52:17,770 --> 00:52:24,900 1072 00:52:24,900 --> 00:52:25,660 E drejtë? 1073 00:52:25,660 --> 00:52:26,125 >> STUDENT 46: OK. 1074 00:52:26,125 --> 00:52:26,590 Po. 1075 00:52:26,590 --> 00:52:30,140 Pra, ajo ka ekzekutuar. 1076 00:52:30,140 --> 00:52:31,790 >> JASON HIRSCHHORN: Ne kemi parë gjëra të si se para, ku ne kemi një 1077 00:52:31,790 --> 00:52:33,550 thirrje funksion brenda një kusht. 1078 00:52:33,550 --> 00:52:35,540 A ekzekutojë se thirrje funksion? 1079 00:52:35,540 --> 00:52:36,350 Po. 1080 00:52:36,350 --> 00:52:37,410 Pra, përgjigja është po. 1081 00:52:37,410 --> 00:52:41,010 Kjo thirrje funksion do të ekzekutojë. 1082 00:52:41,010 --> 00:52:42,418 Por përsëri, kjo është ajo që ne duam? 1083 00:52:42,418 --> 00:52:49,250 1084 00:52:49,250 --> 00:52:52,204 >> Çfarë është një mënyrë që ne mund të kuptoj nëse kjo është ajo që ne duam? 1085 00:52:52,204 --> 00:52:53,470 >> STUDENTËT E SHUMËFISHTA: Run atë? 1086 00:52:53,470 --> 00:52:54,460 >> JASON HIRSCHHORN: Ne mund të drejtuar atë. 1087 00:52:54,460 --> 00:52:57,500 Por, para se të bëjmë këtë, ne mund të edhe arsye me këtë. 1088 00:52:57,500 --> 00:52:57,920 Nëse - 1089 00:52:57,920 --> 00:53:01,920 thonë se ne kemi një bajt në tonë paraqesë, ne do të merrni për të këtu, 1090 00:53:01,920 --> 00:53:02,660 ne do të merrni për këtë kod. 1091 00:53:02,660 --> 00:53:03,620 Kjo do të kandidojë. 1092 00:53:03,620 --> 00:53:07,780 fread do të kthehet një bajt dhe ruajtur atë në buffer. 1093 00:53:07,780 --> 00:53:11,290 Dhe kjo do të vlerësojë në 1, drejtë, pasi ai kthehet 1. 1094 00:53:11,290 --> 00:53:12,640 >> Kështu, ndërsa 1. 1095 00:53:12,640 --> 00:53:15,325 A do të thotë kodin brenda lak, ndërsa do të ekzekutojë? 1096 00:53:15,325 --> 00:53:15,453 >> STUDENT 47: Po. 1097 00:53:15,453 --> 00:53:16,040 Është e vërtetë. 1098 00:53:16,040 --> 00:53:16,290 >> JASON HIRSCHHORN: Po. 1099 00:53:16,290 --> 00:53:17,490 1 është e vërtetë. 1100 00:53:17,490 --> 00:53:18,240 Kjo nuk është 0. 1101 00:53:18,240 --> 00:53:20,360 Pra kodi brenda këtu do të ekzekutojë. 1102 00:53:20,360 --> 00:53:22,300 Pra, ne do të shkruaj atë. 1103 00:53:22,300 --> 00:53:25,340 Ne do të kthehen në këtë vijë edhe një herë. 1104 00:53:25,340 --> 00:53:26,850 Tani ne kemi - 1105 00:53:26,850 --> 00:53:28,550 ne jemi në fund të skedarit tonë. 1106 00:53:28,550 --> 00:53:30,980 Ne lexojmë nga fundi i skedarit tonë, sepse ne vetëm kishte një bajt në të. 1107 00:53:30,980 --> 00:53:34,270 >> Fread kthehet 0, dyqane diçka në tampon. 1108 00:53:34,270 --> 00:53:35,890 Unë sinqerisht nuk e di se çfarë ajo ruan në tampon. 1109 00:53:35,890 --> 00:53:38,380 Ne ndoshta mund të kërkoni për të parë atë që bën. 1110 00:53:38,380 --> 00:53:40,130 Se unë sinqerisht nuk e di. 1111 00:53:40,130 --> 00:53:43,090 Ne nuk e dimë, i cili kujdeset se çfarë ajo ruan në tampon? 1112 00:53:43,090 --> 00:53:44,010 Por kjo do të kthehet 0. 1113 00:53:44,010 --> 00:53:45,440 Dhe do të ndërsa 0 kryej? 1114 00:53:45,440 --> 00:53:49,950 1115 00:53:49,950 --> 00:53:51,180 >> GJATË 0 nuk do të ekzekutojë. 1116 00:53:51,180 --> 00:53:54,030 Pra, atëherë ne do të lëvizin poshtë këtu. 1117 00:53:54,030 --> 00:53:58,870 Pra, le të marrë një shfaqje e duarve nëse kjo është kodi ne duhet të kandidojë, ose në qoftë se ne 1118 00:53:58,870 --> 00:54:00,140 duhet të bëjë ndryshime të parë. 1119 00:54:00,140 --> 00:54:02,180 Pra, nëse ju mendoni se - ju duhet për të votuar. 1120 00:54:02,180 --> 00:54:06,885 Nëse ju mendoni se ne duhet të drejtuar këtë kod si është, ju lutemi të ngritur dorën. 1121 00:54:06,885 --> 00:54:12,440 1122 00:54:12,440 --> 00:54:13,400 >> OK. 1123 00:54:13,400 --> 00:54:14,315 Ka një - 1124 00:54:14,315 --> 00:54:17,260 ju keni një pyetje, shqetësim? 1125 00:54:17,260 --> 00:54:18,080 Po. 1126 00:54:18,080 --> 00:54:21,240 >> STUDENT 48: Pasi ne shkojmë buffer jashtë lak, nuk kemi 1127 00:54:21,240 --> 00:54:22,670 duhet të malloc atë? 1128 00:54:22,670 --> 00:54:23,310 >> JASON HIRSCHHORN: pyetje e Madhe. 1129 00:54:23,310 --> 00:54:26,670 Pasi ne shkojmë tampon jashtë loop, ne duhet të malloc atë? 1130 00:54:26,670 --> 00:54:28,400 Kjo është një pyetje Shtrirja. 1131 00:54:28,400 --> 00:54:32,130 Nëse do të nisja tampon jashtë i këtij lak, do të ekzistojë 1132 00:54:32,130 --> 00:54:33,534 brenda lak? 1133 00:54:33,534 --> 00:54:35,230 >> STUDENTËT E SHUMËFISHTA: Po. 1134 00:54:35,230 --> 00:54:35,580 >> JASON HIRSCHHORN: Po. 1135 00:54:35,580 --> 00:54:40,100 Shtrirja e saj mbulon brenda lak, dhe, me të vërtetë, çdo gjë më poshtë atë brenda 1136 00:54:40,100 --> 00:54:42,460 të këtij kodi, duke përfshirë gjërat brenda këtu. 1137 00:54:42,460 --> 00:54:43,930 Pra, ne nuk kemi nevojë të malloc atë. 1138 00:54:43,930 --> 00:54:47,766 Kjo është një variabël lokale, dhe qëllimin e saj ende përfshin lak. 1139 00:54:47,766 --> 00:54:49,540 >> STUDENT 49: A kemi nevojë për të liruar atë? 1140 00:54:49,540 --> 00:54:51,770 >> JASON HIRSCHHORN: A ne duhet të tampon të lirë? 1141 00:54:51,770 --> 00:54:53,860 >> STUDENT 49: Po, në qoftë se ne nuk e bëjmë malloc. 1142 00:54:53,860 --> 00:54:55,750 >> JASON HIRSCHHORN: A ne duhet të tampon të lirë? 1143 00:54:55,750 --> 00:54:57,160 Ne nuk e bëjmë. 1144 00:54:57,160 --> 00:55:01,280 Përsëri, kjo është një variabël lokale, kështu që ne nuk kemi nevojë për të liruar atë. 1145 00:55:01,280 --> 00:55:02,170 OK. 1146 00:55:02,170 --> 00:55:03,480 Le të shohim se çfarë ndodh. 1147 00:55:03,480 --> 00:55:17,290 1148 00:55:17,290 --> 00:55:18,220 Pra, është e uninitialized. 1149 00:55:18,220 --> 00:55:20,830 Kjo ishte ajo që diçka që Marcus propozuar më parë. 1150 00:55:20,830 --> 00:55:25,340 Pra, ne kemi se gabimi, tampon ndryshueshme është uninitialized kur përdoret këtu. 1151 00:55:25,340 --> 00:55:26,590 >> Si mund ta fix this? 1152 00:55:26,590 --> 00:55:29,460 1153 00:55:29,460 --> 00:55:30,960 >> STUDENT 50: malloc atë? 1154 00:55:30,960 --> 00:55:31,770 >> STUDENT 51: barabartë NULL? 1155 00:55:31,770 --> 00:55:33,000 >> STUDENT 52: Thuaj tampon barabartë NULL. 1156 00:55:33,000 --> 00:55:34,250 >> JASON HIRSCHHORN: OK. 1157 00:55:34,250 --> 00:55:40,040 1158 00:55:40,040 --> 00:55:40,770 Duket e mirë. 1159 00:55:40,770 --> 00:55:42,410 Ne kemi tani. 1160 00:55:42,410 --> 00:55:45,630 Le të krijojnë diçka të provoni kopjimi. 1161 00:55:45,630 --> 00:56:08,990 1162 00:56:08,990 --> 00:56:10,490 Pra, ne kemi skedar teksti tonë. 1163 00:56:10,490 --> 00:56:11,740 Si mund të drejtuar këtë program? 1164 00:56:11,740 --> 00:56:14,140 1165 00:56:14,140 --> 00:56:15,472 Po. 1166 00:56:15,472 --> 00:56:22,230 >> STUDENT 53: Ju mund të bëni dot çaj cp, test.txt. 1167 00:56:22,230 --> 00:56:25,140 Dhe pastaj ju mund të emrit një tjetër fotografi të cilat ajo do dyqan në. 1168 00:56:25,140 --> 00:56:25,510 >> JASON HIRSCHHORN: OK. 1169 00:56:25,510 --> 00:56:27,380 Ne do të thërrasë atë out.txt. 1170 00:56:27,380 --> 00:56:28,630 Ftohtë? 1171 00:56:28,630 --> 00:56:31,700 1172 00:56:31,700 --> 00:56:34,320 Faji seg. 1173 00:56:34,320 --> 00:56:35,570 Mendime mbi fajin seg? 1174 00:56:35,570 --> 00:56:40,900 1175 00:56:40,900 --> 00:56:41,390 Kjo është e madhe. 1176 00:56:41,390 --> 00:56:45,040 Si mund të gjeni se ku faji seg është? 1177 00:56:45,040 --> 00:56:45,680 Çfarë? 1178 00:56:45,680 --> 00:56:45,990 >> STUDENT 54: gdb. 1179 00:56:45,990 --> 00:56:47,240 >> JASON HIRSCHHORN: gdb. 1180 00:56:47,240 --> 00:56:51,400 1181 00:56:51,400 --> 00:56:55,300 Ne drejtuar gdb duke shkruar gdb dot plagë, emrin e programit tonë. 1182 00:56:55,300 --> 00:56:57,020 Nuk ka argumente command line atje. 1183 00:56:57,020 --> 00:56:59,570 Ne jemi duke shkuar për të vendosur një Breakpoint në kryesore. 1184 00:56:59,570 --> 00:57:02,190 Nëse unë dua të fillojë gdb, çfarë të bëj? 1185 00:57:02,190 --> 00:57:02,730 >> STUDENT 55: R. 1186 00:57:02,730 --> 00:57:08,910 >> JASON HIRSCHHORN: R. Dhe pastaj çfarë? 1187 00:57:08,910 --> 00:57:09,400 >> STUDENT 55: Argumentet? 1188 00:57:09,400 --> 00:57:10,650 >> JASON HIRSCHHORN: Pastaj argumente command-line. 1189 00:57:10,650 --> 00:57:15,890 1190 00:57:15,890 --> 00:57:17,120 Le të ecin nëpër. 1191 00:57:17,120 --> 00:57:19,090 N është vetëm duke marrë më rresht pas rreshti. 1192 00:57:19,090 --> 00:57:21,450 Unë jam duke shkuar për të shkuar deri I merrni faj tim seg. 1193 00:57:21,450 --> 00:57:22,700 Nuk është faji im seg. 1194 00:57:22,700 --> 00:57:24,960 1195 00:57:24,960 --> 00:57:27,875 Ajo duket si fread shkaktuar faji im seg. 1196 00:57:27,875 --> 00:57:30,570 1197 00:57:30,570 --> 00:57:32,770 Unë e di fread shkaktuar fajin tim seg, për shkak se ishte 1198 00:57:32,770 --> 00:57:34,950 Linja ne vetëm ekzekutuar. 1199 00:57:34,950 --> 00:57:36,530 >> Dhe e vetmja gjë që ishte ndodh në këtë linjë - 1200 00:57:36,530 --> 00:57:37,520 Dy gjëra janë duke ndodhur. 1201 00:57:37,520 --> 00:57:40,610 Fread ishte duke shkuar, dhe pastaj ne ishim duke bërë disa kontrolluar kohë. 1202 00:57:40,610 --> 00:57:44,820 Unë jam i gatshëm të bast se GJATË kontrolluar nuk ishte shkaktuar fajin tim seg. 1203 00:57:44,820 --> 00:57:46,950 Më shumë gjasa, fread ishte duke shkaktuar fajin tim seg. 1204 00:57:46,950 --> 00:57:49,260 Unë gjithashtu shoh diçka këtu, memcopy. 1205 00:57:49,260 --> 00:57:50,500 >> Kopje kujtesës. 1206 00:57:50,500 --> 00:57:53,820 Tingëllon si lëviz kujtesën nga një vend në tjetrën. 1207 00:57:53,820 --> 00:57:56,890 Tingëllon si diçka që do të ndodhë në fread, ndoshta disa kujtesës 1208 00:57:56,890 --> 00:57:58,910 lëvizin nga këtu për të këtu. 1209 00:57:58,910 --> 00:58:01,740 1210 00:58:01,740 --> 00:58:03,860 Le të kalojnë nëpër këtë përsëri. 1211 00:58:03,860 --> 00:58:06,900 Si mund të fillojë atë mbi dhe drejtuar atë përsëri? 1212 00:58:06,900 --> 00:58:08,092 Po. 1213 00:58:08,092 --> 00:58:15,140 >> STUDENT 56: A keni nevojë për të vënë një simbol para tampon? 1214 00:58:15,140 --> 00:58:17,800 >> JASON HIRSCHHORN: Pra, ampersand para tampon të më jepte adresën e 1215 00:58:17,800 --> 00:58:22,330 buffer, e cila është një char *. 1216 00:58:22,330 --> 00:58:25,250 Le të drejtuar nëpër këtë një më shumë kohë. 1217 00:58:25,250 --> 00:58:28,248 Si mund të drejtuar nëpër atë një herë më shumë? 1218 00:58:28,248 --> 00:58:29,210 >> STUDENT 57: A mund të ju vetëm shkruani drejtuar përsëri? 1219 00:58:29,210 --> 00:58:32,050 >> JASON HIRSCHHORN: Vetëm shkruani të kandidojë përsëri. 1220 00:58:32,050 --> 00:58:33,415 Pra, ne nuk do të ekzekutuar këtë linjë. 1221 00:58:33,415 --> 00:58:36,250 1222 00:58:36,250 --> 00:58:39,240 Pra buffer është një tregues NULL. 1223 00:58:39,240 --> 00:58:40,490 Korrigjuar? 1224 00:58:40,490 --> 00:58:45,870 1225 00:58:45,870 --> 00:58:47,060 Ajo është duke treguar - le të shohim. 1226 00:58:47,060 --> 00:58:48,500 Në qoftë se ne kemi tonë - 1227 00:58:48,500 --> 00:58:50,430 tërheqë një foto të shpejtë të kësaj. 1228 00:58:50,430 --> 00:58:53,500 A mund të gjithë të parë nëse Unë shkruaj këtu? 1229 00:58:53,500 --> 00:59:02,890 >> Pra, në rafte, ne kemi një lokal ndryshueshme dhe është quajtur tampon, dhe 1230 00:59:02,890 --> 00:59:08,230 kjo është një tregues për një char. 1231 00:59:08,230 --> 00:59:10,325 Çfarë Adresa është kjo char në? 1232 00:59:10,325 --> 00:59:12,550 >> STUDENT 58: 0x0. 1233 00:59:12,550 --> 00:59:13,400 >> JASON HIRSCHHORN: E drejta. 1234 00:59:13,400 --> 00:59:14,200 Kjo është ajo që kjo është. 1235 00:59:14,200 --> 00:59:17,600 Në këtu, brenda tampon, është ruajtur 0x0. 1236 00:59:17,600 --> 00:59:20,480 Kjo është ajo që ne kemi - Setup ne kemi tani. 1237 00:59:20,480 --> 00:59:27,540 Pra kjo linjë, fread, vë diçka nga burimi ku? 1238 00:59:27,540 --> 00:59:30,560 Në këtë kuti ose në këtë kuti? 1239 00:59:30,560 --> 00:59:31,060 Cili kuti? 1240 00:59:31,060 --> 00:59:33,290 Majtas kuti apo kuti e duhur? 1241 00:59:33,290 --> 00:59:34,750 Kjo kuti e drejtë. 1242 00:59:34,750 --> 00:59:38,440 >> Ajo ndjek treguesin, dhe e vë atë në këtu. 1243 00:59:38,440 --> 00:59:42,620 Kur ne përpiqemi dhe të kujtesës në kontakt lokacioni 0, çfarë bëjmë ne të merrni? 1244 00:59:42,620 --> 00:59:45,050 Një faji segmentimit. 1245 00:59:45,050 --> 00:59:46,550 Kjo është gabim që ne kemi tani. 1246 00:59:46,550 --> 00:59:46,970 Po. 1247 00:59:46,970 --> 00:59:48,410 >> STUDENT 59: A nuk keni për të vënë yje tampon? 1248 00:59:48,410 --> 00:59:49,180 Apo jo? 1249 00:59:49,180 --> 00:59:50,050 Për fread? 1250 00:59:50,050 --> 00:59:51,450 >> JASON HIRSCHHORN: Pra fread merr një tregues. 1251 00:59:51,450 --> 00:59:54,920 1252 00:59:54,920 --> 00:59:55,900 Pra, ai kalon në tampon. 1253 00:59:55,900 --> 00:59:58,980 Dhe atëherë ajo do të de-referencë ajo diku brenda fread. 1254 00:59:58,980 --> 01:00:00,700 Por përsëri, ne e pamë, ajo merr një akrep. 1255 01:00:00,700 --> 01:00:02,560 Ne nuk kemi nevojë për të kaluar atë tampon yll. 1256 01:00:02,560 --> 01:00:05,350 Kjo do të kalojnë ai çdo gjë që është këtu. 1257 01:00:05,350 --> 01:00:07,980 Dhe kjo ndoshta do të na japin një gabim sepse ne jemi të de-referenca atë. 1258 01:00:07,980 --> 01:00:08,150 >> E drejtë? 1259 01:00:08,150 --> 01:00:10,690 Këtë tregues kur ne de-referencë, kur ne të përpiqemi për të hyrë në këtë vend, 1260 01:00:10,690 --> 01:00:13,140 ne jemi duke marrë një gabim - faji ynë segmentimit. 1261 01:00:13,140 --> 01:00:15,800 Pra, - 1262 01:00:15,800 --> 01:00:16,690 oops. 1263 01:00:16,690 --> 01:00:19,090 Ne jemi duke shkuar për të lënë jashtë të gdb. 1264 01:00:19,090 --> 01:00:20,160 Shkarko ynë - 1265 01:00:20,160 --> 01:00:22,990 problemi ynë - është e drejtë këtu në këtë linjë. 1266 01:00:22,990 --> 01:00:26,410 Dhe kjo është një problem, sepse e kësaj linje. 1267 01:00:26,410 --> 01:00:31,780 >> Si mund të krijoni një kuti që është i arritshëm në fread. 1268 01:00:31,780 --> 01:00:31,980 E drejtë? 1269 01:00:31,980 --> 01:00:35,190 Ne kemi nevojë për të krijuar një kuti që është një byte të madh, madhësia e një char. 1270 01:00:35,190 --> 01:00:38,590 Por ne kemi nevojë që kuti të jenë të aksesueshme kur ky funksion ekzekuton. 1271 01:00:38,590 --> 01:00:39,390 Pra, ku - 1272 01:00:39,390 --> 01:00:39,640 po. 1273 01:00:39,640 --> 01:00:40,440 Ndonjë ide? 1274 01:00:40,440 --> 01:00:43,615 >> STUDENT 60: Vetëm të vendosur atë si çdo karakter të rastit. 1275 01:00:43,615 --> 01:00:49,150 1276 01:00:49,150 --> 01:00:51,640 Vetëm të bëjë është e barabartë Char Buffer karakteri. 1277 01:00:51,640 --> 01:00:53,795 Dhe pastaj, kur ju keni tampon atje - 1278 01:00:53,795 --> 01:00:54,110 >> JASON HIRSCHHORN: Prisni. 1279 01:00:54,110 --> 01:00:55,110 Char tampon? 1280 01:00:55,110 --> 01:00:55,880 Pra, asnjë yll? 1281 01:00:55,880 --> 01:00:56,390 >> STUDENT 60: Po. 1282 01:00:56,390 --> 01:00:58,560 Merrni nga yllin. 1283 01:00:58,560 --> 01:01:00,690 Është e barabartë me një karakter të rastit. 1284 01:01:00,690 --> 01:01:01,460 >> JASON HIRSCHHORN: OK. 1285 01:01:01,460 --> 01:01:02,420 Pra, më jepni një të tillë. 1286 01:01:02,420 --> 01:01:03,170 >> STUDENT 60: Like a apo diçka. 1287 01:01:03,170 --> 01:01:06,160 Dhe atëherë kur ju keni buffer atje, ju përdorni një - 1288 01:01:06,160 --> 01:01:06,420 >> STUDENT 61: Star? 1289 01:01:06,420 --> 01:01:07,650 Oh jo, simbol. 1290 01:01:07,650 --> 01:01:09,000 >> STUDENT 60: Përdorimi zëvendësojeni me. 1291 01:01:09,000 --> 01:01:09,470 >> JASON HIRSCHHORN: OK. 1292 01:01:09,470 --> 01:01:11,320 Dhe çfarë lidhje në fwrite? 1293 01:01:11,320 --> 01:01:14,150 >> STUDENT 60: Përdorimi zëvendësojeni përsëri. 1294 01:01:14,150 --> 01:01:14,320 >> JASON HIRSCHHORN: Në rregull. 1295 01:01:14,320 --> 01:01:20,970 Pra, ideja juaj është, ne të krijojë një char dhe vënë diçka në të, dhe pastaj të 1296 01:01:20,970 --> 01:01:22,612 shkruaj për atë char. 1297 01:01:22,612 --> 01:01:23,760 >> STUDENT 60: Po. 1298 01:01:23,760 --> 01:01:25,916 >> JASON HIRSCHHORN: Çfarë mendojnë njerëzit? 1299 01:01:25,916 --> 01:01:27,770 >> STUDENT 62: Është e ndërlikuar. 1300 01:01:27,770 --> 01:01:28,460 >> JASON HIRSCHHORN: OK. 1301 01:01:28,460 --> 01:01:29,760 Le të tërheqë atë. 1302 01:01:29,760 --> 01:01:35,720 Pra këtë herë, unë jam duke shkuar për të nxjerrë këtë në kuqe në rafte këtu, dhe pastaj ne 1303 01:01:35,720 --> 01:01:36,410 do të ketë - 1304 01:01:36,410 --> 01:01:36,822 ooh! 1305 01:01:36,822 --> 01:01:38,060 Më vjen keq. 1306 01:01:38,060 --> 01:01:45,930 Pra, këtë herë ne kemi diçka të quajtur tampon, dhe kjo është në rafte. 1307 01:01:45,930 --> 01:01:48,430 Korrigjuar? 1308 01:01:48,430 --> 01:01:51,520 Dhe ne jemi duke kursyer në të një, fillimisht. 1309 01:01:51,520 --> 01:01:53,830 >> Pastaj ne kemi thirrjen tonë për fread. 1310 01:01:53,830 --> 01:02:01,300 Çfarë fread bën është ajo merr një bajt nga fotografi tonë dhe e vë atë diku. 1311 01:02:01,300 --> 01:02:04,570 Ajo e vë atë në çfarëdo gjë është duke treguar. 1312 01:02:04,570 --> 01:02:09,130 E pra, para se të kishim këtë adresë - 1313 01:02:09,130 --> 01:02:10,250 0x0. 1314 01:02:10,250 --> 01:02:13,349 Tani ajo që adresa kemi? 1315 01:02:13,349 --> 01:02:14,650 >> STUDENT 63: Çfarëdo Adresa buffer është. 1316 01:02:14,650 --> 01:02:15,970 >> JASON HIRSCHHORN: Çfarëdo Adresa buffer është. 1317 01:02:15,970 --> 01:02:22,370 Kjo ndoshta do të jetë diçka të tillë. 1318 01:02:22,370 --> 01:02:26,950 Ndoshta do të fillojë me një b dhe një F, dhe pastaj kanë gjashtë tjetrin 1319 01:02:26,950 --> 01:02:27,970 hexadecimal digits. 1320 01:02:27,970 --> 01:02:28,480 Nuk ka rëndësi. 1321 01:02:28,480 --> 01:02:29,470 Disa adresa. 1322 01:02:29,470 --> 01:02:31,410 Dhe ne jemi duke kaluar atë adresë in 1323 01:02:31,410 --> 01:02:34,790 >> Dhe ne jemi duke shkuar për të vënë një tonë gjë e bajt në atë adresë. 1324 01:02:34,790 --> 01:02:38,470 Pra, ne jemi duke shkuar për të vënë një tonë gjë bajt brenda këtu. 1325 01:02:38,470 --> 01:02:40,800 Dhe atëherë ne jemi duke shkuar për të shkruar nga çfarë është kurrë brenda këtu. 1326 01:02:40,800 --> 01:02:43,425 1327 01:02:43,425 --> 01:02:45,380 A ka dikush ndonjë pyetje për këtë? 1328 01:02:45,380 --> 01:02:50,990 1329 01:02:50,990 --> 01:02:54,690 Kush mendon se ky kod do të punojë? 1330 01:02:54,690 --> 01:02:56,020 >> Ngritja dorën tuaj nëse ju mendoni se ky kod do të punojnë. 1331 01:02:56,020 --> 01:02:57,270 Ju duhet të marrë një qëndrim. 1332 01:02:57,270 --> 01:03:00,670 1333 01:03:00,670 --> 01:03:02,500 Dhe kush mendon se ky kod nuk do të funksionojë? 1334 01:03:02,500 --> 01:03:04,610 Ngritja dorën tuaj. 1335 01:03:04,610 --> 01:03:06,750 Të gjithë të tjerët duhet të jenë të duke ngritur dorën e tyre. 1336 01:03:06,750 --> 01:03:07,670 OK. 1337 01:03:07,670 --> 01:03:09,390 Michael, ku po qëndron? 1338 01:03:09,390 --> 01:03:10,680 >> Michael: Unë nuk mund të vendosë. 1339 01:03:10,680 --> 01:03:12,070 Lloji i në mes. 1340 01:03:12,070 --> 01:03:12,736 >> JASON HIRSCHHORN: Ju jeni në mes. 1341 01:03:12,736 --> 01:03:13,092 Zgjidh një të tillë. 1342 01:03:13,092 --> 01:03:14,400 >> Michael: Unë do të keni besim dhe thonë se ajo do të punojë. 1343 01:03:14,400 --> 01:03:14,660 >> JASON HIRSCHHORN: OK. 1344 01:03:14,660 --> 01:03:16,047 Ju do të keni besim dhe thonë se ajo punon? 1345 01:03:16,047 --> 01:03:26,490 1346 01:03:26,490 --> 01:03:27,020 Çfarë ka ndodhur? 1347 01:03:27,020 --> 01:03:28,270 >> [VOICES Mbivendosje] 1348 01:03:28,270 --> 01:03:35,170 1349 01:03:35,170 --> 01:03:35,950 >> JASON HIRSCHHORN: Jo faji seg. 1350 01:03:35,950 --> 01:03:40,320 Si mund të kontrollojë për të parë nëse dy gjëra janë të barabartë? 1351 01:03:40,320 --> 01:03:42,060 Dy fotografi janë të barabartë. 1352 01:03:42,060 --> 01:03:43,300 >> STUDENT 64: Diff. 1353 01:03:43,300 --> 01:03:45,490 >> JASON HIRSCHHORN: Diff. 1354 01:03:45,490 --> 01:03:51,630 Kontrolle Diff për dallimet ndërmjet dy fotografi, dhe nëse ajo kthehet 1355 01:03:51,630 --> 01:03:52,890 asgjë, ata janë identike. 1356 01:03:52,890 --> 01:03:59,030 Dhe nëse kemi të hapur, ne kemi marrë dosjen tonë. 1357 01:03:59,030 --> 01:04:00,490 Pra, kjo ishte zgjidhja e saktë. 1358 01:04:00,490 --> 01:04:01,780 Le të shikojmë mbrapa në atë një herë. 1359 01:04:01,780 --> 01:04:04,080 Ne fakt nuk e bëri edhe duhet të nisja atë. 1360 01:04:04,080 --> 01:04:05,520 >> Kjo ndoshta do të duket pak pastër në qoftë se ju nuk e keni vënë 1361 01:04:05,520 --> 01:04:07,680 diçka të rastit në atje. 1362 01:04:07,680 --> 01:04:13,070 Pika qenë, ju e nevojshme për të krijuar një hapësirë ​​për të ruajtur diçka nga 1363 01:04:13,070 --> 01:04:15,530 fread dhe të marrë diçka nga fwrite. 1364 01:04:15,530 --> 01:04:18,400 Dhe kjo gjë duhej të jetë ose një lokal ndryshueshme në rafte - ju 1365 01:04:18,400 --> 01:04:19,890 mund të kemi malloc'd një hapësirë. 1366 01:04:19,890 --> 01:04:23,030 >> Pra, ne në fakt mund të ketë malloc shkruar këtu, dhe 1367 01:04:23,030 --> 01:04:25,420 që do të kishte punuar. 1368 01:04:25,420 --> 01:04:28,660 Dhe atëherë ne do të kemi qenë magazinimin e gjërat tona diku në grumbull. 1369 01:04:28,660 --> 01:04:31,940 Por kjo është në të vërtetë, me siguri, zgjidhja më elegante. 1370 01:04:31,940 --> 01:04:34,490 Vetëm të krijojë një hapësirë ​​në rafte sepse të gjitha këto për të shkuar. 1371 01:04:34,490 --> 01:04:37,690 1372 01:04:37,690 --> 01:04:38,990 >> Unë do të ketë dy komente të tjera. 1373 01:04:38,990 --> 01:04:44,650 Nëse ju do të marrë kthesë në këtë, dhe pastaj të merrni shënoi në këtë, komentet e mia 1374 01:04:44,650 --> 01:04:47,400 do të jetë si më poshtë. 1375 01:04:47,400 --> 01:04:54,300 Këto 1 është këtu, për mua, shikoni si numrat magjike. 1376 01:04:54,300 --> 01:04:56,860 Kjo 1, në aspektin e fread, ka kuptim. 1377 01:04:56,860 --> 01:04:59,580 Kjo është numër i gjërave për të lexuar ose shkruar. 1378 01:04:59,580 --> 01:05:03,740 >> Por kjo e drejtë këtu duhet ndoshta të jetë diçka tjetër. 1379 01:05:03,740 --> 01:05:05,180 Pra, çfarë është një zgjidhje? 1380 01:05:05,180 --> 01:05:06,545 >> STUDENT 65: Madhësia e bajt. 1381 01:05:06,545 --> 01:05:10,100 1382 01:05:10,100 --> 01:05:11,080 >> JASON HIRSCHHORN: Ashtu si ajo? 1383 01:05:11,080 --> 01:05:13,130 >> STUDENT 65: Madhësia e shkrumb. 1384 01:05:13,130 --> 01:05:13,820 >> JASON HIRSCHHORN: Madhësia e shkrumb. 1385 01:05:13,820 --> 01:05:15,290 Po, bajt nuk është një lloj. 1386 01:05:15,290 --> 01:05:16,320 Pra, madhësia e punëve char. 1387 01:05:16,320 --> 01:05:30,270 Ne mund të ketë, në majë të Kodi ynë, # përcaktuar se. 1388 01:05:30,270 --> 01:05:33,410 E quajtur diçka byte dhe kjo është me të vërtetë një char. 1389 01:05:33,410 --> 01:05:37,675 Në fakt, një qasje edhe më të mirë mund të ketë qenë kjo - 1390 01:05:37,675 --> 01:05:39,391 uint. 1391 01:05:39,391 --> 01:05:40,780 Çdokush e di se çka është? 1392 01:05:40,780 --> 01:05:44,388 1393 01:05:44,388 --> 01:05:44,840 >> Më vjen keq. 1394 01:05:44,840 --> 01:05:46,090 Unë kam atë prapa. 1395 01:05:46,090 --> 01:05:51,620 1396 01:05:51,620 --> 01:05:52,200 Prisni, nr. 1397 01:05:52,200 --> 01:05:53,450 Cila mënyrë e bën atë të shkojnë? 1398 01:05:53,450 --> 01:05:58,071 1399 01:05:58,071 --> 01:05:59,660 Çdokush e di se çka është? 1400 01:05:59,660 --> 01:06:00,950 Po. 1401 01:06:00,950 --> 01:06:05,650 >> STUDENT 67: dashur për të ndihmuar të standartizuar në të gjithë sistemet e gjërave që 1402 01:06:05,650 --> 01:06:08,760 kanë - si integers të panënshkruara se kemi 8 byte? 1403 01:06:08,760 --> 01:06:11,785 >> JASON HIRSCHHORN: Kjo është saktësisht e drejtë. 1404 01:06:11,785 --> 01:06:14,310 Në makina të ndryshme, madhësinë e një char - 1405 01:06:14,310 --> 01:06:15,180 nuk zakonisht një char. 1406 01:06:15,180 --> 01:06:16,100 Chars janë zakonisht një bajt. 1407 01:06:16,100 --> 01:06:19,590 Por madhësia e llojeve të tjera të të dhënave janë të madhësive të ndryshme në një makinë 32-bit 1408 01:06:19,590 --> 01:06:21,370 kundrejt një makinë 64-bit. 1409 01:06:21,370 --> 01:06:25,180 Një uint8_t është gjithmonë 8 bit - 1410 01:06:25,180 --> 01:06:27,210 gjithmonë një bajt. 1411 01:06:27,210 --> 01:06:29,580 >> Dhe unë duhet të përfshijë që standarde header int fotografi. 1412 01:06:29,580 --> 01:06:35,040 Deri tani, kjo do të kishte qenë ndoshta mënyra më e mirë për të shkruar këtë kod. 1413 01:06:35,040 --> 01:06:40,160 1414 01:06:40,160 --> 01:06:41,450 Kështu që unë të shpëtoj nga numrat magjike. 1415 01:06:41,450 --> 01:06:44,690 Dhe unë gjithashtu kanë një më logjike shkruani për tampon. 1416 01:06:44,690 --> 01:06:49,450 Kjo nuk është thjesht një char, kjo është një byte, e cila është ajo që ne presim që ajo të jetë. 1417 01:06:49,450 --> 01:06:53,400 >> Dhe deri këtu, ne kemi në të vërtetë qenë pak më të fuqishme. 1418 01:06:53,400 --> 01:06:55,190 Ne nuk jemi duke e quajtur atë një char, e cila - 1419 01:06:55,190 --> 01:06:58,630 ndoshta, kush e di - mund të jetë një i ndryshëm Madhësia në makina të ndryshme. 1420 01:06:58,630 --> 01:07:02,025 Ne jemi të vërtetë duke thënë se kjo është pikërisht një bajt, gjithmonë, pa marrë parasysh çfarë. 1421 01:07:02,025 --> 01:07:05,810 Dhe nëse ne shohim këtu, ne kemi bërë krah. 1422 01:07:05,810 --> 01:07:08,340 Uh-oh. 1423 01:07:08,340 --> 01:07:09,590 Çfarë ka ndodhur? 1424 01:07:09,590 --> 01:07:14,470 1425 01:07:14,470 --> 01:07:16,170 >> STUDENT 68: Ajo mund të jetë e hapur. 1426 01:07:16,170 --> 01:07:17,880 >> JASON HIRSCHHORN: Çfarë? 1427 01:07:17,880 --> 01:07:19,130 >> STUDENT 69: A është e? 1428 01:07:19,130 --> 01:07:21,940 1429 01:07:21,940 --> 01:07:25,080 >> STUDENT 70: Ju nuk e bëri përcaktojnë atë si një lloj. 1430 01:07:25,080 --> 01:07:28,684 >> STUDENT 71: Por duhet përcaktohen në standarde. 1431 01:07:28,684 --> 01:07:29,934 >> STUDENT 72: Çfarë po ndodh? 1432 01:07:29,934 --> 01:07:37,660 1433 01:07:37,660 --> 01:07:40,210 >> STUDENT 73: A duhet të përcaktojnë të jenë të gjitha shkronja kapitale? 1434 01:07:40,210 --> 01:07:41,370 >> JASON HIRSCHHORN: Pra, nuk është # përcaktuar. 1435 01:07:41,370 --> 01:07:45,490 Në fakt, në këtë rast, unë jam i do të përdorin typedef. 1436 01:07:45,490 --> 01:07:48,590 Sepse ne jemi duke e përdorur atë si një lloj në një vend. 1437 01:07:48,590 --> 01:07:51,990 Pra, në këtë rast, ne fakt duam të typedef si ne jeni shtypjen një tip të ri 1438 01:07:51,990 --> 01:07:54,490 bajt, dhe është, në thelb, kjo. 1439 01:07:54,490 --> 01:07:56,590 Kjo është pak më ndryshe se sa # përcaktuar. 1440 01:07:56,590 --> 01:08:02,740 >> Dhe tani, kodi ynë works perfectly. 1441 01:08:02,740 --> 01:08:05,230 Pra, përsëri, # përcaktojë merr diçka, zëvendëson atë kudo 1442 01:08:05,230 --> 01:08:06,780 me gjë tjetër. 1443 01:08:06,780 --> 01:08:07,920 Është vetëm një makro - 1444 01:08:07,920 --> 01:08:09,420 stenografi për të hequr qafe e numrave magjike. 1445 01:08:09,420 --> 01:08:11,360 Por në këtë rast, sepse ne jemi duke e përdorur atë si një lloj - 1446 01:08:11,360 --> 01:08:12,180 të drejtë këtu - 1447 01:08:12,180 --> 01:08:19,880 në mënyrë që të punojnë, ne kemi nevojë të typedef çfarëdo bajt është. 1448 01:08:19,880 --> 01:08:21,840 >> Dhe ne jemi duke e përcaktuar atë të drejtë këtu. 1449 01:08:21,840 --> 01:08:24,750 Kjo nuk është një struct, është e vërtetë vetëm një numër të plotë panënshkruar. 1450 01:08:24,750 --> 01:08:27,680 Kjo është një bajt të gjatë. 1451 01:08:27,680 --> 01:08:31,910 Ky kod do të jetë në dispozicion në internet, dhe ju të gjithë duhet të kenë atë të drejtë tani. 1452 01:08:31,910 --> 01:08:33,830 >> Pra, ne kemi - 1453 01:08:33,830 --> 01:08:34,250 përsosur - 1454 01:08:34,250 --> 01:08:41,359 13 minuta u largua për të shkuar Problemi mbi vendosur 5. 1455 01:08:41,359 --> 01:08:44,270 Unë dua të ecin nëpër copy.c së bashku, dhe pastaj ne do të flasim shkurtimisht 1456 01:08:44,270 --> 01:08:47,120 në lidhje me pjesët e tjera e problemit të vendosur. 1457 01:08:47,120 --> 01:08:48,899 Pra më lejoni të ndalem copy.c. 1458 01:08:48,899 --> 01:09:03,930 1459 01:09:03,930 --> 01:09:08,810 Dhe gjëja e ftohtë është, ne kemi në të vërtetë tashmë të shkruar një shumë të këtij kodi. 1460 01:09:08,810 --> 01:09:11,180 >> Kodi kemi shkruar fjalë për fjalë vetëm doli nga këtu kur isha 1461 01:09:11,180 --> 01:09:13,120 këtë shkrim të mi. 1462 01:09:13,120 --> 01:09:16,990 Por kjo është copy.c, formon themelin për dy pjesët e para të 1463 01:09:16,990 --> 01:09:22,340 problemi vendosur për whodunit.c, e cila ju duhet për të shkruar, dhe resize.c. 1464 01:09:22,340 --> 01:09:27,050 Recover.c, e cila është e tretë dhe final pjesë e caktuar e problemeve, nuk është 1465 01:09:27,050 --> 01:09:29,529 bazuar jashtë e kjo skedë. 1466 01:09:29,529 --> 01:09:32,200 >> Ju jeni do të duhet për të shkruar këtë dosje, ne ju jap një template për që 1467 01:09:32,200 --> 01:09:34,620 paraqesë, por ajo nuk ka asgjë të bëjë me copy.c. 1468 01:09:34,620 --> 01:09:38,675 Por për shkak copy.c është themeli për dy pjesët e para, ne jemi duke shkuar 1469 01:09:38,675 --> 01:09:42,000 të ecin nëpër atë tani, kështu që ju keni një sens të mirë të atë që bën. 1470 01:09:42,000 --> 01:09:43,640 >> Dhe komentet japin një pjesë e saj larg. 1471 01:09:43,640 --> 01:09:45,120 Ne kemi shkruar tashmë disa prej kësaj. 1472 01:09:45,120 --> 01:09:49,220 Së pari, ne jemi duke u siguruar kemi tre argumente. 1473 01:09:49,220 --> 01:09:50,560 Tjetra, ne jemi duke kujtuar emrin e file. 1474 01:09:50,560 --> 01:09:52,960 Pra, ne u anashkalua këtë hap kur ne e koduar gjë tonë - 1475 01:09:52,960 --> 01:09:54,700 kur cp tonë. 1476 01:09:54,700 --> 01:09:56,750 Por këtu, ata janë duke e bërë atë pak më të pastër. 1477 01:09:56,750 --> 01:09:59,350 >> Ata janë kontrolluar për të siguruar dy fotografi janë të mira, në 1478 01:09:59,350 --> 01:10:00,450 shtesë për hapjen e tyre. 1479 01:10:00,450 --> 01:10:04,760 Ne shkroi tërë këtë kod vetëm tani, kështu që unë jam nuk do të ndalem në këtë kod. 1480 01:10:04,760 --> 01:10:09,670 Tjetra është disa sende që është specifike për llojet e dosjeve që ne jemi duke përdorur, të cilat 1481 01:10:09,670 --> 01:10:12,240 janë fotografi bitmap. 1482 01:10:12,240 --> 01:10:15,660 Fotografi bitmap kanë disa metadata shoqëruara me to. 1483 01:10:15,660 --> 01:10:20,190 >> Pra, çifti i parë i bytes të ju tregojnë për dosjen. 1484 01:10:20,190 --> 01:10:23,460 Ata nuk janë ngjyrat e pixel në atë imazh. 1485 01:10:23,460 --> 01:10:25,120 Ata të ju tregojnë për dosjen. 1486 01:10:25,120 --> 01:10:28,220 Dhe në qoftë se ju lexoni me grupin e problemeve, ju do të keni shumë më shumë informacion 1487 01:10:28,220 --> 01:10:33,100 mbi atë që llojet e strukturave metadata janë të përfshira me bitmaps. 1488 01:10:33,100 --> 01:10:39,350 >> Por kjo është arsyeja pse ne e kemi këtë të parë vendosur e - këtij kodi të drejtë këtu. 1489 01:10:39,350 --> 01:10:42,490 Ne po lexoni metadata - 1490 01:10:42,490 --> 01:10:45,800 dy copa të metadata - fotografi header dhe info header. 1491 01:10:45,800 --> 01:10:51,030 Dhe ne po kontrollojnë disa pjesë të tij për të sigurohuni që ajo është një fotografi e vërtetë bitmap 1492 01:10:51,030 --> 01:10:52,420 para se të vazhdoni. 1493 01:10:52,420 --> 01:10:55,470 >> Dhe përsëri, këto janë detaje ne nuk kanë nevojë për të shkuar në tani. 1494 01:10:55,470 --> 01:10:57,720 Nëse ju lexoni me grupin e problemeve, ju do të kuptoni këto. 1495 01:10:57,720 --> 01:11:01,370 Histori të gjatë të shkurtër, këto janë vetëm duke thënë, kjo është një fotografi bitmap, dhe 1496 01:11:01,370 --> 01:11:02,810 duke konfirmuar se. 1497 01:11:02,810 --> 01:11:05,180 >> Tjetra, ne jemi me shkrim ato në dosjen jashtë. 1498 01:11:05,180 --> 01:11:05,660 Ne shohim se këtu. 1499 01:11:05,660 --> 01:11:06,910 Ne jemi me shkrim për treguesin jashtë. 1500 01:11:06,910 --> 01:11:09,260 1501 01:11:09,260 --> 01:11:11,320 Tjetra, ne jemi përcaktimin mbushje. 1502 01:11:11,320 --> 01:11:15,240 Pra, përsëri, siç është e veçanta me një fotografi bitmap, disa linja të përfshijnë 1503 01:11:15,240 --> 01:11:16,840 mbushje ne fund. 1504 01:11:16,840 --> 01:11:19,000 Dhe në qoftë se ju lexoni me grupin e problemeve, ju do të mësoni më shumë për mbushje. 1505 01:11:19,000 --> 01:11:22,330 Kjo është formula për të gjetur mbushje. 1506 01:11:22,330 --> 01:11:23,610 >> E rëndësishme për të kujtuar - 1507 01:11:23,610 --> 01:11:29,720 kur ju të ndryshojë madhësinë e një bitmap paraqesë, ndryshimet mbushje. 1508 01:11:29,720 --> 01:11:31,970 Kur ju të ndryshojë madhësinë e një paraqesë, ndryshimet mbushje. 1509 01:11:31,970 --> 01:11:34,310 Ajo kurrë nuk do të jetë madhe se 3 - 1510 01:11:34,310 --> 01:11:36,510 ajo do të jetë 0 deri 3, përfshirëse. 1511 01:11:36,510 --> 01:11:38,930 Por kur ju të ndryshojë madhësinë e diçka, ndryshimet mbushje. 1512 01:11:38,930 --> 01:11:47,100 >> Nëse unë vetëm një pixel në atë rresht, unë nevojë për tre bytes i mbushje, sepse 1513 01:11:47,100 --> 01:11:51,190 çdo rresht duhet të jetë multiples e katër bytes të gjatë në një skedar bitmap. 1514 01:11:51,190 --> 01:11:56,120 Por në qoftë se unë të dyfishtë atë, për të shkuar nga një pixel te dy piksel, secila prej të cilave, 1515 01:11:56,120 --> 01:11:59,510 le të themi, është një bajt, atëherë më duhet dy bytes të mbushje për të bërë 1516 01:11:59,510 --> 01:12:00,970 që barabartë me katër. 1517 01:12:00,970 --> 01:12:04,200 >> Pra, kur Unë të ndryshuar madhësinë e diçka, Unë kam nevojë për të ndryshuar sasinë 1518 01:12:04,200 --> 01:12:06,551 mbushje e kam. 1519 01:12:06,551 --> 01:12:08,100 A do të kishte kuptim për të gjithë? 1520 01:12:08,100 --> 01:12:12,020 1521 01:12:12,020 --> 01:12:18,720 Tjetra, ne iterate mbi çdo rresht, ose nëpër të gjitha rreshtave. 1522 01:12:18,720 --> 01:12:21,400 Dhe pastaj ne iterate përmes çdo kolonë në çdo rresht. 1523 01:12:21,400 --> 01:12:25,330 Ne jemi duke e trajtuar këtë si bitmap një rrjet, ashtu si e kemi trajtuar 1524 01:12:25,330 --> 01:12:26,490 bordit në 15. 1525 01:12:26,490 --> 01:12:29,200 >> Ashtu si kemi trajtuar tulla kur ne të shtypura e tyre në ekran. 1526 01:12:29,200 --> 01:12:31,350 Një rrjet i rreshtave dhe kolonave. 1527 01:12:31,350 --> 01:12:32,350 Pastaj - e pamë këtë. 1528 01:12:32,350 --> 01:12:33,840 Ne fakt koduar vetëm këtë. 1529 01:12:33,840 --> 01:12:35,780 Ne krijuar një ruajtje të përkohshme. 1530 01:12:35,780 --> 01:12:38,710 Ne lexojmë në atje, dhe pastaj kemi shkruar atë. 1531 01:12:38,710 --> 01:12:42,680 Kjo është pikërisht ajo që ne vetëm e bëri. 1532 01:12:42,680 --> 01:12:46,760 >> Tjetra, sepse ka thënë: çdo linjë përfundon në disa mbushje, ne 1533 01:12:46,760 --> 01:12:48,260 kaloni mbi atë mbushje - 1534 01:12:48,260 --> 01:12:51,000 mbushje e vjetër. 1535 01:12:51,000 --> 01:12:52,630 Dhe atëherë ne shtoni atë. 1536 01:12:52,630 --> 01:12:55,140 Në këtë rast, ne jemi duke krijuar të njëjtën fotografi saktë. 1537 01:12:55,140 --> 01:12:56,180 Ne jemi vetëm kopjimi atë. 1538 01:12:56,180 --> 01:12:57,700 Pra, kjo linjë është lloj i pa kuptim. 1539 01:12:57,700 --> 01:12:59,660 Ne mund të fjalë për fjalë vetëm vënë mbushje in 1540 01:12:59,660 --> 01:13:04,290 >> Por në qoftë se ju të ndryshojë madhësinë e file, nuk ju ende i doni këtë linjë? 1541 01:13:04,290 --> 01:13:08,510 1542 01:13:08,510 --> 01:13:11,560 Pra, në qoftë se ne të ndryshuar madhësinë e një file, nuk kemi ende duan të kaloni 1543 01:13:11,560 --> 01:13:12,810 mbi mbushje të vjetër? 1544 01:13:12,810 --> 01:13:15,170 1545 01:13:15,170 --> 01:13:15,970 >> STUDENT 74: Po. 1546 01:13:15,970 --> 01:13:17,090 >> JASON HIRSCHHORN: Pra, ne bëjmë. 1547 01:13:17,090 --> 01:13:19,290 Me qenë se ky, përsëri, merret me burim file. 1548 01:13:19,290 --> 01:13:21,570 Ne nuk e kujdesit për mbushje nga burim file. 1549 01:13:21,570 --> 01:13:23,410 Ne duam të shkojnë në vijën e ardhshme. 1550 01:13:23,410 --> 01:13:28,850 Por ne nuk e vënë thjesht mbrapa shuma e vjetër e mbushje. 1551 01:13:28,850 --> 01:13:31,540 Ne kemi nevojë për të vënë përsëri Shuma e re e mbushje. 1552 01:13:31,540 --> 01:13:35,810 >> Pra, kur ne jemi duke ndryshuar madhësinë e një fotografi, ne ende duan të kaloni mbi 1553 01:13:35,810 --> 01:13:38,270 mbushje në dosjen e vjetër - ajo që ne jemi duke lexuar në nga. 1554 01:13:38,270 --> 01:13:40,370 Por ajo që ne jemi me shkrim për të, ne jemi duke shkuar të duhet për të vënë përsëri një e ndryshme 1555 01:13:40,370 --> 01:13:41,890 Numri i mbushje që ne kemi vendosur. 1556 01:13:41,890 --> 01:13:42,780 Po. 1557 01:13:42,780 --> 01:13:44,550 >> STUDENT 75: Rendi i atyre dy Linjat nuk ka rëndësi, apo jo? 1558 01:13:44,550 --> 01:13:46,160 Sepse ju jeni trajtimin e Fotografi të ndryshme. 1559 01:13:46,160 --> 01:13:46,620 >> JASON HIRSCHHORN: Pikërisht. 1560 01:13:46,620 --> 01:13:48,220 Urdhri i këtyre dy linjave nuk ka rëndësi. 1561 01:13:48,220 --> 01:13:49,790 Ne shkruaj këtë linjë. 1562 01:13:49,790 --> 01:13:51,430 Kjo është këtu për dosjen ne jemi me shkrim për të. 1563 01:13:51,430 --> 01:13:54,370 Kjo është e rëndësishme, kështu që ne të merrni shumë të drejtë e mbushje. 1564 01:13:54,370 --> 01:13:57,560 Kjo ka të bëjë me në dosjen. 1565 01:13:57,560 --> 01:13:58,560 Ne duam të kaloni drejtën mbi mbushje. 1566 01:13:58,560 --> 01:13:59,470 >> Ne nuk duan të lexojnë - 1567 01:13:59,470 --> 01:14:01,500 në qoftë se ne jemi duke lexuar një bajt në një kohë, ne nuk e kujdesit për ato bytes mbushje. 1568 01:14:01,500 --> 01:14:04,070 Ne duam për të kaluar në rreshtin tjetër. 1569 01:14:04,070 --> 01:14:11,800 Së fundi ashtu si Lucy dha për ne, ne të mbyllur dosjet dhe të kthehen 0. 1570 01:14:11,800 --> 01:14:13,890 Pra, kjo është copy.c. 1571 01:14:13,890 --> 01:14:17,850 Dhe ne fakt ka shkruar - kemi kaluar shumicën e seksion i këtij shkrimi, në thelb. 1572 01:14:17,850 --> 01:14:18,740 >> Ju e bëri këtë. 1573 01:14:18,740 --> 01:14:22,440 Kështu që shpresojmë se ju keni një kuptim të mirë të asaj që po ndodh këtu. 1574 01:14:22,440 --> 01:14:25,890 Ndryshimi i madh, sinqerisht, është vetëm kjo pjesë e parë që merret me 1575 01:14:25,890 --> 01:14:29,970 veçantitë e dosjeve bitmap. 1576 01:14:29,970 --> 01:14:33,570 Pra, unë kam si rrëshqitje tim të ardhshëm, çfarë ne duhet të bëjmë? 1577 01:14:33,570 --> 01:14:35,510 E pra, le të mendojnë për roman policor. 1578 01:14:35,510 --> 01:14:38,080 >> Dhe për dikë që të lexoni me anë të problemi vendosur, ajo që bëjmë ne 1579 01:14:38,080 --> 01:14:41,410 duhet të bëni në roman policor? 1580 01:14:41,410 --> 01:14:42,080 Thjesht. 1581 01:14:42,080 --> 01:14:42,460 Aleja. 1582 01:14:42,460 --> 01:14:48,570 >> Aleja: A mund të merrni pjesë e çdo piksel që tregon kuqe. 1583 01:14:48,570 --> 01:14:49,730 Dhe pastaj - 1584 01:14:49,730 --> 01:14:50,730 lloj? 1585 01:14:50,730 --> 01:14:51,860 >> JASON HIRSCHHORN: OK. 1586 01:14:51,860 --> 01:14:54,460 Pra, të marrë nga pjesa e secilit pixel që tregon kuqe. 1587 01:14:54,460 --> 01:14:57,234 Kjo është e ngushtë, por jo të gjithë atë. 1588 01:14:57,234 --> 01:14:59,780 >> STUDENT 76: E pra, nuk ka mënyra të ndryshme për të bërë atë. 1589 01:14:59,780 --> 01:14:59,870 >> JASON HIRSCHHORN: OK. 1590 01:14:59,870 --> 01:15:03,070 Më jepni një mënyrë. 1591 01:15:03,070 --> 01:15:08,240 >> STUDENT 76: Merrni nga të gjitha kuqe e, dhe pastaj theksojnë blu dhe jeshile. 1592 01:15:08,240 --> 01:15:10,010 >> JASON HIRSCHHORN: OK. 1593 01:15:10,010 --> 01:15:11,830 Pra, duke pasur parasysh të dyja këto mënyra - 1594 01:15:11,830 --> 01:15:15,210 kjo tingëllon si ne t'i jepte një pixel, ajo ka një nivel të kuqe, blu, dhe jeshile. 1595 01:15:15,210 --> 01:15:19,350 Ne duam të ndryshojmë nivelet relative të e kuqe, blu, dhe jeshile, varësisht 1596 01:15:19,350 --> 01:15:20,740 në atë pixel. 1597 01:15:20,740 --> 01:15:28,380 Ku në këtë kod duhet të ndryshojmë relative e kuqe, blu, dhe jeshile 1598 01:15:28,380 --> 01:15:29,720 nivelet e një pixel dhënë. 1599 01:15:29,720 --> 01:15:30,600 Pasi ne kemi lexuar atë - 1600 01:15:30,600 --> 01:15:32,520 para se të shkruar atë? 1601 01:15:32,520 --> 01:15:34,564 Me jep numrin e linjës. 1602 01:15:34,564 --> 01:15:35,950 >> STUDENTËT E SHUMËFISHTA: 83. 1603 01:15:35,950 --> 01:15:37,320 >> JASON HIRSCHHORN: 83. 1604 01:15:37,320 --> 01:15:38,570 Pra, të drejtë këtu. 1605 01:15:38,570 --> 01:15:40,830 1606 01:15:40,830 --> 01:15:45,710 Për roman policor, kodi ju duhet të shkruaj të gjithë duhet të shkojnë drejtë atje. 1607 01:15:45,710 --> 01:15:47,640 Dhe kjo është vetëm kodi ju duhet të shkruani. 1608 01:15:47,640 --> 01:15:51,520 Sepse, siç kemi dëgjuar, të gjithë ju duhet të bëni është të ndryshojë këto blu relative, 1609 01:15:51,520 --> 01:15:54,420 Nivelet e kuqe, jeshile dhe nga çdo piksel. 1610 01:15:54,420 --> 01:15:58,250 >> Ju keni lexuar atë në, dhe tani ju jeni duke shkuar për të shkruar atë. 1611 01:15:58,250 --> 01:16:03,100 Si mund të merrni - nëse kam këtë gjë quajtur trefishtë, të drejtë këtu, dhe kjo është e 1612 01:16:03,100 --> 01:16:04,570 lloji RGBTRIPLE - 1613 01:16:04,570 --> 01:16:08,650 mirë, në qoftë se kemi shikuar në bmp.h, çfarë është RGBTRIPLE? 1614 01:16:08,650 --> 01:16:11,450 1615 01:16:11,450 --> 01:16:12,700 >> STUDENT 77: Kjo është një struct. 1616 01:16:12,700 --> 01:16:17,440 1617 01:16:17,440 --> 01:16:18,900 >> JASON HIRSCHHORN: RGBTRIPLE a është struct. 1618 01:16:18,900 --> 01:16:22,330 Ne e shohim këtë të drejtë këtu. 1619 01:16:22,330 --> 01:16:26,600 Dhe kështu nëse kam kërkuar për të hyrë, të themi, Niveli i kuq i struct, si mund të 1620 01:16:26,600 --> 01:16:30,005 të hyrë në nivelin e kuqe e këtij struct? 1621 01:16:30,005 --> 01:16:37,280 >> [KLASA pershperitur] 1622 01:16:37,280 --> 01:16:38,530 >> STUDENT 78: RGBTRIPLE.rgbtred? 1623 01:16:38,530 --> 01:16:47,250 1624 01:16:47,250 --> 01:16:48,856 >> JASON HIRSCHHORN: A është e saktë? 1625 01:16:48,856 --> 01:16:53,040 >> STUDENT 79: Ajo duhet të jetë e trefishtë dot, në vend të RGBTRIPLE dot? 1626 01:16:53,040 --> 01:16:54,120 >> JASON HIRSCHHORN: Triple. 1627 01:16:54,120 --> 01:16:56,700 Triple është variabël lokale, kështu këtu, nuk ka asnjë pointers këtu. 1628 01:16:56,700 --> 01:16:58,400 Pra, ne vetëm përdorni dot simbol. 1629 01:16:58,400 --> 01:17:00,480 Kjo do të më jepni nivelin e kuqe. 1630 01:17:00,480 --> 01:17:06,180 Nëse unë dua të ndryshojë atë, unë vetëm vënë është e barabartë me diçka të ndryshme. 1631 01:17:06,180 --> 01:17:13,190 Pra, përsëri, kjo linjë e kodit accesses ky variabël brenda këtij struct, dhe 1632 01:17:13,190 --> 01:17:15,070 ne mund të vënë atë në diçka të re. 1633 01:17:15,070 --> 01:17:20,040 >> Pra për roman policor, përsëri, kjo është, në thelb, ajo që ne duhet të bëjmë. 1634 01:17:20,040 --> 01:17:21,170 Shumë e thjeshtë. 1635 01:17:21,170 --> 01:17:25,020 Vetëm të ndryshojë disa nivele relative, dhe ky është vendi ku që kodi shkon. 1636 01:17:25,020 --> 01:17:27,720 Resize, nga ana tjetër, është pak e komplikuar. 1637 01:17:27,720 --> 01:17:30,900 Në fakt, resize është ndoshta pjesë e mprehtë e këtij problemi të vendosur. 1638 01:17:30,900 --> 01:17:32,720 Ne kemi tre minuta për të shkuar mbi të. 1639 01:17:32,720 --> 01:17:34,910 >> Por përsëri, ne kemi shkruar tashmë më të madhe të këtij kodi, kështu që ne 1640 01:17:34,910 --> 01:17:36,500 duhet të jetë shumë e njohur. 1641 01:17:36,500 --> 01:17:40,750 Cilat janë disa gjëra që ne duam të bëjmë në resize, në qoftë se ju keni lexuar mbi 1642 01:17:40,750 --> 01:17:43,470 Problemi i vendosur? 1643 01:17:43,470 --> 01:17:45,290 Nëse ju jepni atyre për mua, ne mund të flasim për to. 1644 01:17:45,290 --> 01:17:47,340 Cilat janë disa gjëra që ne duam të bëjmë? 1645 01:17:47,340 --> 01:17:47,970 >> STUDENT 80: vertikalisht - 1646 01:17:47,970 --> 01:17:52,360 kështu që ju duhet të ndrysho atë horizontalisht, por vertikalisht resize atë si të mirë? 1647 01:17:52,360 --> 01:17:58,475 >> JASON HIRSCHHORN: Pra, nëse ne jemi duke dhënë një pixel, dhe ne duam të ndrysho atë me një 1648 01:17:58,475 --> 01:18:03,460 faktor të dy, ajo tani duhet të jetë ndryshohet madhësia horizontalisht dhe ridimensionuar 1649 01:18:03,460 --> 01:18:05,220 vertikalisht. 1650 01:18:05,220 --> 01:18:06,640 A ka kjo kuptim? 1651 01:18:06,640 --> 01:18:07,060 Po. 1652 01:18:07,060 --> 01:18:09,300 Pra, kjo është ndoshta sfida më e madhe. 1653 01:18:09,300 --> 01:18:10,430 Dhe ne do të flasim për këtë në një sec. 1654 01:18:10,430 --> 01:18:11,065 Po. 1655 01:18:11,065 --> 01:18:15,270 >> STUDENT 81: Mënyra kam menduar për atë u ju nevojitet print it out - 1656 01:18:15,270 --> 01:18:15,490 >> JASON HIRSCHHORN: Prisni. 1657 01:18:15,490 --> 01:18:17,580 Mos na tregoni se çfarë keni bërë. 1658 01:18:17,580 --> 01:18:20,620 Ne do të flasim në logjikë. 1659 01:18:20,620 --> 01:18:21,870 >> STUDENT 81: OK. 1660 01:18:21,870 --> 01:18:25,090 1661 01:18:25,090 --> 01:18:27,410 Cila ishte pyetja? 1662 01:18:27,410 --> 01:18:28,892 >> JASON HIRSCHHORN: Ju vetëm ngriti dorën tuaj. 1663 01:18:28,892 --> 01:18:31,600 Nuk kishte asnjë pyetje. 1664 01:18:31,600 --> 01:18:32,520 Më lejoni të paraqesë atë. 1665 01:18:32,520 --> 01:18:34,560 Më lejoni vetëm të diskutuar këtë kohë të shkurtër. 1666 01:18:34,560 --> 01:18:38,400 Pra, ne kemi një pixel, ne duam të përsëris atë, si horizontalisht dhe 1667 01:18:38,400 --> 01:18:39,360 vertikalisht. 1668 01:18:39,360 --> 01:18:48,920 Pra, në mënyrë ideale ajo që ne bëjmë këtu është, që ne lexoni në piksel tonë, kemi shkruar atë 1669 01:18:48,920 --> 01:18:51,690 megjithatë shumë herë. 1670 01:18:51,690 --> 01:18:54,720 >> Por pastaj ne kemi mashtrim tonë këtu, sepse atëherë ne duam të Kalo te 1671 01:18:54,720 --> 01:18:57,660 linjë tjetër dhe shkruani atë në fillimi i linjë tjetër. 1672 01:18:57,660 --> 01:19:02,960 Pra, nëse ne duam të replikuar dyja horizontalisht dhe vertikalisht, ajo që është 1673 01:19:02,960 --> 01:19:05,050 një mënyrë e mirë për të bërë këtë - 1674 01:19:05,050 --> 01:19:06,780 e mirë edhe pse për të bërë këtë? 1675 01:19:06,780 --> 01:19:11,950 Pra, ne nuk kemi nevojë për të kërkuar vazhdimisht rreth dosjen tonë për të vendosur gjërat. 1676 01:19:11,950 --> 01:19:14,360 >> Kjo pyetje nuk mund të ketë kishte kuptim, por unë mendoj se një 1677 01:19:14,360 --> 01:19:15,800 përgjigjen me të do të ndihmojë. 1678 01:19:15,800 --> 01:19:17,210 >> STUDENT 82: Krijoni një koleksion? 1679 01:19:17,210 --> 01:19:20,090 >> JASON HIRSCHHORN: Pra, le të mendojmë e çdo fotografi si një rresht. 1680 01:19:20,090 --> 01:19:22,550 Le të mendojnë në drejtim të rreshtave. 1681 01:19:22,550 --> 01:19:26,670 Në qoftë se ne kemi rresht tonë të parë nga të vogla tonë foto, ne mund të bëjë atë rresht 1682 01:19:26,670 --> 01:19:30,640 në një rresht të madhe nga një foto të madhe, dhe pastaj të përsëris atë rresht megjithatë 1683 01:19:30,640 --> 01:19:34,250 shumë herë ajo ka nevojë që të përsëriten, në vend se do piksel nga pixel, 1684 01:19:34,250 --> 01:19:37,260 e cila merr konfuze kur që kanë të bëjnë me fotografi. 1685 01:19:37,260 --> 01:19:38,730 >> Sepse nëse do të kishim - 1686 01:19:38,730 --> 01:19:41,260 Nuk kam më të hapësirës. 1687 01:19:41,260 --> 01:19:46,490 Nëse kjo është fotografi tonë, dhe ne kemi se një pixel atje, dhe ne duam të vënë atë 1688 01:19:46,490 --> 01:19:49,840 drejtë atje, ne ende kemi disa gjëra që ka nevojë për të shkuar atje, kur ne jemi 1689 01:19:49,840 --> 01:19:51,450 shkrim dhe krijimin skedë tonë të ri - 1690 01:19:51,450 --> 01:19:53,250 fotografi jonë që është dy herë më i madh. 1691 01:19:53,250 --> 01:19:56,820 >> Por është e vërtetë e vështirë me funksione fotografi të kaloni rreth në linjat e reja 1692 01:19:56,820 --> 01:20:00,260 si kjo, dhe pastaj të kthehemi këtu dhe të vënë gjërat në atje. 1693 01:20:00,260 --> 01:20:04,500 Është pothuajse e pamundur për të bërë diçka si kjo, në qoftë se ka kuptim. 1694 01:20:04,500 --> 01:20:10,180 Pra, nëse ne mendojmë në aspektin e rreshtave, ne mund të marrë rresht tonë, dhe pastaj e vënë atë - 1695 01:20:10,180 --> 01:20:11,720 replikuar rreshtave vertikalisht. 1696 01:20:11,720 --> 01:20:15,860 >> Dhe kjo është se si të merremi me Resizing vertikalisht dhe jo horizontalisht. 1697 01:20:15,860 --> 01:20:18,810 Kjo ishte lloj i shpejtë, dhe pak konfuze. 1698 01:20:18,810 --> 01:20:22,375 Për fat të keq koha jonë është lart. 1699 01:20:22,375 --> 01:20:27,340 Unë do të qëndrojë jashtë për ato prej jush këtu të cilët kanë pyetje në lidhje 1700 01:20:27,340 --> 01:20:30,500 vendosur problemi, duke përfshirë edhe të shërohen. 1701 01:20:30,500 --> 01:20:32,320 >> Pra, le ta shtyjë për tani. 1702 01:20:32,320 --> 01:20:34,480 Dhe përsëri, në qoftë se ju keni ndonjë pyetje, ne mund të bisedojnë jashtë. 1703 01:20:34,480 --> 01:20:38,294