1 00:00:00,000 --> 00:00:07,070 [Powered by Google Translate] [♪ ♪ zumado] 2 00:00:07,070 --> 00:00:10,380 Do por klarigi pri kio mi havas sur la ekrano; 3 00:00:10,380 --> 00:00:12,710 ĝi estas unu el la iloj ni disvolvita dum la somero; 4 00:00:12,710 --> 00:00:15,530 ĝi estas nomata CS50 Spacoj, 5 00:00:15,530 --> 00:00:18,860 kaj estas nia kunlabora kodigo apliko 6 00:00:18,860 --> 00:00:20,180 ke ni tuj uzi en sekcioj. 7 00:00:20,180 --> 00:00:22,470 Estas bela malvarmeta. 8 00:00:22,470 --> 00:00:26,040 Ĉu iu el vi vidas CS50 kuri ankoraŭ? 9 00:00:26,040 --> 00:00:29,760 Lasu min eltiri ke en alia langeto. 10 00:00:29,760 --> 00:00:33,440 Run.cs50.net 11 00:00:33,440 --> 00:00:36,230 Do 12 00:00:36,230 --> 00:00:39,700 se vi iros al run.cs50.net, 13 00:00:39,700 --> 00:00:43,030 vi povas vidi ĉi estas en via retumilo maniero 14 00:00:43,030 --> 00:00:45,940 fakte kodo - skribi C-kodo, 15 00:00:45,940 --> 00:00:47,460 kaj poste ruli ĝin, 16 00:00:47,460 --> 00:00:50,960 tiel ambaŭ kompilas ĝin, kuras ĝi, tiam redonas la eliro al vi, 17 00:00:50,960 --> 00:00:53,350 do ĉi tiu estas speco de cool maniero sperti 18 00:00:53,350 --> 00:00:56,060 kun iuj de la kodo, kiun David iras super en prelegoj 19 00:00:56,060 --> 00:00:58,640 kaj ni donos al vi sur la problemo aroj 20 00:00:58,640 --> 00:01:01,900 sen efektive devi pafi supren la aparaton. 21 00:01:01,900 --> 00:01:04,489 >> Do kio Spacetoj faras tio diferencas de tiu 22 00:01:04,489 --> 00:01:07,450 se mi ŝanĝas denove al ĉi langeto, 23 00:01:07,450 --> 00:01:11,580 Spacoj estas CS50 kuri, kiel vi vidas ĉi tie, 24 00:01:11,580 --> 00:01:15,380 sed se ni rulumi pli kaj rigardu la alian flankon de la fenestro, 25 00:01:15,380 --> 00:01:18,130 vi vidas dekstre mi estas la sola persono en ĉi tiu spaco, 26 00:01:18,130 --> 00:01:21,030 sed kion mi faros estas demandi vin infanoj kunigi ĉi Spaco kun mi 27 00:01:21,030 --> 00:01:24,590 kaj ni cxiuj atingos kodon en la sama malgranda fenestro, 28 00:01:24,590 --> 00:01:26,070 konigi kodon kun alia, 29 00:01:26,070 --> 00:01:28,900 kaj paroli pri la diferencoj inter niaj kodo. 30 00:01:28,900 --> 00:01:31,530 Do ĝi estas speco de cool afero - 31 00:01:31,530 --> 00:01:35,770 tiel aliĝi, se vi vizitus tiun ligilon ĉi tie supre 32 00:01:35,770 --> 00:01:38,980 ke mi reliefigis, 33 00:01:38,980 --> 00:01:53,860 vi povas simple tajpi en apps.cs50.net/spaces/vqcspSnO. 34 00:01:53,860 --> 00:01:56,610 >> Bone, do por dividi, 35 00:01:56,610 --> 00:01:59,720 Mi tuj donos al vi iom de planoj vojaĝi al ĉi tio. 36 00:01:59,720 --> 00:02:01,720 Ni estas gonna do iu stulta iom kodigon kun ĝi al la komenco, 37 00:02:01,720 --> 00:02:06,200 nur por ke ĉiuj kinda ricevas senton por kio ĝi estas kiel, 38 00:02:06,200 --> 00:02:09,000 sed kion mi faris - 39 00:02:09,000 --> 00:02:11,830 aux kion mi celas fari ĉi tie estas - 40 00:02:11,830 --> 00:02:13,480 Mi iros por preni la kodo kiun mi skribis en ĉi tie, 41 00:02:13,480 --> 00:02:15,800 kiu kiel vi vidas nun estas malplena; 42 00:02:15,800 --> 00:02:17,090 ne fari ion. 43 00:02:17,090 --> 00:02:21,080 Estas nur kaldrono plato kodo, ni nomas ĝin. 44 00:02:21,080 --> 00:02:23,820 Kun iom-do komento. 45 00:02:23,820 --> 00:02:27,850 Mi iros por savi ĝin bati ĉi Save butonon. 46 00:02:27,850 --> 00:02:30,190 Kaj kion tio faras estas ĝi 47 00:02:30,190 --> 00:02:34,400 emfazita ĝin ĉi tie mallonge - tio revizio save verda skatolo, 48 00:02:34,400 --> 00:02:37,570 kaj nun, se vi serĉos min en la Spaco, 49 00:02:37,570 --> 00:02:40,340 vi klaku mia nomo, 50 00:02:40,340 --> 00:02:43,370 vi povas vidi, ke mi havas ĉi revizio ĉi tie, 51 00:02:43,370 --> 00:02:45,490 kaj se vi klakas sur tiu revizio, 52 00:02:45,490 --> 00:02:48,240 ĝi devos montru ke kodon en Spaco, ankaŭ. 53 00:02:50,510 --> 00:02:54,160 >> Do estas ĉiuj ŝarĝis ke kodo en iliajn Spaco? 54 00:02:54,160 --> 00:02:57,810 Bone, se vi ankoraŭ ne, faru tion, 55 00:02:57,810 --> 00:03:01,120 kaj tiam kion mi volas vin infanoj fari en ĉi tiu malgranda por-do sekcio 56 00:03:01,120 --> 00:03:05,940 estas skribi iomete uzante printf pri vi, 57 00:03:05,940 --> 00:03:08,310 tiel ekzemple, mi skribus 58 00:03:08,310 --> 00:03:12,270 printf ("Mia nomo estas Nate"); 59 00:03:15,140 --> 00:03:17,700 kaj poste mi skribos 60 00:03:17,700 --> 00:03:21,660 "Mi diplomiĝis en 2009 61 00:03:21,660 --> 00:03:24,440 de Stanford " 62 00:03:26,050 --> 00:03:28,390 kaj mi amus aŭdi pri 63 00:03:28,390 --> 00:03:30,270 kio jaro vi estas en lernejo, 64 00:03:30,270 --> 00:03:33,910 ĉu vi estas ĉe la kolegio aŭ la negoco lernejo 65 00:03:33,910 --> 00:03:36,130 aŭ alia Harvard lernejo, 66 00:03:36,130 --> 00:03:39,200 kion vi studas se ĝi estas konata ankoraŭ; 67 00:03:39,200 --> 00:03:41,290 se ĝi estas ne konas, jen tute malvarmeta. 68 00:03:41,290 --> 00:03:45,170 Mi ne decidi ĝis mi estis malfrue en mia dua jaro. 69 00:03:46,910 --> 00:03:49,210 kaj tiam Mi ankaŭ amas scii 70 00:03:49,210 --> 00:03:51,610 ion frenezan vi volas diri al mi aŭ 71 00:03:51,610 --> 00:03:54,790 io pri la klaso aŭ nur io alia. 72 00:03:56,930 --> 00:04:00,370 Kiam vi farita skribante ke kun via malgranda printf, 73 00:04:00,370 --> 00:04:03,480 se vi ŝparos la revizio aŭ pli ĝuste 74 00:04:03,480 --> 00:04:06,080 unua certigi ke vi povas ruli ĝin 75 00:04:06,080 --> 00:04:10,640 kaj kiu presas el ekzakte kion vi volas ĝin por presi, 76 00:04:14,050 --> 00:04:16,399 kaj poste, se vi iros antaŭen kaj krom tio, ke versiono 77 00:04:16,399 --> 00:04:21,600 uzante la Revizia Save butonon, tiu unua iom ulo super ĉi tie, 78 00:04:24,080 --> 00:04:27,340 kaj ni kinda iri tra kaj fari iom enkonduko tiu vojo. 79 00:04:27,340 --> 00:04:30,150 Do vi devus nur devas bati la Play butonon, 80 00:04:30,150 --> 00:04:32,550 kio estas tie supre sur la pinto maldekstra, 81 00:04:32,550 --> 00:04:35,340 tial ĉi Play butonon sur la supro maldekstro volo 82 00:04:35,340 --> 00:04:39,050 sendi vian kodo ekstere al nia servilo kie gets kompilita kaj poste ekzekuti. 83 00:04:40,600 --> 00:04:43,300 Do kio estas kinda freneza pri ĉi tio 84 00:04:43,300 --> 00:04:46,550 ĉi tiu kodo reale ne kuras en via komputilo; 85 00:04:46,550 --> 00:04:49,290 ĝi estas reale esti senditaj tra la Interreto. 86 00:04:49,290 --> 00:04:51,240 >> Kiel vi fartas, Charlotte? 87 00:04:51,240 --> 00:04:54,810 >> Mi - bone. I'm - Mi pensas mi estas 88 00:04:54,810 --> 00:04:57,330 esti malfacilaĵoj ŝparante ĝin 89 00:04:57,330 --> 00:05:00,530 en la servanto, ke gxi povas - mi ne povas kuri la programon. 90 00:05:02,090 --> 00:05:05,780 Kaj poste, kiam mi provas ruli ĝin, ĝi diras ke estas eraro. 91 00:05:05,780 --> 00:05:08,850 Deklarita kiel viruso, kiu ne estas en tie plu. 92 00:05:08,850 --> 00:05:11,860 Ho, vidu; vi batis Konservu denove? 93 00:05:11,860 --> 00:05:13,770 Mi vidas gxin sur la ekrano. 94 00:05:13,770 --> 00:05:15,120 >> Ĝuste, bone, do jen kion mi havas. 95 00:05:15,120 --> 00:05:19,430 Kaj mi ne scias kial ĝi ne lasu min ruli ĝin. 96 00:05:22,990 --> 00:05:24,990 Ho, bone, sorry. 97 00:05:27,930 --> 00:05:31,220 Ĉu vi povas klarigi kial - kio estis erara - kio ne funkciis kun ĝi? 98 00:05:31,220 --> 00:05:34,760 >> Jes, ĉar mi ne vidis ke estis lasta linio kie ekzistas ankoraŭ variablo 99 00:05:34,760 --> 00:05:37,700 ke mi ne deklaris, ke mi ne intencas ĝin esti tie. 100 00:05:37,700 --> 00:05:38,730 Yeah, perfekta! 101 00:05:38,730 --> 00:05:40,390 >> Nu, se mi savos ĝin, mi kredas ke devus funkcii. 102 00:05:40,390 --> 00:05:42,970 Nun ke vi savis ĝin, ĝi funkcias; awesome. 103 00:05:42,970 --> 00:05:44,570 >> Do jes, kiel ni trairi - 104 00:05:44,570 --> 00:05:46,690 do kio okazas, 105 00:05:46,690 --> 00:05:49,130 Mi simple intencas ripeti tion por la ĉambro. 106 00:05:49,130 --> 00:05:51,760 Kio okazis estis ke tiu variablo s 107 00:05:51,760 --> 00:05:54,310 restis en post - mi supozas vi deleted iu alia materialo 108 00:05:54,310 --> 00:05:56,670 kie vi deklaris kiel, 109 00:05:56,670 --> 00:05:59,560 kaj tiel ĉi tio ĵetante aferoj ekstere kaj ne lasi vin ruli ĝin. 110 00:05:59,560 --> 00:06:02,540 Do ĉi tiu estas ekzakte kion ni volas fari en sekcio 111 00:06:02,540 --> 00:06:05,690 Estas jam homoj provos skribi malsamajn pecoj de kodo, 112 00:06:05,690 --> 00:06:08,490 kompili ĝin, vidu kio funkcias, vidu kio ne, 113 00:06:08,490 --> 00:06:10,730 kaj tiam kinda paroli pri tiuj aferoj, ĉar tiuj estas Tripping punktoj kiuj 114 00:06:10,730 --> 00:06:12,850 Mi ankoraŭ trovas, 115 00:06:12,850 --> 00:06:15,470 Mi ankoraŭ - mi faras multajn stultajn aĵojn tuta tempo, 116 00:06:15,470 --> 00:06:17,820 kaj mi ne scias kial ne funkcias, 117 00:06:17,820 --> 00:06:22,960 do ni elsxiros Charlotte revizio 3, 118 00:06:23,980 --> 00:06:25,380 kaj ni ruli ĝin. 119 00:06:25,380 --> 00:06:28,950 >> Do kiam mi kuras, nun ke mi havas sian kodon en ĉi tie, 120 00:06:28,950 --> 00:06:31,450 Mi povas zomi, batis la Run butonon, 121 00:06:31,450 --> 00:06:33,680 alŝutoj ĝin, verko ĝin, kuras ĝi, 122 00:06:33,680 --> 00:06:36,980 diras kuris kun sukceso, kaj se mi rulumu malsupren, 123 00:06:36,980 --> 00:06:39,440 vidu Charlotte estas junior ĉe Adams Domo, 124 00:06:39,440 --> 00:06:42,720 psikologio, malĉefa en ekonomiko; awesome. 125 00:06:42,720 --> 00:06:44,310 Granda renkonti vin! 126 00:06:44,310 --> 00:06:46,550 Awesome. 127 00:06:46,550 --> 00:06:49,670 Okay, movante on, ni iru al Daniel, 128 00:06:49,670 --> 00:06:52,710 iri al revizio 3, 129 00:06:52,710 --> 00:06:54,180 kompili, forkuras; 130 00:06:54,180 --> 00:06:56,680 kial vi ne diru al ni iom pri vi mem, Daniel? 131 00:06:56,680 --> 00:06:59,380 >> Nomu min Dan. 132 00:06:59,380 --> 00:07:01,920 Mi tuj negoco lernejo trans de vi knaboj, 133 00:07:01,920 --> 00:07:05,020 kaj mi estis en la marines antaŭ ĉi tie, 134 00:07:05,020 --> 00:07:08,020 kaj jen estas la tuta nova por mi, do jes. 135 00:07:08,020 --> 00:07:11,060 Ne sentas malbone, mi estas 30 kaj mi ne scias iun el ĉi aĵoj. 136 00:07:11,060 --> 00:07:13,800 Awesome; dankon, Dan! 137 00:07:13,800 --> 00:07:17,300 Bone, ni akiris alian Daniel. 138 00:07:17,300 --> 00:07:20,930 Vi iru de Daniel - vi prezenti vin, Daniel? 139 00:07:20,930 --> 00:07:22,260 >> >> Certe, mi estas Daniel. 140 00:07:22,260 --> 00:07:24,330 Mi estas sophomore ĉe Mather nun. 141 00:07:24,330 --> 00:07:25,840 Mi celantajn registaro, 142 00:07:25,840 --> 00:07:28,760 sed mi volis porti CS50 ĉar mi aŭdis grandan recenzoj pri la klaso 143 00:07:28,760 --> 00:07:30,750 kaj mi neniam provis CS antaŭe. 144 00:07:30,750 --> 00:07:34,680 Rulumu malsupren tie kaj montri ĉi - malvarmeta. 145 00:07:36,330 --> 00:07:39,090 Movante on, Jared. 146 00:07:39,090 --> 00:07:41,990 Kiel vi fartas? 147 00:07:41,990 --> 00:07:43,430 >> Bone, kiel vi fartas? 148 00:07:43,430 --> 00:07:47,520 Kiel vi povas vidi, mi estas juna filozofio concentrador en Eliot, 149 00:07:47,520 --> 00:07:50,260 origine el suda Kalifornio, 150 00:07:50,260 --> 00:07:53,100 kaj mi estas interesita en porti CS50 ĉar mi ŝatas la logiko de tio, 151 00:07:53,100 --> 00:07:57,420 kaj ĝi ŝajnas vere malvarmeta fari aferojn en la komputilo, do. 152 00:07:57,420 --> 00:07:59,570 Awesome; kie en suda Kalifornio vi estas? 153 00:07:59,570 --> 00:08:02,340 >> Pri horon de [inaudible], malgranda urbo [inaudible]. 154 00:08:02,340 --> 00:08:04,850 Ho, jes, mia patro estas el Redlands. 155 00:08:04,850 --> 00:08:07,060 Cool stuff. 156 00:08:07,060 --> 00:08:12,130 >> Bone, Jimmy: kiel vi fartas, Jimmy? 157 00:08:12,130 --> 00:08:15,130 >> Bone, kiel vi fartas? 158 00:08:15,130 --> 00:08:16,040 Farante sufiĉe bone! 159 00:08:16,040 --> 00:08:17,710 Diru al ni pri vi. 160 00:08:17,710 --> 00:08:20,840 >> Mi estas freshman, kaj mi ne estas tute certa kio mi magistriĝi en 161 00:08:20,840 --> 00:08:22,820 sed mi kinda apogante al ekonomiko. 162 00:08:22,820 --> 00:08:25,680 Kiel Daniel antaŭ mi, mi neniam faris ion CS, sed sonas kinda cool. 163 00:08:25,680 --> 00:08:28,120 Mi estas origine el Ĉikago. 164 00:08:28,120 --> 00:08:31,640 Awesome. Do kontrolu sian printaĵo tie. 165 00:08:31,640 --> 00:08:34,630 Mi volis demandi, ĉu ĉi tiu impreso el kiom vi atendis? 166 00:08:34,630 --> 00:08:37,650 >> Ne, mi forgesis presi novan linion. 167 00:08:37,650 --> 00:08:41,270 Mi vere forgesis ke kiam mi estis skribanta mian aferon 168 00:08:41,270 --> 00:08:43,090 por la unua fojo, ankaŭ. 169 00:08:43,090 --> 00:08:46,330 Estas speco de doloro memori meti tiujn en permane. 170 00:08:46,330 --> 00:08:50,560 Ĝi estus agrabla se nur scias tion vi volis. 171 00:08:50,560 --> 00:08:53,630 >> Konsentite, Kelly. 172 00:08:53,630 --> 00:08:56,050 Wow, ni havas 2 Kellys; 2 Daniels, 2 Kellys. 173 00:08:56,050 --> 00:09:00,490 Do Kelly - vi iru de Kelly Ren? 174 00:09:00,490 --> 00:09:03,870 Konsentite, awesome. 175 00:09:03,870 --> 00:09:07,270 Aŭ Kelly, mi volas diri. 176 00:09:07,270 --> 00:09:10,260 >> Do jes, do mi estas Kelly. 177 00:09:10,260 --> 00:09:12,930 Mi estas sophomore en Pfoho. 178 00:09:12,930 --> 00:09:17,000 Mi ricevis retpoŝton hodiaŭ ke mi ankoraŭ havas 7 semajnoj por deklari mian koncentriĝon, 179 00:09:17,000 --> 00:09:20,940 do mi provas ne pensi pri tio, 180 00:09:20,940 --> 00:09:24,090 kaj mi ŝatas bakado, kurante, kaj Craisins. 181 00:09:24,090 --> 00:09:29,110 Mi ne havas sperton kun plej de CS; 182 00:09:29,110 --> 00:09:32,700 Mi instruis min mem konstrui Retejoj kiam mi estis vere juna, 183 00:09:32,700 --> 00:09:35,750 sed mi opinias, ke mi probable instruis min malbone multajn fojojn. 184 00:09:35,750 --> 00:09:39,260 Espereble mi lernos iom pli 185 00:09:39,260 --> 00:09:41,450 kaj - jes. 186 00:09:41,450 --> 00:09:44,100 >> Awesome; bone, dankon. 187 00:09:44,100 --> 00:09:47,190 Ni iru al la alia Kelly; 188 00:09:47,190 --> 00:09:48,880 Mi ne havas ion - vi diris ion tie? 189 00:09:48,880 --> 00:09:51,880 >> [Inaudible] 190 00:09:51,880 --> 00:09:56,180 Jen ĝi! 191 00:09:56,180 --> 00:09:58,120 Dolĉa! 192 00:09:58,120 --> 00:10:01,400 >> Bone, do mi estas Kelly. 193 00:10:01,400 --> 00:10:03,980 Mi estas unua-jara postdiploma studento. 194 00:10:03,980 --> 00:10:05,560 Mi magistriĝi en Menso, cerbo, kaj Eduko. 195 00:10:05,560 --> 00:10:07,940 Mi diplomiĝis en Franklin & Marshall College en 2008 196 00:10:07,940 --> 00:10:10,840 kun plej grandaj en psikologio kaj sociologio 197 00:10:10,840 --> 00:10:13,120 kaj minora en la franca. 198 00:10:13,120 --> 00:10:15,330 Mi prenas CS50 199 00:10:15,330 --> 00:10:18,080 ĉar Mi estas interesita en duumaj PhD en Neuroscience 200 00:10:18,080 --> 00:10:21,220 kaj mi sentas min kiel ĉi helpos min kompreni la teknologioj uzitaj. 201 00:10:21,220 --> 00:10:23,150 Awesome. 202 00:10:26,980 --> 00:10:29,390 Movante on, Mikaela. 203 00:10:29,390 --> 00:10:31,640 Ĉu tio estas korekta prononco? 204 00:10:31,640 --> 00:10:32,990 Konsentite, awesome. 205 00:10:32,990 --> 00:10:34,640 >> >> Mi Mikhaila. 206 00:10:34,640 --> 00:10:36,870 Mi estas sophomore en Kirkland Domo, 207 00:10:36,870 --> 00:10:39,950 kaj mi koncentri en Mekanika Inĝenierio. 208 00:10:39,950 --> 00:10:43,180 Mi vere ŝatas bicikladon, konstruis biciklon ĉi somero. 209 00:10:43,180 --> 00:10:46,140 Mi prenas CS, fakte, 210 00:10:46,140 --> 00:10:48,350 kiel koncentriĝo asigno, 211 00:10:48,350 --> 00:10:52,550 sed vi scias, mi kredas ke estas ankoraŭ freŝa speco de inĝenierio klaso. 212 00:10:52,550 --> 00:10:55,150 Awesome - vi konstruis biciklon ĉi tiu somero? 213 00:10:55,150 --> 00:10:56,730 >> Jes. 214 00:10:56,730 --> 00:10:58,900 Wow, kiel la kadro kaj cxio, kion? 215 00:10:58,900 --> 00:11:00,120 >> Uh-hunh (jesa). 216 00:11:00,120 --> 00:11:01,530 Wow, jen vere genia. 217 00:11:01,530 --> 00:11:06,370 >> [Inaudible ekstere ĉambro babilejo] 218 00:11:06,370 --> 00:11:10,000 [Ridado] 219 00:11:12,640 --> 00:11:14,200 Jes, ili pasis tiom da tempo. 220 00:11:14,200 --> 00:11:16,730 Vi neniam scias, ĉu ne? 221 00:11:16,730 --> 00:11:19,420 Nu, cool; bone dankon, Mikhaila. 222 00:11:19,420 --> 00:11:21,390 >> Bone, Missy. 223 00:11:21,390 --> 00:11:23,280 >> Mia nomo Missy; Mi estas freshman, 224 00:11:23,280 --> 00:11:25,500 por ke signifas mi ne scias ion ajn! 225 00:11:25,500 --> 00:11:29,180 Mi volas koncentri en astrofiziko. 226 00:11:29,180 --> 00:11:31,220 En CS50, 227 00:11:31,220 --> 00:11:33,350 Mi sentas min kiel definitive helpi kun tio. 228 00:11:33,350 --> 00:11:37,750 Nepara fakto pri mi estas mi estas nacie registrita fajrestingisto. 229 00:11:37,750 --> 00:11:39,960 Wow! 230 00:11:39,960 --> 00:11:42,440 Kiel tio okazis? 231 00:11:42,440 --> 00:11:45,570 >> Mi ĉeestis akademion 232 00:11:45,570 --> 00:11:49,000 kaj eliris tra la infero por multaj semajnoj 233 00:11:49,000 --> 00:11:51,200 kaj ricevis mian ateston. 234 00:11:51,200 --> 00:11:54,090 Wow, congrats! 235 00:11:54,090 --> 00:11:57,280 Tio estas ne malgranda heroaĵo, por certa. 236 00:11:57,280 --> 00:11:59,070 Okay, do nun ni faros mi. 237 00:11:59,070 --> 00:12:01,290 Mi estas la sekvanta en la vico. 238 00:12:01,290 --> 00:12:04,510 I'm - ruli ĝin. 239 00:12:04,510 --> 00:12:07,580 >> Do mia nomo estas Nate. 240 00:12:07,580 --> 00:12:11,160 Mi estis klaso de 2009 en Stanford. 241 00:12:11,160 --> 00:12:13,840 Mi estis Simbola Sistemoj maĵora, 242 00:12:13,840 --> 00:12:17,370 kiu estas simila al la Menso, cerbo, Konduto koncentriĝo tie, 243 00:12:17,370 --> 00:12:19,300 sed estas speco de miksaĵo de 244 00:12:19,300 --> 00:12:22,350 komputiko, lingvistiko, psikologio kaj filozofio. 245 00:12:22,350 --> 00:12:26,600 Ia - jes, multe da strangaj aferoj, sed tio estis granda, 246 00:12:26,600 --> 00:12:29,880 kaj poste mi faris mia sinjoro en Komputila Scienco tie, ankaŭ. 247 00:12:29,880 --> 00:12:33,250 Do mi estas nova al Harvard ĉi tiu jaro. 248 00:12:33,250 --> 00:12:35,750 Mi vere volis eniri instruado. 249 00:12:35,750 --> 00:12:39,860 Mi pasigis la lastaj 4 jaroj en Stanford TA-ing Komputiko klasoj 250 00:12:39,860 --> 00:12:43,370 kaj tiel David lasu min iras, 251 00:12:43,370 --> 00:12:45,550 kaj ke mi baldaŭ estos helpi evi CS50, 252 00:12:45,550 --> 00:12:47,890 do mi faru ĉi plentempe, mi estas ne en grad lernejo. 253 00:12:47,890 --> 00:12:50,330 Jam pasis amuzo. 254 00:12:50,330 --> 00:12:53,130 Espereble ĝi povos daŭrigi esti amuza, mi certas ke gxi estos. 255 00:12:53,130 --> 00:12:56,040 >> Bone, Sam. 256 00:13:01,910 --> 00:13:05,470 >> Mia nomo estas Sam; Mi estas sophomore ĉe la kolegio, en leĝo specife. 257 00:13:05,470 --> 00:13:10,110 Mia plej granda estos historio de scienco, probable, kaj Ves malĉefa, 258 00:13:10,110 --> 00:13:13,240 kaj mia preferata koloro estas flava. 259 00:13:18,790 --> 00:13:21,100 Neniu bezonas por pasi juĝo aŭ nenio, sed ĝi estas bona koloro! 260 00:13:21,100 --> 00:13:24,780 Kaj Stella. 261 00:13:24,780 --> 00:13:26,980 >> Saluton, mi estas Stella; Mi estas freshman en Grays. 262 00:13:26,980 --> 00:13:30,070 Mi havas neniun postsignon kion mi koncentris en ankoraŭ, 263 00:13:30,070 --> 00:13:32,500 tiel CS50 estis nur speco de hazarda, 264 00:13:32,500 --> 00:13:34,220 kio estas interesa. 265 00:13:34,220 --> 00:13:36,080 Amuza fakto, Jimmy estis la unua Harvard amiko mia, 266 00:13:36,080 --> 00:13:38,360 ĉar ni ambaŭ de Ĉikago. 267 00:13:38,360 --> 00:13:42,450 Cool, kaj Grace - ke tio devus esti la vere bela unu, ĉu ne? 268 00:13:42,450 --> 00:13:45,220 >> Mi pensis [inaudible]. 269 00:13:45,220 --> 00:13:46,690 Ho, jes. 270 00:13:46,690 --> 00:13:51,210 [Inaudible / off-ĉambro babilejo] 271 00:13:51,210 --> 00:13:54,420 Okay, mi ankoraŭ lernas, ankoraŭ lernado. 272 00:13:54,420 --> 00:13:57,800 >> Do ni havas ion alian jen speco de interesaj tie. 273 00:13:59,600 --> 00:14:02,870 Yeah, mi nur scivolas, ĉu vi havas ideon, ke okazas ĉi tie? 274 00:14:02,870 --> 00:14:05,890 Vi scias kiel interpreti tion? 275 00:14:05,890 --> 00:14:13,340 >> Mi supozis, por esti metita la punktokomo post ĉiu unuopa linio. 276 00:14:13,340 --> 00:14:16,370 Tio estas speco de doloro. 277 00:14:16,370 --> 00:14:19,100 Kelkfoje tiuj punktokomojn povas esti reela doloro spuri. 278 00:14:19,100 --> 00:14:21,420 Do rezultas ke 279 00:14:21,420 --> 00:14:22,820 la speciala programo ni uzas ĉi tiun jaron al 280 00:14:22,820 --> 00:14:26,670 kompili nia C-kodo estas nomata Clang, 281 00:14:26,670 --> 00:14:29,460 kaj la kialo ni komencis uzi Clang ĉi jaro - 282 00:14:29,460 --> 00:14:32,030 ĉar ni ne uzis tiun programon en la pasinteco; 283 00:14:32,030 --> 00:14:35,710 ni uzis alia nomita GCC ke vere populara - 284 00:14:35,710 --> 00:14:38,420 Clang efektive donas erarmesaĝojn kiuj faras sencon. 285 00:14:38,420 --> 00:14:41,420 Ĉi tiu diras "atendita ';' post esprimo", 286 00:14:41,420 --> 00:14:45,260 kaj eĉ diras al vi la esprimon post kio vi bezonis punktokomo. 287 00:14:45,260 --> 00:14:47,830 Do vi ripari ĝin? 288 00:14:47,830 --> 00:14:48,930 >> Jes, ĝuste nun. 289 00:14:48,930 --> 00:14:52,040 Awesome; lasu min scii kaj ni treni ĝin supren, kaj ni kuros ĝin. 290 00:14:52,040 --> 00:14:55,830 Sed jes, metante tiujn punktokomojn en estas speco de doloro. 291 00:14:55,830 --> 00:14:59,580 >> Mi riparis ĝin, do mi kredas ke devus funkcii. 292 00:14:59,580 --> 00:15:02,760 Awesome - revizio 3. 293 00:15:02,760 --> 00:15:05,250 Tio aspektas kiel ĝin. 294 00:15:05,250 --> 00:15:08,580 Bone, do nun se ni kuras ĝi, 295 00:15:08,580 --> 00:15:11,020 tie ĝi iras. 296 00:15:11,020 --> 00:15:13,830 Cool stuff. 297 00:15:13,830 --> 00:15:15,340 >> Bone. 298 00:15:15,340 --> 00:15:18,230 Do dankon por fari tion. 299 00:15:18,230 --> 00:15:20,210 Ke estas bone renkonti vin guys. 300 00:15:20,210 --> 00:15:22,880 Kio ni estas gonna do nun elspezos la sekvanta iomete 301 00:15:22,880 --> 00:15:24,740 kinda subnaĝado en la sekcio problemoj 302 00:15:24,740 --> 00:15:27,550 kiu venas de la problemo metita de tiu semajno 303 00:15:27,550 --> 00:15:29,920 kaj ni faru tion por la plejparto de la sekcioj 304 00:15:29,920 --> 00:15:32,110 por la resto de la termino, 305 00:15:32,110 --> 00:15:35,580 kaj poste ni povos savi la lastaj 15, 20 minutoj aŭ tiel 306 00:15:35,580 --> 00:15:38,490 paroli pri la problemo starigis sin 307 00:15:38,490 --> 00:15:41,420 kaj tiam simple ajna alia demandojn vi havas ĝenerale pri la klaso. 308 00:15:43,380 --> 00:15:45,670 Kiu diris, kion ni vere volas fari 309 00:15:45,670 --> 00:15:49,390 Estas jam ĉiuj partoprenantaj 310 00:15:49,390 --> 00:15:51,500 uzante la Spacetoj stuff, 311 00:15:51,500 --> 00:15:53,500 ĵetante en kodo, ĵetante en sugestojn, 312 00:15:53,500 --> 00:15:56,500 kaj parolante pri kiam aĵoj like this rompo 313 00:15:56,500 --> 00:15:58,360 aŭ ne funkcias, nur ĉar tiuj estas aferoj 314 00:15:58,360 --> 00:16:00,870 Mi scias, mi renkontis 315 00:16:00,870 --> 00:16:03,180 kiam mi komencis kodigo, 316 00:16:03,180 --> 00:16:05,490 kaj estis vere kinda frustrante foje 317 00:16:05,490 --> 00:16:08,690 ĉar se ĝi estas kiel la 2 am antaux via problemo aro estas devita, 318 00:16:08,690 --> 00:16:11,330 do - nur por malkaŝo, 319 00:16:11,330 --> 00:16:14,590 Mi ne komenci programado ĝis mi estis sophomore en kolegio. 320 00:16:14,590 --> 00:16:17,360 Estis speco de ĉi stranga, nekonata afero 321 00:16:17,360 --> 00:16:20,360 ke mi auxdis, estis kinda cool 322 00:16:20,360 --> 00:16:23,590 kaj mi ankaŭ aŭdis povus esti reela doloro en la tenilon 323 00:16:23,590 --> 00:16:27,610 se vi maltrafos punktokomo kaj tio estas la sola eraro tenante vian programon de laboro 324 00:16:27,610 --> 00:16:30,890 kaj subteni vin iri dormi, 325 00:16:30,890 --> 00:16:32,650 tiel definitive, 326 00:16:32,650 --> 00:16:34,020 se vi havas demandojn tiel, 327 00:16:34,020 --> 00:16:37,060 se vi havas zorgojn tiel, lasu min scii, 328 00:16:37,060 --> 00:16:40,050 ĉar mi volas fari ĉi bona sperto por vi guys. 329 00:16:40,050 --> 00:16:44,620 >> Do vi infanoj ĉiuj elŝutitaj la problemo starigis yet? 330 00:16:44,620 --> 00:16:47,160 Kinda scias kie estas? Okay. 331 00:16:47,160 --> 00:16:51,490 Do ni iros al cs50.net, ĉar mi ne havas gxin sur tiu konto, 332 00:16:51,490 --> 00:16:54,110 elsxiros la problemo aroj, 333 00:16:54,110 --> 00:16:57,940 elsxiros problemo aro 2, kaj ni rigardu la normo eldono hodiaŭ. 334 00:16:57,940 --> 00:17:01,190 Ni elsxiros la specifo tie. 335 00:17:02,640 --> 00:17:04,420 Rulumu malsupren. 336 00:17:06,790 --> 00:17:11,109 Do ni estas gonna komenci rigardi ĉi sekcio de demandoj. 337 00:17:14,069 --> 00:17:16,710 Ĉu vi infanoj rigardis tiujn mallongaj yet? 338 00:17:16,710 --> 00:17:18,329 Okay. 339 00:17:18,329 --> 00:17:21,329 Do estas mallongaj sur bukloj, 340 00:17:21,329 --> 00:17:24,700 kiu estas farita de Tommy, unu el la kapo instruado kamaradojn. 341 00:17:24,700 --> 00:17:27,230 Estas unu en medion, 342 00:17:27,230 --> 00:17:30,530 Mi kredas farita de alia instruado ulo nomata Davido 343 00:17:30,530 --> 00:17:33,400 kaj poste unu sur Cezaro Cipher ankaŭ farita de David. 344 00:17:33,400 --> 00:17:35,550 Ili estas belaj cool. 345 00:17:35,550 --> 00:17:37,770 Ĉu vi infanoj estis observante siajn mallongaj ĝis nun? 346 00:17:37,770 --> 00:17:39,270 How've ili estis? 347 00:17:39,270 --> 00:17:41,490 Helpis? Okay, bona scii. 348 00:17:41,490 --> 00:17:44,210 Se ili ne estas, vi povas diri tiel. 349 00:17:46,290 --> 00:17:49,870 Sed antaŭ ol vi faros, 350 00:17:49,870 --> 00:17:52,600 vi infanoj rigardis tiujn demandoj 351 00:17:52,600 --> 00:17:55,430 tute? 352 00:17:55,430 --> 00:17:57,480 >> Ni parolos pri tio iomete. 353 00:17:57,480 --> 00:18:00,600 Do ni enkondukis dum la lastaj kelkaj semajnoj 354 00:18:00,600 --> 00:18:02,480 en prelego 355 00:18:02,480 --> 00:18:04,910 numeron de malsamaj cikloj. 356 00:18:04,910 --> 00:18:06,140 Jen la por ciklo, 357 00:18:06,140 --> 00:18:09,570 la dum ciklo, kaj tiam la do-dum ciklo, 358 00:18:09,570 --> 00:18:13,100 kaj en prelego, ni parolis multe pri 359 00:18:13,100 --> 00:18:16,010 kiel tiuj cikloj estas ĉiuj 360 00:18:16,010 --> 00:18:18,320 sufiĉe similaj en multaj manieroj, 361 00:18:18,320 --> 00:18:21,210 kaj vi povas fari multe de la samaj aferoj kun dum buklo 362 00:18:21,210 --> 00:18:23,260 ke vi povas kun a por buklo. 363 00:18:23,260 --> 00:18:26,300 Vi nur devas ia uzi la dekstran kombinoj de variabloj kaj tia. 364 00:18:26,300 --> 00:18:28,680 kaj tiel vere 365 00:18:28,680 --> 00:18:31,200 la reala distingo inter ĉiuj cikloj estas ke 366 00:18:31,200 --> 00:18:33,620 kelkfoje ili estas pli utila 367 00:18:33,620 --> 00:18:36,930 por uzi ilin en tempo ol alifoje. 368 00:18:36,930 --> 00:18:39,340 >> Do ekzemple, 369 00:18:39,340 --> 00:18:42,260 dume buklo diferencanta de do-dum ciklo. 370 00:18:42,260 --> 00:18:45,680 Ĉu ĉiuj sentas ili havas bonan tenilon de kiam 371 00:18:45,680 --> 00:18:48,650 oni do-dum ciklo estas pli 372 00:18:48,650 --> 00:18:50,990 utila aŭ kio la diferenco estas? 373 00:18:50,990 --> 00:18:53,410 >> Mi kredas ke la diferenco estas do-dum buklo 374 00:18:53,410 --> 00:18:56,960 kuras - Mi ne scias sufiĉe kion la terminologio estas, 375 00:18:56,960 --> 00:18:59,750 sed la serio de funkcioj ene de la ciklo. 376 00:18:59,750 --> 00:19:02,020 Ili aŭtomate - ĝi faras lian runs almenaŭ 377 00:19:02,020 --> 00:19:05,390 antaŭ ol ĝi kontrolas la kondiĉo, aŭ la dum buklo nur kuri ĝin kiam 378 00:19:05,390 --> 00:19:08,290 ĝi senĉese kuras - ĉu aŭ ne la kondiĉo estas sata. 379 00:19:08,290 --> 00:19:11,010 Yeah, ĉu tio havas sencon? 380 00:19:11,010 --> 00:19:14,200 >> Ni rigardu iom da kodo. 381 00:19:14,200 --> 00:19:16,930 Do ĝuste ripeti la demandon, 382 00:19:16,930 --> 00:19:19,230 aŭ la respondo, prefere; 383 00:19:19,230 --> 00:19:22,050 la respondo estis, ke 384 00:19:22,050 --> 00:19:25,850 momenton buklo kontrolos por vidi se la kondiĉo 385 00:19:25,850 --> 00:19:27,440 ke vi precizigi estas konita 386 00:19:27,440 --> 00:19:31,320 antaŭ ol ĝi kuras la korpo de la ciklo por la unua fojo, 387 00:19:31,320 --> 00:19:35,000 dum la do-dum buklo aŭtomate run la korpo de la ciklo, 388 00:19:35,000 --> 00:19:38,450 estas kion ni nomas ĝin - ĝi estas stranga terminologio, 389 00:19:38,450 --> 00:19:41,460 sed se mi iam diros ion kiu ne havas sencon, lasu min scii - 390 00:19:41,460 --> 00:19:45,360 la ciklo korpo estas ke aferoj kiujn vi metis en inter la frizita krampoj. 391 00:19:45,360 --> 00:19:47,840 Kaj en do-dum ciklo, 392 00:19:47,840 --> 00:19:50,220 tiu korpo get kuri almenaŭ unufoje, 393 00:19:50,220 --> 00:19:54,460 kaj tiam la kondiĉo gets kontrolis antaŭ ĝi kuras ĉiu plua tempo. 394 00:19:54,460 --> 00:19:56,580 >> Do efektive, Sam, 395 00:19:56,580 --> 00:20:00,820 Kion ili gravas skribi simplan dum buklo 396 00:20:00,820 --> 00:20:02,840 en Spacetoj? 397 00:20:02,840 --> 00:20:05,600 >> Kiel vi ordigi de kiel 398 00:20:05,600 --> 00:20:07,060 fari novan ...? 399 00:20:07,060 --> 00:20:09,220 Mi nur forigi ĉion, kion vi havas en tie. 400 00:20:09,220 --> 00:20:11,300 Yeah, nur purigi ĝin. 401 00:20:11,300 --> 00:20:14,510 >> Nu, mi kredas ke mi havas tiun - 402 00:20:14,510 --> 00:20:16,640 kiu vi volas, kiam, aŭ ĉu vi volas ...? 403 00:20:16,640 --> 00:20:19,350 Yeah, simple kelka tempo vera, presi ion. 404 00:20:21,050 --> 00:20:23,140 Kaj ni vidos. 405 00:20:23,140 --> 00:20:25,850 Aleksandro, mi komprenis ni neniam enkondukis vi. 406 00:20:25,850 --> 00:20:27,510 >> Ho, tio estas bone. 407 00:20:27,510 --> 00:20:30,760 Ĉu vi - vi povas kodi supren do-dum buklo por ni? 408 00:20:30,760 --> 00:20:32,520 >> Jes, mi provos. 409 00:20:32,520 --> 00:20:34,370 Bone, ni nur tiri tiujn sur la ekrano, 410 00:20:34,370 --> 00:20:38,240 por ke vi ia havas tenilon sur kio la diferencoj estas. 411 00:20:38,240 --> 00:20:41,280 >> Do jen kio Sam ĉi faru. 412 00:20:41,280 --> 00:20:44,460 Li havas entjero nomis i 413 00:20:44,460 --> 00:20:47,480 ke li inicializado al 17. 414 00:20:47,480 --> 00:20:51,570 Tiam li diras dum (int i = 17) 415 00:20:51,570 --> 00:20:54,230 printf ("Mia nomo estas Sam."); 416 00:20:54,230 --> 00:20:57,300 Do kio okazas kiam ni kuras tiun kodon? 417 00:20:57,300 --> 00:21:00,340 Estas eraro; kion la eraro diri? 418 00:21:00,340 --> 00:21:02,890 Ni tiri ĝin kaj parolu pri tio. 419 00:21:02,890 --> 00:21:05,040 Okazis eraro, ĝi diras. 420 00:21:05,040 --> 00:21:07,400 Ni rulu suben. 421 00:21:07,400 --> 00:21:09,460 Kion donis al ni cxi tiun eraron, kaj gxi diris, 422 00:21:09,460 --> 00:21:12,690 "Hej, mi atendis esprimo." 423 00:21:12,690 --> 00:21:16,180 Tio kinda kamufla. 424 00:21:19,160 --> 00:21:23,140 Yeah, do ĝuste - kaj denove, 425 00:21:23,140 --> 00:21:27,140 estos alia iom cimo ke ni kaptos en nur dua. 426 00:21:27,140 --> 00:21:31,800 Sed tio estas alia de tiuj ia stranga terminologio aferojn, 427 00:21:31,800 --> 00:21:36,150 tial ĉi int i = 17 428 00:21:36,150 --> 00:21:39,290 ne estas esprimo. 429 00:21:39,290 --> 00:21:41,220 Kio aspektas kiel ĝi estas fari estas tio 430 00:21:41,220 --> 00:21:43,410 deklari entjero nomis i 431 00:21:43,410 --> 00:21:45,540 kaj fiksante ĝin egali al 17 432 00:21:45,540 --> 00:21:48,780 aŭ, pli ĝuste, metante 17 en tiun int vokis mi. 433 00:21:50,560 --> 00:21:53,350 Kaj kiu ne havas sencon 434 00:21:53,350 --> 00:21:55,790 en la kunteksto de tiu dum ciklo. 435 00:21:55,790 --> 00:21:58,190 Ĝi havas sencon, kiel ni vidos, 436 00:21:58,190 --> 00:22:01,250 en la kunteksto de a por ciklo, ĉar por buklo deklaroj ne dividi 437 00:22:01,250 --> 00:22:05,800 kun tiu por int i egalas ion 438 00:22:05,800 --> 00:22:07,830 kaj daŭras. 439 00:22:07,830 --> 00:22:09,500 >> Tiel faris vin - 440 00:22:09,500 --> 00:22:12,630 ripari ion, tute certe. 441 00:22:12,630 --> 00:22:15,270 Tie iras; awesome. 442 00:22:15,270 --> 00:22:17,920 Do nun tio aspektas iom malsama. 443 00:22:17,920 --> 00:22:19,030 Paro de aferoj ŝanĝiĝis. 444 00:22:19,030 --> 00:22:21,300 Ĉu vi povas diri al ni tion, kion ili ŝanĝis? 445 00:22:21,300 --> 00:22:24,950 >> Mi prenis el la int, do ne estas deklaro [inaudible] anstataŭ de valorizo. 446 00:22:24,950 --> 00:22:28,770 La egala signo, mi metis 2 egala signoj, kion signifas egalas. 447 00:22:28,770 --> 00:22:30,560 Awesome. 448 00:22:30,560 --> 00:22:33,320 Yeah, do kio Sam ne estis li elprenis la int 449 00:22:33,320 --> 00:22:35,770 kiu estis ĉi tie antaŭe, 450 00:22:35,770 --> 00:22:39,340 do se mi simple rigardi ĉi - tiu ĉi estas kio gxi estas pli frua, ŝi diris int, 451 00:22:39,340 --> 00:22:41,970 kiu estis deklarante ĝin - do ni prenis el la tipo. 452 00:22:41,970 --> 00:22:44,710 Estas int, char, kordoj, mallonga, 453 00:22:44,710 --> 00:22:47,380 tiuj estas nomataj tipoj. 454 00:22:47,380 --> 00:22:49,510 Do vi elprenis la tipo 455 00:22:49,510 --> 00:22:51,580 kaj tiam antaŭe, 456 00:22:51,580 --> 00:22:54,190 li havis nur la solan egala signo 457 00:22:54,190 --> 00:22:57,300 kaj kion li diris estis problema pri ĉi tio 458 00:22:57,300 --> 00:22:59,580 kiam vi havas 1 egala signo, 459 00:22:59,580 --> 00:23:01,780 jen asigno operatoro. 460 00:23:01,780 --> 00:23:04,930 Tio ne kontroli, ĉu aŭ ne 2 aĵoj estas egalaj. 461 00:23:04,930 --> 00:23:07,920 Tio vere opcio io egala al io. 462 00:23:07,920 --> 00:23:11,110 Ni metas la numero 17 en la variablo i. 463 00:23:11,110 --> 00:23:13,850 Do fari tian komparon, 464 00:23:13,850 --> 00:23:16,430 vi devas uzi la duoblaj egaluloj, 465 00:23:16,430 --> 00:23:19,640 kiu estas speco de stranga afero 466 00:23:19,640 --> 00:23:22,760 sed estas sufiĉe komuna eraro. 467 00:23:23,980 --> 00:23:27,830 Do unu alia afero mi markas, se vi ne ĝenas, 468 00:23:27,830 --> 00:23:30,610 estas kiu en 469 00:23:30,610 --> 00:23:33,210 nia funkcio ĉi tie en int main, 470 00:23:33,210 --> 00:23:36,740 vi vidas ke la korpo de niaj funkcio 471 00:23:36,740 --> 00:23:39,810 estas kompensita de la maldekstra flanko 472 00:23:39,810 --> 00:23:42,400 per 4 spacojn aŭ langeto. 473 00:23:42,400 --> 00:23:44,730 La kialo ni faros ĉi 474 00:23:44,730 --> 00:23:47,000 estas nur por legibilidad. 475 00:23:47,000 --> 00:23:51,620 Kiel vi povas vidi en Sam dum buklo tie, 476 00:23:51,620 --> 00:23:53,120 li ne indent tute ne, 477 00:23:53,120 --> 00:23:55,390 kaj kiu ne tuŝas la funkciaro de la kodo. 478 00:23:55,390 --> 00:23:57,860 Ĝi funkcios ĝuste la sama. 479 00:23:57,860 --> 00:24:00,950 >> Do ekzemple, se ni venis sur la supron tie 480 00:24:00,950 --> 00:24:02,680 kaj premu nia Play butonon, ĝi konstruos ĝin, 481 00:24:02,680 --> 00:24:04,470 ĝi kuros ĝin, 482 00:24:04,470 --> 00:24:06,700 kaj kion okazos? 483 00:24:06,700 --> 00:24:08,360 Kial ĝi ankoraŭ diras kurante? 484 00:24:08,360 --> 00:24:10,560 >> Ĉar ĝi malebligos ke ripetante hi. 485 00:24:10,560 --> 00:24:12,900 Ekzakte, kaj kial ĝi observu ripetante hi? 486 00:24:12,900 --> 00:24:15,850 >> Pro la entjera neniam ŝanĝas, tia estas ĉiam 17. 487 00:24:15,850 --> 00:24:18,030 Yeah, precize, tiel 488 00:24:18,030 --> 00:24:20,970 ni vidu, post - memorigas al mi vian nomon denove? 489 00:24:20,970 --> 00:24:24,020 Jimmy. Do, Jimmy diris ke 490 00:24:24,020 --> 00:24:27,340 la kialo ĉi ripeti: hi denove kaj denove 491 00:24:27,340 --> 00:24:30,510 estas ĉar ĉi tiu kondiĉo estas ĉiam vera. 492 00:24:30,510 --> 00:24:33,270 Ni neniam ŝanĝi la valoron de i. 493 00:24:33,270 --> 00:24:36,170 Ni neniam ŝanĝi la enhavon de tio, kio stokitaj en tiu variablo. 494 00:24:36,170 --> 00:24:39,180 Do je ĉi tiu punkto ni akiris tiun eraron kiu 495 00:24:39,180 --> 00:24:42,170 via programo generita tro multe eligo, 496 00:24:42,170 --> 00:24:45,100 kaj se ni rulumu malsupren kaj tipon de rigardu kio okazas ĉi tie, 497 00:24:45,100 --> 00:24:49,160 vi povas vidi ke ĝi estas hi, hi, hi, hi, hi, hi, hi tuta vojo tra. 498 00:24:49,160 --> 00:24:51,200 Awesome. 499 00:24:51,200 --> 00:24:53,750 >> Do ia reen al la originala punkto 500 00:24:53,750 --> 00:24:57,020 ke havi la deŝovon tie 501 00:24:57,020 --> 00:25:00,110 en la korpo de la dum buklo ne tuŝis nenion. 502 00:25:00,110 --> 00:25:03,050 La programo ankoraŭ kuris nur fajna. 503 00:25:03,050 --> 00:25:06,790 Tipe por bona stilo - 504 00:25:06,790 --> 00:25:10,210 kaj ĉi tiu estas iu kiun ni serĉas en via problemo aroj - 505 00:25:10,210 --> 00:25:13,930 ni petas vin indent ĉi per 4 spacoj, kiujn vi povas fari 506 00:25:13,930 --> 00:25:16,440 por nur premante la langeton ŝlosilon 507 00:25:16,440 --> 00:25:18,860 aŭ per mane metante en 4 spacoj mem. 508 00:25:21,880 --> 00:25:25,050 Cool, okay do ni reiru kaj rigardu 509 00:25:25,050 --> 00:25:30,460 Aleksandro do-tempo. 510 00:25:30,460 --> 00:25:32,980 >> Nur kinda havante multe da malhelpo. 511 00:25:32,980 --> 00:25:34,390 Konsentite, bone ni laboros per ĝi. 512 00:25:34,390 --> 00:25:36,400 Ĉu tio estas cool? 513 00:25:36,400 --> 00:25:37,430 >> Jes. 514 00:25:37,430 --> 00:25:39,200 >> Okay, do jen ni iru. 515 00:25:39,200 --> 00:25:41,010 Jen la kodo kiu Aleksandro skribis. 516 00:25:41,010 --> 00:25:43,410 Ĉu vi iros de Alex - okay. 517 00:25:43,410 --> 00:25:46,380 Do jen la kodo kiun Alex skribis. 518 00:25:46,380 --> 00:25:50,500 Do, ni havas niajn deklaro de ĉefa dekstra tie, 519 00:25:50,500 --> 00:25:54,410 kaj poste ni atingis ĉi entjera variablo nomis i 520 00:25:54,410 --> 00:25:57,320 esti deklarita ĉi tie. 521 00:25:57,320 --> 00:26:01,060 Ni havas do komunikaĵo 522 00:26:01,060 --> 00:26:04,600 kaj tiam la korpo denove kun tiuj krampoj, 523 00:26:04,600 --> 00:26:06,520 do ĉi tiu estas la korpo de la do-dum - 524 00:26:06,520 --> 00:26:09,210 lasu min zomi en ĉi tia ĝi estas pli legebla - 525 00:26:09,210 --> 00:26:12,730 kaj en la korpo, ni provas presi "ĉi tiu estas la korpo", 526 00:26:12,730 --> 00:26:14,300 i + +, 527 00:26:14,300 --> 00:26:17,710 tiel pliigo la enhavo de i kaj fari tion 528 00:26:17,710 --> 00:26:19,470 ĝis mi alvenas al esti 3, 529 00:26:19,470 --> 00:26:22,440 kaj tiam nia programo finiĝas. 530 00:26:22,440 --> 00:26:24,680 >> Do kio okazas kiam ni kuras tiu programo? 531 00:26:24,680 --> 00:26:27,580 >> Mi atendis ensalutilo. 532 00:26:27,580 --> 00:26:32,070 Okay, do konstruu, kuri, eraro okazas. 533 00:26:32,070 --> 00:26:34,820 Kio okazas? 534 00:26:34,820 --> 00:26:37,060 Ni rulu suben ĉi tie, 535 00:26:37,060 --> 00:26:40,260 ni preni tiun iom críptico rigardas aferon, 536 00:26:40,260 --> 00:26:43,930 atendis punktokomo post supro nivelo deklaro. 537 00:26:43,930 --> 00:26:46,620 Tio kinda stranga. 538 00:26:46,620 --> 00:26:50,990 Ĉu neniu havas ideon pri tio, kion oni povus okazas? 539 00:26:53,080 --> 00:26:54,640 Kinda stranga, yeah. 540 00:26:54,640 --> 00:26:57,640 >> [Inaudible] esti deklarita ekstere de la parentezoj? 541 00:26:57,640 --> 00:27:03,480 Do ĉu tio ne aplikas tiam kiam vi uzas krampojn? 542 00:27:03,480 --> 00:27:07,390 Do li deklaris ĉi ulo ekstere de kiuj parantezoj? 543 00:27:09,670 --> 00:27:12,240 Ho, tiuj infanoj - la frizita krampoj? 544 00:27:12,240 --> 00:27:13,850 >> Jes. 545 00:27:13,850 --> 00:27:15,310 Yeah, precize. 546 00:27:15,310 --> 00:27:17,120 Do rezultas ke 547 00:27:17,120 --> 00:27:21,550 vi ne povas reale deklari variablon ĉi tie ŝatas tion. 548 00:27:23,750 --> 00:27:26,690 Kion vi povus esti provas fari estis - 549 00:27:26,690 --> 00:27:30,110 tranĉi ĝin el tie - 550 00:27:30,110 --> 00:27:34,330 vi povas aŭ ŝovi ĝin ene de la frizita krampoj ĉi tie 551 00:27:34,330 --> 00:27:37,400 aŭ alia alternativo 552 00:27:37,400 --> 00:27:40,350 estas meti ĝin tute ekstere. 553 00:27:42,480 --> 00:27:46,610 Kaj tial tiuj - depende kie vi efektive metis la deklaro 554 00:27:46,610 --> 00:27:48,550 de tiu entjero variablo, 555 00:27:48,550 --> 00:27:53,540 vi povas akiri 2 tre malsamaj specoj de variabloj; 556 00:27:53,540 --> 00:27:55,100 kiam estas ekster ĉefa, 557 00:27:55,100 --> 00:27:58,240 estas kion ni nomas tutmonda variablo. 558 00:27:58,240 --> 00:28:00,070 Estas ekster la atingo de iu el la funkcioj - 559 00:28:00,070 --> 00:28:03,420 ĝi ne estas ene de funkcio - 560 00:28:03,420 --> 00:28:07,050 dum se ni metas gxin en ĉefa, 561 00:28:07,050 --> 00:28:10,000 kiel ĉi tie, tiam ĝi estas nomata loka variablo, 562 00:28:10,000 --> 00:28:13,830 ĉar ĝi estas loka al la medio de ĉefa. 563 00:28:13,830 --> 00:28:16,720 Kaj ni parolos iom pli pri kio la diferencoj estas 564 00:28:16,720 --> 00:28:20,970 inter la 2 tipoj kaj kial vi uzas diversajn specojn de variabloj, 565 00:28:20,970 --> 00:28:23,040 sed por nun, 566 00:28:23,040 --> 00:28:25,070 vi povas simple observu ĉiuj variabloj lokaj, 567 00:28:25,070 --> 00:28:28,320 ĉar ni ne havas ajnan bezonon por tutmonda variabloj. 568 00:28:28,320 --> 00:28:31,390 >> Okay, do tio estas unu afero prava. 569 00:28:31,390 --> 00:28:34,680 Ni provu kurante ĉi denove, vidi kio okazas. 570 00:28:37,420 --> 00:28:40,270 Kuru, get alia eraro. 571 00:28:40,270 --> 00:28:43,320 Zoom en iom, kion ni preni? 572 00:28:45,110 --> 00:28:50,000 Ni get this atendis parentezo post do / tempon. 573 00:28:53,660 --> 00:28:55,260 Ajna ideoj kio okazas? Dan? 574 00:28:55,260 --> 00:28:58,880 >> Ĉu la tempo tiam parentezo kaj tiam - 575 00:28:58,880 --> 00:29:01,990 Mi ne scias se vi bezonas redeclare int, 576 00:29:01,990 --> 00:29:04,980 sed la fari dum (i <3). 577 00:29:04,980 --> 00:29:06,930 Ĝuste, jes. 578 00:29:06,930 --> 00:29:08,830 Do rezultas ke Dan Ekzakte pravas. 579 00:29:08,830 --> 00:29:11,230 Ni ne bezonas meti ĉi tiu tipo tie denove. 580 00:29:11,230 --> 00:29:14,440 Ni povas anstataŭ mortigi la tipo 581 00:29:14,440 --> 00:29:17,220 kaj nur faru tion. 582 00:29:19,270 --> 00:29:21,640 Bone. 583 00:29:21,640 --> 00:29:24,950 Mi zoom reen ekster, provu ĝin pli tempo. 584 00:29:26,360 --> 00:29:29,580 Rigardu tiun; kuras sukcesis. 585 00:29:29,580 --> 00:29:33,260 Se ni rulumu malsupren, "ĉi tiu estas la korpo" presita el 3 fojoj. 586 00:29:33,260 --> 00:29:35,820 Tio estas bela dolĉa. 587 00:29:35,820 --> 00:29:38,670 Bone, bone farita, knaboj. 588 00:29:38,670 --> 00:29:41,080 Well done. 589 00:29:41,080 --> 00:29:43,250 Kiel vi ĉi alvenante? 590 00:29:43,250 --> 00:29:46,200 Deca ritmo? 591 00:29:46,200 --> 00:29:49,200 Konsentite, cool. 592 00:29:49,200 --> 00:29:52,590 >> Do, kiel ni ia reen al la originala demando, 593 00:29:52,590 --> 00:29:55,430 ni - kaj nun, se ni vidas la diferencon, 594 00:29:55,430 --> 00:29:58,240 vi vidas, ke en ĉi do-dum ciklo, 595 00:29:58,240 --> 00:30:00,030 kondiĉe venas lasta. 596 00:30:00,030 --> 00:30:02,530 Do kiel la komputilo legas la programon 597 00:30:02,530 --> 00:30:06,050 ekde C programoj estas ekzekutitaj ia en ĉi secuencial ordo, 598 00:30:06,050 --> 00:30:09,450 kie laŭvorte starti kun la unua linio de ĉefa, 599 00:30:09,450 --> 00:30:13,450 kaj poste ekzekuti linio 6, linio 7, linio 8, linio 9, 600 00:30:13,450 --> 00:30:16,150 linio 10, linio 11, 601 00:30:16,150 --> 00:30:18,440 ĉiuj ĉi aĵoj supre dekstre tie 602 00:30:18,440 --> 00:30:20,020 tuj ekzekuti unufoje 603 00:30:20,020 --> 00:30:23,350 antaŭ ol ni iam provi ĉi kondiĉo por vidi 604 00:30:23,350 --> 00:30:26,240 ĉu mi - aŭ la enhavo de i, prefere - 605 00:30:26,240 --> 00:30:29,750 estas malpli ol la nombro 3. 606 00:30:29,750 --> 00:30:33,300 Kaj nur se iam ni atingos linio 12, 607 00:30:33,300 --> 00:30:36,260 la enhavo de i estas malpli ol 3 608 00:30:36,260 --> 00:30:39,150 do ni efektive saltas reen ĝis la linio 7 609 00:30:39,150 --> 00:30:41,140 kaj poste ripeti la procezon, 610 00:30:41,140 --> 00:30:44,620 kaj poste ni testi la kondiĉo denove kaj denove kaj denove. 611 00:30:44,620 --> 00:30:47,440 >> Do ni povas kontrasti ĉi 612 00:30:47,440 --> 00:30:50,240 kun - zoom reen eksteren, 613 00:30:50,240 --> 00:30:56,500 rulumu malsupren al Sam versio, 614 00:30:56,500 --> 00:31:00,760 ni estas gonna rigardu tion, iomete ŝanĝita por ke ĝi ne plu senfina ciklo - 615 00:31:00,760 --> 00:31:03,570 kie se ni zomi, 616 00:31:03,570 --> 00:31:06,300 ni vidas ke ĉi tiu programo ekzekutas, 617 00:31:06,300 --> 00:31:09,120 ĝi tuj unua deklari int i, 618 00:31:09,120 --> 00:31:12,030 starigis la enhavo de i estu al 0, 619 00:31:12,030 --> 00:31:15,820 kaj tiam frapas la kondiĉo de la dum buklo unua, 620 00:31:15,820 --> 00:31:19,210 tial en ĉi tiu kazo, tiu korpo, ĉi printf ("hi") kaj i + + 621 00:31:19,210 --> 00:31:21,630 eĉ ne ekzekuti 622 00:31:21,630 --> 00:31:24,310 se i estas vere malpli ol aŭ egala al 2. 623 00:31:24,310 --> 00:31:26,750 Do, se i estas 3, ekzemple, 624 00:31:26,750 --> 00:31:28,840 se ni povas tion ĉi tie 625 00:31:28,840 --> 00:31:32,160 egala al 4 - aŭ mi faros 3, ĉar mi diris 3 - 626 00:31:32,160 --> 00:31:34,890 kaj poste ruli ĝin, 627 00:31:34,890 --> 00:31:38,320 ĝi devos konstrui, ĝi kuros tute bone, 628 00:31:38,320 --> 00:31:40,530 sed ne vere presi ion, 629 00:31:40,530 --> 00:31:43,030 ĉar ĝi malsukcesis ke provo por la unua kazo. 630 00:31:44,780 --> 00:31:47,530 Do en la klaso, ni ia parolis pri kial tiuj do-dum maŝojn 631 00:31:47,530 --> 00:31:49,800 estas utilaj kelkfoje 632 00:31:49,800 --> 00:31:53,140 kaj kial ni devus uzi ĝin kiel kontraŭ momenton buklo. 633 00:31:53,140 --> 00:31:56,450 >> Ĉu ekzistas - do you guys havas sugeston 634 00:31:56,450 --> 00:31:59,090 cxar kial oni do-dum buklo povus esti pli utila? 635 00:31:59,090 --> 00:32:02,560 >> Nu, mi pensas do-dum cikloj estas se vi volas uzanto enigo, 636 00:32:02,560 --> 00:32:05,020 ĉar tiu vojo vi povas lasi ilin 637 00:32:05,020 --> 00:32:07,780 meti ion en unu fojon; se estas ĝentila, 638 00:32:07,780 --> 00:32:09,300 ni povas movi al la resto de la programo, 639 00:32:09,300 --> 00:32:11,250 sed se ne estas ĝentila, tiam vi daŭre instigante la uzanto 640 00:32:11,250 --> 00:32:13,250 ĝis vi metis la dekstran enigo. 641 00:32:13,250 --> 00:32:14,260 Yeah, precize - ekzakte, 642 00:32:14,260 --> 00:32:16,840 tial do-dum ciklo estas utila 643 00:32:16,840 --> 00:32:18,930 ĉar kiam instigante por uzanto enigo 644 00:32:18,930 --> 00:32:23,000 ĉar vi bezonos akiri la uzanto enigo antaŭ ol vi povos efektive kontroli ĝin. 645 00:32:23,000 --> 00:32:27,330 Do en pset 1, en pset 2, 646 00:32:27,330 --> 00:32:29,650 kie vi instigante por uzanto enigo estas multe, 647 00:32:29,650 --> 00:32:31,200 tio estas utila afero uzi 648 00:32:31,200 --> 00:32:33,740 kontraste al nur simpla dum ciklo. 649 00:32:33,740 --> 00:32:36,780 Se vi uzas dum buklo, vi povas fari la samon - 650 00:32:36,780 --> 00:32:38,750 vi povas fari la samon kun dum buklo 651 00:32:38,750 --> 00:32:40,580 kiel vi faras kun do-dum ciklo. 652 00:32:40,580 --> 00:32:43,380 Vi nur devas ia havas tiun duplikatajn procezo 653 00:32:43,380 --> 00:32:47,010 kie vi akiris la enigo unua kaj tiam komenci vian dum ciklo. 654 00:32:47,010 --> 00:32:49,800 Pro do-dum buklo, vi nur devas skribi ĝin unufoje 655 00:32:49,800 --> 00:32:52,430 kaj ĝi estas multe pli pura. 656 00:32:52,430 --> 00:32:54,650 >> Bone. 657 00:32:55,970 --> 00:32:57,330 Demandojn? 658 00:32:59,350 --> 00:33:01,380 Sencon? 659 00:33:01,380 --> 00:33:06,200 >> La reveno 0 - tio estas nur speco de stalo aŭ ĉu -? 660 00:33:06,200 --> 00:33:08,960 Yeah, do ni povas - 661 00:33:08,960 --> 00:33:11,960 bone, ni kovras ĉi iom pli poste 662 00:33:11,960 --> 00:33:13,290 sed ĝi rezultas ke 663 00:33:13,290 --> 00:33:15,720 ĉi tiu reveno 0 kiujn ni metis 664 00:33:15,720 --> 00:33:19,090 fine de ĉefa tutan tempon - 665 00:33:19,090 --> 00:33:21,980 vi povas kinda simple preni ĝin kiel ion ni devas fari 666 00:33:21,980 --> 00:33:24,930 provizore. 667 00:33:24,930 --> 00:33:28,860 Kion ni komencis paroli pri kun funkcioj 668 00:33:28,860 --> 00:33:31,600 speco de fine de la pasinta semajno kaj tiam denove ĉi-semajne 669 00:33:31,600 --> 00:33:33,550 estas ke funkcio 670 00:33:33,550 --> 00:33:37,680 prenas enigoj, kiuj estas tiuj aĵoj ene de la krampoj; 671 00:33:37,680 --> 00:33:41,690 tiuj estas 2 enigoj, nia argumentoj aŭ parametroj, 672 00:33:41,690 --> 00:33:44,540 kion ili ankaŭ nomita al nia ĉefa funkcio, 673 00:33:44,540 --> 00:33:48,510 kaj tiam funkcio produktas eligo 674 00:33:48,510 --> 00:33:51,290 kiun ni nomas la reveno valoro. 675 00:33:51,290 --> 00:33:56,260 Kaj la reveno valoro en la kazo de ĉefaj estas ĉi int, 676 00:33:56,260 --> 00:33:58,320 ĉi entjero, 677 00:33:58,320 --> 00:34:01,160 kaj la vojon diru funkcio, "Hej, tion vi eligo 678 00:34:01,160 --> 00:34:05,840 tuj estos, "estas kun tiu vorto" reveno ", 679 00:34:05,840 --> 00:34:07,960 ke ŝlosilvorto, pli ĝuste, 680 00:34:07,960 --> 00:34:11,000 kaj tiel ĉefa reveni 0 681 00:34:11,000 --> 00:34:13,389 aŭ ĉefa elirigi 0 682 00:34:13,389 --> 00:34:15,139 estas normo en C programoj 683 00:34:15,139 --> 00:34:18,110 ĉar reveni 0 de ĉefa signifas ke 684 00:34:18,110 --> 00:34:21,600 "Hej, ĉio ekzekutita kun mia programo nur bela." 685 00:34:21,600 --> 00:34:24,639 Se ni estus meti ion alian ol 0, 686 00:34:24,639 --> 00:34:27,440 kiel 1, ekzemple, 687 00:34:27,440 --> 00:34:31,080 ke estas uzata por diri kiu ajn kuris tiu programo 688 00:34:31,080 --> 00:34:33,540 ke io iris malbone. 689 00:34:35,739 --> 00:34:39,989 Do kiel ni ricevas pli implikitaj kun stuff super la semestro, 690 00:34:39,989 --> 00:34:42,670 se vi iam bezonas diri, 691 00:34:42,670 --> 00:34:46,650 "Oops, vi scias, iu iris malbone en tiu programo," 692 00:34:46,650 --> 00:34:49,409 prefere ol, havante mian programon akcidento, mi volas sciigi 693 00:34:49,409 --> 00:34:52,310 la koridoro de mia programo, ke io estis malbone, 694 00:34:52,310 --> 00:34:54,530 vi povas uzi reveno valoro, 695 00:34:54,530 --> 00:34:57,230 kiel ni nomas ĝin, tio ne estas 0. 696 00:35:00,180 --> 00:35:02,240 >> Do ni kovras ke iom pli 697 00:35:02,240 --> 00:35:05,480 iam ni enir funkcioj. 698 00:35:05,480 --> 00:35:09,030 Tian havas sencon? 699 00:35:09,030 --> 00:35:11,240 Okay. 700 00:35:11,240 --> 00:35:13,530 Funkcioj estas klaso de bizara - 701 00:35:13,530 --> 00:35:17,270 Mi kredas por homoj kiuj havas multajn matematikajn fono 702 00:35:17,270 --> 00:35:20,100 ĝi venas iom pli facile, 703 00:35:20,100 --> 00:35:22,540 precipe se vi havas iom pli abstrakta math fono 704 00:35:22,540 --> 00:35:24,240 kaj vi uzis por paroli pri funkcioj 705 00:35:24,240 --> 00:35:27,370 kaj cxio, kion klaso de aĵoj. 706 00:35:28,590 --> 00:35:30,610 Sed ni provos kaj kovri ilin 707 00:35:30,610 --> 00:35:33,280 kaj iru bela kaj malrapida kiel ili venis. 708 00:35:34,730 --> 00:35:37,870 Ankaŭ, ĉi tiu tuta int argc, 709 00:35:37,870 --> 00:35:41,090 char * argv [], 710 00:35:41,090 --> 00:35:44,960 cxar nun vi povas ankaŭ preni ke kiel kaldrono telero. 711 00:35:46,650 --> 00:35:49,050 Ni komencis kovri tiujn iom en prelego 712 00:35:49,050 --> 00:35:53,060 kiam ni parolas pri argumentoj kiujn get pasis al programoj sur la komanda linio, 713 00:35:53,060 --> 00:35:55,700 sed en via problemo aroj kaj viaj programoj, 714 00:35:55,700 --> 00:35:58,760 estas tute bone simple skribi malplena kaj konservi ĝin simpla. 715 00:35:58,760 --> 00:36:01,490 Kaj kion tio signifas void estas ke 716 00:36:01,490 --> 00:36:04,630 "Hej, ĉefa ne tuj akceptus ajnan enigoj; 717 00:36:04,630 --> 00:36:07,440 ĉi tiu estas nur programo ni gonna nur kuri. 718 00:36:07,440 --> 00:36:09,320 Ni ne gonna donos neniun ekstran informoj 719 00:36:09,320 --> 00:36:12,420 ĉiufoje ni komencu gxin kuri. " 720 00:36:14,730 --> 00:36:16,600 Do por la momento, vi povas fari tion; 721 00:36:16,600 --> 00:36:19,710 vi povas ankaŭ eĉ preterlasi la reveno 0 722 00:36:19,710 --> 00:36:22,650 fine de via programoj kaj ili kuros nur bone, 723 00:36:22,650 --> 00:36:26,150 sed mi rekomendas simple subteni ke in 724 00:36:26,150 --> 00:36:28,320 En paro de semajnoj, ni komencos ia 725 00:36:28,320 --> 00:36:31,340 tiri denove la ferdeko iomete kaj kompreni pli pri 726 00:36:31,340 --> 00:36:34,380 ĉiuj tiuj malsamaj iom movanta partoj. 727 00:36:34,380 --> 00:36:38,160 >> Bone, nun ni parolu pri nia dua demando tie. 728 00:36:38,160 --> 00:36:43,190 Do kion signifas la "nedeklarita ensalutilo" kutime indikas 729 00:36:43,190 --> 00:36:46,040 se outputted per Clang? 730 00:36:46,040 --> 00:36:49,290 Mi kredas ke ni povus vidi ke jam hodiaŭ. 731 00:36:51,170 --> 00:36:54,370 Ĉu iu povas doni recap de kion tio signifas? 732 00:36:54,370 --> 00:36:57,680 Ni vidu, Kelly - unu el la Kellys. 733 00:37:02,580 --> 00:37:05,300 >> Do - 734 00:37:05,300 --> 00:37:07,080 Yeah, kio faras - 735 00:37:07,080 --> 00:37:10,140 >> Mi pensas, kiam vi, kiel, ne deklaras la variablojn kaj vi provas uzi ĝin. 736 00:37:10,140 --> 00:37:13,310 Yeah, ĝuste, akurate. 737 00:37:13,310 --> 00:37:15,250 Do, se vi iam vidi ĉi eligo 738 00:37:15,250 --> 00:37:17,690 kiam vi provas kaj kompili vian programon, 739 00:37:17,690 --> 00:37:19,470 samkiel Kelly diris, 740 00:37:19,470 --> 00:37:24,210 ĝi signifas ke vi uzis variablo kiu vi ne deklaris, 741 00:37:24,210 --> 00:37:28,460 do se mi reiros al nia Spaco, 742 00:37:28,460 --> 00:37:31,150 kaj mi faru ion kiel 743 00:37:31,150 --> 00:37:34,800 printf ( 744 00:37:34,800 --> 00:37:38,260 "Saluton% s") 745 00:37:40,070 --> 00:37:42,440 kaj provi kaj plenigu en tiu% s 746 00:37:42,440 --> 00:37:45,640 kun ŝanĝiĝema s kion mi ne deklaris ie 747 00:37:45,640 --> 00:37:48,330 kaj mi provas ruli ĝin, 748 00:37:48,330 --> 00:37:51,330 vi vidos, kion Mi alvenas malsupren en ĉi sube tie ĉi: 749 00:37:51,330 --> 00:37:54,010 "La uzo de nedeklarita ensalutilo 's'"; 750 00:37:54,010 --> 00:37:57,710 ke nur signifas ke vi ne deklaris vian variablo. 751 00:37:57,710 --> 00:38:00,750 Sama afero okazas se 752 00:38:00,750 --> 00:38:05,240 vi havas x kaj vi provas kaj stoki 7 en ĝi 753 00:38:05,240 --> 00:38:08,720 kaj mi ne deklaris X. 754 00:38:08,720 --> 00:38:10,200 Mi alvenas tiu sama eraro: 755 00:38:10,200 --> 00:38:13,480 "La uzo de nedeklarita ensalutilo 'x'". 756 00:38:16,390 --> 00:38:18,250 >> Bone, 757 00:38:18,250 --> 00:38:21,720 do la cezaro Cipher, ne esti tre sekura, 758 00:38:21,720 --> 00:38:24,590 Mi lasos vin infanoj rigardi ĉi mallonga, ia kompreni kial, 759 00:38:24,590 --> 00:38:27,590 kaj espereble post fari ĉi tiu semajno problemo starigis 760 00:38:27,590 --> 00:38:29,270 kie vi fakte skribi Cezaro Cipher, vi komprenos iom pli 761 00:38:29,270 --> 00:38:32,600 pri kio signifas esti sekura kaj necerta - 762 00:38:36,180 --> 00:38:38,960 aŭ ne sekura, mi supozas - necerta estas iomete malsamaj. 763 00:38:40,560 --> 00:38:43,140 La alia afero ni havas ĉi tiujn aliajn demandojn tie 764 00:38:43,140 --> 00:38:45,470 pri funkcioj 765 00:38:45,470 --> 00:38:47,330 kaj kion funkcio estas, 766 00:38:47,330 --> 00:38:52,820 kaj ni ia parolis pri tio mallonge kiam ni parolis pri reveno valoroj; 767 00:38:52,820 --> 00:38:54,560 por iu kiu jam pasis por prelegi, 768 00:38:54,560 --> 00:38:57,790 vi povas recap kiu jam pasis por prelegi hodiaux? 769 00:38:57,790 --> 00:38:59,670 Bone. 770 00:39:01,210 --> 00:39:04,320 Ni vidu; ni havas - povas iu diri al ni kion funkcio estas? 771 00:39:04,320 --> 00:39:06,060 Kelly? 772 00:39:07,800 --> 00:39:11,260 >> >> Esence ion vi desegnas sur iu kiu estis skribita en la biblioteko jen 773 00:39:11,260 --> 00:39:14,460 pli komplika ol tie, kaj tiam vi simple skribi mallongan formon de ĝi, 774 00:39:14,460 --> 00:39:17,360 tiel kiel vi raportante al tiu biblioteko, uzante 775 00:39:17,360 --> 00:39:19,650 ĉiuj, kiuj delonge kodo kaj [inaudible]. 776 00:39:19,650 --> 00:39:22,680 Yeah, precize, kaj tiam vi volas aldoni ion al tio? 777 00:39:22,680 --> 00:39:27,050 >> Jes, mi pensas pri ĝi kiel simila al la koncepto de formulo en math 778 00:39:27,050 --> 00:39:30,130 kie vi ĵus skribi formulon kaj tiam vi povas ŝtopi variabloj en 779 00:39:30,130 --> 00:39:32,660 kaj tio funkcio estas [inaudible]. 780 00:39:32,660 --> 00:39:35,390 >> Yeah, do ni havas kelkajn respondojn tie 781 00:39:35,390 --> 00:39:38,080 kiuj estas ambaŭ vere bona kaj justa plu. 782 00:39:38,080 --> 00:39:43,040 Okazis raportante al kodo ke tio estis skribita en la biblioteko ie 783 00:39:43,040 --> 00:39:45,390 ke estas pli komplika 784 00:39:45,390 --> 00:39:47,130 kaj tiam vi povas desegni sur tiu kodo 785 00:39:47,130 --> 00:39:50,480 kaj fakte uzas ĝin por nur skribi la mallongan formon de ĝi - 786 00:39:50,480 --> 00:39:54,060 aŭ, pli ĝuste, lia nomo - 787 00:39:54,060 --> 00:39:57,590 kaj tiam estas ankaŭ ĉi komparo al formulo en math 788 00:39:57,590 --> 00:40:00,400 aŭ fiziko, cxiuj klaso de aĵoj 789 00:40:00,400 --> 00:40:02,980 kie vi havas formulon 790 00:40:02,980 --> 00:40:05,690 kaj vi povas tiam konektas en 791 00:40:05,690 --> 00:40:08,100 la variabloj al tiu formulo 792 00:40:08,100 --> 00:40:11,130 al la tiam akiri la rezulton de la formulo, 793 00:40:11,130 --> 00:40:14,580 tiel vi pensas pri tio kiel kiel la kvadrata ekvacio. 794 00:40:14,580 --> 00:40:17,690 Imagu se anstataŭ devi lerni pri 795 00:40:17,690 --> 00:40:21,310 kion la kvadrata formulo estas en math klaso, 796 00:40:21,310 --> 00:40:24,610 vi simple devis iom kalkulilo programon kiu faris por vi. 797 00:40:24,610 --> 00:40:28,930 Ĉu neniu uzas kalkulilo programoj en math klasoj en alta lernejo? 798 00:40:28,930 --> 00:40:31,020 Yeah, fiziko klasoj? 799 00:40:31,020 --> 00:40:34,670 Kie vi povas simple diri, "Hej, kvadrata formulo. 800 00:40:34,670 --> 00:40:37,740 Ĉi tiuj estas la variabloj, ke mi volas enigo. 801 00:40:37,740 --> 00:40:40,250 Nun donu al mi la respondon. " 802 00:40:40,250 --> 00:40:42,170 Tio estas speco de kia funkcio estas. 803 00:40:42,170 --> 00:40:44,850 Ĝi estas maniero por ni 804 00:40:44,850 --> 00:40:47,720 speco de skribo kiel malgranda iom sub programo 805 00:40:47,720 --> 00:40:51,700 ene de nia granda programo 806 00:40:51,700 --> 00:40:55,090 kaj uzi ĝin denove kaj denove 807 00:40:55,090 --> 00:40:58,380 por ke ni ne devas kopii kaj almeti kodo, 808 00:40:58,380 --> 00:41:04,220 ni povas doni ĝin malsamaj enigoj kaj akiri malsamaj eligoj, 809 00:41:04,220 --> 00:41:07,090 ĝi estas super oportuna 810 00:41:07,090 --> 00:41:11,420 kiam vi provas skribi malsamaj programoj en malsamaj epokoj. 811 00:41:11,420 --> 00:41:14,580 >> Do ekzemple, funkcio kiun ni uzis denove kaj denove kaj denove 812 00:41:14,580 --> 00:41:17,310 laŭlonge de la kurso estas printf. 813 00:41:17,310 --> 00:41:19,680 Printf estas sin funkcio 814 00:41:19,680 --> 00:41:23,360 kaj tio rezultas ke ĝi estas vere bela longa kaj komplikita, 815 00:41:23,360 --> 00:41:26,420 aĉa rigardante, funkcii skribi. 816 00:41:26,420 --> 00:41:29,590 Do tiel simpla kiel ĝi ŝajnas al ni 817 00:41:29,590 --> 00:41:31,810 presi stuff al la ekrano, 818 00:41:31,810 --> 00:41:34,820 ĉar ni ĉiuj simple faris tion komence de sekcio hodiaŭ, 819 00:41:34,820 --> 00:41:36,870 rezultu ke fakte, sciu, 820 00:41:36,870 --> 00:41:39,900 bona paro de cent linioj de kodo. 821 00:41:42,030 --> 00:41:45,620 Ĝi ne estas io, kiun mi iam volas skribi, asekuro, 822 00:41:45,620 --> 00:41:47,480 sed ni preni uzi ĝin ĉiutage; jen speco de cool, 823 00:41:47,480 --> 00:41:49,020 tiel ni atingos dividi ĝin kun alia, 824 00:41:49,020 --> 00:41:51,790 kun malsamaj programoj, 825 00:41:51,790 --> 00:41:54,520 do ni estos subnaĝado pli enen funkcioj; 826 00:41:54,520 --> 00:41:56,090 provizore, ni ne - 827 00:41:56,090 --> 00:41:59,150 la sola funkcio nin tuj skribos estas ĉefa. 828 00:41:59,150 --> 00:42:01,570 Ĉefa mem estas ankaŭ funkcion, 829 00:42:01,570 --> 00:42:04,270 kaj vi povas vidi ke estas atingis sian produktadon 830 00:42:04,270 --> 00:42:06,610 lia enigoj kiel ni raportis, 831 00:42:06,610 --> 00:42:08,930 kaj tiam ĝia nomo, kiu estas ĉefa. 832 00:42:08,930 --> 00:42:11,800 Artikolo estas speco de - estas speciala funkcio tie. 833 00:42:11,800 --> 00:42:14,800 En via C programon, ne devas esti ĉefa funkcio, 834 00:42:14,800 --> 00:42:17,900 kaj tiel por nun, ni ia preterlasis skribo 835 00:42:17,900 --> 00:42:21,400 la prototipo, aŭ la deklaro de, ĉefa. 836 00:42:21,400 --> 00:42:23,050 Ni donis ke al vi, 837 00:42:23,050 --> 00:42:25,650 kaj ni ĵus estis vi plenigu speco de la spacoj. 838 00:42:25,650 --> 00:42:29,120 >> >> Do por la dua problemo aro, ni ne bezonas 839 00:42:29,120 --> 00:42:31,350 skribi ĝin en la dua funkcio? 840 00:42:31,350 --> 00:42:34,200 Mi ne kredas tion. 841 00:42:34,200 --> 00:42:37,600 Mi kredas ke estas ĉiuj en ĉi tie. 842 00:42:37,600 --> 00:42:41,710 Yeah, do Cezaro Cipher, 843 00:42:41,710 --> 00:42:45,000 vi ne devas, ne rigardu kiel, 844 00:42:48,740 --> 00:42:53,150 kaj Vigenère, vi ne bone, 845 00:42:53,150 --> 00:42:56,400 tiel - kaj ĝi rezultas vi ne iam reale devas skribi 846 00:42:56,400 --> 00:42:58,250 funkcio, ĉu ne? 847 00:42:58,250 --> 00:43:01,950 Vi nomas ĉiam metas ĉiujn viajn kodo ene ĉefa, 848 00:43:01,950 --> 00:43:04,500 kaj multaj programistoj fari tion. 849 00:43:04,500 --> 00:43:07,130 Kiel ni movi plu, 850 00:43:07,130 --> 00:43:09,480 ni komencu enkondukante funkcioj kiel maniero 851 00:43:09,480 --> 00:43:11,530 purigi vian kodon, 852 00:43:11,530 --> 00:43:13,380 fari ĝin pli eleganta, 853 00:43:13,380 --> 00:43:16,890 en kazo vi havas taskojn - ia kiel kiam ni parolis pri cikloj, 854 00:43:16,890 --> 00:43:20,400 kiom foje estas aĵoj, kiun vi volas fari denove kaj denove kaj denove, 855 00:43:20,400 --> 00:43:23,510 kaj vi havas ia la naiva maniero - 856 00:43:23,510 --> 00:43:26,360 aux kion ni ofte nomas la "pajlulo" solvo, 857 00:43:26,360 --> 00:43:29,390 estas ĝuste kopii kaj almeti denove kaj denove - 858 00:43:29,390 --> 00:43:31,000 vi povas fari la samon kun funkcioj kie vi ĵus kopii kaj almeti 859 00:43:31,000 --> 00:43:33,360 la saman kodon denove kaj denove, 860 00:43:33,360 --> 00:43:35,750 sed ke bloats vian kodo - 861 00:43:35,750 --> 00:43:38,550 ĝi finas farante vian kodon vere longe - 862 00:43:38,550 --> 00:43:41,550 kaj ankaŭ ricevas iom malklara, 863 00:43:41,550 --> 00:43:43,470 kaj tiam signifas ke vi ne povas ŝati - 864 00:43:43,470 --> 00:43:45,250 se vi iam volas uzi tiun kodon denove en alia programo, 865 00:43:45,250 --> 00:43:48,610 vi ankaŭ batis kopii kaj bati ĝin denove, 866 00:43:48,610 --> 00:43:51,170 tial unu el la aferoj ni parolos pri trovas 867 00:43:51,170 --> 00:43:54,960 speco de dezajno kaj stilo de via programoj, 868 00:43:54,960 --> 00:43:57,010 kaj tiel, kiam ĝi havas sencon ia 869 00:43:57,010 --> 00:43:59,800 pako ion tien kaj metis ĝin kiel sendependan funkcio, 870 00:43:59,800 --> 00:44:02,080 ni kuraĝigas vin fari tion, 871 00:44:02,080 --> 00:44:04,700 kaj tio estas io, kio denove, 872 00:44:04,700 --> 00:44:07,790 ne estas malmola kaj rapida regulo. 873 00:44:07,790 --> 00:44:11,540 Ni malofte diras ke vi devas skribi funkcion nomis tiun, 874 00:44:12,870 --> 00:44:16,320 sed ĝi estas pli de unu el tiuj aferoj, kiujn vi ĵus disvolvi la tempo 875 00:44:16,320 --> 00:44:19,470 kiel vi skribas pli kaj pli programoj. 876 00:44:21,940 --> 00:44:24,790 >> Plu demandoj? 877 00:44:26,340 --> 00:44:30,610 Konsentite, do ni nun 878 00:44:30,610 --> 00:44:34,750 iri malantaŭen ĝis ĉi ulo ĉi tie, 879 00:44:34,750 --> 00:44:37,800 tial mi ankoraŭ en ĉi tiu sekcio de demandoj. 880 00:44:37,800 --> 00:44:39,900 Ni jam parolis pri ĉiuj tiuj malsamaj, 881 00:44:39,900 --> 00:44:42,050 kio estas funkcio, kial skribi funkciojn, 882 00:44:42,050 --> 00:44:44,700 kiam vi povas simple kopii kaj almeti? 883 00:44:44,700 --> 00:44:47,700 Espereble ni konvinkis vin, ke skribi funkciojn, estas bona aĵo. 884 00:44:47,700 --> 00:44:50,870 Do nun ni movi antaŭen al ĉi MySpace programo, 885 00:44:50,870 --> 00:44:53,080 kaj ni pasigas iom da tempo fari tion. 886 00:44:54,600 --> 00:44:56,480 >> Do, ni vidu, 887 00:44:56,480 --> 00:45:00,230 mi povas esti iu legas tion por mi? 888 00:45:02,640 --> 00:45:04,660 Ni havas Mikhaila - cxu vi legis tion por ni? 889 00:45:07,660 --> 00:45:08,890 >> You mean malantaŭen kiam MySpace - 890 00:45:08,890 --> 00:45:10,920 Back kiam MySpace estis genia. 891 00:45:10,920 --> 00:45:12,070 >> "Back kiam MySpace estis genia, 892 00:45:12,070 --> 00:45:14,900 ĉiu estis la furoro por tajpi ŝatas tion. 893 00:45:14,900 --> 00:45:17,320 Eble ĝi ankoraŭ estas? Mi ne vere certas. 894 00:45:17,320 --> 00:45:19,990 En ajna kazo, uzante la CS50 Appliance, 895 00:45:19,990 --> 00:45:22,600 CS50 Run, aŭ CS50 Spacoj, 896 00:45:22,600 --> 00:45:25,370 skribi programon kiu pelas la uzanto por mesaĝon 897 00:45:25,370 --> 00:45:29,350 kaj tiam eligas la mesaĝon kun lia unua letero majusklon, 898 00:45:29,350 --> 00:45:31,800 kun ĉiuj aliaj literoj en alternaj kazo, 899 00:45:31,800 --> 00:45:34,010 kiel por la specimeno eligo pli sube, 900 00:45:34,010 --> 00:45:37,060 en kiun boldfaced teksto reprezentas iujn uzanto enigo. 901 00:45:37,060 --> 00:45:39,800 Por simpleco, oni povas supozi ke la uzanto 902 00:45:39,800 --> 00:45:42,810 volo nur enigo minuskla literoj kaj spacoj. 903 00:45:42,810 --> 00:45:45,900 Konsideru ĉi tiun problemon eblon praktiki; 904 00:45:45,900 --> 00:45:48,640 vi ne estos petita prezenti ĉi tiu programo. " 905 00:45:48,640 --> 00:45:51,640 >> Awesome, dankon. 906 00:45:51,640 --> 00:45:54,750 Do kiel Mikhaila diris, 907 00:45:54,750 --> 00:45:58,850 tuj skribi programon kiu MySpaces vian kodon. 908 00:45:58,850 --> 00:46:02,230 Tial same iu el vi infanoj uzi MySpace? 909 00:46:02,230 --> 00:46:04,100 Iu el vi havas MySpace kontoj? 910 00:46:04,100 --> 00:46:05,920 Ho, jes, jes! 911 00:46:05,920 --> 00:46:08,300 Ĝi estis sufiĉe malvarmaj. 912 00:46:08,300 --> 00:46:09,950 [Ridado] 913 00:46:09,950 --> 00:46:12,060 Mi scias. 914 00:46:12,060 --> 00:46:14,500 Dating mi mem. 915 00:46:15,490 --> 00:46:18,300 Do kion ni provas fari estas skribi programon 916 00:46:18,300 --> 00:46:21,110 kiu iras tra 917 00:46:21,110 --> 00:46:24,490 kaj capitalizes la unua litero 918 00:46:24,490 --> 00:46:27,140 kaj tiam ĉiu letero poste - 919 00:46:27,140 --> 00:46:29,350 aŭ ĉiu alia letero poste, mi bedaŭras. 920 00:46:29,350 --> 00:46:32,910 >> Do - kaj vi povas vidi en ĉi tiu ekzemplo, 921 00:46:32,910 --> 00:46:35,260 jen kiel ni ruli la programaron, 922 00:46:35,260 --> 00:46:38,780 kaj tiel ĉi tio nur diras, "Ni kuras programo nomata a.out. 923 00:46:41,490 --> 00:46:44,630 La eniro ke ni tuj doni ĝin 924 00:46:44,630 --> 00:46:47,090 tuj estos instigis. 925 00:46:47,090 --> 00:46:51,150 Ni ne gonna provizi la eniro en la komanda linio. " 926 00:46:51,150 --> 00:46:54,100 Se vi estis sekvante ĉiuj prelegoj 927 00:46:54,100 --> 00:46:56,710 kaj aŭdante pri komandlinio argumentoj, 928 00:46:57,810 --> 00:47:00,080 jen speco de kie tiuj - ke funky sintakso 929 00:47:00,080 --> 00:47:04,530 ĉe ĉefa envenas kun la int argc, cxiuj aferoj, 930 00:47:04,530 --> 00:47:07,630 do tien ni ne uzas tion; ni ne pritraktas iun el tio. 931 00:47:09,400 --> 00:47:12,650 Ni estas nur gonna get this tajpitaj en de la uzanto, 932 00:47:12,650 --> 00:47:15,700 kaj tiam ĉi duan linion kun la funky majuskloj 933 00:47:15,700 --> 00:47:18,550 estas kion ni volas nian programon al eliro. 934 00:47:19,790 --> 00:47:22,860 >> Do anstataŭ uzi la Appliance aŭ Run, ni uzos Spacoj, 935 00:47:22,860 --> 00:47:25,360 ĉar ni havas Spacoj, 936 00:47:25,360 --> 00:47:28,640 kaj do se vi infanoj estus 937 00:47:28,640 --> 00:47:32,380 ricevos vian kodon por rigardi ion kiel ĉi tiu, 938 00:47:32,380 --> 00:47:35,930 do mi tuj savi ĉi revizio 939 00:47:35,930 --> 00:47:38,390 nur tiom vi havas la kaldrono plato ĉi tie 940 00:47:38,390 --> 00:47:42,840 kiu similas tiun, int main (void), nenio en ĝi. 941 00:47:44,480 --> 00:47:48,460 Vere, kion ni faros estas ni nur forigi ĉiun ĉiuj kune. 942 00:47:48,460 --> 00:47:50,330 Ni volas vakan skribtabulo, 943 00:47:50,330 --> 00:47:52,470 ĉar ni ne gonna komenci skribi kodo; 944 00:47:52,470 --> 00:47:55,380 pli ĝuste, ni gonna provi skribi kelkajn _pseudocode_ 945 00:47:55,380 --> 00:47:58,580 kiuj vere nur signifas ke ni tuj skribos iu kiu ne estas kodo 946 00:47:58,580 --> 00:48:01,010 tian priskribas kion ni volas fari, 947 00:48:01,010 --> 00:48:05,180 kinda kiel faris David en la unua tago de prelego, 948 00:48:05,180 --> 00:48:08,310 aŭ mi supozas ke estis la dua tago de prelego kiam li faris la tuta ŝtrumpetojn demo. 949 00:48:08,310 --> 00:48:10,990 You guys memoras ke - vidante la ŝtrumpetojn? 950 00:48:10,990 --> 00:48:13,300 Jozef estis tie ia tajpi ekster en la angla? 951 00:48:13,300 --> 00:48:16,300 Do ni estas gonna do la sama aĵo. 952 00:48:16,300 --> 00:48:18,380 >> Do kiam mi komencas skribi _pseudocode_, 953 00:48:18,380 --> 00:48:22,640 Mi ŝatas komenci rigardi kion la enmeto tuj estos. 954 00:48:22,640 --> 00:48:24,950 Kaj mi donas min specimeno kazo, 955 00:48:24,950 --> 00:48:28,780 tiel kiel "dankon pro la add!" 956 00:48:35,030 --> 00:48:38,010 Kaj tiam mi ankaŭ skribos kion mi volas la eligo esti, 957 00:48:38,010 --> 00:48:42,210 kiu en ĉi tiu kazo estas io tiamaniere. 958 00:48:53,790 --> 00:48:56,050 Kaj tian donas al mi bonan, kiel, ekde loko por pensi, 959 00:48:56,050 --> 00:48:59,730 "Bone, mi volas preni la linio 1 960 00:48:59,730 --> 00:49:03,560 kaj mi volas transformi ĝin en la linio 2, " 961 00:49:03,560 --> 00:49:06,570 kaj tian helpas gvidi mia penso. 962 00:49:06,570 --> 00:49:09,990 Ĉi tiu estas bona loko por komenci. 963 00:49:09,990 --> 00:49:12,190 Alia vojo al pripensi ĝin, ankaŭ, kiel ni kinda movi sur 964 00:49:12,190 --> 00:49:15,020 kaj kiel vi faras tion en viaj propraj programoj, estas 965 00:49:15,020 --> 00:49:18,530 pensi ia kiel tio estas la rando kazoj al tio? 966 00:49:18,530 --> 00:49:20,740 Kio estas speco de la stranga scenaroj? 967 00:49:20,740 --> 00:49:23,660 Kio estas la stranga enigoj, ke ni povus preni? 968 00:49:23,660 --> 00:49:26,550 Kaj kion oni tiuj eligoj aspektas? 969 00:49:26,550 --> 00:49:29,670 Ekzemple, unu stranga enigo 970 00:49:29,670 --> 00:49:33,200 estus ĉi tiu, 971 00:49:33,200 --> 00:49:35,630 krei absolute nenion, 972 00:49:35,630 --> 00:49:37,840 kiel kion ni eligo en tiu kazo? 973 00:49:37,840 --> 00:49:40,530 Io ni volas pensi, ankaŭ. 974 00:49:40,530 --> 00:49:44,450 >> Do ĝuste kiel demando, 975 00:49:44,450 --> 00:49:46,870 kio povus ni volas eligo? 976 00:49:46,870 --> 00:49:50,740 Se ni ne akiras iun enigo tute ne, kio devus nia programo estos elirigi? 977 00:49:53,740 --> 00:49:54,860 >> Nenio. 978 00:49:54,860 --> 00:49:57,340 Nenio? Sonas granda. 979 00:49:57,340 --> 00:49:59,280 Do ni volas certigi ke ni ne skribas ion el 980 00:49:59,280 --> 00:50:01,500 se ni ne komprenas ion ajn in 981 00:50:01,500 --> 00:50:04,320 Cool. Okay. 982 00:50:04,320 --> 00:50:07,370 Do 983 00:50:07,370 --> 00:50:09,380 Mi tuj alvokos kelkaj homoj kiel ni trairi 984 00:50:09,380 --> 00:50:12,790 kaj ĝuste kalkuli ia kiel kion la ĝenerala algoritmo estas 985 00:50:12,790 --> 00:50:15,250 kaj ni speco komenci labori tra ĉi kune. 986 00:50:16,240 --> 00:50:19,710 >> Do, ni vidu. Missy. 987 00:50:19,710 --> 00:50:21,220 Kiel vi opinias, ke ni volas komenci? 988 00:50:21,220 --> 00:50:24,830 Kio estus bona loko por komenci tie 989 00:50:24,830 --> 00:50:27,900 se ni volas transformi, diru, linio 1 990 00:50:27,900 --> 00:50:29,440 en linio 2? 991 00:50:29,440 --> 00:50:32,650 Can you speco de simple klarigi al mi, en la angla, kion vi pensas? 992 00:50:32,650 --> 00:50:34,770 Eĉ ne maltrankviligi kodo. 993 00:50:34,770 --> 00:50:38,250 >> Unue kion mi farus estus 994 00:50:38,250 --> 00:50:41,170 speco de rekta al la uzanto por diri al ili kion vi volas. 995 00:50:41,170 --> 00:50:44,730 Okay, do, ekzemple, 996 00:50:44,730 --> 00:50:47,450 "Hej, uzanto. Mi volas 997 00:50:47,450 --> 00:50:50,560 cxeno "- awesome. 998 00:50:50,560 --> 00:50:52,990 Do ni skribus ĉi sube. 999 00:50:52,990 --> 00:50:56,140 Instigas la uzanton por linio. 1000 00:50:56,140 --> 00:50:59,270 Tio sonas kiel bona komenco. 1001 00:51:03,920 --> 00:51:06,460 Bone. 1002 00:51:06,460 --> 00:51:09,750 Ni petas Kelly Ren ĉi tiu tempo. 1003 00:51:09,750 --> 00:51:11,580 Kion ni do volas fari poste? 1004 00:51:11,580 --> 00:51:14,220 Kio estas speco de nia venonta -? 1005 00:51:14,220 --> 00:51:18,080 >> Kolektas ilia eniro kaj stoki ĝin kiel variablo. 1006 00:51:18,080 --> 00:51:20,470 Granda. 1007 00:51:20,470 --> 00:51:24,280 Do kolekti la kordo, 1008 00:51:25,450 --> 00:51:27,880 stoki ĝin en variablo. 1009 00:51:34,840 --> 00:51:36,460 Do estas io speciala ni volas fari tie? 1010 00:51:36,460 --> 00:51:39,700 Ĉu ni volas kontroli siajn enigo 1011 00:51:39,700 --> 00:51:42,260 antaŭe -? 1012 00:51:42,260 --> 00:51:43,790 >> Jes. 1013 00:51:43,790 --> 00:51:46,330 Kio povus ni volas kontroli? 1014 00:51:46,330 --> 00:51:48,980 >> Nu, vi diris ke ni ne devas kontroli ĉu ĝi estas nombro, ĉu ne? 1015 00:51:48,980 --> 00:51:52,400 Ĉar ĝi devos supozi ke ĝi estas minuskla? 1016 00:51:52,400 --> 00:51:55,650 Yeah. 1017 00:51:56,380 --> 00:51:58,920 >> Do rezultas ke - jes. 1018 00:51:58,920 --> 00:52:01,850 Do getString estas garantiita por reveni al ni kordoj. 1019 00:52:01,850 --> 00:52:05,050 Oni ne tuj revenos numeron al ni aŭ io simila. 1020 00:52:05,050 --> 00:52:09,140 Povas esti cifero karakterojn ene de tiu ĉeno, kvankam. 1021 00:52:09,140 --> 00:52:13,460 Kaj tiuj, ni povas ignori kiel ni faris la majuskloj. 1022 00:52:13,460 --> 00:52:16,620 Sed malplena linio estas tute bone, 1023 00:52:16,620 --> 00:52:19,900 tial la kazo ĝuste sur linio 4 kaj 5, 1024 00:52:19,900 --> 00:52:22,020 Dekstre, kie ne estas eniro, 1025 00:52:22,020 --> 00:52:25,190 kaj ni metis nenion kiel nia eliro. 1026 00:52:25,190 --> 00:52:28,730 Ni ne devas maltrankviligi certigante ke estas iu en la ĉeno 1027 00:52:28,730 --> 00:52:31,840 aŭ kiu la kordo estas minimume 4 signoj longaj; 1028 00:52:31,840 --> 00:52:34,190 io estas bona. 1029 00:52:34,190 --> 00:52:38,270 Do tiu estas kontrastita, ekzemple, kun kiel la moneroj programoj kiuj vi skribis 1030 00:52:38,270 --> 00:52:42,340 kie vi devis certigi vin teksado nenegativa nombroj; 1031 00:52:42,340 --> 00:52:46,430 vi devis certigi ke vi ricevas la ĝustan nombron de tagoj en monato. 1032 00:52:46,430 --> 00:52:49,630 Kaj kiel vi infanoj faras tion? 1033 00:52:49,630 --> 00:52:51,470 Kiel vi faras tion testo? 1034 00:52:51,470 --> 00:52:54,090 Kion kiuj postulas, ke vi uzu? 1035 00:52:54,090 --> 00:52:55,650 >> Do-dum cikloj. 1036 00:52:55,650 --> 00:53:00,840 Do-dum bukloj; aliaj specoj de cikloj, tro, jes. 1037 00:53:02,190 --> 00:53:04,520 Do rezultas ni ne devas uzi ciklo en ĉi tiu kazo, 1038 00:53:04,520 --> 00:53:07,360 kiam ni instigante al cxeno, kiu estas speco de agrabla. 1039 00:53:08,280 --> 00:53:10,620 >> Bone, movante plu. 1040 00:53:12,410 --> 00:53:14,270 Do, Stella. 1041 00:53:14,270 --> 00:53:17,530 Ĉu vi povas diri al ni iomete pri tio, kion ni faru nun? 1042 00:53:17,530 --> 00:53:20,270 Do nun ni havas la kordo, ni havas ĝin stokita en variablo; 1043 00:53:20,270 --> 00:53:23,360 Kion ni bezonas por fari kun la kordo? 1044 00:53:26,790 --> 00:53:33,530 >> Ni bezonas - 1045 00:53:33,530 --> 00:53:36,550 identigi la 2 - 1046 00:53:36,550 --> 00:53:39,290 Yeah, simple diru ĝin en la angla, tio estas timinda. 1047 00:53:39,290 --> 00:53:42,670 >> Identigi la [inaudible] ĉefurboj - aŭ, majuskla. 1048 00:53:44,420 --> 00:53:48,130 Yeah, do vi volas identigi kiuj aĵoj estas majuskla kaj minuskla. 1049 00:53:50,020 --> 00:53:54,180 Ni ne povas majuskle aŭ minuskle ilin ĝis ni identigas kiu aĵoj. 1050 00:54:03,790 --> 00:54:06,350 Do ni metos ke en ĉi tie. 1051 00:54:06,350 --> 00:54:10,210 >> Do, nur pensas en tiu procezo, 1052 00:54:10,210 --> 00:54:13,200 how do ni faru ĉi tiu identigo? 1053 00:54:13,200 --> 00:54:15,050 Ĉu vi scias, Dan? 1054 00:54:15,050 --> 00:54:18,120 Speco de tio, kion ni - kion ilo ni devus uzi el niaj iloj? 1055 00:54:18,120 --> 00:54:22,500 >> Mi metis ĝin en iu maniero en kiel tabelo aŭ ĉiu linio 1056 00:54:22,500 --> 00:54:24,240 estas liaj propraj iom skatolo, 1057 00:54:24,240 --> 00:54:27,240 kaj tiam Majusklaj ĝin de tie aŭ ne. 1058 00:54:27,240 --> 00:54:30,440 Okay, do unu ilo ni povas uzi estas tabelo. 1059 00:54:30,440 --> 00:54:33,760 Kion ni devas rigardi en la ĉeno, 1060 00:54:33,760 --> 00:54:36,680 kvankam, elŝeligi - ni devis rigardi la gravuloj. 1061 00:54:36,680 --> 00:54:40,890 >> Do vi devas rigardi la longo de la kordo? 1062 00:54:40,890 --> 00:54:43,880 Yeah, do parto de tiu fariĝas ĉiam la longo de la kordo. 1063 00:54:50,450 --> 00:54:54,150 Nur pro scivolemo, kion ni uzas por ricevi la longo de kordoj? 1064 00:54:54,150 --> 00:54:58,080 >> Strlen? 1065 00:54:58,080 --> 00:55:02,870 Yeah, strlen; ni nomas tion "strlen" 1066 00:55:04,180 --> 00:55:08,620 Ĉiuj de ĉi tiuj kordoj funkcioj, do strlen estas funkcio, 1067 00:55:08,620 --> 00:55:10,670 kaj estas super oportuna, ĉar ni povas uzi ĝin por nur diras, 1068 00:55:10,670 --> 00:55:13,430 Hej, strlen: Jen kordoj, diru al mi kiom longe ĝi estas. 1069 00:55:13,430 --> 00:55:17,350 En la prelego hodiaŭ, Davido parolis multe pri kiel strlen estas implementado, 1070 00:55:17,350 --> 00:55:20,370 kio efektive okazas malantaŭ la scenoj. 1071 00:55:20,370 --> 00:55:25,450 Sed ĉi tiu estas unu el la tre super oportuna aĵoj. 1072 00:55:25,450 --> 00:55:29,170 Estas aliaj kiuj estas ankaŭ en la kordo biblioteko, 1073 00:55:29,170 --> 00:55:34,690 kiel strcmp, kiu estas literumita "strcmp", 1074 00:55:34,690 --> 00:55:38,010 kiu estas uzata por kompari kordoj al ĉiu alia. 1075 00:55:41,220 --> 00:55:45,020 Aliaj aĵoj vi uzos kiel strstr, 1076 00:55:45,020 --> 00:55:48,770 kio estas bona por trovi sub kordoj kaj tiel plu. 1077 00:55:48,770 --> 00:55:53,380 Por la plimulto, ili ĉiuj komenciĝas per str kaj poste iru al esti iu alia. 1078 00:55:53,380 --> 00:55:57,080 La kialo ne vere literumi ilin kiel ĉenon kaj tiel plu 1079 00:55:57,080 --> 00:56:00,260 estas ĉar reen en kiel la fruaj tagoj de C, 1080 00:56:00,260 --> 00:56:04,100 kiam homoj estis unue skribe kaj cxiuj, 1081 00:56:04,100 --> 00:56:07,580 ili havis limigojn sur la nombro da karakteroj por ke vi povis uzi 1082 00:56:07,580 --> 00:56:09,950 por funkcio nomoj kaj variablo nomoj, 1083 00:56:09,950 --> 00:56:12,620 do ĉio estas kiel super kondensita. 1084 00:56:12,620 --> 00:56:15,750 Sed aùton vi vidas ion, kiu komenciĝas per str, 1085 00:56:15,750 --> 00:56:18,600 kiu tipe signifas ĉi havas ion fari kun ĉeno. 1086 00:56:20,990 --> 00:56:23,350 >> Konsentite, do vi devas atingi la longo de la kordo, 1087 00:56:23,350 --> 00:56:27,110 kaj poste, kion ni faru kun la gravuloj? 1088 00:56:27,110 --> 00:56:29,020 Ĉu vi scias, Sam? 1089 00:56:29,020 --> 00:56:32,410 >> Mi tute ne scias, mi provis kompreni ĝin. 1090 00:56:32,410 --> 00:56:35,410 Mi vere ne scias - mi deziras estis iuj maniero - 1091 00:56:35,410 --> 00:56:38,990 Mi volas diri, mi pensus eble ni povus fari ion kun senesperon kaj evens, 1092 00:56:38,990 --> 00:56:40,860 sed mi ne scias pri iu ajn funkcio tiel. 1093 00:56:40,860 --> 00:56:42,240 Yeah. 1094 00:56:43,160 --> 00:56:45,200 >> Sed tio - tio ne nepre laboras, 1095 00:56:45,200 --> 00:56:48,690 ĉar tiam vi ricevas la spacoj esti - 1096 00:56:48,690 --> 00:56:51,130 vi devus havi la spaco por ricevi konsiloj pri kiel - 1097 00:56:51,130 --> 00:56:54,310 Okay. 1098 00:56:54,310 --> 00:56:56,490 >> Mi ne scias - I'm ia perdis je ĉi tiu punkto. 1099 00:56:56,490 --> 00:56:58,120 Yeah - ne, ne, ne, tiuj estas bonaj punktoj. 1100 00:56:58,120 --> 00:57:00,420 Do kion ni bezonas por fari estas, kiel Sam diris, 1101 00:57:00,420 --> 00:57:02,970 ni bezonas por spuri kiuj literoj estas la nepara literoj, 1102 00:57:02,970 --> 00:57:05,540 kaj kiu aĵoj estas la eĉ leterojn. 1103 00:57:06,650 --> 00:57:09,090 Sed ni volas certigi ni ne nur rigardis 1104 00:57:09,090 --> 00:57:12,110 ĉe la neparaj kaj eĉ 1105 00:57:12,110 --> 00:57:14,030 indeksoj en la ĉeno, 1106 00:57:14,030 --> 00:57:17,660 sed prefere rigardante la strangan kaj eĉ literoj en la ĉeno, 1107 00:57:17,660 --> 00:57:20,190 do ni bezonas kinda havas tiun distingon inter 1108 00:57:20,190 --> 00:57:25,190 leteroj - kiel kio estas reale A, B, C, D, aŭ tiel plu, 1109 00:57:25,190 --> 00:57:29,090 kaj kion aĵoj ne estas literoj sed ankoraŭ en nia linio. 1110 00:57:29,090 --> 00:57:32,390 Ekzemple tie, kiel tiu ekkrio punkto ne leteron, 1111 00:57:32,390 --> 00:57:36,060 sed estas ankoraŭ parto de nia kordoj, temas ankoraŭ char. 1112 00:57:36,060 --> 00:57:38,820 Simile, ĉiu de ĉi tiuj spacoj - 1113 00:57:38,820 --> 00:57:41,710 ĝi ne havas sencon por profiti spacon, ĉu ne? 1114 00:57:41,710 --> 00:57:46,160 Do ni volas certigi, ke ni iel salti tiuj 1115 00:57:46,160 --> 00:57:49,410 dum ankoraŭ sekvado senesperon kaj evens. 1116 00:57:50,900 --> 00:57:54,990 >> Do ia en nia programado iloj 1117 00:57:54,990 --> 00:57:57,270 ĝis nun, se vi volas, 1118 00:57:57,270 --> 00:58:01,310 ni havas kelkajn diversajn ilojn kiuj ni jam parolis pri. 1119 00:58:01,310 --> 00:58:04,640 Do, ekzemple, estas variabloj, 1120 00:58:04,640 --> 00:58:07,120 kiel ni jam parolis pri cxi tie. 1121 00:58:07,120 --> 00:58:10,730 Alia ilo ni jam parolis pri estas funkcioj. 1122 00:58:10,730 --> 00:58:15,800 Do ni jam parolis pri variabloj en nia _pseudocode_ tien 1123 00:58:15,800 --> 00:58:19,760 kiel kio ni tuj uzos por stoki niajn kordoj. 1124 00:58:19,760 --> 00:58:24,630 Ni jam parolis pri funkcioj por ricevi la longo de kordoj, kiel strlen. 1125 00:58:28,510 --> 00:58:31,170 Ni parolis pri io alia, kaj ni jam parolis pri tio 1126 00:58:31,170 --> 00:58:34,850 cxar multe pli frue en la sekcio hodiaŭ: cikloj. 1127 00:58:39,390 --> 00:58:42,030 >> Kion vi pensas pri infanoj uzante buklo en tiu programo? 1128 00:58:42,030 --> 00:58:44,110 Jared, kion vi opinias? 1129 00:58:47,150 --> 00:58:50,030 Ĉu ni uzu ciklo en tiu programo? 1130 00:58:50,030 --> 00:58:52,500 >> Probable ne, ne, ĉar vi ne devas iri tra ĝi pli ol unufoje. 1131 00:58:52,500 --> 00:58:55,260 Okay, vi ne devas iri tra pli ol unufoje? 1132 00:58:55,260 --> 00:58:57,190 >> La tuta linio. 1133 00:58:57,190 --> 00:59:00,660 Bone, do vi ne devas iri tra la kordo tuta unufoje. 1134 00:59:00,660 --> 00:59:03,330 Pardonu, ke faris absolute neniun senson! 1135 00:59:03,330 --> 00:59:06,360 Vi ne devas iri tra la tuta ĉeno pli ol unufoje. 1136 00:59:06,360 --> 00:59:08,660 Okay. 1137 00:59:09,790 --> 00:59:11,920 Kion vi opinias? 1138 00:59:11,920 --> 00:59:14,110 >> Mi pensas ke ĝi estas bona por uzi ilin 1139 00:59:14,110 --> 00:59:16,640 do ni povas fari kiel capitalize dum 1140 00:59:16,640 --> 00:59:19,750 la situo de ĝi estas [inaudible] numeron. 1141 00:59:19,750 --> 00:59:22,940 Granda, kaj tiel profiti kio? 1142 00:59:22,940 --> 00:59:25,200 Okay, do ni dirante, ke 1143 00:59:25,200 --> 00:59:28,130 ni devus uzi buklo ĉar ni volas 1144 00:59:28,130 --> 00:59:32,550 profiti leteron dum ĝi ne estas nombro. 1145 00:59:35,130 --> 00:59:37,140 Do - sorry, vi volas aldoni? 1146 00:59:37,140 --> 00:59:39,340 >> Mi intencis diri, ke la vojo vi trakti la kordo 1147 00:59:39,340 --> 00:59:42,290 kaj [inaudible] disigas la [inaudible] en la gravuloj? 1148 00:59:42,290 --> 00:59:43,710 Yeah. 1149 00:59:43,710 --> 00:59:45,850 >> Kaj tiam ni povas atribui la nombroj al - 1150 00:59:45,850 --> 00:59:47,780 aŭ bazita sur la loko de la literoj en la kordo? 1151 00:59:47,780 --> 00:59:49,720 Yeah. 1152 00:59:49,720 --> 00:59:53,640 >> Kaj identigi ĉu ĝi estas nepara aŭ eĉ kaj profiti la letero mem 1153 00:59:53,640 --> 00:59:57,750 dum la situo de la letero estas [inaudible] - sorry. 1154 00:59:57,750 --> 01:00:00,150 Granda. 1155 01:00:00,150 --> 01:00:03,430 >> Do nur recap. 1156 01:00:03,430 --> 01:00:05,840 Ĉu vi povas rememorigi al mi pri via nomo denove - I'm sorry. 1157 01:00:05,840 --> 01:00:06,900 >> Charlotte. 1158 01:00:06,900 --> 01:00:08,490 Charlotte, okay. 1159 01:00:08,490 --> 01:00:11,130 Do kio Charlotte dirante 1160 01:00:11,130 --> 01:00:14,950 kio estas plene rajtas - ho, tiu homo al auto indent sur min - 1161 01:00:14,950 --> 01:00:17,770 estas ke se ni rigardas ĉeno 1162 01:00:17,770 --> 01:00:19,160 kiel ĉi tiu supre - 1163 01:00:19,160 --> 01:00:21,590 "Dankon pro la Aldoni" - 1164 01:00:21,590 --> 01:00:24,790 kiel vico de signoj 1165 01:00:24,790 --> 01:00:29,010 kie la estas en pozicio 0, 1166 01:00:29,010 --> 01:00:32,260 la h estas pozicio 1. 1167 01:00:32,260 --> 01:00:36,880 A estas 2, tiam ni havas 3, 4, 5; 1168 01:00:36,880 --> 01:00:40,830 la spaco estas en la pozicio 6. 1169 01:00:42,380 --> 01:00:45,300 Dum - kio estas la pozicio de f? 1170 01:00:45,300 --> 01:00:47,610 7! 1171 01:00:47,610 --> 01:00:49,300 Ho? 8. 1172 01:00:49,300 --> 01:00:52,070 R? 9. 1173 01:00:52,070 --> 01:00:54,340 Kaj tiam ni havas 10, kaj poste mi ne povas vere skribi ĝin sen ĝi 1174 01:00:54,340 --> 01:00:57,430 kinda atingi senorda sur la ekrano. 1175 01:00:57,430 --> 01:01:02,340 Sed tio estas vere kiel ni povas paroli pri kordoj en memoro. 1176 01:01:02,340 --> 01:01:04,660 Ĉu ĝi ĉeno 1177 01:01:04,660 --> 01:01:07,920 estas vico de signoj, 1178 01:01:07,920 --> 01:01:12,430 kaj kiam ni priparolas al individua karaktero en ĉeno, 1179 01:01:12,430 --> 01:01:15,280 ni ofte faras tion pro mencio ke gravulo pozicio 1180 01:01:15,280 --> 01:01:17,620 ene de la kordoj, 1181 01:01:17,620 --> 01:01:19,910 probable la sama vojo, kiun ni parolas pri septembro 1182 01:01:19,910 --> 01:01:22,870 esti la naŭa monato de la jaro 1183 01:01:22,870 --> 01:01:27,730 aŭ lundo esti la unua tago de la semajno. 1184 01:01:29,280 --> 01:01:33,070 Do ĉi havigas al ni vojon al 1185 01:01:33,070 --> 01:01:37,030 elŝeligi kiuj aĵoj estas nepara kontre eĉ 1186 01:01:37,030 --> 01:01:39,540 ĉar vi povas vidi ĉi tie, 1187 01:01:39,540 --> 01:01:43,640 se ni kongruas ĝin kun ĉi tiu T, 1188 01:01:46,310 --> 01:01:49,360 vi povas vidi, ke ĉiuj de la majuskloj aĵoj 1189 01:01:49,360 --> 01:01:53,040 estas vespero pozicioj, 1190 01:01:53,040 --> 01:01:55,880 almenaŭ por la unua vorto, 1191 01:01:55,880 --> 01:01:59,080 kaj tiam aĵoj elĵetigis vin ekstere iam ni batis tiu spaco, 1192 01:01:59,080 --> 01:02:02,460 ĉar ni ne rakontas ĉi spaco kiel leteron, 1193 01:02:02,460 --> 01:02:05,150 tiel estas kvazaŭ ni komencis 1194 01:02:05,150 --> 01:02:08,930 kaj eliris 0, 1, 2, 3, 4, 5, 1195 01:02:08,930 --> 01:02:12,600 spaco, 6, 7, 8, spaco, 1196 01:02:12,600 --> 01:02:16,440 9, kaj tiam 10, 11, 12, kaj tiel plu. 1197 01:02:19,300 --> 01:02:22,910 >> Cool, do ni certe volos uzi ian buklo 1198 01:02:22,910 --> 01:02:27,760 iri super ĉiu el la gravuloj de turno. 1199 01:02:31,330 --> 01:02:34,580 Do je ĉi tiu punkto, 1200 01:02:36,490 --> 01:02:38,360 ni revenos al nia malnova _pseudocode_ tie. 1201 01:02:40,970 --> 01:02:42,650 Kiel parto de ĉi tiu identigo de kiuj tiuj 1202 01:02:42,650 --> 01:02:45,350 estas majuskla kaj kiuj aĵoj estas minuskla, 1203 01:02:45,350 --> 01:02:48,340 ni volas fari ĉi tion en ia buklo. 1204 01:02:51,080 --> 01:02:53,390 Cirkla, dupunkto. 1205 01:02:55,070 --> 01:03:01,220 Kia buklo, el la tipoj de cikloj, ke ni havas, 1206 01:03:01,220 --> 01:03:03,670 Ŝajnas esti bona por uzi en tiu kazo? 1207 01:03:03,670 --> 01:03:05,610 >> Mi pensis la por buklo. 1208 01:03:05,610 --> 01:03:07,500 Kaj kial vi pensas por buklo? 1209 01:03:07,500 --> 01:03:10,000 >> Ĉar komenciĝas je nulo, kaj poste 1210 01:03:10,000 --> 01:03:13,000 kiam ni atingas la longecon de la kordo, 1211 01:03:13,000 --> 01:03:16,170 kaj tiam ĉiu ripeto vi povas [inaudible] ankaŭ? 1212 01:03:16,170 --> 01:03:18,260 Yeah, precize. 1213 01:03:18,260 --> 01:03:21,490 Do, el la malsamaj elektoj de cikloj, 1214 01:03:21,490 --> 01:03:25,350 ni havas por bukloj, dum bukloj, kaj do-dum cikloj. 1215 01:03:25,350 --> 01:03:28,550 Kie a por buklo estas aparte utila 1216 01:03:28,550 --> 01:03:32,120 Estas kiam vi volas scii 1217 01:03:32,120 --> 01:03:34,940 speco de kie vi estas en la ciklo, 1218 01:03:34,940 --> 01:03:38,520 kiom da fojoj la buklo estis ekzekutita ĝis nun. 1219 01:03:38,520 --> 01:03:42,490 Kio estas ĝuste kion ni volas scii en ĉi tiu situacio, 1220 01:03:42,490 --> 01:03:44,640 kiel Kelly diris, 1221 01:03:44,640 --> 01:03:47,400 bazita sur de Charlotte en la unuaj komentoj kiujn ni volas scii la pozicion 1222 01:03:47,400 --> 01:03:49,900 de la karaktero ene de la kordoj, 1223 01:03:49,900 --> 01:03:51,750 kaj la por buklo donos al ni nur tion, 1224 01:03:51,750 --> 01:03:54,680 ĉar se ni komencas ia rigardante malantauxen je nia ĉeno, 1225 01:03:54,680 --> 01:03:57,140 se ni komencos nian por buklo je 0, 1226 01:03:57,140 --> 01:04:00,350 kaj ni iru supren tra la longo de la tuta ĉeno, 1227 01:04:00,350 --> 01:04:04,740 tiam ni povas asocii la letero T 1228 01:04:04,740 --> 01:04:08,110 kun la 0 en nia por ciklo, 1229 01:04:09,950 --> 01:04:13,080 litero H kun la 1 en nia por ciklo, kaj tiel plu, 1230 01:04:13,080 --> 01:04:16,600 iri la tutan vojon tra la fino de la kordo. 1231 01:04:18,810 --> 01:04:21,890 >> Do ni komencu kodigo ĉi malmulta 1232 01:04:21,890 --> 01:04:24,930 nur tiom vi infanoj ricevas senton por kio ĉi tiu aspektas. 1233 01:04:24,930 --> 01:04:27,980 Mi iros por savi tion, 1234 01:04:27,980 --> 01:04:31,230 tial ni havas niajn pseŭdo kodo en ĉi tie, 1235 01:04:33,490 --> 01:04:38,120 kaj mi tuj forviŝi ĉion. 1236 01:04:38,120 --> 01:04:42,210 Do mi havas malplenan skribtabulo. 1237 01:04:42,210 --> 01:04:45,910 Ke mi baldaŭ komencos skribi int main (void) 1238 01:04:45,910 --> 01:04:48,440 { 1239 01:04:48,440 --> 01:04:51,380 Ke mi baldaŭ metos la reveno 0 en 1240 01:04:51,380 --> 01:04:53,320 kaj tiam la}. 1241 01:04:53,320 --> 01:04:56,130 Do kutime kiam mi komencas plani, ĉi tiu estas kion mi komence. 1242 01:04:56,130 --> 01:04:59,370 Mi savos ĝin por ke vi infanoj havas ĝin. 1243 01:05:06,290 --> 01:05:08,440 Do unu el la unuaj aferoj ni parolis pri estis 1244 01:05:08,440 --> 01:05:10,920 atingi eniron de la uzanto 1245 01:05:10,920 --> 01:05:13,740 kaj stokante ĝin en linio. 1246 01:05:13,740 --> 01:05:16,420 Kiel ni atingas enigo de uzanto? 1247 01:05:16,420 --> 01:05:19,640 >> GetString. 1248 01:05:19,640 --> 01:05:21,870 GetString, tute certe. 1249 01:05:23,150 --> 01:05:26,820 Do se mi tajpas GetString () 1250 01:05:26,820 --> 01:05:32,150 kaj punktokomo. 1251 01:05:32,150 --> 01:05:36,630 Ni provu kurante ĉi; volo ĉi run, en unua loko? 1252 01:05:36,630 --> 01:05:38,430 Kaj kial ne ĉi kuri? 1253 01:05:38,430 --> 01:05:40,090 >> Vi devas deklari la variablon. 1254 01:05:40,090 --> 01:05:43,040 Mi devas deklari variablon. Okay. 1255 01:05:43,040 --> 01:05:45,700 >> Do kiel mi faru tion? 1256 01:05:45,700 --> 01:05:48,400 Ĉu ĝenas vin skribi ion, dividante ĝin? 1257 01:05:48,400 --> 01:05:51,270 Kaj tiam ni povas tiri gxin. 1258 01:05:51,270 --> 01:05:54,630 Ni vidas, Dan, dekstra, okay. 1259 01:05:54,630 --> 01:05:59,100 Aŭ Daniel. Kopiu ke en, kordoj enigo = GetString (). 1260 01:05:59,100 --> 01:06:01,340 Awesome. 1261 01:06:01,340 --> 01:06:02,890 Ĉu ĉi kuri? 1262 01:06:02,890 --> 01:06:05,210 Ni provu ĝin. 1263 01:06:05,210 --> 01:06:08,890 Hit kuri, uploading fontkodo, konstruaĵo, eraro okazis. 1264 01:06:08,890 --> 01:06:11,040 Okay. 1265 01:06:11,040 --> 01:06:14,950 Do whats okazas ĉi tie? 1266 01:06:14,950 --> 01:06:18,700 Uzo de nedeklarita ensalutilo 'ĉeno'. 1267 01:06:18,700 --> 01:06:22,840 >> Ni devas inkluzivi la bibliotekoj? 1268 01:06:22,840 --> 01:06:25,130 Yeah, do Donas dirante ni devas inkluzivi la bibliotekoj. 1269 01:06:25,130 --> 01:06:28,270 Ĉu tio estas kion vi intencis diri, Stella? Awesome. 1270 01:06:29,450 --> 01:06:31,430 Estas bonege, do Stella, ĉu vi 1271 01:06:31,430 --> 01:06:34,800 kopii tiun kodon el Daniel Spaco? 1272 01:06:34,800 --> 01:06:37,580 Se vi klakas sur Daniel Roland Ki, kopii ĝin, 1273 01:06:37,580 --> 01:06:41,360 kaj tiam vi metu la inkluzivas linio, kaj poste konservu ĝin? 1274 01:06:46,580 --> 01:06:49,360 Lasu min scii kiam vi estas preta. 1275 01:06:57,160 --> 01:06:59,490 Do ĉi inkluzivas sintakso estas ankaŭ speco de funky; 1276 01:06:59,490 --> 01:07:02,210 ekzistas kiel tiu hash etikedo, 1277 01:07:02,210 --> 01:07:05,760 kaj jen mia inkludi, kaj tiam estas tiuj angulajn krampojn. 1278 01:07:12,490 --> 01:07:15,360 Ĉu vi memoras kiel ĉi funkcias, aŭ mi devus meti ĝin sur tiun kodon ĉi tie? 1279 01:07:15,360 --> 01:07:17,850 >> Mi estas bona. 1280 01:07:17,850 --> 01:07:19,810 Okay. 1281 01:07:19,810 --> 01:07:23,260 >> Mi presis ĝin - mi ne estis certa kio bibliotekon, tamen. 1282 01:07:23,260 --> 01:07:25,570 Ho, bone - jes, tia estas la CS50 biblioteko. 1283 01:07:25,570 --> 01:07:27,660 >> Ho, mi metis stdio biblioteko. 1284 01:07:27,660 --> 01:07:30,950 >> Ho, got it - jes, ne, that's - 1285 01:07:30,950 --> 01:07:34,380 tial ĝi rezultas ke kordoj estas vere iu kiu estas speciala por CS50. 1286 01:07:36,590 --> 01:07:41,240 Ekzistas fakte ne estas vera kordoj tipo 1287 01:07:41,240 --> 01:07:45,000 ĉar ĉi tie, linio estas en la tipo pozicio, - 1288 01:07:45,000 --> 01:07:49,140 ni deklari variablon nomata enigo de tipo kordoj - 1289 01:07:49,140 --> 01:07:53,320 kaj ni metante ene de enigo 1290 01:07:53,320 --> 01:07:58,440 la valoro kiu prenas revenis al ni, la eligo de ĉi GetString funkcio nomita. 1291 01:07:58,440 --> 01:08:02,910 Vi povas diri ĉi estas funkcio alvokon ĉar ĝi estas ekhavis la krampoj, kiel printf faras, 1292 01:08:02,910 --> 01:08:05,920 samkiel strlen faras. 1293 01:08:05,920 --> 01:08:09,860 Sed kordoj estas fakte ne estas reala tipo 1294 01:08:09,860 --> 01:08:11,760 en la C lingvo. 1295 01:08:11,760 --> 01:08:15,710 Ni faris ĝin en tipo, kaj ni prenu ion pli kio efektive estas 1296 01:08:15,710 --> 01:08:19,000 en C, ĉar tie estas maniero labori kun kordoj; 1297 01:08:19,000 --> 01:08:22,479 ni ĵus faris ion por fari ĝin rigardi iom pli agrabla. 1298 01:08:22,479 --> 01:08:25,240 >> Do jen ni iru. 1299 01:08:25,240 --> 01:08:28,439 Jen Stella la kodon. 1300 01:08:28,439 --> 01:08:32,470 Oni metis la # include . 1301 01:08:32,470 --> 01:08:36,390 Aliaj homoj nomas tiun kiel hash inkluzivas foje aŭ akra inkludi. 1302 01:08:36,390 --> 01:08:39,580 Nun ni povas komenci ĝin, ruli ĝin, 1303 01:08:39,580 --> 01:08:43,649 kaj ni ankoraŭ ricevas eraro. 1304 01:08:43,649 --> 01:08:46,290 Ni vidu kio okazas. 1305 01:08:48,069 --> 01:08:50,569 "Neuzataj variablo 'enigo'." 1306 01:08:50,569 --> 01:08:53,350 Konsentite, tiel ke estas cool, jen malvarmaj. 1307 01:08:53,350 --> 01:08:55,859 Mi volas diri, ne vere malvarma, 1308 01:08:55,859 --> 01:08:57,930 ĉar ni ricevas eraron kaj ĝi ne funkcias, 1309 01:08:57,930 --> 01:09:00,410 sed kion tiu diras estas ke 1310 01:09:00,410 --> 01:09:03,130 ni ne uzas nian variablo, kiu havas sencon. 1311 01:09:03,130 --> 01:09:06,090 Ni ne provis fari ion per ĝi. 1312 01:09:07,819 --> 01:09:10,490 Tio estas ke 1313 01:09:10,490 --> 01:09:14,170 Clang provas helpi nin certigi ke ni ne nur uzante variabloj 1314 01:09:14,170 --> 01:09:18,819 kaj tiam distrite nomante ilin ion alian poste en nia kodo, 1315 01:09:18,819 --> 01:09:21,649 helpante nin eviti erarojn tiu vojo. 1316 01:09:23,130 --> 01:09:28,810 >> Bone, do ni devas enigo de uzanto, 1317 01:09:28,810 --> 01:09:31,910 ni gardis ŝin en variablo. 1318 01:09:31,910 --> 01:09:34,569 La sekva paŝo estis tiam 1319 01:09:34,569 --> 01:09:37,609 komenci rigardi ĉiujn karakterojn en la kordo 1320 01:09:37,609 --> 01:09:41,830 kaj identigi kiuj aĵoj estas al esti majuskla 1321 01:09:41,830 --> 01:09:44,600 kaj kiu tiuj devas esti minuskla. 1322 01:09:44,600 --> 01:09:49,439 Kaj kiel Kelly kaj Charlotte altigis, 1323 01:09:49,439 --> 01:09:52,340 ni ĉi uzante por buklo. 1324 01:09:52,340 --> 01:09:55,520 Do tio neniu memoras la sintakso de a por buklo 1325 01:09:55,520 --> 01:09:58,670 kaj ŝatus preni ponardopikon en ĝuste skribi 1326 01:09:58,670 --> 01:10:03,170 la unua linio de la por ciklo, nur la por iom? 1327 01:10:05,740 --> 01:10:07,330 Kelly, vi volas doni provi? 1328 01:10:07,330 --> 01:10:10,300 >> Jes, tiel vi devas pravalorizi unua, 1329 01:10:10,300 --> 01:10:13,170 do mi metis i = 0, 1330 01:10:13,170 --> 01:10:15,390 kaj poste mi faris i 01:10:18,570 Ĉu en via spaco - mi povas tiri gxin? 1332 01:10:18,570 --> 01:10:21,330 >> Jes, mi ŝraŭbita supren iomete, sed jes. 1333 01:10:21,330 --> 01:10:24,180 >> Konsentite, ni treni ĝin. 1334 01:10:24,180 --> 01:10:26,490 Awesome. 1335 01:10:26,490 --> 01:10:29,510 >> Sed tiam mi ne sciis se vi havis tiun - 1336 01:10:29,510 --> 01:10:32,180 Yeah, okay. 1337 01:10:33,020 --> 01:10:36,030 Do jen kio Kelly got: ni rigardu ĝin rapide. 1338 01:10:36,030 --> 01:10:40,290 Do ŝi inkludis la cs50 biblioteko ĉe la supro. 1339 01:10:40,290 --> 01:10:44,790 Ŝi komprenis la norma IO biblioteko ĉe la supro, 1340 01:10:45,550 --> 01:10:48,990 kaj la normo IO havas funkciojn kiel printf, 1341 01:10:48,990 --> 01:10:51,690 do se vi iam volas uzi printf, vi bezonas tiun linion. 1342 01:10:53,060 --> 01:10:56,140 Kaj tiam ŝi komprenis la kordo biblioteko, 1343 01:10:56,140 --> 01:10:58,200 kiuj ni bezonos, 1344 01:10:58,200 --> 01:11:01,010 ĉar la ŝnuro biblioteko havas strlen funkcio, 1345 01:11:01,010 --> 01:11:04,320 kiuj ni atingos en nur iom. 1346 01:11:04,320 --> 01:11:07,560 Do, se ni rigardas kio Kelly ĉi faru ĉi tie, 1347 01:11:07,560 --> 01:11:10,260 vi povas promeni ni per tio, kion vi faris? 1348 01:11:10,260 --> 01:11:13,600 >> Jes, do - mi volas diri, mi atingis erarojn, do - 1349 01:11:13,600 --> 01:11:15,380 Yeah, ne, it's - 1350 01:11:15,380 --> 01:11:18,580 >> Do mi volis nomi la kordo, kiun mi ricevis nur "kordoj". 1351 01:11:18,580 --> 01:11:22,230 Mi volis printi la kordo 1352 01:11:22,230 --> 01:11:25,640 kaj tiam mi - 1353 01:11:27,450 --> 01:11:30,930 Mi volis kiel agordi la kordo kiel kiel tabelo de ĉiu karaktero 1354 01:11:30,930 --> 01:11:33,170 esti malsamaj [inaudible], ĉu ne? 1355 01:11:33,170 --> 01:11:38,080 Kaj tiam mi volis komenci ĉe pozicio 0 1356 01:11:38,080 --> 01:11:40,630 kaj tiam ĉiu 2 spacoj, 1357 01:11:40,630 --> 01:11:42,580 Mi tuj profiti, 1358 01:11:42,580 --> 01:11:45,680 do mi ĵus priskribis kiel 23, ĉar mi estis rigardanta la ASCII tablo. 1359 01:11:45,680 --> 01:11:48,730 Do jen kion mi pensis - mi scias ke ne pravas. 1360 01:11:48,730 --> 01:11:50,920 >> Havas ĝin, do ĉi tiu estas granda komenco. 1361 01:11:50,920 --> 01:11:54,120 Mi kredas multon de la kadro estas en loko ĉi tie. 1362 01:11:54,120 --> 01:11:57,500 Ni iru tra speco de linio por linio kaj vidu kio okazas. 1363 01:11:57,500 --> 01:12:01,040 Do la vojo mi ŝatas fari tion estas nur starti per kompili la kodo 1364 01:12:01,040 --> 01:12:04,300 kaj lasante la tradukilo diru al mi kiel kio estas malbone en mia kodo, 1365 01:12:04,300 --> 01:12:07,450 ĉar la tradukilo estas vere bona diras al vi kio estas malbone en via kodo. 1366 01:12:09,790 --> 01:12:12,780 Do, se ni ludas ĝin, konstruado, kaj ĝi ne konstruu. 1367 01:12:12,780 --> 01:12:14,860 Ĝi diras, ke estis eraro, 1368 01:12:14,860 --> 01:12:17,320 tial se ni rulumu malsupren kaj rigardi la unua eraro, 1369 01:12:17,320 --> 01:12:20,960 ĝi diris - 1370 01:12:20,960 --> 01:12:22,040 ni rulumu reen ĝis la supro, 1371 01:12:22,040 --> 01:12:26,070 ni povas vidi estas 5 eraroj generitaj cxi tie malsupre. 1372 01:12:26,070 --> 01:12:30,180 Oops, ke tio vere ekstermigxos. 1373 01:12:31,810 --> 01:12:35,790 Mi supozas ke tio simple ne ricevos ajnan bona. 1374 01:12:36,970 --> 01:12:38,500 >> Ĉi tie ni iru. 1375 01:12:39,790 --> 01:12:42,530 Do estas 5 entute eraroj generita. 1376 01:12:42,530 --> 01:12:45,140 Ĉi tie mi povas nur vidi la unuajn 2, 1377 01:12:45,140 --> 01:12:49,100 do mi povas movi ĉi supren iomete kaj poste ia skribrulajxon supren. 1378 01:12:49,100 --> 01:12:53,220 Tiu estas la komando kiu kuras por kompili la kodon, 1379 01:12:53,220 --> 01:12:59,030 kaj tiam la unua eraro estis en file.c tie ĉi: 1380 01:12:59,030 --> 01:13:03,300 "Atendis identigas aŭ '('", kaj estis sur tiu ĉi linio 1381 01:13:03,300 --> 01:13:06,680 kie ni diris string = GetString (). 1382 01:13:07,660 --> 01:13:12,920 Vi povas vidi ĉi tie ke estis en la linio 8 de file.c, 1383 01:13:12,920 --> 01:13:17,230 kaj tiam mi kredas ke tiu estas signo 12 - tio estas la eraro. 1384 01:13:17,230 --> 01:13:20,390 Do kio okazas erara on line 8 - Kelly? 1385 01:13:20,390 --> 01:13:22,810 >> Vi nur bezonas nomi ĝin, kiel, leteron aŭ ion, 1386 01:13:22,810 --> 01:13:24,400 kiel kordoj s aŭ ion? 1387 01:13:24,400 --> 01:13:28,250 Yeah, do rezultas ke tiuj specialaj tipo nomoj, 1388 01:13:28,250 --> 01:13:31,770 tiel kordoj, int, char, mallonga, 1389 01:13:31,770 --> 01:13:35,740 ili estas ĉiuj specialaj ŝlosilvortoj, 1390 01:13:35,740 --> 01:13:38,940 kaj vi ne povas reale uzi ilin kiel nomojn de viaj variabloj, 1391 01:13:38,940 --> 01:13:41,430 ĉar la tradukilo rigardas tion kaj diras, 1392 01:13:41,430 --> 01:13:43,680 "Ho, mi scias ke estas tipo" 1393 01:13:43,680 --> 01:13:46,530 tial vi ne povas reale havas ĉenon variablo nomis kordoj, 1394 01:13:46,530 --> 01:13:50,800 kiel mi provis fari tie; ĉi tio ne funkciis. 1395 01:13:52,610 --> 01:13:58,250 Sed anstataŭe, ni povas nomi ĝin iu kiel s aŭ-a aŭ str. 1396 01:13:58,250 --> 01:14:01,540 Ni ankaŭ ne povis nomi lin int. 1397 01:14:01,540 --> 01:14:03,740 Ni ne povas havi ĉenon nomis int. 1398 01:14:03,740 --> 01:14:06,740 Ni ne povas havi ĉenon nomas char; neniu el tiuj funkcios. 1399 01:14:06,740 --> 01:14:09,420 >> Do ni simple nomas ĝin s por la momento. 1400 01:14:10,630 --> 01:14:13,170 Awesome. 1401 01:14:13,170 --> 01:14:17,500 Do kio sekva okazas en ĉi tiu linio? 1402 01:14:21,390 --> 01:14:24,350 String - ĉi tiu linio aspektas sufiĉe bonaj? 1403 01:14:24,350 --> 01:14:27,830 Ni donu alian provi; ni ruli ĝin. 1404 01:14:27,830 --> 01:14:30,360 Konsentite, do ni ankoraŭ akiri eraroj. 1405 01:14:30,360 --> 01:14:32,080 Ĉi-foje, ni malsupreniris al 4 eraroj. 1406 01:14:32,080 --> 01:14:34,350 Do ni havas unu el ili. 1407 01:14:34,350 --> 01:14:36,130 Ni movi supren. 1408 01:14:36,130 --> 01:14:38,890 "Neatendita tipo nomo 'ĉeno': atendata esprimo," jes? 1409 01:14:38,890 --> 01:14:41,780 >> Jes, tio estas ĉar mi klopodis nomi la kordo. 1410 01:14:41,780 --> 01:14:44,270 Yeah, do ĝi aspektas kiel ni nun ankaŭ devas iri riparas 1411 01:14:44,270 --> 01:14:46,560 ĉiuj el tiuj referencoj al ĉeno. 1412 01:14:46,560 --> 01:14:50,070 Vi povas vidi tie estas referenco al ĉeno ĉi tie, ĉi tie, ĉi tie, 1413 01:14:50,070 --> 01:14:53,440 do ni povas movi ĉiujn tiujn al s. 1414 01:14:56,040 --> 01:15:00,930 Granda. Konsentite, ruli ĝin denove. 1415 01:15:00,930 --> 01:15:03,260 Konstruaĵo - alia eraro. 1416 01:15:03,260 --> 01:15:06,900 >> Okay, nun ni estas malsupren al unu eraro, 1417 01:15:06,900 --> 01:15:11,090 tiel int i = j kaj poste la rektaj krampoj. 1418 01:15:11,090 --> 01:15:14,880 Do vi povas diri al ni iomete pri tio, kion vi faras cxi tie, Kelly? 1419 01:15:14,880 --> 01:15:17,120 >> Jes. 1420 01:15:17,120 --> 01:15:19,410 Estis on line 10. 1421 01:15:19,410 --> 01:15:22,760 >> Mi ne scias se ni bezonis ĉion, 1422 01:15:22,760 --> 01:15:25,560 sed mi kredas ke mi provis - 1423 01:15:25,560 --> 01:15:27,580 Mi savos ĝin tiel vi povas sekvi kune. 1424 01:15:27,580 --> 01:15:30,470 >> Mi pensas, ke mi estis 1425 01:15:30,470 --> 01:15:33,150 provis diri ĝin por komenci en la pozicio 0 1426 01:15:33,150 --> 01:15:35,030 komence de mia por ciklo, 1427 01:15:35,030 --> 01:15:38,370 do mi pensas eble tiun diron estis nenecesa. 1428 01:15:39,690 --> 01:15:41,350 Do nur por recap, 1429 01:15:41,350 --> 01:15:44,850 vi dirante ke tio - vi volis komenci tiun ĉe pozicio 0 1430 01:15:44,850 --> 01:15:47,030 kaj akiri ĉi - jes, 1431 01:15:47,030 --> 01:15:50,460 do mi pensas pli frue, ankaŭ, kiam vi estis promeni tra la kodo, 1432 01:15:50,460 --> 01:15:54,070 vi parolis pri kiel vi volis trakti la ŝnuro tiel tablo 1433 01:15:54,070 --> 01:15:57,440 do ni povas aliri ĉiu karaktero individue. 1434 01:15:57,440 --> 01:16:00,660 Mi kredas Dan mencias arrays, tro, provante igi kordoj en tabeloj. 1435 01:16:01,400 --> 01:16:03,300 >> Ĝi rezultas ke ia sub la kapuĉo, 1436 01:16:03,300 --> 01:16:06,060 ŝnuro fakte stokitaj tiel tablo jam, 1437 01:16:06,060 --> 01:16:08,060 kaj vi povas aliri ĝin kiel tabelo; 1438 01:16:08,060 --> 01:16:12,390 ne estas konvertiĝo, ke vi devas fari. 1439 01:16:12,390 --> 01:16:15,770 Kordo isn't - tiel - 1440 01:16:15,770 --> 01:16:18,200 cxeno ne estas vere tabelo, 1441 01:16:18,200 --> 01:16:21,940 sed vi povas aliri ĝin kiel tia, ĉar ĉiuj el la karakteroj estas stokitaj 1442 01:16:21,940 --> 01:16:25,160 unu tuj apud la alia en la memoro, 1443 01:16:25,160 --> 01:16:28,310 do se vi volas ricevi la unuan karakteron de la kordo, 1444 01:16:28,310 --> 01:16:31,910 ĝi estas la sama kiel atingi la unuan entjeron en entjera tabelo. 1445 01:16:31,910 --> 01:16:35,010 Do ni ofte - we'll 1446 01:16:35,010 --> 01:16:36,360 rilatas al la 2 kiel 1447 01:16:36,360 --> 01:16:38,590 ho, kiel ĉenon, kiel tabelo, 1448 01:16:38,590 --> 01:16:40,830 kvankam ĝi vere - they're tre malsamaj aferoj, 1449 01:16:40,830 --> 01:16:43,410 sed vi povas trakti ilin tre multe la sama. 1450 01:16:44,700 --> 01:16:47,400 Do rezultas ke tiu linio fakte - 1451 01:16:47,400 --> 01:16:51,270 ni ne bezonas fari neniun konvertiĝo, 1452 01:16:51,270 --> 01:16:53,500 kaj fakte, 1453 01:16:53,500 --> 01:16:56,790 ĉi efektive ne estas valida esprimo, 1454 01:16:56,790 --> 01:16:59,040 kiu estas kiu nia tradukilo diras ni. 1455 01:16:59,040 --> 01:17:01,290 Oni diras, "Hej, ĝi atendis esprimo, 1456 01:17:01,290 --> 01:17:04,610 kaj kion mi havas ĉi tie estas iu kiu ne estas esprimo. " 1457 01:17:04,610 --> 01:17:07,310 Deklari tabelo, 1458 01:17:07,310 --> 01:17:11,780 ĉiuj vi bezonas fari, estas io kiel tio kun punktokomo, 1459 01:17:11,780 --> 01:17:15,080 kaj tiam vi diru la tabelo kiel longe vi volas esti, 1460 01:17:15,080 --> 01:17:18,370 kiel 5, do ĉi tiu linio 10 1461 01:17:18,370 --> 01:17:23,880 rakontos tabelo nomis i kun 5 entjeroj en ĝi. 1462 01:17:23,880 --> 01:17:26,540 >> Tio estas la rando; ĉi tio ne estas necesa por la kodo, 1463 01:17:26,540 --> 01:17:30,970 sed ĉi tiu estas - tio estas speco de tio, kion la deklaro aspektas. 1464 01:17:30,970 --> 01:17:35,310 >> Kiel vi ne uzas char i [strlen (j)]? 1465 01:17:35,310 --> 01:17:38,500 Char mi [strlen (j)]? 1466 01:17:38,500 --> 01:17:41,500 >> Char mi, kaj poste ene de la krampoj, strlen (j). 1467 01:17:43,900 --> 01:17:47,710 Yeah, do ni povis - 1468 01:17:47,710 --> 01:17:49,460 ni povus fari tion, 1469 01:17:49,460 --> 01:17:52,160 kaj ĉi deklarus - kion tiu faras? 1470 01:17:52,160 --> 01:17:55,900 >> Mi pensas ke estus deklari tabelo 1471 01:17:55,900 --> 01:18:01,780 de, kiel - de - 1472 01:18:01,780 --> 01:18:04,540 ho, vi ne bezonas la i - ho, 1473 01:18:04,540 --> 01:18:06,420 yeah, vi certe ne bezonas la i. 1474 01:18:06,420 --> 01:18:10,250 Vi deklaras tabelo de signoj 1475 01:18:10,250 --> 01:18:13,150 de longo s. 1476 01:18:14,680 --> 01:18:16,770 Kaj tiel kion Sam diras nur ke 1477 01:18:16,770 --> 01:18:20,660 ĉi linio 10 - lasu min metis iun spacon inter ĝi kaj la resto do ni povas izoli ĝin - 1478 01:18:20,660 --> 01:18:23,440 ĉi linio 10 deklarus tabelo 1479 01:18:23,440 --> 01:18:28,520 de signoj, strlen (j) valoro de ili, 1480 01:18:28,520 --> 01:18:32,270 sed ni vere ne bezonas la i, 1481 01:18:32,270 --> 01:18:35,710 kaj la kialo ni bezonas la i estas ĉar ni bezonas doni la tabelo nomon; 1482 01:18:35,710 --> 01:18:38,900 alie, ni ne havas manieron por nomi la tabelo poste en la kodo. 1483 01:18:38,900 --> 01:18:41,180 >> Do ĉi tie ĉi estas la tabelo nomo 1484 01:18:41,180 --> 01:18:43,420 kaj ene estas la longo. 1485 01:18:43,420 --> 01:18:45,010 Tio donas al ni tabelo, 1486 01:18:45,010 --> 01:18:47,430 sed ĉi tiu estas - denove, ĉi tiu estas deklaro. 1487 01:18:47,430 --> 01:18:50,380 Ne asigno, temas ne inicialización. 1488 01:18:50,380 --> 01:18:52,330 Se ni deklaras tiun tabelo kiel ĉi tiu, 1489 01:18:52,330 --> 01:18:54,490 ekzistas reale nenio en la enhavo de la tabelo. 1490 01:18:54,490 --> 01:18:57,490 Estas nur rubaĵo - kio ajn en tie. 1491 01:18:57,490 --> 01:18:59,780 Kaj kiel ni diris, 1492 01:18:59,780 --> 01:19:01,340 ni efektive eĉ ne bezonas fari tion konvertiĝo, 1493 01:19:01,340 --> 01:19:04,810 ĉar ni povas jam trakti ĉenon s kiel tabelo. 1494 01:19:06,750 --> 01:19:09,170 Mi scias ni kuris iom longa al tempo, 1495 01:19:09,170 --> 01:19:12,330 sed mi volas nur vere rapide atingi tion por buklo 1496 01:19:12,330 --> 01:19:14,850 kaj montros al vi kiel aliri la individuaj karakteroj en la tabelo, 1497 01:19:14,850 --> 01:19:17,170 ĉar tio estas ŝlosilo por nia tasko. 1498 01:19:17,170 --> 01:19:20,790 Kaj poste ni lasos vin iri de tie. 1499 01:19:20,790 --> 01:19:24,610 >> Do jen, ni hvas por buklo 1500 01:19:24,610 --> 01:19:28,310 ke aspektas preskaŭ bona. 1501 01:19:28,310 --> 01:19:30,960 Kio estas ne tute preskaŭ ne? 1502 01:19:30,960 --> 01:19:33,240 What's - kio estas ne tute pravas pri tiu por buklo? 1503 01:19:33,240 --> 01:19:36,010 >> Neniu frizita krampoj? 1504 01:19:36,010 --> 01:19:38,420 Neniu frizita krampoj, por unu. 1505 01:19:38,420 --> 01:19:42,580 Wanna certigi ke ni havas la korpon de la ciklo kun frizita krampoj. 1506 01:19:42,580 --> 01:19:45,240 Oops, ne la kvadrata krampo! 1507 01:19:45,240 --> 01:19:48,660 Kaj kio estas la sekvanta afero kiun ni bezonas por fari kun ĉi buklo? 1508 01:19:48,660 --> 01:19:52,640 Se mi provas kaj ruli ĝin, 1509 01:19:52,640 --> 01:19:56,740 whats ĉi eraro kiun mi ricevis? 1510 01:19:56,740 --> 01:20:00,990 Mi ricevis ĉi tiun tutan erarojn - mi devas pravalorizi i. 1511 01:20:00,990 --> 01:20:03,610 Granda. 1512 01:20:03,610 --> 01:20:05,770 Do jen la buklo - tio ne estas sufiĉe tie, 1513 01:20:05,770 --> 01:20:08,680 sed Fariĝas vere proksima. 1514 01:20:08,680 --> 01:20:11,260 Ĉi tiu kodo oni povas nun kuras, 1515 01:20:11,260 --> 01:20:14,620 konstrui, eraro ankoraŭ okazas. 1516 01:20:17,960 --> 01:20:19,800 Kial oni ankoraŭ plendis, 1517 01:20:19,800 --> 01:20:22,030 dirante la esprimo estas neuzata, 1518 01:20:22,030 --> 01:20:24,600 kaj tio estas ĉar tiu linio ne faras nenion. 1519 01:20:24,600 --> 01:20:27,620 Ni ne stoki ĝin ie ajn, ni ne savas la rezulton. 1520 01:20:27,620 --> 01:20:30,210 Kien ni povas savi ĉi tiun rezulton? 1521 01:20:30,210 --> 01:20:32,920 >> S aŭ i? 1522 01:20:32,920 --> 01:20:35,990 Ekzakte, kaj ĉi funky sintakso, 1523 01:20:35,990 --> 01:20:38,550 ĉi s kun la rektaj krampoj 1524 01:20:38,550 --> 01:20:41,500 signifas aliri la i-a karaktero de s. 1525 01:20:41,500 --> 01:20:45,650 Tio tuj estos iu kiu estas vere gravaj por la farita. 1526 01:20:45,650 --> 01:20:48,070 Bedaŭrinde, ni tuj devos halti ĉi tie, 1527 01:20:48,070 --> 01:20:50,550 por ke Sebastian sekcio povas enveni, 1528 01:20:50,550 --> 01:20:53,980 sed mi estas kontenta resti post ekstere kaj prenos demandojn. 1529 01:20:53,980 --> 01:20:56,680 Do dankon infanoj por veni. 1530 01:20:56,680 --> 01:20:59,730 Tiu devus nun alŝuti, konstrui, kuri. 1531 01:21:01,570 --> 01:21:04,320 Ni povas eniri ĉenon kiel "saluton" 1532 01:21:06,570 --> 01:21:08,730 kaj presas "QOX". 1533 01:21:08,730 --> 01:21:11,030 [Ridado] 1534 01:21:11,030 --> 01:21:14,640 >> Do ne sufiĉe tie, sed kopii, atingante al tiuj cikloj! 1535 01:21:14,640 --> 01:21:18,640 Dankon pro veni, kaj mi estos ekstere.