1 00:00:00,000 --> 00:00:02,742 >> [MUZIKO Ludante] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI PENG: Jen CS50, kaj bonvenigi al semajno du el sekcio. 4 00:00:09,090 --> 00:00:11,740 Tiu estas fakte dum semajno du el niaj class-- reale, 5 00:00:11,740 --> 00:00:14,550 la unua semajno ni havis sekcion. 6 00:00:14,550 --> 00:00:18,897 Show de manoj, kiom multaj el vi ĉiuj venis al súper sekcio lasta semajno? 7 00:00:18,897 --> 00:00:19,480 Okej, tio estas bone. 8 00:00:19,480 --> 00:00:20,020 Estas bone. 9 00:00:20,020 --> 00:00:23,110 Kiel multaj el vi spektis ekstra sekcio lasta semajno? 10 00:00:23,110 --> 00:00:23,610 BONE. 11 00:00:23,610 --> 00:00:25,702 Kaj vi uloj faris fajnan sur problemo starigis unu? 12 00:00:25,702 --> 00:00:28,660 Do mi iros por preni lin, ke ni havas faskon de vere inteligentaj infanoj 13 00:00:28,660 --> 00:00:32,310 en tiu klaso kaj aĵoj estos bone. 14 00:00:32,310 --> 00:00:33,180 BONE. 15 00:00:33,180 --> 00:00:33,980 Do first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Unue, ni nur tuj mallonge transiru la tagordo por hodiaŭ. 18 00:00:41,090 --> 00:00:42,700 Ni parolos pri kompreneble loĝistiko. 19 00:00:42,700 --> 00:00:45,480 Multa vi probable havas demandojn pri 20 00:00:45,480 --> 00:00:46,920 kiel aferoj kuri en tiun direkton. 21 00:00:46,920 --> 00:00:47,897 Ni respondos ilin. 22 00:00:47,897 --> 00:00:49,730 Ni tuj mallonge transiru maŝojn en kazo 23 00:00:49,730 --> 00:00:51,410 iu el vi infanoj missed súper sekcio. 24 00:00:51,410 --> 00:00:53,240 Ni parolos pri ASCII mapado. 25 00:00:53,240 --> 00:00:56,180 Ni parolos pri tabeloj, funkcioj, komandliniajn argumentojn. 26 00:00:56,180 --> 00:01:00,210 Kaj fine, kion vi uloj verŝajne ĉiuj vere volas esti tie por lerni pri, 27 00:01:00,210 --> 00:01:01,270 estas via pset2. 28 00:01:01,270 --> 00:01:04,209 Ni devos iu bela lertaĵoj kaj konsilojn por kiel fari tion. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> BONE. 31 00:01:08,690 --> 00:01:11,450 Ankaŭ, due, ni havas multaj dolĉaĵoj tie. 32 00:01:11,450 --> 00:01:13,583 Ĉiu kiu ŝatas bombono, ĵus venis ĉi tien. 33 00:01:13,583 --> 00:01:14,430 Grab kelkaj. 34 00:01:14,430 --> 00:01:15,100 Mi havas faskon. 35 00:01:15,100 --> 00:01:16,390 Ni havas ton en la oficejo. 36 00:01:16,390 --> 00:01:18,230 Mi ne vere volas manĝi frandaĵon ĉiuj tago. 37 00:01:18,230 --> 00:01:20,300 Vi uloj devus manĝi ĉiujn bombono, ĉar Mi tion ĉi tie por vi uloj. 38 00:01:20,300 --> 00:01:20,990 Nur manĝi frandaĵon. 39 00:01:20,990 --> 00:01:24,080 Tie estos dolĉaĵoj ĉiu sekcio. 40 00:01:24,080 --> 00:01:25,330 >> Do unue, kiu estas mi? 41 00:01:25,330 --> 00:01:27,080 Mia nomo estas Andi Peng. 42 00:01:27,080 --> 00:01:30,270 Mi estas la kapo TA de CS50 tie ĉe Yale. 43 00:01:30,270 --> 00:01:32,540 Kaj krom ke Mi ankaŭ be-- 44 00:01:32,540 --> 00:01:35,600 se iu volas like-- via kurado buddy, via ŝultro por plori sur. 45 00:01:35,600 --> 00:01:39,140 Se la nokto antaŭ via pset la destinitajxo vi havas neniun ideon kio okazas, 46 00:01:39,140 --> 00:01:40,080 bati min. 47 00:01:40,080 --> 00:01:42,770 Ni commiserate kune, kaj tiel plu. 48 00:01:42,770 --> 00:01:46,100 Nur scias ke mi estas ĉi tie kiel rimedo por vi kiel la frontlinio 49 00:01:46,100 --> 00:01:51,830 en helpi vin uloj elkompreni kiel solvi problemojn en CS50 kaj pretere. 50 00:01:51,830 --> 00:01:54,590 >> Mia retpoŝto estas andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Mi ankaŭ forpelos individuo retpoŝti kun miaj telefonnumero en ĝi 52 00:01:58,390 --> 00:02:01,860 por ke ne ĉiu en la interreto povas vidi mian telefonnumeron. 53 00:02:01,860 --> 00:02:03,640 Bonvolu voki min kiam ajn. 54 00:02:03,640 --> 00:02:07,510 Serioze, mia telefono estas kutime alkroĉita al mia mano. 55 00:02:07,510 --> 00:02:10,240 Mi ne povas respondi ene de kelkaj minutoj. 56 00:02:10,240 --> 00:02:11,984 Mi ne povas respondi ene de paro horoj. 57 00:02:11,984 --> 00:02:14,400 Sed mi povas garantii vin, se vi Retpoŝtadreso min, se vi nomus min, 58 00:02:14,400 --> 00:02:17,404 tekston mi, mi respondos ene 24 horoj. 59 00:02:17,404 --> 00:02:19,820 Ofte, Mi respondas antaux ke, ĉar mi komprenas 60 00:02:19,820 --> 00:02:23,900 ke ĉiuj havas kelkajn problemojn, kaj vi volas, ke via respondoj 61 00:02:23,900 --> 00:02:26,110 esti respondis tre rapide. 62 00:02:26,110 --> 00:02:28,945 >> Tamen, se vi nomas min 30 minutoj antaŭ 63 00:02:28,945 --> 00:02:31,570 ke peco kiu ŝuldiĝas ĵaŭdoj night-- simili, Andi, helpu min, 64 00:02:31,570 --> 00:02:35,380 Mi ne started-- mi donu vi ke ŝultron por plori sur. 65 00:02:35,380 --> 00:02:41,520 Sed ĝi povas esti tempo por pripensi Kiel fari tion venontan fojon. 66 00:02:41,520 --> 00:02:44,040 BONE. 67 00:02:44,040 --> 00:02:44,944 Oops. 68 00:02:44,944 --> 00:02:45,850 Kiel mi revenu? 69 00:02:45,850 --> 00:02:48,140 Tie ni marŝos. 70 00:02:48,140 --> 00:02:52,310 >> Do en ĉi tiu kurso, ni havas ton de subteno por ĉiuj. 71 00:02:52,310 --> 00:02:54,640 Krom simple sekcioj tie, kiun vi 72 00:02:54,640 --> 00:02:57,000 ĉiusemajne akiri elspezi 90 mirindaj minutoj kun mi, 73 00:02:57,000 --> 00:02:58,330 ni ankaŭ havas oficejon horoj. 74 00:02:58,330 --> 00:03:01,021 Kiel multaj el vi infanoj havas jam estis al oficejo horoj helpon? 75 00:03:01,021 --> 00:03:01,520 Granda. 76 00:03:01,520 --> 00:03:05,700 Tio estas vere bona vidi, ĉar ni havas kana super 45 TAS kaj CAS 77 00:03:05,700 --> 00:03:11,780 trejnitaj por ĉi tiu kurso ke estas ĉi tie por helpi vin uloj kun via psets. 78 00:03:11,780 --> 00:03:14,580 >> Lunde ili estas tenitaj en la TEAL klasĉambro en 17 Hill House tie 79 00:03:14,580 --> 00:03:15,350 ĉe Yale. 80 00:03:15,350 --> 00:03:17,349 Mardon kaj ĵaŭdon, ili estas tenitaj en commons. 81 00:03:17,349 --> 00:03:20,010 8:00 al 11:00 preskaux ĉiun labortagon. 82 00:03:20,010 --> 00:03:21,620 Envenu, eliru. 83 00:03:21,620 --> 00:03:24,030 Ajna problemo, neniu problem-- nur trafis en, 84 00:03:24,030 --> 00:03:26,650 kaj tiam ni helpos vin kun tio. 85 00:03:26,650 --> 00:03:31,640 >> Due, krom oficejo horoj kaj sekcioj, ni havas ankaŭ cortometrajes. 86 00:03:31,640 --> 00:03:35,930 Ĉu iu ajn vidis paron de la shorts aŭ walkthroughs en la vídeos 87 00:03:35,930 --> 00:03:36,750 sur la retejo? 88 00:03:36,750 --> 00:03:37,250 BONE. 89 00:03:37,250 --> 00:03:39,510 Do ili estas vere, vere utila. 90 00:03:39,510 --> 00:03:42,470 Niaj amindaj Harvard produktado Teamo super tie sur tiu lernejo 91 00:03:42,470 --> 00:03:47,910 ĝis nordo, ili filmis kaj produktita tiuj nekredeblaj walkthrough filmetoj. 92 00:03:47,910 --> 00:03:52,290 >> Ili prenos vin paŝo de paŝo tra kiel iri pri solvi problemon. 93 00:03:52,290 --> 00:03:56,340 Ofte, se vi konfuzis pri simpla koncepto, unuopan koncepton, 94 00:03:56,340 --> 00:03:59,780 rigardu, ĉar ni probable havas mallonga ie en ĝi sur nia retejo. 95 00:03:59,780 --> 00:04:03,800 Kaj estas kutime granda rimedo serĉi kiam vi estas unua 96 00:04:03,800 --> 00:04:06,510 perdita sur kiel pritrakti problemon. 97 00:04:06,510 --> 00:04:09,750 >> Trie, ni ankaŭ havas study50 kaj reference50. 98 00:04:09,750 --> 00:04:15,650 Do studi 50 sur la retejo estas nur ligon. 99 00:04:15,650 --> 00:04:21,500 Ĝi estas, laŭ mi, study.cs50.net aŭ io simila. 100 00:04:21,500 --> 00:04:22,860 Nur Guglas ĝin. 101 00:04:22,860 --> 00:04:24,229 Ni havas multajn lumbildojn preparita. 102 00:04:24,229 --> 00:04:26,770 Ni havas multajn shorts kaj walkthroughs-- aferojn ĉiuj kompilita 103 00:04:26,770 --> 00:04:31,070 tre agrabla kaj pura, por ke vi infanoj ĉiuj trarigardi, vidi ajnan konceptoj 104 00:04:31,070 --> 00:04:32,860 ke vi estas konfuzita pri. 105 00:04:32,860 --> 00:04:35,920 Estus probable esti kovrita tien en study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- similaj. 107 00:04:37,640 --> 00:04:41,510 Ni havas multajn diversajn notojn _readily_ havebla por via dispono. 108 00:04:41,510 --> 00:04:44,450 Kaj laste, ni havas kio estas nomata CS50 Diskutu, 109 00:04:44,450 --> 00:04:48,082 forumon en kiu, se la nokto antaŭ vi faras viajn problemojn, diru, 110 00:04:48,082 --> 00:04:49,880 vi havas demandon. 111 00:04:49,880 --> 00:04:52,340 Ensalutu por CS50 Diskutu. 112 00:04:52,340 --> 00:04:53,190 Sendi vian demandon. 113 00:04:53,190 --> 00:04:55,820 Kaj tiam unu el la hundreds-- eble, thousands-- de kunlernantoj 114 00:04:55,820 --> 00:04:57,960 prenante ĉi klaso linio estos ensaluti. 115 00:04:57,960 --> 00:05:01,182 Kaj eble iu povas akiri vian respondon antaŭ TA povas. 116 00:05:01,182 --> 00:05:03,390 Ĝi estas esence nur reta forumo ke ni povas ĉiuj 117 00:05:03,390 --> 00:05:04,556 uzi diskuti niajn problemojn. 118 00:05:04,556 --> 00:05:06,483 Tio estas mojosa. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> BONE. 121 00:05:11,550 --> 00:05:13,220 Do problemo aroj. 122 00:05:13,220 --> 00:05:17,840 Ni estas sur bone dika de problemo aro du. 123 00:05:17,840 --> 00:05:20,570 Multaj el ni jam baraktis tra problemo starigis unu. 124 00:05:20,570 --> 00:05:24,460 Ni jam scias ke eble atendas por la lasta nokto faru vian pset 125 00:05:24,460 --> 00:05:28,170 ne estas la plej lerta afero fari en CS50. 126 00:05:28,170 --> 00:05:32,380 >> Konsiloj kaj konsiloj esence por sukceso legas la tutan specifon. 127 00:05:32,380 --> 00:05:36,270 Kiel multaj de vi jam legi la spec por pset 2? 128 00:05:36,270 --> 00:05:36,770 BONE. 129 00:05:36,770 --> 00:05:39,840 Tio solida kvanto. 130 00:05:39,840 --> 00:05:43,210 Mi scias vin uloj verŝajne rekonis nuntempe la especificaciones estas vere longa. 131 00:05:43,210 --> 00:05:45,700 Ili estas vere, vere longa. 132 00:05:45,700 --> 00:05:49,630 >> Estas vere malfacile legi ĉiun linion de kiu atente vorton post vorto. 133 00:05:49,630 --> 00:05:52,780 Vi volas nur senkremigi al kie ĝi diras vin fari ion. 134 00:05:52,780 --> 00:05:54,459 Mi povas garantii al vi, ne faru tion. 135 00:05:54,459 --> 00:05:56,750 Se vi faros tion, vi probable iranta perdiĝi ie 136 00:05:56,750 --> 00:05:58,458 kie rakontas vin kiel komenci problemo 137 00:05:58,458 --> 00:06:01,140 aŭ ĝi rakontas al vi kion al nomo via problemo aŭ ĝi rakontas vin, 138 00:06:01,140 --> 00:06:03,720 tiu estas probable la plej bona maniero komenci fari vian problemon. 139 00:06:03,720 --> 00:06:05,050 Kaj tiam vi estos perdita. 140 00:06:05,050 --> 00:06:08,219 >> Kiam vi provas legi viajn Spec duonvoje tra, 141 00:06:08,219 --> 00:06:10,510 multajn el la gravaj information-- en kiuj vi ne 142 00:06:10,510 --> 00:06:12,260 tuj povos vere aliro. 143 00:06:12,260 --> 00:06:13,219 Do legu la tutan specifon. 144 00:06:13,219 --> 00:06:15,468 Provu legi la tutan spec antaŭ ol vi atingos sekcio, 145 00:06:15,468 --> 00:06:17,360 ĉar tiam, kiam ni paroli pri la pset, 146 00:06:17,360 --> 00:06:21,070 ni ĉiuj povas havi ideon de kio okazas. 147 00:06:21,070 --> 00:06:25,169 >> Due, tiu estas koncepto ke mi ŝatos referenci 148 00:06:25,169 --> 00:06:26,710 multe dum la kurso semestro. 149 00:06:26,710 --> 00:06:30,070 Sed esence, ni renkonte duonvoje, dekstra? 150 00:06:30,070 --> 00:06:33,970 Mi, kiel via TA kaj Jason kiel kurson direktisto kaj Scaz kiel via profesoro 151 00:06:33,970 --> 00:06:37,120 kaj David kiel vian instruiston kaj ĉiuj la aliaj amindaj TAS en tiu kurso, 152 00:06:37,120 --> 00:06:39,830 helpantoj en ĉi kompreneble ni faros nian eblon 153 00:06:39,830 --> 00:06:42,965 por certigi ke vi havas inklinon ĝis sukcesi en tiu kurso. 154 00:06:42,965 --> 00:06:43,840 Ni tenos sekcio. 155 00:06:43,840 --> 00:06:44,870 Ni tenos oficejo horoj. 156 00:06:44,870 --> 00:06:47,087 Ni respondos vian telefonon alvokoj, respondos viajn retpoŝtojn, 157 00:06:47,087 --> 00:06:49,670 fari ĉion ni povas fari certe via demandoj estas responditaj. 158 00:06:49,670 --> 00:06:51,460 >> Tamen, helpi nin ankaŭ. 159 00:06:51,460 --> 00:06:52,450 Renkontu nin duonvoje. 160 00:06:52,450 --> 00:06:56,040 Se vi venas al oficejo horoj ne irinte al sekcio, ne 161 00:06:56,040 --> 00:07:02,060 vidinte la prelegoj, ne havante ideon kio daŭriĝas, estu simila, helpu min. 162 00:07:02,060 --> 00:07:04,350 Mi tuj estos kiel, nu, mi bedaŭras. 163 00:07:04,350 --> 00:07:06,410 Eble tempo por pruntedoni ke ŝultron por plori sur, 164 00:07:06,410 --> 00:07:08,959 ĉar mi ne certas kion mi povas fari helpi vin 165 00:07:08,959 --> 00:07:12,000 se vi ne provu almenaŭ helpon mem iomete en la komenco. 166 00:07:12,000 --> 00:07:12,910 Renkontu nin duonvoje. 167 00:07:12,910 --> 00:07:15,020 Vi scias, bonvolu veni preta respondi kaj akiri 168 00:07:15,020 --> 00:07:16,353 preta engaĝiĝi en la materialo. 169 00:07:16,353 --> 00:07:19,342 Ĝi faras aferojn tiel facile por ĉiuj implikitaj. 170 00:07:19,342 --> 00:07:22,970 Jes, tio estas bela multe ĝin. 171 00:07:22,970 --> 00:07:23,720 >> Gradiganta. 172 00:07:23,720 --> 00:07:29,250 Tial en la syllabus, estas sufiĉe detala koncerne al kiel ni lernojaro. 173 00:07:29,250 --> 00:07:32,440 Sed esence, la rompo en tiu estas 50% de via lernojaro 174 00:07:32,440 --> 00:07:34,530 Estos la psets, kiu belas, ĉar tio estas 175 00:07:34,530 --> 00:07:37,400 kie vi estas elspezanta la vasta plimulton de via kurso tempon sur. 176 00:07:37,400 --> 00:07:39,854 Kvizojn 40%, kaj via fina projekto estos 10%. 177 00:07:39,854 --> 00:07:42,520 Estos du kvizojn ĉie la kurson de la semestro. 178 00:07:42,520 --> 00:07:47,050 Mi kredas ke la tempoj kaj datoj estas Ankaŭ listigita sur la syllabus. 179 00:07:47,050 --> 00:07:49,210 >> La maniero kiun ni volas, estos grading vian psets 180 00:07:49,210 --> 00:07:53,930 estas ke ni havas esence kvar valoroj kiujn ni atribuas al ĉiu lernojaro. 181 00:07:53,930 --> 00:07:57,250 Ni havas valoron de amplekso, korektecon dezajno kaj stilo. 182 00:07:57,250 --> 00:08:01,530 Do kiel vi vidas, jen speco de nia formulo por kalkuli psets. 183 00:08:01,530 --> 00:08:03,640 Tri ni doni la plej pezo al korektecon 184 00:08:03,640 --> 00:08:06,140 ĉar evidente via trejnisto devus esti provante por la kazoj 185 00:08:06,140 --> 00:08:08,480 ke ni volas ĝin por elprovi por. 186 00:08:08,480 --> 00:08:11,000 >> Vi uloj ĉiuj havas check50 je via dispono. 187 00:08:11,000 --> 00:08:13,730 Ĝi estas tre utila funkcio ke vi uloj povas ĉiuj 188 00:08:13,730 --> 00:08:17,560 alŝuti vian kodon por niaj serviloj, kie ni kontrolos ĝin por vi. 189 00:08:17,560 --> 00:08:20,800 Kaj vi vidis tiujn frowny vizaĝoj, smiley edroj. 190 00:08:20,800 --> 00:08:22,119 Ili estas vere, vere utila. 191 00:08:22,119 --> 00:08:23,910 Bonvolu ne esti la studento kiuj ŝatas tries 192 00:08:23,910 --> 00:08:26,230 al hardcode en ĉiuj respondoj al ili. 193 00:08:26,230 --> 00:08:30,050 Mi sendube vidis pset kie iu vidis ĉiujn valorojn de check50 194 00:08:30,050 --> 00:08:33,429 kaj ili nur malfacile kodita in-- se tiun numeron, presi tiun numeron. 195 00:08:33,429 --> 00:08:35,080 Se tiu nombro, presi tiun numeron. 196 00:08:35,080 --> 00:08:36,090 Ne faru tion. 197 00:08:36,090 --> 00:08:39,360 >> Kvankam teknike check50 pravas, 198 00:08:39,360 --> 00:08:41,809 via maniero de solvi la problemo ne estas ĝentila. 199 00:08:41,809 --> 00:08:45,770 Do simple uzu check50 ŝpareme. 200 00:08:45,770 --> 00:08:48,497 Sed ankaŭ fari certe ke vi kompreni kiel ĝi estas funkcianta, 201 00:08:48,497 --> 00:08:50,580 la programo funkcias krom check50, 202 00:08:50,580 --> 00:08:53,120 ĉar ni ne povas elprovi ĉiun ebla kazo de check50. 203 00:08:53,120 --> 00:08:55,440 Ni estos provi kelkajn. 204 00:08:55,440 --> 00:09:00,390 >> Dezajno estas esence, kiel bone desegnita estas via kodo? 205 00:09:00,390 --> 00:09:04,150 Se vi estas kopio-glui multoblaj linioj de kodo multfoje. 206 00:09:04,150 --> 00:09:06,960 Eble vi ne havas tre la bona dezajno en via kodo. 207 00:09:06,960 --> 00:09:09,470 Eble estas tempo aldoni ke buklo. 208 00:09:09,470 --> 00:09:12,090 Esence, ĉi tie estas nur ĉiuj pri provanta fari vian kodon, 209 00:09:12,090 --> 00:09:17,010 provas skribi vian kodon kiel kompetente kiam ebla por ke via programo kuras 210 00:09:17,010 --> 00:09:19,630 kiel rapide kiel ebla. 211 00:09:19,630 --> 00:09:20,996 >> Laste, ni havas stilon. 212 00:09:20,996 --> 00:09:24,360 Do stilo estas speco de arbitra, subjektiva termino. 213 00:09:24,360 --> 00:09:27,470 Mi scias nin oficiale havas stilon 50 gvidilo por CS50, 214 00:09:27,470 --> 00:09:30,050 kie informas vin, ho, vi devus havi spacon tie. 215 00:09:30,050 --> 00:09:32,220 Vi devus speco de formato via kodo tiamaniere. 216 00:09:32,220 --> 00:09:34,070 Vi devus nomi aferojn tiamaniere. 217 00:09:34,070 --> 00:09:38,180 >> Mi ne vere zorgas, per, kiom vi elektas stiligi vian kodon, 218 00:09:38,180 --> 00:09:39,840 Tiel longe kiel vi restas konsekvenca. 219 00:09:39,840 --> 00:09:43,732 Ekzemple, se vi ŝatas lasi spacon post via kvar 220 00:09:43,732 --> 00:09:45,690 antaŭ viajn kvar buklo, nur fari tion ĉiufoje. 221 00:09:45,690 --> 00:09:46,523 Ne ia faru. 222 00:09:46,523 --> 00:09:47,730 Ne faru tion alifoje. 223 00:09:47,730 --> 00:09:51,046 Se vi ŝatus teni krispa krampoj spaco certa maniero, 224 00:09:51,046 --> 00:09:52,170 nur ĉiam fari ĝin tiel. 225 00:09:52,170 --> 00:09:54,628 Ne ia fari ĝin ie tie kaj ie ne ekzistas. 226 00:09:54,628 --> 00:09:57,010 Kiam ni grading, ĝi estas vere malfacila 227 00:09:57,010 --> 00:09:59,420 se mi havas nenian ideon kiel vi formati viajn kodo, 228 00:09:59,420 --> 00:10:02,064 aferoj estas freneza kaj maloportune. 229 00:10:02,064 --> 00:10:04,980 Se vi nur teni ĝin kohera, estas multe pli facila por mi kiel la granda 230 00:10:04,980 --> 00:10:06,310 por povi legi vian kodo. 231 00:10:06,310 --> 00:10:09,393 Ĝi estas multe pli facila por vi kiel studento povi trarigardi viajn kodo 232 00:10:09,393 --> 00:10:11,720 kaj vidi kio estas malbone kun ĝi oblikvo kial ekzistas temoj. 233 00:10:11,720 --> 00:10:15,740 Stilo estas unu el la plej facilaj aferoj vi infanoj povas fari por akiri plenan partituroj. 234 00:10:15,740 --> 00:10:18,770 Esence, se vi nur zorgas, se vi pagas kvin minutojn de atento 235 00:10:18,770 --> 00:10:22,760 al viaj kodo ĉiusemajne, vi devus esti pleniĝas stilo punktoj. 236 00:10:22,760 --> 00:10:26,020 >> Laste, ni havas kio nomiĝas la multiplikanto de medio. 237 00:10:26,020 --> 00:10:28,890 Scope-- Mi scias ke estas granda vorto, speciale en ĉi tiu klaso. 238 00:10:28,890 --> 00:10:31,030 Sed amplekso, cxiuj rimedoj estas ke vi estas provanta 239 00:10:31,030 --> 00:10:33,670 la psets al la plej bona de via kapableco. 240 00:10:33,670 --> 00:10:37,180 Se vi turnas en tri el de via kvar problemojn 241 00:10:37,180 --> 00:10:39,460 kaj eĉ ne provos la lasta, vi probable 242 00:10:39,460 --> 00:10:41,630 tuj perdos iuj punktoj sur medio. 243 00:10:41,630 --> 00:10:44,560 >> Eĉ se vi simple komenci la problemon, faru vian eblon por marŝi tra ĝi. 244 00:10:44,560 --> 00:10:47,691 Eĉ se ĝi ne funkcias, turni ĝin en, ĉar tio montras kaj pruvas al 245 00:10:47,691 --> 00:10:50,190 al ni, ke vi provas, ke vi provis la problemo aro 246 00:10:50,190 --> 00:10:51,430 al la plej bona de via kapableco. 247 00:10:51,430 --> 00:10:53,800 Kaj tiam ni povas doni al vi plena punktoj por medio. 248 00:10:53,800 --> 00:10:58,715 >> Medio estas ankaŭ tre grava por kiam ni paroli pri la plej malalta pset partituro guto. 249 00:10:58,715 --> 00:11:02,010 Do dum de la semestro, vi infanoj havas naŭ psets. 250 00:11:02,010 --> 00:11:05,340 Kaj ni efektive elgutigos la plej malalta partituro el tiuj naŭ, 251 00:11:05,340 --> 00:11:07,670 sed nur se vi havas plenan atingon punktoj. 252 00:11:07,670 --> 00:11:11,120 >> Do se vi turnas en nekompleta pset, bedaŭrinde, ni ne povas faligi tiu, 253 00:11:11,120 --> 00:11:13,540 ĉar via atingo punktoj ne estis kompletigita. 254 00:11:13,540 --> 00:11:16,570 Do eĉ se vi havas la teruran semajno kie vi mortas kaj vi estas malsana 255 00:11:16,570 --> 00:11:20,040 aŭ via hundo mortas, via kato mortas, kaj vi superŝarĝita kun hejmtasko, 256 00:11:20,040 --> 00:11:21,074 nur provu la pset. 257 00:11:21,074 --> 00:11:22,490 Ĉu ĝin la plej bona de via kapableco. 258 00:11:22,490 --> 00:11:23,840 Se ĝi ne funkcias, ĝi ne gravas. 259 00:11:23,840 --> 00:11:24,506 Nur turni ĝin en. 260 00:11:24,506 --> 00:11:26,590 Almenaŭ ni povas doni vi indikas por peno. 261 00:11:26,590 --> 00:11:28,510 >> A por fortostreĉo en tiu klaso. 262 00:11:28,510 --> 00:11:30,170 Almenaŭ plej malalta partituro guto por peno. 263 00:11:30,170 --> 00:11:32,354 Do jes. 264 00:11:32,354 --> 00:11:33,270 Tio estas sufiĉe multe ĝin. 265 00:11:33,270 --> 00:11:36,521 Ĉu iu havas demandojn tiom malproksime sur kiel ni noton en la klaso? 266 00:11:36,521 --> 00:11:37,187 Aŭ iu el tiuj? 267 00:11:37,187 --> 00:11:41,220 Ajna el tiuj tiel far-- sekcioj, oficejo horoj? 268 00:11:41,220 --> 00:11:41,720 Malvarmeta. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 BONE. 271 00:11:47,800 --> 00:11:51,260 >> Do tiu estas temo kiu ne unu vere ŝatas paroli. 272 00:11:51,260 --> 00:11:53,084 Mi ne vere ŝatas paroli pri ĝi. 273 00:11:53,084 --> 00:11:55,250 Vi uloj ne vere volas aŭdi min paroli pri ĝi. 274 00:11:55,250 --> 00:11:57,690 Sed bedaŭrinde, ni ĉiuj devas paroli pri ĝi. 275 00:11:57,690 --> 00:12:00,110 David pasigis 20 minutojn prelegi parolas ĝin. 276 00:12:00,110 --> 00:12:02,580 Kaj kiu estas la subjekto de akademia honesteco. 277 00:12:02,580 --> 00:12:08,110 >> Do ni ĉiuj ĉi tie jam probable verkita eseo sometime en niaj Yale kariero. 278 00:12:08,110 --> 00:12:11,800 Ni probable akiris diskutpaĝo kie ni havas Oni diris al ne plagiar nia eseo, 279 00:12:11,800 --> 00:12:13,940 ĉar tiu laboro estas ne nia. 280 00:12:13,940 --> 00:12:18,109 En komputiko, ni havas samspecan koncepto. 281 00:12:18,109 --> 00:12:20,150 Ĉiuj laboro ke vi sendas, ĉiuj kodo kiun vi skribas 282 00:12:20,150 --> 00:12:21,900 estu kodo ke vi skribis. 283 00:12:21,900 --> 00:12:24,280 Devus ne esti kodo kiun vi havas kopiita el iu alia loko. 284 00:12:24,280 --> 00:12:26,777 Devus ne esti kodo ke vi googled kaj plopped en 285 00:12:26,777 --> 00:12:28,360 kaj vi ne vere scias se ĝi funkcias. 286 00:12:28,360 --> 00:12:32,440 Vi ia havas senton de kio ĝi estas faranta sed ne vere. 287 00:12:32,440 --> 00:12:36,562 Kiam en dubo, esence, ĝi estas nur racia. 288 00:12:36,562 --> 00:12:38,520 Sur nia Syllabus, ni havas tuta listo de aferoj 289 00:12:38,520 --> 00:12:40,560 ni vidas kiel racia kontre ne racia. 290 00:12:40,560 --> 00:12:43,820 >> Ekzemple, racia Estas vi kaj via amiko 291 00:12:43,820 --> 00:12:47,360 diskuti kion la plej bona vojo iri pri logike solvi problemon. 292 00:12:47,360 --> 00:12:48,910 Tio sufiĉe racia. 293 00:12:48,910 --> 00:12:53,244 Kio ne estus racia estas se vi uloj kolektis, tajpis la saman kodon, 294 00:12:53,244 --> 00:12:54,410 kaj turniĝis en la saman kodon. 295 00:12:54,410 --> 00:12:56,302 Tio ne racia. 296 00:12:56,302 --> 00:12:57,510 Sama afero, speco de eseo. 297 00:12:57,510 --> 00:12:59,290 Se vi volas diskuti kun via amiko, hej, 298 00:12:59,290 --> 00:13:00,220 jen kion mi volas skribi pri. 299 00:13:00,220 --> 00:13:02,500 Tiuj estas la paŝoj mi volas preni skribi pri ĝi, granda. 300 00:13:02,500 --> 00:13:03,208 Tio estas mirinda. 301 00:13:03,208 --> 00:13:04,790 Bonvolu kunlabori kun aliaj. 302 00:13:04,790 --> 00:13:06,540 Se vi uloj komenci skribi la samon, 303 00:13:06,540 --> 00:13:10,020 envenu en la sama eseo, jen malpli OK. 304 00:13:10,020 --> 00:13:13,200 Do kiam en dubo, simple ne faru. 305 00:13:13,200 --> 00:13:16,940 >> Tie, ni en CS50, ni havas skriptojn ke run aŭtomatigi testi 306 00:13:16,940 --> 00:13:21,740 Ne nur la praveco de via kodo, sed ankaŭ la unikeco de via kodo. 307 00:13:21,740 --> 00:13:25,920 Do bonvolu ne meti nin en la pozicio devi raporti vian kazon al EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Plaĉi nur por ĉiuj, ni nur fari tiun mirindan sperton. 309 00:13:31,110 --> 00:13:33,600 Ĉiuj lernas pli bone, ni ĉiuj estas pli feliĉaj, 310 00:13:33,600 --> 00:13:37,926 kaj ni estas ĉiuj starigis al sukcesos en ĉi tiu kurso. 311 00:13:37,926 --> 00:13:39,800 Io, kio tre unika pri ĉi klaso 312 00:13:39,800 --> 00:13:42,660 ke mi kredas ke ĉiuj devus vere atentu estas ke ni havas 313 00:13:42,660 --> 00:13:44,930 kio nomiĝas la bedaŭro klaŭzo en nia syllabus. 314 00:13:44,930 --> 00:13:50,010 Do esence, ene 72 horoj, se vi kredas vin faris ion 315 00:13:50,010 --> 00:13:53,240 vi ne estas vere certa ke ĝi taŭga, bonvolu veni al ni. 316 00:13:53,240 --> 00:13:57,220 Ni promesas al vi, ke ene 72 horoj ni pritraktos la kazo nin 317 00:13:57,220 --> 00:13:59,820 sen referenco al pli alta aŭtoritato en la administrado. 318 00:13:59,820 --> 00:14:03,100 >> Do se vi venos al mi kaj diros: Andi, hej, mi vere bedaŭras, 319 00:14:03,100 --> 00:14:07,620 sed mi kredas, ke estas paro linioj en mia kodo hieraux ke mi specon de googled, 320 00:14:07,620 --> 00:14:10,120 deiris de Stack Overflow, kopiu kaj batitaj, 321 00:14:10,120 --> 00:14:13,680 kaj mi estas vere, vere bedaŭras pri tio, lasu min scii. 322 00:14:13,680 --> 00:14:16,900 Bonvolu ne nur lasi ĝin Fester kaj ĝuste esperas ke mi kaptos ĝin. 323 00:14:16,900 --> 00:14:17,784 Ni kaptos lin. 324 00:14:17,784 --> 00:14:18,450 Nur venu al mi. 325 00:14:18,450 --> 00:14:20,520 Sciigu min ene 72 horoj. 326 00:14:20,520 --> 00:14:22,240 Ni eltrovi solvon. 327 00:14:22,240 --> 00:14:26,679 Kaj ni promesos ke ni ne rilatas al universitato aŭtoritatoj esence. 328 00:14:26,679 --> 00:14:29,220 Do estas en via plej bona intereso nur esti honesta kun ĉiuj 329 00:14:29,220 --> 00:14:31,720 implikita en la kurso. 330 00:14:31,720 --> 00:14:34,630 >> BONE. 331 00:14:34,630 --> 00:14:35,240 BONE. 332 00:14:35,240 --> 00:14:37,800 Do nun, rapide antaŭ Mi pluiri, ĉu iu 333 00:14:37,800 --> 00:14:42,670 havas demandojn pri loĝistiko sur kiom kursoj ni tuj kuros, 334 00:14:42,670 --> 00:14:45,982 kiom sekcioj iras kuri, iu el kiuj? 335 00:14:45,982 --> 00:14:46,711 BONE. 336 00:14:46,711 --> 00:14:47,210 Yeah. 337 00:14:47,210 --> 00:14:48,126 >> Spektantaro: [inaudible]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI PENG: Yeah. 340 00:14:51,080 --> 00:14:54,850 Do quizzes-- kiom multaj el vi estas en la lundo / merkredo sekcio? 341 00:14:54,850 --> 00:14:56,700 Kiom da de vi estas en la mardo / ĵaŭdo? 342 00:14:56,700 --> 00:14:58,550 OK, do estas solida disigo tie. 343 00:14:58,550 --> 00:15:00,900 Do la maniero ke ni kuras ĝin ĉe Yale estas ke ni 344 00:15:00,900 --> 00:15:04,040 tuj havas du apartajn quizzes-- unu por ĉiu section-- ke 345 00:15:04,040 --> 00:15:06,160 estos prenita dum klaso. 346 00:15:06,160 --> 00:15:09,310 Mi kredas ke estas oktobro, fine de oktobro, io simila, kiel unu semajno 347 00:15:09,310 --> 00:15:10,794 de la kvizo. 348 00:15:10,794 --> 00:15:11,960 Jes, do simple venu al klaso. 349 00:15:11,960 --> 00:15:13,920 Sur tiu lundo aŭ merkredo, vi prenos la kvizo. 350 00:15:13,920 --> 00:15:16,336 Sur tiu mardo aŭ ĵaŭdo, vi prenos malsaman kvizo. 351 00:15:16,336 --> 00:15:18,570 Sed la sama materialo estos kovrita. 352 00:15:18,570 --> 00:15:19,160 Yeah. 353 00:15:19,160 --> 00:15:20,660 Bona demando. 354 00:15:20,660 --> 00:15:21,160 Yeah. 355 00:15:21,160 --> 00:15:23,260 >> Spektantaro: Kie ni iri kontroli niajn karakterojn? 356 00:15:23,260 --> 00:15:23,926 >> ANDI PENG: Yeah. 357 00:15:23,926 --> 00:15:28,420 Do mi estos sendo de retpoŝto ajn ĉiusemajne 358 00:15:28,420 --> 00:15:31,460 kiam kvizojn estas graded-- aŭ, Mizera, kiam psets estas gradita. 359 00:15:31,460 --> 00:15:34,120 Psets kutime turnis tra tagmezo aŭ vendredo. 360 00:15:34,120 --> 00:15:37,540 Do mi promesas, ke mi provos atingi ilin reen al vi 361 00:15:37,540 --> 00:15:40,000 per la tagmezo de la sekvanta vendredo. 362 00:15:40,000 --> 00:15:44,950 >> Kiam ajn mi lernojaro oni pset, mi sendos eksteren sciigo sur la lernojaro libron 363 00:15:44,950 --> 00:15:47,070 kiu rakontas al vi viajn partituro videblas rete. 364 00:15:47,070 --> 00:15:52,022 Do ĝuste tiu semajno, post kiam mi fini grading lasta semajno psets, 365 00:15:52,022 --> 00:15:54,230 vi infanoj ricevos retpoŝtaĵon sciigo diranta vin, 366 00:15:54,230 --> 00:15:55,870 hey tiu estas kie vi iri por vidi viajn kvalifikojn. 367 00:15:55,870 --> 00:15:57,680 Kaj vi povas vidi ĉiu rompo de via gradoj. 368 00:15:57,680 --> 00:15:58,555 Vi povas vidi komentoj. 369 00:15:58,555 --> 00:16:00,360 Ho, rapide afero. 370 00:16:00,360 --> 00:16:03,060 La rimarka sekcio en la granda libro estas kie Mi verŝajne 371 00:16:03,060 --> 00:16:05,300 pasigas la plimulton de mia tempo gradiganta. 372 00:16:05,300 --> 00:16:07,094 Do unu afero, ke estas vere grava kiam 373 00:16:07,094 --> 00:16:09,010 you guys vidanta Via gradoj sur via psets 374 00:16:09,010 --> 00:16:11,400 ne nur rigardanta ĉe la fizikaj partituro 375 00:16:11,400 --> 00:16:14,630 sed ankaŭ preni tempon por vere legis mian komentojn. 376 00:16:14,630 --> 00:16:17,820 >> Ofte kiu donas vin retrosciigo sur kiom vi solvi problemon. 377 00:16:17,820 --> 00:16:20,480 Se vi devas fari ion iomete pli bone, 378 00:16:20,480 --> 00:16:24,080 konstrua kritiko kutimas bona donita en tiuj komentoj sekcio. 379 00:16:24,080 --> 00:16:26,950 Do bonvolu, bonvolu, mi tuj elspezi tempon skribi komentojn. 380 00:16:26,950 --> 00:16:30,440 Bonvolu, mi estus vere dankos se vi infanoj estus legi tiujn komentojn. 381 00:16:30,440 --> 00:16:31,170 BONE. 382 00:16:31,170 --> 00:16:34,150 Malvarmeta. 383 00:16:34,150 --> 00:16:34,680 >> Bone. 384 00:16:34,680 --> 00:16:40,680 Do ni tuj komencos parolante kaj simple revizii rapide 385 00:16:40,680 --> 00:16:45,040 iuj de la materialo de semajno nulo ĝuste tial ni estas 386 00:16:45,040 --> 00:16:48,760 sur la dekstra paĝo por komencante ĉi tiu semajno problemojn. 387 00:16:48,760 --> 00:16:52,600 Do la tempo buklo estas de la tri tipoj de cikloj 388 00:16:52,600 --> 00:16:54,510 ni diskutis pli frue en ĉi tiu klaso. 389 00:16:54,510 --> 00:16:57,060 >> Dum buklo esence Estas skribita en la sintakso 390 00:16:57,060 --> 00:17:00,666 kie, dum certa kondiĉo, fari tion multfoje, dekstra? 391 00:17:00,666 --> 00:17:02,040 Pensu pri ĝi en ĉi grafikaĵo tie. 392 00:17:02,040 --> 00:17:04,780 Vi tuj komencos je certa punkto en via kodo. 393 00:17:04,780 --> 00:17:09,030 Vi tuj eniri la buklo kondiĉo if-- Mi ne know-- x estas malpli ol unu. 394 00:17:09,030 --> 00:17:11,677 >> Se tio estas vera, vi tuj ekzekuti la buklo korpo. 395 00:17:11,677 --> 00:17:14,010 Kaj vi tuj tenas faranta ke denove, denove, denove, 396 00:17:14,010 --> 00:17:17,900 super kaj over-- tial ĝi estas loop-- ĝis via kondiĉo iĝas 397 00:17:17,900 --> 00:17:19,079 falsa. 398 00:17:19,079 --> 00:17:22,140 Do tiamaniere, dum buklo estas unu el la simplaj manieroj 399 00:17:22,140 --> 00:17:25,619 skribi omnaspeca kondiĉo ke bezonas ripeti denove kaj denove kaj super. 400 00:17:25,619 --> 00:17:28,109 Nur esti zorgema kiam ajn vi skribas ia buklo 401 00:17:28,109 --> 00:17:32,140 ke vi havas eliron kondiĉo kiel bone kiel ĝisdatigo al ĉiu kiu 402 00:17:32,140 --> 00:17:36,714 Estas tiel ke via buklo ne nur alveturi kaj super senfine. 403 00:17:36,714 --> 00:17:38,630 En ajna kazo, vi tuj voli certigi 404 00:17:38,630 --> 00:17:42,670 ke vi ŝanĝas iun aspekton de via kodo aŭ ĉe la fino de la ciklo 405 00:17:42,670 --> 00:17:46,680 nur certigi ke vi havas vojon progresi al la kondiĉo 406 00:17:46,680 --> 00:17:48,400 ke vi volas renkonti al fino. 407 00:17:48,400 --> 00:17:50,239 Ĉu tio havas sencon por ĉiuj? 408 00:17:50,239 --> 00:17:52,530 Ni nur ne volas esti kaptitaj en tiu spiralo kie 409 00:17:52,530 --> 00:17:55,710 ni iros ĉirkaŭ kaj ĉirkaŭ kaj ekzistas neniu maniero rompi la buklo. 410 00:17:55,710 --> 00:17:58,844 Kaj ĉiu buklo esence havas maniero fari tion. 411 00:17:58,844 --> 00:17:59,344 BONE. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Due, multaj de vi en via Mario psets 414 00:18:06,060 --> 00:18:08,910 verŝajne devis dungi tiun tipon de buklo. 415 00:18:08,910 --> 00:18:11,802 Ĝi nomiĝas do dum buklo. 416 00:18:11,802 --> 00:18:14,510 Unue, oni povas diri al mi kion la diferenco inter do 417 00:18:14,510 --> 00:18:16,586 dum buklo kaj dum buklo estas? 418 00:18:16,586 --> 00:18:17,086 Yeah. 419 00:18:17,086 --> 00:18:21,030 >> Publiko: The do dum buklo kuras unue [inaudible]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI PENG: Jes, ĝuste. 421 00:18:22,120 --> 00:18:27,130 Do fari dum buklo ĉiam faras ajn estas interne la do, ene de la krampoj 422 00:18:27,130 --> 00:18:30,520 ekzistas kaj agas kondiĉo antaŭ kontrolanta por the-- bedaŭras, 423 00:18:30,520 --> 00:18:32,940 faras ke kodo antaŭ kontrolanta por la kondiĉo. 424 00:18:32,940 --> 00:18:37,200 Kaj tio estas speciale grava por ni tie en tiu klaso, ĉar plejfoje 425 00:18:37,200 --> 00:18:41,450 Ni tuj volas suflori la uzanto por iu speco de enigado. 426 00:18:41,450 --> 00:18:43,520 Kaj tiam, depende la enigo ili donos al ni 427 00:18:43,520 --> 00:18:46,150 tiam ni povas taksi, ho, fari ni bezonas suflori ilin denove? 428 00:18:46,150 --> 00:18:49,930 >> Do en Mario, se la uzanto donis vi negativa alteco, ekzemple, 429 00:18:49,930 --> 00:18:52,990 vi tuj unuaj prompto kaj fari kion ajn estas ene. 430 00:18:52,990 --> 00:18:54,820 Tiam vi tuj kontroli tempeto. 431 00:18:54,820 --> 00:18:57,570 Vi scias, estas negativa 1, estas ke pozitiva nombro? 432 00:18:57,570 --> 00:19:00,680 Se ĝi ne estas, mi tuj iros reen kaj ripeti la do kaj ripeto 433 00:19:00,680 --> 00:19:03,950 kaj ripeti kaj ripeti ĝis ili fine vin numero kiu vi ŝatas, 434 00:19:03,950 --> 00:19:07,002 ke ni povas ĉiuj uzas en nia kodo. 435 00:19:07,002 --> 00:19:09,210 Estas bela gravaj por esence ajna uzanto enigo. 436 00:19:09,210 --> 00:19:11,760 Mi povas garantii al vi ajnan tempo en pset kie 437 00:19:11,760 --> 00:19:15,070 ni petas vin enigo omnaspeca kodo, ni estas 438 00:19:15,070 --> 00:19:17,540 verŝajne iranta doni vin testo kazo en kiu ni estas 439 00:19:17,540 --> 00:19:21,200 tuj donos al vi ion malbonan tio provos rompi vian kodon. 440 00:19:21,200 --> 00:19:25,044 >> Se ni provas peti vin enigo an entjero, ni povas nur doni al vi cxenon 441 00:19:25,044 --> 00:19:26,460 kaj vidi kiel vin trakti ĝin. 442 00:19:26,460 --> 00:19:30,610 Se ni petas vin uzi aĝon, ni donas al vi negativa nombro 443 00:19:30,610 --> 00:19:32,340 por vidi kiel vi pritraktus tiel. 444 00:19:32,340 --> 00:19:37,260 Ĝuste certigi vin uloj Elprovas por kazoj en kiuj vi ne ricevas la plej bona 445 00:19:37,260 --> 00:19:38,590 enigo, ni nur diros. 446 00:19:38,590 --> 00:19:40,510 Kaj do dum buklo estas ofte la plej bona 447 00:19:40,510 --> 00:19:45,260 maniero desegni vian kodon por ke ĝi renkontas tio amplekso. 448 00:19:45,260 --> 00:19:45,760 BONE. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> BONE. 451 00:19:49,470 --> 00:19:53,270 Do tiu estas probable la plej kompleksa buklo el la tri 452 00:19:53,270 --> 00:19:54,990 ke ni rigardis tiom. 453 00:19:54,990 --> 00:19:56,689 Kaj ŝajnas tre timiga unue. 454 00:19:56,689 --> 00:19:59,730 Sed mi garantias al vi, iam vi uloj akiri la pendi de kiel uzi por ciklo, 455 00:19:59,730 --> 00:20:03,320 ĝi estas unu el la plej utilaj aferoj, plej utilaj iloj en via arsenalo 456 00:20:03,320 --> 00:20:05,300 por movi antaŭen en ĉi tiu klaso. 457 00:20:05,300 --> 00:20:09,920 >> Do ekzemple, en Scratch, ni havis tiun tre simplan blokon 458 00:20:09,920 --> 00:20:13,180 ke nur diris ripeti ĉi certaj frazoj certan nombron da fojoj. 459 00:20:13,180 --> 00:20:16,260 Parenteze, SAJ-- jen Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 Ni ofte subskribi nian retpoŝtojn SAJ. 461 00:20:18,740 --> 00:20:20,360 Se ni diras SAJ, ne estu konfuzita. 462 00:20:20,360 --> 00:20:22,630 Tio estas nur ni. 463 00:20:22,630 --> 00:20:28,600 >> Do en Scratch, ni povis havi bloko kiu diris, ripeti Mi amas SAJ! 464 00:20:28,600 --> 00:20:29,430 10 fojojn. 465 00:20:29,430 --> 00:20:30,130 Tre simpla. 466 00:20:30,130 --> 00:20:32,302 La logiko malantaŭ tiu estas tre tre simpla, ĉu ne? 467 00:20:32,302 --> 00:20:35,260 Mi volas unue iri tra la unua tempo kaj vidi ke, duafoje 468 00:20:35,260 --> 00:20:38,510 kaj vidu, trian fojon, ktp kaj tiel plu, ĝis vi batis al 10. 469 00:20:38,510 --> 00:20:41,960 >> Kaj la vojon ni reprezentus ke en poŝtkodo estas nur tra simpla por buklo. 470 00:20:41,960 --> 00:20:45,440 Do por, vi tuj deklari via variablo tie, en tiu kazo, 471 00:20:45,440 --> 00:20:46,349 kun int. 472 00:20:46,349 --> 00:20:47,390 Ni tuj nomas ĝin I. 473 00:20:47,390 --> 00:20:49,500 Ni tuj pravalorizi ĝin al 0. 474 00:20:49,500 --> 00:20:52,490 Kaj la halto eldono estas tuj estos i estas malpli ol 10. 475 00:20:52,490 --> 00:20:54,622 Kaj la ĝisdatigo tuj estos i ++. 476 00:20:54,622 --> 00:20:57,750 >> Kaj ene de la ciklo, ĝi tuj ekzekuti ĝis fine ĝi 477 00:20:57,750 --> 00:21:01,490 trafas la fino de la condition-- en kiu kazo, ĝi tuj rompi la buklo. 478 00:21:01,490 --> 00:21:04,600 Tie devus esti stuff ke vi guys ĉiaj vidis antaŭe 479 00:21:04,600 --> 00:21:07,270 kaj devis fari por via problemo starigis unu. 480 00:21:07,270 --> 00:21:12,310 Ĉu iu havas demandojn rilate por bukloj nun? 481 00:21:12,310 --> 00:21:12,930 BONE. 482 00:21:12,930 --> 00:21:13,430 Granda. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> BONE. 485 00:21:18,620 --> 00:21:22,270 Do por tiuj el vi, kiuj havas legi la pset spec por tiu semajno 486 00:21:22,270 --> 00:21:27,690 scias ke ni estas irantaj devi dungi iu nomita ASCII kaj ASCII tablo. 487 00:21:27,690 --> 00:21:32,380 Kaj David en prelego transiris mallonge kiom komputiloj essentially-- ĉio 488 00:21:32,380 --> 00:21:35,410 estas kodita en komputilo en duuma, en nuloj kaj aĵoj. 489 00:21:35,410 --> 00:21:39,740 Kaj la vojon ke komputiloj kapablas stoki malsamajn valorojn aldone 490 00:21:39,740 --> 00:21:44,360 al nuloj kaj estas tra mapado tiuj nombroj por reprezenti aliajn ciferojn 491 00:21:44,360 --> 00:21:47,220 aŭ esence aliaj karakteroj. 492 00:21:47,220 --> 00:21:49,810 >> Do en tiu kazo, ASCII table-- ĉiuj ĝi faras 493 00:21:49,810 --> 00:21:53,600 estas mapo karakteroj, aŭ signojn, al nombroj. 494 00:21:53,600 --> 00:21:57,385 Do la fontkodon dosiero en via computer-- vidas, 495 00:21:57,385 --> 00:22:00,010 hej, faskon de nuloj kaj, nuloj kaj, nuloj kaj aĵoj. 496 00:22:00,010 --> 00:22:02,350 Tion stokitaj en la fakta memoro de via komputilo. 497 00:22:02,350 --> 00:22:04,750 >> Sed kiam ni homoj volas komuniki kun la komputilo, 498 00:22:04,750 --> 00:22:08,249 ni want-- diri, ekzemple, se mi volas la majusklajn A, 499 00:22:08,249 --> 00:22:10,540 Mi tuj bezonas iel diri la komputilo, ho, 500 00:22:10,540 --> 00:22:16,300 kiam mi tajpas majuskla A, mi volas diri tiun reprezenton en duuma. 501 00:22:16,300 --> 00:22:22,260 >> Kaj tial la vojo ni fari tion estas ĵetis arbitra afero nomata ASCII tablo, 502 00:22:22,260 --> 00:22:25,020 kie ni, kiel homoj, kiel programistoj, antaŭ kelka tempo, 503 00:22:25,020 --> 00:22:28,660 ni arbitre decidis ke ni tuj asigni tiujn nombro 504 00:22:28,660 --> 00:22:30,960 valorojn por tiuj karakteroj. 505 00:22:30,960 --> 00:22:32,720 >> Do vi infanoj povas google tiu linio. 506 00:22:32,720 --> 00:22:37,120 Mi kredas, ke estas ligilo al ĝi en viaj pset-- nur ASCII mapo tablo ASCII 507 00:22:37,120 --> 00:22:37,720 tablo. 508 00:22:37,720 --> 00:22:40,722 Ĝi simple tradukas duuma numerojn al signoj. 509 00:22:40,722 --> 00:22:42,930 Kaj ĝi estas iranta esti tre utila por via problemo aro 510 00:22:42,930 --> 00:22:45,470 kiam ajn vi volas kalkuli ion aŭ se vi 511 00:22:45,470 --> 00:22:47,880 volas montri iujn karakteroj aŭ entjeroj 512 00:22:47,880 --> 00:22:50,327 aŭ manipuli certaj karakteroj. 513 00:22:50,327 --> 00:22:52,160 Ĝi estas iranta esti tre Gravas ke vi ĉiuj 514 00:22:52,160 --> 00:22:55,140 scias kiel navigi ASCII tablo. 515 00:22:55,140 --> 00:23:01,260 >> Do ekzemple, la majusklajn A estas reprezentita de la nombro 65. 516 00:23:01,260 --> 00:23:04,207 Kaj la minuskla a estas reprezentita per 97. 517 00:23:04,207 --> 00:23:07,040 Do estas grave scii, ke la diferenco inter la du valoroj 518 00:23:07,040 --> 00:23:08,320 estas 32. 519 00:23:08,320 --> 00:23:13,210 Ofte, se vi devas konverti el unu al la aliaj, la diferenco estas 32. 520 00:23:13,210 --> 00:23:15,710 Kaj ne maltrankvilas se vi estas afabla de konfuzita sur tiu unue. 521 00:23:15,710 --> 00:23:20,230 Ni iros super kiel ni farus dungi tiu en fakta kodo. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> BONE. 524 00:23:26,380 --> 00:23:30,770 Do por tiuj el vi kun tekkomputiloj ekstere, bonvolu elsxiros ASCII tablo, 525 00:23:30,770 --> 00:23:36,030 ĉar tiuj verŝajne postulas vi uloj referenci 526 00:23:36,030 --> 00:23:38,100 kio la signoj estas. 527 00:23:38,100 --> 00:23:38,640 BONE. 528 00:23:38,640 --> 00:23:42,840 >> Do sciante ke certaj karakteroj mapi al certaj nombroj, 529 00:23:42,840 --> 00:23:47,240 se mi kuros nur la unua linio de tiu code-- la printf estas, 530 00:23:47,240 --> 00:23:50,900 minuskla a, minuso majusklajn A. Ĉu iu 531 00:23:50,900 --> 00:23:55,880 havas konjekton sur kio estus presi el la ekrano nun? 532 00:23:55,880 --> 00:23:58,190 >> Do unue, kion faras minuskla a reprezentas? 533 00:23:58,190 --> 00:24:00,990 Kiu nombro estas ke kodita en la ASCII tablo. 534 00:24:00,990 --> 00:24:01,490 Pardonon? 535 00:24:01,490 --> 00:24:02,630 >> Publiko: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI PENG: 97, granda. 537 00:24:03,630 --> 00:24:05,077 Kaj kio estas majuskla A? 538 00:24:05,077 --> 00:24:06,330 >> Publiko: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI PENG: Do kio estas 97 minus 65? 540 00:24:08,255 --> 00:24:09,227 >> Publiko: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI PENG: OK. 542 00:24:09,810 --> 00:24:13,530 Do kio vi uloj pensas tuj okazis kiam mi enigo tiun linion de kodo 543 00:24:13,530 --> 00:24:14,670 en mia komputilo? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> Spektantaro: [inaudible]. 546 00:24:19,896 --> 00:24:21,020 ANDI PENG: Pardonu, parolas supren. 547 00:24:21,020 --> 00:24:22,520 Neniu ĉagrenoj. 548 00:24:22,520 --> 00:24:25,750 Tio estas tre sekura medio, minus la fotilo. 549 00:24:25,750 --> 00:24:27,550 Ni cxiuj iras to-- sen ĉagrenoj. 550 00:24:27,550 --> 00:24:30,940 Nur ni cxiuj iras ŝajnigi kiel ĝi estas nur ni escalofriante en tiu ĉambro. 551 00:24:30,940 --> 00:24:31,480 Neniu ĉagrenoj. 552 00:24:31,480 --> 00:24:33,410 Neniu demando estas tro stulta. 553 00:24:33,410 --> 00:24:35,300 Neniu respondo estas stulta respondo. 554 00:24:35,300 --> 00:24:38,260 Mi probable tuj faros erarojn en la kurso de mia instruado. 555 00:24:38,260 --> 00:24:40,740 Serioze, knaboj, nur blurt ĝin. 556 00:24:40,740 --> 00:24:43,092 Estu certa en vi mem, vi scias? 557 00:24:43,092 --> 00:24:43,800 Do kio estis tio? 558 00:24:43,800 --> 00:24:47,990 Kiu diris ke lasta respondo? 559 00:24:47,990 --> 00:24:48,540 BONE. 560 00:24:48,540 --> 00:24:50,380 Krii ke bela kaj klara. 561 00:24:50,380 --> 00:24:51,220 >> Publiko: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI PENG: 32. 563 00:24:51,850 --> 00:24:54,141 OK, ni kuros ĉi kodo kaj ĉu tio estas kio okazas. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 BONE. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Do kiel vi infanoj povas ia vidu, la tipa notacio mi havas 568 00:25:06,360 --> 00:25:12,250 starigis tie por kiel ni uzus omnaspeca programo en nia komputilo. 569 00:25:12,250 --> 00:25:14,770 Ni havas niajn ĉefa funkcio ene de nia ĉefa funkcio. 570 00:25:14,770 --> 00:25:17,265 Mi simple tuj kopii kaj algluu tiun linion de kodo. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Ankaŭ esti zorgema kiam vi infanoj estas kopii kaj alglui kodon. 573 00:25:23,540 --> 00:25:28,750 Kelkfoje iuj operatoroj Ne almeti super korekte. 574 00:25:28,750 --> 00:25:31,397 En tiu kazo, la minuso signo estis fakte haltostreko. 575 00:25:31,397 --> 00:25:32,980 Kaj do la komputilo ne repreni ĝin. 576 00:25:32,980 --> 00:25:35,870 Do mi devis iri reen kaj fizike Retajpu tio. 577 00:25:35,870 --> 00:25:37,846 Nur esti zorgema kiam vi uloj faras tion. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> BONE. 580 00:25:42,660 --> 00:25:43,980 Ni tuj kuru ĉi tie. 581 00:25:43,980 --> 00:25:45,670 Do ni tuj kd en nian section2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Mi nomis tiun programon asciimath. 584 00:25:52,030 --> 00:25:55,690 Do memoru, kiam ni kuras iu programo, ni volas unue kompili ĝin 585 00:25:55,690 --> 00:25:57,150 per kurante ĝin tra nia konsiston. 586 00:25:57,150 --> 00:26:00,030 Kaj poste ni volas reale kuri la programo per farado punkto-oblikvo. 587 00:26:00,030 --> 00:26:01,280 Do ni tuj ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Bone, tie ni iras. 590 00:26:06,590 --> 00:26:07,410 Kaj ni vidos 32. 591 00:26:07,410 --> 00:26:07,930 Bone farita. 592 00:26:07,930 --> 00:26:10,340 Vi meritas bombonon. 593 00:26:10,340 --> 00:26:11,160 Dolĉaĵoj por vi. 594 00:26:11,160 --> 00:26:11,900 Pardonon. 595 00:26:11,900 --> 00:26:13,100 Bone. 596 00:26:13,100 --> 00:26:13,670 BONE. 597 00:26:13,670 --> 00:26:18,070 Do ni povas reiri al nia ekzemplo cxi tie. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Aah, ne. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Aah. 602 00:26:31,090 --> 00:26:32,490 BONE. 603 00:26:32,490 --> 00:26:34,610 Mi simple tuj teni ĝin tiel. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 BONE. 606 00:26:51,240 --> 00:26:51,740 BONE. 607 00:26:51,740 --> 00:26:55,340 Do kiel vi uloj povas vidi, ni povas fari multaj tre interesaj aferoj, 608 00:26:55,340 --> 00:26:58,880 multajn tre malvarmeta aĵoj, multan tre komplikaj aferoj engaĝante 609 00:26:58,880 --> 00:27:02,720 ASCII signoj kaj ciferoj. 610 00:27:02,720 --> 00:27:05,890 Unufoje vi akiras malsupren al linio kvin, ke estas multe sekvi kune. 611 00:27:05,890 --> 00:27:07,640 Ni ne tuj iru tra la sekcio. 612 00:27:07,640 --> 00:27:10,720 Bonvolu, se vi povas, rezonadi ĝin sur papero 613 00:27:10,720 --> 00:27:14,750 unue sur kio devus okazi kiam vi enigo tian ĉenon de valoroj. 614 00:27:14,750 --> 00:27:19,720 Ekzemple, en tiu lasta linio, ni havas z-- kiuj reprezentas certan number-- 615 00:27:19,720 --> 00:27:24,740 a-- kiu ankaŭ reprezentas certaj number-- plus 1 modulos 26 616 00:27:24,740 --> 00:27:26,750 plus minuskla a. 617 00:27:26,750 --> 00:27:29,220 >> Se vi uloj teni legado tra ĉi tiuj, vi 618 00:27:29,220 --> 00:27:34,009 vidu skemon supreniru kiel ni manipulanta la kodon. 619 00:27:34,009 --> 00:27:36,050 Mi ege, ege sugestas post sekcio vi ĉiuj 620 00:27:36,050 --> 00:27:38,160 uloj antaŭeniri kaj enigo tiuj ĉiuj en via komputilo 621 00:27:38,160 --> 00:27:40,060 kaj vidi kia nombroj eliras 622 00:27:40,060 --> 00:27:43,090 kaj rezonante tra kial tiuj estas okazas, ĉar pro via psets 623 00:27:43,090 --> 00:27:45,060 ĝi estos vere grava por vi kompreni 624 00:27:45,060 --> 00:27:47,132 kial certaj aĵoj okazas. 625 00:27:47,132 --> 00:27:48,590 Ĉiuj de ĉi tiuj diapozitivoj estos rete. 626 00:27:48,590 --> 00:27:51,510 Do ne maltrankviligas provas fizike kopii malsupren notojn. 627 00:27:51,510 --> 00:27:52,510 Ĉio estas ensalutintaj. 628 00:27:52,510 --> 00:27:54,050 Tiu sekcio mem estos rete. 629 00:27:54,050 --> 00:27:57,500 Ĉiuj miaj fontkodon ke Mi kuras estos rete. 630 00:27:57,500 --> 00:27:58,180 Yeah. 631 00:27:58,180 --> 00:27:59,430 Ĉu vi ankoraŭ havas demandon? 632 00:27:59,430 --> 00:28:00,587 Publiko: Kio estas modulos? 633 00:28:00,587 --> 00:28:01,170 ANDI PENG: OK. 634 00:28:01,170 --> 00:28:05,620 Do module estas operatoro ke tuj esti bela grave vian uloj la pset 635 00:28:05,620 --> 00:28:06,690 tie. 636 00:28:06,690 --> 00:28:12,280 Do la vojo ke operatoroj en C kaj en programado laboro 637 00:28:12,280 --> 00:28:16,360 estas ke vi havas kion nomas la divido simbolo kaj la modulo simbolo, 638 00:28:16,360 --> 00:28:18,350 kiu estas ĝuste kiel la procentsigno. 639 00:28:18,350 --> 00:28:24,840 >> Do en C, kiam vi faras entjero dividita per entjero kun oblikvo, 640 00:28:24,840 --> 00:28:27,720 C havas emon volas tranĉi si de la dekuma punktoj, 641 00:28:27,720 --> 00:28:30,290 ĉar entjero volas konverti al entjero. 642 00:28:30,290 --> 00:28:33,550 Oni ne tuj volos esti duobla kun aro da glitpunktaj ĉiuj post ĝi. 643 00:28:33,550 --> 00:28:39,322 >> Do se mi faras 3 dividita per 2, ĝi tuj por ekstermi la 0.5 kaj nur al vi 1. 644 00:28:39,322 --> 00:28:41,530 Do jen io esti tre zorgema de kiam vi estas 645 00:28:41,530 --> 00:28:45,294 faranta ajnan specon de matematiko en programado, estas ke la nombroj vi ricevas 646 00:28:45,294 --> 00:28:47,210 ne povas esti la nombroj ke vi pensis, 647 00:28:47,210 --> 00:28:50,190 tial rondigas en via lasta pset estas tiom grava. 648 00:28:50,190 --> 00:28:51,980 >> Module donas al vi la reston. 649 00:28:51,980 --> 00:28:56,200 Do ekzemple, se mi faris 3 module 2-- do 3 procentsigno 2-- 650 00:28:56,200 --> 00:28:58,020 donus al vi la reston de tiu. 651 00:28:58,020 --> 00:29:00,460 Do 3 dividita per 2 estas 1,5. 652 00:29:00,460 --> 00:29:01,410 Estas 1 resto de 1. 653 00:29:01,410 --> 00:29:04,600 Ĝi donus al vi la 1, kiu estas la resto de tiu. 654 00:29:04,600 --> 00:29:07,361 >> Do kiam vi uloj movas tra la ASCII tablo, 655 00:29:07,361 --> 00:29:09,735 module finos estante io, kio tre grava, 656 00:29:09,735 --> 00:29:11,240 kaj ni diskutos, kiu poste sur. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> BONE. 659 00:29:19,040 --> 00:29:27,300 Do iu kiu estas bela, bela nova kaj bela unika 660 00:29:27,300 --> 00:29:31,920 ke ni diskutis tiun semajnon la koncepto de kio estas tabelo. 661 00:29:31,920 --> 00:29:34,370 Do tabelo estas la unua tipo de datumstrukturo 662 00:29:34,370 --> 00:29:36,320 ke ni tuj renkontas en tiu klaso. 663 00:29:36,320 --> 00:29:40,010 Ĉiuj datumoj strukturo estas ia arbitra, 664 00:29:40,010 --> 00:29:43,370 laŭvorte aĵojn kiel strukturo ke ni kiel programistoj kreis, 665 00:29:43,370 --> 00:29:47,890 ke ni metis en nia kodo, ke povas enhavi aliajn partojn de kodo. 666 00:29:47,890 --> 00:29:51,090 >> Do en tiu senco, oni tabelo pensi pri tio kiel arkivo kabineto, 667 00:29:51,090 --> 00:29:53,470 kie se vi malfermas malsamajn bretoj de via dosiero kabineto, 668 00:29:53,470 --> 00:29:55,630 vi povas aliri malsamajn aferojn. 669 00:29:55,630 --> 00:29:58,630 En memoro, tabelo estas nur faranta la sama afero en via komputilo. 670 00:29:58,630 --> 00:30:01,730 Vi povas havi malsamajn blocks-- ni nomu ilin indices-- de tabelo. 671 00:30:01,730 --> 00:30:04,210 Estas nur kiel bloko, breto de memoro 672 00:30:04,210 --> 00:30:07,580 ke ni kreis ene via komputilo kiun vi povas enigo 673 00:30:07,580 --> 00:30:10,270 iujn aferojn en malsamaj spacoj. 674 00:30:10,270 --> 00:30:18,000 >> Do kun tabelo, vi ĉiam devas specify-- 675 00:30:18,000 --> 00:30:22,360 Vi devas indiki deklarante array en la jena formato. 676 00:30:22,360 --> 00:30:24,290 Vi tuj unua specifi la datumtipo 677 00:30:24,290 --> 00:30:25,831 ke vi volas krei la tabelo. 678 00:30:25,831 --> 00:30:28,870 Se mi volas tabelo de entjeroj, Mi tuj metis int prava. 679 00:30:28,870 --> 00:30:32,079 Se mi volas tabelo de kordoj, Mi tuj metis ŝnurojn tie, 680 00:30:32,079 --> 00:30:34,995 la nomo de via tabelo, kaj tiam vi tuj havos kvadrataj krampoj. 681 00:30:34,995 --> 00:30:39,580 Kaj ene la rektaj krampoj, vi estas tuj havos la grandecon de via tabelo. 682 00:30:39,580 --> 00:30:42,900 >> Iu kiu gravas teni en menso kiam kreanta arrays estas 683 00:30:42,900 --> 00:30:46,530 ke, fojo vin krei tabelo, ke grandeco ne ŝanĝiĝas. 684 00:30:46,530 --> 00:30:50,180 Do se vi scias ke ĝuste nun vi havas tabelo de amplekso 10, 685 00:30:50,180 --> 00:30:54,550 vi scias ke mi tuj havas 10 ĉelojn ene aŭ 10 indeksoj ene tiu tabelo, 686 00:30:54,550 --> 00:30:56,830 kaj ĝi neniam iras por pligrandigi aŭ malpliigi 687 00:30:56,830 --> 00:30:59,850 negrave kio, kaj ke ne estas Nuntempe nur 10 blokojn de spaco 688 00:30:59,850 --> 00:31:04,490 asignita en via memoro kiu povas stoki ĝis 10 aferoj de ajn vi metis. 689 00:31:04,490 --> 00:31:08,790 >> Do tiamaniere, tabelo datumtipo, la datumoj strukturo kiu estas tabelo 690 00:31:08,790 --> 00:31:13,392 estas tre malsama de iuj aliaj ni kovros poste en ĉi tiu kurso. 691 00:31:13,392 --> 00:31:15,170 Yeah. 692 00:31:15,170 --> 00:31:20,080 Ekzemple, se vi volis krei tabelo de grandeco 3 ke 693 00:31:20,080 --> 00:31:23,670 enhavis variabloj de integer-- ho, pardonon, de temperature-- 694 00:31:23,670 --> 00:31:25,640 kaj temperaturo, de Kompreneble, estas entjero. 695 00:31:25,640 --> 00:31:28,710 >> Do ni kreus int, kiu estas la datumtipo de kion ni volas stoki. 696 00:31:28,710 --> 00:31:32,680 Ni tuj nomas tiun temperaturoj pro nomenklaturo de nomanta 697 00:31:32,680 --> 00:31:34,200 iu kiu ni ĉiuj komprenas. 698 00:31:34,200 --> 00:31:35,900 Kaj ni tuj devas kvadrataj krampoj. 699 00:31:35,900 --> 00:31:37,200 Kaj ni volas tri numerojn. 700 00:31:37,200 --> 00:31:39,000 Do ni tuj metis tri ene de ĝi. 701 00:31:39,000 --> 00:31:41,041 >> Iu kiu vere grava teni en menso 702 00:31:41,041 --> 00:31:43,530 estas ke arrays estas nulo indeksita. 703 00:31:43,530 --> 00:31:46,410 Ĉiuj tio signifas estas ke vi starti kun la indico de 0, 704 00:31:46,410 --> 00:31:49,800 kaj vi kuras supren tra la grandeco de la tabelo minus 1. 705 00:31:49,800 --> 00:31:52,730 Do ekzemple ĉi tie, ni havas tabelo de amplekso 3. 706 00:31:52,730 --> 00:31:54,680 Ĝi estas iranta esti kapabla teni tri valoroj. 707 00:31:54,680 --> 00:31:57,450 Sed la nombroj themselves-- ke numeron, la tabelo, tiu indico, 708 00:31:57,450 --> 00:32:00,271 la tabelo, estas 0 tra 2. 709 00:32:00,271 --> 00:32:03,520 Do, knaboj, estu vere, vere zorgema kiam vi iras tra viaj problemoj fiksita 710 00:32:03,520 --> 00:32:06,500 kaj krei omnaspeca tabelo, ĉar multa la tempoj estas 711 00:32:06,500 --> 00:32:08,490 vere, vere facile forgesi tion. 712 00:32:08,490 --> 00:32:11,840 Mi efektive ne havas la indekso de 3, ke mi aktuale nur 713 00:32:11,840 --> 00:32:13,130 havas la indekso de 2. 714 00:32:13,130 --> 00:32:16,046 Kaj se vi provu aliri la tria indekso, 715 00:32:16,046 --> 00:32:18,170 ĝi tuj estos kio estas vokis la nula Terminator. 716 00:32:18,170 --> 00:32:19,990 Oni ne tuj reale ekzistas en la tabelo. 717 00:32:19,990 --> 00:32:21,781 Kaj la komputilo estas ne plaĉos tio. 718 00:32:21,781 --> 00:32:24,570 Do zorgu kiam ajn vi konsentas aferoj nur 719 00:32:24,570 --> 00:32:28,070 por certigi ke vi memoros ke tabeloj estas nulo-indeksitaj. 720 00:32:28,070 --> 00:32:28,880 >> BONE. 721 00:32:28,880 --> 00:32:34,030 Do la unua ekzemplo estas nur unu maniero de krei tabelon. 722 00:32:34,030 --> 00:32:36,790 La dua ekzemplo mi havas sube estas nur aparta maniero 723 00:32:36,790 --> 00:32:40,210 krei kion estas la samaj datumoj strukturo kiu ni ĵus inputted. 724 00:32:40,210 --> 00:32:44,347 Do anstataŭ fizike kurante tra kaj metante en temperaturo de 0 725 00:32:44,347 --> 00:32:47,180 egalas ajn, temperaturo 1 egalas ajn, temperaturo 2 egaluloj 726 00:32:47,180 --> 00:32:50,950 ajn, mi povis efektive nur rekte kreas ĝin ĉiuj en unu linio 727 00:32:50,950 --> 00:32:53,010 en temperaturo kvadrataj krampoj egaluloj. 728 00:32:53,010 --> 00:32:56,536 >> Kaj rimarki en ĉi tiu kazo, vi ne bezonas specifi kiom grandaj via tabelo estas, 729 00:32:56,536 --> 00:32:59,160 ĉar la komputilo tuj iri tra kaj vidu ke ekzistas 730 00:32:59,160 --> 00:33:01,570 tri elementoj en tiuj buklaj krampoj. 731 00:33:01,570 --> 00:33:04,000 Kaj tuj scii, okej, Mi bezonas tabelo de amplekso 3. 732 00:33:04,000 --> 00:33:07,440 Vi ne tuj bezonas enigo ĝin la sekva maniero. 733 00:33:07,440 --> 00:33:10,170 >> Kaj ankaŭ, jes, tiel. 734 00:33:10,170 --> 00:33:12,610 Ĉu iu havas demandojn koncerne al kiel ni faras tabeloj 735 00:33:12,610 --> 00:33:17,391 aŭ kiel la strukturo de tabelo funkcias? 736 00:33:17,391 --> 00:33:17,890 Yeah. 737 00:33:17,890 --> 00:33:18,806 >> Spektantaro: [inaudible]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI PENG: Jes, ĝuste. 740 00:33:22,690 --> 00:33:26,150 Do se vi estus deklari kaj pravalorizi tabelo la jena metodo: 741 00:33:26,150 --> 00:33:28,477 kiu estas la dua maniero, vi povas simple lasi tiujn. 742 00:33:28,477 --> 00:33:30,310 Kaj la komputilo aŭtomate sciu ke 743 00:33:30,310 --> 00:33:33,950 bezonas kalkuli kiom da elementoj estas en tiuj buklaj krampoj, disigitaj 744 00:33:33,950 --> 00:33:34,930 per komoj. 745 00:33:34,930 --> 00:33:37,517 >> Do jen ili vidas 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Do la komputilo scias, ho, ekzistas tri entjeroj. 747 00:33:39,600 --> 00:33:45,960 Mi scias krei tabelo nomon temperaturo kun tri elementoj en ĝi. 748 00:33:45,960 --> 00:33:46,590 Bona demando. 749 00:33:46,590 --> 00:33:47,090 Yeah. 750 00:33:47,090 --> 00:33:51,590 >> Spektantaro: Ĉu ne eblas krei tabelo kun malsamaj tipoj de datumoj 751 00:33:51,590 --> 00:33:53,021 kiu povus esti enirita en ĝin? 752 00:33:53,021 --> 00:33:56,746 Ekzemple, kun entjeroj [inaudible]? 753 00:33:56,746 --> 00:33:59,120 ANDI PENG: Por la celoj de tiu klaso, ne, ĝuste nun. 754 00:33:59,120 --> 00:34:03,070 Kiam vi kreas datumoj strukturi kiel tabelo, 755 00:34:03,070 --> 00:34:04,990 vi diras la komputilo, hej, mi bezonas vin 756 00:34:04,990 --> 00:34:08,159 asigni ĉi multe memoro en mia malmola disko, 757 00:34:08,159 --> 00:34:10,690 kun ĉiu ĉelo estanta iu numero de bitoj. 758 00:34:10,690 --> 00:34:13,429 >> Memoru ni lernis en semajno nulo ke malsamaj datumoj 759 00:34:13,429 --> 00:34:15,300 tipoj havas malsamajn grandecojn? 760 00:34:15,300 --> 00:34:17,630 Do ekzemple, kordo Estas malsama kvanto 761 00:34:17,630 --> 00:34:20,719 de spaco ol char, kiu Estas malsama kvanto de spaco 762 00:34:20,719 --> 00:34:21,830 de entjero. 763 00:34:21,830 --> 00:34:25,534 Kaj do se vi ne specifas kaj vi miksi kaj egali la specojn de variabloj 764 00:34:25,534 --> 00:34:27,659 vi havas, la komputilo tuj estos tre konfuzita. 765 00:34:27,659 --> 00:34:29,950 Kaj ĝi ne tuj scii kiom memoro doni vin. 766 00:34:29,950 --> 00:34:32,480 Do por celoj de dekstra Nun komputiloj povas nur 767 00:34:32,480 --> 00:34:36,120 rekoni unu tipo de tabelo. 768 00:34:36,120 --> 00:34:37,940 Bona demando. 769 00:34:37,940 --> 00:34:38,440 BONE. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Do nature, la dua demando ni havas 772 00:34:47,120 --> 00:34:50,760 estas, nu, nun ke ni kreis tabelo kaj ni metis ĉiujn tiujn aferojn 773 00:34:50,760 --> 00:34:54,190 en la tabelo, kiel ni tuj povos aliri ĝin? 774 00:34:54,190 --> 00:34:59,710 Do la tipa strukturo kiu ni ĉiam aliri tabelo estas nia aminda por buklo. 775 00:34:59,710 --> 00:35:03,830 Mi promesas vin uloj ke ni estos vidante multajn ĉi ulo tie. 776 00:35:03,830 --> 00:35:06,470 >> Esence, iam ajn vi volas enigi valorojn en tabelo 777 00:35:06,470 --> 00:35:09,940 aŭ vi volas aliri ilin, la bona maniero fari tion estas por buklo, 778 00:35:09,940 --> 00:35:13,730 ĉar por buklo, vi scias kiom da fojoj vi 779 00:35:13,730 --> 00:35:17,290 tuj volas kuri tra la tabelo, ĉar vi havas haltigon eldono, dekstra? 780 00:35:17,290 --> 00:35:19,680 Kaj ĉiufoje kiam vi kuros tra, vi povas aliri 781 00:35:19,680 --> 00:35:21,310 malsama elemento de la tabelo. 782 00:35:21,310 --> 00:35:26,920 >> Kaj ankaŭ, tiu estas tial tipe ni komencu nian por bukloj je la 0 valoron, 783 00:35:26,920 --> 00:35:30,080 ĉar kiam vi aliras arrays, vi povas aliri la nulo indekso. 784 00:35:30,080 --> 00:35:32,070 Kaj tiel ĝi paralelas tre bele. 785 00:35:32,070 --> 00:35:35,295 Vi uloj eble volis skribi por int i egalas 1. 786 00:35:35,295 --> 00:35:37,330 i estas malpli ol aŭ egala al 3. 787 00:35:37,330 --> 00:35:39,890 >> Sed ĝi ne funkcius egale bone tie, ĉar vi nur 788 00:35:39,890 --> 00:35:42,010 havas elementojn de 0, 1, kaj 2. 789 00:35:42,010 --> 00:35:45,815 Do se vi estus komenci via i je ero 1, 2, kaj 3, 790 00:35:45,815 --> 00:35:48,440 vi tuj finos kurante el la limoj de via tabelo, 791 00:35:48,440 --> 00:35:50,440 kaj malbonaj aferoj okazos. 792 00:35:50,440 --> 00:35:54,480 >> Do mi esperas ke vi uloj vidi la segue de kial en la fruaj klasoj 793 00:35:54,480 --> 00:35:58,560 Ni instruas vin uloj kiel kuri kaj formati por buklo la maniero ke ni estis. 794 00:35:58,560 --> 00:36:01,900 Ĝi estas ĉar, nun ni transitioneis en arrays, 795 00:36:01,900 --> 00:36:06,760 vi povas vidi kial la 0 pruntedonas mem tre bele por aliranta. 796 00:36:06,760 --> 00:36:09,880 >> Do la vojo ni fari tion estas that-- mi nur presi ĝin tie pro 797 00:36:09,880 --> 00:36:10,830 videbligi ĝin. 798 00:36:10,830 --> 00:36:13,750 Sed mi havas mian lokokupilo, komo. 799 00:36:13,750 --> 00:36:15,645 Kaj la fakta aliranta parto okazas. 800 00:36:15,645 --> 00:36:17,520 La nomo de la tabelo nomiĝis temperaturo. 801 00:36:17,520 --> 00:36:21,570 Do estas temperaturo kaj la i-a ero de la tabelo. 802 00:36:21,570 --> 00:36:24,400 >> Do kiel la por buklo kuras tra, ĝi tuj starti je 0. 803 00:36:24,400 --> 00:36:27,640 Ĝi tuj presi la 0th indekso de tiu tabelo. 804 00:36:27,640 --> 00:36:29,599 Tiam ĝi tuj presi el la unua elemento. 805 00:36:29,599 --> 00:36:31,431 Tiam ĝi tuj presi el la dua unu. 806 00:36:31,431 --> 00:36:32,880 Kaj tiam ni tuj rompos. 807 00:36:32,880 --> 00:36:36,718 Estas ĉiuj klaraj ke okazas? 808 00:36:36,718 --> 00:36:37,217 Granda. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> Bone. 811 00:36:44,100 --> 00:36:47,270 Do jen ni havas vojon de dirante, se ni ne volis 812 00:36:47,270 --> 00:36:50,020 al malmola kodo in-- min kiel la programisto. 813 00:36:50,020 --> 00:36:53,320 Mi ne volis vere fizike meti en ĉiu individua elemento 814 00:36:53,320 --> 00:36:54,020 de tiu tabelo. 815 00:36:54,020 --> 00:36:56,500 Se mi volis anstataŭe havi la uzanto enigo valoroj, 816 00:36:56,500 --> 00:36:58,100 kio estas la plej bona maniero por fari tion? 817 00:36:58,100 --> 00:37:00,920 >> Nu, cxi tie mi kreis tiu bela funkcio, 818 00:37:00,920 --> 00:37:03,560 en kiuj mi povas deklari tabelo. 819 00:37:03,560 --> 00:37:06,210 Do int scores-- ni nur ke ni volas fari 820 00:37:06,210 --> 00:37:10,660 tabelo kiu tenis la kvalifikojn de ĉiuj 18 de la lernantoj tie en tiu sekcio. 821 00:37:10,660 --> 00:37:12,670 Mi pensas ke ni devas iom pli ol 18 infanoj hodiaŭ. 822 00:37:12,670 --> 00:37:16,460 Sed ekzemple, kalkaj, ni simple supozu ni havis 18. 823 00:37:16,460 --> 00:37:21,580 Mi kreus tabelo nomo partituroj kun tipo int, ĉar partituroj, kompreneble, 824 00:37:21,580 --> 00:37:22,987 estas nombroj. 825 00:37:22,987 --> 00:37:24,820 Kaj mi tuj havi 18 en kvadrataj krampoj, 826 00:37:24,820 --> 00:37:29,900 ĉar tio estas kiom da studentoj mi volas povi stoki partituroj de. 827 00:37:29,900 --> 00:37:32,206 >> Kaj la vojon mi popoli la tabelo estas ke mi preferus 828 00:37:32,206 --> 00:37:35,572 kuri ĝin tra por ciklo, de Kompreneble, kun 0 estante mia 0th indekso. 829 00:37:35,572 --> 00:37:38,030 Kaj tiam kun 18 estante mia haltante eldono, ĉar estas 830 00:37:38,030 --> 00:37:39,690 18 elementoj en la tabelo. 831 00:37:39,690 --> 00:37:44,620 Kaj poste mi iros fari printf, Enter Partituro por student-- Yada Yada Yada. 832 00:37:44,620 --> 00:37:51,171 >> Povas iun ajn diras min kial ĉi tie mi estas presi i plus 1 kaj ne mi? 833 00:37:51,171 --> 00:37:52,920 Estas ia truko demando, ne vere. 834 00:37:52,920 --> 00:37:56,020 Ĝi faras ne vere fizike influi la kuradon de la kodo. 835 00:37:56,020 --> 00:37:56,520 Yeah. 836 00:37:56,520 --> 00:37:57,909 >> Spektantaro: [inaudible] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI PENG: Jes, ĝuste. 838 00:37:58,950 --> 00:38:02,620 Estas iom mallerta diri, hej, vi estas la 0th studento en tiu klaso. 839 00:38:02,620 --> 00:38:03,780 Estas iom stranga. 840 00:38:03,780 --> 00:38:08,340 Do ni, kiel homoj, ne vere ŝatas pensi de kiel komputiloj pensas. 841 00:38:08,340 --> 00:38:10,930 Do kvankam en la komputilo, ĝi estas stoki valoroj 842 00:38:10,930 --> 00:38:13,310 en la 0-a indekso, kiam ni estas homoj, ni ne vere 843 00:38:13,310 --> 00:38:15,520 plaĉas al referi al ni mem kiel nulo. 844 00:38:15,520 --> 00:38:18,119 Do kiam mi nur presi ke, Mi tuj presi kaj aldonu 845 00:38:18,119 --> 00:38:19,410 1 ĵus por la konsidero de klareco. 846 00:38:19,410 --> 00:38:22,447 Do kiam mi presi, mi tuj esti kapabla presi studentoj 1 tra 18. 847 00:38:22,447 --> 00:38:24,530 Ĝi ne vere efiki la kurado de la kodo 848 00:38:24,530 --> 00:38:27,110 iamaniere, la vojo mi presi. 849 00:38:27,110 --> 00:38:30,380 >> Sed esti zorgema kiam vi estas fakte alirante la tabelo. 850 00:38:30,380 --> 00:38:32,780 Kiam vi vidas la partituroj i, rimarki tie Mi reale 851 00:38:32,780 --> 00:38:38,200 aliranta la 0th indekso kaj Ne la 1 plus 0-- aŭ 1 plus 1, 852 00:38:38,200 --> 00:38:45,530 tiukaze, indekso tiel ke fakte klara. 853 00:38:45,530 --> 00:38:48,870 Ĉu ĉiu speco de OK sur kiamaniere tiu kuras tra 854 00:38:48,870 --> 00:38:51,470 kaj kun cxiu indekso mi metante valoron en la tabelo 855 00:38:51,470 --> 00:38:55,340 kaj krei tabelon kun 18 numeroj ke la uzanto tuj enigo? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 BONE. 858 00:38:59,821 --> 00:39:00,321 Malvarmeta. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> BONE. 861 00:39:07,400 --> 00:39:12,220 Ni nun movas en ion tio estas bela adekvataj por tiu peco metis tiel. 862 00:39:12,220 --> 00:39:15,020 Mi scias en prelego, David-- bedaŭras, vi havis demandon? 863 00:39:15,020 --> 00:39:16,840 >> Spektantaro: Ĉu vi povas plivastigi ĝin? 864 00:39:16,840 --> 00:39:18,080 >> ANDI PENG: Jes, do mi provis. 865 00:39:18,080 --> 00:39:18,788 Sed mi ne scias. 866 00:39:18,788 --> 00:39:21,437 Ial, tiu versio de PowerPoint 867 00:39:21,437 --> 00:39:23,270 estas vere ne laboranta fartas la ekrano. 868 00:39:23,270 --> 00:39:25,260 Do ni simple tuj teni ĝin tiel. 869 00:39:25,260 --> 00:39:27,280 Ĉiuj ĉi tiuj estos alŝutita rete. 870 00:39:27,280 --> 00:39:28,218 Pardonu, knaboj. 871 00:39:28,218 --> 00:39:30,090 Yeah. 872 00:39:30,090 --> 00:39:30,980 BONE. 873 00:39:30,980 --> 00:39:35,530 >> Do ni povas ankaŭ havi kordoj. 874 00:39:35,530 --> 00:39:39,320 Do se vi infanoj reale notice-- mi scias Rob transiris ĉi en tiu prelego 875 00:39:39,320 --> 00:39:43,652 ke li did-- kordo estas fakte nur tabelo de signoj, 876 00:39:43,652 --> 00:39:44,860 se vi pensas pri ĝi, ĉu ne? 877 00:39:44,860 --> 00:39:47,500 Kordo estas nomo aŭ frazo aŭ vorto, ĉu ne? 878 00:39:47,500 --> 00:39:52,975 >> Se mi estus krei ĉenon nomis Andi-- nur mia nomo, A-N-D-Mi. 879 00:39:52,975 --> 00:39:55,460 Vi elpensis tion kiel nur unu variablo. 880 00:39:55,460 --> 00:39:58,630 Sed fakte, ĝi estas rompita malsupren en nur tabelo de signoj. 881 00:39:58,630 --> 00:40:01,910 Do ĝi estas alvenis karakteron de stokita en tabelo valoro. 882 00:40:01,910 --> 00:40:05,420 Oni alvenis karakteron de n stokitaj en la dua indico kaj tiel plu kaj tiel antaŭen. 883 00:40:05,420 --> 00:40:08,660 >> Do tiel, ni efektive havas tian 884 00:40:08,660 --> 00:40:10,970 de strukturo metita en meti niajn kordoj. 885 00:40:10,970 --> 00:40:14,660 Do jen, se mi estus enigi la vorto "manĝi" - tiel kordoj vorto egalas 886 00:40:14,660 --> 00:40:15,540 akiri kordoj. 887 00:40:15,540 --> 00:40:19,260 Se mi estus enigi la vorton "manĝi", ke Fizike la vojon ke mia komputilo 888 00:40:19,260 --> 00:40:21,870 estas stoki ke kordoj en mia memoro. 889 00:40:21,870 --> 00:40:27,140 >> Kaj se mi volis kuri tra tiu kaj presaĵo ke fjordon tiel cxar en mi 890 00:40:27,140 --> 00:40:30,890 egalas nulo, memoru, en prelego, ni kovras iun kiu nomiĝas strlen, 891 00:40:30,890 --> 00:40:32,990 aŭ la longo de la kordo. 892 00:40:32,990 --> 00:40:36,520 Ĉar mi ne vere scii kiom granda la tabelo estas 893 00:40:36,520 --> 00:40:38,210 de kiom la uzanto inputting-- 894 00:40:38,210 --> 00:40:40,370 >> Ekzemple, mi inputted la vorto "manĝi", kaj mi konas 895 00:40:40,370 --> 00:40:41,870 jen tri signojn longa, ĉu ne? 896 00:40:41,870 --> 00:40:44,700 Do mi povis meti en tri tie kaj ĉio estos bone. 897 00:40:44,700 --> 00:40:49,290 Sed se via uzanto enigo ion tio estas alia nombro de valoroj, 898 00:40:49,290 --> 00:40:52,760 vi tuj ne povos vere scias ke kiam vi plani vian kodon. 899 00:40:52,760 --> 00:40:56,040 >> Do la maniero ke ni manipuli testo kazoj kiel tio estas ke ni havas ion 900 00:40:56,040 --> 00:41:00,070 nomita strlen, kiu estas nur funkcio kiu rakontas al vi kiom longe kordo estas. 901 00:41:00,070 --> 00:41:02,080 Do strlen de vorto. 902 00:41:02,080 --> 00:41:03,470 Mia vorto estas manĝi. 903 00:41:03,470 --> 00:41:05,990 n egalas strlen de vorto. 904 00:41:05,990 --> 00:41:08,930 Ĉu iu povas diri al mi kion tio valoro fakte estas ĝuste tie? 905 00:41:08,930 --> 00:41:12,550 Kion n reprezentanta dekstra nun, en ĉi tiu ekzemplo, se mi devis manĝi? 906 00:41:12,550 --> 00:41:13,530 >> Publiko: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI PENG: 3, precize. 908 00:41:14,520 --> 00:41:18,820 Do ni havas por int i egalas nulo, n egalas 3, esence. 909 00:41:18,820 --> 00:41:22,355 Kaj mi tuj kuras ĝis ĝi estas malpli ol 3i ++. 910 00:41:22,355 --> 00:41:24,980 Kaj ĝi tuj esence iri tra kaj fari la saman aferon. 911 00:41:24,980 --> 00:41:26,979 Ĝi tuj presi ĉiu valoro kaj donu vin 912 00:41:26,979 --> 00:41:29,700 E-Al-T. Ĝi simple denota malsama maniero skribi ĝin. 913 00:41:29,700 --> 00:41:31,170 Tio tuj estos tre helpema. 914 00:41:31,170 --> 00:41:31,670 Yeah. 915 00:41:31,670 --> 00:41:35,174 Publiko: Kio estas la utiloj de metanta la n egalas strlen vorto ene ol 916 00:41:35,174 --> 00:41:36,894 por buklo [inaudible]? 917 00:41:36,894 --> 00:41:37,560 ANDI PENG: Yeah. 918 00:41:37,560 --> 00:41:44,880 Do se mi estus to-- diri, ekzemple, se mi estus fari tion kaj tiam 919 00:41:44,880 --> 00:41:51,935 do-- oop-- ke, en mia kodo, ĝi estus reale esti farante kiel la sama afero. 920 00:41:51,935 --> 00:41:55,060 Tamen, la maniero ke Davido klarigis ĝi dum prelego, se iu el vi infanoj 921 00:41:55,060 --> 00:41:57,854 memoras, estis ke, kiel homoj, kiel programistoj, 922 00:41:57,854 --> 00:42:00,270 ni vere provas plani nian kodo por ke nia komputilo havas 923 00:42:00,270 --> 00:42:04,070 labori kiel minimuma ebla, tiel ke nia kodo estas tre efika. 924 00:42:04,070 --> 00:42:06,850 >> Do se mi havis ke, kio okazus tra mia por buklo 925 00:42:06,850 --> 00:42:10,790 estas ke mi unua deklari variablo nomata mi tuj esti 0. 926 00:42:10,790 --> 00:42:13,350 Mi intencas kontroli, ho, kia la strlen de vorto? 927 00:42:13,350 --> 00:42:15,000 Ho, la strlen estas 3. 928 00:42:15,000 --> 00:42:16,191 Do estas mi malpli ol tri? 929 00:42:16,191 --> 00:42:16,690 Jes. 930 00:42:16,690 --> 00:42:17,870 Mi tuj kuros. 931 00:42:17,870 --> 00:42:21,130 >> Kaj poste duafoje reen ĉirkaŭ la buklo, mi tuj pliigo i. 932 00:42:21,130 --> 00:42:22,550 Mi tuj estos unu. 933 00:42:22,550 --> 00:42:25,600 Kaj mi tuj kontroli, ho, sed kio estas la strlen de vorto? 934 00:42:25,600 --> 00:42:26,839 Ho, estas tri. 935 00:42:26,839 --> 00:42:29,880 Kaj faras ke ŝajnas iom malŝparema, ĉiufoje kiam vi kuros tra la buklo, 936 00:42:29,880 --> 00:42:33,340 esti kontrolanta la funkcio, kvankam la strlen de vorto 937 00:42:33,340 --> 00:42:35,490 neniam reale ŝanĝas? 938 00:42:35,490 --> 00:42:38,590 >> Do estas ekstra potenco por komputilo. 939 00:42:38,590 --> 00:42:42,180 Kiam vi komencas paroli pri aferoj ke estas miliardoj kaj miliardoj 940 00:42:42,180 --> 00:42:44,431 kaj bilionoj de lokoj longaj, imagi vian komputilon 941 00:42:44,431 --> 00:42:47,430 devi fizike iri tra kaj kontroli ĉiujn ke ĉiu unuopa tempo. 942 00:42:47,430 --> 00:42:53,170 Tial, por fari nur pro efikeco, 943 00:42:53,170 --> 00:42:57,620 ni emas nur fari tion, ĉar tiu vojo ni estas nur 944 00:42:57,620 --> 00:42:59,850 vokanta la funkcio unufoje en la komenco, 945 00:42:59,850 --> 00:43:01,766 kaj kiu ĉiufoje ĝi iras tra ĝi tuj 946 00:43:01,766 --> 00:43:03,789 stoki la valoron 3 tie, ke vi ne 947 00:43:03,789 --> 00:43:05,330 devas senĉese kontroli ĉiufoje. 948 00:43:05,330 --> 00:43:05,743 Yeah. 949 00:43:05,743 --> 00:43:06,409 >> Publiko: Pardonu. 950 00:43:06,409 --> 00:43:09,070 Ĝuste [inaudible]. 951 00:43:09,070 --> 00:43:13,985 Povis vi int n egalas strlen kaj metis ke super la ekstero de la por buklo 952 00:43:13,985 --> 00:43:15,364 tiel? 953 00:43:15,364 --> 00:43:16,030 ANDI PENG: Yeah. 954 00:43:16,030 --> 00:43:17,100 Vi povus fari tion, absolute. 955 00:43:17,100 --> 00:43:19,970 La kialo ŝin havas en tie estas se la vojo por buklo verkoj 956 00:43:19,970 --> 00:43:23,500 estas ke ĝi nomiĝas loka variablo en la senco 957 00:43:23,500 --> 00:43:26,150 ke io vi estas krei ene de la por buklo 958 00:43:26,150 --> 00:43:27,890 nur ekzistas ene de la por buklo. 959 00:43:27,890 --> 00:43:31,530 >> Do la variablo i nur ekzistas en tiuj krampoj. 960 00:43:31,530 --> 00:43:35,260 Kaj tie la variabloj de n ankaŭ nur ekzistas en tiuj krampoj. 961 00:43:35,260 --> 00:43:39,350 Do se vi estus uzi strlen de vorto multoblaj tempoj malsupre, 962 00:43:39,350 --> 00:43:42,230 absolute la plej bona maniero fari tion estus deklari ĝin la pinto 963 00:43:42,230 --> 00:43:43,563 tial vi ne devas fari ĝin unufoje. 964 00:43:43,563 --> 00:43:45,420 Yeah. 965 00:43:45,420 --> 00:43:47,670 Publiko: Kial vi havas nova linio post la procento 966 00:43:47,670 --> 00:43:51,300 vidante se vi volas meti la tutan la literoj apud gxi apartigu? 967 00:43:51,300 --> 00:43:54,140 >> ANDI PENG: Oh, mi volis presi cxiujn sur ĉiu linio. 968 00:43:54,140 --> 00:43:54,890 Ne gravas. 969 00:43:54,890 --> 00:43:55,890 Jes, ĝi estas strukturado. 970 00:43:55,890 --> 00:43:57,181 Tio estas bona demando, kvankam. 971 00:43:57,181 --> 00:43:59,360 Jes, se mi volis printi ĉion sur nur unu linio, 972 00:43:59,360 --> 00:44:02,731 Mi ne havus la haltostreko je. 973 00:44:02,731 --> 00:44:03,230 BONE. 974 00:44:03,230 --> 00:44:06,880 Ĉiu bona? 975 00:44:06,880 --> 00:44:07,500 BONE. 976 00:44:07,500 --> 00:44:08,000 Malvarmeta. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Do mi kredas ke mi parolis sufiĉe. 979 00:44:14,750 --> 00:44:20,040 Vi uloj vico kuri tra la kodo kaj diras min kio estas malbone tie. 980 00:44:20,040 --> 00:44:21,560 Kie estas la cimo? 981 00:44:21,560 --> 00:44:26,920 Do kiel vi povas vidi, mi deklaris al nova tabelo de tipo string nomita klaso. 982 00:44:26,920 --> 00:44:30,220 Kaj mi inputted Sam, Jess, kaj Kim en ĝin. 983 00:44:30,220 --> 00:44:33,400 Kaj mi provis presi ĉiuj elementoj de la tabelo. 984 00:44:33,400 --> 00:44:36,796 Ĉu iu povas diri al mi kial ĉi tuj donu al mi problemojn? 985 00:44:36,796 --> 00:44:39,320 Mi donos al vi infanoj 10 sekundojn por pripensi tion. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> BONE. 988 00:44:56,619 --> 00:44:57,118 Yeah? 989 00:44:57,118 --> 00:45:01,972 >> Spektantaro: Ĉu la maldekstra centro egala al 3 aŭ [inaudible]? 990 00:45:01,972 --> 00:45:02,680 ANDI PENG: Dekstra. 991 00:45:02,680 --> 00:45:06,784 Do kiom da fojoj estas ĉi reale tuj kuri tra ĉi buklo? 992 00:45:06,784 --> 00:45:07,620 >> Publiko: Kvar. 993 00:45:07,620 --> 00:45:08,070 >> ANDI PENG: Ekzakte. 994 00:45:08,070 --> 00:45:09,445 Ĝi tuj tra kvar fojojn. 995 00:45:09,445 --> 00:45:12,250 Ĝi tuj kuri tra je 0, 1, 2, kaj 3, 996 00:45:12,250 --> 00:45:15,200 ĉar ilia elemento estas i estas malpli ol aŭ egala al 3. 997 00:45:15,200 --> 00:45:16,960 Oni ne tuj halti kiam ĝi estas 2. 998 00:45:16,960 --> 00:45:18,800 Ĝi tuj konservi irante ĝis kolizias 3. 999 00:45:18,800 --> 00:45:21,720 Kaj kiel ni scias, ekzistas nur tri elementoj en nia fakta tabelo. 1000 00:45:21,720 --> 00:45:27,260 >> Se ni provas aliri la kvara elemento aŭ la indekso de 3, 1001 00:45:27,260 --> 00:45:30,357 vi tuj trafis ie en memoro kiu ne ekzistas. 1002 00:45:30,357 --> 00:45:31,690 Ĝi nomiĝas la nula Terminator. 1003 00:45:31,690 --> 00:45:32,856 Nenio okazas al esti tie. 1004 00:45:32,856 --> 00:45:35,324 Via komputilo ne tuj esti tre feliĉa kun vi. 1005 00:45:35,324 --> 00:45:36,170 Yeah. 1006 00:45:36,170 --> 00:45:38,430 Ĉu iu havas demandojn sur kial tio okazis? 1007 00:45:38,430 --> 00:45:39,679 Tio estas komuna spaco por eviti. 1008 00:45:39,679 --> 00:45:40,712 Yeah. 1009 00:45:40,712 --> 00:45:45,777 >> Spektantaro: Ĉu ne la unua gliti ankaŭ havas ĉenon de 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: No. 1011 00:45:46,360 --> 00:45:49,610 Do esence, kiam vi faras tabelon, 1012 00:45:49,610 --> 00:45:51,540 ke krampo dekstra tie, ke number-- ĉiuj 1013 00:45:51,540 --> 00:45:53,480 ĝi estas diranta vin estas kiel multaj elementoj mi havas. 1014 00:45:53,480 --> 00:45:55,840 Ĝi ne vere rakontanta mi la indeksoj de io. 1015 00:45:55,840 --> 00:45:58,760 Do en ĉi tiu kazo, mi scias ke mi volas skribi kun tri lokoj, 1016 00:45:58,760 --> 00:46:02,690 kun tri fizikaj lokoj teni kion ajn mi volas teni. 1017 00:46:02,690 --> 00:46:04,510 Do jen kial la numero tri estas tie. 1018 00:46:04,510 --> 00:46:06,560 Tamen, se mi volus reale konsenti li, 1019 00:46:06,560 --> 00:46:11,220 se mi volis diri, printf klaso krampo nombro, tiam 1020 00:46:11,220 --> 00:46:14,560 vi tuj efektive metis la fizika indekso tie. 1021 00:46:14,560 --> 00:46:16,330 Jes, bona demando. 1022 00:46:16,330 --> 00:46:20,065 >> Publiko: Tia estas la fizikaj indekso laŭsupoze [inaudible]? 1023 00:46:20,065 --> 00:46:20,940 ANDI PENG: Mi bedaŭras. 1024 00:46:20,940 --> 00:46:21,500 Ĉu vi povas paroli supre iom? 1025 00:46:21,500 --> 00:46:24,208 >> Publiko: Tia estas la fizika indekso [Inaudible] ĉiu de la skatoloj? 1026 00:46:24,208 --> 00:46:25,260 [Inaudible]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI PENG: Yeah. 1028 00:46:26,040 --> 00:46:28,970 Do mi tuj reiru dekstren tie. 1029 00:46:28,970 --> 00:46:31,120 Pensu ĉi tie. 1030 00:46:31,120 --> 00:46:32,820 Ni havas tabelo de amplekso 3. 1031 00:46:32,820 --> 00:46:35,540 Ekzistas tri lokoj, kiel, fizika anstataŭaĵojn tien. 1032 00:46:35,540 --> 00:46:37,620 Sed ili estas nomita 0, 1, kaj 2. 1033 00:46:37,620 --> 00:46:40,700 Do, se mi volis konsenti ili, mian vojon aliri ilin 1034 00:46:40,700 --> 00:46:43,480 estas printf el kion mi volis tien. 1035 00:46:43,480 --> 00:46:45,485 Vi devus presi el gxi la nomon, 1036 00:46:45,485 --> 00:46:47,610 ĉar tiam la komputilo scias, ho, mi devas rigardi 1037 00:46:47,610 --> 00:46:51,391 en tiu tabelo por la 0th indekso. 1038 00:46:51,391 --> 00:46:51,890 Yeah. 1039 00:46:51,890 --> 00:46:53,306 Sed la grandeco de ĝi ne ŝanĝas. 1040 00:46:53,306 --> 00:46:55,492 La grandeco estas 3, sendistinge de kiel vi etikedas ilin. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 BONE. 1043 00:46:58,820 --> 00:47:01,387 Ĉiu bona? 1044 00:47:01,387 --> 00:47:02,970 Publiko: Do ​​ĉiufoje mi [inaudible]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI PENG: OK. 1047 00:47:06,940 --> 00:47:13,270 Do en ĉi tiu kazo, ni ne vere enir ĝin ĝuste nun en la kurso. 1048 00:47:13,270 --> 00:47:16,760 Sed scias ke ĉenon kiel mi diris antaŭe, ŝnuro estas esence 1049 00:47:16,760 --> 00:47:18,440 tabelo de signoj. 1050 00:47:18,440 --> 00:47:21,430 Do se mi kreas tabelo de kordoj, mi specon de 1051 00:47:21,430 --> 00:47:24,430 havas tabelo de tabelo de karakteroj, dekstra? 1052 00:47:24,430 --> 00:47:27,720 >> Do ĉi-kaze, ĉar mi havas tabelo de kordoj, 1053 00:47:27,720 --> 00:47:31,340 se vi estus al enigo vere longa vorto, kiu ankoraŭ okupas nur unu spaco, 1054 00:47:31,340 --> 00:47:33,230 ĉar tio estas la unu kordo. 1055 00:47:33,230 --> 00:47:37,492 Sed se vi estus pensi la karakteroj de tiu tabelo, 1056 00:47:37,492 --> 00:47:40,450 tiam tio estas prenante supren multe pli karakteroj ol iu el la aliaj vortoj 1057 00:47:40,450 --> 00:47:41,372 estas. 1058 00:47:41,372 --> 00:47:42,830 Ne vere gravaj por ĝusta nun. 1059 00:47:42,830 --> 00:47:44,921 Sed tio estas nur ĝenerale kiel ĝi estas laboranta. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> BONE. 1062 00:47:50,560 --> 00:47:55,840 Do tiu estas io mi ellasos vin fari multe super la kurson de la semestro. 1063 00:47:55,840 --> 00:47:57,500 Mi bezonas ripozi mian voĉon. 1064 00:47:57,500 --> 00:47:59,530 Vi uloj bezonas stimuli vin. 1065 00:47:59,530 --> 00:48:02,300 Multa vi probable devas dormi nun. 1066 00:48:02,300 --> 00:48:05,960 Mi inputting hazarda problemoj kie ni kiel klaso aŭ vi 1067 00:48:05,960 --> 00:48:09,480 kun partnero apud vi iras elspezi kelkajn minutojn diskutanta 1068 00:48:09,480 --> 00:48:14,980 sur kiel ni devus iri pri solvado aŭ kreante programo kiel ĉi. 1069 00:48:14,980 --> 00:48:17,100 >> Do nun, ni volas krei program-- 1070 00:48:17,100 --> 00:48:19,560 Ni tuj nomas ĝin upper.c-- ke konvertitoj 1071 00:48:19,560 --> 00:48:24,787 minusklan vorton al supra-klaso ĉenon majuskle, pardonon. 1072 00:48:24,787 --> 00:48:26,370 Vorto en kordoj, pardonon, estas sinonima. 1073 00:48:26,370 --> 00:48:28,370 Mi tuj ŝanĝi ilin signifi la saman aferon. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Yeah. 1076 00:48:33,499 --> 00:48:34,540 Prenu kelkajn minutojn. 1077 00:48:34,540 --> 00:48:37,130 Ĝi ne devas esti skribita en ajna lingvo. 1078 00:48:37,130 --> 00:48:39,890 Ĝuste en _pseudocode_ kodo aŭ logike kiom ni volus eĉ 1079 00:48:39,890 --> 00:48:42,083 iri pri faranta tian problemon. 1080 00:48:42,083 --> 00:48:42,583 Yeah. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE konversacio] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Mi ankaŭ rimarkis ke vi uloj can-- Mi specon de vidi jam la programon. 1085 00:49:22,130 --> 00:49:24,600 Mi supozas mia manko de anoncisto moduso estas problemo. 1086 00:49:24,600 --> 00:49:27,410 Sed estas okej. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE konversacio] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Jes, bonvolu, knaboj. 1090 00:50:04,380 --> 00:50:05,400 Venu akiri dolĉaĵoj. 1091 00:50:05,400 --> 00:50:06,372 Venu akiri dolĉaĵoj. 1092 00:50:06,372 --> 00:50:07,698 >> Publiko: Jes! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE konversacio] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI PENG: Ankaŭ, jes, Mi komencos ĵetante bombono 1096 00:50:18,100 --> 00:50:20,280 ĉe personoj kiuj ne respondas demandojn. 1097 00:50:20,280 --> 00:50:22,260 Do vi devos respondi demandojn. 1098 00:50:22,260 --> 00:50:24,895 Aŭ mi supozas personoj kiuj ĉu respondi demandojn. 1099 00:50:24,895 --> 00:50:26,070 Yeah, revés. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE konversacio] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 Spektantaro: [inaudible] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI PENG: Yeah. 1105 00:51:18,340 --> 00:51:19,340 Yeah. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE konversacio] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Bone, knaboj. 1109 00:51:41,590 --> 00:51:44,731 Prenu, kiel, ankoraŭ 10 sekundoj. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE konversacio] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> OK, knaboj. 1113 00:52:11,750 --> 00:52:14,920 Do antaŭ ol ni komencas provas fakte fizike skribi kodon, 1114 00:52:14,920 --> 00:52:20,650 bona kutimo disvolvi estas ke ni volas unua speco de kialo 1115 00:52:20,650 --> 00:52:22,737 eksteren logike kiel ni farus ĝin. 1116 00:52:22,737 --> 00:52:24,570 Vi volas certigi, antaŭ vi fizike 1117 00:52:24,570 --> 00:52:27,210 komenci provas kodigi en Mario, ke vi faru 1118 00:52:27,210 --> 00:52:28,870 certe ke vi havas viajn _pseudocode_. 1119 00:52:28,870 --> 00:52:31,235 Kiu prenas vin tra kion vi devas krei tiel 1120 00:52:31,235 --> 00:52:33,360 ke, kiam vi fizike skribi vian programon poste, 1121 00:52:33,360 --> 00:52:36,640 vi povas pli bone kapti eraroj en via kodo kaj aĵoj tiel. 1122 00:52:36,640 --> 00:52:40,460 >> Do ni tuj simple komenci by-- en la angla, en _pseudocode_, 1123 00:52:40,460 --> 00:52:43,320 ĉu iu volas doni mi genérico klarigo 1124 00:52:43,320 --> 00:52:46,250 de kiel ni devus iri pri faranta tion? 1125 00:52:46,250 --> 00:52:48,102 Yeah. 1126 00:52:48,102 --> 00:52:49,664 >> Spektantaro: [inaudible]. 1127 00:52:49,664 --> 00:52:50,830 ANDI PENG: Certe, sen ĉagrenoj. 1128 00:52:50,830 --> 00:52:57,233 Publiko: Cxu vi povas demandi al aŭ demandi iu akiri string 1-- yeah, kordoj, 1129 00:52:57,233 --> 00:52:58,160 kaj tiam-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI PENG: Jes, do ĉi tiu estas bona komenco. 1131 00:52:59,826 --> 00:53:01,972 Mi ektajpu, pardonon, kiel vi parolas. 1132 00:53:01,972 --> 00:53:02,471 So-- 1133 00:53:02,471 --> 00:53:05,698 >> Publiko: --La minuskla nombroj estas pli altaj, ĉu ne? 1134 00:53:05,698 --> 00:53:08,519 Aŭ la minuskla literoj havas altan nombron? 1135 00:53:08,519 --> 00:53:09,310 ANDI PENG: Ekzakte. 1136 00:53:09,310 --> 00:53:16,156 Publiko: Do ​​tiam ni subtrahi 32 el ajn [inaudible]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI PENG: Granda. 1139 00:53:29,870 --> 00:53:35,020 Do ni ia havi ĝeneralan senson de kiel labori pri tiu problemo. 1140 00:53:35,020 --> 00:53:40,060 Sciante ke ni ia lernis la fizika formo ke kordoj 1141 00:53:40,060 --> 00:53:43,320 estas stokitaj en memoro, kion vi jam 1142 00:53:43,320 --> 00:53:45,920 scias ke vi tuj probable devas skribi en via kodo 1143 00:53:45,920 --> 00:53:48,288 por movi tra la kordo? 1144 00:53:48,288 --> 00:53:49,259 >> Publiko: Por buklo. 1145 00:53:49,259 --> 00:53:50,550 ANDI PENG: A por buklo, ekzakte. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Granda. 1148 00:53:57,220 --> 00:54:00,539 Do ni ia havas normalan _pseudocode_ skribita malsupren 1149 00:54:00,539 --> 00:54:02,330 tian donas vi rimarkas sur kiel vi 1150 00:54:02,330 --> 00:54:03,900 movus pri solvi la problemon. 1151 00:54:03,900 --> 00:54:06,150 Nun ke vi havas ĉi, vi povas referenci ĝin por posta 1152 00:54:06,150 --> 00:54:08,233 sur kiam vi provas fakte skribi vian kodon. 1153 00:54:08,233 --> 00:54:10,240 Do ni povas reale iros tien. 1154 00:54:10,240 --> 00:54:25,130 Kaj mi havas funkcion nomita upper.c-- tie is-- de nur malplenan ŝablonon 1155 00:54:25,130 --> 00:54:28,510 nun ke vi uloj estas irantaj helpi min diveni pri kiel skribi 1156 00:54:28,510 --> 00:54:30,430 tiu linio de code-- ne linion de kodo. 1157 00:54:30,430 --> 00:54:32,890 Estos multoblajn liniojn de kodo. 1158 00:54:32,890 --> 00:54:35,710 >> Kiam startanta omnaspeca de malplenan pset, kio estas 1159 00:54:35,710 --> 00:54:37,418 la unua afero Mi bezonas memori fari? 1160 00:54:37,418 --> 00:54:39,290 >> Spektantaro: [inaudible]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI PENG: Granda Yep. 1162 00:54:41,000 --> 00:54:41,500 Inkluzivi. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Ofte ĉi tiu estas unu el la plej facila erarojn personoj 1166 00:54:49,640 --> 00:54:51,598 faros kiam ili estas skribado, estas ke ili devos 1167 00:54:51,598 --> 00:54:54,180 forgesu inkluzivi grava biblioteko ili bezonas. 1168 00:54:54,180 --> 00:54:57,689 Do se ĝi estas oficejo horoj kaj vi estas kiel, Mi ne scias kial mia kodo ne funkcias. 1169 00:54:57,689 --> 00:54:59,230 Ĉu vi povas diri al mi kial ĝi ne funkcias? 1170 00:54:59,230 --> 00:55:00,730 Ni tuj diru vi include? 1171 00:55:00,730 --> 00:55:02,520 Vi devus include ĝin. 1172 00:55:02,520 --> 00:55:03,270 BONE. 1173 00:55:03,270 --> 00:55:07,230 >> Do ni hvas la normo / S tie. 1174 00:55:07,230 --> 00:55:10,740 Ĉu tio estas la sola biblioteko ni tuj bezonas ĉi tie? 1175 00:55:10,740 --> 00:55:12,681 Kion alian ni tuj faros? 1176 00:55:12,681 --> 00:55:13,180 Pardonon. 1177 00:55:13,180 --> 00:55:14,562 Iu ĵus krii gxin? 1178 00:55:14,562 --> 00:55:15,666 >> Spektantaro: [inaudible]. 1179 00:55:15,666 --> 00:55:16,666 ANDI PENG: Tie vi iru. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 BONE. 1182 00:55:21,440 --> 00:55:26,070 Kaj kiel mi iros pri startanta omnaspeca de funkcio, omnaspeca ĉefa funkcio 1183 00:55:26,070 --> 00:55:28,760 ene de nia programo? 1184 00:55:28,760 --> 00:55:30,020 Int main. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 BONE. 1187 00:55:35,030 --> 00:55:35,970 Kion mi meti ene tie? 1188 00:55:35,970 --> 00:55:37,640 Kio estas la unua afero kiun vi volas fari? 1189 00:55:37,640 --> 00:55:39,910 Se ni volas ricevi kordoj de la uzanto, 1190 00:55:39,910 --> 00:55:43,870 kion ni tuj havos fari en tiu unua linio? 1191 00:55:43,870 --> 00:55:46,120 Pardonu, vi uloj nur sentas libera paroli supren kaj laŭte. 1192 00:55:46,120 --> 00:55:47,123 Nur krii ajn. 1193 00:55:47,123 --> 00:55:48,772 >> Publiko: Demandu la uzanto? 1194 00:55:48,772 --> 00:55:49,980 ANDI PENG: Kiel ni faros tion? 1195 00:55:49,980 --> 00:55:51,873 Ask-- mi tuj tajpi "demandu la uzanton"? 1196 00:55:51,873 --> 00:55:52,600 >> Publiko: printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI PENG: OK. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Kion mi volas printf? 1200 00:55:57,372 --> 00:55:58,776 >> Publiko: Tajpu ion. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI PENG: Kiel tio? 1203 00:56:03,840 --> 00:56:05,430 Knaboj, ŝajnigi kiel mi estas komputilo. 1204 00:56:05,430 --> 00:56:08,475 Fizike diru ĉiupaŝe ke mi bezonas tajpi tie ĉi? 1205 00:56:08,475 --> 00:56:09,600 Mi faras ion malĝustan? 1206 00:56:09,600 --> 00:56:10,743 Ĉu mi tajpis ion? 1207 00:56:10,743 --> 00:56:11,690 >> Spektantaro: Vi devas citaĵoj. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI PENG: Mi bezonas citaĵoj? 1209 00:56:12,380 --> 00:56:12,880 BONE. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 BONE. 1212 00:56:16,297 --> 00:56:17,698 >> Publiko: Kaj tiam nova linio. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Punktokomo. 1215 00:56:22,465 --> 00:56:23,340 ANDI PENG: punktokomo? 1216 00:56:23,340 --> 00:56:24,060 BONE. 1217 00:56:24,060 --> 00:56:24,560 Bona. 1218 00:56:24,560 --> 00:56:27,060 >> Publiko: Kaj eble specifi ke vi volas ĝin en minuskla? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI PENG: Granda. 1221 00:56:31,415 --> 00:56:33,540 Vi uloj ridi min forgesante meti punktokomo. 1222 00:56:33,540 --> 00:56:36,350 Mi garantias vin ie en la paso de ĉi tiu klaso, 1223 00:56:36,350 --> 00:56:38,260 vi forgesos meti punktokomo, kaj ĝi 1224 00:56:38,260 --> 00:56:41,116 prenos vin tri horoj kalkuli kial via kodo ne funkcias. 1225 00:56:41,116 --> 00:56:42,240 Ĝi okazis al ni ĉiuj. 1226 00:56:42,240 --> 00:56:43,950 Ĝi verŝajne okazos al vi. 1227 00:56:43,950 --> 00:56:46,352 Get en bona kutimon uzi punktokomojn. 1228 00:56:46,352 --> 00:56:46,852 BONE. 1229 00:56:46,852 --> 00:56:49,010 >> Spektantaro: Ĉu vi volas fari la backslash en? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI PENG: Sure. 1231 00:56:50,398 --> 00:56:51,856 Ĉu vi deziras fari la backslash en? 1232 00:56:51,856 --> 00:56:53,020 >> Publiko: Jes. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI PENG: Granda. 1234 00:56:54,330 --> 00:56:54,830 BONE. 1235 00:56:54,830 --> 00:56:57,872 Kion mi faru? 1236 00:56:57,872 --> 00:56:58,964 >> Publiko: Get kordo. 1237 00:56:58,964 --> 00:56:59,880 ANDI PENG: Get kordo. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Do kion mi tajpas? 1240 00:57:03,830 --> 00:57:04,233 Iu? 1241 00:57:04,233 --> 00:57:05,040 >> Publiko: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI PENG: String s. 1243 00:57:05,873 --> 00:57:07,251 Publiko: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI PENG: Iu, vi povas diri min kie 1245 00:57:09,000 --> 00:57:12,000 tiu funkcio GetString estas venanta de? 1246 00:57:12,000 --> 00:57:13,660 >> Publiko: string.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI PENG: string.h? 1248 00:57:15,256 --> 00:57:16,715 Vi kredas ke estas de string.h? 1249 00:57:16,715 --> 00:57:17,830 >> Spektantaro: [inaudible]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI PENG: Tie vi iru. 1251 00:57:18,830 --> 00:57:21,280 Ĝi estas de cs50.h. 1252 00:57:21,280 --> 00:57:24,530 Se vi ĉiam konfuzita sur kie biblioteko dosiero aŭ kaplinio dosiero, 1253 00:57:24,530 --> 00:57:28,450 Google laŭvorte string.h, kaj mi rakontos al vi 1254 00:57:28,450 --> 00:57:30,450 kio estas ĉiuj funkcioj kiuj estas en string.h. 1255 00:57:30,450 --> 00:57:31,340 BONE. 1256 00:57:31,340 --> 00:57:35,210 >> Do nun ke mi kreis kordo kaj mi havas instigas la uzanton por ĝi, 1257 00:57:35,210 --> 00:57:38,770 Mi jam stokitaj ĝin en variablon nomita s, kion mi devas fari nun? 1258 00:57:38,770 --> 00:57:40,652 >> Publiko: Kontroli se ĝi estas en minuskla. 1259 00:57:40,652 --> 00:57:41,360 ANDI PENG: Pardonu? 1260 00:57:41,360 --> 00:57:42,545 Publiko: Kontroli se ĝi estas en minuskla. 1261 00:57:42,545 --> 00:57:44,045 ANDI PENG: Bone, ni faru tion. 1262 00:57:44,045 --> 00:57:45,857 Kiel mi faru tion? 1263 00:57:45,857 --> 00:57:47,940 Fakte, por la celoj de la klaso nun, 1264 00:57:47,940 --> 00:57:50,330 ni nur tuj supozas ke ĉiu 1265 00:57:50,330 --> 00:57:52,620 ke ni enigo estas jam en minuskla. 1266 00:57:52,620 --> 00:57:55,430 Se vi volas kontroli, vi farus simple aldonu kondiĉa deklaro 1267 00:57:55,430 --> 00:57:59,640 ke plejda, kiu kuris tra ĉiu ununura tabelo elemento 1268 00:57:59,640 --> 00:58:02,540 kaj kontrolis se ĝi estas inter certaj valoroj. 1269 00:58:02,540 --> 00:58:05,627 Mi forgesos, kion la nombro de valoroj de minuskla estas. 1270 00:58:05,627 --> 00:58:07,210 Vi povas rigardi ĝin supre sur la ASCII tablo. 1271 00:58:07,210 --> 00:58:08,800 Sed jes, tio estas vere bona punkto. 1272 00:58:08,800 --> 00:58:11,758 Sed nun, ni nur tuj supozi ke ĉiuj kordoj ni enigo 1273 00:58:11,758 --> 00:58:13,130 estas en minuskla. 1274 00:58:13,130 --> 00:58:13,870 BONE. 1275 00:58:13,870 --> 00:58:18,069 >> Do kiel mi iros pri tiun problemon poste? 1276 00:58:18,069 --> 00:58:18,860 Publiko: Por buklo. 1277 00:58:18,860 --> 00:58:19,340 ANDI PENG: Por buklo? 1278 00:58:19,340 --> 00:58:19,839 BONE. 1279 00:58:19,839 --> 00:58:20,847 Diru al mi kion tajpi. 1280 00:58:20,847 --> 00:58:25,230 >> Publiko: Por int i egalas 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI PENG: OK. 1282 00:58:27,230 --> 00:58:36,350 >> Publiko: Ho, vere, tiam vi fari komo kaj do n egalas strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI PENG: Tiel grava afero ke mi opinias ke ŝi rimarkis tie 1284 00:58:38,940 --> 00:58:42,936 estas ke ni ne devas diri int n duafoje ni faris. 1285 00:58:42,936 --> 00:58:45,060 Nur scias ke en por buklo kiam vi deklarante, 1286 00:58:45,060 --> 00:58:47,934 vi fakte ne bezonas la int de duafoje vi fari variablo. 1287 00:58:47,934 --> 00:58:51,202 Vi povas diri n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> Publiko: De s. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI PENG: s. 1290 00:58:53,510 --> 00:58:54,706 BONE. 1291 00:58:54,706 --> 00:58:58,370 >> Publiko: Tiam punktokomo. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI PENG: Sure. 1293 00:59:00,130 --> 00:59:04,050 >> Publiko: Kaj poste [inaudible] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Tiam i ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI PENG: Granda. 1297 00:59:11,780 --> 00:59:12,280 Bone. 1298 00:59:12,280 --> 00:59:14,690 Kion ni volas ene de tiu por buklo nun? 1299 00:59:14,690 --> 00:59:17,820 Memoru, se ni tuj kuri tra kordo kaj kuri tra tabelo, 1300 00:59:17,820 --> 00:59:19,287 ni volas kontroli aferojn en ĝi. 1301 00:59:19,287 --> 00:59:20,370 Kion ni bezonas? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Tiu estas speco de la malfacila parto nun. 1304 00:59:26,900 --> 00:59:27,960 Ĉiu havas konjekton? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> BONE. 1307 00:59:34,690 --> 00:59:37,830 Do unue, kial ni ecx aliri? 1308 00:59:37,830 --> 00:59:41,610 Kiel ni eĉ unua ĉeko aŭ aliri elementon en la tabelo? 1309 00:59:41,610 --> 00:59:42,920 Kiel ni faru tion? 1310 00:59:42,920 --> 00:59:47,120 Kio estas la skribmaniero ni uzu por fari tion? 1311 00:59:47,120 --> 00:59:50,920 Kio estas la nomo de tiu tabelo nomas? 1312 00:59:50,920 --> 00:59:52,400 Ĝi nomiĝas S, ĉu ne? 1313 00:59:52,400 --> 00:59:54,850 >> Memoru, ajna ŝnuro estas ĉiam tabelo. 1314 00:59:54,850 --> 00:59:58,210 Do s krampo i, dekstra? 1315 00:59:58,210 --> 01:00:01,360 Ĉar tiu estas la nuna valoro aŭ indeksa valoro ni kontrolanta. 1316 01:00:01,360 --> 01:00:05,156 Kaj ni tuj metis ke egalaj to-- ni volas minusklan valoron, ĉu ne? 1317 01:00:05,156 --> 01:00:07,530 Ni volas igi tiun lower-- Mizera, ni volas majuskla. 1318 01:00:07,530 --> 01:00:10,014 Ni volas turni la minuskla valoron en majuskle. 1319 01:00:10,014 --> 01:00:11,805 Kaj tiel like-- Mi bedaŭras, Kio estas via nomo? 1320 01:00:11,805 --> 01:00:12,580 >> Publiko: Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI PENG: Pardonu? 1322 01:00:12,940 --> 01:00:13,280 >> Publiko: Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI PENG: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Kiel Heidi diris komence, ni probable 1325 01:00:15,850 --> 01:00:20,330 tuj bezonas the-- ni estas probable tuj devos subtrahi 1326 01:00:20,330 --> 01:00:22,630 32 el ajn charc ke estas, ĉu ne? 1327 01:00:22,630 --> 01:00:24,680 Ĉar sur ASCII tablo, la diferenco 1328 01:00:24,680 --> 01:00:27,790 inter minusklan literon kaj majuskla litero estas 32. 1329 01:00:27,790 --> 01:00:31,290 Do kiam ni faras tion, ni probable tuj volas subtrahi 32, dekstra? 1330 01:00:31,290 --> 01:00:33,910 >> Do ni tuj faros s i. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Ĉu ĉiuj komprenis kial mi faris tion? 1333 01:00:41,200 --> 01:00:45,760 Ĉar nun, en nia tabelo, ni kontrolanta la 0th indekso, dekstra? 1334 01:00:45,760 --> 01:00:49,190 Kaj en la 0th indekso de la kordo, tio estas la unua karaktero. 1335 01:00:49,190 --> 01:00:51,820 Kaj ke karaktero ni iras supozi ĝi estas minuskla. 1336 01:00:51,820 --> 01:00:55,980 Se ni volas fari ĝin majuskle, ni devas subtrahi 32 el ĝia valoro, 1337 01:00:55,980 --> 01:00:58,620 ĉar en nia ASCII tablo, tiel estas kiel ni atingos gxin 1338 01:00:58,620 --> 01:01:01,600 al la sekva responda valoro kiu faras majuskle. 1339 01:01:01,600 --> 01:01:03,714 Ĉu ĉiuj komprenas tion? 1340 01:01:03,714 --> 01:01:04,213 Yeah. 1341 01:01:04,213 --> 01:01:06,530 >> Publiko: povus vi ankaŭ ĉu minuskla a minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI PENG: Yeah, tiel ke estas vere vere bonan. 1343 01:01:08,080 --> 01:01:10,455 Mi tuj revenos al tiu demando post ni faru tion. 1344 01:01:10,455 --> 01:01:11,060 Yeah. 1345 01:01:11,060 --> 01:01:13,940 Kaj poste se mi volas vidi kio okazas, 1346 01:01:13,940 --> 01:01:16,180 Mi verŝajne iranta volas presi, dekstra? 1347 01:01:16,180 --> 01:01:19,930 Iu diru al mi kion Mi volas presi tie. 1348 01:01:19,930 --> 01:01:29,160 >> Publiko: printf procento c backslash [inaudible]. 1349 01:01:29,160 --> 01:01:33,570 Tio estas la valoro de [inaudible] s i. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI PENG: s i, pardonon? 1351 01:01:34,614 --> 01:01:35,530 Spektantaro: [inaudible]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI PENG: Mi ne scias. 1354 01:01:39,550 --> 01:01:40,600 Kion vi pensas? 1355 01:01:40,600 --> 01:01:44,016 >> Publiko: Nu, mi wouldn't-- Mi supozas mi ne bring-- 1356 01:01:44,016 --> 01:01:46,944 Mi prenus ĝin el la ene, ĉar [inaudible]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI PENG: Ho, vi estus farinta tion? 1359 01:01:51,392 --> 01:01:53,867 Publiko: Yeah. 1360 01:01:53,867 --> 01:01:56,700 ANDI PENG: Ni lasi la vojon ĝi estas, kaj mi klarigos kial poste. 1361 01:01:56,700 --> 01:01:58,533 Memoru, eĉ kiam vi havi lokon posedanto, 1362 01:01:58,533 --> 01:02:00,701 vi volas meti krampojn ĉirkaŭ ĝi. 1363 01:02:00,701 --> 01:02:01,200 Bone. 1364 01:02:01,200 --> 01:02:04,810 Do tiu devus esti solida funkcion tie. 1365 01:02:04,810 --> 01:02:06,370 Ni ruli ĝin kaj vidi se ĝi kompilas. 1366 01:02:06,370 --> 01:02:08,750 Faru supra. 1367 01:02:08,750 --> 01:02:09,250 Uh-oh. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 Tio ne aspektas tro bonaj. 1370 01:02:13,340 --> 01:02:14,507 Kial tio okazas? 1371 01:02:14,507 --> 01:02:17,340 Kiel kun ajna eraro, vi volas iri reen kaj komenci kun la unua, 1372 01:02:17,340 --> 01:02:20,630 ĉar tipe unu eraro kaŭzas multaj aliaj eraroj post tio. 1373 01:02:20,630 --> 01:02:26,700 Tie ni vidas upper.c: 18: 25, kiu rakontas mi en tiu programo nomita upper.c, 1374 01:02:26,700 --> 01:02:33,800 sur linio 18, eraro implice deklari biblioteko de funkcioj strlen kun tipo 1375 01:02:33,800 --> 01:02:36,330 unassigned-- bla, mi ne scias kio okazas post tio. 1376 01:02:36,330 --> 01:02:39,990 >> Ĉiuj ĝi diras al mi ĝuste nun estas ke io daŭriĝas la strlen. 1377 01:02:39,990 --> 01:02:43,520 Kaj la komputilo estas konfuzita, ĉar Estas kiel, mi ne scias kion strlen estas? 1378 01:02:43,520 --> 01:02:45,520 Kio faras ke probable diri al vi ke vi mankas? 1379 01:02:45,520 --> 01:02:46,490 >> Spektantaro: Vi mankis [inaudible]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI PENG: Vi pravas. 1381 01:02:47,630 --> 01:02:49,510 Ekzakte. 1382 01:02:49,510 --> 01:02:52,140 Do tiu estas kie ĝi estas grava por certigi 1383 01:02:52,140 --> 01:02:56,970 ke ĉiu funkcio vi uzas en via kodo havas la korektan kaplinio 1384 01:02:56,970 --> 01:02:59,660 peti la biblioteko, aŭ alie vi tuj akiri multan eraroj 1385 01:02:59,660 --> 01:03:01,150 kaj via kodo ne tuj scii kio okazas. 1386 01:03:01,150 --> 01:03:03,050 Do ni tuj inkluzivi string.h tie. 1387 01:03:03,050 --> 01:03:06,270 >> Kiam ni provas kompili supra. 1388 01:03:06,270 --> 01:03:08,410 Kompili korekte. 1389 01:03:08,410 --> 01:03:09,960 Ni kuros ĉi programo. 1390 01:03:09,960 --> 01:03:12,000 Do tajpi ion en minuskla. 1391 01:03:12,000 --> 01:03:14,920 Kion vi uloj volas tajpi? 1392 01:03:14,920 --> 01:03:16,546 Krii ion. 1393 01:03:16,546 --> 01:03:17,920 Bone, Charly ĵus eniris. 1394 01:03:17,920 --> 01:03:18,990 Ni tajpas Charly nomo. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly en minuskla. 1397 01:03:22,840 --> 01:03:27,742 Kaj espereble, espereble, tiu estas tuj krii kaj kraĉi 1398 01:03:27,742 --> 01:03:28,575 Charly en majuskle. 1399 01:03:28,575 --> 01:03:30,830 Yay! 1400 01:03:30,830 --> 01:03:33,430 Ĉu ĉiuj komprenas kiel Mi rondiris solvi tio? 1401 01:03:33,430 --> 01:03:36,190 La vojo ke mi povas manipuli uzante entjeroj 1402 01:03:36,190 --> 01:03:39,410 solvi iu kiu Mi volas fari en kordoj, 1403 01:03:39,410 --> 01:03:44,390 ĉar karakteroj kaj entjeroj povas esti referencataj en la sama maniero ĉar 1404 01:03:44,390 --> 01:03:45,540 de ASCII mapado. 1405 01:03:45,540 --> 01:03:52,890 >> Do reiru al via punkto, se mi volis meti tien anstataŭ 32 1406 01:03:52,890 --> 01:03:58,959 majusklajn A minus minuskla a samkiel ke, kiu laborus egale tiel, 1407 01:03:58,959 --> 01:04:01,750 ĉar tio estas simple nur la diferenco inter tiuj du valoroj. 1408 01:04:01,750 --> 01:04:09,570 Se mi volas fari tiun again-- Charly. 1409 01:04:09,570 --> 01:04:10,320 Ho ne. 1410 01:04:10,320 --> 01:04:11,820 Mi kredas ke ni iris la malĝustan vojon, Yeah? 1411 01:04:11,820 --> 01:04:13,260 >> Spektantaro: [inaudible] minuskla a. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI PENG: Tie vi iru. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Yep. 1415 01:04:22,880 --> 01:04:24,920 Kaj el kraĉas Charly. 1416 01:04:24,920 --> 01:04:28,020 Do zorgu kiam vi subtrahadon valoroj 1417 01:04:28,020 --> 01:04:30,400 memori kiu unu estas pli granda ol la aliaj. 1418 01:04:30,400 --> 01:04:35,220 Ekzemple, ĝis tie mi forgesis ke minuskla a estas reale 1419 01:04:35,220 --> 01:04:38,540 granda ol majusklajn A. Do kiam mi provis subtrahi ilin inverse 1420 01:04:38,540 --> 01:04:40,600 ĉirkaŭ, mi ricevis negativajn 32. 1421 01:04:40,600 --> 01:04:42,800 Kaj mia komputilo estis kiel, Mi ne scias kion tio estas. 1422 01:04:42,800 --> 01:04:45,810 Estas probablo nur iuj hazardaj valoro kiu ne estas tre bona. 1423 01:04:45,810 --> 01:04:48,760 Kaj tiel certigi ke vi estas restante en la ĝusta longo 1424 01:04:48,760 --> 01:04:52,831 trovi la karakteron vi volas. 1425 01:04:52,831 --> 01:04:53,330 BONE. 1426 01:04:53,330 --> 01:04:58,550 Estas iu konfuzita sur kiel ni rondiris skribas tiun funkcion? 1427 01:04:58,550 --> 01:04:59,180 BONE. 1428 01:04:59,180 --> 01:05:04,830 Do efektive, funkcio jam ekzistas en la biblioteko nomita ctype.h. 1429 01:05:04,830 --> 01:05:06,417 La biblioteko nomita ctype.h. 1430 01:05:06,417 --> 01:05:08,500 Tiu funkcio fakte estas jam skribita por vi. 1431 01:05:08,500 --> 01:05:10,820 Ĝi nomiĝas al supra. 1432 01:05:10,820 --> 01:05:13,027 >> Kaj tial por celoj de ĉi pset, vi tuj 1433 01:05:13,027 --> 01:05:15,860 trovi ke vi vere volas uzi multa la funkcioj enhavitaj 1434 01:05:15,860 --> 01:05:17,390 ene la ctype biblioteko. 1435 01:05:17,390 --> 01:05:21,040 Al supra, malaltigi, estas supra, estas lower-- tiuj estas ĉiuj funkcioj 1436 01:05:21,040 --> 01:05:24,914 ke vi povos uzi tre, tre rapide en via propra kodo ke 1437 01:05:24,914 --> 01:05:26,080 faras precize kion tiu faras. 1438 01:05:26,080 --> 01:05:28,941 Ni skribis eksteren kiel konverti ŝnureto al majuskloj. 1439 01:05:28,941 --> 01:05:31,440 Sed tio estas vere la kodo ke iu alia skribis 1440 01:05:31,440 --> 01:05:33,800 kaj ke vi povas aliri tra malsama funkcio. 1441 01:05:33,800 --> 01:05:34,300 Yeah? 1442 01:05:34,300 --> 01:05:39,570 >> Publiko: Do ​​vi simple kopiu -a tien kaj fari ĝin por ĉiu unuopa litero? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI PENG: Jes, ĉar mi ne zorgi pri la valoroj de a. 1444 01:05:42,070 --> 01:05:44,540 Mi nur zorgas ke la diferenco inter ili estas 32, ĉu ne? 1445 01:05:44,540 --> 01:05:48,210 La diferenco inter minuskla b kaj majusklajn B estas ankaŭ 32. 1446 01:05:48,210 --> 01:05:50,860 Kaj la diferenco inter c kaj majusklajn C estas ĉiam 32. 1447 01:05:50,860 --> 01:05:53,235 >> Mi nur devas zorgi pri la diferenco inter la du, 1448 01:05:53,235 --> 01:05:56,666 ĉar ĉiuj literoj sekvas la saman skemon, ĉu ne? 1449 01:05:56,666 --> 01:05:58,540 Se mi havas la diferenco inter unu el ili, 1450 01:05:58,540 --> 01:06:01,050 Mi scias kion la diferenco inter ĉiuj ili estas. 1451 01:06:01,050 --> 01:06:01,740 Bona demando. 1452 01:06:01,740 --> 01:06:04,090 Yeah. 1453 01:06:04,090 --> 01:06:06,660 Ĉiu bona? 1454 01:06:06,660 --> 01:06:09,080 BONE. 1455 01:06:09,080 --> 01:06:09,580 OOP. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> BONE. 1458 01:06:15,270 --> 01:06:20,310 Do alia koncepto tio tuj estos tre utila kiel vi 1459 01:06:20,310 --> 01:06:22,570 daŭrigi evoluigi via kodo estas jena ideo 1460 01:06:22,570 --> 01:06:25,430 krei funkcioj aŭ abstraktaĵo. 1461 01:06:25,430 --> 01:06:28,479 Do nun, ni ĉiuj prenitaj algebro. 1462 01:06:28,479 --> 01:06:31,770 En algebro, vi instruis ke estas tiu mirindaĵo nomita funkcio 1463 01:06:31,770 --> 01:06:35,300 maŝino, kie se vi enigo unu speco de nombro, 1464 01:06:35,300 --> 01:06:38,720 ĝi kuras tra ĉi tiu mirinda funkcio kaj ekstere krevas malsama eligo, dekstra? 1465 01:06:38,720 --> 01:06:42,220 En kodo, la sama afero okazas en ajna speco de funkcio. 1466 01:06:42,220 --> 01:06:48,230 >> Do mi povis fizike skribi en mia korpo de mia kodo 1467 01:06:48,230 --> 01:06:52,357 ĉefa aserto ke fakte faras ajn la korpon de la kodo faras. 1468 01:06:52,357 --> 01:06:54,940 Sed ekstere de tiu, mi povas ankaŭ skribi multajn malsamajn funkciojn 1469 01:06:54,940 --> 01:06:56,320 kiuj faras multajn malsamajn aferojn. 1470 01:06:56,320 --> 01:06:58,570 Ekzemple, ni jam komencis uzi kelkajn. 1471 01:06:58,570 --> 01:07:00,610 Printf-- ke estas funkcio kiu iu alia 1472 01:07:00,610 --> 01:07:02,870 jam skribis ke Ni povas nomi en nia kodo. 1473 01:07:02,870 --> 01:07:05,410 Al upper-- tiukaze upper-- estas alia funkcio 1474 01:07:05,410 --> 01:07:07,330 ni skribis ke ni povas nomi en nia kodo. 1475 01:07:07,330 --> 01:07:09,520 Kaj tial mi supozas kial Ni eĉ havas funkciojn? 1476 01:07:09,520 --> 01:07:12,100 Kial ni ne simple Plop ĝi ĉiuj en la sama linio de kodo? 1477 01:07:12,100 --> 01:07:13,730 Ĝi faras ĝin facila por ĉiuj. 1478 01:07:13,730 --> 01:07:19,200 >> Nu, la rezonado malantaŭ tiu Estas, antaŭ ĉiu, organizo. 1479 01:07:19,200 --> 01:07:21,880 Ĝi estas vere ĝena iranta tra ies kodo 1480 01:07:21,880 --> 01:07:25,110 kaj unu funkcio kiel printf. 1481 01:07:25,110 --> 01:07:28,570 Se vi infanoj vere sciis kio la funkcio printf kunportis skribi, 1482 01:07:28,570 --> 01:07:30,530 ĝi estas, kiel, 1,000 linioj de kodo. 1483 01:07:30,530 --> 01:07:32,357 >> Se ĉiufoje mi volis al printf ion, 1484 01:07:32,357 --> 01:07:35,440 Mi devis skribi 1,000 linioj de kodo, ke estus vere ĝena por legi, 1485 01:07:35,440 --> 01:07:36,290 dekstra? 1486 01:07:36,290 --> 01:07:38,860 Tial ni ĵus kreis ĉi abstrakta funkcio 1487 01:07:38,860 --> 01:07:41,670 ke ni havas jam iu alia skribis aliloke. 1488 01:07:41,670 --> 01:07:44,920 Kaj ĉiufoje ni bezonas uzi ĝin nian kodon, ni nur devas diri printf. 1489 01:07:44,920 --> 01:07:48,070 Kaj kiu povas uzi la funkcion iu alia skribis en nia kodo. 1490 01:07:48,070 --> 01:07:51,020 Ĝi faciligante organize legi kodon. 1491 01:07:51,020 --> 01:07:53,460 >> Due, ĝi estas simpligo. 1492 01:07:53,460 --> 01:07:56,750 Ĝi simpligas la paŝojn ni havas preni por solvi nian problemon. 1493 01:07:56,750 --> 01:07:59,300 Printf, funkcioj kiel printf, funkcioj kiel upper 1494 01:07:59,300 --> 01:08:03,560 estas cxio kiuj nin permesas simpligi niajn kodo malsupren tiel ĝi estas facila. 1495 01:08:03,560 --> 01:08:05,830 Kaj lasta aĵo estas reutilización. 1496 01:08:05,830 --> 01:08:08,710 >> Do la fakto ke ni havas funkcio nomita printf 1497 01:08:08,710 --> 01:08:11,990 ke ni povas nomi multajn malsamajn tempoj kaj permesas ĝin esti reuzebla. 1498 01:08:11,990 --> 01:08:14,980 Se mi skribus printf, Mi nur skribis ĝin unufoje. 1499 01:08:14,980 --> 01:08:16,439 Ĝi ekzistas nur en tiu loko. 1500 01:08:16,439 --> 01:08:19,890 Se mi volis fari ĝin denove, mi farus devas kopii kaj almeti ĉiujn ke 1501 01:08:19,890 --> 01:08:21,760 en mian duan linion de kodo. 1502 01:08:21,760 --> 01:08:24,880 Tial se ni kreas funkcio kiu ekzistas ekster nia ĉefa, 1503 01:08:24,880 --> 01:08:26,880 ni povas simple vokas ĝi kaj reuzi ĝin kiam ajn 1504 01:08:26,880 --> 01:08:29,604 ni bezonas por ke ĝi estas multe pli facila por ni kiel programoj por skribi. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Do la maniero ke ni estus reale skribi funkcio estas tre similaj, ĉu ne? 1507 01:08:35,549 --> 01:08:37,590 Tiu estas speco de la unua petskribo en kiu ni 1508 01:08:37,590 --> 01:08:42,830 vidi funkcio alpreni stilon malsama ol niaj int main malplenon. 1509 01:08:42,830 --> 01:08:46,779 En tiu kazo, se mi volus skribi funkcion nomita q, dekstra? 1510 01:08:46,779 --> 01:08:49,370 >> Kaj la int valoro tie Estas ĉiuj diras al mi, 1511 01:08:49,370 --> 01:08:51,649 Kion mi volas tiun funkcii reveni al mi? 1512 01:08:51,649 --> 01:08:54,484 Se mi volas kubo entjero, Mi tuj volas enigo. 1513 01:08:54,484 --> 01:08:55,525 Tio estas la parametroj. 1514 01:08:55,525 --> 01:08:58,490 Mi tuj enigas valoron de tipo int. 1515 01:08:58,490 --> 01:09:01,300 Kaj mi tuj revenos alia tipo valoro de int. 1516 01:09:01,300 --> 01:09:03,050 Kaj en ĉi tie, kiel vi povas vidi, ĉiuj mi faras 1517 01:09:03,050 --> 01:09:07,300 estas cubing ajn mia enigo estas kiel mia eligo kaj revenante ĝin. 1518 01:09:07,300 --> 01:09:10,790 >> Do ĉiuj ĉi funkcio faras estas prenas ian entjero. 1519 01:09:10,790 --> 01:09:14,979 Ĝi obligas ĝin per sin dufoje tiel ke ĝi kuboj en efekto. 1520 01:09:14,979 --> 01:09:17,729 Kaj tiam ĝi redonas kion ajn tio eligo estas. 1521 01:09:17,729 --> 01:09:20,540 Do en ĉi tiu kazo, ĝi estas du linioj de kodo kiun ni devis verki kromajn. 1522 01:09:20,540 --> 01:09:22,880 Sed se ni volis nomi sur tiu multoblaj tempoj, 1523 01:09:22,880 --> 01:09:26,210 ĝi estas multe pli facila por ke oni linion ĝuste ĉi tie ke estas en kubo ol 1524 01:09:26,210 --> 01:09:28,830 devas iri tra multoblaj tempoj. 1525 01:09:28,830 --> 01:09:34,180 >> Do la vojo kiu esence ajnan formatado por ajna speco de funkcio 1526 01:09:34,180 --> 01:09:36,420 tuj ekzistos similas tie. 1527 01:09:36,420 --> 01:09:38,659 Do ni havas la funkcion nomo. 1528 01:09:38,659 --> 01:09:39,950 En tiu kazo, ĝi nomiĝas kubo. 1529 01:09:39,950 --> 01:09:42,033 Kaj ni nomas ĝin kubo ĉar estas facile memori. 1530 01:09:42,033 --> 01:09:44,220 Vi povas nomi ĝin kvadrata kaj ĝi povas reale esti Cubed. 1531 01:09:44,220 --> 01:09:45,500 Ne gravas. 1532 01:09:45,500 --> 01:09:48,020 Nur nomo ke vi estas asignanta vian funkcion. 1533 01:09:48,020 --> 01:09:51,660 >> Ĉi tie, int, estas la tipo de la parametro necesas. 1534 01:09:51,660 --> 01:09:54,149 Do kio faras ĉi tiu funkcio bezonas por funkcii? 1535 01:09:54,149 --> 01:09:55,990 Nu, ĝi bezonas enigaĵoj. 1536 01:09:55,990 --> 01:09:56,704 Mi nomis ŝin enigo. 1537 01:09:56,704 --> 01:09:58,120 Vi povas nomi ĝin kion ajn vi volas. 1538 01:09:58,120 --> 01:10:00,500 Sed mi bezonos iom da tipo int. 1539 01:10:00,500 --> 01:10:03,730 Ĝi tuj reale ekzekuti kiom estas ene de ĉi tie, 1540 01:10:03,730 --> 01:10:04,990 la korpo de la funkcio. 1541 01:10:04,990 --> 01:10:07,847 Kaj tiam la reveno tipo ĉi tie, ĉi int-- 1542 01:10:07,847 --> 01:10:09,680 All ĝia rakontanta mi estas ke tiu funkcio estas 1543 01:10:09,680 --> 01:10:11,250 tuj revenos al mi int. 1544 01:10:11,250 --> 01:10:14,460 Do ĝi estas tuj prenos en int, kaj ĝi tuj donu vin al int. 1545 01:10:14,460 --> 01:10:17,750 Ĉu ĉiuj komprenas kiel la formatado de tiu speco laboras? 1546 01:10:17,750 --> 01:10:18,250 Malvarmeta. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> BONE. 1549 01:10:25,740 --> 01:10:31,770 Do ne estu maltrankvila se tio ŝajnas iom abstrakta rajto nun. 1550 01:10:31,770 --> 01:10:33,450 Tiu estas iu kiu ni parolos pri. 1551 01:10:33,450 --> 01:10:36,310 Ni plonĝi en profundan poste en la kurso. 1552 01:10:36,310 --> 01:10:41,170 La vojo ke ia ajn alta nivelo abstraktado de tio laboro 1553 01:10:41,170 --> 01:10:43,530 estas ke, en memoro, en via komputilo, ĉiu 1554 01:10:43,530 --> 01:10:47,660 estas stokita en tiu tipo de stako, mi diru. 1555 01:10:47,660 --> 01:10:49,070 >> Do tie supre ĉe la supro. 1556 01:10:49,070 --> 01:10:50,861 Mi ne scias ĉu vi uloj povas vidi ke bone. 1557 01:10:50,861 --> 01:10:52,590 Mi provos zomi. 1558 01:10:52,590 --> 01:10:55,111 Ĉi tie ĉe la supro, ni havi la fizika teksto 1559 01:10:55,111 --> 01:10:57,860 de kio la komputilo estas interpreting-- ĉiuj nuloj kaj ke 1560 01:10:57,860 --> 01:10:59,540 ekzistas en nia komputilo. 1561 01:10:59,540 --> 01:11:03,390 Kaj tiam ni la pravalorizitaj datumoj kaj uninitialized datumoj, 1562 01:11:03,390 --> 01:11:05,340 kion ni nomas tutmonda variablo. 1563 01:11:05,340 --> 01:11:08,200 Do variabloj kiuj ekzistas trans ĉiuj programoj 1564 01:11:08,200 --> 01:11:11,815 kaj tra via tuta, esence, kodo. 1565 01:11:11,815 --> 01:11:13,940 Neniu ĉagrenoj se vi uloj estas ia neklara sur tiu. 1566 01:11:13,940 --> 01:11:16,060 Ĝi ne vere gravas nun. 1567 01:11:16,060 --> 01:11:18,680 >> Kaj tiam ni havas kio estas nomata amaso en stako. 1568 01:11:18,680 --> 01:11:21,140 Pensu pri pilo laŭvorte kiel nur kiel stako de aferoj, 1569 01:11:21,140 --> 01:11:23,098 stako de malsamaj aferojn puŝata sur supro 1570 01:11:23,098 --> 01:11:27,870 de ĉiu alia ke stoki la diversaj variabloj kaj sintakso en via kodo. 1571 01:11:27,870 --> 01:11:31,460 Kaj tiam ĉi tie ĉe la malsupro, ni havas la mediovariabloj 1572 01:11:31,460 --> 01:11:35,480 kion vi ekzekuti ene nur via malgranda linio de kodo. 1573 01:11:35,480 --> 01:11:40,510 >> Kaj ni ĵus tuj zomi en la fakta stako parto. 1574 01:11:40,510 --> 01:11:43,880 Do ĉi tie, se ni devis zomi en sur ĝuste tiu areo de la pilo, 1575 01:11:43,880 --> 01:11:45,140 tiu estas kio similas. 1576 01:11:45,140 --> 01:11:48,590 Kaj jen estas vere bela grava kiam vi infanoj paroli pri funkcioj, 1577 01:11:48,590 --> 01:11:52,330 ĉar rimarki ke la memoro de via komputilo 1578 01:11:52,330 --> 01:11:55,600 estas stoki la variabloj kaj la funkcioj 1579 01:11:55,600 --> 01:11:58,790 kaj la parametroj de ambaŭ via funkcio kaj via ĉefa variabloj 1580 01:11:58,790 --> 01:12:00,190 en malsamaj lokoj. 1581 01:12:00,190 --> 01:12:03,390 >> Do nun, ĉefa estas la fakta funkcio 1582 01:12:03,390 --> 01:12:04,780 ke vi ekzekuti en kodo. 1583 01:12:04,780 --> 01:12:08,050 Vi liaj parametroj stokitaj tie kaj lia loka variabloj stokitaj tie. 1584 01:12:08,050 --> 01:12:12,270 Loka variablo nur signifas ajna variablo ke ekzistas nur ene de tiu funkcio. 1585 01:12:12,270 --> 01:12:15,610 Kaj supre de ĝi, vi havas tiun aparta funkcio nomita kubo. 1586 01:12:15,610 --> 01:12:18,240 Vi havas jen parametroj tiel kiel tiuj lokuloj. 1587 01:12:18,240 --> 01:12:21,540 >> Kaj la kialo vi povas vidi tie estas ke kio 1588 01:12:21,540 --> 01:12:25,030 okazas kiam kubo prenas en valoro de via ĉefa funkcio 1589 01:12:25,030 --> 01:12:27,640 estas ke efektive ĝi estas kopiado ke super. 1590 01:12:27,640 --> 01:12:31,470 Do, se mi volis kubo 2 kaj reveni 8, ke 2 1591 01:12:31,470 --> 01:12:33,730 Efektive inputted kiel parametro kaj estas 1592 01:12:33,730 --> 01:12:37,690 kopiitaj super tiel ke vi havos ŝin ekzistanta en du malsamaj lokoj en memoro. 1593 01:12:37,690 --> 01:12:40,520 Kaj vi devas esti tre zorgema sur memorante kiun el tiuj 1594 01:12:40,520 --> 01:12:42,520 vi fakte manipulanta. 1595 01:12:42,520 --> 01:12:47,170 Kaj ekzemplo de kio okazis ke estus tre, tre malbona 1596 01:12:47,170 --> 01:12:48,050 Ekzistas ĉi tie. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Do ĉi tie, mi havas, en teorio, programo tie ĉi, ĉefa funkcio 1599 01:12:58,650 --> 01:13:02,180 ke mi deklarante int x egalas 1. 1600 01:13:02,180 --> 01:13:04,505 Mi deklarante alia int y egalas 2. 1601 01:13:04,505 --> 01:13:06,380 Kaj poste mi kurante ĝin tra ĉi tiu funkcio 1602 01:13:06,380 --> 01:13:09,647 nomita interŝanĝa, kie mi supozas ke ĝi estas interŝanĝi la du valoroj. 1603 01:13:09,647 --> 01:13:11,480 Kaj tiam mi tuj presi ilin, ĉu ne? 1604 01:13:11,480 --> 01:13:13,220 Tion mi volas tiun programon fari. 1605 01:13:13,220 --> 01:13:15,180 >> Do ni malsupreniru kaj rigardu. 1606 01:13:15,180 --> 01:13:18,200 Do, se mi vere skribos alian funkcio, kiel vi povas vidi, 1607 01:13:18,200 --> 01:13:19,750 ni havos niajn ĉefa funkcio tie. 1608 01:13:19,750 --> 01:13:22,860 Kaj tiam ni havas niajn dua funkcio tie. 1609 01:13:22,860 --> 01:13:24,520 Void interŝanĝa. 1610 01:13:24,520 --> 01:13:27,090 Void signifas nur ke ĝi estas Ne tuj revenos ion. 1611 01:13:27,090 --> 01:13:28,930 La funkcio nomiĝas nomita interŝanĝa, kaj ĝi estas 1612 01:13:28,930 --> 01:13:33,730 tuj konsumado du variabloj, int a kaj int b, de viaj [inaudible] funkcio. 1613 01:13:33,730 --> 01:13:39,010 >> Do esence en tie, ni estas pasante x kaj y en tiu funkcio. 1614 01:13:39,010 --> 01:13:40,760 Kaj se ni devis krei this-- tiel ni volas 1615 01:13:40,760 --> 01:13:42,420 krei provizoran valoron, ĉu ne? 1616 01:13:42,420 --> 01:13:43,930 Ni tuj asignos tiun al. 1617 01:13:43,930 --> 01:13:45,388 Kaj tiam tuj nun egala b. 1618 01:13:45,388 --> 01:13:47,660 Kaj b tuj revenos kie la temp valoro estis, 1619 01:13:47,660 --> 01:13:51,070 kiu estas, ĉar kiam vi volas interŝanĝi aferojn, 1620 01:13:51,070 --> 01:13:52,320 ne eblas simple ŝatas interŝanĝi ilin. 1621 01:13:52,320 --> 01:13:54,360 >> Vi devi teni unu el tie por ke ĝi memoras 1622 01:13:54,360 --> 01:13:56,485 kio tio estas, ĉar fojo vi interŝanĝi unu, vi forgesas 1623 01:13:56,485 --> 01:13:58,200 kion tiu originala valoro estis, ĉu ne? 1624 01:13:58,200 --> 01:14:00,990 Do teorie, ĉi programo devus labori, ĉu ne? 1625 01:14:00,990 --> 01:14:03,630 Se mi volus interŝanĝi la du, oni devas interŝanĝi. 1626 01:14:03,630 --> 01:14:05,490 Do ni ruli ĝin kaj vidos se ĝi funkcias. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Do kiel vi uloj povas vidi, x Estis iam 1 kaj y iam 2. 1629 01:14:16,940 --> 01:14:21,475 Kaj se mi presas ĝin, x estas ankoraŭ 1 kaj y estas 2. 1630 01:14:21,475 --> 01:14:25,970 Hmm, tiu programo ne ŝajnas esti laboranta mian vojon volas labori. 1631 01:14:25,970 --> 01:14:29,950 Ĉu iu volas preni pafon ĉe konjektanta kial tio okazis? 1632 01:14:29,950 --> 01:14:34,430 Ĝi devas vidi kun la maniero ke malsamaj aferoj estas 1633 01:14:34,430 --> 01:14:38,172 entenita en malsamaj lokoj en memoro. 1634 01:14:38,172 --> 01:14:39,377 >> BONE. 1635 01:14:39,377 --> 01:14:41,960 Do vi infanoj ne devas maltrankviligi tro multe pri ĉi tiu momento. 1636 01:14:41,960 --> 01:14:46,610 Sed scias ke kubaj loka variabloj estis a kaj b, 1637 01:14:46,610 --> 01:14:49,230 ĉar tie en nia funkcio, ni deklaras kaj b 1638 01:14:49,230 --> 01:14:53,570 kiel la variabloj kiuj ekzistas ene kubo, tiu funkcio. 1639 01:14:53,570 --> 01:14:59,490 Sed kiel vi povas vidi, ke la parametroj ĝi estas prenanta en estis estanta stokita tie. 1640 01:14:59,490 --> 01:15:01,370 Sed ni estis ne reale reveninte nenion. 1641 01:15:01,370 --> 01:15:03,120 Ni ne vere ŝanĝas x kaj y. 1642 01:15:03,120 --> 01:15:04,440 Ni estis ĵus ŝanĝanta kaj b. 1643 01:15:04,440 --> 01:15:08,340 >> Ni estis kopiinta x kaj y en iu nomita kaj b. 1644 01:15:08,340 --> 01:15:11,092 Sed ni neniam reale manipulita x kaj y sin. 1645 01:15:11,092 --> 01:15:12,800 Ĉu vi infanoj vidante ke okazas? 1646 01:15:12,800 --> 01:15:16,140 Estas ke ni simple kopiis ĝin super, sed ni ne efektive tenis 1647 01:15:16,140 --> 01:15:18,030 trako de kie ili estis en memoro. 1648 01:15:18,030 --> 01:15:20,127 >> Kaj tial nun la komputilo serĉas, ho, mi havas 1649 01:15:20,127 --> 01:15:21,960 kuri tion tra tiu bela funkcio. 1650 01:15:21,960 --> 01:15:23,690 Sed x kaj y estas ankoraŭ x kaj y. 1651 01:15:23,690 --> 01:15:26,240 Nenio okazis al ilin pro la fakto 1652 01:15:26,240 --> 01:15:28,340 ke tiuj parametroj kaj lokaj variabloj 1653 01:15:28,340 --> 01:15:30,150 estas stokitaj en malsamaj meti en memoron. 1654 01:15:30,150 --> 01:15:32,030 Kaj tiu estas pli alta-nivelo koncepto ke ni 1655 01:15:32,030 --> 01:15:34,300 komencas vidi pli poste en la kurso. 1656 01:15:34,300 --> 01:15:36,950 Sed ĵus scias ke tiu estas problemo kiu povas okazi 1657 01:15:36,950 --> 01:15:41,400 kaj ke ni elkompreni manieroj sur kiel trakti ĉi poste en la kurso. 1658 01:15:41,400 --> 01:15:41,900 BONE. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 Bone. 1661 01:15:48,250 --> 01:15:51,780 Do la lasta koncepto ni estas vere tuj kovros 1662 01:15:51,780 --> 01:15:53,880 ke tuj estos utila por la pset tiu semajno 1663 01:15:53,880 --> 01:15:56,060 estas kio nomas komandliniajn argumentojn. 1664 01:15:56,060 --> 01:16:00,820 Do Rob en sia prelego trapasis ia brevemente sur kiel tiuj laboroj. 1665 01:16:00,820 --> 01:16:02,770 Esence scias ke kiam vi skribas 1666 01:16:02,770 --> 01:16:06,280 kiel ĉefa funkcio, kiam ni skribis funkcioj antaŭe en la pasinteco, 1667 01:16:06,280 --> 01:16:07,804 ni havis int main malplenon. 1668 01:16:07,804 --> 01:16:10,470 Kaj la kialo ni devis malplenon tie estis ĉar niaj programoj ne 1669 01:16:10,470 --> 01:16:12,520 bezonas enigo valoroj kuri, ĉu ne? 1670 01:16:12,520 --> 01:16:16,020 Kiam mi kuris Mario, mi ne bezonis por fakte simple entajpi ion 1671 01:16:16,020 --> 01:16:16,970 kiam mi kuris Mario. 1672 01:16:16,970 --> 01:16:20,170 Mi povus instigi la uzanton poste. 1673 01:16:20,170 --> 01:16:22,450 Sed tio ne ĉiam la kazo. 1674 01:16:22,450 --> 01:16:24,980 >> Ekzemple, en ĉi semajno problemo aroj, 1675 01:16:24,980 --> 01:16:28,365 vi tuj demandos ke, Krom kurante via programo, 1676 01:16:28,365 --> 01:16:30,990 vi tuj volas enigi iujn aferojn en rekta kiel vi 1677 01:16:30,990 --> 01:16:32,050 kuri via programo. 1678 01:16:32,050 --> 01:16:34,720 Do la vojo ni fari kion oni nomas komandlinio argumento, kiun 1679 01:16:34,720 --> 01:16:37,280 estas kiel argumento vi povas enigo rekte 1680 01:16:37,280 --> 01:16:39,260 kiel vi provas kuri vian programon. 1681 01:16:39,260 --> 01:16:44,680 >> Do la skribmaniero por tio, ĝi estas sufiĉe kompleksa-rigardanta, 1682 01:16:44,680 --> 01:16:47,320 sed ĝi estas vere ne ke malfacila. Do int main-- 1683 01:16:47,320 --> 01:16:48,910 tio estas nur via ĉefa funkcio. 1684 01:16:48,910 --> 01:16:52,110 En argc komo kordo argv krampoj. 1685 01:16:52,110 --> 01:16:56,040 Do ĉio tio, kio diras estas ke ĉi int argc-- ĉiuj kiu estas diranta vin 1686 01:16:56,040 --> 01:17:00,560 estas kiu tiuj estas la nombro de argumentoj la komputilo devus atendi. 1687 01:17:00,560 --> 01:17:03,130 >> Do unu afero kiu vere Gravas sekvigi 1688 01:17:03,130 --> 01:17:07,080 estas la fizika nomo de via programo rakontas kiel unu el tiuj argumentoj. 1689 01:17:07,080 --> 01:17:11,080 Do, se mi volis havi mian programon kuri plus unu plian komandlinio 1690 01:17:11,080 --> 01:17:13,310 argumento, mi reale tuj havas du. 1691 01:17:13,310 --> 01:17:15,080 Argc efektive tuj estos du. 1692 01:17:15,080 --> 01:17:18,010 Kaj tiam string argv bracket-- ĉiu kio faras, 1693 01:17:18,010 --> 01:17:20,410 ĝi estas donanta min tabelo de kordoj tio 1694 01:17:20,410 --> 01:17:24,870 tuj ĝuste montri kaj stoki kion ĉiuj tiuj komandlinio argumentoj estas. 1695 01:17:24,870 --> 01:17:34,090 >> Do ekzemple, se mi volis havi tiun programo, ./copy infile outfile, dekstra? 1696 01:17:34,090 --> 01:17:37,330 Tio estas nur tipa Linukso komando. 1697 01:17:37,330 --> 01:17:38,830 Kio fakte estas argc? 1698 01:17:38,830 --> 01:17:41,320 Kiom komandliniajn argumentojn estas tie efektive en tio? 1699 01:17:41,320 --> 01:17:45,130 Ĉio ĉi faras estas fari kopion de an infile de la nomo de unu dosiero 1700 01:17:45,130 --> 01:17:47,070 kaj ĝi kopias ĝin alia dosiero, dekstra? 1701 01:17:47,070 --> 01:17:48,700 Tio estas ĉio ĉi faras. 1702 01:17:48,700 --> 01:17:53,080 Kiel vi povas vidi, mi faras ĝin sur unu linio sen fakte bezoni la programon. 1703 01:17:53,080 --> 01:17:55,380 >> Kio estas nia argc tiukaze? 1704 01:17:55,380 --> 01:17:58,968 Kiom da argumentoj ni havas? 1705 01:17:58,968 --> 01:17:59,634 Publiko: Tri? 1706 01:17:59,634 --> 01:18:01,200 ANDI PENG: Ni havas tri, precize. 1707 01:18:01,200 --> 01:18:05,030 Do estas tre intuicia imagu ke ĝi estas nur 1708 01:18:05,030 --> 01:18:06,290 la infile kaj la outfile. 1709 01:18:06,290 --> 01:18:10,190 Sed scias ke la fizika nomo de la programo vi uzas grafoj unu. 1710 01:18:10,190 --> 01:18:13,220 Do en ĉi tiu kazo, argc estas fakte tri. 1711 01:18:13,220 --> 01:18:15,860 Kiom proksimume, kio estas argv 0? 1712 01:18:15,860 --> 01:18:18,180 Memoru, ĉiuj la komandliniajn argumentojn 1713 01:18:18,180 --> 01:18:20,500 estis stokitaj en tabelo de kordoj. 1714 01:18:20,500 --> 01:18:24,140 Do se mi provas aliri ĝin, kio estus argv krampo 0 donas min? 1715 01:18:24,140 --> 01:18:25,364 >> Spektantaro: [inaudible]. 1716 01:18:25,364 --> 01:18:26,155 ANDI PENG: Ekzakte. 1717 01:18:26,155 --> 01:18:28,550 Ĝi donus min la skalara oblikvo kopion, ĉar tio estas 1718 01:18:28,550 --> 01:18:31,070 la 0th elementon, la unua elemento de mia tabelo. 1719 01:18:31,070 --> 01:18:33,236 Kio pri argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> Publiko: Infile. 1721 01:18:33,945 --> 01:18:35,070 ANDI PENG: Infile, precize. 1722 01:18:35,070 --> 01:18:36,272 Kio pri argv 2? 1723 01:18:36,272 --> 01:18:37,022 Publiko: Outfile. 1724 01:18:37,022 --> 01:18:38,190 ANDI PENG: Outfile. 1725 01:18:38,190 --> 01:18:39,290 Tiu estas iom malfacila nun. 1726 01:18:39,290 --> 01:18:42,630 Kion vi uloj pensas argv 3 tuj estos donante min 1727 01:18:42,630 --> 01:18:45,522 se mi provis presi ke eksteren? 1728 01:18:45,522 --> 01:18:48,260 >> Spektantaro: [inaudible]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI PENG: Ĉu vi havas manon supren? 1730 01:18:50,164 --> 01:18:50,663 Yeah. 1731 01:18:50,663 --> 01:18:51,550 >> Publiko: Alternativo. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI PENG: Ekzakte. 1733 01:18:52,341 --> 01:18:55,440 Do memoru en prelego ke ni havi fine de raso ion 1734 01:18:55,440 --> 01:18:56,640 nomita nula Terminator? 1735 01:18:56,640 --> 01:18:58,890 Ni enir ĉi ankaŭ pli tie en la klaso. 1736 01:18:58,890 --> 01:19:02,472 Sed sciu, ke en notacio, la vojo via komputilo 1737 01:19:02,472 --> 01:19:04,430 scias ke ĝi estas la fino de la tabelo estas ke 1738 01:19:04,430 --> 01:19:07,310 metas ion nomatan nulan terminator aŭ haltostreko nulo. 1739 01:19:07,310 --> 01:19:12,047 >> Do se vi provas atingi argv 3, vi tuj trafis ĉi haltostreko 0. 1740 01:19:12,047 --> 01:19:13,630 Tio estas eĉ pli de truko demando. 1741 01:19:13,630 --> 01:19:17,020 Kio pri argv 4? 1742 01:19:17,020 --> 01:19:20,920 Do tiu estas pasinteco nula Terminator, preter la limojn de nia tabelo. 1743 01:19:20,920 --> 01:19:24,380 Kion vi pensas tuj okazi kiam ni provas fari tion? 1744 01:19:24,380 --> 01:19:25,842 >> Spektantaro: [inaudible]? 1745 01:19:25,842 --> 01:19:26,550 ANDI PENG: Pardonu? 1746 01:19:26,550 --> 01:19:28,025 Diru tion iom pli laŭta? 1747 01:19:28,025 --> 01:19:29,086 >> Spektantaro: [inaudible]. 1748 01:19:29,086 --> 01:19:29,710 ANDI PENG: Jes. 1749 01:19:29,710 --> 01:19:32,420 Tio estas la nomo de la spaco vi plej verŝajne akiri. 1750 01:19:32,420 --> 01:19:36,610 Sed scias ke argv 4-- kiu permesas aliro 1751 01:19:36,610 --> 01:19:38,610 lokoj en via komputilo memoro kiun vi vere 1752 01:19:38,610 --> 01:19:41,650 ne devus esti emotiva, ĉar nun vi scias, kio argv estas. 1753 01:19:41,650 --> 01:19:46,220 Vi scias ke ĝi estas tabelo de amplekso 3 kiu havas skalara kopion, infile kaj outfile. 1754 01:19:46,220 --> 01:19:50,200 >> Se vi provos iri tiel ege preter tio ke vi estas preter la nula Terminator, 1755 01:19:50,200 --> 01:19:53,050 via komputilo havas probable stokitaj en argv ion 4. 1756 01:19:53,050 --> 01:19:55,790 Kaj vi vere ne devus esti permesita aliro en argv 4, 1757 01:19:55,790 --> 01:19:58,130 ĉar vi havas dosieron kabineto kaj vi estas nur 1758 01:19:58,130 --> 01:19:59,790 permesis aliron al tiuj tri bretoj. 1759 01:19:59,790 --> 01:20:02,870 Sed se vi provas atingi vojon preter la breto de kie vi estas permesata, 1760 01:20:02,870 --> 01:20:04,930 vi tuj komencu rompado kun aliajn aferojn en via komputilo la memoro. 1761 01:20:04,930 --> 01:20:06,690 Tio tuj estos vere, vere malbona. 1762 01:20:06,690 --> 01:20:07,440 Do simple scias. 1763 01:20:07,440 --> 01:20:10,370 Zorgu ke vi ne nur hazarde komenci 1764 01:20:10,370 --> 01:20:14,772 alirante elementoj en tabelo ke ne estis en kion vi volis krei. 1765 01:20:14,772 --> 01:20:17,114 Yep. 1766 01:20:17,114 --> 01:20:18,430 >> BONE. 1767 01:20:18,430 --> 01:20:26,360 Do ni tuj faros alian terminalo ekzemplo tie. 1768 01:20:26,360 --> 01:20:27,300 BONE. 1769 01:20:27,300 --> 01:20:29,900 Do Rob rapide en prelego la alia tago iris 1770 01:20:29,900 --> 01:20:35,040 tra ĉi tiu ekzemplo, kie li havis int ĉefa int argc kordo argv 1771 01:20:35,040 --> 01:20:39,090 krampoj, kiu diras al mi ke mi estas tuj havas komandlinio argumentoj. 1772 01:20:39,090 --> 01:20:41,860 >> Li havas, se argc egalas egalas 2-- memoras, 1773 01:20:41,860 --> 01:20:45,070 egalas egaluloj signifas komparon. 1774 01:20:45,070 --> 01:20:47,980 Se ĝi egalas 2, tiam mi estas presigos saluton, 1775 01:20:47,980 --> 01:20:51,190 nenial la unua elemento de la tabelo estas. 1776 01:20:51,190 --> 01:20:54,100 Else presi, saluton mondo. 1777 01:20:54,100 --> 01:20:56,300 Kio estas tiu iranta okazi esence? 1778 01:20:56,300 --> 01:21:00,570 Ĉu iu simple ekspliki en Angla kion tiu programo faras? 1779 01:21:00,570 --> 01:21:01,272 Yeah. 1780 01:21:01,272 --> 01:21:08,160 >> Publiko: Se iu tajpita en komando kaj diris ilia unua kaj lasta nomo, 1781 01:21:08,160 --> 01:21:12,096 ĝi ne simple printi la unua kaj diri, saluton, 1782 01:21:12,096 --> 01:21:14,090 ajn via antaŭnomo estas. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI PENG: OK, ni kuros ĝin. 1784 01:21:15,410 --> 01:21:22,470 Do ekzemple, se mi estus fari dosiero fari saluton to-- saluton 1785 01:21:22,470 --> 01:21:24,500 to-- kion vi volas ke mi povu enmeti? 1786 01:21:24,500 --> 01:21:25,900 >> Publiko: Unua kaj lasta nomo. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI PENG: Unua kaj familinomo? 1788 01:21:27,280 --> 01:21:28,180 Spacetoj? 1789 01:21:28,180 --> 01:21:29,690 >> Publiko: Yeah. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI PENG: Ĉu iu povas diri mi nun, kia estas argc? 1791 01:21:33,490 --> 01:21:35,630 Uste tie? 1792 01:21:35,630 --> 01:21:36,290 Oops, sorry. 1793 01:21:36,290 --> 01:21:37,920 Lasu min reiri. 1794 01:21:37,920 --> 01:21:40,740 Kiom komandliniajn argumentojn are-- vi uloj ne povas vere vidi. 1795 01:21:40,740 --> 01:21:43,760 Sed mi provos zomi. 1796 01:21:43,760 --> 01:21:44,290 Mi provas. 1797 01:21:44,290 --> 01:21:45,414 Jes, tie estas tri, ĉu ne? 1798 01:21:45,414 --> 01:21:48,750 Estas dot oblikvo saluton, ĝi estas Andi, kaj ĝi estas Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Do kio vi uloj pensas ĉi programo tuj estos presi el? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Oh. 1802 01:21:56,060 --> 01:21:57,120 Ho, pardonon. 1803 01:21:57,120 --> 01:21:57,810 Malĝusta nomo. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 Ĝi estas presi el, saluton mondo. 1806 01:22:06,130 --> 01:22:09,603 Ĉu iu volas klarigi kial tio okazas? 1807 01:22:09,603 --> 01:22:10,103 Yeah? 1808 01:22:10,103 --> 01:22:11,019 >> Spektantaro: [inaudible]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI PENG: Ekzakte. 1811 01:22:15,230 --> 01:22:19,940 Do jen, estas kondiĉa estas, se argc egalas egalas 2. 1812 01:22:19,940 --> 01:22:23,650 Do nur en la kazo ke ekzistas du komandlinio argumentoj. 1813 01:22:23,650 --> 01:22:25,850 Tiam mi tuj presi, saluton, kio ajn ĝi estas. 1814 01:22:25,850 --> 01:22:28,210 Sed alie, mi tuj presi nur, saluton mondo. 1815 01:22:28,210 --> 01:22:30,040 Do ĉu iu volas doni al mi ekzemplon 1816 01:22:30,040 --> 01:22:35,050 de kiel mi povus reale akiri ĝin por presi la valoro de argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Kion mi devas enigo tie? 1818 01:22:38,600 --> 01:22:39,840 Nur unu afero, ĉu ne? 1819 01:22:39,840 --> 01:22:42,900 Pro la skalara saluton al jam grafoj kiel la unua argumento. 1820 01:22:42,900 --> 01:22:43,930 Mi nur havas unu pli. 1821 01:22:43,930 --> 01:22:46,470 Do dot saluton se mi nur faru Andi. 1822 01:22:46,470 --> 01:22:47,270 Saluton, Andi. 1823 01:22:47,270 --> 01:22:49,186 Ĉu ĉiuj komprenos kial tio okazas? 1824 01:22:49,186 --> 01:22:49,602 Yeah. 1825 01:22:49,602 --> 01:22:52,500 >> Publiko: Do ​​la spaco inter la komando line-- estas [inaudible]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: No. 1828 01:22:56,830 --> 01:23:03,810 Do la spaco en komandlinio argumenton, x, diri via komputilo 1829 01:23:03,810 --> 01:23:06,820 ke tiu estas la komenco de nova linio. 1830 01:23:06,820 --> 01:23:11,130 Do string argv here-- ŝin tendencas ĉiujn viajn ordonojn argumentoj 1831 01:23:11,130 --> 01:23:13,110 en kordoj. 1832 01:23:13,110 --> 01:23:17,420 Kaj tial la spaco en la komandlinio argument-- ĉiuj kiu faras estas diri al vi, 1833 01:23:17,420 --> 01:23:21,030 tiu estas je la fino de unu ŝnuro Kaj ĝi estas tempo pluiri al alia. 1834 01:23:21,030 --> 01:23:21,990 >> Yeah. 1835 01:23:21,990 --> 01:23:23,530 Tiu estas sufiĉe grava por vian pset, ĉar vi estas 1836 01:23:23,530 --> 01:23:24,613 tuj esti provante tiuj. 1837 01:23:24,613 --> 01:23:29,300 Do ĉu iu havas demandojn sur tio? 1838 01:23:29,300 --> 01:23:30,016 Bone, mojose. 1839 01:23:30,016 --> 01:23:30,515 Yeah? 1840 01:23:30,515 --> 01:23:35,008 >> Publiko: Do ​​la kialo vi volus metis entjera argumento Calc anstataŭe 1841 01:23:35,008 --> 01:23:40,059 de [inaudible] estus kiam vi volas tajpi aldonan informon al 1842 01:23:40,059 --> 01:23:41,030 [Inaudible]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI PENG: Jes, ĝuste. 1844 01:23:42,090 --> 01:23:45,370 Iuj programoj postulos vin povu enmeti komandlinio argumento 1845 01:23:45,370 --> 01:23:47,732 ke pasas en kaj kiu uzas tiun. 1846 01:23:47,732 --> 01:23:49,035 Yeah. 1847 01:23:49,035 --> 01:23:50,410 Publiko: Do ​​kio se [inaudible]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI PENG: Nu, kion do mi ŝanĝi tiam en mia programo? 1850 01:23:58,870 --> 01:23:59,870 >> Spektantaro: Nur 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI PENG: Kial estas ke okazas, vi pensas? 1853 01:24:15,020 --> 01:24:18,940 >> Publiko: Ĉar la [inaudible]. 1854 01:24:18,940 --> 01:24:22,370 >> Spektantaro: Vi devus ŝanĝi ĝin al 2 [inaudible]. 1855 01:24:22,370 --> 01:24:23,484 >> Publiko: 1 kaj 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI PENG: 1 kaj 2, precize. 1857 01:24:24,650 --> 01:24:29,150 Do en ĉi tiu kazo, vi verŝajne volas havi du printf statements-- 1858 01:24:29,150 --> 01:24:32,601 kiu presis argv 1 kaj kiu presis argv 2. 1859 01:24:32,601 --> 01:24:33,100 Ĉi tie. 1860 01:24:33,100 --> 01:24:34,516 Mi efektive povas fari ke reala rapida. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Tie vi iros. 1863 01:24:47,320 --> 01:24:48,287 Oh. 1864 01:24:48,287 --> 01:24:49,370 Ne tute kion vi volis. 1865 01:24:49,370 --> 01:24:52,590 Sed se vi infanoj salaton ĉirkaŭe kun la formatado, ĝi eliros. 1866 01:24:52,590 --> 01:24:54,981 Yeah. 1867 01:24:54,981 --> 01:24:55,480 Malvarmeta. 1868 01:24:55,480 --> 01:24:57,670 Mi scias ke ni estas iom mallonga ĝustatempe. 1869 01:24:57,670 --> 01:25:02,469 Sed mi simple tuj rapide elspezi paro minutoj iranta tra helpful-- 1870 01:25:02,469 --> 01:25:03,760 Spektantaro: Vi havas du minutoj. 1871 01:25:03,760 --> 01:25:05,010 ANDI PENG: Mi havas du minutoj? 1872 01:25:05,010 --> 01:25:06,340 Dankon. 1873 01:25:06,340 --> 01:25:09,180 Kelkaj rapidaj pset konsiletoj. 1874 01:25:09,180 --> 01:25:13,100 Do por ĉi pset, mi tre rekomendas, kiel mi diris, ĉiuj por legi la specifon. 1875 01:25:13,100 --> 01:25:16,804 Vi estos skribanta tri programs-- unu nomata initials.c, unu nomita caesar.c, 1876 01:25:16,804 --> 01:25:17,720 unu nomita vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Iuj gravaj konsiletoj kiu vi infanoj vere volas 1879 01:25:22,340 --> 01:25:25,040 teni en mind-- tiel ekzistas ĉi tiu funkcio 1880 01:25:25,040 --> 01:25:27,770 nomata atoi-- kiel mi ŝatas diri, a trois. 1881 01:25:27,770 --> 01:25:29,520 Neklara se tio estas vere kiel vi diris ĝin. 1882 01:25:29,520 --> 01:25:32,510 Sed ĉiuj ĝi faras, ĝi estas inputting. 1883 01:25:32,510 --> 01:25:34,320 Ĝi konvertas ĉenon al int. 1884 01:25:34,320 --> 01:25:37,490 Do reprezentas ASCII al mi entjero. 1885 01:25:37,490 --> 01:25:40,310 Ĝi simple konverti ASCII valorojn al entjeraj valoroj. 1886 01:25:40,310 --> 01:25:44,510 Do memoru argv, la tabelo kiu tendencas ĉiujn viajn ordonojn viciĝas arguments-- 1887 01:25:44,510 --> 01:25:46,300 ĝi stokas ilin ĉiujn kiel kordoj. 1888 01:25:46,300 --> 01:25:50,010 Kaj do se vi volas povi havas unu el ili fariĝis entjero, 1889 01:25:50,010 --> 01:25:52,750 vi tuj havos uzi tiun valoron tie. 1890 01:25:52,750 --> 01:25:56,690 >> Module, kiel ni kovris pli frue en klaso hodiaŭ, 1891 01:25:56,690 --> 01:25:59,550 permesas havi la resto de kion vi havas. 1892 01:25:59,550 --> 01:26:03,620 Do se ni havas vere, vere nombregoj en Cezaro, 1893 01:26:03,620 --> 01:26:06,117 kio se ni havas la finon de kordo de Vigenère? 1894 01:26:06,117 --> 01:26:08,450 Kiel vi tuj povos bonstata envolvi ĉirkaŭe? 1895 01:26:08,450 --> 01:26:11,330 Se mi batis z kaj mi volas ĝi revenu al, 1896 01:26:11,330 --> 01:26:13,650 kiom mi povos akiri ke envolvi ĉirkaŭe? 1897 01:26:13,650 --> 01:26:15,960 Probable volas uzi module tie ie. 1898 01:26:15,960 --> 01:26:19,190 >> Due, foliumi ĉirkaŭe vian bibliotekon. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 Jen nova biblioteko ni havas. 1900 01:26:20,680 --> 01:26:25,270 Vi trovos multajn vere, vere utila functions-- isupper, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, tolower, isalpha, kaj tiel plu. 1902 01:26:27,681 --> 01:26:30,680 Ĉiuj funkcioj kiuj estos tre utila kiam vi provas diveni, 1903 01:26:30,680 --> 01:26:33,780 estas tiu karaktero minusklan literon? 1904 01:26:33,780 --> 01:26:35,730 Kiel mi konverton ŝnuro al majuskla? 1905 01:26:35,730 --> 01:26:38,146 Ĉiuj tiuj aferoj estos tre, tre helpema por via pset. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 BONE. 1908 01:26:45,500 --> 01:26:49,644 >> Oficejo horoj ĉinokte estas 8:00 ĝis 11:00 en la TEAL klasĉambro morgaŭ 1909 01:26:49,644 --> 01:26:51,310 krom merkredo kaj ĵaŭdo nokte. 1910 01:26:51,310 --> 01:26:53,280 Oficejo horoj estas en komunejo. 1911 01:26:53,280 --> 01:26:56,180 Ege sugestas vin infanoj ĉiuj komenci tuj, 1912 01:26:56,180 --> 01:27:00,490 ĉar vi ne volas esti tiu knabo kiu ĵaŭdo nokte havas problemojn 1913 01:27:00,490 --> 01:27:03,870 Sendante vian pset kaj estas kiel, mi ne scias kion fari. 1914 01:27:03,870 --> 01:27:05,870 Mi komencis, mi finis, mi prezentis. 1915 01:27:05,870 --> 01:27:09,737 Provu doni vin iu ĉambro, ĉar en kodo problemoj ĉiam okazas. 1916 01:27:09,737 --> 01:27:11,570 Vi volas certigi ke vi donu vin 1917 01:27:11,570 --> 01:27:14,810 multan tempon por povi kompletigi la psets. 1918 01:27:14,810 --> 01:27:15,310 Malvarmeta. 1919 01:27:15,310 --> 01:27:16,720 Mi pendigos ĉirkaŭ tie. 1920 01:27:16,720 --> 01:27:18,226 >> Spektantaro: Ĉu tio rete jam? 1921 01:27:18,226 --> 01:27:20,850 ANDI PENG: Mi ne scias se ĝi estas rete jam, sed ĝi estos. 1922 01:27:20,850 --> 01:27:23,500 Mi pendigos ĉirkaŭ ĉi tie se iu havas demandojn jam. 1923 01:27:23,500 --> 01:27:25,390 Dankon pro veni. 1924 01:27:25,390 --> 01:27:27,105