1 00:00:00,000 --> 00:00:02,742 >> [Predvaja glasba] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI PENG: To je CS50, in dobrodošli na dva tedna oddelka. 4 00:00:09,090 --> 00:00:11,740 To je dejansko pa teden dva od naših class-- pravzaprav, 5 00:00:11,740 --> 00:00:14,550 Prvi teden smo imeli poglavje. 6 00:00:14,550 --> 00:00:18,897 Prikaži rok, koliko od vas vseh prišli do super oddelku prejšnji teden? 7 00:00:18,897 --> 00:00:19,480 OK, to je OK. 8 00:00:19,480 --> 00:00:20,020 To je ok. 9 00:00:20,020 --> 00:00:23,110 Koliko od vas gledal super oddelek prejšnji teden? 10 00:00:23,110 --> 00:00:23,610 V REDU. 11 00:00:23,610 --> 00:00:25,702 In naredila vidva redu o problemu nastavite eno? 12 00:00:25,702 --> 00:00:28,660 Torej grem, da ga vzamete, da imamo kup res inteligentne otroke 13 00:00:28,660 --> 00:00:32,310 v tem razredu in stvari, bo v redu. 14 00:00:32,310 --> 00:00:33,180 V REDU. 15 00:00:33,180 --> 00:00:33,980 Torej first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Najprej smo le, da bo na kratko iti čez dnevnem redu danes. 18 00:00:41,090 --> 00:00:42,700 Bomo govorili o logistiki seveda. 19 00:00:42,700 --> 00:00:45,480 Veliko vas verjetno imate vprašanja v zvezi 20 00:00:45,480 --> 00:00:46,920 kako stvari tečejo v tem tečaju. 21 00:00:46,920 --> 00:00:47,897 Mi jih bomo odgovorili. 22 00:00:47,897 --> 00:00:49,730 Bomo na kratko iti čez zank, v primeru 23 00:00:49,730 --> 00:00:51,410 kateri koli od vaju zamudil super poglavje. 24 00:00:51,410 --> 00:00:53,240 Bomo govorili o kartiranju ASCII. 25 00:00:53,240 --> 00:00:56,180 O tem bomo govorili nizi, Funkcije, argumenti v ukazni vrstici. 26 00:00:56,180 --> 00:01:00,210 In končno, kaj vidva vse res želim biti tukaj, da spoznajo, 27 00:01:00,210 --> 00:01:01,270 je vaša pset2. 28 00:01:01,270 --> 00:01:04,209 Bomo imeli nekaj lepih trikov in nasveti za kako to storiti. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> V REDU. 31 00:01:08,690 --> 00:01:11,450 Tudi drugič, imamo veliko sladkarij tukaj. 32 00:01:11,450 --> 00:01:13,583 Vsakdo, ki ima rad sladkarije, pravkar prišel sem gor. 33 00:01:13,583 --> 00:01:14,430 Zgrabi nekaj. 34 00:01:14,430 --> 00:01:15,100 Imam kup. 35 00:01:15,100 --> 00:01:16,390 Imamo tone v pisarni. 36 00:01:16,390 --> 00:01:18,230 Res ne želim jesti sladkarije ves dan. 37 00:01:18,230 --> 00:01:20,300 Vi bi morali pojesti vse sladkarije, ker sem ga pripeljal sem za vaju. 38 00:01:20,300 --> 00:01:20,990 Samo jesti sladkarije. 39 00:01:20,990 --> 00:01:24,080 Tam bo sladkarije vsak oddelek. 40 00:01:24,080 --> 00:01:25,330 >> Torej, najprej, kdo sem jaz? 41 00:01:25,330 --> 00:01:27,080 Moje ime je Andi Peng. 42 00:01:27,080 --> 00:01:30,270 Jaz sem vodja TA od CS50 tukaj na univerzi Yale. 43 00:01:30,270 --> 00:01:32,540 In poleg da bom tudi be-- 44 00:01:32,540 --> 00:01:35,600 če bi kdo like-- vaš tek kolega, tvoja rama jokati naprej. 45 00:01:35,600 --> 00:01:39,140 Če je večer pred Due vašega pset je, nimate pojma, kaj se dogaja, 46 00:01:39,140 --> 00:01:40,080 hit me up. 47 00:01:40,080 --> 00:01:42,770 Bomo commiserate skupaj, et cetera. 48 00:01:42,770 --> 00:01:46,100 Samo vem, da sem tu kot virov za vas, kot frontno črto 49 00:01:46,100 --> 00:01:51,830 v pomoč vi ugotovimo, kako za reševanje problemov v CS50 in zunaj. 50 00:01:51,830 --> 00:01:54,590 >> Moj email je andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Jaz bom tudi pošlje posamezniku email z mojo telefonsko številko, v njej 52 00:01:58,390 --> 00:02:01,860 tako da ne vsakdo na Internet lahko vidite mojo telefonsko številko. 53 00:02:01,860 --> 00:02:03,640 Vas prosimo, da me pokličete kadarkoli. 54 00:02:03,640 --> 00:02:07,510 Resno, moj telefon je običajno pritrjene na moji roki. 55 00:02:07,510 --> 00:02:10,240 Jaz ne odzivajo v nekaj minutah. 56 00:02:10,240 --> 00:02:11,984 Morda se ne odzove v roku nekaj ur. 57 00:02:11,984 --> 00:02:14,400 Ampak jaz vam lahko garantiram, če ti e-mail me, če me boš poklical, 58 00:02:14,400 --> 00:02:17,404 besedilo mi, bom odgovoriti v 24 urah. 59 00:02:17,404 --> 00:02:19,820 Pogosto se bom odzval, preden da, ker sem razumel 60 00:02:19,820 --> 00:02:23,900 da je vsakdo dobil nekaj težav, in želite, da vaše odgovore 61 00:02:23,900 --> 00:02:26,110 treba odgovoriti zelo hitro. 62 00:02:26,110 --> 00:02:28,945 >> Vendar, če pokličete me 30 minut pred 63 00:02:28,945 --> 00:02:31,570 da je kos, ki je posledica četrtek night-- bilo všeč, Andi, pomagaj mi, 64 00:02:31,570 --> 00:02:35,380 Nisem started-- bom lahko dal ste, da je rama jokati naprej. 65 00:02:35,380 --> 00:02:41,520 Vendar je morda čas, da razmislite o tem kako ne storiti, da naslednjič. 66 00:02:41,520 --> 00:02:44,040 V REDU. 67 00:02:44,040 --> 00:02:44,944 Ups. 68 00:02:44,944 --> 00:02:45,850 Kako naj grem nazaj? 69 00:02:45,850 --> 00:02:48,140 Tam gremo. 70 00:02:48,140 --> 00:02:52,310 >> Torej, v tem seveda imamo ton podpore za vsakogar. 71 00:02:52,310 --> 00:02:54,640 Poleg pravkar odseki tukaj, ki vas 72 00:02:54,640 --> 00:02:57,000 vsak teden dobili, da bi porabili 90 čudovite minut z mano, 73 00:02:57,000 --> 00:02:58,330 imamo tudi uradne ure. 74 00:02:58,330 --> 00:03:01,021 Koliko od vas fantje že bil uradnih ur za pomoč? 75 00:03:01,021 --> 00:03:01,520 Great. 76 00:03:01,520 --> 00:03:05,700 To je res dobro videti, ker smo imajo zaposlenih več kot 45 ZU in CAS 77 00:03:05,700 --> 00:03:11,780 usposobljeni za to seveda, da so tu za vam pomagajo fantje s svojimi psets. 78 00:03:11,780 --> 00:03:14,580 >> Ponedeljki oni potekala v TEAL učilnica v 17 Hill House tukaj 79 00:03:14,580 --> 00:03:15,350 na univerzi Yale. 80 00:03:15,350 --> 00:03:17,349 Ob torkih in četrtkih, oni so potekala v commons. 81 00:03:17,349 --> 00:03:20,010 08:00 do 11:00 precej vsak delovnik. 82 00:03:20,010 --> 00:03:21,620 Pridi, pridi ven. 83 00:03:21,620 --> 00:03:24,030 Vsak problem, ne problem-- samo pridi, 84 00:03:24,030 --> 00:03:26,650 in potem vam bomo pomagali ven s tem. 85 00:03:26,650 --> 00:03:31,640 >> Drugič, poleg uradnih ur in oddelki, imamo tudi hlače. 86 00:03:31,640 --> 00:03:35,930 Je kdo že kdaj videl nekaj od kratke hlače ali walkthroughs v video posnetkov 87 00:03:35,930 --> 00:03:36,750 na spletni strani? 88 00:03:36,750 --> 00:03:37,250 V REDU. 89 00:03:37,250 --> 00:03:39,510 Torej, oni so zelo, zelo koristno. 90 00:03:39,510 --> 00:03:42,470 Naša lepa proizvodnja Harvard ekipa tja na tej šoli 91 00:03:42,470 --> 00:03:47,910 na severu, ki so jih posneli in proizvaja ti neverjetni obiskov videi. 92 00:03:47,910 --> 00:03:52,290 >> Ti bom vas korak za korakom skozi kako iti o reševanju problema. 93 00:03:52,290 --> 00:03:56,340 Pogosto, če ste zmedeni o preprost koncept, ednini koncept, 94 00:03:56,340 --> 00:03:59,780 poglej, ker smo verjetno kratko o njej nekje na naši spletni strani. 95 00:03:59,780 --> 00:04:03,800 In to je ponavadi velik vir iskati, ko ste prvič 96 00:04:03,800 --> 00:04:06,510 izgubljena o tem, kako ravnati težave. 97 00:04:06,510 --> 00:04:09,750 >> Tretjič, imamo tudi study50 in reference50. 98 00:04:09,750 --> 00:04:15,650 Torej študija 50 o Spletna stran je samo povezava. 99 00:04:15,650 --> 00:04:21,500 To je, mislim, study.cs50.net ali nekaj takega. 100 00:04:21,500 --> 00:04:22,860 Samo Google. 101 00:04:22,860 --> 00:04:24,229 Imamo veliko mikroskopskih preparatov. 102 00:04:24,229 --> 00:04:26,770 Imamo veliko hlače in walkthroughs-- stvari vsi zbrani 103 00:04:26,770 --> 00:04:31,070 zelo lepo in urejeno za vas vse za brskanje skozi, vidim nobenih konceptov 104 00:04:31,070 --> 00:04:32,860 da ste zmedeni o tem. 105 00:04:32,860 --> 00:04:35,920 To bi se verjetno zajete tam v study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- podobno. 107 00:04:37,640 --> 00:04:41,510 Imamo veliko različnih bankovcev takoj na voljo za odstranjevanje. 108 00:04:41,510 --> 00:04:44,450 In nenazadnje, imamo kaj imenuje CS50 Pogovorite, 109 00:04:44,450 --> 00:04:48,082 forum, v katerem, če je noč pred delaš svoje težave, pravijo, 110 00:04:48,082 --> 00:04:49,880 imate vprašanje. 111 00:04:49,880 --> 00:04:52,340 Prijavite se na CS50 pogovorite. 112 00:04:52,340 --> 00:04:53,190 Objavi na vaše vprašanje. 113 00:04:53,190 --> 00:04:55,820 In nato pa eno od hundreds-- morda thousands-- vrstnikov 114 00:04:55,820 --> 00:04:57,960 ob tem razredu na spletu bo prijavite. 115 00:04:57,960 --> 00:05:01,182 In morda lahko nekdo dobil tvoj odgovor pred TA pločevinko. 116 00:05:01,182 --> 00:05:03,390 To je v bistvu samo spletni forum, da smo lahko vsi 117 00:05:03,390 --> 00:05:04,556 uporabiti, da bi razpravljali naše probleme. 118 00:05:04,556 --> 00:05:06,483 To je cool. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> V REDU. 121 00:05:11,550 --> 00:05:13,220 Torej, problem določa. 122 00:05:13,220 --> 00:05:17,840 Mi smo o tem prav v debel problem nastaviti dva. 123 00:05:17,840 --> 00:05:20,570 Veliko nas je že prebijala skozi problem nastaviti enega. 124 00:05:20,570 --> 00:05:24,460 Mi že vemo, da je morda čaka za sinoči, da opravljate svoje pset 125 00:05:24,460 --> 00:05:28,170 ni najpametnejša stvar v CS50. 126 00:05:28,170 --> 00:05:32,380 >> Nasveti in namigi v bistvu za Uspeh so prebrali celoten spec. 127 00:05:32,380 --> 00:05:36,270 Koliko od vas že preberite spec za pset 2? 128 00:05:36,270 --> 00:05:36,770 V REDU. 129 00:05:36,770 --> 00:05:39,840 To je trdna znesek. 130 00:05:39,840 --> 00:05:43,210 Vem, da ste fantje verjetno priznan Do sedaj so očala res dolgo. 131 00:05:43,210 --> 00:05:45,700 Oni so zelo, zelo dolgo. 132 00:05:45,700 --> 00:05:49,630 >> To je res težko brati vsako vrstico te skrbno besedo za besedo. 133 00:05:49,630 --> 00:05:52,780 Želite le prelistati, kjer to vam pove, da nekaj storiti. 134 00:05:52,780 --> 00:05:54,459 Jaz vam lahko garantiram, da ne delate. 135 00:05:54,459 --> 00:05:56,750 Če boste to storili, ste verjetno dogaja nekje pogrešal 136 00:05:56,750 --> 00:05:58,458 kjer vam pove kako začeti težave 137 00:05:58,458 --> 00:06:01,140 ali pa vam pove, kaj ime tvoj problem ali pa vam pove, 138 00:06:01,140 --> 00:06:03,720 To je verjetno najboljši način začeti početje vaše težave. 139 00:06:03,720 --> 00:06:05,050 In potem boste izgubili. 140 00:06:05,050 --> 00:06:08,219 >> Ko poskusite prebrati vašega spec polovici, 141 00:06:08,219 --> 00:06:10,510 Veliko pomembno information--, da niste 142 00:06:10,510 --> 00:06:12,260 bo lahko res dostop. 143 00:06:12,260 --> 00:06:13,219 Torej, preberite celoten spec. 144 00:06:13,219 --> 00:06:15,468 Poskusite prebrati celotno spec preden ste prišli na oddelku, 145 00:06:15,468 --> 00:06:17,360 ker potem, ko smo govorimo o pset, 146 00:06:17,360 --> 00:06:21,070 smo lahko vsi imeli idejo o tem, kaj se dogaja. 147 00:06:21,070 --> 00:06:25,169 >> Drugič, ta je koncept da bom všeč, da reference 148 00:06:25,169 --> 00:06:26,710 Veliko celotnem seveda semestra. 149 00:06:26,710 --> 00:06:30,070 Ampak v bistvu, izpolnjevati nas na pol poti, kajne? 150 00:06:30,070 --> 00:06:33,970 Jaz, kot vaš TA in Jason kot seveda manager in Scaz kot vaš profesor 151 00:06:33,970 --> 00:06:37,120 in David kot vaš profesor in vse druge lepe TAS v tem predmetu, 152 00:06:37,120 --> 00:06:39,830 pomočniki v tem course-- mi se bomo potrudili, 153 00:06:39,830 --> 00:06:42,965 da se zagotovi ste nastavili do uspeti v tem tečaju. 154 00:06:42,965 --> 00:06:43,840 Bomo držite poglavje. 155 00:06:43,840 --> 00:06:44,870 Mi bo imel uradne ure. 156 00:06:44,870 --> 00:06:47,087 Mi bomo odgovorili telefon poziva, da odgovori na vaša e-pošte, 157 00:06:47,087 --> 00:06:49,670 storiti vse, kar je v naši moči, da bi prepričan, vaša vprašanja so odgovori. 158 00:06:49,670 --> 00:06:51,460 >> Vendar pa nam pomaga ven preveč. 159 00:06:51,460 --> 00:06:52,450 Dobimo se na pol poti. 160 00:06:52,450 --> 00:06:56,040 Če ste prišli do uradnih ur da niso šli v oddelku, ne 161 00:06:56,040 --> 00:07:02,060 ko je videl predavanj, ki nima vem, kaj se dogaja, všeč, pomagaj mi. 162 00:07:02,060 --> 00:07:04,350 Bom všeč, dobro, mi je žal. 163 00:07:04,350 --> 00:07:06,410 Morda je čas, da posojajo da rama jokati naprej, 164 00:07:06,410 --> 00:07:08,959 ker nisem prepričan kaj lahko storim, da vam pomaga 165 00:07:08,959 --> 00:07:12,000 če ne poskusite vsaj pomoči si malo na začetku. 166 00:07:12,000 --> 00:07:12,910 Dobimo se na pol poti. 167 00:07:12,910 --> 00:07:15,020 Veš, prosim, pridi pripravljeni odgovoriti in dobili 168 00:07:15,020 --> 00:07:16,353 pripravljena sodelovati v materialu. 169 00:07:16,353 --> 00:07:19,342 To naredi stvari toliko lažje za vse vpletene. 170 00:07:19,342 --> 00:07:22,970 Ja, to je precej, da. 171 00:07:22,970 --> 00:07:23,720 >> Grading. 172 00:07:23,720 --> 00:07:29,250 Torej na učni načrt, to je zelo poglobljeno o tem, kako razred. 173 00:07:29,250 --> 00:07:32,440 Ampak v bistvu, razčlenitev pri tem je 50% vašega razreda 174 00:07:32,440 --> 00:07:34,530 bodo psets, ki je lepo, ker je to 175 00:07:34,530 --> 00:07:37,400 kjer ste preživeli velika Večina vaših seveda časa. 176 00:07:37,400 --> 00:07:39,854 Kvizi 40%, in vaš Končni projekt bo 10%. 177 00:07:39,854 --> 00:07:42,520 Tam bo dve kvizi vsej potek semestra. 178 00:07:42,520 --> 00:07:47,050 Mislim, da so časi in datumi navedeno tudi na učni načrt. 179 00:07:47,050 --> 00:07:49,210 >> Tako, da bomo se razvrščanje vaših psets 180 00:07:49,210 --> 00:07:53,930 je, da imamo v bistvu štiri vrednote, ki jih dodeljujejo za vsak razred. 181 00:07:53,930 --> 00:07:57,250 Imamo vrednost obsega, pravilnost, oblikovanje in slog. 182 00:07:57,250 --> 00:08:01,530 Torej, kot vidite, da je nekako naše formula za izračun psets. 183 00:08:01,530 --> 00:08:03,640 Trije smo dali najbolj teža za pravilnost, 184 00:08:03,640 --> 00:08:06,140 ker očitno vašega trenerja mora biti testiranje za primere 185 00:08:06,140 --> 00:08:08,480 da želimo, da bi test za. 186 00:08:08,480 --> 00:08:11,000 >> Vi vsi imajo check50 na voljo. 187 00:08:11,000 --> 00:08:13,730 To je zelo uporabna funkcija da vidva lahko vsi 188 00:08:13,730 --> 00:08:17,560 upload kodo na naših strežnikih, kjer smo jo bo preveril za vas. 189 00:08:17,560 --> 00:08:20,800 In ste videli tisti, frowny obrazi, Smiley obrazi. 190 00:08:20,800 --> 00:08:22,119 Oni so zelo, zelo koristno. 191 00:08:22,119 --> 00:08:23,910 Prosim, ne biti Študent, ki želi poizkusih 192 00:08:23,910 --> 00:08:26,230 hardcode v vseh odgovorov nanje. 193 00:08:26,230 --> 00:08:30,050 Sem definitivno videl pset kjer nekdo videl vse vrednote check50 194 00:08:30,050 --> 00:08:33,429 in so le težko kodirane in-- če to število, natisnete to številko. 195 00:08:33,429 --> 00:08:35,080 Če to številko, natisnete to številko. 196 00:08:35,080 --> 00:08:36,090 Ne delaj tega. 197 00:08:36,090 --> 00:08:39,360 >> Čeprav tehnično check50 je pravilna, 198 00:08:39,360 --> 00:08:41,809 tvoj način reševanja Problem je, ni pravilna. 199 00:08:41,809 --> 00:08:45,770 Torej samo uporabo check50 varčno. 200 00:08:45,770 --> 00:08:48,497 Ampak tudi zagotoviti, da ste razumeti, kako je to deluje, 201 00:08:48,497 --> 00:08:50,580 Program deluje poleg check50, 202 00:08:50,580 --> 00:08:53,120 saj ne moremo testirati vsak mogoče primer check50. 203 00:08:53,120 --> 00:08:55,440 Mi bomo testiranje nekatere od njih. 204 00:08:55,440 --> 00:09:00,390 >> Design je v bistvu, kako dobro zasnovana, je svojo kodo? 205 00:09:00,390 --> 00:09:04,150 Če ste copy-lepljenje multipla vrstic kode mnogo, mnogo krat. 206 00:09:04,150 --> 00:09:06,960 Morda ne boste imeli prav najboljši dizajn v kodi. 207 00:09:06,960 --> 00:09:09,470 Mogoče je čas, da dodate to zanko. 208 00:09:09,470 --> 00:09:12,090 V bistvu, tukaj je samo vse o poskuša narediti svojo kodo, 209 00:09:12,090 --> 00:09:17,010 poskuša napisati svojo kodo kot učinkovito kot je mogoče, tako da vaš program teče 210 00:09:17,010 --> 00:09:19,630 v najkrajšem možnem času. 211 00:09:19,630 --> 00:09:20,996 >> Končno imamo stil. 212 00:09:20,996 --> 00:09:24,360 Torej stil je nekakšna arbitraren, subjektiven pojem. 213 00:09:24,360 --> 00:09:27,470 Vem, da uradno še slog 50 priročnik za CS50, 214 00:09:27,470 --> 00:09:30,050 kjer se vam pove, oh ti, mora imeti prostor tukaj. 215 00:09:30,050 --> 00:09:32,220 Moral bi nekako formatu kodo na ta način. 216 00:09:32,220 --> 00:09:34,070 Vi bi morali poimenovati stvari na ta način. 217 00:09:34,070 --> 00:09:38,180 >> Res ne skrbi, per se, kako izberete slog kodo, 218 00:09:38,180 --> 00:09:39,840 samo tako dolgo, dokler boste ostali dosledni. 219 00:09:39,840 --> 00:09:43,732 Na primer, če vam je všeč, da pustite prostor po vaši štiri 220 00:09:43,732 --> 00:09:45,690 pred svojim štiri zanke, samo to, da vsak čas. 221 00:09:45,690 --> 00:09:46,523 Ne nekako to storite. 222 00:09:46,523 --> 00:09:47,730 To ne stori druge čase. 223 00:09:47,730 --> 00:09:51,046 Če vam je všeč, da Curly oporniki prostor na določen način, 224 00:09:51,046 --> 00:09:52,170 samo vedno se na ta način narediti. 225 00:09:52,170 --> 00:09:54,628 Ne nekako to storiti nekje tu nekje ni tam. 226 00:09:54,628 --> 00:09:57,010 Ko smo razvrščanje, to je res težko 227 00:09:57,010 --> 00:09:59,420 če nimam pojma, kako ste formatiranje kodo, 228 00:09:59,420 --> 00:10:02,064 Stvari so čudaški in na pravem mestu. 229 00:10:02,064 --> 00:10:04,980 Če si ga obdržati dosledno, da je veliko lažje za mene, kot večja 230 00:10:04,980 --> 00:10:06,310 biti sposoben brati kodo. 231 00:10:06,310 --> 00:10:09,393 To je veliko lažje za vas kot študent da bi lahko odmisliti kodo 232 00:10:09,393 --> 00:10:11,720 in videti, kaj je narobe z to slash zakaj obstaja vprašanj. 233 00:10:11,720 --> 00:10:15,740 Style je eden izmed najlažjih stvari vi lahko storite, da bi dobili polno točk. 234 00:10:15,740 --> 00:10:18,770 V bistvu, če ste le ni vseeno, če boste plačali pet minut pozornosti 235 00:10:18,770 --> 00:10:22,760 s kodo vsak teden, morate lahko dobili polno slog točk. 236 00:10:22,760 --> 00:10:26,020 >> Nazadnje pa imamo, kar se imenuje multiplikator področja. 237 00:10:26,020 --> 00:10:28,890 Scope-- Vem, da je velik beseda, zlasti v tem razredu. 238 00:10:28,890 --> 00:10:31,030 Ampak področje, vse to pomeni je, da skušate 239 00:10:31,030 --> 00:10:33,670 se psets po najboljših močeh. 240 00:10:33,670 --> 00:10:37,180 Če vključite v treh od vaših štirih težave 241 00:10:37,180 --> 00:10:39,460 in niti ne poskušajte zadnja, ste verjetno 242 00:10:39,460 --> 00:10:41,630 boste izgubili nekaj točk na obsegu. 243 00:10:41,630 --> 00:10:44,560 >> Tudi če ste šele začeli problem, naredite svoje najboljše, da sprehod skozi to. 244 00:10:44,560 --> 00:10:47,691 Tudi če to ne deluje, ga vklopite v, ker to kaže in dokazuje, 245 00:10:47,691 --> 00:10:50,190 nam je, da ste poskušali, da ste poskusili problem nastavljeno 246 00:10:50,190 --> 00:10:51,430 po svojih najboljših močeh. 247 00:10:51,430 --> 00:10:53,800 In potem bomo lahko vam polnih točk za področje. 248 00:10:53,800 --> 00:10:58,715 >> Področje je zelo pomembno tudi za takrat, ko smo govorimo o najnižji padec pset rezultata. 249 00:10:58,715 --> 00:11:02,010 Torej tekom izmed semester, vidva imajo devet psets. 250 00:11:02,010 --> 00:11:05,340 In bomo dejansko pada najnižja ocena od tistih, devet, 251 00:11:05,340 --> 00:11:07,670 vendar le, če imate celotno področje točk. 252 00:11:07,670 --> 00:11:11,120 >> Torej, če zavijete v nepopolni pset, žal, ne moremo spusti, da je ena, 253 00:11:11,120 --> 00:11:13,540 ker je področje vašega točk ni bila zaključena. 254 00:11:13,540 --> 00:11:16,570 Torej, tudi če imate grozno teden kje ste umira in si bolan 255 00:11:16,570 --> 00:11:20,040 ali vaš pes umre, vaša mačka umre, in ste preobremenjeni z domačo nalogo, 256 00:11:20,040 --> 00:11:21,074 le poskušajte pset. 257 00:11:21,074 --> 00:11:22,490 Ali je po svojih najboljših močeh. 258 00:11:22,490 --> 00:11:23,840 Če to ne deluje, to ni važno. 259 00:11:23,840 --> 00:11:24,506 Samo obrniti. 260 00:11:24,506 --> 00:11:26,590 Vsaj lahko damo si točke za trud. 261 00:11:26,590 --> 00:11:28,510 >> A za napor v tem razredu. 262 00:11:28,510 --> 00:11:30,170 Vsaj najnižji padec oceno za trud. 263 00:11:30,170 --> 00:11:32,354 Torej, ja. 264 00:11:32,354 --> 00:11:33,270 To je precej to. 265 00:11:33,270 --> 00:11:36,521 Ima kdo kakšno vprašanje tako daleč od tega, kako razreda v razred? 266 00:11:36,521 --> 00:11:37,187 Ali kateri koli od teh? 267 00:11:37,187 --> 00:11:41,220 Vsak od teh tako far-- profili, uradne ure? 268 00:11:41,220 --> 00:11:41,720 Cool. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 V REDU. 271 00:11:47,800 --> 00:11:51,260 >> Torej je to tema, ki ni ena res rad govoril o tem. 272 00:11:51,260 --> 00:11:53,084 Res ne želi govoriti o tem. 273 00:11:53,084 --> 00:11:55,250 Vidva v resnici ne želijo slišal sem govoriti o tem. 274 00:11:55,250 --> 00:11:57,690 Ampak žal, vsi smo morali govoriti o tem. 275 00:11:57,690 --> 00:12:00,110 David preživel 20 minut predavanje govoriti o tem. 276 00:12:00,110 --> 00:12:02,580 In da je predmet akademske poštenosti. 277 00:12:02,580 --> 00:12:08,110 >> Torej smo vsi tukaj verjetno napisano esej nekje v našem Yale karieri. 278 00:12:08,110 --> 00:12:11,800 Verjetno smo gotten pogovor, kjer smo se so povedali, da ne plagiarize našo esej, 279 00:12:11,800 --> 00:12:13,940 ker to delo ni naša. 280 00:12:13,940 --> 00:12:18,109 V računalništvu, imamo ista vrsta koncepta. 281 00:12:18,109 --> 00:12:20,150 Vsa dela, ki jih predloži Vse kodo, ki ste napisali 282 00:12:20,150 --> 00:12:21,900 mora biti kodo, ki ste napisali. 283 00:12:21,900 --> 00:12:24,280 Ne bi smela biti kodo, ki ste jo kopira od nekje drugje. 284 00:12:24,280 --> 00:12:26,777 Ne bi smela biti oznaka, ki da ste googled in plopped v 285 00:12:26,777 --> 00:12:28,360 in ne vem, če deluje. 286 00:12:28,360 --> 00:12:32,440 Si nekako imajo občutek kaj to počne, vendar ni res. 287 00:12:32,440 --> 00:12:36,562 Če ste v dvomih, v bistvu, to je samo biti razumni. 288 00:12:36,562 --> 00:12:38,520 Na našem predmetniku, imamo cel seznam stvari 289 00:12:38,520 --> 00:12:40,560 vidimo kot razumno versus ni razumno. 290 00:12:40,560 --> 00:12:43,820 >> Na primer, primerno je vi in ​​vaš prijatelj 291 00:12:43,820 --> 00:12:47,360 razpravljali, kaj je najboljši način, da gredo o logično reševanje problema. 292 00:12:47,360 --> 00:12:48,910 To je dokaj razumno. 293 00:12:48,910 --> 00:12:53,244 Kaj ne bi bilo smiselno je, če vas fantje zbrali, natipkana isto kodo, 294 00:12:53,244 --> 00:12:54,410 in se obrnil v isto oznako. 295 00:12:54,410 --> 00:12:56,302 To ni razumno. 296 00:12:56,302 --> 00:12:57,510 Ista stvar, vrsta esej. 297 00:12:57,510 --> 00:12:59,290 Če želite, da bi razpravljali s svojim prijateljem, hej, 298 00:12:59,290 --> 00:13:00,220 To je tisto, kar želim pisati. 299 00:13:00,220 --> 00:13:02,500 To so koraki želim trajalo, da pišejo o tem, super. 300 00:13:02,500 --> 00:13:03,208 To je čudovito. 301 00:13:03,208 --> 00:13:04,790 Prosimo, da sodelujejo med seboj. 302 00:13:04,790 --> 00:13:06,540 Če vidva začetek pisati isto stvar, 303 00:13:06,540 --> 00:13:10,020 zavijete v istem eseju, ki je manj v redu. 304 00:13:10,020 --> 00:13:13,200 Torej, če ste v dvomih, samo ne stori. 305 00:13:13,200 --> 00:13:16,940 >> Tukaj smo v CS50, imamo skripte da run avtomatizirati za testiranje 306 00:13:16,940 --> 00:13:21,740 ne le pravilnost kode, ampak tudi edinstvenost kodo. 307 00:13:21,740 --> 00:13:25,920 Torej, prosim, ne nam postaviti v položaj imajo sklicevati svojo zadevo EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Prosim samo za vsakogar, Dovolite samo bo to čudovita izkušnja. 309 00:13:31,110 --> 00:13:33,600 Vsakdo se uči bolje, smo vsi bolj srečni, 310 00:13:33,600 --> 00:13:37,926 in smo vsi ustanovljena za uspeti v tem tečaju. 311 00:13:37,926 --> 00:13:39,800 Nekaj, kar je zelo edinstven o tem razredu 312 00:13:39,800 --> 00:13:42,660 da mislim, da vsakdo bi moral res bodite pozorni, da je, da imamo 313 00:13:42,660 --> 00:13:44,930 kar se imenuje obžalovanje Klavzula v našem predmetniku. 314 00:13:44,930 --> 00:13:50,010 Torej v bistvu v 72 urah, če mislite, da ste naredili nekaj 315 00:13:50,010 --> 00:13:53,240 niste zares prepričani, da je bila primerno, prosim pridi k nam. 316 00:13:53,240 --> 00:13:57,220 Obljubimo vam, da v roku 72 ur bomo ročaj zadevo sami 317 00:13:57,220 --> 00:13:59,820 brez sklicevanja na višjo organ v upravi. 318 00:13:59,820 --> 00:14:03,100 >> Torej, če ste prišli k meni in rekel: Andi, hej, žal mi je, 319 00:14:03,100 --> 00:14:07,620 ampak mislim, da je nekaj vrstic v mojem Koda sinoči, da sem nekako googled, 320 00:14:07,620 --> 00:14:10,120 got off Stack Overflow, kopirati in prilepiti, 321 00:14:10,120 --> 00:14:13,680 in sem res, res mi je žal O tem, da mi sporočite. 322 00:14:13,680 --> 00:14:16,900 Prosim, ne pusti, da Zagnojiti in samo upam, da sem ga ujela. 323 00:14:16,900 --> 00:14:17,784 Mi ga bomo ujeli. 324 00:14:17,784 --> 00:14:18,450 Samo pridi k meni. 325 00:14:18,450 --> 00:14:20,520 Dovolite mi, da vem, v roku 72 ur. 326 00:14:20,520 --> 00:14:22,240 Bomo razbrati rešitev. 327 00:14:22,240 --> 00:14:26,679 In obljubljamo, da se ne bo nanašala na univerzitetne oblasti v bistvu. 328 00:14:26,679 --> 00:14:29,220 Torej je v vašem najboljšem interesu samo če sem iskren z vsemi 329 00:14:29,220 --> 00:14:31,720 vpleten v teku. 330 00:14:31,720 --> 00:14:34,630 >> V REDU. 331 00:14:34,630 --> 00:14:35,240 V REDU. 332 00:14:35,240 --> 00:14:37,800 Torej, zdaj, hitro, preden Sem korak naprej, pa nikomur 333 00:14:37,800 --> 00:14:42,670 imate vprašanja v zvezi z logistiko o tem, kako tečajih bomo teči, 334 00:14:42,670 --> 00:14:45,982 kako sekcije se bodo teči, nič od tega? 335 00:14:45,982 --> 00:14:46,711 V REDU. 336 00:14:46,711 --> 00:14:47,210 Ja. 337 00:14:47,210 --> 00:14:48,126 >> OBČINSTVO: [neslišno]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI PENG: Ja. 340 00:14:51,080 --> 00:14:54,850 Torej quizzes-- koliko od vas so v poglavju ponedeljek / sreda? 341 00:14:54,850 --> 00:14:56,700 Koliko od vas, so v v torek / četrtek? 342 00:14:56,700 --> 00:14:58,550 OK, tako da je trdna split tukaj. 343 00:14:58,550 --> 00:15:00,900 Torej način, da tečemo je na univerzi Yale, je, da smo 344 00:15:00,900 --> 00:15:04,040 se dogaja, da imajo dva ločena quizzes-- enega za vsako section-- da 345 00:15:04,040 --> 00:15:06,160 bodo sprejeti v razredu. 346 00:15:06,160 --> 00:15:09,310 Mislim, da je oktober, konec oktobra, nekaj takega, kot enem tednu 347 00:15:09,310 --> 00:15:10,794 kviza. 348 00:15:10,794 --> 00:15:11,960 Ja, samo pridi v razred. 349 00:15:11,960 --> 00:15:13,920 Na ta ponedeljek ali sredo, boste vzeli kviz. 350 00:15:13,920 --> 00:15:16,336 Na ta torek ali četrtek, boste sprejme drugačno kviz. 351 00:15:16,336 --> 00:15:18,570 Vendar bo enak material prekrit. 352 00:15:18,570 --> 00:15:19,160 Ja. 353 00:15:19,160 --> 00:15:20,660 Dobro vprašanje. 354 00:15:20,660 --> 00:15:21,160 Ja. 355 00:15:21,160 --> 00:15:23,260 >> OBČINSTVO: Kje počnemo iti, da preverite naše ocene? 356 00:15:23,260 --> 00:15:23,926 >> ANDI PENG: Ja. 357 00:15:23,926 --> 00:15:28,420 Torej bom pošiljanje e-mail, kar vsak teden 358 00:15:28,420 --> 00:15:31,460 ko so kvizi graded-- ali, Žal mi je, ko se psets ocenjena. 359 00:15:31,460 --> 00:15:34,120 Psets običajno obrnil V opoldne ali petek. 360 00:15:34,120 --> 00:15:37,540 Torej, obljubim, da bom jih poskusite priti nazaj k tebi 361 00:15:37,540 --> 00:15:40,000 ki ga je poldneva naslednjega petka. 362 00:15:40,000 --> 00:15:44,950 >> Kadarkoli sem razred z pset, bom poslal ven obvestilom o redovalnice 363 00:15:44,950 --> 00:15:47,070 da vam pove svoj rezultat si lahko ogledate na spletu. 364 00:15:47,070 --> 00:15:52,022 Torej, prav ta teden, ko sem dokončati razvrščanje psets v zadnjem tednu, 365 00:15:52,022 --> 00:15:54,230 vi boste dobili e-pošto Obvestilo vam pove, 366 00:15:54,230 --> 00:15:55,870 hej to je, če vas pojdite na ogled svoje ocene. 367 00:15:55,870 --> 00:15:57,680 In si lahko ogledate vsak razčlenitev svojih razredih. 368 00:15:57,680 --> 00:15:58,555 Si lahko ogledate komentarje. 369 00:15:58,555 --> 00:16:00,360 Oh, hitro stvar tudi. 370 00:16:00,360 --> 00:16:03,060 Odsek komentar v veliki Knjiga je, če bom verjetno 371 00:16:03,060 --> 00:16:05,300 preživijo večino svojega časa razvrščanja. 372 00:16:05,300 --> 00:16:07,094 Torej, ena stvar, ki je zelo pomembno, ko 373 00:16:07,094 --> 00:16:09,010 vidva ogledujete tvoje stopnje na vaših psets 374 00:16:09,010 --> 00:16:11,400 ne samo išče na fizični rezultatom 375 00:16:11,400 --> 00:16:14,630 ampak tudi pokazal čas do res prebrali moje komentarje. 376 00:16:14,630 --> 00:16:17,820 >> Pogosto, da vam daje povratne informacije o tem, kako ste reševanje problema. 377 00:16:17,820 --> 00:16:20,480 Če morate storiti nekaj malo bolje, 378 00:16:20,480 --> 00:16:24,080 konstruktivna kritika je ponavadi Najboljši podane v teh pripombah oddelku. 379 00:16:24,080 --> 00:16:26,950 Torej, prosim, prosim, jaz grem preživeti nekaj časa pisanja komentarjev. 380 00:16:26,950 --> 00:16:30,440 Prosim, bi jaz zelo cenim če bi vi prebrali te pripombe. 381 00:16:30,440 --> 00:16:31,170 V REDU. 382 00:16:31,170 --> 00:16:34,150 Cool. 383 00:16:34,150 --> 00:16:34,680 >> V redu. 384 00:16:34,680 --> 00:16:40,680 Torej se bomo začeli govoriti in samo pregledovanje hitro 385 00:16:40,680 --> 00:16:45,040 nekaj materiala iz nič samo zato, da smo teden 386 00:16:45,040 --> 00:16:48,760 na desni strani za se začnejo težave v tem tednu je. 387 00:16:48,760 --> 00:16:52,600 Torej, medtem ko je ena zanka od treh vrst zank 388 00:16:52,600 --> 00:16:54,510 smo razpravljali prej v tem razredu. 389 00:16:54,510 --> 00:16:57,060 >> Nekaj ​​časa zanka v bistvu je napisan v skladnji 390 00:16:57,060 --> 00:17:00,666 kjer je, medtem ko je določen pogoj, To storite večkrat, kajne? 391 00:17:00,666 --> 00:17:02,040 Think of it v tej grafiki tukaj. 392 00:17:02,040 --> 00:17:04,780 Boš začeti na nekatere točke, ki v kodi. 393 00:17:04,780 --> 00:17:09,030 Ti boš, da vnesete pogoj zanke if-- Ne know-- x je manjši od ena. 394 00:17:09,030 --> 00:17:11,677 >> Če je to res, boste izvršiti zanke telo. 395 00:17:11,677 --> 00:17:14,010 In ti boš vztrajati početje da še enkrat, še enkrat, še enkrat, 396 00:17:14,010 --> 00:17:17,900 več in over--, ki je razlog, zakaj je loop-- dokler stanje postane 397 00:17:17,900 --> 00:17:19,079 false. 398 00:17:19,079 --> 00:17:22,140 Torej, na ta način, a while je eden izmed enostavnejši način 399 00:17:22,140 --> 00:17:25,619 pisati vse vrste pod pogojem, da mora ponavljati znova in znova in znova. 400 00:17:25,619 --> 00:17:28,109 Samo biti previdni, če pišete kakršno koli zanke 401 00:17:28,109 --> 00:17:32,140 da imate izstopni pogoj tudi za posodobitev karkoli že je 402 00:17:32,140 --> 00:17:36,714 je tako, da je tvoja zanka ne samo teči znova in znova neskončno. 403 00:17:36,714 --> 00:17:38,630 V vsakem primeru, boste želeli, da se prepričajte, 404 00:17:38,630 --> 00:17:42,670 da ste spreminjajo nekatere vidike kodo ali na koncu zanke 405 00:17:42,670 --> 00:17:46,680 Samo se prepričajte, da imate pot približevanja stanju 406 00:17:46,680 --> 00:17:48,400 ki si želijo spoznati do konca. 407 00:17:48,400 --> 00:17:50,239 Ali, da je smiselno, da vse? 408 00:17:50,239 --> 00:17:52,530 Mi pač ne želijo biti ujeti v tej spirali, kjer je 409 00:17:52,530 --> 00:17:55,710 gremo okoli in okoli in ni načina, da bi prekinil zanko. 410 00:17:55,710 --> 00:17:58,844 In vsak zanka v bistvu je način, kako to. 411 00:17:58,844 --> 00:17:59,344 V REDU. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Drugič, mnogi od vas v vaših Mario psets 414 00:18:06,060 --> 00:18:08,910 verjetno moral zaposliti ta tip zanke. 415 00:18:08,910 --> 00:18:11,802 To se imenuje storila, medtem ko zanke. 416 00:18:11,802 --> 00:18:14,510 First of all, lahko kdorkoli povej mi kakšna je razlika med opravkov 417 00:18:14,510 --> 00:18:16,586 while zanko in medtem ko zanke? 418 00:18:16,586 --> 00:18:17,086 Ja. 419 00:18:17,086 --> 00:18:21,030 >> OBČINSTVO: Naredi while zanko teče na prvi [neslišno]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI PENG: Ja, točno. 421 00:18:22,120 --> 00:18:27,130 Torej naredi while zanko vedno počne karkoli je v notranjosti opravkov, znotraj oklepajev 422 00:18:27,130 --> 00:18:30,520 tam in ne tega pogoja pred preverjanjem the-- žal, 423 00:18:30,520 --> 00:18:32,940 pa to kodo pred preverjanje pogojem. 424 00:18:32,940 --> 00:18:37,200 In to je še posebej pomembno za nas tukaj v tem razredu, saj je večina krat 425 00:18:37,200 --> 00:18:41,450 bomo želeli spodbuditi uporabnik za neke vrste vhodu. 426 00:18:41,450 --> 00:18:43,520 In nato, odvisno vhodni so nam dal, 427 00:18:43,520 --> 00:18:46,150 potem lahko ocenimo, oh, ne jih moramo še enkrat vpraša? 428 00:18:46,150 --> 00:18:49,930 >> Torej, v mario, če uporabnik ti je dal negativna višina, na primer, 429 00:18:49,930 --> 00:18:52,990 boš prvi poziv in stori vse, kar je notri. 430 00:18:52,990 --> 00:18:54,820 Potem boš, da preverite časa. 431 00:18:54,820 --> 00:18:57,570 Veš, je negativna 1, je, da s pozitivnim predznakom? 432 00:18:57,570 --> 00:19:00,680 Če je ne, bom šel nazaj in ponovite storiti in ponovite 433 00:19:00,680 --> 00:19:03,950 in ponavljati in ponavljati, dokler se ne Končno vam številko, ki vam je všeč, 434 00:19:03,950 --> 00:19:07,002 da bomo lahko vsi zaposlujejo v našem kodeksu. 435 00:19:07,002 --> 00:19:09,210 To je zelo pomembno za v bistvu vsaka uporabnik vložek. 436 00:19:09,210 --> 00:19:11,760 Jaz vam lahko garantiram koli Čas v pset kjer 437 00:19:11,760 --> 00:19:15,070 Prosimo vas, da vhod kakršno koli kodo, smo 438 00:19:15,070 --> 00:19:17,540 verjetno dogaja, da vam preizkus, v katerem smo 439 00:19:17,540 --> 00:19:21,200 dogaja, da vam nekaj slabega, da je tekoč poskusiti zlomiti kodo. 440 00:19:21,200 --> 00:19:25,044 >> Če se trudimo, da vas prosim za input celo število, lahko samo vam niz 441 00:19:25,044 --> 00:19:26,460 in videti, kako bi si, da zmorem. 442 00:19:26,460 --> 00:19:30,610 Če vas bomo prosili, da zaposlujejo starost, vam lahko dala negativno število 443 00:19:30,610 --> 00:19:32,340 da vidim, kako bi zmogel. 444 00:19:32,340 --> 00:19:37,260 Samo poskrbite, vidva sta testiranje za Primeri, v katerih ne boste dobili najboljše 445 00:19:37,260 --> 00:19:38,590 vhod, kaj je pravkar rekel. 446 00:19:38,590 --> 00:19:40,510 In storila, medtem ko zanke je velikokrat najbolje 447 00:19:40,510 --> 00:19:45,260 način, da oblikujete svoje kodo, tako da izpolnjuje to področje. 448 00:19:45,260 --> 00:19:45,760 V REDU. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> V REDU. 451 00:19:49,470 --> 00:19:53,270 Torej, to je verjetno najbolj Kompleksna zanke iz treh 452 00:19:53,270 --> 00:19:54,990 da smo pogledal tako daleč. 453 00:19:54,990 --> 00:19:56,689 In zdi zelo grozno na prvi. 454 00:19:56,689 --> 00:19:59,730 Ampak zagotavljam vam, ko vaju navaditi, kako uporabiti za zanke, 455 00:19:59,730 --> 00:20:03,320 to je ena izmed najbolj uporabnih stvari, najbolj uporabno orodje v vašem arzenal 456 00:20:03,320 --> 00:20:05,300 za premik naprej v tem razredu. 457 00:20:05,300 --> 00:20:09,920 >> Tako, na primer, v nič, smo imeli to zelo preprost blok 458 00:20:09,920 --> 00:20:13,180 da je pravkar rekel ponovite to gotovo stavki določeno število krat. 459 00:20:13,180 --> 00:20:16,260 Mimogrede, SAJ-- da je Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 Smo velikokrat prijavite našo e-pošto SAJ. 461 00:20:18,740 --> 00:20:20,360 Če rečemo, SAJ, ne bodite zmedeni. 462 00:20:20,360 --> 00:20:22,630 To je samo nas. 463 00:20:22,630 --> 00:20:28,600 >> Torej v nič, smo bili sposobni, da imajo blok, ki je dejal, da ponovite ljubim SAJ! 464 00:20:28,600 --> 00:20:29,430 10-krat. 465 00:20:29,430 --> 00:20:30,130 Zelo preprosto. 466 00:20:30,130 --> 00:20:32,302 Logika, da je Zelo, zelo preprosto, kajne? 467 00:20:32,302 --> 00:20:35,260 Rad bi najprej iti skozi prvi čas in videli, da se drugič 468 00:20:35,260 --> 00:20:38,510 in glej, da se tretjič, itd in tako naprej, dokler ste zadeli do 10. 469 00:20:38,510 --> 00:20:41,960 >> In način, kako bi pomenilo, da je v koda je samo prek preproste za zanko. 470 00:20:41,960 --> 00:20:45,440 Torej za, boš razglasi svoj spremenljivka tukaj, v tem primeru, 471 00:20:45,440 --> 00:20:46,349 z notr. 472 00:20:46,349 --> 00:20:47,390 Bomo poimenovali i. 473 00:20:47,390 --> 00:20:49,500 Bomo inicializacijo 0. 474 00:20:49,500 --> 00:20:52,490 In izdaja ustavljanja bo i je manj kot 10. 475 00:20:52,490 --> 00:20:54,622 In posodobitev se bo i ++. 476 00:20:54,622 --> 00:20:57,750 >> In v zanki, gre izvršiti, dokler sčasoma 477 00:20:57,750 --> 00:21:01,490 idealno konec condition-- v kateri primeru, da se dogaja, da bi prekinil zanko. 478 00:21:01,490 --> 00:21:04,600 Treba bi bilo stvari, ki vas fantje so vse vrste videla 479 00:21:04,600 --> 00:21:07,270 in moral storiti za tvoj problem enega niza. 480 00:21:07,270 --> 00:21:12,310 Ali kdo kakršna koli vprašanja o zdaj za zanke? 481 00:21:12,310 --> 00:21:12,930 V REDU. 482 00:21:12,930 --> 00:21:13,430 Great. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> V REDU. 485 00:21:18,620 --> 00:21:22,270 Torej za tiste, ki imajo preberite pset spec za ta teden 486 00:21:22,270 --> 00:21:27,690 vemo, da bomo morali zaposliti nekaj, kar se imenuje ASCII ASCII tabela. 487 00:21:27,690 --> 00:21:32,380 Torej David v predavanju šel čez kratko kako računalniki essentially-- vse 488 00:21:32,380 --> 00:21:35,410 je kodiran v računalnik, ki je binarni, v ničel in enic. 489 00:21:35,410 --> 00:21:39,740 In način, kako so računalniki lahko za shranjevanje različnih vrednosti, poleg 490 00:21:39,740 --> 00:21:44,360 do ničel in enic so z določanjem te številke za zastopanje druge števke 491 00:21:44,360 --> 00:21:47,220 ali v bistvu drugih znakov. 492 00:21:47,220 --> 00:21:49,810 >> Torej, v tem primeru se mora ASCII table-- vse to počne 493 00:21:49,810 --> 00:21:53,600 je karta znakov ali znakov, do številk. 494 00:21:53,600 --> 00:21:57,385 Torej datoteke izvorne kode v vaš computer-- se vidi, 495 00:21:57,385 --> 00:22:00,010 hej, kup ničel in enic, ničel in enic, ničel in enic. 496 00:22:00,010 --> 00:22:02,350 To je tisto, shranjeni v Dejanska spomin računalnika. 497 00:22:02,350 --> 00:22:04,750 >> Toda, ko smo ljudje želijo komunicira z računalnikom, 498 00:22:04,750 --> 00:22:08,249 smo want-- reči, na primer, če želim, da velike črke A, 499 00:22:08,249 --> 00:22:10,540 Bom potreboval nek način povedal, računalnik, oh, 500 00:22:10,540 --> 00:22:16,300 ko sem tipa velike črke A, mislim to zastopanje v binarno. 501 00:22:16,300 --> 00:22:22,260 >> In tako se je način delamo, da vrgel samovoljno stvar imenuje ASCII tabelo, 502 00:22:22,260 --> 00:22:25,020 kjer smo, kot človeku, kot programerji, nekaj časa nazaj, 503 00:22:25,020 --> 00:22:28,660 smo samovoljno odločil, da mi grejo dodeliti te številke 504 00:22:28,660 --> 00:22:30,960 Vrednosti teh znakov. 505 00:22:30,960 --> 00:22:32,720 >> Tako lahko vidva google to na spletu. 506 00:22:32,720 --> 00:22:37,120 Mislim, da je povezava z njo v vašem pset-- samo ASCII map vloži, ASCII 507 00:22:37,120 --> 00:22:37,720 miza. 508 00:22:37,720 --> 00:22:40,722 To samo pomeni, binarni številke v znakov. 509 00:22:40,722 --> 00:22:42,930 In to se dogaja, da je zelo koristno za vaš problem niz 510 00:22:42,930 --> 00:22:45,470 kadarkoli hočeš izračunati ničesar ali če vas 511 00:22:45,470 --> 00:22:47,880 želite prikazati nekatere znakov ali cela števila 512 00:22:47,880 --> 00:22:50,327 ali manipulirati določene znake. 513 00:22:50,327 --> 00:22:52,160 To se dogaja, da je zelo pomembno je, da ste vsi 514 00:22:52,160 --> 00:22:55,140 vedo, kako krmariti po tabelo ASCII. 515 00:22:55,140 --> 00:23:01,260 >> Tako, na primer, z velikimi črkami A predstavlja številko 65. 516 00:23:01,260 --> 00:23:04,207 In male je zastopana s 97. 517 00:23:04,207 --> 00:23:07,040 Zato je pomembno, da vemo, da je Razlika med obema vrednostma 518 00:23:07,040 --> 00:23:08,320 je 32. 519 00:23:08,320 --> 00:23:13,210 Pogosto, če boste potrebovali za pretvorbo iz eden na drugega, je razlika 32. 520 00:23:13,210 --> 00:23:15,710 In ne skrbite, če ste prijazni od zmedeni o tem na prvi. 521 00:23:15,710 --> 00:23:20,230 Mi bomo šli čez kako bi zaposlujejo to dejansko kodo. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> V REDU. 524 00:23:26,380 --> 00:23:30,770 Torej za tiste, ki ste s prenosniki ven, vas prosimo, da pull up tabelo ASCII, 525 00:23:30,770 --> 00:23:36,030 saj ti bo verjetno zahtevajo vidva z referenčnimi 526 00:23:36,030 --> 00:23:38,100 kaj so znaki so. 527 00:23:38,100 --> 00:23:38,640 V REDU. 528 00:23:38,640 --> 00:23:42,840 >> Torej, vedoč, da so nekatere znaki karto za določene številke, 529 00:23:42,840 --> 00:23:47,240 če bi bil jaz teči šele prvi linija, ki code-- printf a, 530 00:23:47,240 --> 00:23:50,900 male črke a, minus velikimi A. Ali kdo 531 00:23:50,900 --> 00:23:55,880 imajo ugibati o tem, kaj bi bilo tiskanje zdaj iz zaslona? 532 00:23:55,880 --> 00:23:58,190 >> Torej, najprej, kaj počne male črke A pomenita? 533 00:23:58,190 --> 00:24:00,990 Koliko je to kodiran v tabeli ASCII. 534 00:24:00,990 --> 00:24:01,490 Žal? 535 00:24:01,490 --> 00:24:02,630 >> OBČINSTVO: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI PENG: 97, super. 537 00:24:03,630 --> 00:24:05,077 In kaj je z velikimi črkami? A 538 00:24:05,077 --> 00:24:06,330 >> OBČINSTVO: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI PENG: Torej, kaj je 97 minus 65? 540 00:24:08,255 --> 00:24:09,227 >> OBČINSTVO: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI PENG: OK. 542 00:24:09,810 --> 00:24:13,530 Torej, kaj mislita se dogaja, da zgodilo, ko sem prispevek, da vrstica kode 543 00:24:13,530 --> 00:24:14,670 v mojem računalniku? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> OBČINSTVO: [neslišno]. 546 00:24:19,896 --> 00:24:21,020 ANDI PENG: Oprostite, govorite. 547 00:24:21,020 --> 00:24:22,520 Brez skrbi. 548 00:24:22,520 --> 00:24:25,750 To je zelo varna okolje, minus kamera. 549 00:24:25,750 --> 00:24:27,550 Gremo vsi to-- brez skrbi. 550 00:24:27,550 --> 00:24:30,940 Samo gremo vsi skupaj, da se pretvarjamo, kot to je samo nam hlajenje v tej sobi. 551 00:24:30,940 --> 00:24:31,480 Brez skrbi. 552 00:24:31,480 --> 00:24:33,410 Ni vprašanje, je preveč neumen. 553 00:24:33,410 --> 00:24:35,300 Brez odgovora je neumen odgovor. 554 00:24:35,300 --> 00:24:38,260 Jaz sem verjetno bo, da delajo napake v času mojega poučevanja. 555 00:24:38,260 --> 00:24:40,740 Resno, fantje, samo blurt ven. 556 00:24:40,740 --> 00:24:43,092 Bodite prepričani v sebe, veš? 557 00:24:43,092 --> 00:24:43,800 Torej, kaj je bilo to? 558 00:24:43,800 --> 00:24:47,990 Kdo je rekel, da je zadnji odgovor? 559 00:24:47,990 --> 00:24:48,540 V REDU. 560 00:24:48,540 --> 00:24:50,380 Kričati, da je lepo in jasno. 561 00:24:50,380 --> 00:24:51,220 >> OBČINSTVO: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI PENG: 32. 563 00:24:51,850 --> 00:24:54,141 OK, kaj je teči to kodo in vidim, če je to, kaj se zgodi. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 V REDU. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Tako kot lahko vidva vrste glej, tipično zapis sem 568 00:25:06,360 --> 00:25:12,250 ustanoviti tukaj za to, kako bi mi zaposlujemo vsaka vrsta programa na našem računalniku. 569 00:25:12,250 --> 00:25:14,770 Imamo glavno funkcijo znotraj naše glavno funkcijo. 570 00:25:14,770 --> 00:25:17,265 Jaz sem le, da bo kopiranje in prilepite to vrstico kode. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Prav tako bodite previdni, ko si fantje kopirate in prilepite kodo. 573 00:25:23,540 --> 00:25:28,750 Včasih nekateri operaterji ne prilepi nad pravilno. 574 00:25:28,750 --> 00:25:31,397 V tem primeru je minus Znak je pravzaprav pomišljaj. 575 00:25:31,397 --> 00:25:32,980 In tako se računalnik ga niso dvignili. 576 00:25:32,980 --> 00:25:35,870 Tako da sem moral iti nazaj in fizično natipkati da. 577 00:25:35,870 --> 00:25:37,846 Samo biti previdni, ko vi počnete to. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> V REDU. 580 00:25:42,660 --> 00:25:43,980 Bomo to teči tukaj. 581 00:25:43,980 --> 00:25:45,670 Torej bomo cd v naši section2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Sem se imenuje ta program asciimath. 584 00:25:52,030 --> 00:25:55,690 Torej, se spomnite, ko smo teči koli Program, želimo, da jo najprej prevesti 585 00:25:55,690 --> 00:25:57,150 da ga teče skozi našo znamko. 586 00:25:57,150 --> 00:26:00,030 In potem želimo dejansko vozijo Program, ki ga delaš dot-poševnice. 587 00:26:00,030 --> 00:26:01,280 Torej bomo ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Pravica, da gremo. 590 00:26:06,590 --> 00:26:07,410 In vidimo, 32. 591 00:26:07,410 --> 00:26:07,930 Dobro opravljeno. 592 00:26:07,930 --> 00:26:10,340 Zaslužiš si kos sladkarije. 593 00:26:10,340 --> 00:26:11,160 Candy za vas. 594 00:26:11,160 --> 00:26:11,900 Žal mi je. 595 00:26:11,900 --> 00:26:13,100 V redu. 596 00:26:13,100 --> 00:26:13,670 V REDU. 597 00:26:13,670 --> 00:26:18,070 Torej gremo lahko nazaj v našem primeru tukaj. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Aah, ne. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Aah. 602 00:26:31,090 --> 00:26:32,490 V REDU. 603 00:26:32,490 --> 00:26:34,610 Jaz sem šele tekoč, da ostane tako. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 V REDU. 606 00:26:51,240 --> 00:26:51,740 V REDU. 607 00:26:51,740 --> 00:26:55,340 Tako da lahko vi vidite, lahko storimo veliko zelo zanimivih stvari, 608 00:26:55,340 --> 00:26:58,880 Veliko zelo kul stvari, veliko zelo zapletene stvari, ki vključujejo 609 00:26:58,880 --> 00:27:02,720 ASCII znakov in številk. 610 00:27:02,720 --> 00:27:05,890 Ko prideš do pete, to je veliko, da sledite skupaj. 611 00:27:05,890 --> 00:27:07,640 Ne bomo šli skozi odsek. 612 00:27:07,640 --> 00:27:10,720 Vas prosimo, da se, če je le mogoče, dobro razmislite na papirju 613 00:27:10,720 --> 00:27:14,750 najprej o tem, kaj naj bi se dogaja, ko vnesete kot niz vrednot. 614 00:27:14,750 --> 00:27:19,720 Na primer, v tej zadnji vrstici, imamo z-- ki predstavlja določeno number-- 615 00:27:19,720 --> 00:27:24,740 a-- kar predstavlja tudi nekateri number-- plus 1 modulos 26 616 00:27:24,740 --> 00:27:26,750 plus male črke a. 617 00:27:26,750 --> 00:27:29,220 >> Če fantje vodi obravnavo preko teh, vas 618 00:27:29,220 --> 00:27:34,009 lahko vidite vzorec prišel v kako smo manipulirajo kodo. 619 00:27:34,009 --> 00:27:36,050 Sem zelo, zelo predlagamo Po odsek vse vas 620 00:27:36,050 --> 00:27:38,160 Fantje gredo naprej in vhod tistih, vse v računalniku 621 00:27:38,160 --> 00:27:40,060 in videti, kakšen številke prihajajo ven 622 00:27:40,060 --> 00:27:43,090 in razmišljanjem skozi zakaj so to dogaja, ker za svoje psets 623 00:27:43,090 --> 00:27:45,060 To bo zelo pomembno za vas, da razumete 624 00:27:45,060 --> 00:27:47,132 zakaj nekatere stvari se dogajajo. 625 00:27:47,132 --> 00:27:48,590 Vse te diapozitivi bo na spletu. 626 00:27:48,590 --> 00:27:51,510 Torej, ne skrbi poskuša fizično prepišite zapiske. 627 00:27:51,510 --> 00:27:52,510 Spletni Vse je. 628 00:27:52,510 --> 00:27:54,050 To samo po sebi del bo na spletu. 629 00:27:54,050 --> 00:27:57,500 Vse moje izvorna koda, ki Tečem bo na spletu. 630 00:27:57,500 --> 00:27:58,180 Ja. 631 00:27:58,180 --> 00:27:59,430 Ali imate še vedno vprašanja? 632 00:27:59,430 --> 00:28:00,587 OBČINSTVO: Kaj je modulos? 633 00:28:00,587 --> 00:28:01,170 ANDI PENG: OK. 634 00:28:01,170 --> 00:28:05,620 Torej modulo operator, da se dogaja, da biti zelo pomembno, da se pset vaši fantje otroška 635 00:28:05,620 --> 00:28:06,690 tukaj. 636 00:28:06,690 --> 00:28:12,280 Torej tako, da upravljavci v C in programskega dela 637 00:28:12,280 --> 00:28:16,360 je, da imate kar se imenuje simbol delitve in simbol modul, 638 00:28:16,360 --> 00:28:18,350 ki je tako kot procent znaka. 639 00:28:18,350 --> 00:28:24,840 >> Torej, v C, ko boste to storili celo deljeno s celo število s poševno črto, 640 00:28:24,840 --> 00:28:27,720 C ima tendenco, da želijo zmanjšati off vse pikami, 641 00:28:27,720 --> 00:28:30,290 ker celo hoče pretvoriti v celo število. 642 00:28:30,290 --> 00:28:33,550 To se ne dogaja, da želijo biti dvojna s kupom decimalk vse po njej. 643 00:28:33,550 --> 00:28:39,322 >> Torej, če naredim 3 deljen z 2, da se dogaja da bi prekinil 0.5 in samo vam 1. 644 00:28:39,322 --> 00:28:41,530 Torej, to je nekaj, kar bi bilo zelo previdni, ko ste 645 00:28:41,530 --> 00:28:45,294 delaš vse vrste matematike pri načrtovanju, je, da so številke, ki jih dobite 646 00:28:45,294 --> 00:28:47,210 ne sme biti številke da ste mislili, 647 00:28:47,210 --> 00:28:50,190 zaradi česar je zaokroževanje v vašem zadnji pset je tako pomembno. 648 00:28:50,190 --> 00:28:51,980 >> Modulo vam preostanek. 649 00:28:51,980 --> 00:28:56,200 Tako na primer, če sem 3 modulo 2-- tako za 3 odstotke znamenje 2-- 650 00:28:56,200 --> 00:28:58,020 da bi vam v preostalem delu, ki. 651 00:28:58,020 --> 00:29:00,460 Torej 3 deljeno z 2 1.5. 652 00:29:00,460 --> 00:29:01,410 To je 1 preostanek 1. 653 00:29:01,410 --> 00:29:04,600 To bi vam 1, ki je je preostanek tega. 654 00:29:04,600 --> 00:29:07,361 >> Torej, ko sta vidva gibljejo skozi mizo ASCII, 655 00:29:07,361 --> 00:29:09,735 modulo bo na koncu pa nekaj, kar je zelo pomembno, 656 00:29:09,735 --> 00:29:11,240 in bomo razpravljali, da je pozneje. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> V REDU. 659 00:29:19,040 --> 00:29:27,300 Torej nekaj, kar je precej, precej nova in precej edinstven 660 00:29:27,300 --> 00:29:31,920 da smo razpravljali ta teden je koncept kakšna matrika je. 661 00:29:31,920 --> 00:29:34,370 Torej matrika je prva tip strukture podatkov 662 00:29:34,370 --> 00:29:36,320 da bomo srečati v tem razredu. 663 00:29:36,320 --> 00:29:40,010 Vsi podatkovna struktura se je neke vrste samovoljno, 664 00:29:40,010 --> 00:29:43,370 dobesedno stvari, kot strukture da smo kot so ustvarili programerji, 665 00:29:43,370 --> 00:29:47,890 ki smo mu v naši kodo, ki lahko vsebuje tudi druge kose kode. 666 00:29:47,890 --> 00:29:51,090 >> Torej, v tem smislu, kot array-- si o njej mislijo kot datoteko omari, 667 00:29:51,090 --> 00:29:53,470 kje če odprete drugačen police vaše datoteke omari, 668 00:29:53,470 --> 00:29:55,630 lahko dostopate do različnih stvari. 669 00:29:55,630 --> 00:29:58,630 V spomin, niz se samo delaš ista stvar na vašem računalniku. 670 00:29:58,630 --> 00:30:01,730 Lahko imaš drugačno blocks-- smo jih pokličete indices-- iz matrike. 671 00:30:01,730 --> 00:30:04,210 To je tako kot blok, polica spomina 672 00:30:04,210 --> 00:30:07,580 ki smo jih ustvarili v vaš računalnik, ki lahko vnesete 673 00:30:07,580 --> 00:30:10,270 nekatere stvari v različnih prostorih. 674 00:30:10,270 --> 00:30:18,000 >> Torej, s paleto, boste Vedno morajo specify-- 675 00:30:18,000 --> 00:30:22,360 morate navesti razglasitev matrika v naslednji obliki. 676 00:30:22,360 --> 00:30:24,290 Ti boš prvi določite vrsto podatkov 677 00:30:24,290 --> 00:30:25,831 da želite ustvariti array. 678 00:30:25,831 --> 00:30:28,870 Če želim niz števil, Jaz bom dal int tam. 679 00:30:28,870 --> 00:30:32,079 Če želim niz nizov, Bom dal strune tam, 680 00:30:32,079 --> 00:30:34,995 ime svoje matriki, in nato boste imeli oglatih oklepajih. 681 00:30:34,995 --> 00:30:39,580 In znotraj oglatih oklepajev, ste dogaja, da imajo velikost vašega array. 682 00:30:39,580 --> 00:30:42,900 >> Nekaj, kar je zelo pomembno, da imejte v mislih, ko je ustvarjanje nize 683 00:30:42,900 --> 00:30:46,530 da, ko si ustvarite matrika, da velikost ni mogoče spremeniti. 684 00:30:46,530 --> 00:30:50,180 Torej, če veste, da prav zdaj imate paleto velikosti 10, 685 00:30:50,180 --> 00:30:54,550 veš, da bom imela 10 celic znotraj ali 10 indeksov v tem polju, 686 00:30:54,550 --> 00:30:56,830 in to se ne bo nikoli razširiti ali zmanjšati 687 00:30:56,830 --> 00:30:59,850 ni važno kaj, in da je trenutno le 10 blokov prostora 688 00:30:59,850 --> 00:31:04,490 dodeljena v spominu, ki lahko shrani do 10 stvari, ki ne glede na ste dal. 689 00:31:04,490 --> 00:31:08,790 >> Torej, na ta način, tip podatkov matrika, podatkovna struktura, ki je matrika 690 00:31:08,790 --> 00:31:13,392 se zelo razlikuje od nekaterih drugih, da bomo se zajemajo kasneje v tem tečaju. 691 00:31:13,392 --> 00:31:15,170 Ja. 692 00:31:15,170 --> 00:31:20,080 Na primer, če si hotel ustvarite matriko velikosti 3, ki 693 00:31:20,080 --> 00:31:23,670 vsebuje spremenljivke integer-- oh, oprostite, za temperature-- 694 00:31:23,670 --> 00:31:25,640 in temperaturo, ki znaša Seveda je celo število. 695 00:31:25,640 --> 00:31:28,710 >> Tako bi ustvarili int, ki je vrsta podatkov o tem, kaj želimo shraniti. 696 00:31:28,710 --> 00:31:32,680 Bomo call to temperature zavoljo nomenklature poimenovanja 697 00:31:32,680 --> 00:31:34,200 nekaj, kar smo vsi razumeli. 698 00:31:34,200 --> 00:31:35,900 In bomo imeli oglatih oklepajih. 699 00:31:35,900 --> 00:31:37,200 In želimo tri številke. 700 00:31:37,200 --> 00:31:39,000 Torej bomo dal tri znotraj njega. 701 00:31:39,000 --> 00:31:41,041 >> Nekaj, kar je res pomembno imeti v mislih 702 00:31:41,041 --> 00:31:43,530 je, da so nizi nič indeksirajo. 703 00:31:43,530 --> 00:31:46,410 Vse to pomeni, da vas začne z indeksom 0, 704 00:31:46,410 --> 00:31:49,800 in zaženete navzgor skozi velikost matrike minus 1. 705 00:31:49,800 --> 00:31:52,730 Tako na primer tu, imajo celo paleto velikosti 3. 706 00:31:52,730 --> 00:31:54,680 To se dogaja, da se lahko da imajo tri vrednosti. 707 00:31:54,680 --> 00:31:57,450 Toda številke themselves-- da Številka, array, da indeks, 708 00:31:57,450 --> 00:32:00,271 array so 0 do 2. 709 00:32:00,271 --> 00:32:03,520 Torej fantje, bo zelo, zelo previdni, ko greš skozi vaše težave, določenimi 710 00:32:03,520 --> 00:32:06,500 in ustvarjanje kakršno koli array, saj veliko krat se počutiš 711 00:32:06,500 --> 00:32:08,490 res, res težko pozabiti. 712 00:32:08,490 --> 00:32:11,840 Sem dejansko nimajo indeks od 3, da sem trenutno šele 713 00:32:11,840 --> 00:32:13,130 imajo indeks 2. 714 00:32:13,130 --> 00:32:16,046 In če boste poskušali dostop tretjo indeks, 715 00:32:16,046 --> 00:32:18,170 to se dogaja, da je tisto, kar je imenuje null terminator. 716 00:32:18,170 --> 00:32:19,990 To se ne dogaja, da dejansko obstajajo v matriki. 717 00:32:19,990 --> 00:32:21,781 In je računalnik ne bo všeč. 718 00:32:21,781 --> 00:32:24,570 Zato bodite previdni, če ste dostop do stvari, samo 719 00:32:24,570 --> 00:32:28,070 da se zagotovi, da se spomnite da so nizi nič indeksirane. 720 00:32:28,070 --> 00:32:28,880 >> V REDU. 721 00:32:28,880 --> 00:32:34,030 Tako prvi primer je le eden od načinov ustvarjanja array. 722 00:32:34,030 --> 00:32:36,790 Drugi primer imam Spodaj je le poseben način 723 00:32:36,790 --> 00:32:40,210 oblikovanja, kar je enako podatki struktura, ki smo jih pravkar inputted. 724 00:32:40,210 --> 00:32:44,347 Torej, namesto da bi fizično teče skozi in dajanje na temperaturi od 0 725 00:32:44,347 --> 00:32:47,180 enaka karkoli, temperatura 1 enaka ne glede, temperatura 2 enaka 726 00:32:47,180 --> 00:32:50,950 karkoli, da bi dejansko samo neposredno je vse ustvaril v eni vrstici 727 00:32:50,950 --> 00:32:53,010 v temperaturnih oglatih oklepajih enaka. 728 00:32:53,010 --> 00:32:56,536 >> In obvestilo, v tem primeru, vam ni treba določiti, kako velik je vaš matrika je, 729 00:32:56,536 --> 00:32:59,160 ker računalnik se dogaja, da iti skozi in videli, da obstaja 730 00:32:59,160 --> 00:33:01,570 trije elementi v teh zavitih oklepajih. 731 00:33:01,570 --> 00:33:04,000 In to se dogaja, da vedo, OK, Rabim matriko velikosti 3. 732 00:33:04,000 --> 00:33:07,440 Vam ne bo treba Vhod je na naslednji način. 733 00:33:07,440 --> 00:33:10,170 >> In tudi, ja, da je tako. 734 00:33:10,170 --> 00:33:12,610 Ima kdo vprašanja o tem, kako naredimo nize 735 00:33:12,610 --> 00:33:17,391 ali kako struktura matrike deluje? 736 00:33:17,391 --> 00:33:17,890 Ja. 737 00:33:17,890 --> 00:33:18,806 >> OBČINSTVO: [neslišno]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI PENG: Ja, točno. 740 00:33:22,690 --> 00:33:26,150 Torej, če ste bili, da razglasi in inicializacijo matrika naslednja metoda, 741 00:33:26,150 --> 00:33:28,477 ki je drugi način, lahko pustite tiste. 742 00:33:28,477 --> 00:33:30,310 In računalnik avtomatsko ve, da je to 743 00:33:30,310 --> 00:33:33,950 potrebuje, da računajo, koliko elementov so v teh zavitih oklepajev, ločen 744 00:33:33,950 --> 00:33:34,930 z vejicami. 745 00:33:34,930 --> 00:33:37,517 >> Torej, tukaj so videli 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Torej, računalnik ve, oh, tam je tri cela števila. 747 00:33:39,600 --> 00:33:45,960 Vem, da ustvarite ime matrike Temperatura pri treh elementov v njem. 748 00:33:45,960 --> 00:33:46,590 Dobro vprašanje. 749 00:33:46,590 --> 00:33:47,090 Ja. 750 00:33:47,090 --> 00:33:51,590 >> OBČINSTVO: Ali ni mogoče ustvariti niz z različnimi tipi podatkov 751 00:33:51,590 --> 00:33:53,021 ki bi jih lahko vnesli v to? 752 00:33:53,021 --> 00:33:56,746 Na primer, s števil [neslišno]? 753 00:33:56,746 --> 00:33:59,120 ANDI PENG: Za namene tega razreda, ne, prav zdaj. 754 00:33:59,120 --> 00:34:03,070 Ko ustvarite podatke strukturirati kot array, 755 00:34:03,070 --> 00:34:04,990 ste štetje računalnik, hej, jaz te potrebujem 756 00:34:04,990 --> 00:34:08,159 dodeliti toliko spomin na mojega trdega diska, 757 00:34:08,159 --> 00:34:10,690 z vsako celico čemer Določeno število bitov. 758 00:34:10,690 --> 00:34:13,429 >> Ne pozabite, smo se naučili v tednu nič, da različni podatki 759 00:34:13,429 --> 00:34:15,300 tipi so različnih velikosti? 760 00:34:15,300 --> 00:34:17,630 Tako na primer, niz je drugačen znesek 761 00:34:17,630 --> 00:34:20,719 prostora kot char, ki je drugačno količino prostora 762 00:34:20,719 --> 00:34:21,830 iz razpona. 763 00:34:21,830 --> 00:34:25,534 In tako, če ne določite vi premeša in se ujemajo Katere vrste spremenljivk 764 00:34:25,534 --> 00:34:27,659 imate računalnik je bo zelo zmeden. 765 00:34:27,659 --> 00:34:29,950 In to ne bo vedel koliko pomnilnika, da vam. 766 00:34:29,950 --> 00:34:32,480 Torej za namene pravice Zdaj, lahko računalniki samo 767 00:34:32,480 --> 00:34:36,120 prepoznati eno vrsto matrike. 768 00:34:36,120 --> 00:34:37,940 Dobro vprašanje. 769 00:34:37,940 --> 00:34:38,440 V REDU. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Torej, seveda je Drugo vprašanje imamo 772 00:34:47,120 --> 00:34:50,760 je, no, zdaj, ko smo ustvarili niz in smo dal vse te stvari 773 00:34:50,760 --> 00:34:54,190 v matriki, kako smo bo mogel dostopati do njega? 774 00:34:54,190 --> 00:34:59,710 Torej tipična struktura, ki smo vedno dostop array je naša lepa za zanko. 775 00:34:59,710 --> 00:35:03,830 Obljubim vam fantje, da bomo vidim veliko tega kolega tukaj. 776 00:35:03,830 --> 00:35:06,470 >> V bistvu, kadarkoli želite za vnos vrednosti v matriki 777 00:35:06,470 --> 00:35:09,940 ali želite, da dostop do njih je Najboljši način za to je za zanke, 778 00:35:09,940 --> 00:35:13,730 saj za zanke, ki jih vem kolikokrat ste 779 00:35:13,730 --> 00:35:17,290 želeli teči skozi niz, ker imate izdaja stop, kajne? 780 00:35:17,290 --> 00:35:19,680 In vsakič, ko zaženete skozi, lahko dostopate 781 00:35:19,680 --> 00:35:21,310 drugačen element matrike. 782 00:35:21,310 --> 00:35:26,920 >> In tudi to je razlog, zakaj tipično Začnemo za zanke na vrednost 0, 783 00:35:26,920 --> 00:35:30,080 ker ko imate dostop do nizi, lahko dostopate indeks nič. 784 00:35:30,080 --> 00:35:32,070 In tako je tudi vzporednice zelo lepo. 785 00:35:32,070 --> 00:35:35,295 Vidva morda želeli pisati za int i enaka 1. 786 00:35:35,295 --> 00:35:37,330 i je manjše ali enako 3. 787 00:35:37,330 --> 00:35:39,890 >> Ampak to ne bi delovalo čisto kot tudi tukaj, samo zato, ker vas 788 00:35:39,890 --> 00:35:42,010 imajo elemente 0, 1 in 2. 789 00:35:42,010 --> 00:35:45,815 In tako, če ste bili, da začnete svoj i na elementu 1, 2 in 3, 790 00:35:45,815 --> 00:35:48,440 boš na koncu teče izven meja svojim matrike, 791 00:35:48,440 --> 00:35:50,440 in slabe stvari se bo zgodilo. 792 00:35:50,440 --> 00:35:54,480 >> Torej, upam, da vama glej segue zakaj v prejšnjih razredih 793 00:35:54,480 --> 00:35:58,560 smo vam poučevanje fantje kako teči in format za zanke na način, da smo bili. 794 00:35:58,560 --> 00:36:01,900 To je zato, ker zdaj smo jih prešli v nizi, 795 00:36:01,900 --> 00:36:06,760 lahko vidite, zakaj je 0 posoja sama zelo lepo za dostop. 796 00:36:06,760 --> 00:36:09,880 >> Torej, kako delamo, da je that-- sem samo tiskanje tukaj zavoljo 797 00:36:09,880 --> 00:36:10,830 , da tiskanje. 798 00:36:10,830 --> 00:36:13,750 Ampak imam ograde, vejico. 799 00:36:13,750 --> 00:36:15,645 In dejansko dostopanje del se dogaja. 800 00:36:15,645 --> 00:36:17,520 Ime matrike je bil imenovan temperature. 801 00:36:17,520 --> 00:36:21,570 Tako da je temperatura in i-ti element matrike. 802 00:36:21,570 --> 00:36:24,400 >> Tako kot zanko teče skozi, to se dogaja, da začnejo pri 0. 803 00:36:24,400 --> 00:36:27,640 To se dogaja, da natisnete ven 0. indeks tega niza. 804 00:36:27,640 --> 00:36:29,599 Potem pa se dogaja, da natisnete iz prvega elementa. 805 00:36:29,599 --> 00:36:31,431 Potem pa se dogaja, da natisnete iz druge. 806 00:36:31,431 --> 00:36:32,880 In potem bomo prekinil. 807 00:36:32,880 --> 00:36:36,718 Je vsakdo jasno kako, da se dogaja? 808 00:36:36,718 --> 00:36:37,217 Great. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> V redu. 811 00:36:44,100 --> 00:36:47,270 Torej imamo tukaj način rekel, če nismo želeli 812 00:36:47,270 --> 00:36:50,020 za trdo-kodo me in-- kot programer. 813 00:36:50,020 --> 00:36:53,320 Nisem hotel, da bi dejansko fizično dal v vsakega posameznega elementa 814 00:36:53,320 --> 00:36:54,020 te matrike. 815 00:36:54,020 --> 00:36:56,500 Če bi želel, da namesto imajo vhodne uporabniški vrednosti, 816 00:36:56,500 --> 00:36:58,100 kaj je najboljši način za to? 817 00:36:58,100 --> 00:37:00,920 >> No, tukaj sem ustvaril to lepo funkcijo, 818 00:37:00,920 --> 00:37:03,560 v katerem sem lahko razglasi array. 819 00:37:03,560 --> 00:37:06,210 Torej int scores-- dovolimo samo povem, želimo, da bi 820 00:37:06,210 --> 00:37:10,660 matrika, ki je potekala v razrede vseh 18 od tu v tem delu študentov. 821 00:37:10,660 --> 00:37:12,670 Mislim, da imamo malo več kot 18 otroci danes. 822 00:37:12,670 --> 00:37:16,460 Ampak zavoljo primer je, kaj je samo prevzeti smo imeli 18. 823 00:37:16,460 --> 00:37:21,580 Jaz bi ustvarili ime niz točk z Tip int, ker rezultati seveda 824 00:37:21,580 --> 00:37:22,987 so številke. 825 00:37:22,987 --> 00:37:24,820 In jaz grem, da imajo 18 v oglatih oklepajih, 826 00:37:24,820 --> 00:37:29,900 ker to je, koliko učenci I želijo, da bi lahko za shranjevanje partiturami. 827 00:37:29,900 --> 00:37:32,206 >> In tako sem zapolnijo matrika je, da sem 828 00:37:32,206 --> 00:37:35,572 ga vodijo skozi zanko, od Seveda, z 0, da si moja 0. indeks. 829 00:37:35,572 --> 00:37:38,030 In nato z 18, da si moja ustavljanje izdaja, ker tam je 830 00:37:38,030 --> 00:37:39,690 18 elementov v matriki. 831 00:37:39,690 --> 00:37:44,620 In potem bom naredil printf, Enter Moštvo student-- bla glupostima. 832 00:37:44,620 --> 00:37:51,171 >> Mi lahko kdo pove, zakaj tukaj sem tiskanje i plus 1 in ne jaz? 833 00:37:51,171 --> 00:37:52,920 To je neke vrste trik Vprašanje, ni res. 834 00:37:52,920 --> 00:37:56,020 To pa dejansko ni fizično vplivajo na potek kode. 835 00:37:56,020 --> 00:37:56,520 Ja. 836 00:37:56,520 --> 00:37:57,909 >> OBČINSTVO: [neslišno] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI PENG: Ja, točno. 838 00:37:58,950 --> 00:38:02,620 To je malo nerodno reči, hej, ste 0. študent v tem razredu. 839 00:38:02,620 --> 00:38:03,780 To je malo čudno. 840 00:38:03,780 --> 00:38:08,340 Torej nas kot ljudi, ne zares všeč razmišljati o tem, kako računalniki mislijo. 841 00:38:08,340 --> 00:38:10,930 Torej, čeprav v računalnik, da je shranjevanje vrednosti 842 00:38:10,930 --> 00:38:13,310 v 0-th indeksa, ko smo ljudi, ne bomo res 843 00:38:13,310 --> 00:38:15,520 radi se nanašajo na sebe kot nič. 844 00:38:15,520 --> 00:38:18,119 Torej, ko sem samo tiskanje, da Jaz grem za tiskanje in dodajanje 845 00:38:18,119 --> 00:38:19,410 1 le zaradi jasnosti. 846 00:38:19,410 --> 00:38:22,447 Torej, ko sem natisniti, bom, da bo lahko natisnete učence od 1 do 18. 847 00:38:22,447 --> 00:38:24,530 To dejansko ne vpliva na uvajalnega kode 848 00:38:24,530 --> 00:38:27,110 kakorkoli, tako da natisniti. 849 00:38:27,110 --> 00:38:30,380 >> Toda bodite previdni, ko ste dejansko dostop do array. 850 00:38:30,380 --> 00:38:32,780 Ko boste videli rezultate i, opazili, tukaj sem dejansko 851 00:38:32,780 --> 00:38:38,200 dostop do 0th indeks in ni 1 plus 0-- ali 1 plus 1, 852 00:38:38,200 --> 00:38:45,530 tako da v tem primeru, indeks da je dejansko jasno. 853 00:38:45,530 --> 00:38:48,870 So vsi nekako OK na kako to teče skozi 854 00:38:48,870 --> 00:38:51,470 in z vsakim indeksom sem dajanje vrednost v matriki 855 00:38:51,470 --> 00:38:55,340 in ustvarjanje matriko z 18 številkami da uporabnik bo vhod? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 V REDU. 858 00:38:59,821 --> 00:39:00,321 Cool. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> V REDU. 861 00:39:07,400 --> 00:39:12,220 Zdaj se premaknete v nekaj, kar je precej pomembne za to delo določeno kot dobro. 862 00:39:12,220 --> 00:39:15,020 Vem, da v predavanju David-- Žal mi je, da si imel vprašanje? 863 00:39:15,020 --> 00:39:16,840 >> OBČINSTVO: Lahko jo povečate? 864 00:39:16,840 --> 00:39:18,080 >> ANDI PENG: Ja, tako sem se potrudil. 865 00:39:18,080 --> 00:39:18,788 Ampak jaz ne vem. 866 00:39:18,788 --> 00:39:21,437 Zaradi neznanega razloga, to različica PowerPoint 867 00:39:21,437 --> 00:39:23,270 res ne deluje tudi z zaslonom. 868 00:39:23,270 --> 00:39:25,260 Tako da smo šele tekoč da ostane, kot je ta. 869 00:39:25,260 --> 00:39:27,280 Vsi ti bodo naložili na spletu. 870 00:39:27,280 --> 00:39:28,218 Oprostite, fantje. 871 00:39:28,218 --> 00:39:30,090 Ja. 872 00:39:30,090 --> 00:39:30,980 V REDU. 873 00:39:30,980 --> 00:39:35,530 >> Tako bomo lahko imeli tudi strune. 874 00:39:35,530 --> 00:39:39,320 Torej, če vi dejansko notice-- I vem, Rob šli čez to v tem predavanju 875 00:39:39,320 --> 00:39:43,652 da je did-- niz je dejansko le niz znakov, 876 00:39:43,652 --> 00:39:44,860 če mislite o tem, kajne? 877 00:39:44,860 --> 00:39:47,500 Niz je ime ali stavek ali besedo, kajne? 878 00:39:47,500 --> 00:39:52,975 >> Če bi bil jaz ustvariti niz z imenom Andi-- samo moje ime, A-N-D-I. 879 00:39:52,975 --> 00:39:55,460 Misliš, da je tako samo eno spremenljivko. 880 00:39:55,460 --> 00:39:58,630 Ampak v resnici, je to razčlenjeno v samo niz znakov. 881 00:39:58,630 --> 00:40:01,910 Torej, to je dobil značaj shranjena v vrednosti matrike. 882 00:40:01,910 --> 00:40:05,420 To je dobil značaj n shranjeno v Drugi indeks in tako naprej in tako naprej. 883 00:40:05,420 --> 00:40:08,660 >> Torej na tak način, smo dejansko imajo te vrste 884 00:40:08,660 --> 00:40:10,970 strukture določene v postaviti za naše strune. 885 00:40:10,970 --> 00:40:14,660 Tako da tukaj, če bi bil jaz vhod Beseda "jesti" - tako niz beseda enaka 886 00:40:14,660 --> 00:40:15,540 dobili niz. 887 00:40:15,540 --> 00:40:19,260 Če bi bil jaz na vhodu beseda "jesti", da je fizično način, da je moj računalnik 888 00:40:19,260 --> 00:40:21,870 je hranjenje to niz v mojem spominu. 889 00:40:21,870 --> 00:40:27,140 >> In če sem hotel teči skozi to in tisk, ki out-- tako za v i 890 00:40:27,140 --> 00:40:30,890 enaka nič, se spomnite, v predavanju smo zajeti nekaj, kar se imenuje strlen, 891 00:40:30,890 --> 00:40:32,990 ali dolžina niza. 892 00:40:32,990 --> 00:40:36,520 Ker jaz ne dejansko vemo, kako veliko je polje je 893 00:40:36,520 --> 00:40:38,210 kakršnegakoli uporabnikovega inputting-- 894 00:40:38,210 --> 00:40:40,370 >> Na primer, sem inputted Beseda "jesti", in vem, 895 00:40:40,370 --> 00:40:41,870 ki je dolga tri znake, kajne? 896 00:40:41,870 --> 00:40:44,700 Tako sem lahko dal v treh tam in vse bo v redu. 897 00:40:44,700 --> 00:40:49,290 Ampak, če je vaš vhodni uporabnik nekaj da je drugačen število vrednosti, 898 00:40:49,290 --> 00:40:52,760 boš niso mogli zares vem, da ko programirate kodo. 899 00:40:52,760 --> 00:40:56,040 >> Torej tako, da ravnamo testnih primerov kot da je, da imamo nekaj 900 00:40:56,040 --> 00:41:00,070 imenovano strlen, ki je samo funkcija ki vam pove, kako dolgo je niz. 901 00:41:00,070 --> 00:41:02,080 Torej strlen za besedo. 902 00:41:02,080 --> 00:41:03,470 Moja beseda je jesti. 903 00:41:03,470 --> 00:41:05,990 n enak strlen za besedo. 904 00:41:05,990 --> 00:41:08,930 Mi lahko kdo pove, kaj da vrednost dejansko je tam? 905 00:41:08,930 --> 00:41:12,550 Kaj n predstavlja prav Zdaj, v tem primeru, če bi imel jesti? 906 00:41:12,550 --> 00:41:13,530 >> OBČINSTVO: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI PENG: 3, točno. 908 00:41:14,520 --> 00:41:18,820 Torej imamo za int i enaka nič, n enak 3, v bistvu. 909 00:41:18,820 --> 00:41:22,355 In jaz se dogaja, da teče dokler je manj kot 3i ++. 910 00:41:22,355 --> 00:41:24,980 In to se dogaja, da v bistvu gre skozi in narediti isto stvar. 911 00:41:24,980 --> 00:41:26,979 To se dogaja, da natisnete vsako vrednost in vam 912 00:41:26,979 --> 00:41:29,700 E-A-T. To je samo označuje drugačen način pisanja. 913 00:41:29,700 --> 00:41:31,170 To se dogaja, da bi bilo zelo koristno. 914 00:41:31,170 --> 00:41:31,670 Ja. 915 00:41:31,670 --> 00:41:35,174 OBČINSTVO: Kaj je prednosti dajanje n enak strlen besedo v notranjosti, ki 916 00:41:35,174 --> 00:41:36,894 za zanke [neslišno]? 917 00:41:36,894 --> 00:41:37,560 ANDI PENG: Ja. 918 00:41:37,560 --> 00:41:44,880 Torej, če bi bil jaz to-- reči, na primer, če bi bil jaz to storiti, in nato 919 00:41:44,880 --> 00:41:51,935 do-- oop--, da je v mojem kodo, da bi dejansko delal kot isto stvar. 920 00:41:51,935 --> 00:41:55,060 Vendar pa je način, da je David pojasnil se med predavanjem, če kdo od vas fantje 921 00:41:55,060 --> 00:41:57,854 zapomniti, da je, kot je ljudje, kot programerji, 922 00:41:57,854 --> 00:42:00,270 smo res poskušali programirati tudi mi koda, tako da ima naš računalnik 923 00:42:00,270 --> 00:42:04,070 da delujejo kot minimalno možnem času, da je naša koda zelo učinkovit. 924 00:42:04,070 --> 00:42:06,850 >> Torej, če sem imel, da je tam, kaj bi se zgodilo z mojim za zanko 925 00:42:06,850 --> 00:42:10,790 je, da sem najprej razglasi spremenljivka poimenovana i se bo 0. 926 00:42:10,790 --> 00:42:13,350 Jaz bom, da preverite, oh, kaj je strlen besede? 927 00:42:13,350 --> 00:42:15,000 Oh, strlen 3. 928 00:42:15,000 --> 00:42:16,191 Torej je i manj kot tri? 929 00:42:16,191 --> 00:42:16,690 Ja to je. 930 00:42:16,690 --> 00:42:17,870 Jaz grem teči. 931 00:42:17,870 --> 00:42:21,130 >> In potem drugič nazaj okoli zanka, bom prirastek i. 932 00:42:21,130 --> 00:42:22,550 i se bo enega. 933 00:42:22,550 --> 00:42:25,600 In jaz se dogaja, da preverite, oh, ampak kaj je strlen za besedo? 934 00:42:25,600 --> 00:42:26,839 Oh, to je tri. 935 00:42:26,839 --> 00:42:29,880 In ne da se zdi nekako potratno, vsakič, ko teče skozi zanko, 936 00:42:29,880 --> 00:42:33,340 da se preverjanje delovanja, čeprav so strlen z besedo 937 00:42:33,340 --> 00:42:35,490 nikoli dejansko spreminja? 938 00:42:35,490 --> 00:42:38,590 >> Torej, to je dodatna moč za računalnik. 939 00:42:38,590 --> 00:42:42,180 Ko začnete govoriti o stvareh, da so v milijardah in milijardah 940 00:42:42,180 --> 00:42:44,431 in milijarde krajev dolgo, zamisliti računalnik 941 00:42:44,431 --> 00:42:47,430 da bi fizično iti skozi in preverite vse te vsak čas. 942 00:42:47,430 --> 00:42:53,170 To je razlog, da bi samo zaradi učinkovitosti, 943 00:42:53,170 --> 00:42:57,620 smo vajeni, da samo to, ker na ta način, da smo samo 944 00:42:57,620 --> 00:42:59,850 kliče funkcijo enkrat na začetku, 945 00:42:59,850 --> 00:43:01,766 in da se vsakič, ko je gre skozi to se dogaja 946 00:43:01,766 --> 00:43:03,789 za shranjevanje vrednosti 3 tam, da ne boste 947 00:43:03,789 --> 00:43:05,330 morali nenehno preveri vsak čas. 948 00:43:05,330 --> 00:43:05,743 Ja. 949 00:43:05,743 --> 00:43:06,409 >> OBČINSTVO: Žal mi je. 950 00:43:06,409 --> 00:43:09,070 Samo [neslišno]. 951 00:43:09,070 --> 00:43:13,985 Bi vam int n enak strlen in dal da je nad zunanji strani za zanko 952 00:43:13,985 --> 00:43:15,364 kot tudi? 953 00:43:15,364 --> 00:43:16,030 ANDI PENG: Ja. 954 00:43:16,030 --> 00:43:17,100 Lahko bi to naredil, absolutno. 955 00:43:17,100 --> 00:43:19,970 Razlog jo imamo tukaj, je ker je način za zanke del 956 00:43:19,970 --> 00:43:23,500 je, da je to imenuje lokalna spremenljivka v smislu 957 00:43:23,500 --> 00:43:26,150 da vse, kar ste ustvarjanju notranjost za zanke 958 00:43:26,150 --> 00:43:27,890 obstaja samo notranjost za zanke. 959 00:43:27,890 --> 00:43:31,530 >> Torej je spremenljivka i samo obstaja v teh razredih. 960 00:43:31,530 --> 00:43:35,260 In tukaj so spremenljivke n tudi obstaja samo v teh razredih. 961 00:43:35,260 --> 00:43:39,350 Torej, če ste bili, da uporabite strlen od beseda večkrat spodaj navzdol, 962 00:43:39,350 --> 00:43:42,230 absolutno najboljši način za to, da bi bilo, da ga razglasi up vrh 963 00:43:42,230 --> 00:43:43,563 tako da ne boste imeli, da to storite enkrat. 964 00:43:43,563 --> 00:43:45,420 Ja. 965 00:43:45,420 --> 00:43:47,670 OBČINSTVO: Zakaj imate Nova linija po odstotka 966 00:43:47,670 --> 00:43:51,300 vidim, če želite, da bi vse črke zraven njega ločuje? 967 00:43:51,300 --> 00:43:54,140 >> ANDI PENG: Oh, sem si želel jih vse natisnili na vsako vrstico. 968 00:43:54,140 --> 00:43:54,890 Ni važno. 969 00:43:54,890 --> 00:43:55,890 Ja, to je oblikovanje. 970 00:43:55,890 --> 00:43:57,181 To je dobro vprašanje, čeprav. 971 00:43:57,181 --> 00:43:59,360 Ja, če sem hotel, da natisnete vse to na samo eni vrstici, 972 00:43:59,360 --> 00:44:02,731 Jaz ne bi imel pomišljaj v. 973 00:44:02,731 --> 00:44:03,230 V REDU. 974 00:44:03,230 --> 00:44:06,880 Vsakdo dobro? 975 00:44:06,880 --> 00:44:07,500 V REDU. 976 00:44:07,500 --> 00:44:08,000 Cool. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Zato mislim, da sem dovolj govorila. 979 00:44:14,750 --> 00:44:20,040 Vrsti vidva, da teče skozi kodo in mi povej, kaj je narobe tukaj. 980 00:44:20,040 --> 00:44:21,560 Kje je napaka? 981 00:44:21,560 --> 00:44:26,920 Torej, kot lahko vidite, sem razglašena za Nov niz tip niza z imenom razreda. 982 00:44:26,920 --> 00:44:30,220 In sem inputted Sam, Jess in Kim vanjo. 983 00:44:30,220 --> 00:44:33,400 In jaz sem poskušala, da natisnete vsi elementi matrike. 984 00:44:33,400 --> 00:44:36,796 Mi lahko kdo pove, zakaj to se dogaja, da mi težave? 985 00:44:36,796 --> 00:44:39,320 Dam ti fantje 10 sekund, da razmišljajo o tem. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> V REDU. 988 00:44:56,619 --> 00:44:57,118 Ja? 989 00:44:57,118 --> 00:45:01,972 >> OBČINSTVO: Je leva center enako 3 ali [neslišno]? 990 00:45:01,972 --> 00:45:02,680 ANDI PENG: Right. 991 00:45:02,680 --> 00:45:06,784 Torej, kolikokrat je to dejansko tekoč teči skozi to zanko? 992 00:45:06,784 --> 00:45:07,620 >> OBČINSTVO: Four. 993 00:45:07,620 --> 00:45:08,070 >> ANDI PENG: Točno tako. 994 00:45:08,070 --> 00:45:09,445 To se dogaja skozi štiri krat. 995 00:45:09,445 --> 00:45:12,250 To se dogaja, da teče skozi na 0, 1, 2 in 3, 996 00:45:12,250 --> 00:45:15,200 ker je njihov element je i je manjše ali enako 3. 997 00:45:15,200 --> 00:45:16,960 To se ne bo ustavil, ko je 2. 998 00:45:16,960 --> 00:45:18,800 To se dogaja, da bo, dokler ne zadene 3. 999 00:45:18,800 --> 00:45:21,720 In kot vemo, da je le tri elementi v naši dejanski matriki. 1000 00:45:21,720 --> 00:45:27,260 >> Če bomo poskušali dostopati do četrtega Element ali indeks 3, 1001 00:45:27,260 --> 00:45:30,357 boš nekje hit v pomnilniku, ki ne obstaja. 1002 00:45:30,357 --> 00:45:31,690 To se imenuje null terminator. 1003 00:45:31,690 --> 00:45:32,856 Nič se dogaja tam. 1004 00:45:32,856 --> 00:45:35,324 Računalnik se ne bo da je zelo zadovoljen z vami. 1005 00:45:35,324 --> 00:45:36,170 Ja. 1006 00:45:36,170 --> 00:45:38,430 Ima kdo vprašanja zakaj, da se je dogajalo? 1007 00:45:38,430 --> 00:45:39,679 Da je skupna površina izogniti. 1008 00:45:39,679 --> 00:45:40,712 Ja. 1009 00:45:40,712 --> 00:45:45,777 >> OBČINSTVO: Ali ni prva drsna imajo tudi niz 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: No. 1011 00:45:46,360 --> 00:45:49,610 Torej v bistvu, ko delaš matriko, 1012 00:45:49,610 --> 00:45:51,540 da nosilec desno tam, da number-- vse 1013 00:45:51,540 --> 00:45:53,480 to je povedal, si je, kako številni elementi imam. 1014 00:45:53,480 --> 00:45:55,840 To dejansko ne pove me indeksi karkoli. 1015 00:45:55,840 --> 00:45:58,760 Torej, v tem primeru, vem želim pisati s tremi mesti, 1016 00:45:58,760 --> 00:46:02,690 s tremi fizičnimi mest na držite karkoli hočem imeti. 1017 00:46:02,690 --> 00:46:04,510 Torej, to je, zakaj je številka tri je tam. 1018 00:46:04,510 --> 00:46:06,560 Vendar, če sem hotel da to dejansko dostop, 1019 00:46:06,560 --> 00:46:11,220 če sem hotel reči, printf Razred število nosilec, nato 1020 00:46:11,220 --> 00:46:14,560 boš dejansko dal fizični indeks tam. 1021 00:46:14,560 --> 00:46:16,330 Ja, dobro vprašanje. 1022 00:46:16,330 --> 00:46:20,065 >> OBČINSTVO: Torej je fizično Indeks naj bi [neslišno]? 1023 00:46:20,065 --> 00:46:20,940 ANDI PENG: Žal mi je. 1024 00:46:20,940 --> 00:46:21,500 Lahko govorite gor malo? 1025 00:46:21,500 --> 00:46:24,208 >> OBČINSTVO: Torej je fizični indeks [Neslišno] vsak izmed škatel? 1026 00:46:24,208 --> 00:46:25,260 [Neslišno]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI PENG: Ja. 1028 00:46:26,040 --> 00:46:28,970 Tako da sem šel nazaj tukaj. 1029 00:46:28,970 --> 00:46:31,120 Pomislite tukaj. 1030 00:46:31,120 --> 00:46:32,820 Imamo celo paleto velikosti 3. 1031 00:46:32,820 --> 00:46:35,540 Tam je tri mesta, kot so, fizične ograde tukaj. 1032 00:46:35,540 --> 00:46:37,620 Ampak oni so poimenovali 0, 1 in 2. 1033 00:46:37,620 --> 00:46:40,700 Torej, če sem hotel dostop do njih, tako, da sem do njih dostop 1034 00:46:40,700 --> 00:46:43,480 je printf od kar sem hotel tukaj. 1035 00:46:43,480 --> 00:46:45,485 Ti bi morali natisniti ven imenom nje, 1036 00:46:45,485 --> 00:46:47,610 ker potem računalniku ve, oh, moram pogledati 1037 00:46:47,610 --> 00:46:51,391 v tej matriki za 0th indeksa. 1038 00:46:51,391 --> 00:46:51,890 Ja. 1039 00:46:51,890 --> 00:46:53,306 Vendar je velikost tega ne spremeni. 1040 00:46:53,306 --> 00:46:55,492 Velikost je 3, ne glede kako jih označiti. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 V REDU. 1043 00:46:58,820 --> 00:47:01,387 Vsakdo dobro? 1044 00:47:01,387 --> 00:47:02,970 OBČINSTVO: Torej, vsakič, ko sem [neslišno]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI PENG: OK. 1047 00:47:06,940 --> 00:47:13,270 Torej, v tem primeru ne bomo res priti v to zdaj v teku. 1048 00:47:13,270 --> 00:47:16,760 Ampak vem, da string-- kot I dejal, niz je v bistvu 1049 00:47:16,760 --> 00:47:18,440 niz znakov. 1050 00:47:18,440 --> 00:47:21,430 Torej, če sem ustvariti niz nizov, sem nekako 1051 00:47:21,430 --> 00:47:24,430 imajo vrsto matrike znakov, kajne? 1052 00:47:24,430 --> 00:47:27,720 >> Torej, v tem primeru, saj sem imajo vrsto nizov, 1053 00:47:27,720 --> 00:47:31,340 če ste bili na vhodu res dolgo besedo, da še vedno zavzema le en prostor, 1054 00:47:31,340 --> 00:47:33,230 ker to je en niz. 1055 00:47:33,230 --> 00:47:37,492 Ampak, če ste bili, da razmišljajo o znaki te matrike, 1056 00:47:37,492 --> 00:47:40,450 nato pa, da je ob nastopu veliko več znakov kot katerokoli drugo besedami 1057 00:47:40,450 --> 00:47:41,372 so. 1058 00:47:41,372 --> 00:47:42,830 Ni res pomembno za zdaj. 1059 00:47:42,830 --> 00:47:44,921 Ampak to je samo splošno kako se to dela. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> V REDU. 1062 00:47:50,560 --> 00:47:55,840 Torej je to nekaj, kar bom pustil vam Veliko tekom semestra. 1063 00:47:55,840 --> 00:47:57,500 Moram počivati ​​moj glas. 1064 00:47:57,500 --> 00:47:59,530 Vi morate sami spodbujajo. 1065 00:47:59,530 --> 00:48:02,300 Veliko vas verjetno morali spati zdaj. 1066 00:48:02,300 --> 00:48:05,960 Jaz sem vnesla naključne težave kjer smo kot razred ali pa 1067 00:48:05,960 --> 00:48:09,480 s partnerjem, zraven tebe bodo preživeti nekaj minut razpravljanje 1068 00:48:09,480 --> 00:48:14,980 o tem, kako bi se gremo o reševanju ali oblikovanje programa, kot je ta. 1069 00:48:14,980 --> 00:48:17,100 >> Torej sedaj, želimo ustvariti program-- 1070 00:48:17,100 --> 00:48:19,560 bomo, da ga pokličete upper.c--, ki pretvarja 1071 00:48:19,560 --> 00:48:24,787 z malo začetnico besedo zgornji razred string-- velikimi, žal. 1072 00:48:24,787 --> 00:48:26,370 Beseda v kito, žal, je sinonim. 1073 00:48:26,370 --> 00:48:28,370 Grem, da jih spremenite pomeni isto stvar. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Ja. 1076 00:48:33,499 --> 00:48:34,540 Vzemite nekaj minut. 1077 00:48:34,540 --> 00:48:37,130 To ni nujno, da je napisana v katerem koli jeziku. 1078 00:48:37,130 --> 00:48:39,890 Samo v psevdokoda kode ali logično, kako bi še 1079 00:48:39,890 --> 00:48:42,083 lotil tak problem. 1080 00:48:42,083 --> 00:48:42,583 Ja. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE POGOVOR] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Prav tako sem opazila, da vidva can-- Nekako vidim že program. 1085 00:49:22,130 --> 00:49:24,600 Mislim, da moje pomanjkanje Način voditelj je problem. 1086 00:49:24,600 --> 00:49:27,410 Ampak to je v redu. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE POGOVOR] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Ja, prosim, fantje. 1090 00:50:04,380 --> 00:50:05,400 Pridi sladkarije. 1091 00:50:05,400 --> 00:50:06,372 Pridi sladkarije. 1092 00:50:06,372 --> 00:50:07,698 >> OBČINSTVO: Ja! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE POGOVOR] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI PENG: Prav, ja, Bom začel metati sladkarije 1096 00:50:18,100 --> 00:50:20,280 na ljudi, ki ne odgovarja na vprašanja. 1097 00:50:20,280 --> 00:50:22,260 Tako da bi morali biti vsi odgovori na vprašanja. 1098 00:50:22,260 --> 00:50:24,895 Ali mislim ljudi, ki ne odgovarja na vprašanja. 1099 00:50:24,895 --> 00:50:26,070 Ja, ravno obratno. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE POGOVOR] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 OBČINSTVO: [neslišno] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI PENG: Ja. 1105 00:51:18,340 --> 00:51:19,340 Ja. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE POGOVOR] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Vse je v redu, fantje. 1109 00:51:41,590 --> 00:51:44,731 Vzemite, kot so, še 10 sekund. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE POGOVOR] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> OK, fantje. 1113 00:52:11,750 --> 00:52:14,920 Torej, preden začnemo poskušamo dejansko fizično napisati kodo, 1114 00:52:14,920 --> 00:52:20,650 dobra navada razviti, da želimo prvi vrsti zaradi 1115 00:52:20,650 --> 00:52:22,737 ven logično, kako bi to naredil. 1116 00:52:22,737 --> 00:52:24,570 Hočeš, da poskrbite, Pred vami fizično 1117 00:52:24,570 --> 00:52:27,210 začetek poskuša kodo v Mario, da vam bo 1118 00:52:27,210 --> 00:52:28,870 prepričajte, da imate psevdokoda. 1119 00:52:28,870 --> 00:52:31,235 Da vas vodi skozi kaj morate tako ustvariti 1120 00:52:31,235 --> 00:52:33,360 da, ko te fizično napisati svoj program kasneje, 1121 00:52:33,360 --> 00:52:36,640 ste bolje ujeti napake v kodi in stvari, kot je ta. 1122 00:52:36,640 --> 00:52:40,460 >> Torej bomo šele začetek by-- v angleškem jeziku, v psevdokoda, 1123 00:52:40,460 --> 00:52:43,320 does kdorkoli želite, da bi me generično razlaga 1124 00:52:43,320 --> 00:52:46,250 o tem, kako bi šel o tem? 1125 00:52:46,250 --> 00:52:48,102 Ja. 1126 00:52:48,102 --> 00:52:49,664 >> OBČINSTVO: [neslišno]. 1127 00:52:49,664 --> 00:52:50,830 ANDI PENG: Seveda, brez skrbi. 1128 00:52:50,830 --> 00:52:57,233 OBČINSTVO: Lahko ga vprašam ali vprašajte nekdo, da bi dobili niz 1-- Ja, niz, 1129 00:52:57,233 --> 00:52:58,160 in potem-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI PENG: Ja, tako je to dober začetek. 1131 00:52:59,826 --> 00:53:01,972 Bom začel tipkati, žal, kot govorite. 1132 00:53:01,972 --> 00:53:02,471 SO- 1133 00:53:02,471 --> 00:53:05,698 >> OBČINSTVO: --the male Številke so višje, kajne? 1134 00:53:05,698 --> 00:53:08,519 Ali male črke imajo visoke številke? 1135 00:53:08,519 --> 00:53:09,310 ANDI PENG: Točno tako. 1136 00:53:09,310 --> 00:53:16,156 OBČINSTVO: Torej odštejemo 32 iz katerega koli [neslišno]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI PENG: Great. 1139 00:53:29,870 --> 00:53:35,020 Tako smo nekako imajo splošen občutek kako delati o tem problemu. 1140 00:53:35,020 --> 00:53:40,060 Vedoč, da smo nekako naučili fizični način, godala 1141 00:53:40,060 --> 00:53:43,320 so shranjene v pomnilniku, kaj si naredil že 1142 00:53:43,320 --> 00:53:45,920 vem, da boš verjetno morali napisati v kodi 1143 00:53:45,920 --> 00:53:48,288 z namenom, da se premaknete skozi niz? 1144 00:53:48,288 --> 00:53:49,259 >> OBČINSTVO: Za zanke. 1145 00:53:49,259 --> 00:53:50,550 ANDI PENG: A za zanke, točno. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Great. 1148 00:53:57,220 --> 00:54:00,539 Tako smo nekako imeli generično psevdokoda odpiše 1149 00:54:00,539 --> 00:54:02,330 da je vrsta daje vas opozarja na to, kako 1150 00:54:02,330 --> 00:54:03,900 bi se gibati reševanju problema. 1151 00:54:03,900 --> 00:54:06,150 Zdaj pa, da imate to, vas lahko reference za kasneje 1152 00:54:06,150 --> 00:54:08,233 ko skušate dejansko napisati svojo kodo. 1153 00:54:08,233 --> 00:54:10,240 Tako bomo lahko dejansko šel tukaj. 1154 00:54:10,240 --> 00:54:25,130 In imam funkcijo imenovano upper.c-- tam je is-- pravičnega prazno predlogo 1155 00:54:25,130 --> 00:54:28,510 zdaj, da vaju bodo mi pomaga ugotoviti, kako napisati 1156 00:54:28,510 --> 00:54:30,430 Ta linija ne code-- kode. 1157 00:54:30,430 --> 00:54:32,890 To bo več vrstic kode. 1158 00:54:32,890 --> 00:54:35,710 >> Ob zagonu kakršno koli slepe pset, kaj je 1159 00:54:35,710 --> 00:54:37,418 prva stvar, rabim da se spomnimo, da naredim? 1160 00:54:37,418 --> 00:54:39,290 >> OBČINSTVO: [neslišno]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI PENG: Velika Jap. 1162 00:54:41,000 --> 00:54:41,500 Vključi. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Pogosto je to ena izmed Najbolj enostavno napake ljudi 1166 00:54:49,640 --> 00:54:51,598 bo, ko si pisanje, je, da se bom 1167 00:54:51,598 --> 00:54:54,180 pozabiti, da vključuje Pomembno knjižnica, ki jih potrebujejo. 1168 00:54:54,180 --> 00:54:57,689 Torej, če je delovni čas in ste kot, Ne vem, zakaj je moja koda ne deluje. 1169 00:54:57,689 --> 00:54:59,230 Mi lahko poveste, zakaj to ne deluje? 1170 00:54:59,230 --> 00:55:00,730 Bomo rekli ste #include? 1171 00:55:00,730 --> 00:55:02,520 Moral bi jo #include. 1172 00:55:02,520 --> 00:55:03,270 V REDU. 1173 00:55:03,270 --> 00:55:07,230 >> Torej imamo standard I / O tukaj. 1174 00:55:07,230 --> 00:55:10,740 Je to edina knjižnica bomo potrebovali tukaj? 1175 00:55:10,740 --> 00:55:12,681 Kaj drugega se bomo storili? 1176 00:55:12,681 --> 00:55:13,180 Žal mi je. 1177 00:55:13,180 --> 00:55:14,562 Nekdo ga je pravkar kričati ven? 1178 00:55:14,562 --> 00:55:15,666 >> OBČINSTVO: [neslišno]. 1179 00:55:15,666 --> 00:55:16,666 ANDI PENG: Tukaj imaš. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 V REDU. 1182 00:55:21,440 --> 00:55:26,070 In kako naj grem o zagonu kakršno koli funkcije, kakršno koli glavni funkciji 1183 00:55:26,070 --> 00:55:28,760 v okviru našega programa? 1184 00:55:28,760 --> 00:55:30,020 Int glavni. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 V REDU. 1187 00:55:35,030 --> 00:55:35,970 Kaj sem dal notri tukaj? 1188 00:55:35,970 --> 00:55:37,640 Kaj je prva stvar, ki jo želite storiti? 1189 00:55:37,640 --> 00:55:39,910 Če želimo, da bi dobili Niz od uporabnika, 1190 00:55:39,910 --> 00:55:43,870 kaj bomo imeli storiti na tej prvi vrstici? 1191 00:55:43,870 --> 00:55:46,120 Žal mi je, vidva samo občutek prosimo, da spregovorijo in glasno. 1192 00:55:46,120 --> 00:55:47,123 Samo zakričal karkoli. 1193 00:55:47,123 --> 00:55:48,772 >> OBČINSTVO: Vprašajte uporabnika? 1194 00:55:48,772 --> 00:55:49,980 ANDI PENG: Kako to storimo? 1195 00:55:49,980 --> 00:55:51,873 Ask-- bom tip "od uporabnika"? 1196 00:55:51,873 --> 00:55:52,600 >> OBČINSTVO: printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI PENG: OK. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Kaj hočem printf? 1200 00:55:57,372 --> 00:55:58,776 >> OBČINSTVO: Vnesite nekaj. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI PENG: Kot da? 1203 00:56:03,840 --> 00:56:05,430 Fantje, se pretvarjamo, kot da sem računalnik. 1204 00:56:05,430 --> 00:56:08,475 Fizično povej mi vsak korak da moram vnesti tukaj? 1205 00:56:08,475 --> 00:56:09,600 Delam kaj narobe? 1206 00:56:09,600 --> 00:56:10,743 Moral bi vnesli nekaj? 1207 00:56:10,743 --> 00:56:11,690 >> OBČINSTVO: Moraš narekovaje. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI PENG: Rabim ponudbe? 1209 00:56:12,380 --> 00:56:12,880 V REDU. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 V REDU. 1212 00:56:16,297 --> 00:56:17,698 >> OBČINSTVO: In potem nova linija. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Podpičje. 1215 00:56:22,465 --> 00:56:23,340 ANDI PENG: podpičje? 1216 00:56:23,340 --> 00:56:24,060 V REDU. 1217 00:56:24,060 --> 00:56:24,560 Dobro. 1218 00:56:24,560 --> 00:56:27,060 >> OBČINSTVO: In morda določite ki si ga želite v male črke? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI PENG: Great. 1221 00:56:31,415 --> 00:56:33,540 Vidva smejali me pozabijo postaviti podpičje. 1222 00:56:33,540 --> 00:56:36,350 Zagotavljam ti nekje v okviru tega razreda 1223 00:56:36,350 --> 00:56:38,260 boste pozabili, da dajo podpičje, in 1224 00:56:38,260 --> 00:56:41,116 Vam bo tri ure, da ugotovimo zakaj tvoja koda ne deluje. 1225 00:56:41,116 --> 00:56:42,240 To se je zgodilo, da vse nas. 1226 00:56:42,240 --> 00:56:43,950 To se bo verjetno zgodilo s tabo. 1227 00:56:43,950 --> 00:56:46,352 Priti v dobro navado uporabe podpičji. 1228 00:56:46,352 --> 00:56:46,852 V REDU. 1229 00:56:46,852 --> 00:56:49,010 >> OBČINSTVO: Želite narediti nasprotno poševnico? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI PENG: Seveda. 1231 00:56:50,398 --> 00:56:51,856 Ali želite narediti poševnico? 1232 00:56:51,856 --> 00:56:53,020 >> OBČINSTVO: Ja. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI PENG: Great. 1234 00:56:54,330 --> 00:56:54,830 V REDU. 1235 00:56:54,830 --> 00:56:57,872 Kaj naj storim zdaj? 1236 00:56:57,872 --> 00:56:58,964 >> OBČINSTVO: Get niz. 1237 00:56:58,964 --> 00:56:59,880 ANDI PENG: Get niz. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Torej, kaj sem tip? 1240 00:57:03,830 --> 00:57:04,233 Nekdo? 1241 00:57:04,233 --> 00:57:05,040 >> OBČINSTVO: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI PENG: String s. 1243 00:57:05,873 --> 00:57:07,251 OBČINSTVO: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI PENG: Nekdo, si mi, kje lahko povem 1245 00:57:09,000 --> 00:57:12,000 ta funkcija GetString prihaja iz? 1246 00:57:12,000 --> 00:57:13,660 >> OBČINSTVO: string.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI PENG: string.h? 1248 00:57:15,256 --> 00:57:16,715 Misliš, da je iz string.h? 1249 00:57:16,715 --> 00:57:17,830 >> OBČINSTVO: [neslišno]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI PENG: Tukaj imaš. 1251 00:57:18,830 --> 00:57:21,280 To je od CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Če ste vedno zmedeni o kjer Knjižnica je datoteka ali datoteka glave je, 1253 00:57:24,530 --> 00:57:28,450 google dobesedno string.h, in jaz ti bom povedal 1254 00:57:28,450 --> 00:57:30,450 kaj so vse funkcije da so v string.h. 1255 00:57:30,450 --> 00:57:31,340 V REDU. 1256 00:57:31,340 --> 00:57:35,210 >> Torej sedaj, da sem ustvaril niz in sem poziv uporabniku za to, 1257 00:57:35,210 --> 00:57:38,770 Sem ga shrani v spremenljivko poimenovani s, kaj moram storiti zdaj? 1258 00:57:38,770 --> 00:57:40,652 >> OBČINSTVO: Preverite, če je z malimi črkami. 1259 00:57:40,652 --> 00:57:41,360 ANDI PENG: Oprostite? 1260 00:57:41,360 --> 00:57:42,545 OBČINSTVO: Preverite, če je z malimi črkami. 1261 00:57:42,545 --> 00:57:44,045 ANDI PENG: V redu, kaj je to. 1262 00:57:44,045 --> 00:57:45,857 Kako naj naredim to? 1263 00:57:45,857 --> 00:57:47,940 Pravzaprav, za namene razreda prav zdaj, 1264 00:57:47,940 --> 00:57:50,330 smo le, da bo Predvidevam, da je vse, kar je 1265 00:57:50,330 --> 00:57:52,620 da vhod smo se že z malimi črkami. 1266 00:57:52,620 --> 00:57:55,430 Če boste želeli, da preverite, bi si dodajte pogojno izjavo 1267 00:57:55,430 --> 00:57:59,640 da preveri, da je preko vsak niz element 1268 00:57:59,640 --> 00:58:02,540 in preveri, če je med določenimi vrednostmi. 1269 00:58:02,540 --> 00:58:05,627 Sem pozabil, kaj se je število od vrednosti male črke so. 1270 00:58:05,627 --> 00:58:07,210 Lahko ga lahko ogledate na mizo ASCII. 1271 00:58:07,210 --> 00:58:08,800 Ampak ja, to je res dobra točka. 1272 00:58:08,800 --> 00:58:11,758 Ampak zdaj, smo le, da bo Predvidevam, da so vse strune vnesemo 1273 00:58:11,758 --> 00:58:13,130 so z malimi črkami. 1274 00:58:13,130 --> 00:58:13,870 V REDU. 1275 00:58:13,870 --> 00:58:18,069 >> Torej, kako bi jaz šel okoli ta problem zdaj? 1276 00:58:18,069 --> 00:58:18,860 OBČINSTVO: Za zanke. 1277 00:58:18,860 --> 00:58:19,340 ANDI PENG: Za zanke? 1278 00:58:19,340 --> 00:58:19,839 V REDU. 1279 00:58:19,839 --> 00:58:20,847 Povej mi, kaj naj tip. 1280 00:58:20,847 --> 00:58:25,230 >> OBČINSTVO: Za int i enak 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI PENG: OK. 1282 00:58:27,230 --> 00:58:36,350 >> OBČINSTVO: Oh, pravzaprav, potem vam storiti vejico in narediti n je enaka strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI PENG: Tako pomembna stvar da mislim, da ona tu opazila 1284 00:58:38,940 --> 00:58:42,936 je, da nismo imeli za povedati int n drugi, ko smo to naredili. 1285 00:58:42,936 --> 00:58:45,060 Samo vedeti, da je z za zanka, ko ste o razglasitvi, 1286 00:58:45,060 --> 00:58:47,934 vi dejansko ne potrebujete int o drugič vam spremenljivko. 1287 00:58:47,934 --> 00:58:51,202 Lahko rečem n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> OBČINSTVO: S. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI PENG: s. 1290 00:58:53,510 --> 00:58:54,706 V REDU. 1291 00:58:54,706 --> 00:58:58,370 >> OBČINSTVO: Potem podpičje. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI PENG: Seveda. 1293 00:59:00,130 --> 00:59:04,050 >> OBČINSTVO: In potem [neslišno] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Potem i ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI PENG: Great. 1297 00:59:11,780 --> 00:59:12,280 V redu. 1298 00:59:12,280 --> 00:59:14,690 Kaj želimo v notranjosti od tega za zanke zdaj? 1299 00:59:14,690 --> 00:59:17,820 Ne pozabite, če bomo teči skozi niz in teči skozi niz, 1300 00:59:17,820 --> 00:59:19,287 želimo preveriti stvari v njem. 1301 00:59:19,287 --> 00:59:20,370 Kaj bomo potrebovali? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 To je nekako zapleteno dela zdaj. 1304 00:59:26,900 --> 00:59:27,960 Vsakdo ima ugibati? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> V REDU. 1307 00:59:34,690 --> 00:59:37,830 Torej, najprej, kako bomo celo dostop? 1308 00:59:37,830 --> 00:59:41,610 Kako bomo še najprej preverite, ali dostop element v matriki? 1309 00:59:41,610 --> 00:59:42,920 Kako to storimo? 1310 00:59:42,920 --> 00:59:47,120 Kaj je zapis, ki jih uporabljamo za to? 1311 00:59:47,120 --> 00:59:50,920 Kaj je ime te matrike se imenuje? 1312 00:59:50,920 --> 00:59:52,400 Imenuje se je, kajne? 1313 00:59:52,400 --> 00:59:54,850 >> Ne pozabite, vsak niz je vedno array. 1314 00:59:54,850 --> 00:59:58,210 Torej je nosilec i, kajne? 1315 00:59:58,210 --> 01:00:01,360 Ker je trenutna vrednost ali vrednost indeksa smo preverjanje. 1316 01:00:01,360 --> 01:00:05,156 In bomo nastaviti, da enako to-- želimo male vrednosti, kajne? 1317 01:00:05,156 --> 01:00:07,530 Želimo, da bi se to spremenilo lower-- Žal, želimo z velikimi tiskanimi črkami. 1318 01:00:07,530 --> 01:00:10,014 Želimo, da vklopite male vrednost v z velikimi črkami. 1319 01:00:10,014 --> 01:00:11,805 In tako like-- Oprosti, kako ti je ime? 1320 01:00:11,805 --> 01:00:12,580 >> OBČINSTVO: Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI PENG: Oprostite? 1322 01:00:12,940 --> 01:00:13,280 >> OBČINSTVO: Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI PENG: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Kot je rekel Heidi na začetku, smo verjetno 1325 01:00:15,850 --> 01:00:20,330 bodo potrebovali the-- smo Verjetno bodo morali odšteti 1326 01:00:20,330 --> 01:00:22,630 32 iz katerega koli charc, ki je, kajne? 1327 01:00:22,630 --> 01:00:24,680 Ker na ASCII miza, razlika 1328 01:00:24,680 --> 01:00:27,790 med malo črko in velike črke je 32. 1329 01:00:27,790 --> 01:00:31,290 Torej, ko to počnemo, smo verjetno tekoč, da želijo, da odštejemo 32, kajne? 1330 01:00:31,290 --> 01:00:33,910 >> Torej bomo storili S i. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Ali vsi razumejo, zakaj sem to storil? 1333 01:00:41,200 --> 01:00:45,760 Ker je prav zdaj, v naši matriki, smo preverjanje 0th indeks, kajne? 1334 01:00:45,760 --> 01:00:49,190 In v 0th indeksa niz, to je prvi znak. 1335 01:00:49,190 --> 01:00:51,820 In ta znak gremo domnevati, da je z malimi tiskanimi črkami. 1336 01:00:51,820 --> 01:00:55,980 Če želimo, da bi bilo z velikimi črkami, smo morali odšteti 32 od njene vrednosti, 1337 01:00:55,980 --> 01:00:58,620 ker v našem ASCII miza, to je, kako smo ga dobili 1338 01:00:58,620 --> 01:01:01,600 do naslednjega ustreza vrednost, ki omogoča velike črke. 1339 01:01:01,600 --> 01:01:03,714 Ali vsi razumejo, da je? 1340 01:01:03,714 --> 01:01:04,213 Ja. 1341 01:01:04,213 --> 01:01:06,530 >> OBČINSTVO: Bi tudi vi vse male črke v minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI PENG: Ja, tako da je dejansko res dobro. 1343 01:01:08,080 --> 01:01:10,455 Jaz bom prišel nazaj, da Vprašanje, ko smo to naredili. 1344 01:01:10,455 --> 01:01:11,060 Ja. 1345 01:01:11,060 --> 01:01:13,940 In potem, če želim glej, kaj se dogaja, 1346 01:01:13,940 --> 01:01:16,180 Jaz sem verjetno bo želite natisniti, kajne? 1347 01:01:16,180 --> 01:01:19,930 Nekdo mi je povedal, kaj Rad bi tu natisniti. 1348 01:01:19,930 --> 01:01:29,160 >> OBČINSTVO: printf odstotkov c poševnica nazaj [neslišno]. 1349 01:01:29,160 --> 01:01:33,570 To je vrednost [neslišno] ov i. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI PENG: s i, žal? 1351 01:01:34,614 --> 01:01:35,530 OBČINSTVO: [neslišno]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI PENG: Ne vem. 1354 01:01:39,550 --> 01:01:40,600 Kaj misliš? 1355 01:01:40,600 --> 01:01:44,016 >> OBČINSTVO: No, jaz wouldn't-- Mislim, da ne bi bring-- 1356 01:01:44,016 --> 01:01:46,944 Jaz bi ga vzemite ven v notranjosti, saj [neslišno]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI PENG: Oh, kako bi to storili? 1359 01:01:51,392 --> 01:01:53,867 OBČINSTVO: Ja. 1360 01:01:53,867 --> 01:01:56,700 ANDI PENG: Pustimo to pot je, in bom razložiti, zakaj kasneje. 1361 01:01:56,700 --> 01:01:58,533 Ne pozabite, tudi če ste imajo držalo mesto, 1362 01:01:58,533 --> 01:02:00,701 želite postaviti oklepaje okoli njega. 1363 01:02:00,701 --> 01:02:01,200 V redu. 1364 01:02:01,200 --> 01:02:04,810 Zato bi to moralo biti trdno funkcijo tukaj. 1365 01:02:04,810 --> 01:02:06,370 Naj jo vodijo, in videli, če se pripravlja. 1366 01:02:06,370 --> 01:02:08,750 Naredite zgornji del. 1367 01:02:08,750 --> 01:02:09,250 Uh-oh. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 Da ne izgleda preveč dobro. 1370 01:02:13,340 --> 01:02:14,507 Zakaj se to dogaja? 1371 01:02:14,507 --> 01:02:17,340 Kot pri vseh drugih napak, ki jih želite iti nazaj in začeti s prvo, 1372 01:02:17,340 --> 01:02:20,630 ker tipično ena napakah vzrokov veliko drugih napak po njej. 1373 01:02:20,630 --> 01:02:26,700 Tu vidimo upper.c: 18: 25, ki pove, me v tem programu z imenom upper.c, 1374 01:02:26,700 --> 01:02:33,800 na liniji 18, napaka implicitno razglasi knjižnica funkcij strlen s tipom 1375 01:02:33,800 --> 01:02:36,330 unassigned-- bla, ne vem kaj se dogaja po tem. 1376 01:02:36,330 --> 01:02:39,990 >> Vse to me zdaj povedal, je da se nekaj dogaja na strlen. 1377 01:02:39,990 --> 01:02:43,520 In računalnik je zmeden, ker to je kot, ne vem, kaj strlen je? 1378 01:02:43,520 --> 01:02:45,520 Kaj počne, da je verjetno vam povem vam manjka? 1379 01:02:45,520 --> 01:02:46,490 >> OBČINSTVO: Ti manjka [neslišno]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI PENG: Imaš prav. 1381 01:02:47,630 --> 01:02:49,510 Točno tako. 1382 01:02:49,510 --> 01:02:52,140 Torej, to je, če je to pomembno, da se prepričajte, 1383 01:02:52,140 --> 01:02:56,970 da vsako funkcijo lahko uporabite v vašem kodo s pravilno glavo 1384 01:02:56,970 --> 01:02:59,660 datoteke za knjižnico, ali pa boste dobili veliko napak 1385 01:02:59,660 --> 01:03:01,150 in tvoja koda ne bo vedeti, kaj se dogaja. 1386 01:03:01,150 --> 01:03:03,050 Torej bomo vključiti string.h tukaj. 1387 01:03:03,050 --> 01:03:06,270 >> Zdaj, ko smo poskušali zbrati zgornji del. 1388 01:03:06,270 --> 01:03:08,410 Prevedite pravilno. 1389 01:03:08,410 --> 01:03:09,960 Oglejmo zaženete ta program. 1390 01:03:09,960 --> 01:03:12,000 Torej, kaj vpisali v male. 1391 01:03:12,000 --> 01:03:14,920 Kaj si fantje želijo, da tip? 1392 01:03:14,920 --> 01:03:16,546 Kričati ven nekaj. 1393 01:03:16,546 --> 01:03:17,920 Vredu, Charly samo hodil. 1394 01:03:17,920 --> 01:03:18,990 Bomo vnesite ime Charly je. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly z malimi črkami. 1397 01:03:22,840 --> 01:03:27,742 In upajmo, upajmo, da je to dogaja kričati ven in izpljuni 1398 01:03:27,742 --> 01:03:28,575 Charly z velikimi črkami. 1399 01:03:28,575 --> 01:03:30,830 Jej! 1400 01:03:30,830 --> 01:03:33,430 se vsi razumeli, kako Šel sem o reševanju tega? 1401 01:03:33,430 --> 01:03:36,190 Tako, da sem lahko manipulirati z uporabo celih števil 1402 01:03:36,190 --> 01:03:39,410 rešiti nekaj, kar Hočem narediti v kito, 1403 01:03:39,410 --> 01:03:44,390 zaradi znakov in cela lahko se sklicujemo na enak način, saj 1404 01:03:44,390 --> 01:03:45,540 kartiranje ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> Torej, da se vrnete na vašo točko, če sem želel dati tu namesto 32 1406 01:03:52,890 --> 01:03:58,959 velikimi minus male pravična kot da, da bi delovala enako dobro, 1407 01:03:58,959 --> 01:04:01,750 ker je to preprosto samo Razlika med tema dvema vrednostma. 1408 01:04:01,750 --> 01:04:09,570 Če želim, da bi ta again-- Charly. 1409 01:04:09,570 --> 01:04:10,320 O, ne. 1410 01:04:10,320 --> 01:04:11,820 Mislim, da smo šli v napačno smer, ja? 1411 01:04:11,820 --> 01:04:13,260 >> OBČINSTVO: [neslišno] male črke a. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI PENG: Tukaj imaš. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Ja. 1415 01:04:22,880 --> 01:04:24,920 In ven pljuva Charly. 1416 01:04:24,920 --> 01:04:28,020 Zato bodite previdni, ko ste odštevanjem vrednosti 1417 01:04:28,020 --> 01:04:30,400 se spomnite, ki je eden večja od druge. 1418 01:04:30,400 --> 01:04:35,220 Na primer, tu sem pozabil da male a pomeni dejansko 1419 01:04:35,220 --> 01:04:38,540 večji kot z velikimi črkami A. Torej, ko sem Poskušal jim odštejemo drugo smer 1420 01:04:38,540 --> 01:04:40,600 okoli, sem dobil negativen 32. 1421 01:04:40,600 --> 01:04:42,800 In moj računalnik je bil všeč, Ne vem, kaj je to. 1422 01:04:42,800 --> 01:04:45,810 To je verjetnost, da samo nekaj naključno vrednost, ki ni zelo dobra. 1423 01:04:45,810 --> 01:04:48,760 In tako se prepričajte, da ste odštevanjem na pravilno dolžino 1424 01:04:48,760 --> 01:04:52,831 najti znak, ki ga želite. 1425 01:04:52,831 --> 01:04:53,330 V REDU. 1426 01:04:53,330 --> 01:04:58,550 Je kdo zmedeni o tem, kako šli o pisanju to funkcijo? 1427 01:04:58,550 --> 01:04:59,180 V REDU. 1428 01:04:59,180 --> 01:05:04,830 Torej pravzaprav funkcija že obstaja v knjižnici imenuje ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Knjižnici se imenuje ctype.h. 1430 01:05:06,417 --> 01:05:08,500 Ta funkcija je dejansko že napisal za vas. 1431 01:05:08,500 --> 01:05:10,820 To je poklican, da zgornji del. 1432 01:05:10,820 --> 01:05:13,027 >> In tako za namene to pset, boš 1433 01:05:13,027 --> 01:05:15,860 da bi našli, da si res želite uporabiti Veliko funkcij je vseboval 1434 01:05:15,860 --> 01:05:17,390 v knjižnici ctype. 1435 01:05:17,390 --> 01:05:21,040 Da zgornji, znižati, je zgornji del, je lower-- to so vse funkcije 1436 01:05:21,040 --> 01:05:24,914 da si bodo lahko zelo uporabo, zelo hitro v svojem kodeksu, ki 1437 01:05:24,914 --> 01:05:26,080 počne točno to, kar ta počne. 1438 01:05:26,080 --> 01:05:28,941 Pisali smo, kako spremeniti niz v velike črke. 1439 01:05:28,941 --> 01:05:31,440 Toda to je dejansko kodo da je nekdo drug napisal 1440 01:05:31,440 --> 01:05:33,800 in da lahko dostopate do preko različno funkcijo. 1441 01:05:33,800 --> 01:05:34,300 Ja? 1442 01:05:34,300 --> 01:05:39,570 >> OBČINSTVO: Torej si samo kopirajte je tam in to za vsako posamezno črko? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI PENG: Ja, saj jaz ne mar vrednosti a. 1444 01:05:42,070 --> 01:05:44,540 Pravkar sem vseeno, da je razlika med njimi je 32, kajne? 1445 01:05:44,540 --> 01:05:48,210 Razlika med malimi črkami b in velikimi B je prav tako 32. 1446 01:05:48,210 --> 01:05:50,860 In razlika med c in velikimi C je vedno 32. 1447 01:05:50,860 --> 01:05:53,235 >> Pravkar sem moral skrbeti približno Razlika med njima, 1448 01:05:53,235 --> 01:05:56,666 ker so vse črk sledijo istemu vzorcu, kajne? 1449 01:05:56,666 --> 01:05:58,540 Če imam razliko eno izmed njih, 1450 01:05:58,540 --> 01:06:01,050 Vem, kaj je razlika med vsemi njimi. 1451 01:06:01,050 --> 01:06:01,740 Dobro vprašanje. 1452 01:06:01,740 --> 01:06:04,090 Ja. 1453 01:06:04,090 --> 01:06:06,660 Vsakdo dobro? 1454 01:06:06,660 --> 01:06:09,080 V REDU. 1455 01:06:09,080 --> 01:06:09,580 OOP. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> V REDU. 1458 01:06:15,270 --> 01:06:20,310 Torej še en koncept, ki je bo zelo koristno, saj vas 1459 01:06:20,310 --> 01:06:22,570 še naprej razvijati kodo je ta ideja 1460 01:06:22,570 --> 01:06:25,430 ustvarjanja funkcije ali abstrakcijo. 1461 01:06:25,430 --> 01:06:28,479 Torej, zdaj smo vsi sprejeti algebro. 1462 01:06:28,479 --> 01:06:31,770 V algebre, se boste naučili, da je ta čudovita stvar imenovano funkcijo 1463 01:06:31,770 --> 01:06:35,300 stroj, kjer je, če vas vhod ena vrsta številka, 1464 01:06:35,300 --> 01:06:38,720 teče skozi to čudovito funkcijo in iz pops drugačen izhod, kajne? 1465 01:06:38,720 --> 01:06:42,220 V kodi, ista stvar se zgodi v kakršnikoli funkciji. 1466 01:06:42,220 --> 01:06:48,230 >> Tako sem lahko fizično pisati v mojem telesu mojega kodo 1467 01:06:48,230 --> 01:06:52,357 glavni izjavo, da v resnici ne ne glede na telo kode počne. 1468 01:06:52,357 --> 01:06:54,940 Ampak zunaj, da sem lahko tudi napisati veliko različnih funkcij 1469 01:06:54,940 --> 01:06:56,320 da narediti veliko različnih stvari. 1470 01:06:56,320 --> 01:06:58,570 Na primer, ki smo jih že začel uporabljati nekatere od njih. 1471 01:06:58,570 --> 01:07:00,610 Printf-- da je funkcija, da je nekdo drug 1472 01:07:00,610 --> 01:07:02,870 je že napisal, da je smo lahko pokličete v našo kodo. 1473 01:07:02,870 --> 01:07:05,410 Da upper-- v tem primeru, upper-- je še ena funkcija 1474 01:07:05,410 --> 01:07:07,330 smo napisal, da smo Lahko pokličete v našo kodo. 1475 01:07:07,330 --> 01:07:09,520 In zato mislim, zakaj imamo tudi funkcije? 1476 01:07:09,520 --> 01:07:12,100 Zakaj ne bi samo Pljuskanje vse v isti vrstici kode? 1477 01:07:12,100 --> 01:07:13,730 To je enostaven za vsakogar. 1478 01:07:13,730 --> 01:07:19,200 >> No, argumentih, ki je, najprej, organizacije. 1479 01:07:19,200 --> 01:07:21,880 To je zelo nadležno dogaja skozi kodo nekoga 1480 01:07:21,880 --> 01:07:25,110 in ena funkcija kot printf. 1481 01:07:25,110 --> 01:07:28,570 Če vidva pravzaprav vedel, kaj je Funkcija printf pomenilo pisati, 1482 01:07:28,570 --> 01:07:30,530 to je, kot, 1.000 vrstic kode. 1483 01:07:30,530 --> 01:07:32,357 >> Če vsakič, ko sem hotel da printf nekaj, 1484 01:07:32,357 --> 01:07:35,440 Morala sem napisati 1.000 vrstic kode, da bi bilo zelo nadležno, da se glasi, 1485 01:07:35,440 --> 01:07:36,290 prav? 1486 01:07:36,290 --> 01:07:38,860 To je razlog, zakaj smo pravkar ustvaril ta abstraktno funkcijo 1487 01:07:38,860 --> 01:07:41,670 da imamo že nekdo ostalo je napisal nekje drugje. 1488 01:07:41,670 --> 01:07:44,920 In vsakič, ko se moramo, da ga uporabljate v naša koda, bomo morali reči printf. 1489 01:07:44,920 --> 01:07:48,070 In da je sposoben, da uporabite funkcijo nekdo je napisal v našem kodeksu. 1490 01:07:48,070 --> 01:07:51,020 To omogoča lažje organizacijsko prebrati kodo. 1491 01:07:51,020 --> 01:07:53,460 >> Drugič, to je poenostavitev. 1492 01:07:53,460 --> 01:07:56,750 To poenostavlja korake, ki jih imamo sprejeti, da bi rešili naš problem. 1493 01:07:56,750 --> 01:07:59,300 Printf, funkcije, kot so printf, Funkcije, kot so na zgornji 1494 01:07:59,300 --> 01:08:03,560 so vse stvari, ki nam omogočajo, da poenostavila naš kodo navzdol, tako da je lažje. 1495 01:08:03,560 --> 01:08:05,830 In zadnja stvar, ki je ponovno uporabnost. 1496 01:08:05,830 --> 01:08:08,710 >> Torej v dejstvu, da imamo funkcijo imenovano printf 1497 01:08:08,710 --> 01:08:11,990 da lahko rečemo veliko različnih krat in omogoča, da je mogoče ponovno uporabiti. 1498 01:08:11,990 --> 01:08:14,980 Če bi bil jaz pisati printf, Sem samo napisati enkrat. 1499 01:08:14,980 --> 01:08:16,439 Obstaja le s tem, da na enem mestu. 1500 01:08:16,439 --> 01:08:19,890 Če sem hotel še enkrat, jaz bi morali kopirati in prilepiti vse to 1501 01:08:19,890 --> 01:08:21,760 v mojem drugem vrstico kode. 1502 01:08:21,760 --> 01:08:24,880 Zato, če želimo ustvariti funkcijo ki obstaja zunaj naša glavna, 1503 01:08:24,880 --> 01:08:26,880 bomo lahko samo pozivamo ga in ga kadar koli ponovno 1504 01:08:26,880 --> 01:08:29,604 moramo tako, da je veliko lažje za nas kot programi za pisanje. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Torej način, da bomo dejansko napisali funkcija je zelo podobna, kajne? 1507 01:08:35,549 --> 01:08:37,590 To je nekako prva primer, v katerem bomo 1508 01:08:37,590 --> 01:08:42,830 videli funkcijo prevzeti slog drugačna od naše int glavno praznino. 1509 01:08:42,830 --> 01:08:46,779 V tem primeru, če bi hotel napisati funkcijo imenovano q, kajne? 1510 01:08:46,779 --> 01:08:49,370 >> In int vrednost tukaj se vsi mi pravi, 1511 01:08:49,370 --> 01:08:51,649 kaj hočem to delovati, da se vrnete k meni? 1512 01:08:51,649 --> 01:08:54,484 Če želim kocko celo število, Grem, da želijo vhod. 1513 01:08:54,484 --> 01:08:55,525 To so parametri. 1514 01:08:55,525 --> 01:08:58,490 Bom vhodi vrednost tipa int. 1515 01:08:58,490 --> 01:09:01,300 In bom, da se vrnete druga vrsta vrednost int. 1516 01:09:01,300 --> 01:09:03,050 In tukaj, kot ti lahko vidite, vse delam 1517 01:09:03,050 --> 01:09:07,300 je cubing karkoli moj vložek je kot je moj izhod in ga vrnete. 1518 01:09:07,300 --> 01:09:10,790 >> Torej, vse to funkcijo pa je traja neko celo število. 1519 01:09:10,790 --> 01:09:14,979 Jo pomnoži sam dvakrat tako da kocke v smislu. 1520 01:09:14,979 --> 01:09:17,729 In potem se vrne karkoli, da izhod. 1521 01:09:17,729 --> 01:09:20,540 Torej, v tem primeru, to je dve liniji koda, da smo morali napisati več. 1522 01:09:20,540 --> 01:09:22,880 Ampak, če smo želeli poklicati ob tem večkrat, 1523 01:09:22,880 --> 01:09:26,210 to je veliko lažje, da tip, da je eden linija tukaj, ki je na kocki, kot 1524 01:09:26,210 --> 01:09:28,830 morali iti skozi več krat. 1525 01:09:28,830 --> 01:09:34,180 >> Torej tako, da je v bistvu vsaka oblikovanje za kakršno koli funkcijo 1526 01:09:34,180 --> 01:09:36,420 se dogaja, da obstaja je všeč tukaj. 1527 01:09:36,420 --> 01:09:38,659 Torej imamo ime funkcije. 1528 01:09:38,659 --> 01:09:39,950 V tem primeru, je pozval kocka. 1529 01:09:39,950 --> 01:09:42,033 In smo ga poimenovati kocko, ker je to je enostavno zapomniti. 1530 01:09:42,033 --> 01:09:44,220 Lahko poimenujte Square in to je dejansko mogoče kubikov. 1531 01:09:44,220 --> 01:09:45,500 Ni važno. 1532 01:09:45,500 --> 01:09:48,020 Samo ime, ki ste dodeljevanje svojo funkcijo. 1533 01:09:48,020 --> 01:09:51,660 >> Ta pravica je tu, int, je tip parametra, ki jih potrebujete. 1534 01:09:51,660 --> 01:09:54,149 Torej, kaj to funkcijo potrebujemo za delovanje? 1535 01:09:54,149 --> 01:09:55,990 No, to potrebuje vhod. 1536 01:09:55,990 --> 01:09:56,704 Poimenoval sem jo vhod. 1537 01:09:56,704 --> 01:09:58,120 Lahko jo poimenujete kar hočeš. 1538 01:09:58,120 --> 01:10:00,500 Ampak moram nekaj tipa int. 1539 01:10:00,500 --> 01:10:03,730 To se dogaja, da dejansko izvrši vse, kar je znotraj tu, 1540 01:10:03,730 --> 01:10:04,990 telo funkcijo. 1541 01:10:04,990 --> 01:10:07,847 In potem tip donos tukaj, to int-- 1542 01:10:07,847 --> 01:10:09,680 vse to je mi pravi, je da je ta funkcija 1543 01:10:09,680 --> 01:10:11,250 dogaja, da se vrnete k meni v notr. 1544 01:10:11,250 --> 01:10:14,460 Tako se dogaja, da v int, in to se dogaja, da vam nazaj int. 1545 01:10:14,460 --> 01:10:17,750 Ali vsi razumejo, kako oblikovanje tovrstnega dela? 1546 01:10:17,750 --> 01:10:18,250 Cool. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> V REDU. 1549 01:10:25,740 --> 01:10:31,770 Torej, ne bodite v skrbeh, če se to zdi malo abstraktno zdaj. 1550 01:10:31,770 --> 01:10:33,450 To je nekaj, da bomo govorili o tem. 1551 01:10:33,450 --> 01:10:36,310 Bomo potopite globlje kasneje v teku. 1552 01:10:36,310 --> 01:10:41,170 Tako, da kakršno koli višji ravni abstrakcija od teh stvari dela 1553 01:10:41,170 --> 01:10:43,530 je, da se v pomnilniku, pri računalnik, vse 1554 01:10:43,530 --> 01:10:47,660 je shranjena v tej vrsti iz dimnika, naj rečem. 1555 01:10:47,660 --> 01:10:49,070 >> Torej tam na vrhu. 1556 01:10:49,070 --> 01:10:50,861 Ne vem, če vas fantje, lahko vidite, da je dobro. 1557 01:10:50,861 --> 01:10:52,590 Bom poskusil, da jo povečate. 1558 01:10:52,590 --> 01:10:55,111 Tu na vrhu, smo imajo fizično besedilo 1559 01:10:55,111 --> 01:10:57,860 o tem, kaj je računalnik interpreting-- vse ničle in tiste, ki 1560 01:10:57,860 --> 01:10:59,540 obstajajo v našem računalniku. 1561 01:10:59,540 --> 01:11:03,390 In potem imamo inicializiran podatkov in neinicializirane podatki, 1562 01:11:03,390 --> 01:11:05,340 tisto, čemur pravimo globalnih spremenljivk. 1563 01:11:05,340 --> 01:11:08,200 Torej spremenljivk, ki obstajajo v vseh programih 1564 01:11:08,200 --> 01:11:11,815 in čez celoten, v bistvu, koda. 1565 01:11:11,815 --> 01:11:13,940 Brez skrbi, če se vidva nekako nejasna glede tega. 1566 01:11:13,940 --> 01:11:16,060 To sploh ni pomembno, prav zdaj. 1567 01:11:16,060 --> 01:11:18,680 >> In potem imamo kaj imenujemo kup na kup. 1568 01:11:18,680 --> 01:11:21,140 Pomislite na kupu dobesedno kot tako kot kup stvari, 1569 01:11:21,140 --> 01:11:23,098 Sveženj drugačen Stvari se ga potiska na vrh 1570 01:11:23,098 --> 01:11:27,870 drug od drugega, da shranite različne spremenljivke in sintaksa v kodi. 1571 01:11:27,870 --> 01:11:31,460 In potem je tu na samem dnu, imamo spremenljivke okolja 1572 01:11:31,460 --> 01:11:35,480 kaj ste izvršitve v samo tvoja vrstica kode. 1573 01:11:35,480 --> 01:11:40,510 >> In smo le, da bo za povečavo v na dejanski dimnik delu. 1574 01:11:40,510 --> 01:11:43,880 Torej tukaj, če smo bili za povečavo v na samo tem območju dimnika, 1575 01:11:43,880 --> 01:11:45,140 To je tisto, kar izgleda. 1576 01:11:45,140 --> 01:11:48,590 In to je dejansko zelo pomembna ko si fantje govorijo o funkcijah, 1577 01:11:48,590 --> 01:11:52,330 ker je obvestilo, da je Spomin na računalniku 1578 01:11:52,330 --> 01:11:55,600 je shranjevanje spremenljivk in funkcije 1579 01:11:55,600 --> 01:11:58,790 in parametri, tako si Funkcija in vaše glavne spremenljivke 1580 01:11:58,790 --> 01:12:00,190 v različnih krajih. 1581 01:12:00,190 --> 01:12:03,390 >> Torej sedaj, glavno je, dejanska funkcija 1582 01:12:03,390 --> 01:12:04,780 da ste izvršitve v kodi. 1583 01:12:04,780 --> 01:12:08,050 Vi ste njegovi parametri shranjeni tukaj in njegove lokalne spremenljivke shranjene tukaj. 1584 01:12:08,050 --> 01:12:12,270 Lokalna spremenljivka samo pomeni vsako spremenljivko da obstajajo samo v tej funkciji. 1585 01:12:12,270 --> 01:12:15,610 In na vrhu je, imate to ločena funkcija imenuje kocka. 1586 01:12:15,610 --> 01:12:18,240 Imate to parametri kot tudi tiste domačini. 1587 01:12:18,240 --> 01:12:21,540 >> In razlog, da si lahko glej tukaj je, da tisto, kar 1588 01:12:21,540 --> 01:12:25,030 se zgodi, ko se kocka je v vrednost iz vaše glavne funkcije 1589 01:12:25,030 --> 01:12:27,640 je, da je dejansko to je kopiranje, da več. 1590 01:12:27,640 --> 01:12:31,470 Torej, če sem hotel kocke 2 in se vrniti 8, da je 2 1591 01:12:31,470 --> 01:12:33,730 dejansko vnesene kot parameter in je 1592 01:12:33,730 --> 01:12:37,690 kopirali več, tako da boste morali, da obstoječi v dveh različnih mestih v pomnilniku. 1593 01:12:37,690 --> 01:12:40,520 In moraš biti zelo previdni o spominjanju, ki eno od tistih, 1594 01:12:40,520 --> 01:12:42,520 ste dejansko manipulirajo. 1595 01:12:42,520 --> 01:12:47,170 In primer, kaj se je zgodilo da bi bilo zelo, zelo slabo 1596 01:12:47,170 --> 01:12:48,050 obstaja tukaj. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Torej tukaj, imam, v teoriji, program prav tukaj, glavna funkcija 1599 01:12:58,650 --> 01:13:02,180 da sem razglasitvi int x enaka 1. 1600 01:13:02,180 --> 01:13:04,505 Jaz sem razglasitvi drugega int y enaka 2. 1601 01:13:04,505 --> 01:13:06,380 In potem sem ga teče skozi to funkcijo 1602 01:13:06,380 --> 01:13:09,647 imenuje swap, kjer sem domnevala, da to je zamenjavo dve vrednosti. 1603 01:13:09,647 --> 01:13:11,480 In potem bom jih natisnete, kajne? 1604 01:13:11,480 --> 01:13:13,220 To je tisto, kar želim ta program storiti. 1605 01:13:13,220 --> 01:13:15,180 >> Torej, kaj je prišel dol in poglej. 1606 01:13:15,180 --> 01:13:18,200 Torej, če sem dejansko napisal drugačen funkcije, kot lahko vidite, 1607 01:13:18,200 --> 01:13:19,750 imamo glavno funkcijo tukaj. 1608 01:13:19,750 --> 01:13:22,860 In potem imamo Druga funkcija tukaj. 1609 01:13:22,860 --> 01:13:24,520 Void swap. 1610 01:13:24,520 --> 01:13:27,090 Void samo pomeni, da je ne bo vrnil ničesar. 1611 01:13:27,090 --> 01:13:28,930 Ime funkcija je imenuje swap, in to je 1612 01:13:28,930 --> 01:13:33,730 bo sesalnih dvema spremenljivkama, int a in int b, iz [neslišno] funkcijo. 1613 01:13:33,730 --> 01:13:39,010 >> Torej, v bistvu sem, da smo poteka X in Y v to funkcijo. 1614 01:13:39,010 --> 01:13:40,760 In če bi ustvariti this-- zato želimo 1615 01:13:40,760 --> 01:13:42,420 ustvariti začasno vrednost, kajne? 1616 01:13:42,420 --> 01:13:43,930 Bomo dodeliti, da a. 1617 01:13:43,930 --> 01:13:45,388 In potem se bo sedaj enako b. 1618 01:13:45,388 --> 01:13:47,660 In b se bo vrnil kjer je bila vrednost temp, 1619 01:13:47,660 --> 01:13:51,070 ki je, ker ko želite, da bi zamenjali stvari, 1620 01:13:51,070 --> 01:13:52,320 ne moreš kar všeč swap njih. 1621 01:13:52,320 --> 01:13:54,360 >> Imate, da ena od tukaj, tako da spominja 1622 01:13:54,360 --> 01:13:56,485 kaj je to, ker ko ste zamenjali eno, ste pozabili 1623 01:13:56,485 --> 01:13:58,200 kaj se da izvirna vrednost je bila, kajne? 1624 01:13:58,200 --> 01:14:00,990 Torej, v teoriji, ta program bi morali delati, kajne? 1625 01:14:00,990 --> 01:14:03,630 Če bi želel, da bi zamenjali dva, bi morali zamenjati. 1626 01:14:03,630 --> 01:14:05,490 Torej, kaj je teči in videli, če deluje. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Tako da lahko vi vidite, x je bil nekoč 1 in y je nekoč 2. 1629 01:14:16,940 --> 01:14:21,475 In če sem ga natisnete, x je še vedno 1 in je y 2. 1630 01:14:21,475 --> 01:14:25,970 Hm, ta program ne zdi, da je deluje tako, da želim to delati. 1631 01:14:25,970 --> 01:14:29,950 Ali kdo želel vzeti strel na ugibati, zakaj to se je dogajalo? 1632 01:14:29,950 --> 01:14:34,430 To je povezano z načinom da sta dve različni stvari 1633 01:14:34,430 --> 01:14:38,172 shranjeni v različnih krajih v pomnilniku. 1634 01:14:38,172 --> 01:14:39,377 >> V REDU. 1635 01:14:39,377 --> 01:14:41,960 Torej vidva ne bi bilo treba skrbeti preveč o tem prav zdaj. 1636 01:14:41,960 --> 01:14:46,610 Ampak vem, da je kocka je lokalna spremenljivke so a in b, 1637 01:14:46,610 --> 01:14:49,230 ker tukaj v naši funkciji, smo razglasila a in b 1638 01:14:49,230 --> 01:14:53,570 kot spremenljivke, ki obstajajo znotraj kocke, da funkcija. 1639 01:14:53,570 --> 01:14:59,490 Ampak kot vidite, parametre, ki to je ob v so se tu shranijo. 1640 01:14:59,490 --> 01:15:01,370 Vendar nismo bili dejansko vrača ničesar. 1641 01:15:01,370 --> 01:15:03,120 Mi smo dejansko ne spreminja X in Y. 1642 01:15:03,120 --> 01:15:04,440 Pravkar smo spreminjanje a in b. 1643 01:15:04,440 --> 01:15:08,340 >> Imeli smo kopirali X in Y v nekaj, kar se imenuje a in b. 1644 01:15:08,340 --> 01:15:11,092 Ampak mi nikoli dejansko manipulira x in y sami. 1645 01:15:11,092 --> 01:15:12,800 Vidva ogleda kako, da se dogaja? 1646 01:15:12,800 --> 01:15:16,140 Je, da smo preprosto kopiral več, vendar smo dejansko ne hranijo 1647 01:15:16,140 --> 01:15:18,030 koloteka kjer so v pomnilniku. 1648 01:15:18,030 --> 01:15:20,127 >> In tako zdaj računalnik je videti, oh, Sem 1649 01:15:20,127 --> 01:15:21,960 teči to stvar skozi to čudovito funkcijo. 1650 01:15:21,960 --> 01:15:23,690 Toda x in y so še x in y. 1651 01:15:23,690 --> 01:15:26,240 Nič se je zgodilo jih zaradi dejstva 1652 01:15:26,240 --> 01:15:28,340 da teh parametrov in lokalne spremenljivke 1653 01:15:28,340 --> 01:15:30,150 so shranjeni v drugačni postaviti v spomin. 1654 01:15:30,150 --> 01:15:32,030 In to je na višji ravni Koncept, da bomo 1655 01:15:32,030 --> 01:15:34,300 začeli videvati kasneje v teku. 1656 01:15:34,300 --> 01:15:36,950 Ampak samo vem, da je to problem, ki se lahko zgodi, 1657 01:15:36,950 --> 01:15:41,400 in da bomo ugotovimo, kako o tem, kako Ukvarjamo se s tem kasneje v teku. 1658 01:15:41,400 --> 01:15:41,900 V REDU. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 V redu. 1661 01:15:48,250 --> 01:15:51,780 Torej zadnji koncept smo v resnici dogaja za kritje 1662 01:15:51,780 --> 01:15:53,880 da se dogaja, da je koristno za pset ta teden 1663 01:15:53,880 --> 01:15:56,060 so tisto, kar imenujemo argumenti v ukazni vrstici. 1664 01:15:56,060 --> 01:16:00,820 Torej, Rob v svojem predavanju je šel skozi nekako na kratko, kako ti dela. 1665 01:16:00,820 --> 01:16:02,770 V bistvu vem, da Ko pišete 1666 01:16:02,770 --> 01:16:06,280 kot glavno funkcijo, ko smo napisal funkcij, preden je v preteklosti, 1667 01:16:06,280 --> 01:16:07,804 smo imeli int glavno praznino. 1668 01:16:07,804 --> 01:16:10,470 In razlog, da smo imeli neveljavne tam je bil, ker so naši programi niso 1669 01:16:10,470 --> 01:16:12,520 morajo vhodne vrednosti teči, kajne? 1670 01:16:12,520 --> 01:16:16,020 Ko sem tekel mario, nisem potreboval dejansko samo tip v nekaj 1671 01:16:16,020 --> 01:16:16,970 ko sem tekel Mario. 1672 01:16:16,970 --> 01:16:20,170 Jaz bi lahko poziv uporabniku kasneje. 1673 01:16:20,170 --> 01:16:22,450 Ampak, da ne bo vedno tako. 1674 01:16:22,450 --> 01:16:24,980 >> Na primer, v tem problem tedna določa, 1675 01:16:24,980 --> 01:16:28,365 boste morali, da se v Poleg tega, da teče svoj program, 1676 01:16:28,365 --> 01:16:30,990 boste želeli vhod nekatere stvari naravnost, medtem ko 1677 01:16:30,990 --> 01:16:32,050 zagnati program. 1678 01:16:32,050 --> 01:16:34,720 Torej je pot storimo, da imenuje argument ukazne vrstice, ki 1679 01:16:34,720 --> 01:16:37,280 je kot argument lahko vnesete neposredno 1680 01:16:37,280 --> 01:16:39,260 kot ste poskušali zagnati program. 1681 01:16:39,260 --> 01:16:44,680 >> Torej zapis za to, to je zelo zapletena, je videti, 1682 01:16:44,680 --> 01:16:47,320 ampak to je res, da ni težko. Torej int main-- 1683 01:16:47,320 --> 01:16:48,910 to je samo vaša glavna funkcija. 1684 01:16:48,910 --> 01:16:52,110 V argc vejico niz ARGV oklepajih. 1685 01:16:52,110 --> 01:16:56,040 Torej vse, kar je rekel je, da je to int argc-- vse, kar je povedal, 1686 01:16:56,040 --> 01:17:00,560 je, da so tisti število Argumenti računalnik bi smeli pričakovati. 1687 01:17:00,560 --> 01:17:03,130 >> Torej, ena stvar, ki je res pomembno, da bi spremljali 1688 01:17:03,130 --> 01:17:07,080 je fizični ime vašega programa se šteje kot eno od teh trditev. 1689 01:17:07,080 --> 01:17:11,080 Torej, če sem hotel imeti svoj program teči plus eno dodatno ukazno vrstico 1690 01:17:11,080 --> 01:17:13,310 Trditev, da sem dejansko dogaja, da imajo dva. 1691 01:17:13,310 --> 01:17:15,080 Argc se dejansko dogaja, da se dva. 1692 01:17:15,080 --> 01:17:18,010 In potem niz argv bracket-- vse, kar počne, 1693 01:17:18,010 --> 01:17:20,410 to me je kar array nizov, ki je 1694 01:17:20,410 --> 01:17:24,870 bo samo prikaz in shranjevanje kaj vsi ti argumenti ukazne vrstice so. 1695 01:17:24,870 --> 01:17:34,090 >> Tako na primer, če sem hotel imeti to Program, ./copy infile outfile, kajne? 1696 01:17:34,090 --> 01:17:37,330 To je samo tipičen ukaz Linux. 1697 01:17:37,330 --> 01:17:38,830 Kaj pravzaprav je argc? 1698 01:17:38,830 --> 01:17:41,320 Koliko argumenti ukazne vrstice so tam dejansko v tem? 1699 01:17:41,320 --> 01:17:45,130 Vse to pa je, da kopijo infile imena eni datoteki 1700 01:17:45,130 --> 01:17:47,070 in poleg tega kopije ga bo v druga datoteka, kajne? 1701 01:17:47,070 --> 01:17:48,700 To je vse to počne. 1702 01:17:48,700 --> 01:17:53,080 Kot lahko vidite, jaz delam v eni vrstici ne da bi dejansko potrebovali program. 1703 01:17:53,080 --> 01:17:55,380 >> Kakšna je naša argc v tem primeru? 1704 01:17:55,380 --> 01:17:58,968 Koliko argumenti imamo? 1705 01:17:58,968 --> 01:17:59,634 OBČINSTVO: Three? 1706 01:17:59,634 --> 01:18:01,200 ANDI PENG: Imamo tri, točno. 1707 01:18:01,200 --> 01:18:05,030 Tako da je zelo intuitiven za Samo mislim, da je to samo 1708 01:18:05,030 --> 01:18:06,290 infile in outfile. 1709 01:18:06,290 --> 01:18:10,190 Ampak vem, da je fizični trgovini ime Program tečete šteje kot ena. 1710 01:18:10,190 --> 01:18:13,220 Torej, v tem primeru, argc je pravzaprav tri. 1711 01:18:13,220 --> 01:18:15,860 Kaj pravite, kaj je argv 0? 1712 01:18:15,860 --> 01:18:18,180 Ne pozabite, da vse argumenti ukazne vrstice 1713 01:18:18,180 --> 01:18:20,500 so bili skladiščeni v vrsto nizov. 1714 01:18:20,500 --> 01:18:24,140 Torej, če sem poskusil priti do njih, kaj bi argv bracket 0 daj mi? 1715 01:18:24,140 --> 01:18:25,364 >> OBČINSTVO: [neslišno]. 1716 01:18:25,364 --> 01:18:26,155 ANDI PENG: Točno tako. 1717 01:18:26,155 --> 01:18:28,550 To bi mi dala piko poševnica kopijo, ker je to 1718 01:18:28,550 --> 01:18:31,070 0. element je Prvi element mojega array. 1719 01:18:31,070 --> 01:18:33,236 Kaj pa argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> OBČINSTVO: Infile. 1721 01:18:33,945 --> 01:18:35,070 ANDI PENG: Infile, točno. 1722 01:18:35,070 --> 01:18:36,272 Kaj pa argv 2? 1723 01:18:36,272 --> 01:18:37,022 OBČINSTVO: outfile. 1724 01:18:37,022 --> 01:18:38,190 ANDI PENG: outfile. 1725 01:18:38,190 --> 01:18:39,290 To je zdaj malce zapleteno. 1726 01:18:39,290 --> 01:18:42,630 Kaj mislita argv 3 se dogaja, da se mi je kar 1727 01:18:42,630 --> 01:18:45,522 če sem se potrudil, da natisnete da ven? 1728 01:18:45,522 --> 01:18:48,260 >> OBČINSTVO: [neslišno]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI PENG: Ali imate roko? 1730 01:18:50,164 --> 01:18:50,663 Ja. 1731 01:18:50,663 --> 01:18:51,550 >> OBČINSTVO: An alternative. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI PENG: Točno tako. 1733 01:18:52,341 --> 01:18:55,440 Torej, ne pozabite na predavanju, ki smo imajo na koncu dirko nečesa 1734 01:18:55,440 --> 01:18:56,640 imenuje null terminator? 1735 01:18:56,640 --> 01:18:58,890 Bomo dobili v tem tudi naprej v razredu. 1736 01:18:58,890 --> 01:19:02,472 Ampak vem, da je v zapisu, način računalnik 1737 01:19:02,472 --> 01:19:04,430 ve, da je konec matrike je, da 1738 01:19:04,430 --> 01:19:07,310 postavlja nekaj imenuje null terminator ali pomišljaj nič. 1739 01:19:07,310 --> 01:19:12,047 >> Torej, če boste poskušali dostopati argv 3, boš udaril ta pomišljaj 0. 1740 01:19:12,047 --> 01:19:13,630 To je še toliko bolj trik vprašanje. 1741 01:19:13,630 --> 01:19:17,020 Kaj pa argv 4? 1742 01:19:17,020 --> 01:19:20,920 Torej, to je mimo null terminator, mimo meje našega array. 1743 01:19:20,920 --> 01:19:24,380 Kaj misliš, da se dogaja, da zgodi, ko smo poskušali to storiti? 1744 01:19:24,380 --> 01:19:25,842 >> OBČINSTVO: [neslišno]? 1745 01:19:25,842 --> 01:19:26,550 ANDI PENG: Oprostite? 1746 01:19:26,550 --> 01:19:28,025 Recimo, da je malo glasnejši? 1747 01:19:28,025 --> 01:19:29,086 >> OBČINSTVO: [neslišno]. 1748 01:19:29,086 --> 01:19:29,710 ANDI PENG: Da. 1749 01:19:29,710 --> 01:19:32,420 To je ime, od Območje boste najverjetneje dobili. 1750 01:19:32,420 --> 01:19:36,610 Ampak vem, da je argv 4-- ki vam omogoča dostop do 1751 01:19:36,610 --> 01:19:38,610 mesta v vašem računalniku spomin, da vas res 1752 01:19:38,610 --> 01:19:41,650 ne sme biti dotika, ker Zdaj veste, kaj argv je. 1753 01:19:41,650 --> 01:19:46,220 Saj veš, da je matrika velikosti 3 da ima dot kopiranja infile in outfile. 1754 01:19:46,220 --> 01:19:50,200 >> Če boste poskušali iti tako daleč, da je da ste mimo null terminator, 1755 01:19:50,200 --> 01:19:53,050 računalnik ima verjetno shranjeni nekaj v argv 4. 1756 01:19:53,050 --> 01:19:55,790 In res ne bi smelo biti dovoli dostop v argv 4, 1757 01:19:55,790 --> 01:19:58,130 ker imate datoteko kabinet in ste samo 1758 01:19:58,130 --> 01:19:59,790 dovoli dostop do teh treh policah. 1759 01:19:59,790 --> 01:20:02,870 Ampak, če ste poskušali doseči pot onkraj polica, kje ste dovoljeno, 1760 01:20:02,870 --> 01:20:04,930 boš začeti zlorabili druge stvari v spominu računalnika. 1761 01:20:04,930 --> 01:20:06,690 To se dogaja, da je res, res slabo. 1762 01:20:06,690 --> 01:20:07,440 Torej, samo vem, da je. 1763 01:20:07,440 --> 01:20:10,370 Bodite zelo previdni, da vas ne samo naključno začetek 1764 01:20:10,370 --> 01:20:14,772 dostopanje elemente v matriki, da niso bili v kar ste želeli ustvariti. 1765 01:20:14,772 --> 01:20:17,114 Ja. 1766 01:20:17,114 --> 01:20:18,430 >> V REDU. 1767 01:20:18,430 --> 01:20:26,360 Torej bomo narediti še en terminal primer tukaj. 1768 01:20:26,360 --> 01:20:27,300 V REDU. 1769 01:20:27,300 --> 01:20:29,900 Torej, Rob hitro v predavanju drugi dan je šel 1770 01:20:29,900 --> 01:20:35,040 skozi ta primer, kjer je imel int glavni int argc niz argv 1771 01:20:35,040 --> 01:20:39,090 nosilci, ki so mi povedali, da sem dogaja, da imajo argumente ukazne vrstice. 1772 01:20:39,090 --> 01:20:41,860 >> Ima, če argc enaka enaka 2-- spomnite, 1773 01:20:41,860 --> 01:20:45,070 enaka Ene pomeni primerjavo. 1774 01:20:45,070 --> 01:20:47,980 Če je enak 2, potem pa sem dogaja, da natisnete zdravo, 1775 01:20:47,980 --> 01:20:51,190 ne glede na prvi element matrike je. 1776 01:20:51,190 --> 01:20:54,100 Else print, zdravo svet. 1777 01:20:54,100 --> 01:20:56,300 Kaj se to dogaja, da zgodilo v bistvu? 1778 01:20:56,300 --> 01:21:00,570 Lahko nekdo samo razloži v Angleščina, kaj ta program počne? 1779 01:21:00,570 --> 01:21:01,272 Ja. 1780 01:21:01,272 --> 01:21:08,160 >> OBČINSTVO: Če nekdo vnesli v ukazu in dejal njihov ime in priimek, 1781 01:21:08,160 --> 01:21:12,096 da ne bo samo natisnete Prvi in ​​reči, zdravo, 1782 01:21:12,096 --> 01:21:14,090 ne glede na vaše prvo ime. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI PENG: OK, kaj je to teči. 1784 01:21:15,410 --> 01:21:22,470 Torej, za primer, če bi bil jaz, da bi Ta datoteka bo zdravo to-- zdravo 1785 01:21:22,470 --> 01:21:24,500 to-- kaj hočeš, da vhod? 1786 01:21:24,500 --> 01:21:25,900 >> OBČINSTVO: ime in priimek. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI PENG: ime in priimek? 1788 01:21:27,280 --> 01:21:28,180 Prostori? 1789 01:21:28,180 --> 01:21:29,690 >> OBČINSTVO: Ja. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI PENG: Ali lahko nekdo povej me prav zdaj, kaj je argc? 1791 01:21:33,490 --> 01:21:35,630 Samo tam? 1792 01:21:35,630 --> 01:21:36,290 Ups, žal. 1793 01:21:36,290 --> 01:21:37,920 Naj grem nazaj. 1794 01:21:37,920 --> 01:21:40,740 Koliko argumenti ukazne vrstice vam are-- fantje ne morem videti. 1795 01:21:40,740 --> 01:21:43,760 Ampak bom poskusil za povečavo. 1796 01:21:43,760 --> 01:21:44,290 Poskušam. 1797 01:21:44,290 --> 01:21:45,414 Ja, tam je tri, kajne? 1798 01:21:45,414 --> 01:21:48,750 To je pika slash zdravo, to je Andi, in to je Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Torej, kaj mislita to Program se bo tiskanje? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Oh. 1802 01:21:56,060 --> 01:21:57,120 Oh, oprosti. 1803 01:21:57,120 --> 01:21:57,810 Napačno ime. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 To je tiskanje, zdravo svet. 1806 01:22:06,130 --> 01:22:09,603 Ali kdo želel, da pojasni Zato, da se dogaja? 1807 01:22:09,603 --> 01:22:10,103 Ja? 1808 01:22:10,103 --> 01:22:11,019 >> OBČINSTVO: [neslišno]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI PENG: Točno tako. 1811 01:22:15,230 --> 01:22:19,940 Torej, tukaj so pogojno je, če argc enaka enak 2. 1812 01:22:19,940 --> 01:22:23,650 Torej le v primeru, da obstaja dva argumenta ukazne vrstice. 1813 01:22:23,650 --> 01:22:25,850 Potem grem za tiskanje, Pozdravljeni, karkoli že je. 1814 01:22:25,850 --> 01:22:28,210 Ampak drugega, bom natisniti le, Hello World. 1815 01:22:28,210 --> 01:22:30,040 Torej nekdo rad da bi mi dal zgled 1816 01:22:30,040 --> 01:22:35,050 o tem, kako bi se lahko dejansko zaslužiti to za tiskanje vrednost argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Kaj bi jaz moral vhod tukaj? 1818 01:22:38,600 --> 01:22:39,840 Samo ena stvar, kajne? 1819 01:22:39,840 --> 01:22:42,900 Ker je pika Pozdravi že se šteje kot prvi argument. 1820 01:22:42,900 --> 01:22:43,930 Imam eno samo. 1821 01:22:43,930 --> 01:22:46,470 Torej dot zdravo, če sem naredil Andi. 1822 01:22:46,470 --> 01:22:47,270 Pozdravljeni, Andi. 1823 01:22:47,270 --> 01:22:49,186 Ali vsi razumeli Zato, da se dogaja? 1824 01:22:49,186 --> 01:22:49,602 Ja. 1825 01:22:49,602 --> 01:22:52,500 >> OBČINSTVO: Torej, prostor med Ukaz line-- je [neslišno]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: No. 1828 01:22:56,830 --> 01:23:03,810 Torej prostor v ukazni vrstici Trditev, x, da obvestite svojega računalnika 1829 01:23:03,810 --> 01:23:06,820 da je to začetek novega niza. 1830 01:23:06,820 --> 01:23:11,130 Torej niz argv ji here-- trgovin vsi vaši argumenti ukazi resornih 1831 01:23:11,130 --> 01:23:13,110 v kito. 1832 01:23:13,110 --> 01:23:17,420 In tako je prostor, v ukazni vrstici argument-- vse, kar počne, je vam povem, 1833 01:23:17,420 --> 01:23:21,030 to je na koncu enega niza in da je čas, da se premaknete na drugo. 1834 01:23:21,030 --> 01:23:21,990 >> Ja. 1835 01:23:21,990 --> 01:23:23,530 To je zelo pomembno za Vaše pset, ker ste 1836 01:23:23,530 --> 01:23:24,613 bodo testiranje teh. 1837 01:23:24,613 --> 01:23:29,300 Torej, ali ima kdo kakršna koli vprašanja o tem? 1838 01:23:29,300 --> 01:23:30,016 OK kul. 1839 01:23:30,016 --> 01:23:30,515 Ja? 1840 01:23:30,515 --> 01:23:35,008 >> OBČINSTVO: Torej razlog, s katero bi namesto da bi dal celo število argumenta calc 1841 01:23:35,008 --> 01:23:40,059 od [neslišno] bi bilo, če želite da vnesete dodatne informacije 1842 01:23:40,059 --> 01:23:41,030 [Neslišno]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI PENG: Ja, točno. 1844 01:23:42,090 --> 01:23:45,370 Nekateri programi vam bodo zahtevale za vnos argumentov ukazne vrstice 1845 01:23:45,370 --> 01:23:47,732 da prehaja v in ki uporablja to. 1846 01:23:47,732 --> 01:23:49,035 Ja. 1847 01:23:49,035 --> 01:23:50,410 OBČINSTVO: Pa kaj, če [neslišno]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI PENG: No, kaj imam potem spremenijo v mojem programu? 1850 01:23:58,870 --> 01:23:59,870 >> OBČINSTVO: Samo 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI PENG: Zakaj je to dogaja, misliš? 1853 01:24:15,020 --> 01:24:18,940 >> OBČINSTVO: Ker je [neslišno]. 1854 01:24:18,940 --> 01:24:22,370 >> OBČINSTVO: Morali bi jo spremenite na 2 [neslišno]. 1855 01:24:22,370 --> 01:24:23,484 >> OBČINSTVO: 1 in 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI PENG: 1 in 2, točno. 1857 01:24:24,650 --> 01:24:29,150 Torej, v tem primeru, bi vam verjetno želijo imeti dva printf statements-- 1858 01:24:29,150 --> 01:24:32,601 tisti, ki natisnjen argv 1 in tisti, ki je natisnjena argv 2. 1859 01:24:32,601 --> 01:24:33,100 Tukaj. 1860 01:24:33,100 --> 01:24:34,516 Jaz lahko dejansko narediti resnično hitro. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Izvolite. 1863 01:24:47,320 --> 01:24:48,287 Oh. 1864 01:24:48,287 --> 01:24:49,370 Ni ravno to, kar si je želel. 1865 01:24:49,370 --> 01:24:52,590 Ampak, če vi igral z formatiranje bo prišel ven. 1866 01:24:52,590 --> 01:24:54,981 Ja. 1867 01:24:54,981 --> 01:24:55,480 Cool. 1868 01:24:55,480 --> 01:24:57,670 Vem, da smo malo v stiski s časom. 1869 01:24:57,670 --> 01:25:02,469 Ampak jaz sem šele tekoč, da hitro porabiti Nekaj ​​minut gredo skozi helpful-- 1870 01:25:02,469 --> 01:25:03,760 OBČINSTVO: Imate dve minuti. 1871 01:25:03,760 --> 01:25:05,010 ANDI PENG: Imam dve minuti? 1872 01:25:05,010 --> 01:25:06,340 Hvala. 1873 01:25:06,340 --> 01:25:09,180 Nekaj ​​hitrih pset nasvete. 1874 01:25:09,180 --> 01:25:13,100 Torej za to pset, sem močno priporočamo, kot sem rekel, vsakdo prebrati spec. 1875 01:25:13,100 --> 01:25:16,804 Boste pisanje tri programs-- eno imenuje initials.c, ena imenovana caesar.c, 1876 01:25:16,804 --> 01:25:17,720 ena imenovana vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Nekaj ​​pomembnih nasvetov, ki vidva res želijo 1879 01:25:22,340 --> 01:25:25,040 da v mind-- tako je ta funkcija 1880 01:25:25,040 --> 01:25:27,770 imenovana atoi-- kot sem želel povedati, A trois. 1881 01:25:27,770 --> 01:25:29,520 Jasno, če je to pravzaprav, kako si to rekel. 1882 01:25:29,520 --> 01:25:32,510 Ampak vse to počne, to je vnesla. 1883 01:25:32,510 --> 01:25:34,320 To pretvori niz v notr. 1884 01:25:34,320 --> 01:25:37,490 Torej predstavlja ASCII na i celo število. 1885 01:25:37,490 --> 01:25:40,310 To je samo pretvorbo ASCII Vrednosti celoštevilčnemu vrednosti. 1886 01:25:40,310 --> 01:25:44,510 Torej ne pozabite argv, array, ki shranjuje vse vaše ukaze linijo arguments-- 1887 01:25:44,510 --> 01:25:46,300 da jih vse shrani kot strune. 1888 01:25:46,300 --> 01:25:50,010 In tako, če želite, da bi lahko ima eden izmed njih postanejo celo število, 1889 01:25:50,010 --> 01:25:52,750 boste imeli Za uporabo te vrednosti tukaj. 1890 01:25:52,750 --> 01:25:56,690 >> Modulo, kot smo pokrili prej v razredu danes, 1891 01:25:56,690 --> 01:25:59,550 kar omogoča, da imajo Preostanek kar imate. 1892 01:25:59,550 --> 01:26:03,620 Torej, če imamo res, res velike številke v cesarju, 1893 01:26:03,620 --> 01:26:06,117 Kaj pa, če imamo na koncu iz niza Vigenere? 1894 01:26:06,117 --> 01:26:08,450 Kako se boste, da se lahko da bi dobili, da se ovije okoli? 1895 01:26:08,450 --> 01:26:11,330 Če sem udaril z in želim, da bi šel nazaj k, 1896 01:26:11,330 --> 01:26:13,650 kako bom dobil da ovijte okoli? 1897 01:26:13,650 --> 01:26:15,960 Verjetno želeli uporabiti modulo tam nekje. 1898 01:26:15,960 --> 01:26:19,190 >> Drugič, brskate po vaša knjižnica. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 To je nova knjižnica imamo. 1900 01:26:20,680 --> 01:26:25,270 Boste našli veliko zares koristno functions-- isupper, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, tolower, isalpha, et cetera. 1902 01:26:27,681 --> 01:26:30,680 Vse funkcije, ki bodo zelo koristne ko poskušate ugotoviti, 1903 01:26:30,680 --> 01:26:33,780 je to znak male črke? 1904 01:26:33,780 --> 01:26:35,730 Kako pretvoriti to niz z veliko začetnico? 1905 01:26:35,730 --> 01:26:38,146 Vse te stvari bo zelo, zelo koristno za vaše pset. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 V REDU. 1908 01:26:45,500 --> 01:26:49,644 >> Uradne ure so nocoj 8:00 do 11:00 v TEAL razredu jutri 1909 01:26:49,644 --> 01:26:51,310 kot tudi v sredo in četrtek zvečer. 1910 01:26:51,310 --> 01:26:53,280 Uradne ure so v commons. 1911 01:26:53,280 --> 01:26:56,180 Zelo vam predlagamo, fantje Vse se je začelo takoj, 1912 01:26:56,180 --> 01:27:00,490 ker si ne želijo, da se da fant, ki je v četrtek zvečer ima težave 1913 01:27:00,490 --> 01:27:03,870 predložitvijo vaše pset in kot, ne vem, kaj naj naredim. 1914 01:27:03,870 --> 01:27:05,870 Začel sem, sem končal, sem predložil. 1915 01:27:05,870 --> 01:27:09,737 Poskusi, da bi si nekaj prostora, saj vedno pojavijo težave kodo. 1916 01:27:09,737 --> 01:27:11,570 Hočeš, da poskrbite, da ste sami dajejo 1917 01:27:11,570 --> 01:27:14,810 veliko časa, da bi lahko za dokončanje psets. 1918 01:27:14,810 --> 01:27:15,310 Cool. 1919 01:27:15,310 --> 01:27:16,720 Jaz bom visi tukaj. 1920 01:27:16,720 --> 01:27:18,226 >> OBČINSTVO: Je to na spletu je že? 1921 01:27:18,226 --> 01:27:20,850 ANDI PENG: Ne vem, če je to spletu že, vendar pa bo. 1922 01:27:20,850 --> 01:27:23,500 Jaz bom visi tukaj, če kdo ima že vsa vprašanja. 1923 01:27:23,500 --> 01:27:25,390 Hvala za prihod. 1924 01:27:25,390 --> 01:27:27,105