1 00:00:00,000 --> 00:00:07,810 2 00:00:07,810 --> 00:00:09,840 >> JASON Hirschhorn: Bonvenon, al ĉiuj, al Semajno 6. 3 00:00:09,840 --> 00:00:14,790 Mi ĝojas vidi vin cxiujn kaj vivanteco post Kvizo 0, ĉar mi scias, ke 4 00:00:14,790 --> 00:00:15,810 Estis iom malglata. 5 00:00:15,810 --> 00:00:18,370 Sed dankeme, vi ĉiuj faris nekredeble bone. 6 00:00:18,370 --> 00:00:21,680 Kaj tiel tio estas mirinda. 7 00:00:21,680 --> 00:00:25,840 Se vi estas en mia sekcion, Mi donis plej el vi apogi vian kvizojn jam. 8 00:00:25,840 --> 00:00:28,050 >> Paro de vi, mi renkontis post klaso. 9 00:00:28,050 --> 00:00:32,360 Kaj se vi estas etendo studento kaj vi ne ricevis vian kvizo reen 10 00:00:32,360 --> 00:00:35,490 tamen, via TF estas verŝajne laborante sur ĝi kaj grading ĝin, kaj enretigos ĝin reen 11 00:00:35,490 --> 00:00:36,490 al vi baldaŭ. 12 00:00:36,490 --> 00:00:39,650 Do mia kromprogramo studentoj, kiuj estas rigardi ĝuste nun - espereble vivi - 13 00:00:39,650 --> 00:00:42,880 Mi enretigos vian kvizojn baldaŭ ankaŭ. 14 00:00:42,880 --> 00:00:45,670 >> Nia agendo por hodiaŭ estas kiel sekvas. 15 00:00:45,670 --> 00:00:50,170 Unue, ni tuj iru super iu rimedojn kiuj CS50 havigas al vi. 16 00:00:50,170 --> 00:00:54,590 Ni tuj transiru Kvizo 0 proksima, kaj Mi respondos ajnajn demandojn iu 17 00:00:54,590 --> 00:00:57,360 havas pri apartaj problemoj. 18 00:00:57,360 --> 00:01:02,050 Kaj tiam, ni iros trans dosiero / Aŭ kaj problem starigis 5. 19 00:01:02,050 --> 00:01:07,360 Tiuj lastaj du temoj prenos ĝis la ŝvelaĵo de sekcio hodiaŭ. 20 00:01:07,360 --> 00:01:11,680 >> Mi metas ĉi listo ĉiun semajnon kiel rememorigilo al vi ĉiuj, sed el kerno 21 00:01:11,680 --> 00:01:14,650 sekcio, ni nur havas 90 minutojn - ni ne povis kovri ĉion, kion mi 22 00:01:14,650 --> 00:01:16,280 ŝategus kovru vin guys. 23 00:01:16,280 --> 00:01:21,170 Sed ni ja havas barelon da rimedoj por vi desegni sur kiel vi ekkoni 24 00:01:21,170 --> 00:01:24,000 la materialo kaj laboro tra via problemo aroj. 25 00:01:24,000 --> 00:01:30,810 >> Ni memorigas, ke mi havas en linio de teksto skatolo, starigis por vi plenigi se vi 26 00:01:30,810 --> 00:01:33,250 havas iun opinion pri mi, ambaŭ pozitivajn kaj 27 00:01:33,250 --> 00:01:35,180 konstrua, pri sekcio. 28 00:01:35,180 --> 00:01:38,600 Tio URL situas rekte malsupren, tie ĉi. 29 00:01:38,600 --> 00:01:43,250 Do bonvolu preni momenton, se vi havas ajnan sugestoj, cxu dum tiu sekcio, 30 00:01:43,250 --> 00:01:48,030 aŭ post, aŭ post vi spekti la video linio, por doni al mi vian reagon. 31 00:01:48,030 --> 00:01:52,100 Mi vere dankas ĉiaj kaj ĉiuj de ĝi. 32 00:01:52,100 --> 00:01:55,730 >> Do mi estis havanta malgrandan konversacioj kun amaso da mia 33 00:01:55,730 --> 00:01:59,350 studentoj en la tuta semajno - kiel mi transdonis reen kvizojn, parolante pri la 34 00:01:59,350 --> 00:02:01,480 Kompreneble, vidante kiel vi faras. 35 00:02:01,480 --> 00:02:05,120 Kaj unu temo levigxis super kaj super en raporti - en 36 00:02:05,120 --> 00:02:05,660 aparta - 37 00:02:05,660 --> 00:02:07,710 problemo aroj. 38 00:02:07,710 --> 00:02:13,090 Kaj mi encapsulada tiu temo sur la tabulo nun. 39 00:02:13,090 --> 00:02:16,630 >> Esence, ekzistas diferenco inter turnante en iun kiu estas 40 00:02:16,630 --> 00:02:19,590 farita ĝuste kaj ion kiu estas farita bone. 41 00:02:19,590 --> 00:02:22,920 Plej multaj homoj estis farante fantazia en terminoj de korekteco - 42 00:02:22,920 --> 00:02:25,460 5 La aŭ 4 de la tuta psets. 43 00:02:25,460 --> 00:02:27,930 Plej multaj homoj fartas tiuj la tuta tempo. 44 00:02:27,930 --> 00:02:31,150 >> Tamen, nur ĉar vi jam faris io rajton ne signifas ke vi jam 45 00:02:31,150 --> 00:02:34,450 farinta ion kiel elegante, aŭ kompetente, aŭ kiel pure kiel vi 46 00:02:34,450 --> 00:02:35,270 povus esti farinta. 47 00:02:35,270 --> 00:02:36,790 Kaj tio estas kion la dezajno - 48 00:02:36,790 --> 00:02:39,230 kaj plej malgranda grado, stilo - 49 00:02:39,230 --> 00:02:40,450 aksoj estas por. 50 00:02:40,450 --> 00:02:45,130 Do mi pelis vin cxiujn, kaj aliaj TFS pelas vi, knaboj, ne nur vico 51 00:02:45,130 --> 00:02:48,320 en aferoj, kiuj estas korekta, sed turni en la aferoj kiuj estas koditaj bone. 52 00:02:48,320 --> 00:02:53,060 >> Ne fari nenecesan POR masxojn, Ne recalculating variabloj se 53 00:02:53,060 --> 00:02:53,800 vi ne devas. 54 00:02:53,800 --> 00:02:58,520 Ekzemple, rigardante malantauxen al problemo starigis 4, kiam metante la brikojn sur la 55 00:02:58,520 --> 00:03:03,070 ekrano, ĉiu vico - ĉiun brikon en donita vico havas la saman y-koordinato - 56 00:03:03,070 --> 00:03:04,390 la saman altecon koordinato. 57 00:03:04,390 --> 00:03:07,930 >> Por ke y-koordinato ne bezonas esti kalkulita ene de la interno 58 00:03:07,930 --> 00:03:11,070 nestitaj POR buklo kiun vi verŝajne uzas meti tiujn brikojn sur la ekrano. 59 00:03:11,070 --> 00:03:14,030 Ĝi nur bezonas al esti kalkulita ĉiu tempo vi ŝanĝis vico, aŭ 60 00:03:14,030 --> 00:03:15,200 movita suben vicon. 61 00:03:15,200 --> 00:03:19,760 Do diru, se estas 10 brikojn en linio, ĉiu briko povas havi la saman 62 00:03:19,760 --> 00:03:22,260 y-koordinato, kaj ke y-koordinato povas simple esti kalkulita 63 00:03:22,260 --> 00:03:23,550 iam por ĉiuj el tiuj. 64 00:03:23,550 --> 00:03:27,810 >> Ĝi ne devas esti kalkulita 10 tempoj, nek faras ke kalkulo bezono 65 00:03:27,810 --> 00:03:30,220 okazos en la fakta funkcio alvoko - 66 00:03:30,220 --> 00:03:33,020 la nova gracked funkcio nomita. 67 00:03:33,020 --> 00:03:37,820 Do, se tio estis iom konfuza por vi, pli genéricamente, aĵoj kiuj 68 00:03:37,820 --> 00:03:40,730 ne bezonas okazi ĉiun solan fojon vi iru tra POR buklo ne devus esti 69 00:03:40,730 --> 00:03:42,900 metu ene de la POR buklo, kaj malakceptu okazi ĉiufoje kiam vi iros 70 00:03:42,900 --> 00:03:44,080 tra la POR-cirklon. 71 00:03:44,080 --> 00:03:49,270 >> Alia bona dezajno ekzemplo ni vidis en la semajno 3 por 15, vi povus subteni 72 00:03:49,270 --> 00:03:50,500 spuro de la nulo. 73 00:03:50,500 --> 00:03:53,600 Do kiam vi pravalorizi la tabulo, vi konservi - en globala variablo, eble - 74 00:03:53,600 --> 00:03:56,140 la x kaj y-koordinato de la nulo. 75 00:03:56,140 --> 00:03:57,520 Kaj poste kiam ajn vi - 76 00:03:57,520 --> 00:04:00,310 en via movado funkcion, kiam ajn vi faras sukcesan movadon, vi ĝisdatigas la 77 00:04:00,310 --> 00:04:02,040 situo de la nulo. 78 00:04:02,040 --> 00:04:06,240 >> Tio savus vin de devi fari nestitaj POR masxojn rigardi tra la 79 00:04:06,240 --> 00:04:10,700 forumaraj ĉiufoje en via movado funkcio kaj trovu la nulo, aŭ trovos la kahelo, 80 00:04:10,700 --> 00:04:12,460 kaj tiam kontrolu kio estas apud gxi. 81 00:04:12,460 --> 00:04:16,329 Anstataŭe, vi havos la situo de la nulo, vi povas simple rigardi supre, malsupre, 82 00:04:16,329 --> 00:04:21,160 kaj al la maldekstra kaj dekstra el tio, trovi la kahelo vi serĉis. 83 00:04:21,160 --> 00:04:24,970 >> Do, en terminoj de la programoj ni estas skribado, ili estas neniam sufiĉe granda 84 00:04:24,970 --> 00:04:28,580 ke iuj el tiuj decidoj de dezajno estas vere tuj malhelpi vian 85 00:04:28,580 --> 00:04:31,670 programo, aux fari gxin kuras pli malrapide, aŭ eble eĉ kuri el memoro. 86 00:04:31,670 --> 00:04:35,030 Sed ni ankoraŭ puŝante you guys skribi kiel eleganta kaj 87 00:04:35,030 --> 00:04:36,450 efika kodo ebla. 88 00:04:36,450 --> 00:04:39,910 >> Do, se vi faros fini skribi aferojn ke havi signife pli grandan 89 00:04:39,910 --> 00:04:44,660 medion, ili estos skribita kun bona desegni krom esti korekta. 90 00:04:44,660 --> 00:04:46,300 Do multaj el vi havos alportis tion eksteren. 91 00:04:46,300 --> 00:04:48,560 Tio estas io, kion ni serĉas - iu ni tuj daŭre 92 00:04:48,560 --> 00:04:49,840 puŝi you guys plu. 93 00:04:49,840 --> 00:04:52,460 >> Se vi iam havas demandojn pri la dezajno de via programo, ni invitas 94 00:04:52,460 --> 00:04:56,870 alveni al mi, kaj mi estas feliĉa marŝi tra via programo kun vi, 95 00:04:56,870 --> 00:05:01,320 kaj atentigi iun el la dezajno decidojn vi faris, kaj donos al vi iuj 96 00:05:01,320 --> 00:05:06,240 sugestoj pri kiel fari eĉ bona dezajno decidoj. 97 00:05:06,240 --> 00:05:08,870 >> Do ni tuj pluiri por paroli pri Kvizo 0. 98 00:05:08,870 --> 00:05:11,300 Antaŭ ni faru tion, ĉu iu havas iujn demandojn pri kio 99 00:05:11,300 --> 00:05:14,252 Mi jam kovrita ĝis nun? 100 00:05:14,252 --> 00:05:21,500 >> [Susurado NOISE] 101 00:05:21,500 --> 00:05:22,750 >> JASON Hirschhorn: Sep sekundoj. 102 00:05:22,750 --> 00:05:23,250 OK. 103 00:05:23,250 --> 00:05:24,970 Ni parolu pri Kvizo 0 por iom. 104 00:05:24,970 --> 00:05:26,700 Plimulto el vi havas vian Kvizo 0 dorson. 105 00:05:26,700 --> 00:05:29,820 Se vi ne faru, mi esperas vi rememoros ŝin iom. 106 00:05:29,820 --> 00:05:34,770 Sed se vi jam prenita Kvizo 0, tiam vi ankaŭ havas aliron al la PDF interrete en 107 00:05:34,770 --> 00:05:35,890 la specimeno solvoj. 108 00:05:35,890 --> 00:05:39,480 >> Ĉu iu havas demandojn antaŭe ni salti en la semajno da materialo pri 109 00:05:39,480 --> 00:05:41,520 apartan problemon pri Kvizo 0 - 110 00:05:41,520 --> 00:05:44,630 kial la respondo estas kio ĝi estas? 111 00:05:44,630 --> 00:05:47,255 Ĉu iu konfuzita pri io? 112 00:05:47,255 --> 00:05:50,230 Eĉ se vi havas la problemon pravas, sed nur volus mi por klarigi ĝin iom 113 00:05:50,230 --> 00:05:52,640 pli, mi ĝojas fari tion nun. 114 00:05:52,640 --> 00:05:57,800 >> Do mi demandis al vi knaboj al venu preta kun iuj 115 00:05:57,800 --> 00:05:59,440 pensoj pri Kvizo 0. 116 00:05:59,440 --> 00:06:02,660 Do, kiuj ŝatus liberigi nin komenciĝis per demando aŭ 117 00:06:02,660 --> 00:06:04,655 komenti pri Kvizo 0? 118 00:06:04,655 --> 00:06:07,435 119 00:06:07,435 --> 00:06:10,410 >> [PAPERO susurado] 120 00:06:10,410 --> 00:06:11,470 >> JASON Hirschhorn: Ne ĉiuj faris perfekte. 121 00:06:11,470 --> 00:06:12,720 Do mi scias [rie] 122 00:06:12,720 --> 00:06:15,950 tie devas esti iuj demandoj pri Kvizo 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 Jes. 126 00:06:29,210 --> 00:06:29,600 Ompica. 127 00:06:29,600 --> 00:06:30,520 >> OMPICA: Numero 10. 128 00:06:30,520 --> 00:06:33,560 >> JASON Hirschhorn: Numero 10. 129 00:06:33,560 --> 00:06:35,400 Kiun estis numero 10? 130 00:06:35,400 --> 00:06:35,840 >> OMPICA: La - 131 00:06:35,840 --> 00:06:36,420 >> JASON Hirschhorn: Mi haven't - 132 00:06:36,420 --> 00:06:37,670 >> OMPICA: La inkluzivi - 133 00:06:37,670 --> 00:06:40,060 134 00:06:40,060 --> 00:06:42,180 >> JASON Hirschhorn: Numero 10 La agxon de ok al mi - skribi ok al mi? 135 00:06:42,180 --> 00:06:42,980 >> OMPICA: Jes. 136 00:06:42,980 --> 00:06:43,630 >> JASON Hirschhorn: okej. 137 00:06:43,630 --> 00:06:47,390 Do alia demando, kiun vi povus havi demandis estis mi prescient? 138 00:06:47,390 --> 00:06:48,630 La respondo estas jes. 139 00:06:48,630 --> 00:06:52,060 En sekcio antaŭ la kvizo, mi demandis you guys kodigi ambaŭ Sterling kaj 140 00:06:52,060 --> 00:06:52,980 ok al i. 141 00:06:52,980 --> 00:06:54,770 Ambaŭ el ili okazis aperi sur la kvizo. 142 00:06:54,770 --> 00:06:57,510 Do espereble, vi pagas atenton al tio. 143 00:06:57,510 --> 00:07:02,520 >> Kaj se vi havis, tiam vi havus probable faris bone en tiuj du. 144 00:07:02,520 --> 00:07:06,030 Sed ok al mi, ni ne vere kodo gxin en la klaso, sed ĝi estis, denove, 145 00:07:06,030 --> 00:07:07,500 demandis en la kvizo. 146 00:07:07,500 --> 00:07:13,270 Do kelkajn aferojn por preni noti, kiam kodigo ok al i. 147 00:07:13,270 --> 00:07:17,320 La unua afero, por la demando, estis ke vi bezonis por kontroli se la kordo 148 00:07:17,320 --> 00:07:20,300 estis egala al nula. 149 00:07:20,300 --> 00:07:28,060 >> Paro personoj provis kontroli poste en la programo se s krampo i estis - 150 00:07:28,060 --> 00:07:30,940 tiel specifan karakteron en tiu kordoj - estis egalaj al nula. 151 00:07:30,940 --> 00:07:35,600 Sed memoru, ke nula estas esence - ĝi estas bona pensi pri 152 00:07:35,600 --> 00:07:39,100 nula kiel nulon montrilo - puntero al nulo - 153 00:07:39,100 --> 00:07:40,920 someplace memore kie Vi neniam povas aliri. 154 00:07:40,920 --> 00:07:44,730 >> Do, se io estas egala al nula, vi scias ke ĝi ne estis pravalorizita, 155 00:07:44,730 --> 00:07:46,430 aŭ nenio estas tie. 156 00:07:46,430 --> 00:07:50,950 Do s estas char stelo, s krampo i estas char. 157 00:07:50,950 --> 00:07:57,410 Do ĝi havas sencon kompari s al nula, sed ne s krampo i al nula. 158 00:07:57,410 --> 00:07:59,390 Sed denove - tiel ke estis la unua horo ke vi estis supozitaj fari - 159 00:07:59,390 --> 00:08:03,510 kontroli por certiĝi ke vi efektive akiris veran kordo. 160 00:08:03,510 --> 00:08:08,020 >> Tuj poste, vi volis iri tra ĉiun karakteron en la kordo. 161 00:08:08,020 --> 00:08:12,500 Kaj tiel tio estus kiel s krampo i, ekzemple, se i estas via iterator. 162 00:08:12,500 --> 00:08:17,250 Kaj prenu tiun karakteron, kaj trovi ĝian realan valoron. 163 00:08:17,250 --> 00:08:21,800 Vi gxin stokitaj kiel char, sed la ASCII valoro por nulo - 164 00:08:21,800 --> 00:08:23,010 nulo kiel gravulo - 165 00:08:23,010 --> 00:08:25,450 ne estas vere la entjera nulo. 166 00:08:25,450 --> 00:08:28,700 Ĝi estas iu alia nombro, ke vi povas serĉi en la ASCII tablo. 167 00:08:28,700 --> 00:08:30,790 >> Do unu maniero por korekti cxar tio - verŝajne la plej bona maniero por korekti por 168 00:08:30,790 --> 00:08:33,760 ke - estas subtrahi el ĝi la karaktero valoro - 169 00:08:33,760 --> 00:08:35,140 nulo kiel gravulo. 170 00:08:35,140 --> 00:08:38,490 Do minus unu citaĵo, nulo, alia simpla citaĵo. 171 00:08:38,490 --> 00:08:44,620 Kiu prenos ajn numeron vi havas kiel signo, kaj instigi lin egala al 172 00:08:44,620 --> 00:08:46,720 la nombro kiel reala entjero. 173 00:08:46,720 --> 00:08:50,300 >> Kaj tio estas tre simila al la alproksimiĝo multaj homoj prenis en la 174 00:08:50,300 --> 00:08:52,800 problemo starigis 2, kun Cezaro kaj Viginere - 175 00:08:52,800 --> 00:08:55,160 tiuj koditaj, kiam vi estis turnanta ilin. 176 00:08:55,160 --> 00:08:59,210 Do post kiam vi havas ĝin kiel nombro de nulo ĝis naŭ, tiam - depende de 177 00:08:59,210 --> 00:09:02,750 kien gxi iras en la fina nombro - vi devas multipliki ĝi 178 00:09:02,750 --> 00:09:04,120 per potenco de 10. 179 00:09:04,120 --> 00:09:07,340 >> Kelkaj homoj movis de la dorso al la fronto, kaj multigxis la individuo 180 00:09:07,340 --> 00:09:08,940 nombro per potenco de 10. 181 00:09:08,940 --> 00:09:11,160 Kelkaj homoj kopiis el la fronto por apogi - 182 00:09:11,160 --> 00:09:14,430 kaj tiel ili prenis la plej alta ordigi nombroj unua - 183 00:09:14,430 --> 00:09:18,190 kaj savus tiuj en tutmonda nombrilo variablo. 184 00:09:18,190 --> 00:09:20,880 Kaj tiam cxiu tempo tra la POR buklo, multipliki tiu giganto tutmonda 185 00:09:20,880 --> 00:09:25,640 kontraŭi variablon per 10, fari spaco por la venonta signo. 186 00:09:25,640 --> 00:09:28,750 >> Do, kiu estis iom konfuza sen mi skribas ĝin sur la tabulo. 187 00:09:28,750 --> 00:09:31,550 Sed la specimeno solvo estas disponebla al vi. 188 00:09:31,550 --> 00:09:32,870 Sed tiuj estis la grandaj aferoj ni serĉis. 189 00:09:32,870 --> 00:09:36,400 Ankaŭ ĉekon por certigi ke ĉiu individuaj karaktero estis ja 190 00:09:36,400 --> 00:09:39,780 karaktero inter nulo kaj naŭ, kaj ne iu alia gravulo, kiel A, 191 00:09:39,780 --> 00:09:41,160 ekzemple. 192 00:09:41,160 --> 00:09:43,150 >> Tiuj estis la aferoj ni rigardis cxar en tiu demando. 193 00:09:43,150 --> 00:09:46,510 194 00:09:46,510 --> 00:09:47,980 Ĉu tio respondas vian demandon? 195 00:09:47,980 --> 00:09:49,320 >> OMPICA: Jes. 196 00:09:49,320 --> 00:09:50,240 >> JASON Hirschhorn: okej. 197 00:09:50,240 --> 00:09:53,940 Ĉu ekzistas aliaj demandoj pri Kvizo 0? 198 00:09:53,940 --> 00:09:55,440 Kio pri kompili? 199 00:09:55,440 --> 00:09:56,740 Ĉiuj kompili rajton? 200 00:09:56,740 --> 00:09:58,370 N-ro 201 00:09:58,370 --> 00:09:58,840 Tie estis - 202 00:09:58,840 --> 00:10:01,010 [Rie] 203 00:10:01,010 --> 00:10:03,265 Demandojn pri la kompilita procezo? 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 >> [PAPERO susurado] 207 00:10:11,090 --> 00:10:11,520 >> JASON Hirschhorn: Jes. 208 00:10:11,520 --> 00:10:11,700 Michael. 209 00:10:11,700 --> 00:10:14,140 >> MICHAEL: Is numero 7 - hazarda? 210 00:10:14,140 --> 00:10:16,500 >> JASON Hirschhorn: Numero 7. 211 00:10:16,500 --> 00:10:20,670 Numero 7 estis akiri hazarda entjero. 212 00:10:20,670 --> 00:10:21,110 Bonegaj. 213 00:10:21,110 --> 00:10:25,630 Do vi estas donita entjero a kaj an entjero b, kaj vi volas hazarda 214 00:10:25,630 --> 00:10:28,710 entjero inter a kaj b. 215 00:10:28,710 --> 00:10:31,740 Ni povas vere skribos ĉi tiu sur la tabulo, ĉar ĉi tiu 216 00:10:31,740 --> 00:10:33,320 Estis unu linio de kodo - 217 00:10:33,320 --> 00:10:34,390 unu maniero fari ĝin. 218 00:10:34,390 --> 00:10:37,810 >> Do ni estas donita drand kiel funkcio ni povus uzi. 219 00:10:37,810 --> 00:10:38,820 Kaj kion signifas drand - 220 00:10:38,820 --> 00:10:40,290 alprenanta ĝi estas estinta semita - 221 00:10:40,290 --> 00:10:42,316 kion signifas drand reveni? 222 00:10:42,316 --> 00:10:44,840 >> MICHAEL: float inter 0,0 kaj 1,0. 223 00:10:44,840 --> 00:10:45,530 >> JASON Hirschhorn: numero - yeah. 224 00:10:45,530 --> 00:10:47,910 A nombro inter 0 kaj 1. 225 00:10:47,910 --> 00:10:51,760 Kaj tial ni b kaj a. 226 00:10:51,760 --> 00:10:55,480 Kaj tiam ni havos niajn hazarda nombro inter 0 kaj 1 donitaj al ni de drand. 227 00:10:55,480 --> 00:11:01,480 228 00:11:01,480 --> 00:11:06,630 Kelkaj personoj provis meti b, aŭ b minus al, aŭ io interne tiuj 229 00:11:06,630 --> 00:11:07,960 parentezoj. 230 00:11:07,960 --> 00:11:11,210 Tio signifus ke ili estas argumentojn por tiu funkcio. 231 00:11:11,210 --> 00:11:13,450 >> drand ne prenas ajnan argumentoj - kiel getString faras 232 00:11:13,450 --> 00:11:14,330 Ne prenu ajnan argumentoj. 233 00:11:14,330 --> 00:11:16,600 Do ĝi estas nur malfermita paren, fermo paren - kaj ke, mem, estas 234 00:11:16,600 --> 00:11:17,330 la funkcio nomita. 235 00:11:17,330 --> 00:11:19,770 Kaj kiu donas vin kelkaj inter 0 kaj 1. 236 00:11:19,770 --> 00:11:22,820 Kompreneble, ni havas tuta gamo ke nombroj povas esti in 237 00:11:22,820 --> 00:11:28,470 >> Diru, se b estas 10 kaj a estas 5, ni vere ĉu nombro kun gamo de 5. 238 00:11:28,470 --> 00:11:36,940 Do la sekva afero, kiun ni devas fari estas multipliki ĉi tiu per la ventumilo b minus unu. 239 00:11:36,940 --> 00:11:40,380 Do supozante ke tio kreskis. 240 00:11:40,380 --> 00:11:42,590 Kaj tio donos al ni nombro en donita gamo. 241 00:11:42,590 --> 00:11:46,610 Kaj tiu specifa gamo esti la diferenco inter b minus unu. 242 00:11:46,610 --> 00:11:50,030 >> Kaj fine, tio estos nur doni ĝin el - diri la distancon inter b minus unu 243 00:11:50,030 --> 00:11:52,520 estas 5, kiu donos al ni nombro de 0 al 5. 244 00:11:52,520 --> 00:11:56,000 Sed se oni estas fakte 5, necesas plifortigi tiu gamo ĝis kie ĝi estas 245 00:11:56,000 --> 00:12:01,380 efektive supozis esti, aldonante. 246 00:12:01,380 --> 00:12:02,580 Do kiu metas la logiko pravas. 247 00:12:02,580 --> 00:12:03,745 Kaj poste, ĉu vi havas alia demando? 248 00:12:03,745 --> 00:12:04,547 >> MICHAEL: N-ro 249 00:12:04,547 --> 00:12:06,010 Mi nur sentas min vere muta nun. 250 00:12:06,010 --> 00:12:06,405 [Rie] 251 00:12:06,405 --> 00:12:06,730 >> JASON Hirschhorn: N-ro 252 00:12:06,730 --> 00:12:08,640 Ne sentas vere stultaj. 253 00:12:08,640 --> 00:12:10,560 Nombro de homoj baraktis kun tiu demando. 254 00:12:10,560 --> 00:12:13,920 Kaj poste, la alia demando estas, drand, Vi diris, donas al vi float - 255 00:12:13,920 --> 00:12:14,940 Revenas float. 256 00:12:14,940 --> 00:12:18,020 Sed ĉi tiu funkcio fakte demandis por entjero esti reveninta. 257 00:12:18,020 --> 00:12:23,700 >> Vi ne bezonas jxeti ĉi eksplicite al entjero, ĉar tiuj 258 00:12:23,700 --> 00:12:29,090 operacioj traktos ĝin kiel ĉiu flosi - kiel glitpunkta nombro. 259 00:12:29,090 --> 00:12:31,570 Kiel ĉi tiu volo - eĉ se tiu estas entjero, tiu volo 260 00:12:31,570 --> 00:12:32,890 pligrandigxu korekte. 261 00:12:32,890 --> 00:12:34,000 Ĉiuj multipliko laboros. 262 00:12:34,000 --> 00:12:35,060 Vi ne bezonas, por elpeli ilin ĉi tie. 263 00:12:35,060 --> 00:12:36,480 Fakte, vi devus ne jxetu gxin. 264 00:12:36,480 --> 00:12:37,310 >> Tio donus - 265 00:12:37,310 --> 00:12:40,750 se vi estus jxeti nombro tio estas inter 0 kaj 1 - 266 00:12:40,750 --> 00:12:42,680 hazarda nombro, flosanta punkto - 267 00:12:42,680 --> 00:12:47,850 tiam estos bone esti sola 0 aŭ 1, tiel vi perdos la tutan de tiu precizeco. 268 00:12:47,850 --> 00:12:50,120 Sed fine, kiam vi revenas, ĝi aŭtomate ricevas 269 00:12:50,120 --> 00:12:51,620 resendita kiel entjero. 270 00:12:51,620 --> 00:12:56,870 Do vi ne bezonas fari ke enjxetantan mem. 271 00:12:56,870 --> 00:13:00,810 >> Do tiu estis la respondo al tiu demando, numero 7. 272 00:13:00,810 --> 00:13:02,190 Ajna alia demandojn je Kvizo 0? 273 00:13:02,190 --> 00:13:03,300 Yeah, Annie. 274 00:13:03,300 --> 00:13:05,050 >> Annie: Kiam ni uzas rekursia - 275 00:13:05,050 --> 00:13:07,850 Kiam do ni uzu ripeta masxojn? 276 00:13:07,850 --> 00:13:10,210 >> JASON Hirschhorn: Kiam vi uzas rekursia - tiom pli ĝenerale, la 277 00:13:10,210 --> 00:13:14,110 avantaĝoj kaj malavantaĝoj de rekursio kontre ripeta alproksimiĝo. 278 00:13:14,110 --> 00:13:17,110 Ĉu iu proponas avantaĝo aŭ oni kontraŭ? 279 00:13:17,110 --> 00:13:19,460 Bonvolu? 280 00:13:19,460 --> 00:13:20,140 Ne povas neniu. 281 00:13:20,140 --> 00:13:22,526 Kiu povas proponi avantaĝo aŭ oni kontraŭ? 282 00:13:22,526 --> 00:13:26,963 >> [PAPERO susurado] 283 00:13:26,963 --> 00:13:29,730 >> Studenta 1: Rekursia estas malpli kodigo - malpli tajpado? 284 00:13:29,730 --> 00:13:33,170 >> JASON Hirschhorn: Do ĝenerale, rekursio speciale, funkcio - 285 00:13:33,170 --> 00:13:35,750 aux algoritmon kiel merge speco - kiuj pruntas 286 00:13:35,750 --> 00:13:37,300 al rekursia alproksimiĝo - 287 00:13:37,300 --> 00:13:40,710 povus esti pli simpla kodigi rekursie. 288 00:13:40,710 --> 00:13:43,940 Kaj ĝuste fari pli sentita fari ĝin rekursie. 289 00:13:43,940 --> 00:13:46,230 Do kiu estus avantaĝo por rekursio. 290 00:13:46,230 --> 00:13:46,610 Aliaj? 291 00:13:46,610 --> 00:13:47,467 Jes? 292 00:13:47,467 --> 00:13:49,240 >> Studenta 2: Kun por rekursio - 293 00:13:49,240 --> 00:13:50,940 Ĝi uzas pli da memoro. 294 00:13:50,940 --> 00:13:52,200 >> JASON Hirschhorn: Do ĝuste. 295 00:13:52,200 --> 00:13:55,720 A rekursia funkcio gardos aldono stako kadroj al la stako. 296 00:13:55,720 --> 00:13:59,690 Do se vi estas funkcianta sur tereno de nombroj, kaj devas nomi tiun ĉi 297 00:13:59,690 --> 00:14:02,560 funkcii multe, tiam vi certe prenu pli da memoro, dum 298 00:14:02,560 --> 00:14:05,810 ripeta alproksimiĝo estos nur metis unu pilo kadro sur la stako, ĉar 299 00:14:05,810 --> 00:14:08,420 ĉion okazas ene de unu funkcio. 300 00:14:08,420 --> 00:14:11,010 >> Ajna alia avantaĝojn kaj malavantaĝojn? 301 00:14:11,010 --> 00:14:11,500 Jes. 302 00:14:11,500 --> 00:14:12,550 >> Studenta 3: Avantaĝoj de rekursio. 303 00:14:12,550 --> 00:14:15,950 Vi ne devas determini en antaŭi, kiom da fojoj la 304 00:14:15,950 --> 00:14:17,660 kodo devis esti ripetita. 305 00:14:17,660 --> 00:14:22,810 Vi povas havi antaŭdeterminita nombro de fojoj, ke vi devas persisti, tiam 306 00:14:22,810 --> 00:14:26,420 rekursio estas bona, ĉar ĝi prenas tiun rezulton. 307 00:14:26,420 --> 00:14:27,780 >> JASON Hirschhorn: mi kredas ke tio estas vera. 308 00:14:27,780 --> 00:14:30,770 Sed mi opinias, en ambaŭ kazoj vi farus neniam - 309 00:14:30,770 --> 00:14:33,290 vi verŝajne akiri iom enigo de la uzanto. 310 00:14:33,290 --> 00:14:35,990 Aŭ ĉi funkcio havus iujn enigo kiuj fiksus kiom da fojoj ĝi 311 00:14:35,990 --> 00:14:36,730 devus funkcii. 312 00:14:36,730 --> 00:14:39,520 Do ĝenerale, vi ne volis forte kodo - eĉ en ripeta alproksimiĝo - kiom 313 00:14:39,520 --> 00:14:40,940 multajn fojojn, ke buklo devus funkcii. 314 00:14:40,940 --> 00:14:46,100 315 00:14:46,100 --> 00:14:48,670 >> Ĉu vi havas alian vi estis pensante pri, Annie? 316 00:14:48,670 --> 00:14:49,330 OK. 317 00:14:49,330 --> 00:14:51,650 Do tiuj estas verŝajne la du - 318 00:14:51,650 --> 00:14:54,370 la plej granda avantaĝo kaj la plej granda con al rekursia kontre 319 00:14:54,370 --> 00:14:57,080 ripeta alproksimiĝo. 320 00:14:57,080 --> 00:14:57,690 OK. 321 00:14:57,690 --> 00:14:59,465 Ion alian sur Kvizo 0? 322 00:14:59,465 --> 00:15:08,940 323 00:15:08,940 --> 00:15:09,920 >> Ni movi plu. 324 00:15:09,920 --> 00:15:15,260 Dosiero mi / O. Estas mirinde mallonga ĉi-semajne en dosiero / Aŭ ke espereble 325 00:15:15,260 --> 00:15:19,270 vi spektis multnombraj tempoj, kaj admiris. 326 00:15:19,270 --> 00:15:22,910 Multa laboro eniris en tiun, kaj mi aŭdis estas insanely helpema. 327 00:15:22,910 --> 00:15:25,740 Mi ankaŭ inkludis la ligilon en ĉi tiu bildo, en la okazo vi ne havis 328 00:15:25,740 --> 00:15:29,160 okazon rigardi ĝin 10 fojojn. 329 00:15:29,160 --> 00:15:35,280 >> Do, ni tuj mallonge transiros grandaj paŝoj al malfermo kaj kunlaboro 330 00:15:35,280 --> 00:15:38,400 per dosieroj, kaj poste ni iras al plonĝi en kodigo problemon antaux 331 00:15:38,400 --> 00:15:40,400 ekzameni la problemon aro. 332 00:15:40,400 --> 00:15:44,330 Do denove, mi tuj metis ĉi supre sur la ekranon, sed mi tuj parolos por 333 00:15:44,330 --> 00:15:47,630 nur minuton pri kio ni estas faras ĉi tie kun dosieron I/O-- 334 00:15:47,630 --> 00:15:49,090 kion tio signifas? 335 00:15:49,090 --> 00:15:55,280 >> Tio signifas ke ni povas krei niajn programoj, kaj tiam havas niajn programojn 336 00:15:55,280 --> 00:16:00,370 eliro, kaj ne faris ajnan efikon sur la mondo ekstera de nia programo. 337 00:16:00,370 --> 00:16:04,630 Sed kiam ni komencos labori kun dosieroj - ambaŭ legi ilin en kaj kreado 338 00:16:04,630 --> 00:16:10,460 ilin - ni povas havi iun efekton sur la mondon ekstere de nia programo. 339 00:16:10,460 --> 00:16:15,440 >> Ĝuste kiel se Microsoft Word ne povis fari ian Vorto dokumentojn, tiam 340 00:16:15,440 --> 00:16:18,710 unufoje Microsoft Word quit, ĉiuj de viaj laboro estus irinta, kaj estus 341 00:16:18,710 --> 00:16:19,740 vere esti senutila. 342 00:16:19,740 --> 00:16:23,620 Ni finfine volas povi skribi programojn kiuj povas tuŝi la 343 00:16:23,620 --> 00:16:31,350 mondo cxirkaux ili, ambaŭ per prenante en kompleksa enigoj - en terminoj de dosieroj kaj 344 00:16:31,350 --> 00:16:37,080 per dosieroj, kaj ankaŭ kreante interesaj kaj konvinka eliroj - 345 00:16:37,080 --> 00:16:39,520 en terminoj de malsamaj tipoj de dosieroj. 346 00:16:39,520 --> 00:16:43,730 >> Tial estas kial ni komencas lerni kiel labori kun dosieroj. 347 00:16:43,730 --> 00:16:47,080 Pli specife, kion ni do estas la jena. 348 00:16:47,080 --> 00:16:47,680 Ĝi estas tre simpla. 349 00:16:47,680 --> 00:16:51,530 Estas nur kelkaj paŝoj, kaj ili estas listigitaj ĉi tie pri tiu kodo. 350 00:16:51,530 --> 00:16:55,130 Do ni tuj iru tra tiun kodon linio por linio. 351 00:16:55,130 --> 00:16:57,630 >> Unue, vi vidos reliefigis - 352 00:16:57,630 --> 00:17:01,330 kiam vi laboras per dosiero, sendepende de la tipo de dosiero estas, 353 00:17:01,330 --> 00:17:02,670 Vi bezonas malfermi ĝin. 354 00:17:02,670 --> 00:17:05,130 Kaj kiu estas kun alvoko al fopen - 355 00:17:05,130 --> 00:17:05,950 ĝuste ĉi tie. 356 00:17:05,950 --> 00:17:07,980 Vi inkluzivas la nomon de la dosiero. 357 00:17:07,980 --> 00:17:11,930 Se la dosiero ne estas en via adresaro, aŭ la dosierujo kie ĉi programo 358 00:17:11,930 --> 00:17:15,910 vivoj, tiam vi ankaŭ bezonos inkluzivi pado al kie tiu dosiero. 359 00:17:15,910 --> 00:17:19,099 >> Ni tuj supozas, ke tiu dosiero nomata "text.txt" - 360 00:17:19,099 --> 00:17:24,220 simpla teksto dokumento - estas en la sama dosierujo kiel tiu programo estas. 361 00:17:24,220 --> 00:17:26,859 Do tio estas alia afero por gardi en menson - ke se vi volas malfermi dosieron 362 00:17:26,859 --> 00:17:30,050 aliloke, vi vere bezonas por inkluzivi lian situon. 363 00:17:30,050 --> 00:17:33,520 >> Due, vi povas pasi argumento por fopen, kaj tio kion vi volas fari 364 00:17:33,520 --> 00:17:34,620 kun la arkivo. 365 00:17:34,620 --> 00:17:38,450 Estas tri ĉefaj argumentoj kiuj vi tuj pasi al fopen. 366 00:17:38,450 --> 00:17:40,060 Kiu povas doni al mi tiuj tri? 367 00:17:40,060 --> 00:17:44,960 368 00:17:44,960 --> 00:17:47,130 Kiu povas doni al mi unu el ili? 369 00:17:47,130 --> 00:17:48,130 Jes. 370 00:17:48,130 --> 00:17:50,010 >> Studenta 4: La dosiero nomo? 371 00:17:50,010 --> 00:17:50,440 >> JASON Hirschhorn: Pardonu. 372 00:17:50,440 --> 00:17:55,490 Tri ĉefaj argumentoj vi povas pasi kiel la dua argumento al fopen. 373 00:17:55,490 --> 00:17:57,060 Vi pravas - la dosiernomo estas la unua argumento. 374 00:17:57,060 --> 00:18:01,620 Sed la dua argumento al fopen estas ĝenerale tri kordojn, kaj - jes. 375 00:18:01,620 --> 00:18:02,210 Aleja. 376 00:18:02,210 --> 00:18:03,490 >> ALEJA: A por append. 377 00:18:03,490 --> 00:18:06,840 >> JASON Hirschhorn: A, se vi volas append al dosiero kiu jam ekzistas. 378 00:18:06,840 --> 00:18:07,810 >> Studenta 5: R por legado. 379 00:18:07,810 --> 00:18:09,930 >> JASON Hirschhorn: R, se vi volas legi el dosiero. 380 00:18:09,930 --> 00:18:10,670 >> Studenta 6: W por skribi. 381 00:18:10,670 --> 00:18:12,840 >> JASON Hirschhorn: Kaj w, se vi volas skribi al dosiero. 382 00:18:12,840 --> 00:18:17,570 Do, en tiu kazo, ni skribas por la dosiero, tiel ni havos w. 383 00:18:17,570 --> 00:18:22,360 Vi malfermas ĝin, vi ankaŭ devas savi la dosiero ie, kaj tio estas kun la 384 00:18:22,360 --> 00:18:26,000 kodo al la maldekstra flanko de la atribuo operatoro - 385 00:18:26,000 --> 00:18:31,220 Mi kreante montrilon al dosiero nomis, en ĉi tiu kazo, dosiero. 386 00:18:31,220 --> 00:18:36,070 >> Ni ne tuj maltrankviliĝu kio tiu tuta kaskedoj DOSIERO afero. 387 00:18:36,070 --> 00:18:40,600 Sufiĉas diri, tio estas longa rivereto de nuloj kaj aĵoj. 388 00:18:40,600 --> 00:18:44,970 Kaj tiu estas kiel ni tuj eksplodi ĝin kaj kompreni ĝin. 389 00:18:44,970 --> 00:18:47,300 >> La sekva afero, kiun ni devas fari - kaj tio estas nekredeble grava - 390 00:18:47,300 --> 00:18:49,070 kiam ajn vi malfermas dosieron - 391 00:18:49,070 --> 00:18:54,250 fakte, kiam ajn vi nomas malloc, por Ekzemple, kaj akiri iom memoro kaj provi 392 00:18:54,250 --> 00:18:57,980 kaj savos gxin en montrilon, vi ĉiam volas kontroli por certiĝi ke tiu 393 00:18:57,980 --> 00:19:00,230 funkcio ne revenis nula. 394 00:19:00,230 --> 00:19:05,230 >> Do, en tiu kazo, ni estas kontrolanta fari certas, ke ni efektive malfermis la 395 00:19:05,230 --> 00:19:10,230 dosiero korekte, kaj tie estis neniu eraro en nia programo. 396 00:19:10,230 --> 00:19:15,160 Tuj poste, iam ni kontrolis certigi ke ni havos funkciantan dosiero, ni povas 397 00:19:15,160 --> 00:19:18,520 skribi al, aŭ legu el, aux postglui al la dosiero. 398 00:19:18,520 --> 00:19:24,270 En ĉi tiu kazo, mi simple presi unu linio al ĉi tiu dosiero. 399 00:19:24,270 --> 00:19:25,450 >> Kiel mi scias, ke? 400 00:19:25,450 --> 00:19:27,990 Nu, mi uzas ĉi funkcio vokis fprintf. 401 00:19:27,990 --> 00:19:30,970 Ĉiuj el la funkcioj vi uzos kiam skribante al, aŭ legado de, aŭ 402 00:19:30,970 --> 00:19:34,950 manipulanta dosierojn estos simila al funkcioj vi vidis antaŭe, sed 403 00:19:34,950 --> 00:19:38,420 komenci per la litero C, staranta por dosiero. 404 00:19:38,420 --> 00:19:43,440 Kaj fprintf, kontraste al nia normala print app, prenas unu aldona argumento, 405 00:19:43,440 --> 00:19:47,800 kaj tio estas la dosiero kie vi deziras presi jenan linion al. 406 00:19:47,800 --> 00:19:50,640 >> Mi ne havas nenion Dekstre de ohai. 407 00:19:50,640 --> 00:19:52,860 Mi ne havas la trian argumento por printf - 408 00:19:52,860 --> 00:19:57,030 aŭ la dua argumento por printf, la tria argumento al fprintf, ĉar mi 409 00:19:57,030 --> 00:19:59,480 ne havas ajnan anstataŭiloj tie. 410 00:19:59,480 --> 00:20:01,070 Mi ne inkludante ajna variabloj. 411 00:20:01,070 --> 00:20:06,070 Sed denove, fprintf kaj ĉiuj el tiuj dosieron funkcioj kiuj operacias kun dosieroj 412 00:20:06,070 --> 00:20:09,820 ĝenerale tuj bezonos la dosiero sur kiu ili estas funkcianta. 413 00:20:09,820 --> 00:20:15,960 >> Fine, la lasta grava afero do estas por fermi la dosieron, same kiel 414 00:20:15,960 --> 00:20:19,530 kun - kiam ajn ni malloc ion, ni volas liberigi ion, por ke ni 415 00:20:19,530 --> 00:20:22,730 havas memoron liko - ni volas fermi nian dosieron. 416 00:20:22,730 --> 00:20:28,180 Se tiu programo ĝi eliris sen fermo la dosiero, probabloj estas nenio irus 417 00:20:28,180 --> 00:20:30,050 erara, precipe se ĝi Estis malgranda dosiero. 418 00:20:30,050 --> 00:20:35,020 >> Sed estas certe bona kodigo stilo kaj ekzerci por ĉiam fermi vian dosieron 419 00:20:35,020 --> 00:20:38,050 kiam vi estas finita uzante gxin. 420 00:20:38,050 --> 00:20:43,630 Do kiu estas la fundamentoj de dosiero mi / O. Vi verŝajne vidis ke antaŭe, aŭ 421 00:20:43,630 --> 00:20:45,710 rigardis ŝin en tiu fantazia mallonga. 422 00:20:45,710 --> 00:20:48,410 Ĉu iu havas iun demandon, antaŭ ol Ni iru en iun praktikon kodigon 423 00:20:48,410 --> 00:20:51,800 problemoj, pri dosiero / Aŭ aŭ paŝoj Mi ĵus transiris? 424 00:20:51,800 --> 00:21:00,198 425 00:21:00,198 --> 00:21:03,162 >> [Tajpado SOUNDS] 426 00:21:03,162 --> 00:21:04,150 >> JASON Hirschhorn: Do vi havas demandon, Avi? 427 00:21:04,150 --> 00:21:04,660 >> AVI: N-ro 428 00:21:04,660 --> 00:21:04,740 >> JASON Hirschhorn: okej. 429 00:21:04,740 --> 00:21:06,746 Mi iras al atendu alian sep sekundoj. 430 00:21:06,746 --> 00:21:07,590 [Rie] 431 00:21:07,590 --> 00:21:08,620 Tio estas vere bona konsilo. 432 00:21:08,620 --> 00:21:10,750 Vi infanoj simple ne ŝatas demandi demandojn. 433 00:21:10,750 --> 00:21:11,660 Tio estas bone. 434 00:21:11,660 --> 00:21:12,330 OK. 435 00:21:12,330 --> 00:21:17,620 Do nia unua praktiko problemo estas, ni estas tuj duobligas la funkcion de 436 00:21:17,620 --> 00:21:22,330 komandan linion ilo kiun vi probable uzata antaŭ - kopio - 437 00:21:22,330 --> 00:21:23,500 la kopio ilo. 438 00:21:23,500 --> 00:21:28,050 Se vi tajpas cp kaj tiam fordoni du argumentojn en via terminalo, vi povas 439 00:21:28,050 --> 00:21:28,980 kopii dosieron. 440 00:21:28,980 --> 00:21:31,220 Kaj tio estas kion ni iras skribi ĝuste nun. 441 00:21:31,220 --> 00:21:35,830 >> Do denove, legante for de ĉi glito, mi tute vi skribi programon kiu prenas 442 00:21:35,830 --> 00:21:38,130 du kaj nur du komand-linio argumentoj - 443 00:21:38,130 --> 00:21:40,750 fonto-dosieron kaj celloko dosiero - 444 00:21:40,750 --> 00:21:44,590 kaj kopias la enhavon de la fonto fajli la celloko dosieron 445 00:21:44,590 --> 00:21:46,960 unu bajton por fojo. 446 00:21:46,960 --> 00:21:48,510 Do tio estas multe peti. 447 00:21:48,510 --> 00:21:52,200 >> Denove, bona alproksimiĝo al ĉi tio estas por Ne iru rekte al la C-kodo, sed 448 00:21:52,200 --> 00:21:54,280 rompi gxin malsupren en kelkaj ŝtupoj. 449 00:21:54,280 --> 00:21:58,400 Unue, pensu pri la logiko - ekzakte kion mi petas vin fari - 450 00:21:58,400 --> 00:22:00,620 kaj kompreni ĉiujn paŝoj al tiu problemo. 451 00:22:00,620 --> 00:22:04,410 Ne en C, nur en iuj _pseudocode_, aŭ eĉ mensa modelo de 452 00:22:04,410 --> 00:22:06,030 kio okazas. 453 00:22:06,030 --> 00:22:10,050 >> Tuj poste, iam vi havos la _pseudocode_ malsupren, elkompreni kiel la _pseudocode_ 454 00:22:10,050 --> 00:22:14,600 mapoj sur ilojn kaj aĵojn ni lernis uzi en C. 455 00:22:14,600 --> 00:22:19,070 >> Kaj fine, kiam vi havas cxion, kion kune, vi povas programi la problemon. 456 00:22:19,070 --> 00:22:23,370 Prenu 5 al 10 minutoj labori pri tiu problemo. 457 00:22:23,370 --> 00:22:25,800 Mi metos la instrukciojn reen en sekundo. 458 00:22:25,800 --> 00:22:27,990 Kaj tiam ni tuj iru super la _pseudocode_, kaj kodo 459 00:22:27,990 --> 00:22:29,230 ĝi vivas kiel grupo. 460 00:22:29,230 --> 00:22:31,640 >> Se vi havas demandojn dum vi estas laboras pri tio, bonvolu levi 461 00:22:31,640 --> 00:22:34,260 via mano, kaj mi venos ĉirkaŭe kaj respondi ilin. 462 00:22:34,260 --> 00:22:37,020 463 00:22:37,020 --> 00:22:39,330 >> Studenta 7: Ĉu mi swipe peco da papero? 464 00:22:39,330 --> 00:22:41,537 >> JASON Hirschhorn: KIO OKAZAS? 465 00:22:41,537 --> 00:26:46,047 466 00:26:46,047 --> 00:26:48,043 >> [Tajpado SOUNDS] 467 00:26:48,043 --> 00:26:48,730 >> JASON Hirschhorn: okej. 468 00:26:48,730 --> 00:26:51,710 Ni transiru la _pseudocode_ unue, kaj tiam Mi donos al vi du pli 469 00:26:51,710 --> 00:26:52,960 minutojn por fini kodigo. 470 00:26:52,960 --> 00:26:55,540 471 00:26:55,540 --> 00:26:58,650 >> Kiu ŝatus komenci min kun la unua linio de 472 00:26:58,650 --> 00:27:00,030 _pseudocode_ por ĉi tiu funkcio? 473 00:27:00,030 --> 00:27:03,330 474 00:27:03,330 --> 00:27:05,740 >> Studenta 8: Kontrolu por certigi ke vi estis donitaj la du dosierojn. 475 00:27:05,740 --> 00:27:06,990 >> JASON Hirschhorn: okej. 476 00:27:06,990 --> 00:27:21,270 477 00:27:21,270 --> 00:27:22,990 Kaj se ni ne estas? 478 00:27:22,990 --> 00:27:25,974 >> Studenta 8: mi revenus 0. 479 00:27:25,974 --> 00:27:27,872 >> JASON Hirschhorn: Cxu ni revenu 0? 480 00:27:27,872 --> 00:27:30,182 >> Studenta 8: Reiru al - 481 00:27:30,182 --> 00:27:30,650 Forviŝo. 482 00:27:30,650 --> 00:27:30,850 Pardonon. 483 00:27:30,850 --> 00:27:31,210 >> JASON Hirschhorn: Jes. 484 00:27:31,210 --> 00:27:32,710 Probable ne 0. 485 00:27:32,710 --> 00:27:34,680 Ĉar 0 signifas ĉio estis bona. 486 00:27:34,680 --> 00:27:35,030 OK. 487 00:27:35,030 --> 00:27:36,730 Do jen la unua linio de _pseudocode_. 488 00:27:36,730 --> 00:27:38,715 Kiu havas la dua linio de _pseudocode_? 489 00:27:38,715 --> 00:27:40,630 >> Studenta 9: Open ambaŭ la dosierojn? 490 00:27:40,630 --> 00:27:41,880 >> JASON Hirschhorn: Malfermu ambaŭ dosierojn. 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 >> Studenta 10: Kontrolu vidi se la dosiero estas NULL? 494 00:27:52,850 --> 00:28:10,906 495 00:28:10,906 --> 00:28:12,580 >> JASON Hirschhorn: Kontrolu fari certa nek estas nula. 496 00:28:12,580 --> 00:28:15,800 Kiel flanken - 497 00:28:15,800 --> 00:28:17,540 oblikvo 0 - 498 00:28:17,540 --> 00:28:18,887 estas ke NULL? 499 00:28:18,887 --> 00:28:20,080 >> Studenta 11: N-ro 500 00:28:20,080 --> 00:28:21,190 >> JASON Hirschhorn: Tio ne estas nula. 501 00:28:21,190 --> 00:28:23,400 Tio nomiĝas la nula finilo. 502 00:28:23,400 --> 00:28:25,580 Ĝi estas fakte literumita kun nur unu l. 503 00:28:25,580 --> 00:28:28,580 Do kontrolanta iun kontraŭ tio - ke estas reale karaktero - 504 00:28:28,580 --> 00:28:31,710 tiel kontrolanta iun kontraŭ kiu ne la sama kiel oni kontrolas, se ĝi 505 00:28:31,710 --> 00:28:32,690 egalas NULL. 506 00:28:32,690 --> 00:28:34,100 >> Kaj iuj homoj - 507 00:28:34,100 --> 00:28:36,040 sur iliaj kvizojn kaj ilia problemo aroj - ili atingis la 508 00:28:36,040 --> 00:28:36,890 du el tiuj konfuzita. 509 00:28:36,890 --> 00:28:38,830 Sed la du de tiuj estas fakte malsamaj. 510 00:28:38,830 --> 00:28:40,220 Unu finiĝas ĉenon - 511 00:28:40,220 --> 00:28:43,210 unu estas montrilo al 0. 512 00:28:43,210 --> 00:28:46,490 >> Studenta 12: Kial vi ne kontrolu Certigi ke la dosieroj estas ne NULL 513 00:28:46,490 --> 00:28:48,670 antaŭ ol vi malfermas ilin? 514 00:28:48,670 --> 00:28:54,772 >> JASON Hirschhorn: Do malferma ŝparas ion en tiu dosiero. 515 00:28:54,772 --> 00:28:57,780 Kaj se vi reiros tien - 516 00:28:57,780 --> 00:28:59,520 tial cxi tiu linio - fopen - 517 00:28:59,520 --> 00:29:05,300 donos al vi adreso kaj vendejo tiu adreso en dosieron, se tio funkcias. 518 00:29:05,300 --> 00:29:07,650 Se tio ne funkcias, ĝi amasigos NULL - 519 00:29:07,650 --> 00:29:08,020 >> Studenta 12: Ho. 520 00:29:08,020 --> 00:29:08,180 OK. 521 00:29:08,180 --> 00:29:08,500 Got vi. 522 00:29:08,500 --> 00:29:09,050 >> JASON Hirschhorn: En dosiero. 523 00:29:09,050 --> 00:29:11,990 Do vi ne povas kontroli NULL antaŭ vi jam malfermis ilin. 524 00:29:11,990 --> 00:29:13,520 NULL signifas ion ne funkcii ĝuste. 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 Do kontroli por certiĝi nek estas? 528 00:29:22,590 --> 00:29:23,200 Aŭ ĉu? 529 00:29:23,200 --> 00:29:23,770 Kion ni pensu? 530 00:29:23,770 --> 00:29:24,310 Ni devos iri kun tio. 531 00:29:24,310 --> 00:29:24,520 >> Studenta 13: Estas. 532 00:29:24,520 --> 00:29:25,020 >> JASON Hirschhorn: Ĉu? 533 00:29:25,020 --> 00:29:25,930 Nek estas? 534 00:29:25,930 --> 00:29:26,350 >> Studenta 13: Estas. 535 00:29:26,350 --> 00:29:26,390 >> JASON Hirschhorn: okej. 536 00:29:26,390 --> 00:29:28,510 Ni ŝajnas havi iu unuanimeco pri tio. 537 00:29:28,510 --> 00:29:30,520 Nek estas nula. 538 00:29:30,520 --> 00:29:32,250 OK, sekvanta linio de _pseudocode_. 539 00:29:32,250 --> 00:29:33,600 Kiu min ne donis linion ankoraŭ? 540 00:29:33,600 --> 00:29:37,350 541 00:29:37,350 --> 00:29:38,295 Ni atendos vin. 542 00:29:38,295 --> 00:29:39,020 Jes. 543 00:29:39,020 --> 00:29:40,895 >> Studenta 14: Vi devas legi de la unua dosiero? 544 00:29:40,895 --> 00:29:42,290 >> JASON Hirschhorn: okej. 545 00:29:42,290 --> 00:29:46,240 >> Studenta 14: Aŭ ni uzu fscanf aŭ io kiel ke la unua dosiero? 546 00:29:46,240 --> 00:29:50,650 >> JASON Hirschhorn: Do ni volas legi de la unua dosiero kaj - 547 00:29:50,650 --> 00:29:51,900 ni metas tiun ĉi tie. 548 00:29:51,900 --> 00:30:00,600 549 00:30:00,600 --> 00:30:01,880 Legu el la fonta dosiero. 550 00:30:01,880 --> 00:30:05,370 Kaj poste, kion ni faros kiam ni legu el la fonta dosiero? 551 00:30:05,370 --> 00:30:06,620 Iu alia? 552 00:30:06,620 --> 00:30:09,150 553 00:30:09,150 --> 00:30:12,190 >> Studenta 15: Skribu en La celloko dosiero? 554 00:30:12,190 --> 00:30:22,080 555 00:30:22,080 --> 00:30:25,620 >> JASON Hirschhorn: Ni skribu al La celloko dosiero, kaj - 556 00:30:25,620 --> 00:30:26,210 OK. 557 00:30:26,210 --> 00:30:30,030 Kion alian ni mankas? 558 00:30:30,030 --> 00:30:32,460 Iu ajn, kiu ne donis al mi linio de kodo ankoraŭ - de _pseudocode_. 559 00:30:32,460 --> 00:30:33,510 Jes. 560 00:30:33,510 --> 00:30:36,540 >> Studenta 16: Eble vi povas ĉiam kontroli ĉu estas io por legi, 561 00:30:36,540 --> 00:30:37,970 kiel la sekva linio? 562 00:30:37,970 --> 00:30:39,550 Tio estas kiel la sekva linio, rigardu, cxu gxi ekzistas. 563 00:30:39,550 --> 00:30:40,660 >> [ELECTRONIC beep] 564 00:30:40,660 --> 00:30:41,095 >> JASON Hirschhorn: Oops. 565 00:30:41,095 --> 00:30:43,120 Tiu estas mia taglibro programaro. 566 00:30:43,120 --> 00:30:43,580 Jes? 567 00:30:43,580 --> 00:30:44,960 >> Studenta 16: Jes. 568 00:30:44,960 --> 00:30:48,940 >> JASON Hirschhorn: Do donu ĝin al mi unu pli longa tempo. 569 00:30:48,940 --> 00:30:51,640 >> Studenta 16: Kontrolu ĉu ekzistas ankoraŭ sekva linio el la 570 00:30:51,640 --> 00:30:52,920 fontdosieron por legi. 571 00:30:52,920 --> 00:30:53,500 >> JASON Hirschhorn: okej. 572 00:30:53,500 --> 00:30:56,060 Do ni ne legas linioj - legis bitokoj tie - 573 00:30:56,060 --> 00:30:57,590 sed vi estas korekta. 574 00:30:57,590 --> 00:31:00,040 Ni volas legi kaj skribi ĝis tie estas ne bajtoj. 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 Kaj tial tiuj devus vere esti dentado iom, ĉar ili estas sub tie. 578 00:31:16,940 --> 00:31:17,470 Ĝuste? 579 00:31:17,470 --> 00:31:20,620 Ĝis ni estas el bitokoj, ni iras al legu el la fonta dosiero kaj skribi 580 00:31:20,620 --> 00:31:22,160 al la celloko dosiero. 581 00:31:22,160 --> 00:31:24,510 >> Kaj tiam, kio estas la lasta linio de _pseudocode_? 582 00:31:24,510 --> 00:31:26,380 Iu, kiu ne estas donita al mi ion ankoraŭ. 583 00:31:26,380 --> 00:31:29,270 584 00:31:29,270 --> 00:31:30,260 >> Studenta 17: Fermu la dosierojn? 585 00:31:30,260 --> 00:31:31,510 >> JASON Hirschhorn: Ekzakte. 586 00:31:31,510 --> 00:31:36,370 587 00:31:36,370 --> 00:31:37,450 Fermu la dosierojn. 588 00:31:37,450 --> 00:31:38,400 Do tie estas nia _pseudocode_. 589 00:31:38,400 --> 00:31:41,870 Mi tuj metos la _pseudocode_ en gedit, kaj en kelkaj minutoj ni 590 00:31:41,870 --> 00:31:44,626 estos kodigi ĉi kune. 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 Ni komencu kiel grupo. 594 00:33:58,290 --> 00:33:59,940 Nishant, mi havas mian novan dosieron. 595 00:33:59,940 --> 00:34:01,130 Mi ĵus malfermis ĉi supre. 596 00:34:01,130 --> 00:34:01,880 Untitled Document 1. 597 00:34:01,880 --> 00:34:05,490 Kio estas la unua aĵo kiun mi devus fari? 598 00:34:05,490 --> 00:34:07,040 >> NISHANT: Inkluzivi bibliotekoj? 599 00:34:07,040 --> 00:34:08,219 >> JASON Hirschhorn: okej. 600 00:34:08,219 --> 00:34:11,070 Kio bibliotekoj? 601 00:34:11,070 --> 00:34:17,570 >> NISHANT: Stdio.h, stdlib.h, mi kredas? 602 00:34:17,570 --> 00:34:18,000 >> JASON Hirschhorn: okej. 603 00:34:18,000 --> 00:34:21,592 Kio estas stdlib por? 604 00:34:21,592 --> 00:34:23,010 >> NISHANT: Mi forgesis. 605 00:34:23,010 --> 00:34:23,219 >> JASON Hirschhorn: okej. 606 00:34:23,219 --> 00:34:24,179 Do, stdio. 607 00:34:24,179 --> 00:34:28,630 Kion mi faru, eĉ antaŭ ol Mi komencos kodigo? 608 00:34:28,630 --> 00:34:29,710 >> NISHANT: Skribu kaplinio? 609 00:34:29,710 --> 00:34:31,830 >> JASON Hirschhorn: Kiel do I get it kolorigita? 610 00:34:31,830 --> 00:34:34,060 >> [Intermetante Voĉoj] 611 00:34:34,060 --> 00:34:35,040 >> NISHANT: Kiamaniere vi akiras gxin kolora? 612 00:34:35,040 --> 00:34:38,060 >> JASON Hirschhorn: Kiel ĉu mi kolora kodigo? 613 00:34:38,060 --> 00:34:38,570 >> NISHANT: Mi ne scias. 614 00:34:38,570 --> 00:34:38,830 Oh. 615 00:34:38,830 --> 00:34:39,389 Gardi. 616 00:34:39,389 --> 00:34:39,929 >> JASON Hirschhorn: Savu. 617 00:34:39,929 --> 00:34:40,270 Jes. 618 00:34:40,270 --> 00:34:41,760 Mi devus konservi ĝin kiel. C. 619 00:34:41,760 --> 00:34:46,239 Do savi gxin sur la labortablo kiel cp.c. 620 00:34:46,239 --> 00:34:47,280 Dolĉa. 621 00:34:47,280 --> 00:34:51,199 Kaj se mi volas ricevi plenan stilo punktoj, kion do mi 622 00:34:51,199 --> 00:34:53,085 inkluzivi en la pinto? 623 00:34:53,085 --> 00:34:58,390 >> NISHANT: Vi povus skribi vian nomon, la nomon de la programo, kaj la celo 624 00:34:58,390 --> 00:34:59,640 de la programo tiel? 625 00:34:59,640 --> 00:35:08,400 626 00:35:08,400 --> 00:35:10,040 >> JASON Hirschhorn: Aspektas bone. 627 00:35:10,040 --> 00:35:10,470 Bonegaj. 628 00:35:10,470 --> 00:35:12,940 Do vi jam komenciĝis ni ekstere perfekte. 629 00:35:12,940 --> 00:35:13,720 # Include - 630 00:35:13,720 --> 00:35:15,365 ni ankaŭ skribas - 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 Do mi pensas ke mi tuta aro iri. 634 00:35:33,520 --> 00:35:38,003 Kiu havas la unuan linion de kodo por mi - aŭ la unuajn liniojn de kodo ke 635 00:35:38,003 --> 00:35:41,280 prenos por kontentigi nian unuan komenti en _pseudocode_? 636 00:35:41,280 --> 00:35:41,985 Vi. 637 00:35:41,985 --> 00:35:48,780 >> Studenta 18: Should it be int argc, kaj tiam char * argv? 638 00:35:48,780 --> 00:35:49,490 >> JASON Hirschhorn: Mi opinias Vi pravas. 639 00:35:49,490 --> 00:35:56,270 Ni ŝanĝu ĝin al int main, malferma paren, int argc, komo, char * argv? 640 00:35:56,270 --> 00:35:57,150 Kiel tio? 641 00:35:57,150 --> 00:35:57,410 >> Studenta 18: krampoj. 642 00:35:57,410 --> 00:35:58,260 >> JASON Hirschhorn: krampoj. 643 00:35:58,260 --> 00:35:59,860 Malferma krampo, proksime krampo, proksime patro. 644 00:35:59,860 --> 00:36:00,240 Perfekta. 645 00:36:00,240 --> 00:36:02,160 Nun mi povas preni komandlinion argumentoj. 646 00:36:02,160 --> 00:36:02,430 OK. 647 00:36:02,430 --> 00:36:04,250 Certigu ni donita du dosierojn. 648 00:36:04,250 --> 00:36:07,905 Vi povas doni al mi, ke tiel. 649 00:36:07,905 --> 00:36:09,180 >> Studenta 18: Se argc - 650 00:36:09,180 --> 00:36:11,060 ĉi tiu ne egalas 3. 651 00:36:11,060 --> 00:36:14,360 >> JASON Hirschhorn: Se malferma paren argc ne egalas 3? 652 00:36:14,360 --> 00:36:16,970 >> Studenta 18: Jes, vi revenos 1 aŭ nenion. 653 00:36:16,970 --> 00:36:17,460 >> JASON Hirschhorn: Pardonu. 654 00:36:17,460 --> 00:36:19,120 >> Studenta 18: Return 1 aŭ nenion. 655 00:36:19,120 --> 00:36:20,270 >> JASON Hirschhorn: Reiru 1. 656 00:36:20,270 --> 00:36:22,230 OK? 657 00:36:22,230 --> 00:36:22,970 Granda. 658 00:36:22,970 --> 00:36:24,290 Malfermu ambaŭ dosierojn. 659 00:36:24,290 --> 00:36:26,160 Kiu povas helpi min malfermi ambaux dosieroj? 660 00:36:26,160 --> 00:36:28,125 Kiu min ne donis kodo ankoraŭ? 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: Do ĉiuj kaskedoj F-mi-L-E stelo fonto. 664 00:36:36,145 --> 00:36:39,390 665 00:36:39,390 --> 00:36:40,920 >> JASON Hirschhorn: Mi iras preni el la vokaloj. 666 00:36:40,920 --> 00:36:41,570 Tiuj estas malvarmeta. 667 00:36:41,570 --> 00:36:42,716 Estas kiel Tumblr. 668 00:36:42,716 --> 00:36:44,610 >> Studenta 18: Egalas fopen - 669 00:36:44,610 --> 00:36:46,612 >> JASON Hirschhorn: Egalas fopen? 670 00:36:46,612 --> 00:36:49,870 >> Studenta 18: Malferma paren, argv, malferma krampo. 671 00:36:49,870 --> 00:36:50,055 >> JASON Hirschhorn: Atendu. 672 00:36:50,055 --> 00:36:50,240 Pardonon. 673 00:36:50,240 --> 00:36:51,050 Malferma paren. 674 00:36:51,050 --> 00:36:51,456 OK. 675 00:36:51,456 --> 00:36:53,080 >> Studenta 18: Jes. 676 00:36:53,080 --> 00:36:55,110 Argv sub 1. 677 00:36:55,110 --> 00:36:55,860 >> JASON Hirschhorn: Sub 1? 678 00:36:55,860 --> 00:36:56,140 >> Studenta 18: Jes. 679 00:36:56,140 --> 00:36:58,540 Argv malferma krampo 1 - 680 00:36:58,540 --> 00:36:59,730 jes. 681 00:36:59,730 --> 00:37:06,470 Kaj tiam komo, kaj tiam malfermitaj duobla citaĵo, r, citilon, 682 00:37:06,470 --> 00:37:08,250 proksime paren, punktokomo. 683 00:37:08,250 --> 00:37:09,450 >> JASON Hirschhorn: Dolĉa. 684 00:37:09,450 --> 00:37:10,950 Kaj kio pri la aliaj la unuan? 685 00:37:10,950 --> 00:37:16,030 >> Studenta 18: Tre similaj, sed anstataŭ de S-R-C, oni kredus nomas ĝin D-S-T. 686 00:37:16,030 --> 00:37:17,060 >> JASON Hirschhorn: Oo! 687 00:37:17,060 --> 00:37:17,772 Mi ŝatas tiun. 688 00:37:17,772 --> 00:37:20,010 >> Studenta 18: Just D-S-T. Jes. 689 00:37:20,010 --> 00:37:23,057 Kaj tiam argv, malferma krampo, 2. 690 00:37:23,057 --> 00:37:23,200 Jes. 691 00:37:23,200 --> 00:37:26,720 Kaj poste w anstataŭ r. 692 00:37:26,720 --> 00:37:27,620 Jes. 693 00:37:27,620 --> 00:37:29,630 >> JASON Hirschhorn: Granda. 694 00:37:29,630 --> 00:37:31,360 Sekva paro de linioj. 695 00:37:31,360 --> 00:37:34,040 Ankaŭ, se iu havas aĵojn aldoni linioj, kiujn ni faris, ni invitas al 696 00:37:34,040 --> 00:37:35,690 aldoni tiujn ankaŭ. 697 00:37:35,690 --> 00:37:37,520 Kontrolu certigi nek estas nula. 698 00:37:37,520 --> 00:37:41,450 Kiu povas doni al mi la kodon mi bezonas kontentigi tiun linion el _pseudocode_? 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: Se src egalas egaluloj NULL aŭ DST egalas egaluloj 702 00:37:58,645 --> 00:38:04,590 NULL, tiam vi revenos - 703 00:38:04,590 --> 00:38:07,130 704 00:38:07,130 --> 00:38:07,976 >> JASON Hirschhorn: Kio? 705 00:38:07,976 --> 00:38:08,890 >> Archer: Reiru 2? 706 00:38:08,890 --> 00:38:09,760 >> JASON Hirschhorn: Reiru 2. 707 00:38:09,760 --> 00:38:14,400 Do se malfermita paren src egalas egalas NULL, aŭ - 708 00:38:14,400 --> 00:38:15,590 kion ajn tio thing's - pipon? 709 00:38:15,590 --> 00:38:16,346 Pipon? 710 00:38:16,346 --> 00:38:17,140 Ni nomas ĝin pipon. 711 00:38:17,140 --> 00:38:22,340 Pipo, pipo, DST egalas egaluloj NULL, revenu 2. 712 00:38:22,340 --> 00:38:23,900 OK? 713 00:38:23,900 --> 00:38:26,060 Ĝis ni estas el bitokoj - 714 00:38:26,060 --> 00:38:29,820 ni ia saltis super tiu ŝtupo de la _pseudocode_ parto por iri tien. 715 00:38:29,820 --> 00:38:31,970 >> Sed ĝis ni el bitokoj - kion faras tiu sono kiel? 716 00:38:31,970 --> 00:38:34,680 Kio tipo de C strukturo - 717 00:38:34,680 --> 00:38:36,160 sed mi ne uzas la vorto strukturo, ĉar ni tuj ekuzi 718 00:38:36,160 --> 00:38:37,350 ke en aliaj kazoj - 719 00:38:37,350 --> 00:38:39,495 sed C ilo faras tiun sonon kiel? 720 00:38:39,495 --> 00:38:39,970 >> Studenta 19: buklo. 721 00:38:39,970 --> 00:38:40,980 >> JASON Hirschhorn: Ciklo. 722 00:38:40,980 --> 00:38:43,060 Sonas kiel ciklo. 723 00:38:43,060 --> 00:38:49,670 Do kiu povas doni al mi la unua linio de la buklo kodo ĝuste ĉi tie? 724 00:38:49,670 --> 00:38:56,320 725 00:38:56,320 --> 00:39:01,980 Vi povas ankaŭ elekti kian buklo vi volas, se vi donos al mi 726 00:39:01,980 --> 00:39:03,215 tiu linio de kodo. 727 00:39:03,215 --> 00:39:04,150 Ekzistas tri specoj. 728 00:39:04,150 --> 00:39:06,530 Vi atingos pick. 729 00:39:06,530 --> 00:39:08,080 Mi sugestus unu el tiuj. 730 00:39:08,080 --> 00:39:08,410 Avi. 731 00:39:08,410 --> 00:39:09,230 Kiun vi volas? 732 00:39:09,230 --> 00:39:09,960 >> AVI: POR. 733 00:39:09,960 --> 00:39:11,460 >> JASON Hirschhorn: POR. 734 00:39:11,460 --> 00:39:15,180 >> AVI: int i egalas nulo. 735 00:39:15,180 --> 00:39:17,360 >> JASON Hirschhorn: okej. 736 00:39:17,360 --> 00:39:18,570 >> AVI: Tiu parto mi ne certas pri. 737 00:39:18,570 --> 00:39:29,080 Sed mi estas malpli ol la grandeco de stelo fonto? 738 00:39:29,080 --> 00:39:31,128 Mi ne estas certa pri tio. 739 00:39:31,128 --> 00:39:32,580 >> JASON Hirschhorn: okej. 740 00:39:32,580 --> 00:39:35,870 >> AVI: Ĉar oni volas ke la grandeco de dosiero, ĉu ne? 741 00:39:35,870 --> 00:39:41,090 >> JASON Hirschhorn: Do tio probable ne faros donu al ni la grandeco de la efektiva 742 00:39:41,090 --> 00:39:43,010 dosiero en bajtoj. 743 00:39:43,010 --> 00:39:47,680 Do, kion alian ni povis fari? 744 00:39:47,680 --> 00:39:48,810 Kio estas alia tipo de buklo? 745 00:39:48,810 --> 00:39:50,180 Aux cxu ni batas kun la buklo? 746 00:39:50,180 --> 00:39:55,350 747 00:39:55,350 --> 00:39:57,900 >> Studenta 20: Povus fari DUM buklo? 748 00:39:57,900 --> 00:40:01,350 Kaj tiam, kion vi ŝatus fari estas you'd - 749 00:40:01,350 --> 00:40:03,930 ĉar ni havas char * por la dosiero. 750 00:40:03,930 --> 00:40:07,950 Do, se ni simple observas pliigante ke gxis ni volus trovi la NULL karaktero ĉe 751 00:40:07,950 --> 00:40:08,500 Fine de ĝi? 752 00:40:08,500 --> 00:40:11,130 Aŭ ne, estas ke ne kiom dosierojn funkcias? 753 00:40:11,130 --> 00:40:14,300 >> JASON Hirschhorn: Do ni povas subteni pliigante la signo * 754 00:40:14,300 --> 00:40:16,340 ĝis ni trovos la NULL - 755 00:40:16,340 --> 00:40:18,580 >> Studenta 20: Esence plu iri karaktero de karaktero, ĝis ni batis 756 00:40:18,580 --> 00:40:21,250 la finon de la dosiero. 757 00:40:21,250 --> 00:40:21,600 >> JASON Hirschhorn: Jes. 758 00:40:21,600 --> 00:40:22,560 Do, tio estas kion ni volas fari. 759 00:40:22,560 --> 00:40:24,545 Ni volas teni legado, karaktero per karaktero, ĝis ni atingos 760 00:40:24,545 --> 00:40:25,080 la finon de la dosiero. 761 00:40:25,080 --> 00:40:25,375 >> Studenta 20: Jes. 762 00:40:25,375 --> 00:40:25,860 Trovi - 763 00:40:25,860 --> 00:40:28,540 kio estas la fino aŭ halto signo ĉe la fino de teksta dosiero. 764 00:40:28,540 --> 00:40:28,620 >> JASON Hirschhorn: okej. 765 00:40:28,620 --> 00:40:30,140 Do kiam ni atingos la finon de la dosiero - Kiel do ni scias ke ni jam atingis 766 00:40:30,140 --> 00:40:33,200 la finon de iu dosiero? 767 00:40:33,200 --> 00:40:34,710 Se mi vokas - 768 00:40:34,710 --> 00:40:35,910 do ni retropaŝon. 769 00:40:35,910 --> 00:40:37,550 Kio estas funkcio? 770 00:40:37,550 --> 00:40:39,360 Ni iru al tiu linio ĝuste ĉi tie. 771 00:40:39,360 --> 00:40:40,630 Legu el la fonta dosiero. 772 00:40:40,630 --> 00:40:41,880 Kiu povas doni al mi tiun linion de kodo? 773 00:40:41,880 --> 00:40:45,592 774 00:40:45,592 --> 00:40:47,590 >> Studenta 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 Kio, se mi volas legi, tre specife, unu bajto? 778 00:40:52,240 --> 00:40:55,012 779 00:40:55,012 --> 00:40:56,860 >> Studenta 21: Mi ne scias. 780 00:40:56,860 --> 00:40:57,110 >> JASON Hirschhorn: okej. 781 00:40:57,110 --> 00:40:59,380 Eĉ pli simpla ol fscanf - kio estas - 782 00:40:59,380 --> 00:41:01,890 Mi volas legi de fonto-dosiero? 783 00:41:01,890 --> 00:41:03,720 Legu el fonto dosiero. 784 00:41:03,720 --> 00:41:04,850 Kio estas funkcio - yeah. 785 00:41:04,850 --> 00:41:05,380 >> Studenta 22: Estas fread? 786 00:41:05,380 --> 00:41:06,070 >> JASON Hirschhorn: Fread. 787 00:41:06,070 --> 00:41:07,550 Mi pensas ni estas alkrocxitaj kun ke oni ĝis nun. 788 00:41:07,550 --> 00:41:10,380 789 00:41:10,380 --> 00:41:13,650 Kiajn argumentojn tio fread preni? 790 00:41:13,650 --> 00:41:17,410 >> Studenta 22: Probable la dosiertipon, kaj tiam situo en la dosiero? 791 00:41:17,410 --> 00:41:19,550 >> JASON Hirschhorn: Kion mi povas tajpi tie elkompreni kiel tipo de argumentoj 792 00:41:19,550 --> 00:41:20,950 fread prenas? 793 00:41:20,950 --> 00:41:23,710 >> Multiple studentoj: Viro fread. 794 00:41:23,710 --> 00:41:24,740 >> JASON Hirschhorn: Viro fread kaj fwrite. 795 00:41:24,740 --> 00:41:25,980 Aspektas kiel ili pendas ekstere kune. 796 00:41:25,980 --> 00:41:29,589 Do fread prenas kiom da argumentoj? 797 00:41:29,589 --> 00:41:30,920 >> Studenta 23: Kvar. 798 00:41:30,920 --> 00:41:32,690 >> JASON Hirschhorn: Preno kvar argumentojn. 799 00:41:32,690 --> 00:41:41,100 Ĝi portas montrilon, grandeco, kaj ke afero, kiu estas bizara, kaj iuj dosiero. 800 00:41:41,100 --> 00:41:42,000 OK? 801 00:41:42,000 --> 00:41:43,990 Ni legis pri ĝi ĉi tie. 802 00:41:43,990 --> 00:41:49,370 "La funkcio fread legas n memb elementoj de datumoj, ĉiu grandeco bitokoj 803 00:41:49,370 --> 00:41:53,840 longa, de la torento indikis per rojo, stoki ilin ĉe la situo 804 00:41:53,840 --> 00:41:56,170 donita per montrilo. " 805 00:41:56,170 --> 00:41:57,960 >> Do kvar argumentojn. 806 00:41:57,960 --> 00:42:04,510 Kial mi ne nur kopii ĉi, kaj algluu ĝin ĉi tie. 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 Do kiu povas komenci plenigado tiuj argumentoj por mi? 810 00:42:13,673 --> 00:42:15,840 Avi. 811 00:42:15,840 --> 00:42:17,720 >> AVI: Prenu el la malplenon. 812 00:42:17,720 --> 00:42:20,530 Metu nur src. 813 00:42:20,530 --> 00:42:23,142 Prenu el montrilon kaj la stelo. 814 00:42:23,142 --> 00:42:26,102 Put src. 815 00:42:26,102 --> 00:42:27,050 Tiam - 816 00:42:27,050 --> 00:42:28,500 >> JASON Hirschhorn: Do mi tuj halti vi ekzistas, ĉar tio estas malĝusta. 817 00:42:28,500 --> 00:42:32,590 818 00:42:32,590 --> 00:42:34,710 Vi pravas kun src, sed kie devus src iri? 819 00:42:34,710 --> 00:42:35,960 >> [Intermetante Voĉoj] 820 00:42:35,960 --> 00:42:38,976 821 00:42:38,976 --> 00:42:41,610 >> JASON Hirschhorn: Ĝi devus transiru cxi tie. 822 00:42:41,610 --> 00:42:43,790 Tio estas la src - nia src estas tipo. 823 00:42:43,790 --> 00:42:44,610 Ni rigardu tien. 824 00:42:44,610 --> 00:42:49,610 Ĉi petas tipo DOSIERO *, ni fakte kutime vidas ilin tiel. 825 00:42:49,610 --> 00:42:57,630 Do tiu estas petante argumento de tajpi DOSIERO * nomas rojo kiu estas src. 826 00:42:57,630 --> 00:42:58,480 OK? 827 00:42:58,480 --> 00:43:00,410 >> Kio grandeco de aferoj fari Ni volas legi? 828 00:43:00,410 --> 00:43:03,340 Mi donis al vi ĉi tion en la problemo priskribo. 829 00:43:03,340 --> 00:43:04,370 >> Studenta 24: Unu bajto samtempe. 830 00:43:04,370 --> 00:43:05,340 >> JASON Hirschhorn: Unu bajto. 831 00:43:05,340 --> 00:43:08,205 Kiom grandaj estas bitoko? 832 00:43:08,205 --> 00:43:11,642 Lia grandeco estas en bajtoj, do kio mi povas meti dekstra tie? 833 00:43:11,642 --> 00:43:12,910 >> Studenta 25: Unu. 834 00:43:12,910 --> 00:43:14,730 >> JASON Hirschhorn: Unu. 835 00:43:14,730 --> 00:43:17,020 Ĝuste. 836 00:43:17,020 --> 00:43:19,940 Lia grandeco estas en unueco bajto, tiel 1 estas 1 bajtoj. 837 00:43:19,940 --> 00:43:22,284 Kiom mi volas legi samtempe. 838 00:43:22,284 --> 00:43:23,520 >> Studenta 26: Oni? 839 00:43:23,520 --> 00:43:24,270 >> JASON Hirschhorn: Unu afero. 840 00:43:24,270 --> 00:43:28,540 Mi volas legi unu aĵon de grandeco 1, unu mordo samtempe. 841 00:43:28,540 --> 00:43:32,110 Kaj kie mi metis gxin, iam mi legis ĝin? 842 00:43:32,110 --> 00:43:35,050 843 00:43:35,050 --> 00:43:36,510 >> Studenta 27: Destination? 844 00:43:36,510 --> 00:43:39,270 >> JASON Hirschhorn: Do mi ne povas meti lin rekte en celloko. 845 00:43:39,270 --> 00:43:40,800 >> Studenta 28: Vi estas gonna meto ĝin en tria montrilo? 846 00:43:40,800 --> 00:43:41,780 >> Studenta 27: Al la celloko. 847 00:43:41,780 --> 00:43:42,270 >> JASON Hirschhorn: okej. 848 00:43:42,270 --> 00:43:42,630 Jes. 849 00:43:42,630 --> 00:43:46,820 >> Studenta 29: Oni povas deklari ion agi kiel portempa stokado antaŭe. 850 00:43:46,820 --> 00:43:47,350 >> JASON Hirschhorn: okej. 851 00:43:47,350 --> 00:43:50,080 Donu al mi, ke. 852 00:43:50,080 --> 00:43:53,930 >> Studenta 29: Alia dosieron montrilo, eble? 853 00:43:53,930 --> 00:43:54,220 >> JASON Hirschhorn: okej. 854 00:43:54,220 --> 00:43:55,585 Do tiu estas malsagxulo stelo - 855 00:43:55,585 --> 00:43:57,750 ĝi estas tipo void stelo, do ĝi ne devas esti dosiero montrilo. 856 00:43:57,750 --> 00:44:02,520 Kaj se mi legas unu bajto, kie estus bona loko 857 00:44:02,520 --> 00:44:03,850 stoki unu bajto? 858 00:44:03,850 --> 00:44:04,660 >> Studenta 29: tabelo? 859 00:44:04,660 --> 00:44:05,770 >> JASON Hirschhorn: An tabelo. 860 00:44:05,770 --> 00:44:07,730 OK. 861 00:44:07,730 --> 00:44:14,040 Kaj kio ajn estas ion ke estas nur grandecon unu bajto? 862 00:44:14,040 --> 00:44:16,980 863 00:44:16,980 --> 00:44:18,060 >> Studenta 30: A char *? 864 00:44:18,060 --> 00:44:18,530 >> Studenta 29: Jes. 865 00:44:18,530 --> 00:44:19,880 >> JASON Hirschhorn: A char * ne estas unu bajto. 866 00:44:19,880 --> 00:44:20,440 >> Studenta 29: A char. 867 00:44:20,440 --> 00:44:21,810 >> JASON Hirschhorn: A char estas unu bajto. 868 00:44:21,810 --> 00:44:22,920 Ĝuste? 869 00:44:22,920 --> 00:44:26,740 Do ni nomas tiun bufro estas ĝenerala nomo uzata por tiuj aferoj por gardi 870 00:44:26,740 --> 00:44:27,910 ion provizore. 871 00:44:27,910 --> 00:44:30,880 Do mi krei bufro. 872 00:44:30,880 --> 00:44:31,150 Ĝuste? 873 00:44:31,150 --> 00:44:32,990 Sed ĝi prenas malplenon *. 874 00:44:32,990 --> 00:44:38,660 Do eble vi pravas, ke gxi devus esti remparo de grandeco 0. 875 00:44:38,660 --> 00:44:41,070 Do stokas unu - 876 00:44:41,070 --> 00:44:41,280 dekstra. 877 00:44:41,280 --> 00:44:43,560 >> Pro tiu rajto tie - char bufro estas gravulo, sed 878 00:44:43,560 --> 00:44:45,110 ĉi prenas malplenon * - 879 00:44:45,110 --> 00:44:45,870 puntero. 880 00:44:45,870 --> 00:44:50,640 Do mi povis fari tion, kaj nun bufro estas montrilo. 881 00:44:50,640 --> 00:44:53,214 Kion alian mi povis fari? 882 00:44:53,214 --> 00:44:55,775 >> Studenta 31: Metu stelon apud char. 883 00:44:55,775 --> 00:44:58,380 >> JASON Hirschhorn: mi povis kreis gxin char *. 884 00:44:58,380 --> 00:45:00,216 OK. 885 00:45:00,216 --> 00:45:03,131 Kio estas alia afero, kiun mi povis fari? 886 00:45:03,131 --> 00:45:04,050 Aŭ ni iros kun cxi tiu. 887 00:45:04,050 --> 00:45:05,740 Char * bufron, do kio do mi metis ĉi tien? 888 00:45:05,740 --> 00:45:08,290 889 00:45:08,290 --> 00:45:09,310 >> Studenta 31: Bufro. 890 00:45:09,310 --> 00:45:10,560 >> JASON Hirschhorn: Bufro. 891 00:45:10,560 --> 00:45:12,640 892 00:45:12,640 --> 00:45:14,500 Bufro estas montrilo al char. 893 00:45:14,500 --> 00:45:19,480 Kaj en tiu situacio, ni metante unu bajto de io jam legis. 894 00:45:19,480 --> 00:45:19,980 Jes. 895 00:45:19,980 --> 00:45:20,700 Avi. 896 00:45:20,700 --> 00:45:21,230 >> AVI: Just a quick demando. 897 00:45:21,230 --> 00:45:24,440 Ĉu vi volas malloc buffer? 898 00:45:24,440 --> 00:45:25,930 >> JASON Hirschhorn: Kiu povas respondi tiun demandon? 899 00:45:25,930 --> 00:45:30,210 >> Studenta 32: Nu, ĝi ne vere punkto ion nun, do - 900 00:45:30,210 --> 00:45:32,610 >> JASON Hirschhorn: Sed faru ni volas malloc ĝin? 901 00:45:32,610 --> 00:45:35,600 >> Studenta 32: Se vi volus fari tion, ke vojo, mi supozas, jes, ĉar vi bezonus 902 00:45:35,600 --> 00:45:36,990 iu loko por tio atentigi al. 903 00:45:36,990 --> 00:45:38,350 >> JASON Hirschhorn: Do nin devas malloc ĝin? 904 00:45:38,350 --> 00:45:40,580 >> Studenta 33: Se vi iros al uzi ĝin ekster la buklo. 905 00:45:40,580 --> 00:45:42,524 >> JASON Hirschhorn: Ĉu ni tuj uzi ĝin ekster la buklo? 906 00:45:42,524 --> 00:45:44,392 >> Studenta 34: Jes. 907 00:45:44,392 --> 00:45:44,860 >> Studenta 35: Atendu. 908 00:45:44,860 --> 00:45:46,980 Ĉu ni volas sciigi en la buklo al transe? 909 00:45:46,980 --> 00:45:50,100 >> JASON Hirschhorn: Do mi supozas ke ni havos kelkaj pseŭdo DUM buklo tie ke ni estas 910 00:45:50,100 --> 00:45:51,950 provi elkompreni, ke ni ankoraŭ ne alvenis al ankoraŭ. 911 00:45:51,950 --> 00:45:54,710 912 00:45:54,710 --> 00:45:56,010 Ni ne bezonas malloc ĝin. 913 00:45:56,010 --> 00:45:59,310 Ni funkcianta en ĉefa, ĝi estas nur irante esti uzata ene ĉi maŝo. 914 00:45:59,310 --> 00:46:00,540 Ĝi ne bezonas ekzisti ekster tio. 915 00:46:00,540 --> 00:46:02,340 >> Do ĝi povas esti loka variablo. 916 00:46:02,340 --> 00:46:03,925 Vi havas montrilon por loka variablo. 917 00:46:03,925 --> 00:46:07,984 918 00:46:07,984 --> 00:46:09,590 >> Studenta 36: Sed estas ne indikante ion. 919 00:46:09,590 --> 00:46:11,540 >> JASON Hirschhorn: Ne, estas ne pravalorizita al nenio. 920 00:46:11,540 --> 00:46:12,790 Sed ni ne tuj uzos ĝin ankaŭ. 921 00:46:12,790 --> 00:46:15,300 Ni tuj metis ion en ĝi la unuan fojon ni uzu ĝin. 922 00:46:15,300 --> 00:46:16,580 Tial ŝajnas okej. 923 00:46:16,580 --> 00:46:17,780 Do ni ne bezonas malloc tie. 924 00:46:17,780 --> 00:46:19,360 Kaj mi kredas ke estas OK, kiel estas. 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 Ni havas la fread linio. 928 00:46:27,190 --> 00:46:28,490 Ni faros la sekva linio. 929 00:46:28,490 --> 00:46:32,984 >> Se ni volas skribi al dosiero, kio estas bonan funkcion uzi por fari tion? 930 00:46:32,984 --> 00:46:33,770 >> Studenta 37: Fwrite? 931 00:46:33,770 --> 00:46:35,140 >> Studenta 38: fprintf? 932 00:46:35,140 --> 00:46:36,010 >> JASON Hirschhorn: fprintf estas unu. 933 00:46:36,010 --> 00:46:37,260 Kio estas alia? 934 00:46:37,260 --> 00:46:37,680 >> Studenta 39: Fwrite. 935 00:46:37,680 --> 00:46:38,510 >> JASON Hirschhorn: Fwrite. 936 00:46:38,510 --> 00:46:41,250 Kaj por niaj celoj, fwrite, kion ni vidis tie, estas 937 00:46:41,250 --> 00:46:42,500 probable la pli bona elekto. 938 00:46:42,500 --> 00:46:51,970 939 00:46:51,970 --> 00:46:53,950 Ĝi prenas kvar argumentojn tiel. 940 00:46:53,950 --> 00:46:57,570 Nishant, ĉu vi povas doni mi la argumentoj? 941 00:46:57,570 --> 00:47:00,570 >> NISHANT: La unua onia irado esti simple bufro. 942 00:47:00,570 --> 00:47:02,210 >> JASON Hirschhorn: okej. 943 00:47:02,210 --> 00:47:06,752 >> NISHANT: La dua onia nur iri al esti 1. 944 00:47:06,752 --> 00:47:09,510 Tria oni tuj estos 1. 945 00:47:09,510 --> 00:47:11,470 Kaj la kvara oni tuj estos DST. 946 00:47:11,470 --> 00:47:18,010 947 00:47:18,010 --> 00:47:19,550 >> JASON Hirschhorn: Ĉu iu havas demandojn pri tiu linio? 948 00:47:19,550 --> 00:47:28,370 949 00:47:28,370 --> 00:47:29,130 Tio aspektas bona. 950 00:47:29,130 --> 00:47:29,590 OK. 951 00:47:29,590 --> 00:47:34,250 Do nun ĝi aspektas kiel la sola afero ni estas alia - fakte, ni skribi 952 00:47:34,250 --> 00:47:35,090 ĉi lastan linion. 953 00:47:35,090 --> 00:47:36,300 Fermu la dosierojn. 954 00:47:36,300 --> 00:47:38,880 Kiu povas fini nin skribo tiuj lastaj du linioj? 955 00:47:38,880 --> 00:47:39,120 Jes. 956 00:47:39,120 --> 00:47:39,850 Pardonu, kio estas via nomo? 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: Fclose src kaj poste fclose celloko. 960 00:47:47,560 --> 00:47:52,430 >> JASON Hirschhorn: Fclose, malferma paren, src, proksime paren, punktokomo. 961 00:47:52,430 --> 00:47:53,680 Kaj fclose - 962 00:47:53,680 --> 00:47:57,560 963 00:47:57,560 --> 00:47:58,090 yeah? 964 00:47:58,090 --> 00:48:01,710 >> Lucy: Malferma krampo, DST kaj tiam punktokomo. 965 00:48:01,710 --> 00:48:02,520 >> JASON Hirschhorn: Granda. 966 00:48:02,520 --> 00:48:04,338 Kaj kion mi devus inkluzivi en la fino? 967 00:48:04,338 --> 00:48:05,210 >> Lucy: Reiru 0. 968 00:48:05,210 --> 00:48:05,570 >> JASON Hirschhorn: Reiru 0. 969 00:48:05,570 --> 00:48:06,820 Ĉu mi devas? 970 00:48:06,820 --> 00:48:10,560 971 00:48:10,560 --> 00:48:12,590 Just a question. 972 00:48:12,590 --> 00:48:14,957 Ĉu ni devas inkluzivi revenon 0? 973 00:48:14,957 --> 00:48:16,240 >> Multiple studentoj: N-ro 974 00:48:16,240 --> 00:48:16,430 >> JASON Hirschhorn: N-ro 975 00:48:16,430 --> 00:48:18,090 Ĉefa faras ĝin aŭtomate se vi alvenas al la fino. 976 00:48:18,090 --> 00:48:20,580 Sed mi pensas, ke estas agrable inkluzivi eksplicite. 977 00:48:20,580 --> 00:48:23,860 Precipe kiam ni revenas al aliaj aferoj tra la tuta programo. 978 00:48:23,860 --> 00:48:24,810 OK. 979 00:48:24,810 --> 00:48:26,230 Tio estas kion ni mankas - 980 00:48:26,230 --> 00:48:28,520 DUM kio? 981 00:48:28,520 --> 00:48:31,630 Kiu povas elpensi ian - 982 00:48:31,630 --> 00:48:35,240 havas iom da senco de tio, kion povis iri tien? 983 00:48:35,240 --> 00:48:37,350 Eĉ se ĝi estas nur en kelkaj _pseudocode_ kiel lingvon? 984 00:48:37,350 --> 00:48:41,330 >> Kio ni estas vere - kio cxu ni volas iri ĝis? 985 00:48:41,330 --> 00:48:41,980 Yeah, Lucy. 986 00:48:41,980 --> 00:48:43,240 >> Lucy: La fino de la dosiero. 987 00:48:43,240 --> 00:48:44,990 >> JASON Hirschhorn: La fino de la dosiero. 988 00:48:44,990 --> 00:48:49,280 Do, kion vi celas diri per fino de la dosiero? 989 00:48:49,280 --> 00:48:50,955 >> Lucy: Iam vi atingos la fino de la dosiero, stop. 990 00:48:50,955 --> 00:48:51,240 >> JASON Hirschhorn: okej. 991 00:48:51,240 --> 00:48:53,460 Do iam ni atingos la finon de la dosiero. 992 00:48:53,460 --> 00:48:56,893 Kiel ni scias, kiam ni jam alvenis la finon de la dosiero? 993 00:48:56,893 --> 00:48:59,900 >> Studenta 40: mi opinias buffer estos agordita al NULL. 994 00:48:59,900 --> 00:49:01,885 >> Studenta 41: Bufro estas deklarita interne de la ciklo. 995 00:49:01,885 --> 00:49:03,670 >> JASON Hirschhorn: Do vi opinias bufro estos agordita al NULL. 996 00:49:03,670 --> 00:49:05,850 Kial buffer enkadrigeblajn por Nula? 997 00:49:05,850 --> 00:49:10,420 >> Studenta 40: Ĉar, kiam vi fread, vi provas meti 998 00:49:10,420 --> 00:49:13,528 nenio en bufron. 999 00:49:13,528 --> 00:49:13,980 >> JASON Hirschhorn: okej. 1000 00:49:13,980 --> 00:49:15,550 Do vi pensas fread - 1001 00:49:15,550 --> 00:49:19,000 Kiam ni atingis la finon de la dosiero, kio fread faros? 1002 00:49:19,000 --> 00:49:21,230 Mi kredas ke tio estas la demando ni devas eltrovi. 1003 00:49:21,230 --> 00:49:21,960 What does fread fari? 1004 00:49:21,960 --> 00:49:25,640 Ĉu ĝi metis NULL en bufron, aŭ ghi fari ion alian? 1005 00:49:25,640 --> 00:49:27,510 Kiel oni povas diveni, kion ĝi faras? 1006 00:49:27,510 --> 00:49:28,190 >> Studenta 42: Viro. 1007 00:49:28,190 --> 00:49:28,810 >> JASON Hirschhorn: Viro. 1008 00:49:28,810 --> 00:49:32,280 Do ni rigardu super tie. 1009 00:49:32,280 --> 00:49:34,000 Reiru valoro. 1010 00:49:34,000 --> 00:49:39,620 On sukceso, fread kaj fwrite redoni la nombro da eroj legi aŭ skribi. 1011 00:49:39,620 --> 00:49:43,700 Ĉi tiu nombro egalas la nombron de bajtoj kopiitaj nur kiam grandeco estas 1. 1012 00:49:43,700 --> 00:49:47,780 Se eraro okazas, aŭ la fino de la dosiero estas atingita, la reveno valoro estas 1013 00:49:47,780 --> 00:49:51,490 mallongan eron grafo aŭ 0. 1014 00:49:51,490 --> 00:49:57,860 >> Do por niaj celoj, se fread atingojn la finon de la dosiero, kaj legas de 1015 00:49:57,860 --> 00:50:02,100 la finon de la dosiero, tie estas nenio forlasis legi, kion ĝi tuj revenos? 1016 00:50:02,100 --> 00:50:03,290 >> Studenta 43: Nulo? 1017 00:50:03,290 --> 00:50:04,540 >> JASON Hirschhorn: Kio? 1018 00:50:04,540 --> 00:50:05,300 >> Studenta 43: Nulo? 1019 00:50:05,300 --> 00:50:05,690 >> JASON Hirschhorn: Nulo. 1020 00:50:05,690 --> 00:50:06,940 Ĝi tuj revenos nulo. 1021 00:50:06,940 --> 00:50:09,360 1022 00:50:09,360 --> 00:50:13,010 Do ni scias ke fread, kiam ni atingis la finon de la dosiero, tuj 1023 00:50:13,010 --> 00:50:13,690 reveni nulo. 1024 00:50:13,690 --> 00:50:17,460 Kiel ni povas uzi tiun al nia avantaĝo? 1025 00:50:17,460 --> 00:50:21,733 >> AVI: Oni povas deklari variablon ekstere de la buklo nomas ĉeko. 1026 00:50:21,733 --> 00:50:27,040 Se ĉekon egalas - 1027 00:50:27,040 --> 00:50:28,190 cxar nun - unu. 1028 00:50:28,190 --> 00:50:28,920 >> JASON Hirschhorn: okej. 1029 00:50:28,920 --> 00:50:38,050 >> AVI: Kaj tiam vi povas meti SE aserto dekstre post fread dirante se 1030 00:50:38,050 --> 00:50:42,600 fread egalas nulo - 1031 00:50:42,600 --> 00:50:43,850 Ne. 1032 00:50:43,850 --> 00:50:46,002 1033 00:50:46,002 --> 00:50:47,252 >> JASON Hirschhorn: Kiu povas helpi Avi ekstere? 1034 00:50:47,252 --> 00:50:49,690 1035 00:50:49,690 --> 00:50:52,410 >> AVI: Kio estas la valoro revenis por fread? 1036 00:50:52,410 --> 00:50:54,060 >> JASON Hirschhorn: Ni nur iris trans tio. 1037 00:50:54,060 --> 00:50:55,450 >> AVI: Kiel vi reprezentus ĝin? 1038 00:50:55,450 --> 00:50:57,190 >> JASON Hirschhorn: Do li revenas - ni rigardu ĉi tien - ĝi redonas 1039 00:50:57,190 --> 00:50:59,340 size_t, kiu estas esence entjero. 1040 00:50:59,340 --> 00:51:02,240 1041 00:51:02,240 --> 00:51:03,410 Do ĝi redonas entjeron. 1042 00:51:03,410 --> 00:51:05,160 Kaj en nia kazo, gxi revenu 1 aŭ 0 - 1043 00:51:05,160 --> 00:51:08,760 1 se ĝi legis unu afero - unu bajto, kaj 0 se ni jam atingis la finon. 1044 00:51:08,760 --> 00:51:13,560 1045 00:51:13,560 --> 00:51:16,450 Do se fread - 1046 00:51:16,450 --> 00:51:16,855 yeah? 1047 00:51:16,855 --> 00:51:20,330 >> Studenta 45: Ĉu vi ne povas ĝuste meti la plenan fread (buffer, 1, 1, src) en la 1048 00:51:20,330 --> 00:51:21,660 dum buklo? 1049 00:51:21,660 --> 00:51:26,510 >> JASON Hirschhorn: Do vi proponas fari tion en tie? 1050 00:51:26,510 --> 00:51:27,600 >> [Intermetante Voĉoj] 1051 00:51:27,600 --> 00:51:29,520 >> JASON Hirschhorn: Atendu. 1052 00:51:29,520 --> 00:51:30,885 Do ni liveri de tiu. 1053 00:51:30,885 --> 00:51:33,300 Do vi proponas meti fread en tie? 1054 00:51:33,300 --> 00:51:35,457 Kion ni ankaŭ movi se vi volas fari tion? 1055 00:51:35,457 --> 00:51:36,740 >> Studenta 45: La bufro ekstere. 1056 00:51:36,740 --> 00:51:38,110 >> JASON Hirschhorn: Ni devus ankaŭ movi ĉi tie ĉi. 1057 00:51:38,110 --> 00:51:41,700 >> Studenta 45: Sed faras tion senĉese movi gxin antauxen? 1058 00:51:41,700 --> 00:51:42,950 >> [Intermetante Voĉoj] 1059 00:51:42,950 --> 00:51:46,540 1060 00:51:46,540 --> 00:51:47,470 >> JASON Hirschhorn: okej. 1061 00:51:47,470 --> 00:51:50,570 Do ĉi tiu estas kion Okshar proponitaj. 1062 00:51:50,570 --> 00:51:51,930 Ni kreas nian bufro. 1063 00:51:51,930 --> 00:51:57,020 Ni DUM fread, tiam ni fwrite. 1064 00:51:57,020 --> 00:51:59,760 Pensoj pri tio? 1065 00:51:59,760 --> 00:52:04,050 >> Studenta 46: Mia sola demando estas, ĉu ĝi reale ekzekuti la komandon fread? 1066 00:52:04,050 --> 00:52:06,175 >> JASON Hirschhorn: Granda demando. 1067 00:52:06,175 --> 00:52:11,050 Kiam vi metante funkcio alvoko interne de kondiĉo, faras ke 1068 00:52:11,050 --> 00:52:12,300 funkcio alvoko ekzekuti? 1069 00:52:12,300 --> 00:52:15,760 1070 00:52:15,760 --> 00:52:17,770 Ni jam vidis ekzemplojn de tio antaŭe. 1071 00:52:17,770 --> 00:52:24,900 1072 00:52:24,900 --> 00:52:25,660 Ĝuste? 1073 00:52:25,660 --> 00:52:26,125 >> Studenta 46: okej. 1074 00:52:26,125 --> 00:52:26,590 Jes. 1075 00:52:26,590 --> 00:52:30,140 Prave ekzekuti. 1076 00:52:30,140 --> 00:52:31,790 >> JASON Hirschhorn: Ni vidis tion kiel tio antaŭe, kie ni havas 1077 00:52:31,790 --> 00:52:33,550 funkcio alvokon ene de kondiĉo. 1078 00:52:33,550 --> 00:52:35,540 Ĉu tiu funkcio alvoko ekzekuti? 1079 00:52:35,540 --> 00:52:36,350 Jes. 1080 00:52:36,350 --> 00:52:37,410 Do la respondo estas jes. 1081 00:52:37,410 --> 00:52:41,010 Tiu funkcio alvoko Mi faros. 1082 00:52:41,010 --> 00:52:42,418 Sed denove, estas tio, kion ni volas? 1083 00:52:42,418 --> 00:52:49,250 1084 00:52:49,250 --> 00:52:52,204 >> Kio estas maniero ni povus diveni ĉu ĝi estas kion ni volas? 1085 00:52:52,204 --> 00:52:53,470 >> Multiple studentoj: Rulu ĝin? 1086 00:52:53,470 --> 00:52:54,460 >> JASON Hirschhorn: Ni povus ruli ĝin. 1087 00:52:54,460 --> 00:52:57,500 Sed antaŭ ol ni faras tion, ni povis same rezoni tra ĉi. 1088 00:52:57,500 --> 00:52:57,920 Se - 1089 00:52:57,920 --> 00:53:01,920 diras, ke ni havos unu bajton en nia fajliloj, ni ricevos tie, 1090 00:53:01,920 --> 00:53:02,660 ni atingos ĉi tiun kodon. 1091 00:53:02,660 --> 00:53:03,620 Ĉi kuros. 1092 00:53:03,620 --> 00:53:07,780 fread revenos unu bajto kaj stoki ĝin en la bufro. 1093 00:53:07,780 --> 00:53:11,290 Kaj tion taksos al 1, dekstra, poste li revenas 1. 1094 00:53:11,290 --> 00:53:12,640 >> Do DUM 1. 1095 00:53:12,640 --> 00:53:15,325 Ĉu tio signifas la kodon ene la DUM buklo faros? 1096 00:53:15,325 --> 00:53:15,453 >> Studenta 47: Jes. 1097 00:53:15,453 --> 00:53:16,040 Ĝi estas vera. 1098 00:53:16,040 --> 00:53:16,290 >> JASON Hirschhorn: Jes. 1099 00:53:16,290 --> 00:53:17,490 1 estas vera. 1100 00:53:17,490 --> 00:53:18,240 Ĝi estas ne 0. 1101 00:53:18,240 --> 00:53:20,360 Do la kodon ene tie faros. 1102 00:53:20,360 --> 00:53:22,300 Do ni skribos tion. 1103 00:53:22,300 --> 00:53:25,340 Ni movi reen al ĉi tiu linio denove. 1104 00:53:25,340 --> 00:53:26,850 Nun ni havas - 1105 00:53:26,850 --> 00:53:28,550 ni estas ĉe la fino de nia dosiero. 1106 00:53:28,550 --> 00:53:30,980 Ni legis el la fino de nia dosiero, ĉar ni nur havis unu bajton en ĝi. 1107 00:53:30,980 --> 00:53:34,270 >> Fread revenas 0, butikoj io en bufron. 1108 00:53:34,270 --> 00:53:35,890 Sincere, mi ne scias kion stokas en bufron. 1109 00:53:35,890 --> 00:53:38,380 Ni povus eble rigardi supren por vidi, kion ĝi faras. 1110 00:53:38,380 --> 00:53:40,130 Kiun mi honeste ne scias. 1111 00:53:40,130 --> 00:53:43,090 Ni ne scias, kiu zorgas kio stokas en bufro? 1112 00:53:43,090 --> 00:53:44,010 Sed ĝi ne revenos 0. 1113 00:53:44,010 --> 00:53:45,440 Kaj estos dum 0 ekzekuti? 1114 00:53:45,440 --> 00:53:49,950 1115 00:53:49,950 --> 00:53:51,180 >> DUM 0 ne agos. 1116 00:53:51,180 --> 00:53:54,030 Tial ni movos cxi tie. 1117 00:53:54,030 --> 00:53:58,870 Do ni ricevas pruvon de la manoj, se tiu estas la kodo oni devus kuri, aŭ se ni 1118 00:53:58,870 --> 00:54:00,140 devus fari ŝanĝojn unue. 1119 00:54:00,140 --> 00:54:02,180 Do, se vi opinias - vi devas voĉdoni. 1120 00:54:02,180 --> 00:54:06,885 Se vi opinias ke ni devus kuri kun tiu kodo kiel estas, bonvolu levi vian manon. 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 Tie estas unu - 1124 00:54:14,315 --> 00:54:17,260 cxu vi havas demandon, zorgo? 1125 00:54:17,260 --> 00:54:18,080 Jes. 1126 00:54:18,080 --> 00:54:21,240 >> Studenta 48: Post kiam ni movos buffer eksteren de la maŝo, do ni 1127 00:54:21,240 --> 00:54:22,670 devas malloc ĝin? 1128 00:54:22,670 --> 00:54:23,310 >> JASON Hirschhorn: Granda demando. 1129 00:54:23,310 --> 00:54:26,670 Poste ni movi buffer ekster la buklo, ĉu ni devos malloc ĝin? 1130 00:54:26,670 --> 00:54:28,400 Tiu estas medio demando. 1131 00:54:28,400 --> 00:54:32,130 Se ni pravalorizi buffer ekstere de tiu ciklo, ĉu ĝi ekzistas 1132 00:54:32,130 --> 00:54:33,534 interne de la buklo? 1133 00:54:33,534 --> 00:54:35,230 >> Multiple lernantoj: Jes. 1134 00:54:35,230 --> 00:54:35,580 >> JASON Hirschhorn: Jes. 1135 00:54:35,580 --> 00:54:40,100 Lia medio kovras interne de la ciklo, kaj, vere, io malsupre gxin interne 1136 00:54:40,100 --> 00:54:42,460 de tiu kodo, inkluzive de la aferojn interne tie. 1137 00:54:42,460 --> 00:54:43,930 Do ni ne bezonas malloc ĝin. 1138 00:54:43,930 --> 00:54:47,766 Estas loka variablo, kaj lia medio ankoraŭ inkluzivas la banton. 1139 00:54:47,766 --> 00:54:49,540 >> Studenta 49: Cxu ni bezonas por liberigi lin? 1140 00:54:49,540 --> 00:54:51,770 >> JASON Hirschhorn: Do nin bezonas liberan buffer? 1141 00:54:51,770 --> 00:54:53,860 >> Studenta 49: Jes, se ni ne malloc. 1142 00:54:53,860 --> 00:54:55,750 >> JASON Hirschhorn: Do nin bezonas liberan buffer? 1143 00:54:55,750 --> 00:54:57,160 Ni ne faras. 1144 00:54:57,160 --> 00:55:01,280 Denove, tio estas loka variablo, tial ni ne bezonas por liberigi lin. 1145 00:55:01,280 --> 00:55:02,170 OK. 1146 00:55:02,170 --> 00:55:03,480 Ni vidu kio okazos. 1147 00:55:03,480 --> 00:55:17,290 1148 00:55:17,290 --> 00:55:18,220 Do ĝi estas uninitialized. 1149 00:55:18,220 --> 00:55:20,830 Tio estis kion iu kiu Marcus proponita pli frue. 1150 00:55:20,830 --> 00:55:25,340 Do ni havas tiun eraron, variablo buffer Estas uninitialized kiam uzata ĉi tie. 1151 00:55:25,340 --> 00:55:26,590 >> Kiel oni povas ripari tion? 1152 00:55:26,590 --> 00:55:29,460 1153 00:55:29,460 --> 00:55:30,960 >> Studenta 50: malloc ĝin? 1154 00:55:30,960 --> 00:55:31,770 >> Studenta 51: Egalas NULL? 1155 00:55:31,770 --> 00:55:33,000 >> Studenta 52: Diru buffer egalas NULL. 1156 00:55:33,000 --> 00:55:34,250 >> JASON Hirschhorn: okej. 1157 00:55:34,250 --> 00:55:40,040 1158 00:55:40,040 --> 00:55:40,770 Aspektas bone. 1159 00:55:40,770 --> 00:55:42,410 Ni havas ĝin nun. 1160 00:55:42,410 --> 00:55:45,630 Ni kreos ion provi kopii. 1161 00:55:45,630 --> 00:56:08,990 1162 00:56:08,990 --> 00:56:10,490 Do ni havas nian teksta dosiero. 1163 00:56:10,490 --> 00:56:11,740 Kiel ni povas kuri tiun programon? 1164 00:56:11,740 --> 00:56:14,140 1165 00:56:14,140 --> 00:56:15,472 Jes. 1166 00:56:15,472 --> 00:56:22,230 >> Studenta 53: Vi povas fari dot oblikvo cp, test.txt. 1167 00:56:22,230 --> 00:56:25,140 Kaj tiam vi povas enoficigi alian dosieron kio ĝi konservos en. 1168 00:56:25,140 --> 00:56:25,510 >> JASON Hirschhorn: okej. 1169 00:56:25,510 --> 00:56:27,380 Ni nomas ĝin out.txt. 1170 00:56:27,380 --> 00:56:28,630 Cool? 1171 00:56:28,630 --> 00:56:31,700 1172 00:56:31,700 --> 00:56:34,320 Seg kulpo. 1173 00:56:34,320 --> 00:56:35,570 Pensoj pri la seg kulpas? 1174 00:56:35,570 --> 00:56:40,900 1175 00:56:40,900 --> 00:56:41,390 Ĉi tiu estas granda. 1176 00:56:41,390 --> 00:56:45,040 Kiel ni povas trovi kie la seg kulpo estas? 1177 00:56:45,040 --> 00:56:45,680 Kio? 1178 00:56:45,680 --> 00:56:45,990 >> Studenta 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 Ni kuras gdb verkante gdb dot oblikvo, la nomo de nia programo. 1182 00:56:55,300 --> 00:56:57,020 Neniu komandlinia argumentoj tie. 1183 00:56:57,020 --> 00:56:59,570 Ni tuj aperigos Haltpunkto ĉe ĉefa. 1184 00:56:59,570 --> 00:57:02,190 Se mi volas komenci gdb, kion mi faru? 1185 00:57:02,190 --> 00:57:02,730 >> Studenta 55: R. 1186 00:57:02,730 --> 00:57:08,910 >> JASON Hirschhorn: R. Kaj poste kio? 1187 00:57:08,910 --> 00:57:09,400 >> Studenta 55: La argumentoj? 1188 00:57:09,400 --> 00:57:10,650 >> JASON Hirschhorn: Tiam la komandlinion argumentoj. 1189 00:57:10,650 --> 00:57:15,890 1190 00:57:15,890 --> 00:57:17,120 Ni promenu tra. 1191 00:57:17,120 --> 00:57:19,090 N estas simple preni min linio por linio. 1192 00:57:19,090 --> 00:57:21,450 Mi tuj iros ĝis Mi prenos mian seg kulpo. 1193 00:57:21,450 --> 00:57:22,700 Estas mia seg kulpo. 1194 00:57:22,700 --> 00:57:24,960 1195 00:57:24,960 --> 00:57:27,875 Ĝi aspektas kiel fread kaŭzitaj mia seg kulpo. 1196 00:57:27,875 --> 00:57:30,570 1197 00:57:30,570 --> 00:57:32,770 Mi scias fread kaŭzis mia seg kulpo, ĉar tio estis la 1198 00:57:32,770 --> 00:57:34,950 linio ni nur ekzekutita. 1199 00:57:34,950 --> 00:57:36,530 >> Kaj la sola afero, kiun estis okazas en tiu linio - 1200 00:57:36,530 --> 00:57:37,520 du aferoj okazis. 1201 00:57:37,520 --> 00:57:40,610 Fread tuj, kaj poste ni estis fari iun DUM kontrolado. 1202 00:57:40,610 --> 00:57:44,820 Mi pretas veti, ke la DUM kontrolanta ne kaŭzante mia seg kulpo. 1203 00:57:44,820 --> 00:57:46,950 Plej verŝajne, fread estis kaŭzante mia seg kulpo. 1204 00:57:46,950 --> 00:57:49,260 Mi ankaŭ vidas ion ĉi tie, memcopy. 1205 00:57:49,260 --> 00:57:50,500 >> Memoro kopion. 1206 00:57:50,500 --> 00:57:53,820 Sonas kiel movanta memoro de unu loko al la alia. 1207 00:57:53,820 --> 00:57:56,890 Sonas kiel iu kiu devus okazi en fread, eble kelkaj memoroj 1208 00:57:56,890 --> 00:57:58,910 movante tien de cxi tie. 1209 00:57:58,910 --> 00:58:01,740 1210 00:58:01,740 --> 00:58:03,860 Ni iru tra tiu denove. 1211 00:58:03,860 --> 00:58:06,900 Kjel mi komencas ĝin sur kaj ruli ĝin denove? 1212 00:58:06,900 --> 00:58:08,092 Jes. 1213 00:58:08,092 --> 00:58:15,140 >> Studenta 56: Ĉu vi bezonas meti kaj-simbolo antaux buffer? 1214 00:58:15,140 --> 00:58:17,800 >> JASON Hirschhorn: Do ampersand antaŭe buffer donus al mi la adreson de 1215 00:58:17,800 --> 00:58:22,330 bufro, kiu estas char *. 1216 00:58:22,330 --> 00:58:25,250 Ni kuras tra ĉi tiu pli da tempo. 1217 00:58:25,250 --> 00:58:28,248 Kjel mi kuras tra ĝi unu pli da tempo? 1218 00:58:28,248 --> 00:58:29,210 >> Studenta 57: Can vi ĵus tajpi kuri denove? 1219 00:58:29,210 --> 00:58:32,050 >> JASON Hirschhorn: Simple tajpu run denove. 1220 00:58:32,050 --> 00:58:33,415 Do ni ne tuj ekzekuti tiun linion. 1221 00:58:33,415 --> 00:58:36,250 1222 00:58:36,250 --> 00:58:39,240 Do bufro estas NULL montrilo. 1223 00:58:39,240 --> 00:58:40,490 Korekti? 1224 00:58:40,490 --> 00:58:45,870 1225 00:58:45,870 --> 00:58:47,060 Oni montras al - ni vidos. 1226 00:58:47,060 --> 00:58:48,500 Se ni havos niajn - 1227 00:58:48,500 --> 00:58:50,430 cxerpi rapidan bildon de tio. 1228 00:58:50,430 --> 00:58:53,500 Ĉu ĉiuj vidos se Mi skribos ĉi tie? 1229 00:58:53,500 --> 00:59:02,890 >> Do, en la stako, ni havos lokan ŝanĝiĝema kaj ĝi nomiĝas bufro, kaj 1230 00:59:02,890 --> 00:59:08,230 ĝi estas montrilo al char. 1231 00:59:08,230 --> 00:59:10,325 Kio adreso estas jena char at? 1232 00:59:10,325 --> 00:59:12,550 >> Studenta 58: 0x0. 1233 00:59:12,550 --> 00:59:13,400 >> JASON Hirschhorn: Ĝuste. 1234 00:59:13,400 --> 00:59:14,200 Tion ĉi estas. 1235 00:59:14,200 --> 00:59:17,600 En ĉi tie, interne buffer, stokas 0x0. 1236 00:59:17,600 --> 00:59:20,480 Tio estas kion ni havas - la instalinstrukciojn ni havas nun. 1237 00:59:20,480 --> 00:59:27,540 Do ĉi tiu linio, fread, metas ion el fonto kie? 1238 00:59:27,540 --> 00:59:30,560 En tiun skatolon aŭ tiu skatolo? 1239 00:59:30,560 --> 00:59:31,060 Kiu skatolo? 1240 00:59:31,060 --> 00:59:33,290 Maldekstra skatolo aŭ dekstra skatolo? 1241 00:59:33,290 --> 00:59:34,750 Tiu dekstra skatolo. 1242 00:59:34,750 --> 00:59:38,440 >> Ĝi sekvas la montrilon, kaj metas ĝin en ĉi tie. 1243 00:59:38,440 --> 00:59:42,620 Kiam ni provas kaj takto memoro ĉe situo 0, kion do ni havos? 1244 00:59:42,620 --> 00:59:45,050 A segmentación kulpo. 1245 00:59:45,050 --> 00:59:46,550 Tio estas la eraro ni havas nun. 1246 00:59:46,550 --> 00:59:46,970 Jes. 1247 00:59:46,970 --> 00:59:48,410 >> Studenta 59: Ĉu vi ne havas meti stelon buffer? 1248 00:59:48,410 --> 00:59:49,180 Aŭ ne? 1249 00:59:49,180 --> 00:59:50,050 Por fread? 1250 00:59:50,050 --> 00:59:51,450 >> JASON Hirschhorn: Do fread prenas montrilo. 1251 00:59:51,450 --> 00:59:54,920 1252 00:59:54,920 --> 00:59:55,900 Do pasas en bufron. 1253 00:59:55,900 --> 00:59:58,980 Kaj tiam ĝi malebligos _de_-referenco ĝi ie interne fread. 1254 00:59:58,980 --> 01:00:00,700 Sed denove, ni ekvidis, ĝi prenas montrilo. 1255 01:00:00,700 --> 01:00:02,560 Ni ne bezonas por pasi ĝin stelo bufro. 1256 01:00:02,560 --> 01:00:05,350 Tio estus pasante ĝi ajn estas ĉi tie. 1257 01:00:05,350 --> 01:00:07,980 Kaj tio estus verŝajne al ni eraro ĉar ni de-referenco ĝin. 1258 01:00:07,980 --> 01:00:08,150 >> Ĝuste? 1259 01:00:08,150 --> 01:00:10,690 Kiam ni de-referenco ĉi montrilon, kiam Ni provu aliri al ĉi loko, 1260 01:00:10,690 --> 01:00:13,140 ni ricevas eraro - nia segmentación kulpo. 1261 01:00:13,140 --> 01:00:15,800 Do - 1262 01:00:15,800 --> 01:00:16,690 oops. 1263 01:00:16,690 --> 01:00:19,090 Ni tuj forlasis el gdb. 1264 01:00:19,090 --> 01:00:20,160 Nia linio - 1265 01:00:20,160 --> 01:00:22,990 nia problemo - estas gxusta ĉi tie sur tiu linio. 1266 01:00:22,990 --> 01:00:26,410 Kaj ĝi estas problemo, ĉar de tiu linio. 1267 01:00:26,410 --> 01:00:31,780 >> Kiel ni povas krei skatolo kiu estas alirebla en fread. 1268 01:00:31,780 --> 01:00:31,980 Ĝuste? 1269 01:00:31,980 --> 01:00:35,190 Ni bezonas krei skatolo jen unu bajto grandajn, la amplekso de tipo char. 1270 01:00:35,190 --> 01:00:38,590 Sed ni bezonas tiun skatolon por esti atingebla kiam tiu funkcio ekzekutas. 1271 01:00:38,590 --> 01:00:39,390 Do kie - 1272 01:00:39,390 --> 01:00:39,640 yeah. 1273 01:00:39,640 --> 01:00:40,440 Ajna ideoj? 1274 01:00:40,440 --> 01:00:43,615 >> Studenta 60: Just starigis gxin kiel ajna hazarda karaktero. 1275 01:00:43,615 --> 01:00:49,150 1276 01:00:49,150 --> 01:00:51,640 Nur faru char buffer egaluloj la karaktero. 1277 01:00:51,640 --> 01:00:53,795 Kaj tiam, kiam vi buffer tie - 1278 01:00:53,795 --> 01:00:54,110 >> JASON Hirschhorn: Atendu. 1279 01:00:54,110 --> 01:00:55,110 Char buffer? 1280 01:00:55,110 --> 01:00:55,880 Do neniu stelo? 1281 01:00:55,880 --> 01:00:56,390 >> Studenta 60: Jes. 1282 01:00:56,390 --> 01:00:58,560 Prenu el la stelo. 1283 01:00:58,560 --> 01:01:00,690 Egalas hazarda karaktero. 1284 01:01:00,690 --> 01:01:01,460 >> JASON Hirschhorn: okej. 1285 01:01:01,460 --> 01:01:02,420 Do donu al mi unu. 1286 01:01:02,420 --> 01:01:03,170 >> Studenta 60: Kiel aux io. 1287 01:01:03,170 --> 01:01:06,160 Kaj poste, kiam vi havas bufron tie, vi uzas al - 1288 01:01:06,160 --> 01:01:06,420 >> Studenta 61: Stelo? 1289 01:01:06,420 --> 01:01:07,650 Oh ne, la kaj-signo. 1290 01:01:07,650 --> 01:01:09,000 >> Studenta 60: Uzu la ampersand. 1291 01:01:09,000 --> 01:01:09,470 >> JASON Hirschhorn: okej. 1292 01:01:09,470 --> 01:01:11,320 Kaj kio pri en fwrite? 1293 01:01:11,320 --> 01:01:14,150 >> Studenta 60: Uzu la ampersand denove. 1294 01:01:14,150 --> 01:01:14,320 >> JASON Hirschhorn: Bone. 1295 01:01:14,320 --> 01:01:20,970 Do, via ideo estas, ni kreos char kaj meti ion en ĝi, kaj poste 1296 01:01:20,970 --> 01:01:22,612 skribi al tiu tipo char. 1297 01:01:22,612 --> 01:01:23,760 >> Studenta 60: Jes. 1298 01:01:23,760 --> 01:01:25,916 >> JASON Hirschhorn: Kio cxu homoj pensas? 1299 01:01:25,916 --> 01:01:27,770 >> Studenta 62: Oni labirinta. 1300 01:01:27,770 --> 01:01:28,460 >> JASON Hirschhorn: okej. 1301 01:01:28,460 --> 01:01:29,760 Ni cxerpi gxin. 1302 01:01:29,760 --> 01:01:35,720 Do ĉi tiu fojo, mi iros, por cxerpi tio en ruĝa sur la stako tie, kaj tiam ni 1303 01:01:35,720 --> 01:01:36,410 havos - 1304 01:01:36,410 --> 01:01:36,822 ooh! 1305 01:01:36,822 --> 01:01:38,060 Pardonon. 1306 01:01:38,060 --> 01:01:45,930 Do tiu tempo ni havas ion nomita buffer, kaj ĝi estas sur la stako. 1307 01:01:45,930 --> 01:01:48,430 Korekti? 1308 01:01:48,430 --> 01:01:51,520 Kaj ni ŝparas en ĝi, komence. 1309 01:01:51,520 --> 01:01:53,830 >> Tiam ni havas nian alvokon al fread. 1310 01:01:53,830 --> 01:02:01,300 Kio fread tio estas prenas bajto de nian dosieron kaj metas gxin ie. 1311 01:02:01,300 --> 01:02:04,570 Ĝi metas ĝin en kion ajn la afero'S indikante. 1312 01:02:04,570 --> 01:02:09,130 Nu, antaŭ ol ni havis tiun adreson - 1313 01:02:09,130 --> 01:02:10,250 0x0. 1314 01:02:10,250 --> 01:02:13,349 Nun kio adreso ni havas? 1315 01:02:13,349 --> 01:02:14,650 >> Studenta 63: Kio ajn adreso buffer is. 1316 01:02:14,650 --> 01:02:15,970 >> JASON Hirschhorn: Kion ajn adreso buffer is. 1317 01:02:15,970 --> 01:02:22,370 Ĝi estas verŝajne tuj estos io kiel tio. 1318 01:02:22,370 --> 01:02:26,950 Probable tuj komencu per b kaj an f, kaj tiam ili havas ses aliaj 1319 01:02:26,950 --> 01:02:27,970 deksesumaj ciferoj. 1320 01:02:27,970 --> 01:02:28,480 Ne gravas. 1321 01:02:28,480 --> 01:02:29,470 Kelkaj adreso. 1322 01:02:29,470 --> 01:02:31,410 Kaj ni pasante tiu adreso in 1323 01:02:31,410 --> 01:02:34,790 >> Kaj ni tuj metis nian unu bajto afero en tiu adreso. 1324 01:02:34,790 --> 01:02:38,470 Do ni tuj metis nian unu bajto afero ene tie. 1325 01:02:38,470 --> 01:02:40,800 Kaj tiam ni tuj skribos el kio estas iam interne tie. 1326 01:02:40,800 --> 01:02:43,425 1327 01:02:43,425 --> 01:02:45,380 Ĉu iu havas demandojn sur tio? 1328 01:02:45,380 --> 01:02:50,990 1329 01:02:50,990 --> 01:02:54,690 Kiu pensas tiun kodon laboros? 1330 01:02:54,690 --> 01:02:56,020 >> Levu la manojn, se vi opinias tiun kodon laboros. 1331 01:02:56,020 --> 01:02:57,270 Vi devas preni starpunkton. 1332 01:02:57,270 --> 01:03:00,670 1333 01:03:00,670 --> 01:03:02,500 Kaj kiu pensas tiu kodo ne funkcios? 1334 01:03:02,500 --> 01:03:04,610 Levi vian manon. 1335 01:03:04,610 --> 01:03:06,750 Cxiu alia devus esti levante sian manon. 1336 01:03:06,750 --> 01:03:07,670 OK. 1337 01:03:07,670 --> 01:03:09,390 Michael, kie vi staras? 1338 01:03:09,390 --> 01:03:10,680 >> MICHAEL: mi ne povas decidi. 1339 01:03:10,680 --> 01:03:12,070 Speco de en la mezo. 1340 01:03:12,070 --> 01:03:12,736 >> JASON Hirschhorn: Vi estas en la mezo. 1341 01:03:12,736 --> 01:03:13,092 Pick tiu. 1342 01:03:13,092 --> 01:03:14,400 >> MICHAEL: Mi havos fidon kaj diri ĝi funkcios. 1343 01:03:14,400 --> 01:03:14,660 >> JASON Hirschhorn: okej. 1344 01:03:14,660 --> 01:03:16,047 Vi havos fidon kaj diri ĝi funkcias? 1345 01:03:16,047 --> 01:03:26,490 1346 01:03:26,490 --> 01:03:27,020 Kio okazis? 1347 01:03:27,020 --> 01:03:28,270 >> [Intermetante Voĉoj] 1348 01:03:28,270 --> 01:03:35,170 1349 01:03:35,170 --> 01:03:35,950 >> JASON Hirschhorn: Neniu seg kulpo. 1350 01:03:35,950 --> 01:03:40,320 Kiel ni povas kontroli por vidi se du aferoj estas egalaj? 1351 01:03:40,320 --> 01:03:42,060 Du dosieroj estas egalaj. 1352 01:03:42,060 --> 01:03:43,300 >> Studenta 64: Diff. 1353 01:03:43,300 --> 01:03:45,490 >> JASON Hirschhorn: Diff. 1354 01:03:45,490 --> 01:03:51,630 Klarigo ĉekojn por la diferencoj inter du dosieroj, kaj se ĝi redonas 1355 01:03:51,630 --> 01:03:52,890 nenion, ili estas identaj. 1356 01:03:52,890 --> 01:03:59,030 Kaj se ni malfermas, ni atingos nian dosieron. 1357 01:03:59,030 --> 01:04:00,490 Tiel estis la ĝusta solvo. 1358 01:04:00,490 --> 01:04:01,780 Ni retrorigardas al unu pli longa tempo. 1359 01:04:01,780 --> 01:04:04,080 Ni vere agis eĉ ne bezonas pravalorizi ĝin. 1360 01:04:04,080 --> 01:04:05,520 >> Estus probable aspektas iom purigisto, se vi ne metis 1361 01:04:05,520 --> 01:04:07,680 io hazarda en tie. 1362 01:04:07,680 --> 01:04:13,070 La punkto estas, vi bezonis krei iu spaco por stoki ion el 1363 01:04:13,070 --> 01:04:15,530 fread kaj prenu ion el fwrite. 1364 01:04:15,530 --> 01:04:18,400 Kaj tiu afero devis esti ĉu loka variablon en la stako - vi 1365 01:04:18,400 --> 01:04:19,890 povis jam malloc'd iun spacon. 1366 01:04:19,890 --> 01:04:23,030 >> Do ni efektive povus havi skribita malloc tie, kaj 1367 01:04:23,030 --> 01:04:25,420 kiu estus laborinta. 1368 01:04:25,420 --> 01:04:28,660 Kaj tiam ni estus estintaj stokante niaj aferoj ie sur la monteto. 1369 01:04:28,660 --> 01:04:31,940 Sed tio estas vere, probable, la plej eleganta solvo. 1370 01:04:31,940 --> 01:04:34,490 Nur krei iun spacon sur la stako cxar tion al iri. 1371 01:04:34,490 --> 01:04:37,690 1372 01:04:37,690 --> 01:04:38,990 >> Mi havas du aliajn komentojn. 1373 01:04:38,990 --> 01:04:44,650 Se vi volus preni deĵoro en tio, kaj tiam get notis pri tio, mia komentoj 1374 01:04:44,650 --> 01:04:47,400 estus jene. 1375 01:04:47,400 --> 01:04:54,300 Tiuj 1 estas chi tie, por mi, rigardi kiel magio nombroj. 1376 01:04:54,300 --> 01:04:56,860 Ĉi 1, en terminoj de fread, sencas. 1377 01:04:56,860 --> 01:04:59,580 Tio estas la nombro de la aferoj legi aŭ skribi. 1378 01:04:59,580 --> 01:05:03,740 >> Sed ĉi tiu ĝuste ĉi tie devus Probable estas io alia. 1379 01:05:03,740 --> 01:05:05,180 Do kio estas unu solvo? 1380 01:05:05,180 --> 01:05:06,545 >> Studenta 65: Grandeco de bitoko. 1381 01:05:06,545 --> 01:05:10,100 1382 01:05:10,100 --> 01:05:11,080 >> JASON Hirschhorn: Kiel tio? 1383 01:05:11,080 --> 01:05:13,130 >> Studenta 65: Grandeco de tipo char. 1384 01:05:13,130 --> 01:05:13,820 >> JASON Hirschhorn: Grandeco de tipo char. 1385 01:05:13,820 --> 01:05:15,290 Yeah, bajto estas ne tipo. 1386 01:05:15,290 --> 01:05:16,320 Do grandeco char verkoj. 1387 01:05:16,320 --> 01:05:30,270 Ni povus havi, ĉe la supro de nia kodo, # difinis tion. 1388 01:05:30,270 --> 01:05:33,410 Nomis ion bajto kaj ĝi estas vere char. 1389 01:05:33,410 --> 01:05:37,675 Efektive, eĉ pli bone alproksimiĝo povus esti tiu - 1390 01:05:37,675 --> 01:05:39,391 uint. 1391 01:05:39,391 --> 01:05:40,780 Iu scias kio tio estas? 1392 01:05:40,780 --> 01:05:44,388 1393 01:05:44,388 --> 01:05:44,840 >> Pardonon. 1394 01:05:44,840 --> 01:05:46,090 Mi havas ĝin malantaŭen. 1395 01:05:46,090 --> 01:05:51,620 1396 01:05:51,620 --> 01:05:52,200 Atendu, ne. 1397 01:05:52,200 --> 01:05:53,450 Kiun vojon faras ĝi iras? 1398 01:05:53,450 --> 01:05:58,071 1399 01:05:58,071 --> 01:05:59,660 Iu scias kio tio estas? 1400 01:05:59,660 --> 01:06:00,950 Jes. 1401 01:06:00,950 --> 01:06:05,650 >> Studenta 67: Supozita helpi normigi trans sistemoj, kio 1402 01:06:05,650 --> 01:06:08,760 havas - kiel sensigna entjeroj kiuj havas 8 bajtoj? 1403 01:06:08,760 --> 01:06:11,785 >> JASON Hirschhorn: Tio estas ĝuste. 1404 01:06:11,785 --> 01:06:14,310 Pri diversaj maŝinoj, la grandeco de char - 1405 01:06:14,310 --> 01:06:15,180 ne kutime char. 1406 01:06:15,180 --> 01:06:16,100 Signaĵoj estas kutime unu bajto. 1407 01:06:16,100 --> 01:06:19,590 Sed la amplekso de aliaj datumtipoj estas malsamajn grandecojn je 32-bitoj maŝino 1408 01:06:19,590 --> 01:06:21,370 kontre 64-bitan komputilon. 1409 01:06:21,370 --> 01:06:25,180 A uint8_t ĉiam 8 bitoj - 1410 01:06:25,180 --> 01:06:27,210 ĉiam unu bajto. 1411 01:06:27,210 --> 01:06:29,580 >> Kaj mi bezonas inkluzivi ke norma int kaplinio dosiero. 1412 01:06:29,580 --> 01:06:35,040 Do nun, tiu estus probable estis la plej bona maniero por skribi tiun kodon. 1413 01:06:35,040 --> 01:06:40,160 1414 01:06:40,160 --> 01:06:41,450 Do mi forigi la magio nombroj. 1415 01:06:41,450 --> 01:06:44,690 Kaj mi ankaux havas pli logika tajpi por bufro. 1416 01:06:44,690 --> 01:06:49,450 Ĝi ne estas simple char, estas bitoko, kio estas kion ni atendas ke ĝi estu. 1417 01:06:49,450 --> 01:06:53,400 >> Kaj ĝis ĉi tie, ni reale estis iom pli fortika. 1418 01:06:53,400 --> 01:06:55,190 Ni ne nomante ĝin char, kiu - 1419 01:06:55,190 --> 01:06:58,630 eble, kiu scias - povus esti malsama grandeco sur malsamaj maŝinoj. 1420 01:06:58,630 --> 01:07:02,025 Ni efektive dirante tio estas ekzakte unu bajto, ĉiam, negrave kion. 1421 01:07:02,025 --> 01:07:05,810 Kaj se ni rigardas tien, ni faru cp. 1422 01:07:05,810 --> 01:07:08,340 Uh-oh. 1423 01:07:08,340 --> 01:07:09,590 Kio okazis? 1424 01:07:09,590 --> 01:07:14,470 1425 01:07:14,470 --> 01:07:16,170 >> Studenta 68: Povus esti ŝanĝita. 1426 01:07:16,170 --> 01:07:17,880 >> JASON Hirschhorn: Kio? 1427 01:07:17,880 --> 01:07:19,130 >> Studenta 69: Ĉu? 1428 01:07:19,130 --> 01:07:21,940 1429 01:07:21,940 --> 01:07:25,080 >> Studenta 70: Vi ne difini ĝin kiel tipo. 1430 01:07:25,080 --> 01:07:28,684 >> Studenta 71: Sed ĝi devus esti difinita en normo. 1431 01:07:28,684 --> 01:07:29,934 >> Studenta 72: Kio okazas? 1432 01:07:29,934 --> 01:07:37,660 1433 01:07:37,660 --> 01:07:40,210 >> Studenta 73: Should difini estu ĉiuj kaskedoj? 1434 01:07:40,210 --> 01:07:41,370 >> JASON Hirschhorn: Do estas ne # difini. 1435 01:07:41,370 --> 01:07:45,490 Efektive, en tiu kazo, mi estas tuj uzi typedef. 1436 01:07:45,490 --> 01:07:48,590 Ĉar ni uzas ĝin kiel tipo en unu loko. 1437 01:07:48,590 --> 01:07:51,990 Do, en tiu kazo, ni vere volas typedef kiel ni presado nova tipo 1438 01:07:51,990 --> 01:07:54,490 bajto, kaj ĝi estas, esence, tiu. 1439 01:07:54,490 --> 01:07:56,590 Ĝi estas iom malsamaj ol # difini. 1440 01:07:56,590 --> 01:08:02,740 >> Kaj nun, ho nia kodo funkcias perfekte. 1441 01:08:02,740 --> 01:08:05,230 Do, denove, # difini prenas ion, Anstataŭas ĝin ĉie 1442 01:08:05,230 --> 01:08:06,780 kun la alia afero. 1443 01:08:06,780 --> 01:08:07,920 Estas nur makro - 1444 01:08:07,920 --> 01:08:09,420 stenografio por malfari magion nombroj. 1445 01:08:09,420 --> 01:08:11,360 Sed en tiu kazo, ĉar ni estas uzante ĝin kiel tipo - 1446 01:08:11,360 --> 01:08:12,180 ĝuste ĉi tie - 1447 01:08:12,180 --> 01:08:19,880 en ordo por ke labori, ni bezonas al typedef ajn bajto estas. 1448 01:08:19,880 --> 01:08:21,840 >> Kaj ni difinante ĝin ĉi tie. 1449 01:08:21,840 --> 01:08:24,750 Tio ne estas struct, fakte nur sensigna entjera. 1450 01:08:24,750 --> 01:08:27,680 Ĝi estas unu bajto longa. 1451 01:08:27,680 --> 01:08:31,910 Ĉi tiu kodo estos alirebla rete, kaj vi ĉiuj devas havi ĝin nun. 1452 01:08:31,910 --> 01:08:33,830 >> Do ni havas - 1453 01:08:33,830 --> 01:08:34,250 perfekta - 1454 01:08:34,250 --> 01:08:41,359 13 minutoj lasis iri super problemon agordi 5. 1455 01:08:41,359 --> 01:08:44,270 Mi volas promeni tra copy.c kune, kaj poste ni parolos mallonge 1456 01:08:44,270 --> 01:08:47,120 Pri la aliaj partoj de la problemo metita. 1457 01:08:47,120 --> 01:08:48,899 Do lasu min eltiri supren copy.c. 1458 01:08:48,899 --> 01:09:03,930 1459 01:09:03,930 --> 01:09:08,810 Kaj la malvarmeta afero estas, ke ni reale jam skribis multon de tiu kodo. 1460 01:09:08,810 --> 01:09:11,180 >> La kodo de ni skribis laŭvorte nur elvenis de tie kiam mi estis 1461 01:09:11,180 --> 01:09:13,120 skribi tion en mia propra. 1462 01:09:13,120 --> 01:09:16,990 Sed tio estas copy.c, formas la fundamenton por la unuaj du partoj de 1463 01:09:16,990 --> 01:09:22,340 la problemo metita por whodunit.c, kiuj vi devas skribi, kaj resize.c. 1464 01:09:22,340 --> 01:09:27,050 Recover.c, kiu estas la tria kaj fina parton de la problemo aron, ne estas 1465 01:09:27,050 --> 01:09:29,529 bazita ekstere de tiu dosiero. 1466 01:09:29,529 --> 01:09:32,200 >> Vi tuj bezonos skribi ke dosiero, ni donu al vi unu ŝablonon por ke 1467 01:09:32,200 --> 01:09:34,620 dosiero, sed ĝi havas nenion fari kun copy.c. 1468 01:09:34,620 --> 01:09:38,675 Sed ĉar copy.c estas la fundamento por La unuaj du partoj, ni iras 1469 01:09:38,675 --> 01:09:42,000 marŝi tra ĝi nun, do vi devos bona senso de kio faras. 1470 01:09:42,000 --> 01:09:43,640 >> Kaj la komentojn doni iom da ĝi for. 1471 01:09:43,640 --> 01:09:45,120 Ni jam skribis kelkajn el ĉi. 1472 01:09:45,120 --> 01:09:49,220 Unue, ni cerciorándose ni preni tri argumentojn. 1473 01:09:49,220 --> 01:09:50,560 Venonta, ni memoras la dosiernomon. 1474 01:09:50,560 --> 01:09:52,960 Do ni skipped tiun paŝon kiam ni coded nia afero - 1475 01:09:52,960 --> 01:09:54,700 kiam niaj cp. 1476 01:09:54,700 --> 01:09:56,750 Sed ĉi tie, ili estas farante gxi iom pli pura. 1477 01:09:56,750 --> 01:09:59,350 >> Ili estas kontrolanta certigi ambaŭ dosieroj estas bona, en 1478 01:09:59,350 --> 01:10:00,450 Krom malfermante ilin. 1479 01:10:00,450 --> 01:10:04,760 Ni skribis tiun tutan kodo gxuste nun, do mi estas Ne tuj, por logxi sur tiu kodo. 1480 01:10:04,760 --> 01:10:09,670 Sekva estas iuj aĵoj estas specifa al la tipoj de dosieroj ni uzas, kiujn 1481 01:10:09,670 --> 01:10:12,240 Estas bitmap dosierojn. 1482 01:10:12,240 --> 01:10:15,660 Bitmap dosieroj havas iujn metadatumoj asociita kun ili. 1483 01:10:15,660 --> 01:10:20,190 >> Do la unua paro da bajtoj rakontos al vi pri la dosiero. 1484 01:10:20,190 --> 01:10:23,460 Ili ne estas la koloroj de la rastrumero en tiu bildo. 1485 01:10:23,460 --> 01:10:25,120 Ili diros al vi pri la dosiero. 1486 01:10:25,120 --> 01:10:28,220 Kaj se vi legas tra la problemon aro, vi devos multe pli da informoj 1487 01:10:28,220 --> 01:10:33,100 sur kio tipoj de metadatumoj strukturoj inkludas kun bitmaps. 1488 01:10:33,100 --> 01:10:39,350 >> Sed tio estas kial ni havas tiun unuan aro de - tiun kodon ĝuste ĉi tie. 1489 01:10:39,350 --> 01:10:42,490 Ni legas la metadatumojn - 1490 01:10:42,490 --> 01:10:45,800 du pecojn de metadatumoj - la dosiero kaplinio kaj la info kaplinion. 1491 01:10:45,800 --> 01:10:51,030 Kaj ni estas kontrolanta kelkaj partoj de ĝi al certigi estas vera bitmap dosieron 1492 01:10:51,030 --> 01:10:52,420 antaŭ ol daŭrigi. 1493 01:10:52,420 --> 01:10:55,470 >> Kaj denove, ĉi tiuj estas detaloj ni ne bezonas iri en nun. 1494 01:10:55,470 --> 01:10:57,720 Se vi tralegu la problemo aro, vi komprenos tiuj. 1495 01:10:57,720 --> 01:11:01,370 Longan rakonton, tiuj estas nur diras, tio estas bitmap dosiero, kaj 1496 01:11:01,370 --> 01:11:02,810 konfirmante tion. 1497 01:11:02,810 --> 01:11:05,180 >> Tuj, ni skribas tiujn al la ekster-dosiero. 1498 01:11:05,180 --> 01:11:05,660 Ni vidas, ke ĉi tie. 1499 01:11:05,660 --> 01:11:06,910 Ni skribas al la ekster montrilo. 1500 01:11:06,910 --> 01:11:09,260 1501 01:11:09,260 --> 01:11:11,320 Venonta, ni determini Plenigado. 1502 01:11:11,320 --> 01:11:15,240 Do denove, kiel estas particularidad kun a bitmap dosiero, kelkaj linioj inkluzivi 1503 01:11:15,240 --> 01:11:16,840 Plenigado ĉe la fino. 1504 01:11:16,840 --> 01:11:19,000 Kaj se vi legas tra la problemon aro, vi lernos pli pri Plenigado. 1505 01:11:19,000 --> 01:11:22,330 Jen la formulo por trovi Plenigado. 1506 01:11:22,330 --> 01:11:23,610 >> Gravas memori - 1507 01:11:23,610 --> 01:11:29,720 kiam vi ŝanĝos la grandecon de bitmap arkivo, la Plenigado ŝanĝojn. 1508 01:11:29,720 --> 01:11:31,970 Kiam vi ŝanĝas la grandeco de arkivo, la Plenigado ŝanĝojn. 1509 01:11:31,970 --> 01:11:34,310 Ĝi estos neniam pli granda ol 3 - 1510 01:11:34,310 --> 01:11:36,510 tio estos 0 tra 3, inkluziva. 1511 01:11:36,510 --> 01:11:38,930 Sed kiam vi ŝanĝos la grandeco de iu, la Plenigado ŝanĝojn. 1512 01:11:38,930 --> 01:11:47,100 >> Se mi havas nur unu rastrumero en tiu vico, mi bezonas tri bitokoj de Plenigado, ĉar 1513 01:11:47,100 --> 01:11:51,190 ĉiu vico devas esti obloj de kvar bajtoj longe en bitmap dosiero. 1514 01:11:51,190 --> 01:11:56,120 Sed se mi duobligi tion, por iri de unu rastrumero al du bildero, ĉiu el kiuj, 1515 01:11:56,120 --> 01:11:59,510 diru, estas bajto, do mi bezonas du bajtojn de Plenigado fari 1516 01:11:59,510 --> 01:12:00,970 ke egalas kvar. 1517 01:12:00,970 --> 01:12:04,200 >> Do, kiam mi ŝanĝas la grandecon de io, Mi bezonas ŝanĝi la kvanto 1518 01:12:04,200 --> 01:12:06,551 de Plenigado mi havas. 1519 01:12:06,551 --> 01:12:08,100 Ĉu tio havas sencon por ĉiuj? 1520 01:12:08,100 --> 01:12:12,020 1521 01:12:12,020 --> 01:12:18,720 Tuj, ni persisti super ĉiu vico, aŭ tra ĉiuj vicoj. 1522 01:12:18,720 --> 01:12:21,400 Kaj tiam ni persisti tra ĉiu kolumno en ĉiu vico. 1523 01:12:21,400 --> 01:12:25,330 Ni traktis ĉi bitmap kiel krado, kiel ni traktis 1524 01:12:25,330 --> 01:12:26,490 la estraro en 15. 1525 01:12:26,490 --> 01:12:29,200 >> Kiel ni traktis la brikoj kiam Ni presas ilin sur la ekrano. 1526 01:12:29,200 --> 01:12:31,350 A krado de vicoj kaj kolumnoj. 1527 01:12:31,350 --> 01:12:32,350 Tiam - ni vidis tion. 1528 01:12:32,350 --> 01:12:33,840 Ni fakte ĝuste kodita ĉi. 1529 01:12:33,840 --> 01:12:35,780 Ni kreis iujn provizora stokado. 1530 01:12:35,780 --> 01:12:38,710 Ni legas en tie, kaj poste ni skribos ĝin. 1531 01:12:38,710 --> 01:12:42,680 Ĉi tiu estas ekzakte kion ni ĵus faris. 1532 01:12:42,680 --> 01:12:46,760 >> Tuj poste, ĉar mi diris ĉiu linio finiĝas per kelkaj Plenigado, ni 1533 01:12:46,760 --> 01:12:48,260 salti super kiuj Plenigado - 1534 01:12:48,260 --> 01:12:51,000 la malnovaj Plenigado. 1535 01:12:51,000 --> 01:12:52,630 Kaj poste ni aldonu gxin returne. 1536 01:12:52,630 --> 01:12:55,140 En ĉi tiu kazo, ni kreas la sama ĝusta dosiero. 1537 01:12:55,140 --> 01:12:56,180 Ni simple kopiante ĝin. 1538 01:12:56,180 --> 01:12:57,700 Do ĉi tiu linio estas ia stulta. 1539 01:12:57,700 --> 01:12:59,660 Ni povis laŭvorte nur metu la Plenigado in 1540 01:12:59,660 --> 01:13:04,290 >> Sed se vi ŝanĝos la grandeco de la dosiero, ĉu vi ankoraŭ volas tiun linion? 1541 01:13:04,290 --> 01:13:08,510 1542 01:13:08,510 --> 01:13:11,560 Do, se ni ŝanĝos la grandeco de dosiero: ni ankoraŭ volas salti 1543 01:13:11,560 --> 01:13:12,810 super la malnovan Plenigado? 1544 01:13:12,810 --> 01:13:15,170 1545 01:13:15,170 --> 01:13:15,970 >> Studenta 74: Jes. 1546 01:13:15,970 --> 01:13:17,090 >> JASON Hirschhorn: Do, ni faros. 1547 01:13:17,090 --> 01:13:19,290 Pro tio, denove, temas kun la fonta dosiero. 1548 01:13:19,290 --> 01:13:21,570 Ni ne zorgas pri la Plenigado el la fonta dosiero. 1549 01:13:21,570 --> 01:13:23,410 Ni volas iri al la sekva linio. 1550 01:13:23,410 --> 01:13:28,850 Sed ni ne simple metu reen la malnovaj kvanto de Plenigado. 1551 01:13:28,850 --> 01:13:31,540 Ni devas meti reen la nova sumo de Plenigado. 1552 01:13:31,540 --> 01:13:35,810 >> Do kiam ni ŝanĝas la grandeco de dosiero, ni ankoraŭ volas salti super la 1553 01:13:35,810 --> 01:13:38,270 Plenigado en la malnova dosiero - kio Ni legas en de. 1554 01:13:38,270 --> 01:13:40,370 Sed kion ni skribas al ni tuj bezoni remetu kelkaj malsamaj 1555 01:13:40,370 --> 01:13:41,890 numeron de Plenigado ke ni jam decidita. 1556 01:13:41,890 --> 01:13:42,780 Jes. 1557 01:13:42,780 --> 01:13:44,550 >> Studenta 75: La ordo de tiuj du linioj ne gravas, ĉu? 1558 01:13:44,550 --> 01:13:46,160 Ĉar vi estas uzado malsamajn dosierojn. 1559 01:13:46,160 --> 01:13:46,620 >> JASON Hirschhorn: Ekzakte. 1560 01:13:46,620 --> 01:13:48,220 La ordo de tiuj du linioj Ne gravas. 1561 01:13:48,220 --> 01:13:49,790 Ni skribu tiun linion. 1562 01:13:49,790 --> 01:13:51,430 Ĉi tie estas la dosiero Ni skribas al. 1563 01:13:51,430 --> 01:13:54,370 Tio estas grava, tiel ni atingos la dekstra kvanto de Plenigado. 1564 01:13:54,370 --> 01:13:57,560 Tio devas trakti kun la en dosiero. 1565 01:13:57,560 --> 01:13:58,560 Ni volas salti dekstra super la Plenigado. 1566 01:13:58,560 --> 01:13:59,470 >> Ni ne volas legi - 1567 01:13:59,470 --> 01:14:01,500 se ni legas bajto je tempo, ni ne zorgas pri tiuj Plenigado bajtoj. 1568 01:14:01,500 --> 01:14:04,070 Ni volas movi al la sekva linio. 1569 01:14:04,070 --> 01:14:11,800 Fine nur kiel Lucy donis pro ni, Ni fermas la dosierojn kaj revenas 0. 1570 01:14:11,800 --> 01:14:13,890 Do tiu estas copy.c. 1571 01:14:13,890 --> 01:14:17,850 Kaj ni efektive skribis - ni pasigis la plimulton de sekcio skribas ĉi tion, esence. 1572 01:14:17,850 --> 01:14:18,740 >> Vi faris tion. 1573 01:14:18,740 --> 01:14:22,440 Do espereble vi havis bonan senson de kio okazas en ĉi tie. 1574 01:14:22,440 --> 01:14:25,890 La granda diferenco, honeste, estas nur tiu unua parto kiu traktas 1575 01:14:25,890 --> 01:14:29,970 proprecoj de bitmap dosierojn. 1576 01:14:29,970 --> 01:14:33,570 Do mi havas kiel mia proksima glito, Kion ni devas fari? 1577 01:14:33,570 --> 01:14:35,510 Nu, ni pensu pri whodunit. 1578 01:14:35,510 --> 01:14:38,080 >> Kaj por iu, kiu legas tra la problemo metita, kion ni faras 1579 01:14:38,080 --> 01:14:41,410 bezonas fari en whodunit? 1580 01:14:41,410 --> 01:14:42,080 Simple. 1581 01:14:42,080 --> 01:14:42,460 Aleja. 1582 01:14:42,460 --> 01:14:48,570 >> ALEJA: Ĉu vi povas preni el la parto de ĉiu rastrumero kiuj signas ruĝa. 1583 01:14:48,570 --> 01:14:49,730 Kaj tiam - 1584 01:14:49,730 --> 01:14:50,730 speco de? 1585 01:14:50,730 --> 01:14:51,860 >> JASON Hirschhorn: okej. 1586 01:14:51,860 --> 01:14:54,460 Do prenu el la parto de ĉiu rastrumero kiuj signas ruĝa. 1587 01:14:54,460 --> 01:14:57,234 Tio estas apude, sed ne ĉiuj de ĝi. 1588 01:14:57,234 --> 01:14:59,780 >> Studenta 76: Nu, tie estas malsamaj manieroj fari ĝin. 1589 01:14:59,780 --> 01:14:59,870 >> JASON Hirschhorn: okej. 1590 01:14:59,870 --> 01:15:03,070 Donu al mi unu vojo. 1591 01:15:03,070 --> 01:15:08,240 >> Studenta 76: Prenu al cxiuj el la ruĝa kaj tiam substreki la blua kaj verda. 1592 01:15:08,240 --> 01:15:10,010 >> JASON Hirschhorn: okej. 1593 01:15:10,010 --> 01:15:11,830 Do donita ambaŭ ĉi tiuj manieroj - 1594 01:15:11,830 --> 01:15:15,210 gxi sonas kiel ni donu al ĝi bildero, ĝi havas ruĝan, bluan kaj verdan nivelo. 1595 01:15:15,210 --> 01:15:19,350 Ni volas ŝanĝi la relativajn niveloj de la ruĝaj, bluaj kaj verdaj, depende 1596 01:15:19,350 --> 01:15:20,740 sur tiu bildero. 1597 01:15:20,740 --> 01:15:28,380 Kie en tiu kodo oni devus ŝanĝi la relativa ruĝaj, bluaj kaj verdaj 1598 01:15:28,380 --> 01:15:29,720 niveloj de donita bildero. 1599 01:15:29,720 --> 01:15:30,600 Poste ni legis ĝin - 1600 01:15:30,600 --> 01:15:32,520 antaŭ ol ni skribi ĝin? 1601 01:15:32,520 --> 01:15:34,564 Donu al mi la linion nombro. 1602 01:15:34,564 --> 01:15:35,950 >> Multiple lernantoj: 83. 1603 01:15:35,950 --> 01:15:37,320 >> JASON Hirschhorn: 83. 1604 01:15:37,320 --> 01:15:38,570 Do ĝuste ĉi tie. 1605 01:15:38,570 --> 01:15:40,830 1606 01:15:40,830 --> 01:15:45,710 Por whodunit, la kodo kiun vi bezonas por registran ĉiuj devas iri rajton tie. 1607 01:15:45,710 --> 01:15:47,640 Kaj tio estas la nura kodo vi devas skribi. 1608 01:15:47,640 --> 01:15:51,520 Ĉar, kiel oni aŭdis, ĉiuj vi bezonas fari estas ŝanĝi tiujn relativajn blua, 1609 01:15:51,520 --> 01:15:54,420 ruĝa kaj verda niveloj de ĉiu bildero. 1610 01:15:54,420 --> 01:15:58,250 >> Vi jam legis ĝin, kaj nun vi estas tuj skribos ĝin. 1611 01:15:58,250 --> 01:16:03,100 Kiel mi estas rekompenciĝita - se mi havas tiun aĵon nomas triobla, ĝuste ĉi tie, kaj ĝi estas de 1612 01:16:03,100 --> 01:16:04,570 tajpi RGBTRIPLE - 1613 01:16:04,570 --> 01:16:08,650 bone, se ni rigardas en bmp.h, kio estas RGBTRIPLE? 1614 01:16:08,650 --> 01:16:11,450 1615 01:16:11,450 --> 01:16:12,700 >> Studenta 77: Estas struct. 1616 01:16:12,700 --> 01:16:17,440 1617 01:16:17,440 --> 01:16:18,900 >> JASON Hirschhorn: RGBTRIPLE Estas struct. 1618 01:16:18,900 --> 01:16:22,330 Ni vidas, ke ĝuste ĉi tie. 1619 01:16:22,330 --> 01:16:26,600 Kaj tial, se mi volis aliri, ni diru, la ruĝa nivelo de la struct, kiel do mi 1620 01:16:26,600 --> 01:16:30,005 aliri al la ruĝa nivelon de ĉi struct? 1621 01:16:30,005 --> 01:16:37,280 >> [CLASS murmuroj] 1622 01:16:37,280 --> 01:16:38,530 >> Studenta 78: RGBTRIPLE.rgbtred? 1623 01:16:38,530 --> 01:16:47,250 1624 01:16:47,250 --> 01:16:48,856 >> JASON Hirschhorn: Ĉu tio estas korekta? 1625 01:16:48,856 --> 01:16:53,040 >> Studenta 79: Ĝi devus esti triobla streketo anstataux RGBTRIPLE dot? 1626 01:16:53,040 --> 01:16:54,120 >> JASON Hirschhorn: Triobla. 1627 01:16:54,120 --> 01:16:56,700 Triobla estas la loka variablo, do ĉi tie, ne estas indikoj tie. 1628 01:16:56,700 --> 01:16:58,400 Do ni simple uzas la skalara skribmaniero. 1629 01:16:58,400 --> 01:17:00,480 Tio donos al mi la nivelon de ruĝa. 1630 01:17:00,480 --> 01:17:06,180 Se mi volas ŝanĝi ĝin, mi nur starigis ĝi egalus al io malsama. 1631 01:17:06,180 --> 01:17:13,190 Do denove, ĉi tiu linio de kodo aliroj ĉi variablo ene ĉi struct, kaj 1632 01:17:13,190 --> 01:17:15,070 ni povas agordi gxin por io nova. 1633 01:17:15,070 --> 01:17:20,040 >> Do por whodunit, denove, ĉi tio estas, en esenco, kion ni devas fari. 1634 01:17:20,040 --> 01:17:21,170 Tre simpla. 1635 01:17:21,170 --> 01:17:25,020 Nur ŝanĝi iujn relativaj niveloj, kaj tio estas kie tiu kodo iras. 1636 01:17:25,020 --> 01:17:27,720 Regrandigi, aliflanke, estas iom trickier. 1637 01:17:27,720 --> 01:17:30,900 Fakte, ŝanĝi grandecon estas probable la trickiest parto de tiu problemo metita. 1638 01:17:30,900 --> 01:17:32,720 Ni havas tri minutoj por iri sur ĝi. 1639 01:17:32,720 --> 01:17:34,910 >> Sed denove, ni jam skribis plejparto de ĉi tiu kodo, tiel ni 1640 01:17:34,910 --> 01:17:36,500 devus esti bela familiara. 1641 01:17:36,500 --> 01:17:40,750 Kion estas kelkaj aferoj kiujn ni volas fari en regrandigi, se vi legis super la 1642 01:17:40,750 --> 01:17:43,470 problemo starigis? 1643 01:17:43,470 --> 01:17:45,290 Se vi donos al mi, ni povas paroli pri ili. 1644 01:17:45,290 --> 01:17:47,340 Kion estas kelkaj aferoj kiujn ni volas fari? 1645 01:17:47,340 --> 01:17:47,970 >> Studenta 80: vertikale - 1646 01:17:47,970 --> 01:17:52,360 tiel vi devas horizontale regrandigi ĝi, sed vertikale regrandigi gxin tiel? 1647 01:17:52,360 --> 01:17:58,475 >> JASON Hirschhorn: Do, se ni donas bildero, kaj ni volas regrandigi ĝi per 1648 01:17:58,475 --> 01:18:03,460 faktoro de du, ŝi nun bezonas esti malpligrandigeblaj horizontale kaj malpligrandigeblaj 1649 01:18:03,460 --> 01:18:05,220 vertikale. 1650 01:18:05,220 --> 01:18:06,640 Ĉu tio havas sencon? 1651 01:18:06,640 --> 01:18:07,060 Jes. 1652 01:18:07,060 --> 01:18:09,300 Do tio estas probable la plej granda defio. 1653 01:18:09,300 --> 01:18:10,430 Kaj ni parolos pri tio en sek. 1654 01:18:10,430 --> 01:18:11,065 Jes. 1655 01:18:11,065 --> 01:18:15,270 >> Studenta 81: La vojon Mi pensis pri tio Estis vi bezonis presi ĝin - 1656 01:18:15,270 --> 01:18:15,490 >> JASON Hirschhorn: Atendu. 1657 01:18:15,490 --> 01:18:17,580 Ne diru al ni, kion vi faris. 1658 01:18:17,580 --> 01:18:20,620 Ni iras por paroli en logiko. 1659 01:18:20,620 --> 01:18:21,870 >> Studenta 81: okej. 1660 01:18:21,870 --> 01:18:25,090 1661 01:18:25,090 --> 01:18:27,410 Kio estis la demando? 1662 01:18:27,410 --> 01:18:28,892 >> JASON Hirschhorn: Vi nur levis viajn manojn. 1663 01:18:28,892 --> 01:18:31,600 Ne estis demando. 1664 01:18:31,600 --> 01:18:32,520 Permesu al mi prezenti gxin. 1665 01:18:32,520 --> 01:18:34,560 Lasu min nur diskutas ĉi mallonge. 1666 01:18:34,560 --> 01:18:38,400 Do ni jam unu bildero, ni volas repliki ĝin, ambaŭ horizontale kaj 1667 01:18:38,400 --> 01:18:39,360 vertikale. 1668 01:18:39,360 --> 01:18:48,920 Do ideale kion ni faras tie ĉi estas, ni legu en nia bildero, oni skribu tion 1669 01:18:48,920 --> 01:18:51,690 Tamen multaj da fojoj. 1670 01:18:51,690 --> 01:18:54,720 >> Sed poste ni havos niajn lertaĵo ĉi tie, ĉar do ni volas salti al la 1671 01:18:54,720 --> 01:18:57,660 sekvanta linio kaj skribi ĝin ĉe la komencante de la sekva linio. 1672 01:18:57,660 --> 01:19:02,960 Do, se ni deziras repliki ambaŭ horizontale kaj vertikale, kio estas 1673 01:19:02,960 --> 01:19:05,050 unu bona maniero por fari tion - 1674 01:19:05,050 --> 01:19:06,780 unu bona kvankam fari tion? 1675 01:19:06,780 --> 01:19:11,950 Do ni ne bezonas konstante serĉi ĉirkaŭ nia arkivo por meti la aferojn. 1676 01:19:11,950 --> 01:19:14,360 >> Tiu demando ne havu faris senco, sed mi pripensos 1677 01:19:14,360 --> 01:19:15,800 respondi al ĝi helpos. 1678 01:19:15,800 --> 01:19:17,210 >> Studenta 82: Krei tabelo? 1679 01:19:17,210 --> 01:19:20,090 >> JASON Hirschhorn: Do ni opinias de ĉiu dosiero vico. 1680 01:19:20,090 --> 01:19:22,550 Ni opinias, en terminoj de vicoj. 1681 01:19:22,550 --> 01:19:26,670 Se ni havos nian unuan vicon de nia malgranda bildo, ni povas fari, ke vico 1682 01:19:26,670 --> 01:19:30,640 en vastan vico de granda bildo, kaj tiam repliki ke vico tamen 1683 01:19:30,640 --> 01:19:34,250 multajn fojojn gxin bezonas por esti multoblighas, anstataŭ iri rastrumero per rastrumero, 1684 01:19:34,250 --> 01:19:37,260 kiuj ricevas konfuza kiam kontraktanta kun dosieroj. 1685 01:19:37,260 --> 01:19:38,730 >> Ĉar se ni havis - 1686 01:19:38,730 --> 01:19:41,260 Mi elĉerpiĝas de spaco. 1687 01:19:41,260 --> 01:19:46,490 Se tio estas nia arkivo, kaj ni havas ke unu rastrumero tie, kaj ni volas meti ĝin 1688 01:19:46,490 --> 01:19:49,840 Dekstre, ni havas ankoraŭ kelkajn aferojn ke necesas iri tien, kiam ni estas 1689 01:19:49,840 --> 01:19:51,450 skribo kaj kreante nia nova dosiero - 1690 01:19:51,450 --> 01:19:53,250 nia dosiero kiu estas duoble pli granda. 1691 01:19:53,250 --> 01:19:56,820 >> Sed estas vere malmola kun dosieron funkcioj salti ĉirkaŭ la novaj linioj 1692 01:19:56,820 --> 01:20:00,260 kiel tiu, kaj tiam revenu ĉi tien kaj ili metis tion en tie. 1693 01:20:00,260 --> 01:20:04,500 Estas preskaŭ neeble fari ion kiel ke, se tio havas sencon. 1694 01:20:04,500 --> 01:20:10,180 Do, se ni kredas en terminoj de vicoj, ni povas prenu nian vicon, kaj tiam metis ĝin - 1695 01:20:10,180 --> 01:20:11,720 repliki vicoj vertikale. 1696 01:20:11,720 --> 01:20:15,860 >> Kaj tiu estas kiel ni pritrakti regrandigi vertikale ol horizontale. 1697 01:20:15,860 --> 01:20:18,810 Tio estis speco de viva kaj iom konfuza. 1698 01:20:18,810 --> 01:20:22,375 Bedaŭrinde nia tempo estas supre. 1699 01:20:22,375 --> 01:20:27,340 Mi staros ekstere por tiuj el vi ĉi tie, kiuj havas demandojn pri la 1700 01:20:27,340 --> 01:20:30,500 problemo aro, inkluzive de rekuperi. 1701 01:20:30,500 --> 01:20:32,320 >> Do ni adjourn ĝis nun. 1702 01:20:32,320 --> 01:20:34,480 Kaj cetere, se vi havas demandojn, ni povas babili ekstere. 1703 01:20:34,480 --> 01:20:38,294