1 00:00:00,000 --> 00:00:02,742 >> [Muusika mängib] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI PENG: See on CS50 ja tere nädalal kaks punkti. 4 00:00:09,090 --> 00:00:11,740 See on tegelikult samas nädalal kaks meie class-- tegelikult, 5 00:00:11,740 --> 00:00:14,550 Esimesel nädalal oleme olnud osa. 6 00:00:14,550 --> 00:00:18,897 Käetõstmisega, kui palju sa kõik tuli super osa eelmisel nädalal? 7 00:00:18,897 --> 00:00:19,480 OK, see on OK. 8 00:00:19,480 --> 00:00:20,020 See on OK. 9 00:00:20,020 --> 00:00:23,110 Kui paljud teist vaatasin super osa eelmisel nädalal? 10 00:00:23,110 --> 00:00:23,610 OKEI. 11 00:00:23,610 --> 00:00:25,702 Ja kutid tegid trahvi probleemse seatud üks? 12 00:00:25,702 --> 00:00:28,660 Nii et ma lähen seda võtma, et meil on kamp tõesti intelligentne lapsed 13 00:00:28,660 --> 00:00:32,310 Selle klassi ja asju saab trahvi. 14 00:00:32,310 --> 00:00:33,180 OKEI. 15 00:00:33,180 --> 00:00:33,980 Nii first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Esiteks, me lihtsalt läheb korraks minna üle päevakorda täna. 18 00:00:41,090 --> 00:00:42,700 Me räägime muidugi logistika. 19 00:00:42,700 --> 00:00:45,480 Palju siis ilmselt on küsimusi 20 00:00:45,480 --> 00:00:46,920 kuidas asjad töötavad selles muidugi. 21 00:00:46,920 --> 00:00:47,897 Me neile vastata. 22 00:00:47,897 --> 00:00:49,730 Me läheme lühidalt minna üle silmuseid korral 23 00:00:49,730 --> 00:00:51,410 mõni kutid vastamata super osa. 24 00:00:51,410 --> 00:00:53,240 Me räägime ASCII kaardistamine. 25 00:00:53,240 --> 00:00:56,180 Me räägime massiivid, funktsioone, käsurea argumente. 26 00:00:56,180 --> 00:01:00,210 Ja lõpuks, mida kutid ilmselt kõik tõesti tahan olla siin, et õppida, 27 00:01:00,210 --> 00:01:01,270 on oma pset2. 28 00:01:01,270 --> 00:01:04,209 Me peame mõne kena trikke ja nõuanded, kuidas seda teha. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> OKEI. 31 00:01:08,690 --> 00:01:11,450 Ka teiseks, meil on palju kommi siin. 32 00:01:11,450 --> 00:01:13,583 Igaüks, kes tahab kommi, lihtsalt tulla siia. 33 00:01:13,583 --> 00:01:14,430 Haara mõned. 34 00:01:14,430 --> 00:01:15,100 Mul on hunnik. 35 00:01:15,100 --> 00:01:16,390 Meil on ton kontoris. 36 00:01:16,390 --> 00:01:18,230 Ma tõesti ei taha süüa kommi kogu päeva. 37 00:01:18,230 --> 00:01:20,300 Te peaks sööma kõik kommid, sest ma tõin ta siin kutid. 38 00:01:20,300 --> 00:01:20,990 Just süüa kommi. 39 00:01:20,990 --> 00:01:24,080 Seal saad kommi iga osa. 40 00:01:24,080 --> 00:01:25,330 >> Nii esimene, kes ma olen? 41 00:01:25,330 --> 00:01:27,080 Minu nimi on Andi Peng. 42 00:01:27,080 --> 00:01:30,270 Ma olen pea TA CS50 siin Yale'i. 43 00:01:30,270 --> 00:01:32,540 Ja lisaks et ma ka olla-- 44 00:01:32,540 --> 00:01:35,600 kui keegi oleks like-- oma jooksvate sõber, oma õla najal nutta. 45 00:01:35,600 --> 00:01:39,140 Kui õhtul oma pset maksetähtaega, sa ei tea, mis toimub, 46 00:01:39,140 --> 00:01:40,080 tabas mind. 47 00:01:40,080 --> 00:01:42,770 Me kaastunnet koos, jne. 48 00:01:42,770 --> 00:01:46,100 Lihtsalt tean, et ma olen siin nagu ressurss teile eesliinil 49 00:01:46,100 --> 00:01:51,830 aidata kutid nuputada, kuidas lahendada probleeme CS50 ja kaugemalgi. 50 00:01:51,830 --> 00:01:54,590 >> Minu email on andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Ma ka saata individuaalne kirjuta oma telefoninumbri see 52 00:01:58,390 --> 00:02:01,860 nii, et kõik ei ole kohta Internetis saab näha minu telefoninumber. 53 00:02:01,860 --> 00:02:03,640 Julgelt helistage mulle igal ajal. 54 00:02:03,640 --> 00:02:07,510 Tõsiselt, mu telefon on tavaliselt seotud minu käest. 55 00:02:07,510 --> 00:02:10,240 Ma ei pruugi vastata paari minutit. 56 00:02:10,240 --> 00:02:11,984 Ma ei pruugi vastata paari tunni jooksul. 57 00:02:11,984 --> 00:02:14,400 Aga ma ei saa teile garanteerida, kui Teile e-maili mulle, kui sa helistad mulle, 58 00:02:14,400 --> 00:02:17,404 teksti mulle, ma vastan 24 tunni jooksul. 59 00:02:17,404 --> 00:02:19,820 Sageli ma vastata enne et kuna ma saan aru, 60 00:02:19,820 --> 00:02:23,900 et igaüks sai mõned probleemid, ja sa tahad oma vastused 61 00:02:23,900 --> 00:02:26,110 tuleb vastata väga kiiresti. 62 00:02:26,110 --> 00:02:28,945 >> Kui te helistate mulle 30 minutit enne 63 00:02:28,945 --> 00:02:31,570 et tükk, mis on tingitud neljapäev night-- olla nagu, Andi, aita mind, 64 00:02:31,570 --> 00:02:35,380 Ma ei ole started-- ma annan Teile, et õlg nutta. 65 00:02:35,380 --> 00:02:41,520 Aga see võib olla aega mõelda kuidas seda teha, et järgmine kord. 66 00:02:41,520 --> 00:02:44,040 OKEI. 67 00:02:44,040 --> 00:02:44,944 Oops. 68 00:02:44,944 --> 00:02:45,850 Kuidas ma tagasi minna? 69 00:02:45,850 --> 00:02:48,140 Seal me läheme. 70 00:02:48,140 --> 00:02:52,310 >> Nii see muidugi on meil ton toetuste kõigile. 71 00:02:52,310 --> 00:02:54,640 Lisaks lihtsalt sektsioonid siin, mis sul 72 00:02:54,640 --> 00:02:57,000 Iga nädal saad veeta 90 Imeline minuti minuga, 73 00:02:57,000 --> 00:02:58,330 meil on ka tööaega. 74 00:02:58,330 --> 00:03:01,021 Kui paljud kutid on juba olnud tööaega abi? 75 00:03:01,021 --> 00:03:01,520 Hea. 76 00:03:01,520 --> 00:03:05,700 See on tõesti hea näha, sest me on töötajad üle 45 ajutised ja 77 00:03:05,700 --> 00:03:11,780 koolitatud selle käigus, et siin aidates kutid oma psets. 78 00:03:11,780 --> 00:03:14,580 >> Esmaspäeviti nad toimuvad Teal klassis 17 Hill House siin 79 00:03:14,580 --> 00:03:15,350 Yale'i. 80 00:03:15,350 --> 00:03:17,349 Teisipäeviti ja neljapäeviti, nad toimuvad Commons. 81 00:03:17,349 --> 00:03:20,010 8:00-11:00 päris palju igal nädalapäeval. 82 00:03:20,010 --> 00:03:21,620 Tule, tule välja. 83 00:03:21,620 --> 00:03:24,030 Iga probleem ei problem-- lihtsalt tulevad sisse, 84 00:03:24,030 --> 00:03:26,650 ja siis me aitame teil välja, et. 85 00:03:26,650 --> 00:03:31,640 >> Teiseks, lisaks tööaega ja lõigud, meil on ka lühikesed püksid. 86 00:03:31,640 --> 00:03:35,930 Kas keegi on kunagi näinud paar kohta lühikesed püksid või trajektooridega videos 87 00:03:35,930 --> 00:03:36,750 veebilehel? 88 00:03:36,750 --> 00:03:37,250 OKEI. 89 00:03:37,250 --> 00:03:39,510 Nii nad tõesti kasulik. 90 00:03:39,510 --> 00:03:42,470 Meie armas Harvard tootmine tiimide seal peal, et kooli 91 00:03:42,470 --> 00:03:47,910 kuni põhja, nad on filmitud ja toodetud Nende uskumatu läbikäiguks videod. 92 00:03:47,910 --> 00:03:52,290 >> Nad võtan teid samm-sammult läbi kuidas edasi minna probleemi lahendamiseks. 93 00:03:52,290 --> 00:03:56,340 Sageli, kui sa oled segaduses lihtne mõiste, ainsuses mõiste, 94 00:03:56,340 --> 00:03:59,780 heita, sest meil on arvatavasti Lühikese seda kusagil meie kodulehel. 95 00:03:59,780 --> 00:04:03,800 Ja see on tavaliselt suurepärane vahend otsida, kui sa oled esimene 96 00:04:03,800 --> 00:04:06,510 kaotas selle kohta, kuidas probleem. 97 00:04:06,510 --> 00:04:09,750 >> Kolmandaks on meil ka study50 ja reference50. 98 00:04:09,750 --> 00:04:15,650 Nii õppima 50 kohta Kodulehel on vaid link. 99 00:04:15,650 --> 00:04:21,500 See on, ma arvan, study.cs50.net või midagi sellist. 100 00:04:21,500 --> 00:04:22,860 Google'ist. 101 00:04:22,860 --> 00:04:24,229 Meil on palju slaide valmis. 102 00:04:24,229 --> 00:04:26,770 Meil on palju lühikesi pükse ja walkthroughs-- asjad kõik kompileeritud 103 00:04:26,770 --> 00:04:31,070 väga kena ja puhas kutid kõik sirvida, näe mõisted 104 00:04:31,070 --> 00:04:32,860 et sa oled segaduses. 105 00:04:32,860 --> 00:04:35,920 Vist oleks kaetud seal on study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- sarnased. 107 00:04:37,640 --> 00:04:41,510 Meil on palju erinevaid märkmeid kergesti kättesaadav teie käsutuses. 108 00:04:41,510 --> 00:04:44,450 Ja lõpuks, meil on, mida on nimetatakse CS50 Arutle, 109 00:04:44,450 --> 00:04:48,082 foorum, kus, kui õhtul sa teed teie probleemidele, ütleme, 110 00:04:48,082 --> 00:04:49,880 teil on küsimus. 111 00:04:49,880 --> 00:04:52,340 Logi sisse, et CS50 Arutle. 112 00:04:52,340 --> 00:04:53,190 Postita oma küsimus. 113 00:04:53,190 --> 00:04:55,820 Ja siis üks hundreds-- ehk thousands-- eakaaslastega 114 00:04:55,820 --> 00:04:57,960 võttes selles klassis Internetti sisse. 115 00:04:57,960 --> 00:05:01,182 Ja äkki keegi saab Teie vastus enne TA saab. 116 00:05:01,182 --> 00:05:03,390 See on sisuliselt lihtsalt Interneti-foorumis, et me kõik 117 00:05:03,390 --> 00:05:04,556 kasutada, et arutada meie probleeme. 118 00:05:04,556 --> 00:05:06,483 See on lahe. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> OKEI. 121 00:05:11,550 --> 00:05:13,220 Nii probleem seab. 122 00:05:13,220 --> 00:05:17,840 Oleme umbes õige paks probleem seatud kaks. 123 00:05:17,840 --> 00:05:20,570 Paljud meist on juba võitlesid läbi probleemi seatud üks. 124 00:05:20,570 --> 00:05:24,460 Teame juba, et võib-olla ootab viimase öö teha oma pset 125 00:05:24,460 --> 00:05:28,170 ei ole kõige targem tegu on CS50. 126 00:05:28,170 --> 00:05:32,380 >> Nõuandeid ja näpunäiteid peamiselt Edu on lugeda kogu spec. 127 00:05:32,380 --> 00:05:36,270 Kui paljud teist on juba loe spec pset 2? 128 00:05:36,270 --> 00:05:36,770 OKEI. 129 00:05:36,770 --> 00:05:39,840 See on kindel summa. 130 00:05:39,840 --> 00:05:43,210 Ma tean, et kutid on ilmselt tunnustatud tänaseks on näitajad on tõesti pikk. 131 00:05:43,210 --> 00:05:45,700 Nad on tõesti väga pikk. 132 00:05:45,700 --> 00:05:49,630 >> See on tõesti raske lugeda iga rida Selle hoolikalt sõna-sõnalt. 133 00:05:49,630 --> 00:05:52,780 Sa tahad lihtsalt koorima, kus ta ütleb teile midagi. 134 00:05:52,780 --> 00:05:54,459 Võin garanteerida teile, ei tee seda. 135 00:05:54,459 --> 00:05:56,750 Kui sa seda teha, sa oled ilmselt kavatse lasta kusagil 136 00:05:56,750 --> 00:05:58,458 kus ta ütleb teile kuidas alustada probleem 137 00:05:58,458 --> 00:06:01,140 või ta ütleb teile, mida nimi Teie probleem või ta ütleb teile, 138 00:06:01,140 --> 00:06:03,720 see on tõenäoliselt parim viis algust teha oma probleemiga. 139 00:06:03,720 --> 00:06:05,050 Ja siis sa kaduma. 140 00:06:05,050 --> 00:06:08,219 >> Kui proovite lugeda spec keskel, 141 00:06:08,219 --> 00:06:10,510 palju olulisem information--, et sa ei ole 142 00:06:10,510 --> 00:06:12,260 ilmselt võimeline tõesti ligipääsu. 143 00:06:12,260 --> 00:06:13,219 Nii et loe kogu spec. 144 00:06:13,219 --> 00:06:15,468 Püüdke lugeda kogu spec Enne tulevad osas 145 00:06:15,468 --> 00:06:17,360 sest siis, kui me rääkida pset, 146 00:06:17,360 --> 00:06:21,070 me kõik saame aimu kohta, mis toimub. 147 00:06:21,070 --> 00:06:25,169 >> Teiseks, see on kontseptsioon et ma tahaks viide 148 00:06:25,169 --> 00:06:26,710 palju vältel poolaastal. 149 00:06:26,710 --> 00:06:30,070 Aga sisuliselt vastavad meie poolel, eks? 150 00:06:30,070 --> 00:06:33,970 Me, kui teie TA ja Jason kui muidugi manager ja Scaz oma professor 151 00:06:33,970 --> 00:06:37,120 ja David oma professor ja kõik Teisest armas ajutise töötaja selle kursuse, 152 00:06:37,120 --> 00:06:39,830 assistendid selles course-- Me teeme oma parima, 153 00:06:39,830 --> 00:06:42,965 tagada, et teil on seatud kuni see õnnestub muidugi. 154 00:06:42,965 --> 00:06:43,840 Me hoidke osa. 155 00:06:43,840 --> 00:06:44,870 Me ametist tundi. 156 00:06:44,870 --> 00:06:47,087 Me vastame teie telefoni kõned, vastame teie e-kirju, 157 00:06:47,087 --> 00:06:49,670 teha kõike saame teha Veenduge, et teie küsimused on vastatud. 158 00:06:49,670 --> 00:06:51,460 >> Kuid meid aidata ka. 159 00:06:51,460 --> 00:06:52,450 Tutvu meie poolel. 160 00:06:52,450 --> 00:06:56,040 Kui sa tuled tööaega ei mindud punktist, ei 161 00:06:56,040 --> 00:07:02,060 Nähes loenguid, millel ei ole Idee, mis toimub, on nagu, mind aidata. 162 00:07:02,060 --> 00:07:04,350 Ma lähen nagu, noh, ma vabandan. 163 00:07:04,350 --> 00:07:06,410 See võib olla aeg laenata et õlg nutta, 164 00:07:06,410 --> 00:07:08,959 sest ma ei ole kindel mida ma saan teha, et aidata teil 165 00:07:08,959 --> 00:07:12,000 kui sa ei püüa vähemalt abi ise natuke alguses. 166 00:07:12,000 --> 00:07:12,910 Tutvu meie poolel. 167 00:07:12,910 --> 00:07:15,020 Tead, palun tulge valmis vastama ja saada 168 00:07:15,020 --> 00:07:16,353 valmis osalema materjali. 169 00:07:16,353 --> 00:07:19,342 See teeb asjad nii palju lihtsam kõigile osapooltele. 170 00:07:19,342 --> 00:07:22,970 Jah, see on päris palju see. 171 00:07:22,970 --> 00:07:23,720 >> Hindamisviis. 172 00:07:23,720 --> 00:07:29,250 Nii ainekava, see on päris põhjalikku selle kohta, kuidas me hinne. 173 00:07:29,250 --> 00:07:32,440 Aga sisuliselt jaotus Selles on 50% oma hinne 174 00:07:32,440 --> 00:07:34,530 saab psets, mille on armas, sest see on 175 00:07:34,530 --> 00:07:37,400 kuhu kulutada suur enamuse oma kursuse aega. 176 00:07:37,400 --> 00:07:39,854 Viktoriinid 40%, ja teie Lõplik projekt on 10%. 177 00:07:39,854 --> 00:07:42,520 Seal on kaks viktoriinid kogu Kursuse semestri. 178 00:07:42,520 --> 00:07:47,050 Ma arvan, et ajad ja kuupäevad on nimetatud ka ainekava. 179 00:07:47,050 --> 00:07:49,210 >> Nii, et me liigitamise oma psets 180 00:07:49,210 --> 00:07:53,930 on see, et meil on sisuliselt neli väärtused, et anname igale palgaastmele. 181 00:07:53,930 --> 00:07:57,250 Meil on väärtus ulatus, õigsust, disaini ja stiili. 182 00:07:57,250 --> 00:08:01,530 Nii nagu te näete, et on selline meie arvutamise valem psets. 183 00:08:01,530 --> 00:08:03,640 Kolm anname kõige kaalu õigsust, 184 00:08:03,640 --> 00:08:06,140 sest ilmselt oma treener Tuleks testitakse juhtudel 185 00:08:06,140 --> 00:08:08,480 et me tahame seda testida. 186 00:08:08,480 --> 00:08:11,000 >> Te kõik on check50 teie käsutuses. 187 00:08:11,000 --> 00:08:13,730 See on väga kasulik funktsioon et kutid saavad kõik 188 00:08:13,730 --> 00:08:17,560 laadige kood meie serverid kus me kontrollime seda sinu jaoks. 189 00:08:17,560 --> 00:08:20,800 Ja sa oled näinud neid kurba nägu, smiley nägu. 190 00:08:20,800 --> 00:08:22,119 Nad on tõesti väga abivalmis. 191 00:08:22,119 --> 00:08:23,910 Palun ärge olla õpilase et meeldib üritab 192 00:08:23,910 --> 00:08:26,230 hardcode kõik vastused neile. 193 00:08:26,230 --> 00:08:30,050 Olen kindlasti näinud pset, kus keegi nägi kõik väärtused check50 194 00:08:30,050 --> 00:08:33,429 ja nad lihtsalt kõva kodeeritud in-- kui see number, välja printida see number. 195 00:08:33,429 --> 00:08:35,080 Kui see number, välja printida, et number. 196 00:08:35,080 --> 00:08:36,090 Ära tee seda. 197 00:08:36,090 --> 00:08:39,360 >> Kuigi tehniliselt check50 on õige, 198 00:08:39,360 --> 00:08:41,809 teed lahendada Probleem ei ole õige. 199 00:08:41,809 --> 00:08:45,770 Nii lihtsalt kasutada check50 säästlikult. 200 00:08:45,770 --> 00:08:48,497 Aga ka veenduda, et teil mõista, kuidas see toimib, 201 00:08:48,497 --> 00:08:50,580 programmi toimimise Lisaks check50, 202 00:08:50,580 --> 00:08:53,120 sest me ei saa katsetada igat võimalik puhul check50. 203 00:08:53,120 --> 00:08:55,440 Me testime mõned neist. 204 00:08:55,440 --> 00:09:00,390 >> Disain on sisuliselt kuidas hästi kavandatud on oma kood? 205 00:09:00,390 --> 00:09:04,150 Kui te olete kopida mitu koodiread palju, palju kordi. 206 00:09:04,150 --> 00:09:06,960 Võib-olla sa ei ole päris parima disaini oma koodi. 207 00:09:06,960 --> 00:09:09,470 Ehk on aeg lisada, et loop. 208 00:09:09,470 --> 00:09:12,090 Sisuliselt on see siin on lihtsalt kõik umbes üritavad teha oma kood, 209 00:09:12,090 --> 00:09:17,010 üritan kirjutada oma koodi nii tõhusalt kui võimalik, et teie programm töötab 210 00:09:17,010 --> 00:09:19,630 nii kiiresti kui võimalik. 211 00:09:19,630 --> 00:09:20,996 >> Lõpuks on meil stiilis. 212 00:09:20,996 --> 00:09:24,360 Nii stiil on omamoodi meelevaldne, subjektiivne mõiste. 213 00:09:24,360 --> 00:09:27,470 Ma tean, et me ametlikult on stiil 50 juhend CS50, 214 00:09:27,470 --> 00:09:30,050 kus ta ütleb teile, oh, sa peaks olema ruumi siin. 215 00:09:30,050 --> 00:09:32,220 Sa peaksid liiki vormi koodi sel viisil. 216 00:09:32,220 --> 00:09:34,070 Sa peaksid nimetama asju nii. 217 00:09:34,070 --> 00:09:38,180 >> Ma tõesti ei hooli, per se, kuidas valid stiilis oma kood, 218 00:09:38,180 --> 00:09:39,840 just nii kaua, kui teil püsida järjepidev. 219 00:09:39,840 --> 00:09:43,732 Näiteks, kui soovid jäta ruumi pärast nelja 220 00:09:43,732 --> 00:09:45,690 Enne oma nelja silmuse, just seda, et iga kord. 221 00:09:45,690 --> 00:09:46,523 Ärge sellist teha. 222 00:09:46,523 --> 00:09:47,730 Ära tee seda muul ajal. 223 00:09:47,730 --> 00:09:51,046 Kui soovite, et hoida lokkis traksid ruumi teatud viisil, 224 00:09:51,046 --> 00:09:52,170 lihtsalt alati see nii. 225 00:09:52,170 --> 00:09:54,628 Ärge sellist teha seda kusagil Siin ja kusagil pole. 226 00:09:54,628 --> 00:09:57,010 Kui me liigitamine, see on tõesti raske 227 00:09:57,010 --> 00:09:59,420 kui ma ei tea, kuidas sa vormindamist koodi 228 00:09:59,420 --> 00:10:02,064 asjad on hull ja kohatu. 229 00:10:02,064 --> 00:10:04,980 Kui sa lihtsalt hoida seda järjekindlalt, et see on palju lihtsam minu jaoks, sest suurem 230 00:10:04,980 --> 00:10:06,310 saaks lugeda oma koodi. 231 00:10:06,310 --> 00:10:09,393 See on palju lihtsam kui õpilane et oleks võimalik vaadata läbi oma koodi 232 00:10:09,393 --> 00:10:11,720 ja vaata, mis sul viga on see kaldkriips, miks seal on küsimusi. 233 00:10:11,720 --> 00:10:15,740 Stiil on üks lihtsamaid asju kutid teha, et saada täis skoori. 234 00:10:15,740 --> 00:10:18,770 Sisuliselt, kui sa just huvita, kui maksad viie minuti tähelepanu 235 00:10:18,770 --> 00:10:22,760 oma koodi iga nädal, siis tuleb saada täis stiili punktid. 236 00:10:22,760 --> 00:10:26,020 >> Lõpuks on meil, mida nimetatakse koefitsiendi ulatus. 237 00:10:26,020 --> 00:10:28,890 Scope-- Ma tean, et see on suur Sõna, eriti selles klassis. 238 00:10:28,890 --> 00:10:31,030 Aga ulatus, kõik, mis vahenditega on see, et sa oled püüdnud 239 00:10:31,030 --> 00:10:33,670 psets parima teie võimet. 240 00:10:33,670 --> 00:10:37,180 Kui lülitate kolmes oma neli probleemi 241 00:10:37,180 --> 00:10:39,460 ja ei püüagi Viimane, oled ilmselt 242 00:10:39,460 --> 00:10:41,630 kavatse kaotada mõned punktid ulatus. 243 00:10:41,630 --> 00:10:44,560 >> Isegi kui sa lihtsalt alustada probleemi, teha oma parima, et kõndige läbi. 244 00:10:44,560 --> 00:10:47,691 Isegi kui see ei tööta, lülitage see sisse, sest see näitab ja tõestab 245 00:10:47,691 --> 00:10:50,190 meile, et sa üritad, et proovisid probleemi seatud 246 00:10:50,190 --> 00:10:51,430 parima oma võimete. 247 00:10:51,430 --> 00:10:53,800 Ja siis saame anda teile täis punkte ulatus. 248 00:10:53,800 --> 00:10:58,715 >> Ulatus on väga oluline ka siis, kui me rääkida madalaim pset skoor langus. 249 00:10:58,715 --> 00:11:02,010 Nii üle käigus semester, teiega on üheksa psets. 250 00:11:02,010 --> 00:11:05,340 Ja me tegelikult kukkumine madalaim tulemus välja need üheksa, 251 00:11:05,340 --> 00:11:07,670 kuid ainult siis, kui teil on täies ulatuses punktid. 252 00:11:07,670 --> 00:11:11,120 >> Nii et kui teil pöörduda mittetäieliku pset, Kahjuks ei saa me tilk, et üks, 253 00:11:11,120 --> 00:11:13,540 sest teie ulatus punktid ei lõpetanud. 254 00:11:13,540 --> 00:11:16,570 Nii et isegi kui teil on kohutav nädal kus sa oled suremas ja sa oled haige 255 00:11:16,570 --> 00:11:20,040 või teie koer sureb, teie kass sureb, ja sa ülekoormatud kodutöö, 256 00:11:20,040 --> 00:11:21,074 lihtsalt püüdke pset. 257 00:11:21,074 --> 00:11:22,490 Kas see parim teie võimet. 258 00:11:22,490 --> 00:11:23,840 Kui see ei tööta, see ei loe. 259 00:11:23,840 --> 00:11:24,506 Lihtsalt lülita see sisse. 260 00:11:24,506 --> 00:11:26,590 Vähemalt saame anda sa punkte pingutust. 261 00:11:26,590 --> 00:11:28,510 >> A jõupingutusi selles klassis. 262 00:11:28,510 --> 00:11:30,170 Vähemalt väikseim punktisumma tilga vaeva. 263 00:11:30,170 --> 00:11:32,354 Nii et jah. 264 00:11:32,354 --> 00:11:33,270 See on päris palju see. 265 00:11:33,270 --> 00:11:36,521 Kas kellelgi on küsimusi, palju sellest, kuidas me hinne klassis? 266 00:11:36,521 --> 00:11:37,187 Või mõni neist? 267 00:11:37,187 --> 00:11:41,220 Kõiki neid nii far-- sektsioonid, tööaega? 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 OKEI. 271 00:11:47,800 --> 00:11:51,260 >> Nii et see on teema, mis ei ole keegi tõesti meeldib rääkida. 272 00:11:51,260 --> 00:11:53,084 Ma tõesti ei meeldi sellest rääkida. 273 00:11:53,084 --> 00:11:55,250 Te ei taha kuulda mind rääkida. 274 00:11:55,250 --> 00:11:57,690 Aga kahjuks me kõik on sellest rääkida. 275 00:11:57,690 --> 00:12:00,110 David veetis 20 minutit loengu räägi sellest. 276 00:12:00,110 --> 00:12:02,580 Ja see on teema akadeemilise aususe. 277 00:12:02,580 --> 00:12:08,110 >> Nii et me kõik siin on ilmselt kirjutatud essee millalgi meie Yale karjääri. 278 00:12:08,110 --> 00:12:11,800 Me oleme ilmselt saanud rääkida, kus me oleme öeldi, et ei Plagioida meie essee, 279 00:12:11,800 --> 00:12:13,940 sest, et töö ei ole meie. 280 00:12:13,940 --> 00:12:18,109 Computer Science, meil sama liiki mõiste. 281 00:12:18,109 --> 00:12:20,150 Kõik tööd, et te esitate, kõik kirjutatud koodi 282 00:12:20,150 --> 00:12:21,900 peaks olema kood, et olete kirjutanud. 283 00:12:21,900 --> 00:12:24,280 Kui ei ole koodi, mis sa oled kopeeritud kusagilt mujalt. 284 00:12:24,280 --> 00:12:26,777 Ei tohiks olla kood, mis olete googled ja plopped sisse 285 00:12:26,777 --> 00:12:28,360 ja sa tõesti ei tea, kas see toimib. 286 00:12:28,360 --> 00:12:32,440 Sa selline on tunne mida ta teeb, kuid tegelikult mitte. 287 00:12:32,440 --> 00:12:36,562 Kui kahtled, sisuliselt, see on lihtsalt mõistlik. 288 00:12:36,562 --> 00:12:38,520 Meie õppekava on meil terve nimekiri asjadest 289 00:12:38,520 --> 00:12:40,560 näeme mõistlikuks versus ole mõistlik. 290 00:12:40,560 --> 00:12:43,820 >> Näiteks mõistlik on sinu ja su sõber 291 00:12:43,820 --> 00:12:47,360 arutada, milline on parim viis minna umbes loogiliselt probleemi lahendamiseks. 292 00:12:47,360 --> 00:12:48,910 See on üsna mõistlik. 293 00:12:48,910 --> 00:12:53,244 Mis ei oleks mõistlik on, kui sa poisid tulid kokku, kirjutada sama kood, 294 00:12:53,244 --> 00:12:54,410 ja lahkus sama koodi. 295 00:12:54,410 --> 00:12:56,302 See ei ole mõistlik. 296 00:12:56,302 --> 00:12:57,510 Sama asi, millist essee. 297 00:12:57,510 --> 00:12:59,290 Kui soovite, et arutada su sõber, hei, 298 00:12:59,290 --> 00:13:00,220 see on see, mida ma tahan kirjutada. 299 00:13:00,220 --> 00:13:02,500 Need on sammud ma tahan võta sellest kirjutada, suur. 300 00:13:02,500 --> 00:13:03,208 See on imeline. 301 00:13:03,208 --> 00:13:04,790 Pane üksteisega koostööd. 302 00:13:04,790 --> 00:13:06,540 Kui te poisid alustada kirjalikult sama asi, 303 00:13:06,540 --> 00:13:10,020 pöörduda sama essee, mis on vähem OK. 304 00:13:10,020 --> 00:13:13,200 Nii et kui kahtled, lihtsalt ei tee seda. 305 00:13:13,200 --> 00:13:16,940 >> Siin on CS50, meil on skriptid et run automatiseerida testida 306 00:13:16,940 --> 00:13:21,740 mitte ainult õigsuse koodi, vaid ka unikaalsust oma koodi. 307 00:13:21,740 --> 00:13:25,920 Nii et palun ärge pange meid seisukoha võttes viidata oma asja EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Palun lihtsalt kõigile, olgem lihtsalt muuta see suurepärane kogemus. 309 00:13:31,110 --> 00:13:33,600 Igaüks õpib paremini, me kõik oleme õnnelikumad, 310 00:13:33,600 --> 00:13:37,926 ja me kõik oleme loodud õnnestub see muidugi. 311 00:13:37,926 --> 00:13:39,800 Midagi, mis on väga ainulaadne selle klassi 312 00:13:39,800 --> 00:13:42,660 et ma arvan, et igaüks peaks tõesti pöörata tähelepanu, et meil on 313 00:13:42,660 --> 00:13:44,930 mida nimetatakse kahetsust § meie õppekava. 314 00:13:44,930 --> 00:13:50,010 Nii et sisuliselt 72 tunni jooksul, kui sa usud sa oled teinud midagi 315 00:13:50,010 --> 00:13:53,240 sa ei ole päris kindel ei asjakohane, siis tulevad meile. 316 00:13:53,240 --> 00:13:57,220 Lubame teile, et 72 tunni jooksul me käsitleda juhtumit ise 317 00:13:57,220 --> 00:13:59,820 viitamata suurem asutuse administratsioon. 318 00:13:59,820 --> 00:14:03,100 >> Nii et kui sa tuled minu juurde ja öelda, Andi, hei, Mul on väga kahju, 319 00:14:03,100 --> 00:14:07,620 aga ma arvan, et seal on paar rida minu kood eile õhtul, et ma mingi googled, 320 00:14:07,620 --> 00:14:10,120 maha tuli Stack Overflow, kopeerida ja kleepida, 321 00:14:10,120 --> 00:14:13,680 ja ma olen tõesti kahju sellest, andke teada. 322 00:14:13,680 --> 00:14:16,900 Palun ärge lihtsalt lase tal mädanema ja loodan, et ma kinni püüda. 323 00:14:16,900 --> 00:14:17,784 Me püüda seda. 324 00:14:17,784 --> 00:14:18,450 Just minu juurde tulla. 325 00:14:18,450 --> 00:14:20,520 Tahaksin teada 72 tunni jooksul. 326 00:14:20,520 --> 00:14:22,240 Me nuputada lahendus. 327 00:14:22,240 --> 00:14:26,679 Ja me lubame, et me ei osuta ülikooli asutused sisuliselt. 328 00:14:26,679 --> 00:14:29,220 Nii et see on teie endi huvides lihtsalt olla aus kõigiga 329 00:14:29,220 --> 00:14:31,720 seotud muidugi. 330 00:14:31,720 --> 00:14:34,630 >> OKEI. 331 00:14:34,630 --> 00:14:35,240 OKEI. 332 00:14:35,240 --> 00:14:37,800 Nüüd, kiiresti enne Ma liikuda, kas keegi 333 00:14:37,800 --> 00:14:42,670 on küsimusi logistika kuidas kursused me läheme sõitma, 334 00:14:42,670 --> 00:14:45,982 kuidas lõigud ei kavatse joosta, ükskõik mis? 335 00:14:45,982 --> 00:14:46,711 OKEI. 336 00:14:46,711 --> 00:14:47,210 Jah. 337 00:14:47,210 --> 00:14:48,126 >> Sihtrühm: [kuuldamatu]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI PENG: Jah. 340 00:14:51,080 --> 00:14:54,850 Nii quizzes-- kui paljud teist on esmaspäeva / kolmapäev osa? 341 00:14:54,850 --> 00:14:56,700 Kui paljud teist on teisipäeval / neljapäev? 342 00:14:56,700 --> 00:14:58,550 OK, nii et see on kindel split siin. 343 00:14:58,550 --> 00:15:00,900 Nii nii, et võtame see Yale'i on, et me 344 00:15:00,900 --> 00:15:04,040 on plaanis teha kaks eraldi quizzes-- üks iga section-- et 345 00:15:04,040 --> 00:15:06,160 võetakse ajal klassis. 346 00:15:06,160 --> 00:15:09,310 Ma arvan, et see oktoobril oktoobri lõpus, midagi sellist, nagu nädal üks 347 00:15:09,310 --> 00:15:10,794 Viktoriini. 348 00:15:10,794 --> 00:15:11,960 Jah, nii lihtsalt tulla klassi. 349 00:15:11,960 --> 00:15:13,920 Selle esmaspäeval või kolmapäeval siis võtan viktoriini. 350 00:15:13,920 --> 00:15:16,336 Selle teisipäev või neljapäev, saate teha teistsuguse viktoriin. 351 00:15:16,336 --> 00:15:18,570 Aga samast materjalist kaetakse. 352 00:15:18,570 --> 00:15:19,160 Jah. 353 00:15:19,160 --> 00:15:20,660 Hea küsimus. 354 00:15:20,660 --> 00:15:21,160 Jah. 355 00:15:21,160 --> 00:15:23,260 >> Sihtrühm: Kus me minge vaadake meie klassid? 356 00:15:23,260 --> 00:15:23,926 >> ANDI PENG: Jah. 357 00:15:23,926 --> 00:15:28,420 Nii ma siis välja saatma e-mail iganes igal nädalal 358 00:15:28,420 --> 00:15:31,460 kui viktoriinid on graded-- või sorry, kui psets liigitatakse. 359 00:15:31,460 --> 00:15:34,120 Psets tavaliselt välja poolt keskpäeval või reedel. 360 00:15:34,120 --> 00:15:37,540 Nii et ma luban, et ma teen seda proovida saada neid sulle tagasi 361 00:15:37,540 --> 00:15:40,000 lõunaks järgmisel reedel. 362 00:15:40,000 --> 00:15:44,950 >> Kui ma hinne pset, ma saadan välja märguande klass raamat 363 00:15:44,950 --> 00:15:47,070 mis ütleb teile oma skoori saab vaadata online. 364 00:15:47,070 --> 00:15:52,022 Nii õige sel nädalal, kui ma lõpetada liigitamise eelmisel nädalal psets, 365 00:15:52,022 --> 00:15:54,230 kutid saada e-mail teate räägin teile, 366 00:15:54,230 --> 00:15:55,870 hey see on koht, kus sa minna, et vaadata oma hindeid. 367 00:15:55,870 --> 00:15:57,680 Ja näed iga jaotus oma klassid. 368 00:15:57,680 --> 00:15:58,555 Sa näed kommentaare. 369 00:15:58,555 --> 00:16:00,360 Oh, kiire asi ka. 370 00:16:00,360 --> 00:16:03,060 Kommentaar sektsiooni suur Raamat on koht, kus ma ilmselt 371 00:16:03,060 --> 00:16:05,300 veedavad suurema osa oma ajast mune. 372 00:16:05,300 --> 00:16:07,094 Nii et üks asi, mis on tõesti oluline, kui 373 00:16:07,094 --> 00:16:09,010 kutid vaatad Sinu klassid teie psets 374 00:16:09,010 --> 00:16:11,400 ei otsi ainult füüsilisel tulemus 375 00:16:11,400 --> 00:16:14,630 kuid võtab samuti aega tõesti lugeda minu kommentaare. 376 00:16:14,630 --> 00:16:17,820 >> Sageli, mis annab teile tagasisidet kuidas sa oma probleemi lahendamisel. 377 00:16:17,820 --> 00:16:20,480 Kui teil on vaja teha midagi veidi parem, 378 00:16:20,480 --> 00:16:24,080 konstruktiivne kriitika on tavaliselt Parim toodud need kommentaarid lõik. 379 00:16:24,080 --> 00:16:26,950 Nii et palun, palun, ma lähen veeta aega kirjutate kommentaare. 380 00:16:26,950 --> 00:16:30,440 Palun, ma tõesti hindan seda kui te poisid oleks lugeda neid kommentaare. 381 00:16:30,440 --> 00:16:31,170 OKEI. 382 00:16:31,170 --> 00:16:34,150 Cool. 383 00:16:34,150 --> 00:16:34,680 >> Hästi. 384 00:16:34,680 --> 00:16:40,680 Nii et me ei kavatse hakata rääkima ja lihtsalt vaatab kiiresti 385 00:16:40,680 --> 00:16:45,040 mõned materjal nädal null lihtsalt nii et me oleme 386 00:16:45,040 --> 00:16:48,760 paremal lehel algavad sel nädalal probleemid. 387 00:16:48,760 --> 00:16:52,600 Nii et samas silmus on üks Kõigi kolme silmuseid 388 00:16:52,600 --> 00:16:54,510 Arutasime varem selles klassis. 389 00:16:54,510 --> 00:16:57,060 >> Aega loop sisuliselt on kirjutatud süntaks 390 00:16:57,060 --> 00:17:00,666 kus sel ajal, kui teatud tingimus, Selleks korduvalt, eks? 391 00:17:00,666 --> 00:17:02,040 Mõtle selle graafilise siin. 392 00:17:02,040 --> 00:17:04,780 Sa lähed alata Teatud hetkel oma koodi. 393 00:17:04,780 --> 00:17:09,030 Sa lähed siseneda loop seisukorras kui-- Ma ei sead ühendit väljakirjutada x on väiksem kui üks. 394 00:17:09,030 --> 00:17:11,677 >> Kui see on tõsi, sa lähed täita loop keha. 395 00:17:11,677 --> 00:17:14,010 Ja sa lähed hoida teed et jälle, jälle, 396 00:17:14,010 --> 00:17:17,900 üle ja over-- mistõttu on loop-- kuni teie seisund muutub 397 00:17:17,900 --> 00:17:19,079 vale. 398 00:17:19,079 --> 00:17:22,140 Nii et sel viisil, mõneks ajaks loop on üks lihtsamaid viise 399 00:17:22,140 --> 00:17:25,619 kirjutada mingit tingimusel, et peab kordama üle ja üle ja üle. 400 00:17:25,619 --> 00:17:28,109 Lihtsalt olla ettevaatlik, kui sa oled kirjalikult mingit loop 401 00:17:28,109 --> 00:17:32,140 et teil on exit tingimus samuti update kõik, 402 00:17:32,140 --> 00:17:36,714 on nii, et teie loop ei ole lihtsalt sõidetakse ja üle lõpmatult. 403 00:17:36,714 --> 00:17:38,630 Igal juhul, sa lähed et soovite veenduda 404 00:17:38,630 --> 00:17:42,670 et siis muutub teatud osa oma koodi või lõpus silmuse 405 00:17:42,670 --> 00:17:46,680 lihtsalt veenduda, et teil on võimalus on liikuda seisukorras 406 00:17:46,680 --> 00:17:48,400 mis sa tahad, et rahuldada lõpuni. 407 00:17:48,400 --> 00:17:50,239 Kas see mõtet kõigile? 408 00:17:50,239 --> 00:17:52,530 Me lihtsalt ei taha olla haaratud selle spiraali, kus 409 00:17:52,530 --> 00:17:55,710 me minna ringi ja ringi ja ei ole nii, et murda loop. 410 00:17:55,710 --> 00:17:58,844 Ja iga loop sisuliselt on lahenduseks oleks. 411 00:17:58,844 --> 00:17:59,344 OKEI. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Teiseks, paljud teist Teie Mario psets 414 00:18:06,060 --> 00:18:08,910 Tõenäoliselt oli tööle Seda ahelat. 415 00:18:08,910 --> 00:18:11,802 Seda nimetatakse do samas loop. 416 00:18:11,802 --> 00:18:14,510 Esiteks saab keegi mulle öelda, Mis vahe on do 417 00:18:14,510 --> 00:18:16,586 samas loop ja samas loop on? 418 00:18:16,586 --> 00:18:17,086 Jah. 419 00:18:17,086 --> 00:18:21,030 >> Sihtrühm: Do samas loop jookseb esimene [kuuldamatu]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI PENG: Jah, täpselt. 421 00:18:22,120 --> 00:18:27,130 Nii do samas silmus teeb seda alati olenemata on sees do, sulgudes 422 00:18:27,130 --> 00:18:30,520 seal ja kas see tingimus Enne kontrollimist the-- kahju, 423 00:18:30,520 --> 00:18:32,940 kas see kood enne kontrollimine seisukorras. 424 00:18:32,940 --> 00:18:37,200 Ja see on eriti oluline meile Siit selles klassis, sest enamik korda 425 00:18:37,200 --> 00:18:41,450 me tahame seda küsib kasutaja jaoks mingi sisend. 426 00:18:41,450 --> 00:18:43,520 Ja siis, sõltuvalt sisend nad annavad meile 427 00:18:43,520 --> 00:18:46,150 siis saame hinnata, oh, teha peame kallutada neid uuesti? 428 00:18:46,150 --> 00:18:49,930 >> Nii Mario, kui kasutaja saatis sulle negatiivne kõrgust, näiteks 429 00:18:49,930 --> 00:18:52,990 sa lähed esmalt kiire ja mida iganes on sees. 430 00:18:52,990 --> 00:18:54,820 Siis sa lähed, et kontrollida samal ajal. 431 00:18:54,820 --> 00:18:57,570 Sa tead, on negatiivne 1, on see, et positiivne arv? 432 00:18:57,570 --> 00:19:00,680 Kui see ei ole, ma lähen tagasi ja korrake do ja korrake 433 00:19:00,680 --> 00:19:03,950 ja korrata ja korrata, kuni nad Lõpuks annab sulle mitmeid, mis sulle meeldib, 434 00:19:03,950 --> 00:19:07,002 et me kõik kasutavad meie koodi. 435 00:19:07,002 --> 00:19:09,210 See on päris oluline sisuliselt iga kasutaja sisend. 436 00:19:09,210 --> 00:19:11,760 Võin garanteerida teile korda pset, kus 437 00:19:11,760 --> 00:19:15,070 Palume sisestada mingit koodi, me oleme 438 00:19:15,070 --> 00:19:17,540 Tõenäoliselt annan teile proovikivi, kus me oleme 439 00:19:17,540 --> 00:19:21,200 annan sulle midagi halba, mis on kavatsen proovida murda koodi. 440 00:19:21,200 --> 00:19:25,044 >> Kui me püüame palun-sisend täisarv, siis võib lihtsalt teile string 441 00:19:25,044 --> 00:19:26,460 ja kuidas te hakkama. 442 00:19:26,460 --> 00:19:30,610 Kui me palume teil võtta tööle vanusest, me võime teile negatiivne number 443 00:19:30,610 --> 00:19:32,340 kuidas te hakkama. 444 00:19:32,340 --> 00:19:37,260 Lihtsalt veenduge, et poisid on testimine juhtumeid, kus sa ei saa parim 445 00:19:37,260 --> 00:19:38,590 sisend, ütleme lihtsalt. 446 00:19:38,590 --> 00:19:40,510 Ja teha, kui silmus on sageli parim 447 00:19:40,510 --> 00:19:45,260 kuidas kujundada oma koodi nii et ta vastab nimetatud kohaldamisalasse. 448 00:19:45,260 --> 00:19:45,760 OKEI. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> OKEI. 451 00:19:49,470 --> 00:19:53,270 Nii et see on tõenäoliselt kõige keeruline loop kolmest 452 00:19:53,270 --> 00:19:54,990 et me vaatasime siiani. 453 00:19:54,990 --> 00:19:56,689 Ja tundub väga hirmutav alguses. 454 00:19:56,689 --> 00:19:59,730 Aga ma garanteerin teile, kui te poisid saama, kuidas kasutada silmus, 455 00:19:59,730 --> 00:20:03,320 see on üks kõige kasulikum asju, kõige kasulikud vahendid oma arsenal 456 00:20:03,320 --> 00:20:05,300 edasiliikumise selles klassis. 457 00:20:05,300 --> 00:20:09,920 >> Nii näiteks Scratch, meil oli see väga lihtne blokeerida 458 00:20:09,920 --> 00:20:13,180 et just ütlesid korrata teatud laused teatud arv kordi. 459 00:20:13,180 --> 00:20:16,260 Muide, SAJ-- see on Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 Me sageli kirjutama meie e-kirju SAJ. 461 00:20:18,740 --> 00:20:20,360 Kui me ütleme SAJ, ei tohi segi. 462 00:20:20,360 --> 00:20:22,630 See on lihtsalt meie. 463 00:20:22,630 --> 00:20:28,600 >> Nii Scratch, suutsime olla plokk, mis ütles, korrata Ma armastan SAJ! 464 00:20:28,600 --> 00:20:29,430 10 korda. 465 00:20:29,430 --> 00:20:30,130 Väga lihtne. 466 00:20:30,130 --> 00:20:32,302 Loogika, et on väga, väga lihtne, eks? 467 00:20:32,302 --> 00:20:35,260 Tahan kõigepealt läbida esimesel aega ja vaata, et teist korda 468 00:20:35,260 --> 00:20:38,510 ja vaata, et kolmandat korda, jne ja nii edasi, kuni jõuad 10. 469 00:20:38,510 --> 00:20:41,960 >> Ja kuidas me kujutaks, et kood on lihtsalt läbi lihtsa silmus. 470 00:20:41,960 --> 00:20:45,440 Nii, sa lähed, et kuulutada Teie muutuva Siit võivad sel juhul 471 00:20:45,440 --> 00:20:46,349 kusjuures int. 472 00:20:46,349 --> 00:20:47,390 Me läheme nime i. 473 00:20:47,390 --> 00:20:49,500 Me läheme selle vormindamiseks 0. 474 00:20:49,500 --> 00:20:52,490 Ja seiskumise väljaanne on saab olema i on väiksem kui 10. 475 00:20:52,490 --> 00:20:54,622 Ja uuendus saab olema i ++. 476 00:20:54,622 --> 00:20:57,750 >> Ja kontuuris, siis läheb täita kuni lõpuks see 477 00:20:57,750 --> 00:21:01,490 ainulaadset lõppu condition-- kus Juhul, see läheb katki silmus. 478 00:21:01,490 --> 00:21:04,600 Seal peaks olema kraami, mida poisid on igasugu näinud 479 00:21:04,600 --> 00:21:07,270 ja tuli teha oma probleemi seatud üks. 480 00:21:07,270 --> 00:21:12,310 Kas kellelgi on mingeid küsimusi osas ette silmad kohe? 481 00:21:12,310 --> 00:21:12,930 OKEI. 482 00:21:12,930 --> 00:21:13,430 Hea. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> OKEI. 485 00:21:18,620 --> 00:21:22,270 Nii neile, kes on loe pset spec sel nädalal 486 00:21:22,270 --> 00:21:27,690 tean, et me ei kavatse on tööle midagi, mida nimetatakse ASCII ja ASCII tabelis. 487 00:21:27,690 --> 00:21:32,380 Taavet loengus läks lühidalt kuidas arvutid essentially-- kõike 488 00:21:32,380 --> 00:21:35,410 kodeeritakse arvuti binaarne, on ühtede ja nullide. 489 00:21:35,410 --> 00:21:39,740 Ja nii, et arvutid suudavad salvestada erinevaid väärtusi lisaks 490 00:21:39,740 --> 00:21:44,360 et ühtede ja nullide on läbi kaardistamine need numbrid esindama teisi numbrit 491 00:21:44,360 --> 00:21:47,220 või sisuliselt muid sümboleid. 492 00:21:47,220 --> 00:21:49,810 >> Nii Sellisel juhul teeb ASCII table-- kõik see 493 00:21:49,810 --> 00:21:53,600 on kaart tähemärki või sümbolit, et numbrid. 494 00:21:53,600 --> 00:21:57,385 Nii lähtekoodi faili Sinu computer-- ta näeb, 495 00:21:57,385 --> 00:22:00,010 hey, hunnik nulle ja need, ühtede ja nullide, ühtede ja nullide. 496 00:22:00,010 --> 00:22:02,350 See, mida hoitakse Tegelik mälu arvuti. 497 00:22:02,350 --> 00:22:04,750 >> Aga kui meie, inimesed tahavad arvutiga suhelda, 498 00:22:04,750 --> 00:22:08,249 me want-- öelda, näiteks, kui ma tahan suur- A, 499 00:22:08,249 --> 00:22:10,540 Ma vajan viis ütlen arvuti, oh, 500 00:22:10,540 --> 00:22:16,300 kui ma kirjutada suur- A, ma mõtlen Selle esinduse binaarne. 501 00:22:16,300 --> 00:22:22,260 >> Ja nii, kuidas me seda teeme on viskas suvaline asi, mida nimetatakse ASCII tabel, 502 00:22:22,260 --> 00:22:25,020 kus meie, inimesed, nagu programmeerijad, mõni aeg tagasi, 503 00:22:25,020 --> 00:22:28,660 meil meelevaldselt otsustatud, et me ei kavatse määrata nende arvu 504 00:22:28,660 --> 00:22:30,960 väärtused need märgid. 505 00:22:30,960 --> 00:22:32,720 >> Nii kutid google seda online. 506 00:22:32,720 --> 00:22:37,120 Ma arvan, et seal on link sellele oma pset-- lihtsalt ASCII kaardilaud ASCII 507 00:22:37,120 --> 00:22:37,720 tabelis. 508 00:22:37,720 --> 00:22:40,722 See lihtsalt tähendab binaarne numbrid tähemärki. 509 00:22:40,722 --> 00:22:42,930 Ja see saab olema väga kasulik teie probleem komplekt 510 00:22:42,930 --> 00:22:45,470 kui soovite arvutada midagi või kui te 511 00:22:45,470 --> 00:22:47,880 soovite kuvada teatud tegelased või täisarvud 512 00:22:47,880 --> 00:22:50,327 või manipuleerida teatud tegelased. 513 00:22:50,327 --> 00:22:52,160 See saab olema väga oluline, et te kõik 514 00:22:52,160 --> 00:22:55,140 tea, kuidas navigeerida ASCII tabelis. 515 00:22:55,140 --> 00:23:01,260 >> Nii näiteks suurtäheliseks esindab mitmeid 65. 516 00:23:01,260 --> 00:23:04,207 Ja väiketähti esindab 97. 517 00:23:04,207 --> 00:23:07,040 Seega on oluline teada, et Erinevus nende kahe vahel väärtused 518 00:23:07,040 --> 00:23:08,320 on 32. 519 00:23:08,320 --> 00:23:13,210 Sageli, kui teil on vaja teisendada ühelt teisele, vahe on 32. 520 00:23:13,210 --> 00:23:15,710 Ja ärge muretsege, kui sa oled lahke segaduses selle alguses. 521 00:23:15,710 --> 00:23:20,230 Me läheme üle, kuidas me oleks kasutavad seda tegeliku koodi. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> OKEI. 524 00:23:26,380 --> 00:23:30,770 Nii neile, sülearvutid välja, julgelt tõmba ASCII tabel, 525 00:23:30,770 --> 00:23:36,030 sest need ilmselt nõuavad kutid viide 526 00:23:36,030 --> 00:23:38,100 Mis tegelased on. 527 00:23:38,100 --> 00:23:38,640 OKEI. 528 00:23:38,640 --> 00:23:42,840 >> Nii on teada, et teatud tegelased map teatud numbrid, 529 00:23:42,840 --> 00:23:47,240 kui ma jooksma alles esimene rida, et code-- printf a, 530 00:23:47,240 --> 00:23:50,900 väiketähed a, miinus suur- A. Kas keegi 531 00:23:50,900 --> 00:23:55,880 on vist sellest, mida oleks väljatrükk ekraani kohe? 532 00:23:55,880 --> 00:23:58,190 >> Nii esiteks, mida ei väiketähed esindavad? 533 00:23:58,190 --> 00:24:00,990 Mis number on see, et kodeeritud ASCII tabelis. 534 00:24:00,990 --> 00:24:01,490 Vabandust? 535 00:24:01,490 --> 00:24:02,630 >> Sihtrühm: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI PENG: 97, suur. 537 00:24:03,630 --> 00:24:05,077 Ja mis on suur- A 538 00:24:05,077 --> 00:24:06,330 >> Sihtrühm: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI PENG: Mis on 97 miinus 65? 540 00:24:08,255 --> 00:24:09,227 >> Sihtrühm: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI PENG: OK. 542 00:24:09,810 --> 00:24:13,530 Mis te poisid arvavad läheb juhtub, kui ma sisend, et koodirida 543 00:24:13,530 --> 00:24:14,670 minu arvutis? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> Sihtrühm: [kuuldamatu]. 546 00:24:19,896 --> 00:24:21,020 ANDI PENG: Sorry, rääkida. 547 00:24:21,020 --> 00:24:22,520 Ära muretse. 548 00:24:22,520 --> 00:24:25,750 See on väga turvaline keskkond, miinus kaamera. 549 00:24:25,750 --> 00:24:27,550 Me kõik läheb mina-- ei muretse. 550 00:24:27,550 --> 00:24:30,940 Lihtsalt me ​​kõik teeskle, nagu see on lihtsalt meie jahutamine selles ruumis. 551 00:24:30,940 --> 00:24:31,480 Ära muretse. 552 00:24:31,480 --> 00:24:33,410 No küsimus on liiga loll. 553 00:24:33,410 --> 00:24:35,300 No vastus on loll vastus. 554 00:24:35,300 --> 00:24:38,260 Ma ilmselt läheb eksida käigus oma õpetuse. 555 00:24:38,260 --> 00:24:40,740 Tõsiselt, poisid, lihtsalt lobiseda välja. 556 00:24:40,740 --> 00:24:43,092 Ole kindel ise, kas tead? 557 00:24:43,092 --> 00:24:43,800 Mis see oli? 558 00:24:43,800 --> 00:24:47,990 Kes ütles, et viimase vastuse? 559 00:24:47,990 --> 00:24:48,540 OKEI. 560 00:24:48,540 --> 00:24:50,380 Karju, et kena ja selge. 561 00:24:50,380 --> 00:24:51,220 >> Sihtrühm: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI PENG: 32. 563 00:24:51,850 --> 00:24:54,141 OK, olgem käivitada koodi ja vaata, kas see, mis juhtub. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 OKEI. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Nii nagu te poisid saavad liiki vaata, tüüpiline märke Olen 568 00:25:06,360 --> 00:25:12,250 luua siin, kuidas me tööd mingit programmi meie arvuti. 569 00:25:12,250 --> 00:25:14,770 Meil on meie peamine ülesanne meie peamine ülesanne. 570 00:25:14,770 --> 00:25:17,265 Ma lihtsalt kopeerida ja kleebi see rida koodi. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Samuti ole ettevaatlik, kui poisid on kopeerige kood. 573 00:25:23,540 --> 00:25:28,750 Mõnikord teatavad ettevõtjad ei kleebi enam korrektselt. 574 00:25:28,750 --> 00:25:31,397 Sel juhul on minus märk oli tegelikult kriips. 575 00:25:31,397 --> 00:25:32,980 Ja nii arvuti ei korja see üles. 576 00:25:32,980 --> 00:25:35,870 Nii et ma pidin minema tagasi füüsiliselt korrake seda. 577 00:25:35,870 --> 00:25:37,846 Lihtsalt olla ettevaatlik kutid teevad seda. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> OKEI. 580 00:25:42,660 --> 00:25:43,980 Me läheme sõitma seda siin. 581 00:25:43,980 --> 00:25:45,670 Nii et me läheme cd meie section2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Olen seda nimetanud programmi asciimath. 584 00:25:52,030 --> 00:25:55,690 Seega pidage meeles, kui me kasutada mistahes Programm tahame esimene kompileerida 585 00:25:55,690 --> 00:25:57,150 töötab läbi meie make. 586 00:25:57,150 --> 00:26:00,030 Ja siis me tahame tegelikult töötavad programmi tehes dot-kaldkriipsuga. 587 00:26:00,030 --> 00:26:01,280 Nii et me läheme ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Õigus, seal me läheme. 590 00:26:06,590 --> 00:26:07,410 Ja me näeme 32. 591 00:26:07,410 --> 00:26:07,930 Hästi tehtud. 592 00:26:07,930 --> 00:26:10,340 Sa väärid tükk kristalliseerunud. 593 00:26:10,340 --> 00:26:11,160 Candy teile. 594 00:26:11,160 --> 00:26:11,900 Vabandust. 595 00:26:11,900 --> 00:26:13,100 Hästi. 596 00:26:13,100 --> 00:26:13,670 OKEI. 597 00:26:13,670 --> 00:26:18,070 Nii saame minna tagasi oma näites siin. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Aah, no. 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 OKEI. 603 00:26:32,490 --> 00:26:34,610 Ma lihtsalt hoida seda niimoodi. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 OKEI. 606 00:26:51,240 --> 00:26:51,740 OKEI. 607 00:26:51,740 --> 00:26:55,340 Nii nagu te poisid ei vaata, mida me teha saame palju väga huvitavaid asju, 608 00:26:55,340 --> 00:26:58,880 palju väga lahedaid asju palju väga keerulised asjad, mis hõlmab 609 00:26:58,880 --> 00:27:02,720 ASCII märke ja numbreid. 610 00:27:02,720 --> 00:27:05,890 Kui sa saad maha liinile viis, see on palju jälgida mööda. 611 00:27:05,890 --> 00:27:07,640 Me ei lähe läbi osa. 612 00:27:07,640 --> 00:27:10,720 Julgelt, kui saad, Motivatsioon välja paberkandjal 613 00:27:10,720 --> 00:27:14,750 Esimene mida tuleb juhtub siis, kui sisestad selline jada väärtustega. 614 00:27:14,750 --> 00:27:19,720 Näiteks, et viimane rida, on meil · Z- mis kujutab endast teatud number-- 615 00:27:19,720 --> 00:27:24,740 a-- mis kujutab endast ka Teatud number-- pluss 1 modulos 26 616 00:27:24,740 --> 00:27:26,750 pluss väiketähed a. 617 00:27:26,750 --> 00:27:29,220 >> Kui kutid hoida lugemisel Läbi nende 618 00:27:29,220 --> 00:27:34,009 võib näha mustrit tulla kuidas me manipuleerides koodi. 619 00:27:34,009 --> 00:27:36,050 Ma väga, väga soovitan Pärast punkti teid kõiki 620 00:27:36,050 --> 00:27:38,160 poisid minna ja sisend need kõik arvuti 621 00:27:38,160 --> 00:27:40,060 ja näha, millist numbrid tulevad välja 622 00:27:40,060 --> 00:27:43,090 ja arutlusi läbi, miks need on juhtub, sest teie psets 623 00:27:43,090 --> 00:27:45,060 see saab olema väga oluline sa aru 624 00:27:45,060 --> 00:27:47,132 miks teatud asju juhtub. 625 00:27:47,132 --> 00:27:48,590 Kõik need slaidid on võrgus. 626 00:27:48,590 --> 00:27:51,510 Nii ei ole muret, püüdes füüsiliselt kopeerida märkmeid. 627 00:27:51,510 --> 00:27:52,510 Kõik online. 628 00:27:52,510 --> 00:27:54,050 See osa ise on online. 629 00:27:54,050 --> 00:27:57,500 Kõik minu lähtekoodi, et Ma töötab on online. 630 00:27:57,500 --> 00:27:58,180 Jah. 631 00:27:58,180 --> 00:27:59,430 Kas sul on veel küsimus? 632 00:27:59,430 --> 00:28:00,587 Sihtrühm: Mis on modulos? 633 00:28:00,587 --> 00:28:01,170 ANDI PENG: OK. 634 00:28:01,170 --> 00:28:05,620 Nii moodul on operaator, kes läheb päris oluline oma poisid on pset 635 00:28:05,620 --> 00:28:06,690 siin. 636 00:28:06,690 --> 00:28:12,280 Nii nii, et operaatorid C ja programmeerimine töö 637 00:28:12,280 --> 00:28:16,360 on see, et teil on, mida nimetatakse division symbol ja moodul sümbol, 638 00:28:16,360 --> 00:28:18,350 mis on nagu protsenti märk. 639 00:28:18,350 --> 00:28:24,840 >> Nii C, kui sa täisarv jagatuna täisarv kaldkriipsuga, 640 00:28:24,840 --> 00:28:27,720 C on kalduvus tahavad kärpida välja kõik peale koma, 641 00:28:27,720 --> 00:28:30,290 sest täisarv tahab teisendada täisarv. 642 00:28:30,290 --> 00:28:33,550 Ta ei kavatse taha olla kahekordne hunnik kümnendkohtade kõik pärast seda. 643 00:28:33,550 --> 00:28:39,322 >> Nii et kui ma teen 3 jagatuna 2, siis läheb katkestas 0,5 ja lihtsalt annab sulle 1. 644 00:28:39,322 --> 00:28:41,530 Nii et midagi olla väga ettevaatlik, kui sa oled 645 00:28:41,530 --> 00:28:45,294 teed mingit matemaatikat programmeerimine, on see, et numbrid saate 646 00:28:45,294 --> 00:28:47,210 pruugi olla numbrid mis sa mõtlesid, 647 00:28:47,210 --> 00:28:50,190 mistõttu ümardamine oma viimase pset on nii oluline. 648 00:28:50,190 --> 00:28:51,980 >> Moodul annab teile ülejäänu. 649 00:28:51,980 --> 00:28:56,200 Nii näiteks, kui ma tegin 3 moodul 2-- nii 3 protsenti märk 2-- 650 00:28:56,200 --> 00:28:58,020 see annaks sulle ülejäänud seda. 651 00:28:58,020 --> 00:29:00,460 Nii 3 jagatuna 2 on 1,5. 652 00:29:00,460 --> 00:29:01,410 See on 1 ülejäänud 1. 653 00:29:01,410 --> 00:29:04,600 See annaks sulle 1, mis on ülejäänud osa selle. 654 00:29:04,600 --> 00:29:07,361 >> Nii et kui te poisid liiguvad läbi ASCII tabel, 655 00:29:07,361 --> 00:29:09,735 moodul lõpetad midagi, mis on väga oluline, 656 00:29:09,735 --> 00:29:11,240 ja me arutada, et hiljem. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> OKEI. 659 00:29:19,040 --> 00:29:27,300 Nii et kui miski on ilus, päris uus ja üsna ainulaadne 660 00:29:27,300 --> 00:29:31,920 et me oleme arutanud sel nädalal on mõiste, mida massiivi on. 661 00:29:31,920 --> 00:29:34,370 Nii massiiv on esimene tüüpi andmestruktuuri 662 00:29:34,370 --> 00:29:36,320 et me ei kavatse tekib selles klassis. 663 00:29:36,320 --> 00:29:40,010 Kõik andmestruktuur on mingi suvaline 664 00:29:40,010 --> 00:29:43,370 sõna otseses mõttes asjad struktuur et me programmeerijad on loonud, 665 00:29:43,370 --> 00:29:47,890 et me panime meie koodi See võib sisaldada muid tükke koodi. 666 00:29:47,890 --> 00:29:51,090 >> Nii selles mõttes, mis on array-- ma arvan et kui faili kapis, 667 00:29:51,090 --> 00:29:53,470 kus, kui avate erinevat riiulid faili kapis, 668 00:29:53,470 --> 00:29:55,630 pääsete erinevaid asju. 669 00:29:55,630 --> 00:29:58,630 Mälu, massiiv on lihtsalt teeme sama asi arvutis. 670 00:29:58,630 --> 00:30:01,730 Sul võib olla erinev blocks-- me helista neile indices-- massiivi. 671 00:30:01,730 --> 00:30:04,210 See on nagu plokk, riiul mälu 672 00:30:04,210 --> 00:30:07,580 et oleme loonud teie arvuti, et saate sisestada 673 00:30:07,580 --> 00:30:10,270 teatud asjad erinevates kohtades. 674 00:30:10,270 --> 00:30:18,000 >> Nii array, siis alati specify-- 675 00:30:18,000 --> 00:30:22,360 sul määrata tunnistamise massiivi järgmises vormingus. 676 00:30:22,360 --> 00:30:24,290 Sa lähed esimese määrata andmetüüp 677 00:30:24,290 --> 00:30:25,831 et soovid luua massiivi. 678 00:30:25,831 --> 00:30:28,870 Kui ma tahan array täisarvud, Ma kavatsen panna int seal. 679 00:30:28,870 --> 00:30:32,079 Kui ma tahan massiivi stringe, Ma panen stringid seal, 680 00:30:32,079 --> 00:30:34,995 nimi oma valikut ja seejärel sa lähed on nurksulgudes. 681 00:30:34,995 --> 00:30:39,580 Ja sees nurksulgudes, sa oled läheb on suurus oma valikut. 682 00:30:39,580 --> 00:30:42,900 >> Midagi, mis on tõesti oluline meeles pidada, luues massiivid on 683 00:30:42,900 --> 00:30:46,530 et kui loote massiivi, et suurus ei muutu. 684 00:30:46,530 --> 00:30:50,180 Nii et kui sa tead, et just nüüd sul on massiivi suurus 10, 685 00:30:50,180 --> 00:30:54,550 sa tead, et ma lähen on 10 lahtrit jooksul või 10 indeksid selle massiiv, 686 00:30:54,550 --> 00:30:56,830 ja see ei saa kunagi laiendada või vähendada 687 00:30:56,830 --> 00:30:59,850 Ükskõik mida, ja et seal on praegu vaid 10 plokki ruumi 688 00:30:59,850 --> 00:31:04,490 eraldatud oma mälu, mida saab salvestada kuni 10 asjad, mida sa pannud. 689 00:31:04,490 --> 00:31:08,790 >> Nii et sel viisil, hulga andmete tüübi, andmestruktuuri mis on üle massiivi 690 00:31:08,790 --> 00:31:13,392 on väga erinev mõned teised jagame saab katab hiljem seda muidugi. 691 00:31:13,392 --> 00:31:15,170 Jah. 692 00:31:15,170 --> 00:31:20,080 Näiteks kui sa tahad luua massiivi suurus 3, et 693 00:31:20,080 --> 00:31:23,670 sisalduvate parameetrite integer-- oh, sorry, on temperature-- 694 00:31:23,670 --> 00:31:25,640 ja temperatuuri, ning Loomulikult on täisarv. 695 00:31:25,640 --> 00:31:28,710 >> Nii et me looks int, mis on andmete tüüpi, mida me tahame hoida. 696 00:31:28,710 --> 00:31:32,680 Me läheme nimetame seda temperatuuri huvides nomenklatuuri nime 697 00:31:32,680 --> 00:31:34,200 midagi, mida me kõik aru. 698 00:31:34,200 --> 00:31:35,900 Ja me ei kavatse on nurksulgudes. 699 00:31:35,900 --> 00:31:37,200 Ja me tahame kolm numbrit. 700 00:31:37,200 --> 00:31:39,000 Nii et me läheme panna kolme sees on. 701 00:31:39,000 --> 00:31:41,041 >> Midagi, mis on tõesti oluline meeles pidada, 702 00:31:41,041 --> 00:31:43,530 on see, et massiivid on null indekseeritud. 703 00:31:43,530 --> 00:31:46,410 Kõik see tähendab, et sa Alustame indeks 0, 704 00:31:46,410 --> 00:31:49,800 ja sa eel läbi suurus massiivi miinus 1. 705 00:31:49,800 --> 00:31:52,730 Nii näiteks siin, me on massiivi suurus 3. 706 00:31:52,730 --> 00:31:54,680 See saab olla võimalik hoidke kolm väärtust. 707 00:31:54,680 --> 00:31:57,450 Aga numbrid themselves-- et number, massiiv, et indeks, 708 00:31:57,450 --> 00:32:00,271 massiivi, on 0 kuni 2. 709 00:32:00,271 --> 00:32:03,520 Nii poisid, tõesti, tõesti ettevaatlik sa lähed läbi oma püstitatud probleemi 710 00:32:03,520 --> 00:32:06,500 ja luua mingit valikut, sest palju kordi on 711 00:32:06,500 --> 00:32:08,490 tõesti lihtne unustada. 712 00:32:08,490 --> 00:32:11,840 Ma tegelikult ei ole indeks 3, et ma praegu lihtsalt 713 00:32:11,840 --> 00:32:13,130 on indeks 2. 714 00:32:13,130 --> 00:32:16,046 Ja kui sa püüad juurdepääsu kolmanda indeks, 715 00:32:16,046 --> 00:32:18,170 see saab olema, mida on nimetatakse null terminaator. 716 00:32:18,170 --> 00:32:19,990 Ta ei kavatse tegelikult olemas massiiv. 717 00:32:19,990 --> 00:32:21,781 Ja arvuti on ei meeldi, et. 718 00:32:21,781 --> 00:32:24,570 Nii et ole ettevaatlik, kui sa juurdepääsu asjad lihtsalt 719 00:32:24,570 --> 00:32:28,070 tagada, et sa mäletad et massiivid on null-indekseeritud. 720 00:32:28,070 --> 00:32:28,880 >> OKEI. 721 00:32:28,880 --> 00:32:34,030 Nii et esimene näide on lihtsalt üks võimalus luua massiivi. 722 00:32:34,030 --> 00:32:36,790 Teine näide mul allpool on lihtsalt eraldi teed 723 00:32:36,790 --> 00:32:40,210 loomise, mis on samu andmeid struktuuri, et oleme lihtsalt sisestatud. 724 00:32:40,210 --> 00:32:44,347 Nii et selle asemel füüsiliselt töötab läbi ja luues temperatuur 0 725 00:32:44,347 --> 00:32:47,180 võrdub iganes, temperatuur 1 võrdub iganes, temperatuur 2 võrdsete 726 00:32:47,180 --> 00:32:50,950 mida iganes, ma võiks tegelikult lihtsalt otse luua see kõik ühele joonele 727 00:32:50,950 --> 00:32:53,010 arvesse temperatuuri nurksulgudes võrdne. 728 00:32:53,010 --> 00:32:56,536 >> Ja teate Sel juhul ei ole vaja täpsustada, kui suur on teie massiiv on, 729 00:32:56,536 --> 00:32:59,160 sest arvuti läheb läbida ja näed, et seal on 730 00:32:59,160 --> 00:33:01,570 kolm elementi need looksulg. 731 00:33:01,570 --> 00:33:04,000 Ja see läheb tea, OK, Mul on vaja massiivi suurus 3. 732 00:33:04,000 --> 00:33:07,440 Sa ei kavatse vaja input see järgmiselt. 733 00:33:07,440 --> 00:33:10,170 >> Ja ka, jah, niimoodi. 734 00:33:10,170 --> 00:33:12,610 Kas kellelgi on küsimusi selle kohta, kuidas me teeme massiivid 735 00:33:12,610 --> 00:33:17,391 või kuidas struktuuri massiivi töötab? 736 00:33:17,391 --> 00:33:17,890 Jah. 737 00:33:17,890 --> 00:33:18,806 >> Sihtrühm: [kuuldamatu]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI PENG: Jah, täpselt. 740 00:33:22,690 --> 00:33:26,150 Nii et kui sa olid kuulutada ja initsialiseerida massiivi järgmist meetodit, 741 00:33:26,150 --> 00:33:28,477 mis on teine ​​viis, sa võid jätta need. 742 00:33:28,477 --> 00:33:30,310 Ja arvuti automaatselt teab, et see 743 00:33:30,310 --> 00:33:33,950 peab lugema, kui palju elemente on neis looksulg eraldatud 744 00:33:33,950 --> 00:33:34,930 komadega. 745 00:33:34,930 --> 00:33:37,517 >> Nii et siin nad näevad 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Nii arvuti teab, oh, seal on kolm täisarvu. 747 00:33:39,600 --> 00:33:45,960 Ma tean, et luua massiivi nimi temperatuur kolme elemente. 748 00:33:45,960 --> 00:33:46,590 Hea küsimus. 749 00:33:46,590 --> 00:33:47,090 Jah. 750 00:33:47,090 --> 00:33:51,590 >> Sihtrühm: Kas pole võimalik luua massiivi eri tüüpi andmeid 751 00:33:51,590 --> 00:33:53,021 mida võiks sinna sisestatakse? 752 00:33:53,021 --> 00:33:56,746 Näiteks täisarve [kuuldamatu]? 753 00:33:56,746 --> 00:33:59,120 ANDI PENG: eesmärgil Selle klassi, ei, just nüüd. 754 00:33:59,120 --> 00:34:03,070 Kui loote andmeid struktureerida nagu massiivi, 755 00:34:03,070 --> 00:34:04,990 sa räägid arvuti, hei, ma vajan sind 756 00:34:04,990 --> 00:34:08,159 eraldada nii palju mälu minu kõvaketas, 757 00:34:08,159 --> 00:34:10,690 Iga rakk olles teatud bittide arv. 758 00:34:10,690 --> 00:34:13,429 >> Pea meeles, me õppisime nädal null, et erinevate andmete 759 00:34:13,429 --> 00:34:15,300 tüüpidel on erineva suurusega? 760 00:34:15,300 --> 00:34:17,630 Nii näiteks string on erineva suuruse 761 00:34:17,630 --> 00:34:20,719 ruumi kui char, mis on erineva suuruse ruumi 762 00:34:20,719 --> 00:34:21,830 täisarvu. 763 00:34:21,830 --> 00:34:25,534 Ja kui sa ei määra ja sa segada ja sobitada, milliseid muutujaid 764 00:34:25,534 --> 00:34:27,659 sul on, arvuti saab olema väga segaduses. 765 00:34:27,659 --> 00:34:29,950 Ja ta ei kavatse teada kui palju mälu teile. 766 00:34:29,950 --> 00:34:32,480 Nii eesmärgil õigus Nüüd saab kasutada ainult 767 00:34:32,480 --> 00:34:36,120 tunda üht tüüpi massiivi. 768 00:34:36,120 --> 00:34:37,940 Hea küsimus. 769 00:34:37,940 --> 00:34:38,440 OKEI. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Nii loomulikult Teine küsimus on meil 772 00:34:47,120 --> 00:34:50,760 on ka nüüd, et oleme loonud massiivi ja me panime kõik need asjad 773 00:34:50,760 --> 00:34:54,190 massiivi, kuidas me läheb pääse ta? 774 00:34:54,190 --> 00:34:59,710 Nii tüüpiline struktuur, mida me alati juurdepääsu massiivi on meie armas silmus. 775 00:34:59,710 --> 00:35:03,830 Ma luban teile, poisid, et me oleme näha palju see mehe siin. 776 00:35:03,830 --> 00:35:06,470 >> Sisuliselt millal soovite sisestada väärtused massiivi 777 00:35:06,470 --> 00:35:09,940 või soovite neid kasutada, siis Parim viis seda teha on silmus, 778 00:35:09,940 --> 00:35:13,730 sest jaoks silmus, siis tea, mitu korda sa oled 779 00:35:13,730 --> 00:35:17,290 lähed tahan joosta massiiv, sest sa oled stop väljaanne, eks? 780 00:35:17,290 --> 00:35:19,680 Ja iga kord, kui sa jooksed läbi, pääsete 781 00:35:19,680 --> 00:35:21,310 teist massiivi element. 782 00:35:21,310 --> 00:35:26,920 >> Ja ka see on üks põhjus, miks tavaliselt hakkame meie jaoks silmuseid on 0 väärtusega, 783 00:35:26,920 --> 00:35:30,080 sest kui sisenete massiivid, pääsete null indeks. 784 00:35:30,080 --> 00:35:32,070 Ja nii see paralleele väga kenasti. 785 00:35:32,070 --> 00:35:35,295 Te võib-olla tahtis kirjutada int i võrdub 1. 786 00:35:35,295 --> 00:35:37,330 i on väiksem või võrdne 3. 787 00:35:37,330 --> 00:35:39,890 >> Aga see ei tööta päris nii ka siin, sest sa ainult 788 00:35:39,890 --> 00:35:42,010 on elemendid 0, 1 ja 2. 789 00:35:42,010 --> 00:35:45,815 Ja nii, kui sa olid hakata Teie i at elemendi 1, 2 ja 3, 790 00:35:45,815 --> 00:35:48,440 sa lähed lõpuks töötab välja piire oma rida, 791 00:35:48,440 --> 00:35:50,440 ja halvad asjad hakkavad juhtuma. 792 00:35:50,440 --> 00:35:54,480 >> Nii et ma loodan, et te nägite Segue miks varasemas klassidesse 793 00:35:54,480 --> 00:35:58,560 me õpetasime kutid, kuidas juhtida ja vormindab silmus nii, et me olime. 794 00:35:58,560 --> 00:36:01,900 See on sellepärast, nüüd me oleme transitioned massiivid, 795 00:36:01,900 --> 00:36:06,760 näed, miks 0 laenab ise väga kenasti juurdepääsuga. 796 00:36:06,760 --> 00:36:09,880 >> Nii, kuidas me seda teeme on selle-- ma olen lihtsalt lasta välja trükkida siin huvides 797 00:36:09,880 --> 00:36:10,830 lasta välja trükkida. 798 00:36:10,830 --> 00:36:13,750 Aga mul on kohatäide, koma. 799 00:36:13,750 --> 00:36:15,645 Ja tegelik ligipääsemiseks osa toimub. 800 00:36:15,645 --> 00:36:17,520 Nimi massiivi kutsuti temperatuuri. 801 00:36:17,520 --> 00:36:21,570 Nii et see on temperatuur ja i-nda elemendi massiivist. 802 00:36:21,570 --> 00:36:24,400 >> Nii nagu silmus jookseb läbi, see saab alguse 0. 803 00:36:24,400 --> 00:36:27,640 See saab välja trükkida 0. indeks seda valikut. 804 00:36:27,640 --> 00:36:29,599 Siis läheb printida välja esimene element. 805 00:36:29,599 --> 00:36:31,431 Siis läheb printida välja teine. 806 00:36:31,431 --> 00:36:32,880 Ja siis me murrame. 807 00:36:32,880 --> 00:36:36,718 Kas kõik selge kuidas see toimub? 808 00:36:36,718 --> 00:36:37,217 Hea. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> Hästi. 811 00:36:44,100 --> 00:36:47,270 Nii et siin on meil võimalus öeldes, kui me ei taha 812 00:36:47,270 --> 00:36:50,020 raskesti kood in-- mind programmeerija. 813 00:36:50,020 --> 00:36:53,320 Ma ei taha tegelikult füüsiliselt panna iga üksiku elemendi 814 00:36:53,320 --> 00:36:54,020 Selle massiivi. 815 00:36:54,020 --> 00:36:56,500 Kui ma tahtsin asemel on kasutaja sisend väärtusi, 816 00:36:56,500 --> 00:36:58,100 Mis on parim viis seda teha? 817 00:36:58,100 --> 00:37:00,920 >> Noh, siin ma olen loodud see armas funktsiooni, 818 00:37:00,920 --> 00:37:03,560 kus ma võin tunnistada massiivi. 819 00:37:03,560 --> 00:37:06,210 Nii int scores-- olgem lihtsalt öelda, et me tahame teha 820 00:37:06,210 --> 00:37:10,660 massiivi, mis toimus klassid kõigi 18 Õpilaste siin selles osas. 821 00:37:10,660 --> 00:37:12,670 Ma arvan, et meil on natuke rohkem kui 18 lapsed täna. 822 00:37:12,670 --> 00:37:16,460 Aga näiteks pärast, olgem lihtsalt eeldada, meil oli 18. 823 00:37:16,460 --> 00:37:21,580 Ma looks massiivi nimi hinded tüübist int, sest hinded muidugi 824 00:37:21,580 --> 00:37:22,987 on numbrid. 825 00:37:22,987 --> 00:37:24,820 Ja ma lähen 18 nurksulgudes, 826 00:37:24,820 --> 00:37:29,900 sest see, kuidas paljud õpilased ma soovite, et oleks võimalik salvestada hulgaliselt. 827 00:37:29,900 --> 00:37:32,206 >> Ja kuidas ma asustada massiiv on, et ma 828 00:37:32,206 --> 00:37:35,572 kestab see läbi silmus, ning Muidugi, kus 0 on minu 0. indeks. 829 00:37:35,572 --> 00:37:38,030 Ja siis 18 on minu peatusteta väljaanne, sest seal on 830 00:37:38,030 --> 00:37:39,690 18 massiivi elementide. 831 00:37:39,690 --> 00:37:44,620 Ja siis ma lähen tegema printf, Enter skooriks student-- JANKUTUSTA jutt. 832 00:37:44,620 --> 00:37:51,171 >> Kas keegi mulle öelda, miks siin ma olen trükkimine i pluss 1 ja eks? 833 00:37:51,171 --> 00:37:52,920 See on selline trikk küsimus, tegelikult mitte. 834 00:37:52,920 --> 00:37:56,020 See ei ole tegelikult füüsiliselt mõjuta töötavat koodi. 835 00:37:56,020 --> 00:37:56,520 Jah. 836 00:37:56,520 --> 00:37:57,909 >> Sihtrühm: [kuuldamatu] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI PENG: Jah, täpselt. 838 00:37:58,950 --> 00:38:02,620 See on natuke ebamugav öelda, hei, sa oled 0. õpilane selles klassis. 839 00:38:02,620 --> 00:38:03,780 See on natuke imelik. 840 00:38:03,780 --> 00:38:08,340 Nii meil, kui inimestel ei ole tõesti mõelda, kuidas arvutid mõtlema. 841 00:38:08,340 --> 00:38:10,930 Nii et kuigi on arvuti, see hoidmiseks väärtused 842 00:38:10,930 --> 00:38:13,310 on 0-nda indeks, kui me oleme inimesed, me tõesti ei 843 00:38:13,310 --> 00:38:15,520 meeldib viidata end nulli. 844 00:38:15,520 --> 00:38:18,119 Nii et kui ma lihtsalt printida, et Ma lähen välja printida ja lisada 845 00:38:18,119 --> 00:38:19,410 1 lihtsalt selguse huvides. 846 00:38:19,410 --> 00:38:22,447 Nii et kui ma printida, ma lähen võimalik printida õpilased 1.-18. 847 00:38:22,447 --> 00:38:24,530 See tegelikult ei mõjuta jooksvad kood 848 00:38:24,530 --> 00:38:27,110 kuidagi, kuidas printida. 849 00:38:27,110 --> 00:38:30,380 >> Kuid ole ettevaatlik, kui sa oled tegelikult juurdepääsu massiivi. 850 00:38:30,380 --> 00:38:32,780 Kui näed hinded i, märkate siin ma olen tegelikult 851 00:38:32,780 --> 00:38:38,200 juurdepääsu 0. indeks ja mitte 1 pluss 0-- või 1 + 1, 852 00:38:38,200 --> 00:38:45,530 sel juhul indeks nii et see on tegelikult selge. 853 00:38:45,530 --> 00:38:48,870 Kas igaüks omamoodi OK kuidas see töötab läbi 854 00:38:48,870 --> 00:38:51,470 ja iga indeks ma olen pannes väärtuse massiivi 855 00:38:51,470 --> 00:38:55,340 ja luua massiivi 18 numbrid et kasutaja saab sisestada? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 OKEI. 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 >> OKEI. 861 00:39:07,400 --> 00:39:12,220 Nüüd liiguvad midagi, mis on päris asjakohased selle osaline komplekt samuti. 862 00:39:12,220 --> 00:39:15,020 Ma tean loengus, David-- kahju, et sul oli küsimus? 863 00:39:15,020 --> 00:39:16,840 >> Sihtrühm: Kas sa pildile? 864 00:39:16,840 --> 00:39:18,080 >> ANDI PENG: Jah, nii ma proovisin. 865 00:39:18,080 --> 00:39:18,788 Aga ma ei tea. 866 00:39:18,788 --> 00:39:21,437 Mingil põhjusel see versiooni PowerPoint 867 00:39:21,437 --> 00:39:23,270 ei ole tegelikult töötab hästi ekraani. 868 00:39:23,270 --> 00:39:25,260 Nii et me lihtsalt läheb hoida seda niimoodi. 869 00:39:25,260 --> 00:39:27,280 Kõik need laetakse üles online. 870 00:39:27,280 --> 00:39:28,218 Vabandame, poisid. 871 00:39:28,218 --> 00:39:30,090 Jah. 872 00:39:30,090 --> 00:39:30,980 OKEI. 873 00:39:30,980 --> 00:39:35,530 >> Nii saame ka stringid. 874 00:39:35,530 --> 00:39:39,320 Nii et kui te poisid tegelikult notice-- ma tean Rob läks üle seda, et loeng 875 00:39:39,320 --> 00:39:43,652 et ta did-- string on tegelikult lihtsalt massiivi tähemärki 876 00:39:43,652 --> 00:39:44,860 kui sa mõtled seda, eks? 877 00:39:44,860 --> 00:39:47,500 String on nimi või lause või sõna, eks? 878 00:39:47,500 --> 00:39:52,975 >> Kui ma oleksin luua string nimega Andi-- lihtsalt minu nimi, A-N-D-I. 879 00:39:52,975 --> 00:39:55,460 Sa mõtle, et vaid üks muutuja. 880 00:39:55,460 --> 00:39:58,630 Aga tegelikult, see on jaotatud arvesse ainult array tähemärki. 881 00:39:58,630 --> 00:40:01,910 Nii see sai iseloomu Salvestatud massiivi väärtuse. 882 00:40:01,910 --> 00:40:05,420 See ju iseloomu n salvestatud teine ​​indeks ja nii edasi ja nii edasi. 883 00:40:05,420 --> 00:40:08,660 >> Nii nii, me tegelikult on selline 884 00:40:08,660 --> 00:40:10,970 on esitatud struktuuri Koht meie stringid. 885 00:40:10,970 --> 00:40:14,660 Nii et siin, kui ma oleksin sisestada Sõna "süüa" - nii string sõna võrdub 886 00:40:14,660 --> 00:40:15,540 saada string. 887 00:40:15,540 --> 00:40:19,260 Kui ma oleksin sisestada sõna "sööma", et on füüsiliselt nii, et minu arvuti 888 00:40:19,260 --> 00:40:21,870 salvestab et string minu mälu. 889 00:40:21,870 --> 00:40:27,140 >> Ja kui ma tahtsin joosta, et ja print et out-- nii osadeks i 890 00:40:27,140 --> 00:40:30,890 võrdub nulliga, pea meeles, loengus, me kaetud midagi, mida nimetatakse strlen, 891 00:40:30,890 --> 00:40:32,990 või stringi pikkusena. 892 00:40:32,990 --> 00:40:36,520 Sest ma tegelikult ei tea, kui suur massiiv on 893 00:40:36,520 --> 00:40:38,210 mis tahes kasutaja inputting-- 894 00:40:38,210 --> 00:40:40,370 >> Näiteks olen sisestanud Sõna "süüa," ja ma tean 895 00:40:40,370 --> 00:40:41,870 see on kolm tähemärki, eks? 896 00:40:41,870 --> 00:40:44,700 Nii et ma võiks panna kolme seal ja kõik saab trahvi. 897 00:40:44,700 --> 00:40:49,290 Aga kui teie kasutaja sisend midagi see on erinev arv väärtusi, 898 00:40:49,290 --> 00:40:52,760 sa lähed, ei saa tõesti tean, et kui sa programmi koodi. 899 00:40:52,760 --> 00:40:56,040 >> Nii et kuidas me hakkama test juhtudel nagu see, et meil on midagi 900 00:40:56,040 --> 00:41:00,070 nimetatakse strlen, mis on vaid funktsiooni mis ütleb teile, kui kaua string on. 901 00:41:00,070 --> 00:41:02,080 Nii strlen sõna. 902 00:41:02,080 --> 00:41:03,470 Minu sõna on süüa. 903 00:41:03,470 --> 00:41:05,990 n võrdub strlen sõna. 904 00:41:05,990 --> 00:41:08,930 Kas keegi mulle öelda, mida see väärtus tegelikult on seal? 905 00:41:08,930 --> 00:41:12,550 Mida n esindavad õigus Nüüd on selles näites, kui mul oleks süüa? 906 00:41:12,550 --> 00:41:13,530 >> Sihtrühm: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI PENG: 3, täpselt. 908 00:41:14,520 --> 00:41:18,820 Nii meil on int i võrdub null, n on 3, sisuliselt. 909 00:41:18,820 --> 00:41:22,355 Ja ma ei kavatse joosta kuni see on vähem kui 3i ++. 910 00:41:22,355 --> 00:41:24,980 Ja see läheb sisuliselt minna läbi ja teha sama asja. 911 00:41:24,980 --> 00:41:26,979 See saab välja trükkida Iga hinna ja teile 912 00:41:26,979 --> 00:41:29,700 E-A-T. See on lihtsalt mis tähistab teistmoodi kirjutamist. 913 00:41:29,700 --> 00:41:31,170 See saab olema väga kasulik. 914 00:41:31,170 --> 00:41:31,670 Jah. 915 00:41:31,670 --> 00:41:35,174 Sihtrühm: Mis kasu pannes n võrdub strlen sõna sees, et 916 00:41:35,174 --> 00:41:36,894 for loop [kuuldamatu]? 917 00:41:36,894 --> 00:41:37,560 ANDI PENG: Jah. 918 00:41:37,560 --> 00:41:44,880 Nii et kui ma oleksin mina-- öelda, näiteks, kui ma seda teha ja siis 919 00:41:44,880 --> 00:41:51,935 do-- oop--, et minu kood oleks tegelikult teed nagu sama asi. 920 00:41:51,935 --> 00:41:55,060 Kuid see, kuidas David selgitas see ajal loeng, kui keegi teile poisid 921 00:41:55,060 --> 00:41:57,854 mäleta, et nagu Inimestel nagu programmeerijatele, 922 00:41:57,854 --> 00:42:00,270 me tõesti püüame programmeerida meie koodi nii, et meie arvuti on 923 00:42:00,270 --> 00:42:04,070 töötada võimalikult väike, nii et meie kood on väga tõhus. 924 00:42:04,070 --> 00:42:06,850 >> Nii et kui mul oli see olemas, mida juhtuks läbi minu jaoks silmus 925 00:42:06,850 --> 00:42:10,790 on see, et ma esimesel kuulutada muutuja nimega i saab olema 0. 926 00:42:10,790 --> 00:42:13,350 Ma lähen, et kontrollida, oh, Mis on strlen sõna? 927 00:42:13,350 --> 00:42:15,000 Oh, strlen on 3. 928 00:42:15,000 --> 00:42:16,191 Nii on mul vähem kui kolm? 929 00:42:16,191 --> 00:42:16,690 Jah see on. 930 00:42:16,690 --> 00:42:17,870 Ma lähen jooksma. 931 00:42:17,870 --> 00:42:21,130 >> Ja siis teine ​​kord tagasi umbes silmus, ma lähen juurdekasvu i. 932 00:42:21,130 --> 00:42:22,550 i saab olema üks. 933 00:42:22,550 --> 00:42:25,600 Ja ma ei kavatse vaadata, oh, Aga mis on strlen sõna? 934 00:42:25,600 --> 00:42:26,839 Oh, see on kolm. 935 00:42:26,839 --> 00:42:29,880 Ja kas see tunduda selline raiskamine, Iga kord, kui sa jooksed läbi silmuse, 936 00:42:29,880 --> 00:42:33,340 tuleb talitluse kontrollimise, kuigi strlen sõna 937 00:42:33,340 --> 00:42:35,490 tegelikult kunagi muutub? 938 00:42:35,490 --> 00:42:38,590 >> Nii et see on ekstra võimu arvuti. 939 00:42:38,590 --> 00:42:42,180 Kui hakkad rääkima asjadest mis on miljardeid ja miljardeid 940 00:42:42,180 --> 00:42:44,431 ja miljardeid kohad pikk, kujutada arvutis 941 00:42:44,431 --> 00:42:47,430 võttes füüsiliselt läbima ja vaadake kõik, et iga kord. 942 00:42:47,430 --> 00:42:53,170 Sellepärast, et teha lihtsalt et tõhususe huvides 943 00:42:53,170 --> 00:42:57,620 meil on kombeks lihtsalt seda, sest see, kuidas me oleme ainult 944 00:42:57,620 --> 00:42:59,850 kutsutakse funktsioon kui alguses, 945 00:42:59,850 --> 00:43:01,766 ja et iga kord, kui ta läbib see läheb 946 00:43:01,766 --> 00:43:03,789 Väärtuse salvestamiseks 3 seal, et sa seda ei tee 947 00:43:03,789 --> 00:43:05,330 pead pidevalt kontrollima iga kord. 948 00:43:05,330 --> 00:43:05,743 Jah. 949 00:43:05,743 --> 00:43:06,409 >> Sihtrühm: Vabandust. 950 00:43:06,409 --> 00:43:09,070 Just [kuuldamatu]. 951 00:43:09,070 --> 00:43:13,985 Kas sa int n võrdub strlen ja panna et eespool välisküljele jaoks silmus 952 00:43:13,985 --> 00:43:15,364 samuti? 953 00:43:15,364 --> 00:43:16,030 ANDI PENG: Jah. 954 00:43:16,030 --> 00:43:17,100 Sa võid seda teha, absoluutselt. 955 00:43:17,100 --> 00:43:19,970 Põhjus on meil seda siin sest tee jaoks silmus tööd 956 00:43:19,970 --> 00:43:23,500 on, et seda nimetatakse kohaliku muutuja selles mõttes, 957 00:43:23,500 --> 00:43:26,150 et kõik, mida sa oled luues sees jaoks silmus 958 00:43:26,150 --> 00:43:27,890 eksisteerib ainult seestpoolt jaoks silmus. 959 00:43:27,890 --> 00:43:31,530 >> Nii muutuja i ainult olemas nendes sulgudes. 960 00:43:31,530 --> 00:43:35,260 Ja siin muutujate n ka eksisteerib vaid need sulgudes. 961 00:43:35,260 --> 00:43:39,350 Nii et kui sa olid kasutada strlen kohta Sõna mitu korda allapoole, 962 00:43:39,350 --> 00:43:42,230 absoluutselt parim viis seda teha oleks kuulutada see üles tippu 963 00:43:42,230 --> 00:43:43,563 nii et sa ei pea seda tegema kord. 964 00:43:43,563 --> 00:43:45,420 Jah. 965 00:43:45,420 --> 00:43:47,670 Sihtrühm: Miks teil on Uus liin pärast protsenti 966 00:43:47,670 --> 00:43:51,300 nägi, kui sa tahad panna kõik tähed kõrval eraldi? 967 00:43:51,300 --> 00:43:54,140 >> ANDI PENG: Oh, ma tahtsin prindi neid kõiki igal real. 968 00:43:54,140 --> 00:43:54,890 See ei ole tähtis. 969 00:43:54,890 --> 00:43:55,890 Jah, see on vormingu. 970 00:43:55,890 --> 00:43:57,181 See on hea küsimus, kuigi. 971 00:43:57,181 --> 00:43:59,360 Jah, kui ma tahtsin printida see kõik vaid üks rida, 972 00:43:59,360 --> 00:44:02,731 Ma ei oleks kriips. 973 00:44:02,731 --> 00:44:03,230 OKEI. 974 00:44:03,230 --> 00:44:06,880 Igaüks hea? 975 00:44:06,880 --> 00:44:07,500 OKEI. 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 >> Nii et ma arvan, et ma olen rääkinud piisavalt. 979 00:44:14,750 --> 00:44:20,040 Te käik joosta koodi ja ütle mulle, mis on valesti siin. 980 00:44:20,040 --> 00:44:21,560 Kus viga? 981 00:44:21,560 --> 00:44:26,920 Nii et nagu näete, ma olen kuulutanud uue massiivi tüüpi string nimega klass. 982 00:44:26,920 --> 00:44:30,220 Ja ma olen sisestanud Sam, Jess, ja Kim ta. 983 00:44:30,220 --> 00:44:33,400 Ja ma üritades välja printida kõik elemendid massiivi. 984 00:44:33,400 --> 00:44:36,796 Kas keegi mulle öelda, miks see läheb mulle probleeme? 985 00:44:36,796 --> 00:44:39,320 Ma annan sulle poisid 10 sekundit mõtlema. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> OKEI. 988 00:44:56,619 --> 00:44:57,118 Jah? 989 00:44:57,118 --> 00:45:01,972 >> Sihtrühm: Kas vasakul center võrdub 3 või [kuuldamatu]? 990 00:45:01,972 --> 00:45:02,680 ANDI PENG: Right. 991 00:45:02,680 --> 00:45:06,784 Nii mitu korda on see tegelikult läbiks see loop? 992 00:45:06,784 --> 00:45:07,620 >> Sihtrühm: Neli. 993 00:45:07,620 --> 00:45:08,070 >> ANDI PENG: Täpselt. 994 00:45:08,070 --> 00:45:09,445 See saab läbi neli korda. 995 00:45:09,445 --> 00:45:12,250 See saab joosta 0, 1, 2 ja 3, 996 00:45:12,250 --> 00:45:15,200 sest nende element on i on väiksem või võrdne 3. 997 00:45:15,200 --> 00:45:16,960 Ta ei kavatse lõpetada, kui see on 2. 998 00:45:16,960 --> 00:45:18,800 See saab hoida läheb kuni see tabab 3. 999 00:45:18,800 --> 00:45:21,720 Ja nagu me teame, on ainult kolm elemendid meie tegelik massiivi. 1000 00:45:21,720 --> 00:45:27,260 >> Kui me püüame pääseda neljas element või indeks 3, 1001 00:45:27,260 --> 00:45:30,357 sa lähed lüüa kusagil mälu, mida ei ole olemas. 1002 00:45:30,357 --> 00:45:31,690 Seda nimetatakse null terminaator. 1003 00:45:31,690 --> 00:45:32,856 Midagi läheb sinna. 1004 00:45:32,856 --> 00:45:35,324 Arvuti ei lähe väga rahul olete. 1005 00:45:35,324 --> 00:45:36,170 Jah. 1006 00:45:36,170 --> 00:45:38,430 Kas kellelgi on küsimusi miks see juhtus? 1007 00:45:38,430 --> 00:45:39,679 See on ühine ala, et vältida. 1008 00:45:39,679 --> 00:45:40,712 Jah. 1009 00:45:40,712 --> 00:45:45,777 >> Sihtrühm: Kas mitte esimene lükake ka string 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: Ei 1011 00:45:46,360 --> 00:45:49,610 Nii sisuliselt kui sa üritad massiivi, 1012 00:45:49,610 --> 00:45:51,540 et sulg õigus seal, et number-- kõik 1013 00:45:51,540 --> 00:45:53,480 see ütleb teile, kuidas palju elemente olen. 1014 00:45:53,480 --> 00:45:55,840 See ei ole tegelikult räägib mulle indeksid midagi. 1015 00:45:55,840 --> 00:45:58,760 Nii et kui ma tean, et ma tahan kirjutada koos kolme kohta 1016 00:45:58,760 --> 00:46:02,690 kolm füüsilist kohti hoidke iganes ma tahan hoida. 1017 00:46:02,690 --> 00:46:04,510 Nii et miks number kolm on olemas. 1018 00:46:04,510 --> 00:46:06,560 Siiski, kui ma tahtsin tegelikult seda kasutada, 1019 00:46:06,560 --> 00:46:11,220 kui ma tahtsin öelda, printf klassi sulg number, siis 1020 00:46:11,220 --> 00:46:14,560 sa lähed tegelikult panna füüsilise indeks seal. 1021 00:46:14,560 --> 00:46:16,330 Jah, hea küsimus. 1022 00:46:16,330 --> 00:46:20,065 >> Sihtrühm: Nii on füüsiline indeks peaks olema [kuuldamatu]? 1023 00:46:20,065 --> 00:46:20,940 ANDI PENG: mul on kahju. 1024 00:46:20,940 --> 00:46:21,500 Kas te räägite natuke? 1025 00:46:21,500 --> 00:46:24,208 >> Sihtrühm: Nii on füüsiline indeks [Kuuldamatu] iga kastid? 1026 00:46:24,208 --> 00:46:25,260 [Kuuldamatu]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI PENG: Jah. 1028 00:46:26,040 --> 00:46:28,970 Nii et ma lähen tagasi siinsamas. 1029 00:46:28,970 --> 00:46:31,120 Mõtle siin. 1030 00:46:31,120 --> 00:46:32,820 Meil on hulgaliselt suurus 3. 1031 00:46:32,820 --> 00:46:35,540 Seal on kolm kohtades, nagu, füüsilise kohatäitjaid siin. 1032 00:46:35,540 --> 00:46:37,620 Aga nad nimeks 0, 1 ja 2. 1033 00:46:37,620 --> 00:46:40,700 Nii et kui ma tahtsin neid kasutada, nii, et ma neid kasutada 1034 00:46:40,700 --> 00:46:43,480 on printf iganes ma tahtsin siin. 1035 00:46:43,480 --> 00:46:45,485 Sa oleks printida välja nime see, 1036 00:46:45,485 --> 00:46:47,610 sest siis arvuti teab, oh, ma pean otsima 1037 00:46:47,610 --> 00:46:51,391 Selles massiivi jaoks 0. indeks. 1038 00:46:51,391 --> 00:46:51,890 Jah. 1039 00:46:51,890 --> 00:46:53,306 Aga suurust see ei muuda. 1040 00:46:53,306 --> 00:46:55,492 Suurus on 3, sõltumata kuidas sa märgistama. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 OKEI. 1043 00:46:58,820 --> 00:47:01,387 Igaüks hea? 1044 00:47:01,387 --> 00:47:02,970 Sihtrühm: Nii et iga kord, kui ma [kuuldamatu]? 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 Nii et kui me tõesti ei saada sinna kohe käigus. 1048 00:47:13,270 --> 00:47:16,760 Aga tean, et string-- nagu ma enne ütlesin, string on sisuliselt 1049 00:47:16,760 --> 00:47:18,440 array tähemärki. 1050 00:47:18,440 --> 00:47:21,430 Nii et kui ma luua massiivi stringid, ma selline 1051 00:47:21,430 --> 00:47:24,430 on hulgaliselt massiivi märke, eks? 1052 00:47:24,430 --> 00:47:27,720 >> Nii et sel juhul, sest ma on massiivi stringe, 1053 00:47:27,720 --> 00:47:31,340 kui sa olid sisend tõesti pikk sõna, et ikka kulub ainult üks ruum, 1054 00:47:31,340 --> 00:47:33,230 sest see on üks string. 1055 00:47:33,230 --> 00:47:37,492 Aga kui sa olid mõelda tegelased, et massiiv, 1056 00:47:37,492 --> 00:47:40,450 siis see asumist palju märke kui ükskõik milline Teisisõnu 1057 00:47:40,450 --> 00:47:41,372 on. 1058 00:47:41,372 --> 00:47:42,830 Pole tõesti oluline just nüüd. 1059 00:47:42,830 --> 00:47:44,921 Aga see on lihtsalt üldiselt kuidas see töötab. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> OKEI. 1062 00:47:50,560 --> 00:47:55,840 Nii et see on midagi, mida ma lasen sul palju jooksul semestri. 1063 00:47:55,840 --> 00:47:57,500 Ma pean puhkuse mu häält. 1064 00:47:57,500 --> 00:47:59,530 Te peate stimuleerida ise. 1065 00:47:59,530 --> 00:48:02,300 Palju siis ilmselt on magama kohe. 1066 00:48:02,300 --> 00:48:05,960 Ma sisestanud juhuslik probleeme kus me klassina või sa 1067 00:48:05,960 --> 00:48:09,480 koos partneriga kõrval sa lähed veeta paar minutit arutada 1068 00:48:09,480 --> 00:48:14,980 kuidas me läheks umbes lahendamisel või luua programmi, nagu seda. 1069 00:48:14,980 --> 00:48:17,100 >> Nii kohe, me tahame luua program-- 1070 00:48:17,100 --> 00:48:19,560 me ei kavatse seda kutsuda upper.c-- mis teisendab 1071 00:48:19,560 --> 00:48:24,787 väiketähti sõna ülemise klassi string-- suur-, vabandust. 1072 00:48:24,787 --> 00:48:26,370 Sõna stringid, sorry, on sünonüümid. 1073 00:48:26,370 --> 00:48:28,370 Ma lähen neid muuta tähendab sama asja. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Jah. 1076 00:48:33,499 --> 00:48:34,540 Võtke paar minutit. 1077 00:48:34,540 --> 00:48:37,130 See ei pea olema mistahes keeles. 1078 00:48:37,130 --> 00:48:39,890 Lihtsalt pseudokoodi koodi või loogiliselt, kuidas me oleks isegi 1079 00:48:39,890 --> 00:48:42,083 minema umbes teeb selline probleem. 1080 00:48:42,083 --> 00:48:42,583 Jah. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE CONVERSATION] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Olen ka märganud, et kutid can-- Ma nagu näha juba programmi. 1085 00:49:22,130 --> 00:49:24,600 Ma arvan, et minu puudumine saatejuht režiim on probleem. 1086 00:49:24,600 --> 00:49:27,410 Aga see on ok. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE CONVERSATION] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Jah, palun, poisid. 1090 00:50:04,380 --> 00:50:05,400 Tule saada kommi. 1091 00:50:05,400 --> 00:50:06,372 Tule saada kommi. 1092 00:50:06,372 --> 00:50:07,698 >> Sihtrühm: Jah! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE CONVERSATION] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI PENG: Ka yeah, Ma hakkan viskamine kommi 1096 00:50:18,100 --> 00:50:20,280 inimestele, kes ei vastata küsimustele. 1097 00:50:20,280 --> 00:50:22,260 Nii et sa peaksid kõik vastata küsimustele. 1098 00:50:22,260 --> 00:50:24,895 Või ma arvan inimesed ei vastata küsimustele. 1099 00:50:24,895 --> 00:50:26,070 Jah, teistpidi. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE CONVERSATION] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 Sihtrühm: [kuuldamatu] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI PENG: Jah. 1105 00:51:18,340 --> 00:51:19,340 Jah. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE CONVERSATION] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Olgu, poisid. 1109 00:51:41,590 --> 00:51:44,731 Võtame näiteks, 10 sekundit. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE CONVERSATION] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> OK, poisid. 1113 00:52:11,750 --> 00:52:14,920 Nii et enne kui hakkame üritab tegelikult füüsiliselt kirjutada koodi, 1114 00:52:14,920 --> 00:52:20,650 hea harjumus arendada, et tahame esimene selline põhjus 1115 00:52:20,650 --> 00:52:22,737 välja loogiliselt, kuidas me seda teha. 1116 00:52:22,737 --> 00:52:24,570 Sa tahad teha kindel, Enne füüsiliselt 1117 00:52:24,570 --> 00:52:27,210 alustada üritab koodi Mario, et te teete 1118 00:52:27,210 --> 00:52:28,870 Veenduge, et teil on oma pseudokoodi. 1119 00:52:28,870 --> 00:52:31,235 See võtab teid läbi mida teil on vaja luua nii 1120 00:52:31,235 --> 00:52:33,360 et kui sa füüsiliselt kirjuta oma programmi hiljem 1121 00:52:33,360 --> 00:52:36,640 sa suudaksid paremini püüda vigu oma koodi ja asju. 1122 00:52:36,640 --> 00:52:40,460 >> Nii et me läheme lihtsalt alustada by-- inglise keeles pseudokoodi, 1123 00:52:40,460 --> 00:52:43,320 Kas keegi taha anda minu üldine selgitus 1124 00:52:43,320 --> 00:52:46,250 kuidas me minna seda teed? 1125 00:52:46,250 --> 00:52:48,102 Jah. 1126 00:52:48,102 --> 00:52:49,664 >> Sihtrühm: [kuuldamatu]. 1127 00:52:49,664 --> 00:52:50,830 ANDI PENG: Muidugi, ei muretse. 1128 00:52:50,830 --> 00:52:57,233 Sihtrühm: Kas sa küsid seda või küsi keegi saada string 1-- yeah, string, 1129 00:52:57,233 --> 00:52:58,160 ja siis-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI PENG: Jah, nii see on hea algus. 1131 00:52:59,826 --> 00:53:01,972 Ma hakkan kirjutama, sorry, kui sa räägid. 1132 00:53:01,972 --> 00:53:02,471 So-- 1133 00:53:02,471 --> 00:53:05,698 >> Sihtrühm: --the väiketähed numbrid on suuremad, eks? 1134 00:53:05,698 --> 00:53:08,519 Või väiketähti on suur hulk? 1135 00:53:08,519 --> 00:53:09,310 ANDI PENG: Täpselt. 1136 00:53:09,310 --> 00:53:16,156 Sihtrühm: Siis me lahutama 32, olenemata [kuuldamatu]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI PENG: Hea. 1139 00:53:29,870 --> 00:53:35,020 Nii me sellist on üldises mõttes kuidas töötada selle probleemi kohta. 1140 00:53:35,020 --> 00:53:40,060 Teades, et me oleme omamoodi õppinud füüsilise nii, et stringid 1141 00:53:40,060 --> 00:53:43,320 salvestatakse mällu, mida sa juba 1142 00:53:43,320 --> 00:53:45,920 tean, et sa lähed, et ilmselt on vaja kirjutada oma koodi 1143 00:53:45,920 --> 00:53:48,288 et liikuda string? 1144 00:53:48,288 --> 00:53:49,259 >> Sihtrühm: For loop. 1145 00:53:49,259 --> 00:53:50,550 ANDI PENG: A loop, täpselt. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Hea. 1148 00:53:57,220 --> 00:54:00,539 Nii me sellist on üldine pseudokoodi allahinnatud 1149 00:54:00,539 --> 00:54:02,330 sellist annab sa märgib selle kohta, kuidas 1150 00:54:02,330 --> 00:54:03,900 oleks liikuda probleemi lahendamisel. 1151 00:54:03,900 --> 00:54:06,150 Nüüd, kui sul on selline, siis võib viidata see alles 1152 00:54:06,150 --> 00:54:08,233 millal sa üritad tegelikult kirjutada oma koodi. 1153 00:54:08,233 --> 00:54:10,240 Nii saame tegelikult minna siin. 1154 00:54:10,240 --> 00:54:25,130 Ja mul on funktsioon nimega upper.c-- seal on-- lihtsalt tühi blankett 1155 00:54:25,130 --> 00:54:28,510 kohe, et kutid ei kavatse aidake mind välja nuputada, kuidas kirjutada 1156 00:54:28,510 --> 00:54:30,430 see rida code-- ei koodirida. 1157 00:54:30,430 --> 00:54:32,890 See oleks mitu rida koodi. 1158 00:54:32,890 --> 00:54:35,710 >> Kui alustada mingit Tühjade pset, mis on 1159 00:54:35,710 --> 00:54:37,418 esimene asi, mida ma vaja meeles pidada teha? 1160 00:54:37,418 --> 00:54:39,290 >> Sihtrühm: [kuuldamatu]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI PENG: Hea Yep. 1162 00:54:41,000 --> 00:54:41,500 Kaasa. 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 Sageli on see üks kõige lihtne vigu inimesed 1166 00:54:49,640 --> 00:54:51,598 teeb, kui nad on kirjalikult, et nad tulen 1167 00:54:51,598 --> 00:54:54,180 unustage lisada tähtis raamatukogu nad vajavad. 1168 00:54:54,180 --> 00:54:57,689 Nii et kui see on tööaega ja sa oled nagu, Ma ei tea, miks minu kood ei tööta. 1169 00:54:57,689 --> 00:54:59,230 Kas oskate öelda, miks see ei tööta? 1170 00:54:59,230 --> 00:55:00,730 Me läheme öelda sa # include? 1171 00:55:00,730 --> 00:55:02,520 Sa peaksid # include see. 1172 00:55:02,520 --> 00:55:03,270 OKEI. 1173 00:55:03,270 --> 00:55:07,230 >> Nii on meil standard I / O siin. 1174 00:55:07,230 --> 00:55:10,740 Kas see on ainult raamatukogu me läheme siit vaja? 1175 00:55:10,740 --> 00:55:12,681 Mida me saame teha? 1176 00:55:12,681 --> 00:55:13,180 Vabandust. 1177 00:55:13,180 --> 00:55:14,562 Keegi lihtsalt karjuda välja? 1178 00:55:14,562 --> 00:55:15,666 >> Sihtrühm: [kuuldamatu]. 1179 00:55:15,666 --> 00:55:16,666 ANDI PENG: Seal sa lähed. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 OKEI. 1182 00:55:21,440 --> 00:55:26,070 Ja kuidas ma minna alustades mingit funktsiooni, mingit põhiülesanne 1183 00:55:26,070 --> 00:55:28,760 meie programm? 1184 00:55:28,760 --> 00:55:30,020 Int peamine. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 OKEI. 1187 00:55:35,030 --> 00:55:35,970 Mida ma sinna sisse panna siin? 1188 00:55:35,970 --> 00:55:37,640 Mis on esimene asi, mida sa teha tahad? 1189 00:55:37,640 --> 00:55:39,910 Kui me tahame saada string kasutaja, 1190 00:55:39,910 --> 00:55:43,870 mida me tahame olla teha seda esimest rida? 1191 00:55:43,870 --> 00:55:46,120 Vabandame, kutid lihtsalt tunnen tasuta rääkida ja valju. 1192 00:55:46,120 --> 00:55:47,123 Just hüüda iganes. 1193 00:55:47,123 --> 00:55:48,772 >> Sihtrühm: Küsi kasutaja? 1194 00:55:48,772 --> 00:55:49,980 ANDI PENG: Kuidas me seda teeme? 1195 00:55:49,980 --> 00:55:51,873 Ask-- olen ma kavatsen kirjutada "paluda kasutajal"? 1196 00:55:51,873 --> 00:55:52,600 >> Sihtrühm: 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 Mida ma tahan printf? 1200 00:55:57,372 --> 00:55:58,776 >> Sihtrühm: Type midagi. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI PENG: niimoodi? 1203 00:56:03,840 --> 00:56:05,430 Poisid, teeselda nagu ma olen arvuti. 1204 00:56:05,430 --> 00:56:08,475 Füüsiliselt mulle igal sammul et mul on vaja kirjutada siin? 1205 00:56:08,475 --> 00:56:09,600 Kas ma teen midagi valesti? 1206 00:56:09,600 --> 00:56:10,743 Kui mul on kirjutatud midagi? 1207 00:56:10,743 --> 00:56:11,690 >> Sihtrühm: Sa pead hinnapakkumisi. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI PENG: mul on vaja hinnapakkumisi? 1209 00:56:12,380 --> 00:56:12,880 OKEI. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 OKEI. 1212 00:56:16,297 --> 00:56:17,698 >> Sihtrühm: Ja siis uus liin. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Semikooloniga. 1215 00:56:22,465 --> 00:56:23,340 ANDI PENG: semikoolon? 1216 00:56:23,340 --> 00:56:24,060 OKEI. 1217 00:56:24,060 --> 00:56:24,560 Väga hea. 1218 00:56:24,560 --> 00:56:27,060 >> Sihtrühm: Ja äkki täpsustada et sa tahad seda väiketähtedega? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI PENG: Hea. 1221 00:56:31,415 --> 00:56:33,540 Te naerate mind unustades panna semikooloniga. 1222 00:56:33,540 --> 00:56:36,350 Ma garanteerin teile kuskil käigus selles klassis, 1223 00:56:36,350 --> 00:56:38,260 siis unustage panna semikooloniga ning see 1224 00:56:38,260 --> 00:56:41,116 viib teid kolm tundi aru miks teie kood ei tööta. 1225 00:56:41,116 --> 00:56:42,240 See juhtus meile kõigile. 1226 00:56:42,240 --> 00:56:43,950 Tõenäoliselt juhtuda. 1227 00:56:43,950 --> 00:56:46,352 Olge hea harjumus kasutada semikoolonit. 1228 00:56:46,352 --> 00:56:46,852 OKEI. 1229 00:56:46,852 --> 00:56:49,010 >> Sihtrühm: Kas soovid teha längkriipsu aastal? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI PENG: Muidugi. 1231 00:56:50,398 --> 00:56:51,856 Kas sa tahad teha längkriipsu aastal? 1232 00:56:51,856 --> 00:56:53,020 >> Sihtrühm: Jah. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI PENG: Hea. 1234 00:56:54,330 --> 00:56:54,830 OKEI. 1235 00:56:54,830 --> 00:56:57,872 Mida teha edasi? 1236 00:56:57,872 --> 00:56:58,964 >> Sihtrühm: siia string. 1237 00:56:58,964 --> 00:56:59,880 ANDI PENG: Get string. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Mida ma kirjutada? 1240 00:57:03,830 --> 00:57:04,233 Keegi? 1241 00:57:04,233 --> 00:57:05,040 >> Sihtrühm: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI PENG: String s. 1243 00:57:05,873 --> 00:57:07,251 Sihtrühm: getString. 1244 00:57:07,251 --> 00:57:09,000 ANDI PENG: Keegi, võite mulle öelda, kus 1245 00:57:09,000 --> 00:57:12,000 Selle funktsiooni getString on pärit? 1246 00:57:12,000 --> 00:57:13,660 >> Sihtrühm: string. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI PENG: string? 1248 00:57:15,256 --> 00:57:16,715 Sa arvad, et see on string? 1249 00:57:16,715 --> 00:57:17,830 >> Sihtrühm: [kuuldamatu]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI PENG: Seal sa lähed. 1251 00:57:18,830 --> 00:57:21,280 See on CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Kui sa oled alati segaduses, kus raamatukogu fail või päisefailist on, 1253 00:57:24,530 --> 00:57:28,450 google sõna otseses mõttes string, ja ma ütlen sulle 1254 00:57:28,450 --> 00:57:30,450 Mis on kõik funktsioonid mis on string. 1255 00:57:30,450 --> 00:57:31,340 OKEI. 1256 00:57:31,340 --> 00:57:35,210 >> Nüüd, et olen loonud string Ja ma olen kiire kasutajal seda, 1257 00:57:35,210 --> 00:57:38,770 Olen hoidnud seda muutuvat nimeks s, mida ma pean nüüd tegema? 1258 00:57:38,770 --> 00:57:40,652 >> Sihtrühm: Kontrolli, kas see on väiketähtedega. 1259 00:57:40,652 --> 00:57:41,360 ANDI PENG: Vabandust? 1260 00:57:41,360 --> 00:57:42,545 Sihtrühm: Kontrolli, kas see on väiketähtedega. 1261 00:57:42,545 --> 00:57:44,045 ANDI PENG: Olgu, teeme seda. 1262 00:57:44,045 --> 00:57:45,857 Kuidas ma seda teen? 1263 00:57:45,857 --> 00:57:47,940 Tegelikult eesmärgil klassi kohe, 1264 00:57:47,940 --> 00:57:50,330 me lihtsalt läheb eeldada, et kõik 1265 00:57:50,330 --> 00:57:52,620 et me panus on juba väiketähed. 1266 00:57:52,620 --> 00:57:55,430 Kui sa tahad, et kontrollida, siis oleks lihtsalt lisada tingimisi avalduse 1267 00:57:55,430 --> 00:57:59,640 et kontrollida, et jooksis läbi iga massiivi element 1268 00:57:59,640 --> 00:58:02,540 ja kontrollida, kas see on vahel teatud väärtusi. 1269 00:58:02,540 --> 00:58:05,627 Ma unustan, mida arv väärtuste väiketähed on. 1270 00:58:05,627 --> 00:58:07,210 Võite vaadata seda üles ASCII tabelis. 1271 00:58:07,210 --> 00:58:08,800 Aga jah, see on tõesti hea koht. 1272 00:58:08,800 --> 00:58:11,758 Aga just nüüd, me lihtsalt läheb eeldada, et kõik stringid me sisend 1273 00:58:11,758 --> 00:58:13,130 on väiketähtedega. 1274 00:58:13,130 --> 00:58:13,870 OKEI. 1275 00:58:13,870 --> 00:58:18,069 >> Niisiis, kuidas ma saan minna Selle probleemi saab edasi? 1276 00:58:18,069 --> 00:58:18,860 Sihtrühm: For loop. 1277 00:58:18,860 --> 00:58:19,340 ANDI PENG: For loop? 1278 00:58:19,340 --> 00:58:19,839 OKEI. 1279 00:58:19,839 --> 00:58:20,847 Ütle mulle, mida kirjutad. 1280 00:58:20,847 --> 00:58:25,230 >> Sihtrühm: For int i võrdub 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI PENG: OK. 1282 00:58:27,230 --> 00:58:36,350 >> Sihtrühm: Oh, tegelikult, siis teha komaga ja teha n võrdub strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI PENG: Nii tähtsam et ma arvan, et ta märkas siin 1284 00:58:38,940 --> 00:58:42,936 on see, et me ei pea ütlema int n teist korda tegime seda. 1285 00:58:42,936 --> 00:58:45,060 Lihtsalt tean, et on ette loop kui sa kuulutatakse, 1286 00:58:45,060 --> 00:58:47,934 sa tegelikult ei vaja int kohta teist korda sa muutuv. 1287 00:58:47,934 --> 00:58:51,202 Võite öelda n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> Sihtrühm: S. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI PENG: s. 1290 00:58:53,510 --> 00:58:54,706 OKEI. 1291 00:58:54,706 --> 00:58:58,370 >> Sihtrühm: Siis semikooloniga. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI PENG: Muidugi. 1293 00:59:00,130 --> 00:59:04,050 >> Sihtrühm: Ja siis [kuuldamatu] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Siis i ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI PENG: Hea. 1297 00:59:11,780 --> 00:59:12,280 Hästi. 1298 00:59:12,280 --> 00:59:14,690 Mida me tahame sees Selle jaoks silmus nüüd? 1299 00:59:14,690 --> 00:59:17,820 Pea meeles, kui me ei kavatse joosta string ja jookseb läbi massiivi, 1300 00:59:17,820 --> 00:59:19,287 tahame vaadata asju ta. 1301 00:59:19,287 --> 00:59:20,370 Mida me vajame? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 See on omamoodi keeruline osa nüüd. 1304 00:59:26,900 --> 00:59:27,960 Igaüks on vist? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> OKEI. 1307 00:59:34,690 --> 00:59:37,830 Nii esimene, kui me isegi juurde? 1308 00:59:37,830 --> 00:59:41,610 Kuidas me isegi esimene kontroll või ligi element massiivi? 1309 00:59:41,610 --> 00:59:42,920 Kuidas me seda teeme? 1310 00:59:42,920 --> 00:59:47,120 Mis on märke, mida me kasutame seda teha? 1311 00:59:47,120 --> 00:59:50,920 Mis nimi see massiivi nimetatakse? 1312 00:59:50,920 --> 00:59:52,400 Seda nimetatakse s, eks? 1313 00:59:52,400 --> 00:59:54,850 >> Pea meeles, et ükskõik string on alati massiivi. 1314 00:59:54,850 --> 00:59:58,210 Nii s sulg i, eks? 1315 00:59:58,210 --> 01:00:01,360 Sest see on praegune väärtus või indeksi väärtus me kontrollida. 1316 01:00:01,360 --> 01:00:05,156 Ja me ei kavatse seada, et võrdse mina-- tahame väiketähti väärtus, eks? 1317 01:00:05,156 --> 01:00:07,530 Soovime keerata, et lower-- sorry, me tahame suur-. 1318 01:00:07,530 --> 01:00:10,014 Me tahame keerata väiketähed väärtuse suurtähtede. 1319 01:00:10,014 --> 01:00:11,805 Ja nii like-- Vabandust, mis on Sinu nimi? 1320 01:00:11,805 --> 01:00:12,580 >> Sihtrühm: Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI PENG: Vabandust? 1322 01:00:12,940 --> 01:00:13,280 >> Sihtrühm: Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI PENG: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Nagu Heidi ütles Esialgu me ilmselt 1325 01:00:15,850 --> 01:00:20,330 läheb vaja the-- me oleme ilmselt läheb lahutama 1326 01:00:20,330 --> 01:00:22,630 32, olenemata charc see on õige? 1327 01:00:22,630 --> 01:00:24,680 Kuna kohta ASCII Tabelis on erinevus 1328 01:00:24,680 --> 01:00:27,790 vahel väiketäht ja suurtähega on 32. 1329 01:00:27,790 --> 01:00:31,290 Nii et kui me teeme seda, me oleme ilmselt lähed tahan lahutada 32, eks? 1330 01:00:31,290 --> 01:00:33,910 >> Nii et me teeme s i. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Kas igaüks aru, miks ma seda tegin? 1333 01:00:41,200 --> 01:00:45,760 Sest just nüüd, meie massiiv, me kontrollida 0. indeks, eks? 1334 01:00:45,760 --> 01:00:49,190 Ja 0. indeks string, mis on esimene märk. 1335 01:00:49,190 --> 01:00:51,820 Ja see märk me läheme eeldada, et see on väiketähed. 1336 01:00:51,820 --> 01:00:55,980 Kui me tahame, et oleks suur- me lahutame 32 oma väärtusest, 1337 01:00:55,980 --> 01:00:58,620 sest meie ASCII tabel, see on, kuidas me seda saada 1338 01:00:58,620 --> 01:01:01,600 järgmisele vastab väärtus, mis muudab ta suur-. 1339 01:01:01,600 --> 01:01:03,714 Kas igaüks aru? 1340 01:01:03,714 --> 01:01:04,213 Jah. 1341 01:01:04,213 --> 01:01:06,530 >> Sihtrühm: Kas te saaksite ka ei väiketähed minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI PENG: Jah, nii see on tegelikult väga hea. 1343 01:01:08,080 --> 01:01:10,455 Ma lähen tagasi tulla, et Küsimus pärast me seda teeme. 1344 01:01:10,455 --> 01:01:11,060 Jah. 1345 01:01:11,060 --> 01:01:13,940 Ja siis, kui ma tahan näha, mis toimub, 1346 01:01:13,940 --> 01:01:16,180 Ma ilmselt läheb soovite printida, eks? 1347 01:01:16,180 --> 01:01:19,930 Keegi öelge mulle, mida Kuidas printida siin. 1348 01:01:19,930 --> 01:01:29,160 >> Sihtrühm: printf protsenti c kurakriips [kuuldamatu]. 1349 01:01:29,160 --> 01:01:33,570 See on väärtus [kuuldamatu] s i. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI PENG: s i, vabandust? 1351 01:01:34,614 --> 01:01:35,530 Sihtrühm: [kuuldamatu]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI PENG: Ma ei tea. 1354 01:01:39,550 --> 01:01:40,600 Mida sa arvad? 1355 01:01:40,600 --> 01:01:44,016 >> Sihtrühm: Noh, ma wouldn't-- Ma arvan, et ma ei bring-- 1356 01:01:44,016 --> 01:01:46,944 Ma võtaks selle välja sees, sest [kuuldamatu]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI PENG: Oh, sa oleks pidanud seda tegema? 1359 01:01:51,392 --> 01:01:53,867 Sihtrühm: Jah. 1360 01:01:53,867 --> 01:01:56,700 ANDI PENG: Jätame selle, kuidas see on, ja ma seletan, miks hiljem. 1361 01:01:56,700 --> 01:01:58,533 Pea meeles, et isegi kui on koht, omanik, 1362 01:01:58,533 --> 01:02:00,701 sa tahad panna sulgudesse ümber. 1363 01:02:00,701 --> 01:02:01,200 Hästi. 1364 01:02:01,200 --> 01:02:04,810 Nii et see peaks olema kindel funktsioon siin. 1365 01:02:04,810 --> 01:02:06,370 Laseme ta ja vaata, kas see kogub. 1366 01:02:06,370 --> 01:02:08,750 Tee ülemine. 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 See ei näe hea välja. 1370 01:02:13,340 --> 01:02:14,507 Miks see nii on? 1371 01:02:14,507 --> 01:02:17,340 Nagu iga viga, sa tahad minna tagasi alustage esimene, 1372 01:02:17,340 --> 01:02:20,630 sest tavaliselt üks viga põhjused palju muid vigu pärast seda. 1373 01:02:20,630 --> 01:02:26,700 Siin näeme upper.c: 18: 25, mis ütleb, mulle see programm nimega upper.c, 1374 01:02:26,700 --> 01:02:33,800 real 18, viga kaudselt kuulutatakse raamatukogu funktsioonid strlen tüüpi 1375 01:02:33,800 --> 01:02:36,330 unassigned-- blah, ma ei tea mis toimub pärast seda. 1376 01:02:36,330 --> 01:02:39,990 >> Kõik see räägib mulle kohe on et midagi läheb on strlen. 1377 01:02:39,990 --> 01:02:43,520 Ja arvuti segi, sest See on nagu, ma ei tea, mida strlen on? 1378 01:02:43,520 --> 01:02:45,520 Mida see ilmselt ütlen sulle sa oled kadunud? 1379 01:02:45,520 --> 01:02:46,490 >> Sihtrühm: Sa oled kadunud [kuuldamatu]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI PENG: Sul on õigus. 1381 01:02:47,630 --> 01:02:49,510 Täpselt. 1382 01:02:49,510 --> 01:02:52,140 Nii et see on koht, kus see on oluline tagada 1383 01:02:52,140 --> 01:02:56,970 et iga funktsiooni saate kasutada oma kood on lasknud õige päise kaudu 1384 01:02:56,970 --> 01:02:59,660 esitama raamatukogu, või siis sa lähed, et saada palju vigu 1385 01:02:59,660 --> 01:03:01,150 ja oma koodi ei kavatse teada, mis toimub. 1386 01:03:01,150 --> 01:03:03,050 Nii et me läheme lisada string siin. 1387 01:03:03,050 --> 01:03:06,270 >> Nüüd, kui me püüame koostada ülemine. 1388 01:03:06,270 --> 01:03:08,410 Koostage õigesti. 1389 01:03:08,410 --> 01:03:09,960 Laseme selle programmi. 1390 01:03:09,960 --> 01:03:12,000 Nii kirjuta midagi väiketähed. 1391 01:03:12,000 --> 01:03:14,920 Mis te poisid tahavad kirjutada? 1392 01:03:14,920 --> 01:03:16,546 Hüüab midagi. 1393 01:03:16,546 --> 01:03:17,920 Olgu, Charly lihtsalt kõndis. 1394 01:03:17,920 --> 01:03:18,990 Me kirjutada Charly nime. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly väiketähtedega. 1397 01:03:22,840 --> 01:03:27,742 Ja loodetavasti loodetavasti on see hüüdmas välja ja sülitama 1398 01:03:27,742 --> 01:03:28,575 Charly suure algustähega. 1399 01:03:28,575 --> 01:03:30,830 Jei! 1400 01:03:30,830 --> 01:03:33,430 ei igaüks aru, kuidas Käisin umbes lahendada seda? 1401 01:03:33,430 --> 01:03:36,190 Nii, et ma ei saa manipuleerida kasutades täisarvu 1402 01:03:36,190 --> 01:03:39,410 lahendada midagi, mis Ma tahan teha stringid, 1403 01:03:39,410 --> 01:03:44,390 sest tegelased ja täisarvu viitamisele samamoodi, sest 1404 01:03:44,390 --> 01:03:45,540 ASCII kaardistamine. 1405 01:03:45,540 --> 01:03:52,890 >> Nii et jätkake punktist, kui ma tahtsin panna siin, mitte 32 1406 01:03:52,890 --> 01:03:58,959 suur- miinusmärk väiketähed õiglane nagu et mis toimivad sama hästi, 1407 01:03:58,959 --> 01:04:01,750 sest see on lihtsalt lihtsalt Nende kahe vahe väärtused. 1408 01:04:01,750 --> 01:04:09,570 Kui ma tahan teha seda again-- Charly. 1409 01:04:09,570 --> 01:04:10,320 Oh ei. 1410 01:04:10,320 --> 01:04:11,820 Ma arvan, et me läksime vales suunas, jah? 1411 01:04:11,820 --> 01:04:13,260 >> Sihtrühm: [kuuldamatu] väiketähed a. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI PENG: Seal sa lähed. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Yep. 1415 01:04:22,880 --> 01:04:24,920 Ja välja sülitab Charly. 1416 01:04:24,920 --> 01:04:28,020 Nii et ole ettevaatlik sa lahutades väärtused 1417 01:04:28,020 --> 01:04:30,400 meeles pidada, millest üks on suurem kui teine. 1418 01:04:30,400 --> 01:04:35,220 Näiteks siin ma unustasin et väiketähed a on tegelikult 1419 01:04:35,220 --> 01:04:38,540 suurem kui suur- A. Nii et kui ma püüdis lahutada neid muul viisil 1420 01:04:38,540 --> 01:04:40,600 ümber, sain negatiivse 32. 1421 01:04:40,600 --> 01:04:42,800 Ja minu arvuti oli nagu, Ma ei tea, mis see on. 1422 01:04:42,800 --> 01:04:45,810 See on tõenäosus lihtsalt mingi suvaline väärtus, mis ei ole väga hea. 1423 01:04:45,810 --> 01:04:48,760 Ja nii veenduge, et olete lahutades õige pikkusega 1424 01:04:48,760 --> 01:04:52,831 leida soovitud täht. 1425 01:04:52,831 --> 01:04:53,330 OKEI. 1426 01:04:53,330 --> 01:04:58,550 Kas keegi segaduses, kuidas me käis kirjutamise funktsioon? 1427 01:04:58,550 --> 01:04:59,180 OKEI. 1428 01:04:59,180 --> 01:05:04,830 Seega tegelikult funktsioon juba olemas raamatukogu nimetatakse ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Raamatukogu kutsus ctype.h. 1430 01:05:06,417 --> 01:05:08,500 See funktsioon tegelikult on juba kirjutatud teile. 1431 01:05:08,500 --> 01:05:10,820 Seda nimetatakse ülemiste. 1432 01:05:10,820 --> 01:05:13,027 >> Ja nii otstarbel Selle pset, sa lähed 1433 01:05:13,027 --> 01:05:15,860 leida, et sa tõesti tahad kasutada palju funktsioone sisalduvate 1434 01:05:15,860 --> 01:05:17,390 jooksul ctype raamatukogu. 1435 01:05:17,390 --> 01:05:21,040 Ülem, alandada, on ülemine, on lower-- need on kõik funktsioonid 1436 01:05:21,040 --> 01:05:24,914 et siis saab kasutada väga, väga kiiresti oma koodi 1437 01:05:24,914 --> 01:05:26,080 ei täpselt, mida see teeb. 1438 01:05:26,080 --> 01:05:28,941 Me kirjutasime, kuidas teisendada string suurtäheks. 1439 01:05:28,941 --> 01:05:31,440 Aga see on tegelikult koodi et keegi teine ​​on kirjutanud 1440 01:05:31,440 --> 01:05:33,800 ja millele pääseb ligi via teist funktsiooni. 1441 01:05:33,800 --> 01:05:34,300 Jah? 1442 01:05:34,300 --> 01:05:39,570 >> Sihtrühm: Nii et sa lihtsalt kopeerida A seal ja teha seda iga kirja? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI PENG: Jah, sest ma ei ole hooli väärtusi. 1444 01:05:42,070 --> 01:05:44,540 Ma lihtsalt huvita, et erinevus nende vahel on 32, eks? 1445 01:05:44,540 --> 01:05:48,210 Erinevus väiketähed b ja suur- B on ka 32. 1446 01:05:48,210 --> 01:05:50,860 Ja vahest c ja suur- C on alati 32. 1447 01:05:50,860 --> 01:05:53,235 >> Ma lihtsalt hoolivad Erinevus nende kahe vahel, 1448 01:05:53,235 --> 01:05:56,666 sest kõik kirjad Samasugust skeemi, eks? 1449 01:05:56,666 --> 01:05:58,540 Kui mul on vahe vahelise üks neist, 1450 01:05:58,540 --> 01:06:01,050 Ma tean, mida vahe vahelise kõik neist on. 1451 01:06:01,050 --> 01:06:01,740 Hea küsimus. 1452 01:06:01,740 --> 01:06:04,090 Jah. 1453 01:06:04,090 --> 01:06:06,660 Igaüks hea? 1454 01:06:06,660 --> 01:06:09,080 OKEI. 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 >> OKEI. 1458 01:06:15,270 --> 01:06:20,310 Nii teine ​​mõiste, mis on saab olema väga kasulik, kui teil 1459 01:06:20,310 --> 01:06:22,570 edasi arendada koodi on seda ideed 1460 01:06:22,570 --> 01:06:25,430 loomise funktsioone või võtmiseks. 1461 01:06:25,430 --> 01:06:28,479 Nii kohe, me kõik oleme võtnud algebra. 1462 01:06:28,479 --> 01:06:31,770 Algebra, siis on õpetanud, et on olemas see imeline asi nimega funktsiooni 1463 01:06:31,770 --> 01:06:35,300 masin, kus, kui sa sisend üks omamoodi number, 1464 01:06:35,300 --> 01:06:38,720 see jookseb läbi selle imelise funktsiooni ja välja hüppab erineva väljundi, eks? 1465 01:06:38,720 --> 01:06:42,220 In kood, sama asi juhtub aastal mingit funktsiooni. 1466 01:06:42,220 --> 01:06:48,230 >> Nii et ma võiks füüsiliselt kirjutada minu keha minu koodi 1467 01:06:48,230 --> 01:06:52,357 peamine väide, et tegelikult teeb olenemata keha kood teeb. 1468 01:06:52,357 --> 01:06:54,940 Aga väljaspool seda, ma ei saa ka kirjuta palju erinevaid funktsioone 1469 01:06:54,940 --> 01:06:56,320 et teha palju erinevaid asju. 1470 01:06:56,320 --> 01:06:58,570 Näiteks oleme juba hakkasin kasutama mõned neist. 1471 01:06:58,570 --> 01:07:00,610 Printf-- et on funktsiooni, et keegi teine 1472 01:07:00,610 --> 01:07:02,870 on juba kirjutatud, et me nimetame meie koodi. 1473 01:07:02,870 --> 01:07:05,410 Et upper-- sel juhul, upper-- on teine ​​funktsioon 1474 01:07:05,410 --> 01:07:07,330 oleme kirjutanud, et me võib helistada meie koodi. 1475 01:07:07,330 --> 01:07:09,520 Ja nii ma arvan miks meil on isegi funktsioone? 1476 01:07:09,520 --> 01:07:12,100 Miks me lihtsalt ei sulpsti see kõik sama rida koodi? 1477 01:07:12,100 --> 01:07:13,730 See on lihtne kõigile. 1478 01:07:13,730 --> 01:07:19,200 >> Noh, põhjendusi, et on, esiteks, organisatsiooni. 1479 01:07:19,200 --> 01:07:21,880 See on tõesti tüütu läheb läbi kellegi koodi 1480 01:07:21,880 --> 01:07:25,110 ja üks funktsioon, nagu printf. 1481 01:07:25,110 --> 01:07:28,570 Kui te poisid tegelikult teadis, mida funktsiooni printf kaasnevad kirjutada, 1482 01:07:28,570 --> 01:07:30,530 see on nagu 1000 rida koodi. 1483 01:07:30,530 --> 01:07:32,357 >> Kui iga kord kui ma tahtsin to printf midagi, 1484 01:07:32,357 --> 01:07:35,440 Ma pidin kirjutama 1000 rida koodi, See oleks väga tüütu lugeda, 1485 01:07:35,440 --> 01:07:36,290 õige? 1486 01:07:36,290 --> 01:07:38,860 See on põhjus, miks me oleme lihtsalt loodud abstraktne funktsiooni 1487 01:07:38,860 --> 01:07:41,670 et meil on juba keegi teine ​​on kirjutanud kusagil mujal. 1488 01:07:41,670 --> 01:07:44,920 Ja iga kord, kui meil on vaja seda kasutada Meie koodi, me lihtsalt pean ütlema printf. 1489 01:07:44,920 --> 01:07:48,070 Ja see on võimalik kasutada funktsiooni keegi on kirjutatud meie koodi. 1490 01:07:48,070 --> 01:07:51,020 See muudab lihtsamaks organisatsiooniliselt lugeda koodi. 1491 01:07:51,020 --> 01:07:53,460 >> Teiseks, see on lihtsustamine. 1492 01:07:53,460 --> 01:07:56,750 See lihtsustab samme meil võtta, et lahendada meie probleem. 1493 01:07:56,750 --> 01:07:59,300 Printf, funktsioone nagu printf, funktsioone nagu ülemiste 1494 01:07:59,300 --> 01:08:03,560 on kõik asjad, mis võimaldavad meil lihtsustavad meie koodi alla nii see on lihtsam. 1495 01:08:03,560 --> 01:08:05,830 Ja viimane asi on taaskasutada. 1496 01:08:05,830 --> 01:08:08,710 >> Nii et meil on funktsioon nimega printf 1497 01:08:08,710 --> 01:08:11,990 et meil on võimalik helistada palju erinevaid ajad ja võimaldab tal olla korduvalt. 1498 01:08:11,990 --> 01:08:14,980 Kui ma kirjutada printf, Ma ainult seda kirjutada üks kord. 1499 01:08:14,980 --> 01:08:16,439 See eksisteerib ainult selles ühes kohas. 1500 01:08:16,439 --> 01:08:19,890 Kui ma tahtsin seda uuesti teha, oleksin pea kopeeri ja kleebi see kõik 1501 01:08:19,890 --> 01:08:21,760 minu teine ​​rida koodi. 1502 01:08:21,760 --> 01:08:24,880 Sellepärast, kui me loome funktsiooni mis eksisteerib väljaspool meie peamine, 1503 01:08:24,880 --> 01:08:26,880 saame lihtsalt kutsuda seda ja seda kasutada, kui 1504 01:08:26,880 --> 01:08:29,604 vajame nii, et see on palju lihtsam meie jaoks programme kirjutada. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Nii nii, et me oleks tegelikult kirjutada funktsioon on väga sarnased, eks? 1507 01:08:35,549 --> 01:08:37,590 See on selline esimene Näiteks kus me tulen 1508 01:08:37,590 --> 01:08:42,830 vaata funktsioon võtma stiil teistsugune kui meie int main void. 1509 01:08:42,830 --> 01:08:46,779 Sel juhul, kui tahtsin kirjutada funktsiooni nimetatakse q, eks? 1510 01:08:46,779 --> 01:08:49,370 >> Ja int väärtus siin on kõik mulle öelda, 1511 01:08:49,370 --> 01:08:51,649 Mida ma tahan seda toimida naasta mind? 1512 01:08:51,649 --> 01:08:54,484 Kui ma tahan kuubik täisarv, Ma tahan, et sisestada. 1513 01:08:54,484 --> 01:08:55,525 Need on parameetrid. 1514 01:08:55,525 --> 01:08:58,490 Ma lähen sisestab väärtus tüüpi int. 1515 01:08:58,490 --> 01:09:01,300 Ja ma lähen tagasi teist tüüpi väärtuse int. 1516 01:09:01,300 --> 01:09:03,050 Ja siin, nagu sa näete, kõik teen 1517 01:09:03,050 --> 01:09:07,300 on cubing iganes minu panus on nagu mu väljund ja selle tagasi. 1518 01:09:07,300 --> 01:09:10,790 >> Nii et kõik see funktsioon teeb on võtab mingi täisarv. 1519 01:09:10,790 --> 01:09:14,979 See korrutab ise kaks korda nii, et see kuubikud mõju. 1520 01:09:14,979 --> 01:09:17,729 Ja siis ta naaseb mida iganes, et väljund on. 1521 01:09:17,729 --> 01:09:20,540 Nii et sel juhul on kaks rida kood, mis meil oli kirjutada extra. 1522 01:09:20,540 --> 01:09:22,880 Aga kui me tahame helistada peale seda mitu korda, 1523 01:09:22,880 --> 01:09:26,210 see on palju lihtsam kirjutada, et üks line siin see on kuubik kui 1524 01:09:26,210 --> 01:09:28,830 läbima mitu korda. 1525 01:09:28,830 --> 01:09:34,180 >> Nii nii, et sisuliselt mingit vormindamise mingit funktsiooni 1526 01:09:34,180 --> 01:09:36,420 läheb olemas on, nagu siin. 1527 01:09:36,420 --> 01:09:38,659 Nii et meil on funktsiooni nimi. 1528 01:09:38,659 --> 01:09:39,950 Sel juhul nimetatakse seda kuup. 1529 01:09:39,950 --> 01:09:42,033 Ja me nime kuubik, sest see on lihtne meeles pidada. 1530 01:09:42,033 --> 01:09:44,220 Saate nimi on ruudu ja see võib tegelikult kuubis,. 1531 01:09:44,220 --> 01:09:45,500 Ei ole oluline. 1532 01:09:45,500 --> 01:09:48,020 Just nimi, mis sa oled määrates oma funktsiooni. 1533 01:09:48,020 --> 01:09:51,660 >> See siin, int, on tüüp parameeter, mida vaja. 1534 01:09:51,660 --> 01:09:54,149 Mida see funktsioon vaja, et see töötaks? 1535 01:09:54,149 --> 01:09:55,990 Noh, ta vajab sisendina. 1536 01:09:55,990 --> 01:09:56,704 Ma nimeks sisend. 1537 01:09:56,704 --> 01:09:58,120 Saate nimi see, mida sa tahad. 1538 01:09:58,120 --> 01:10:00,500 Aga mul on vaja midagi tüüpi int. 1539 01:10:00,500 --> 01:10:03,730 See saab tegelikult teostada kõik, mis on sees siin, 1540 01:10:03,730 --> 01:10:04,990 kere funktsiooni. 1541 01:10:04,990 --> 01:10:07,847 Ja siis tüübi tagastamise siin, see int-- 1542 01:10:07,847 --> 01:10:09,680 kõik see räägib mulle on et see funktsioon on 1543 01:10:09,680 --> 01:10:11,250 läheb tagasi mind int. 1544 01:10:11,250 --> 01:10:14,460 Nii see läheb võtma int, ja see läheb teile tagasi int. 1545 01:10:14,460 --> 01:10:17,750 Kas igaüks aru, kuidas vormingu selline töötab? 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 >> OKEI. 1549 01:10:25,740 --> 01:10:31,770 Nii et ärge mures, kui tundub veidi abstraktne kohe. 1550 01:10:31,770 --> 01:10:33,450 See on midagi, mida me räägime. 1551 01:10:33,450 --> 01:10:36,310 Me sukelduda sügavamale hiljem muidugi. 1552 01:10:36,310 --> 01:10:41,170 Nii, et mingit kõrgemat võtmiseks need asjad töö 1553 01:10:41,170 --> 01:10:43,530 seisneb selles, et mälu, in arvuti, kõik 1554 01:10:43,530 --> 01:10:47,660 hoitakse seda tüüpi korstna, ma ütlen. 1555 01:10:47,660 --> 01:10:49,070 >> Nii seal tipus. 1556 01:10:49,070 --> 01:10:50,861 Ma ei tea, kas sa poisid on näha, et hästi. 1557 01:10:50,861 --> 01:10:52,590 Ma püüan suumida. 1558 01:10:52,590 --> 01:10:55,111 Siin üleval, me on füüsilise teksti 1559 01:10:55,111 --> 01:10:57,860 mida arvuti on interpreting-- kõik nullid ja need, mis 1560 01:10:57,860 --> 01:10:59,540 eksisteerivad meie arvuti. 1561 01:10:59,540 --> 01:11:03,390 Ja siis on meil vormindatud andmed ja deinitsialiseerimine andmed, 1562 01:11:03,390 --> 01:11:05,340 mida me nimetame globaalseid muutujaid. 1563 01:11:05,340 --> 01:11:08,200 Nii muutujad, mis on olemas kõigis programmides 1564 01:11:08,200 --> 01:11:11,815 ja kogu teie, Sisuliselt koodi. 1565 01:11:11,815 --> 01:11:13,940 Ära muretse, kui teiega on selline ebaselge seda. 1566 01:11:13,940 --> 01:11:16,060 See ei ole tegelikult küsimus kohe. 1567 01:11:16,060 --> 01:11:18,680 >> Ja siis on meil mida on nimetatakse hunnik virna. 1568 01:11:18,680 --> 01:11:21,140 Mõtle virna sõna otseses mõttes nagu nagu virna asju, 1569 01:11:21,140 --> 01:11:23,098 virna erinevate asju, mida lükatakse peal 1570 01:11:23,098 --> 01:11:27,870 üksteisest mis talletavad erinevate muutujad ja süntaksi Koodi. 1571 01:11:27,870 --> 01:11:31,460 Ja siis siin väga põhjas, meil keskkonnamuutujateta 1572 01:11:31,460 --> 01:11:35,480 mida te täidesaatva jooksul lihtsalt su väike rida koodi. 1573 01:11:35,480 --> 01:11:40,510 >> Ja me lihtsalt läheb suurendamiseks in tegelik stack osa. 1574 01:11:40,510 --> 01:11:43,880 Nii siin, kui me olime suurendamiseks aastal just selles valdkonnas korstna, 1575 01:11:43,880 --> 01:11:45,140 see on see, mida ta näeb. 1576 01:11:45,140 --> 01:11:48,590 Ja see on tegelikult päris oluline kui poisid räägivad funktsioone, 1577 01:11:48,590 --> 01:11:52,330 sest teate, et mälu arvuti 1578 01:11:52,330 --> 01:11:55,600 salvestab muutujad ja funktsioonid 1579 01:11:55,600 --> 01:11:58,790 ja parameetreid nii oma funktsiooni ja teie põhimuutujana 1580 01:11:58,790 --> 01:12:00,190 erinevates kohtades. 1581 01:12:00,190 --> 01:12:03,390 >> Nii kohe, peamine on tegelik funktsioon 1582 01:12:03,390 --> 01:12:04,780 et sa täidesaatva koodi. 1583 01:12:04,780 --> 01:12:08,050 Olete oma salvestatud parameetrite siin ja tema kohalikud muutujad hoitakse siin. 1584 01:12:08,050 --> 01:12:12,270 Kohalik muutuja vaid mis tahes muutuja et on olemas ainult selle funktsiooni. 1585 01:12:12,270 --> 01:12:15,610 Ja peale seda, siis on see Eraldi funktsioon nimega kuup. 1586 01:12:15,610 --> 01:12:18,240 Sul on see parameetrid samuti need kohalikega. 1587 01:12:18,240 --> 01:12:21,540 >> Ja põhjus saate vaata siin on see, et mida 1588 01:12:21,540 --> 01:12:25,030 juhtub, kui kuubi omastab kasu oma põhifunktsiooni 1589 01:12:25,030 --> 01:12:27,640 on see, et tegelikult on see kopeerimine, et üle. 1590 01:12:27,640 --> 01:12:31,470 Nii et kui ma tahtsin kuubik 2 ja tagastab 8, et 2 1591 01:12:31,470 --> 01:12:33,730 tegelikult sisestatud parameetrina ja see on 1592 01:12:33,730 --> 01:12:37,690 kopeerida üle nii, et teil on see olemasolevate kahes erinevas kohas mälus. 1593 01:12:37,690 --> 01:12:40,520 Ja sa pead olema väga ettevaatlik mäleta mille üks nendest 1594 01:12:40,520 --> 01:12:42,520 sa oled tegelikult manipuleerides. 1595 01:12:42,520 --> 01:12:47,170 Ja näide sellest, mis juhtus et oleks väga, väga halb 1596 01:12:47,170 --> 01:12:48,050 olemas siinsamas. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Nii siin, olen saanud, teoreetiliselt Programmi siinsamas, põhiülesanne 1599 01:12:58,650 --> 01:13:02,180 et ma tunnistamise int x võrdub 1. 1600 01:13:02,180 --> 01:13:04,505 Ma kuulutatakse teise int y võrdub 2. 1601 01:13:04,505 --> 01:13:06,380 Ja siis mul hakkab see läbi selle funktsiooni 1602 01:13:06,380 --> 01:13:09,647 nimetatakse swap, kus ma eeldan, et see vahetades kaks väärtust. 1603 01:13:09,647 --> 01:13:11,480 Ja siis ma lähen prindi neid välja, eks? 1604 01:13:11,480 --> 01:13:13,220 Seda ma tahan seda programmi teha. 1605 01:13:13,220 --> 01:13:15,180 >> Nii saab tule alla ja võtab pilk. 1606 01:13:15,180 --> 01:13:18,200 Nii et kui ma tegelikult kirjutada eri funktsioon, nagu näete, 1607 01:13:18,200 --> 01:13:19,750 meil põhiülesanne siin. 1608 01:13:19,750 --> 01:13:22,860 Ja siis on meil teine ​​funktsioon siin. 1609 01:13:22,860 --> 01:13:24,520 Void swap. 1610 01:13:24,520 --> 01:13:27,090 Kehtiv tähendab lihtsalt, et see on ei kavatse tagasi midagi. 1611 01:13:27,090 --> 01:13:28,930 Funktsiooni nimi on nimetatakse swap, ja see on 1612 01:13:28,930 --> 01:13:33,730 läheb tarbimist kahe muutuja, int a ja int b, oma [kuuldamatu] funktsiooni. 1613 01:13:33,730 --> 01:13:39,010 >> Nii et sisuliselt on siin, et me oleme associated x ja y sellesse funktsiooni. 1614 01:13:39,010 --> 01:13:40,760 Ja kui me luua see-- nii et me tahame 1615 01:13:40,760 --> 01:13:42,420 luua ajutine väärtus, eks? 1616 01:13:42,420 --> 01:13:43,930 Me läheme määrata, et a. 1617 01:13:43,930 --> 01:13:45,388 Ja siis läheb nüüd võrdne b. 1618 01:13:45,388 --> 01:13:47,660 Ja b läheb tagasi kus temp väärtus oli, 1619 01:13:47,660 --> 01:13:51,070 mis on, sest kui tahad vahetada asju, 1620 01:13:51,070 --> 01:13:52,320 sa ei saa lihtsalt meeldib vahetada neid. 1621 01:13:52,320 --> 01:13:54,360 >> Sa pead hoidma ühe välja siin nii, et see mäletab 1622 01:13:54,360 --> 01:13:56,485 mis see on, sest kui sa vahetada üks, siis unusta 1623 01:13:56,485 --> 01:13:58,200 mida see algne väärtus oli, eks? 1624 01:13:58,200 --> 01:14:00,990 Nii teoreetiliselt, see programm peaks töötama, eks? 1625 01:14:00,990 --> 01:14:03,630 Kui ma tahtsin vahetada kaks, nad peaksid vahetama. 1626 01:14:03,630 --> 01:14:05,490 Nii saab käivitada ja vaata, kas see toimib. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Nii nagu te poisid ei vaata, x kunagi oli 1 ja y kunagi oli 2. 1629 01:14:16,940 --> 01:14:21,475 Ja kui ma seda välja printida, x on endiselt 1 ja y on 2. 1630 01:14:21,475 --> 01:14:25,970 Hmm, see programm ei tundu olevat töötab nii, et ma tahan seda teha. 1631 01:14:25,970 --> 01:14:29,950 Kas keegi taha võtta tulistas aim, miks see juhtus? 1632 01:14:29,950 --> 01:14:34,430 See on seotud sellega, kuidas et erinevad asjad 1633 01:14:34,430 --> 01:14:38,172 ladustatakse eri kohtades mälu. 1634 01:14:38,172 --> 01:14:39,377 >> OKEI. 1635 01:14:39,377 --> 01:14:41,960 Nii kutid ei pea muretsema liiga palju seda kohe. 1636 01:14:41,960 --> 01:14:46,610 Aga tean, et kuubik kohaliku näitajateks olid a ja b, 1637 01:14:46,610 --> 01:14:49,230 sest siin meie ülesanne, oleme kuulutanud ja b 1638 01:14:49,230 --> 01:14:53,570 kui muutujaid, mis eksisteerivad jooksul kuubik, et funktsioon. 1639 01:14:53,570 --> 01:14:59,490 Aga nagu näete, parameetrid, see võtab ka ladustati siin. 1640 01:14:59,490 --> 01:15:01,370 Aga me ei olnud tegelikult tagasi midagi. 1641 01:15:01,370 --> 01:15:03,120 Me ei tegelikult muutumas x ja y. 1642 01:15:03,120 --> 01:15:04,440 Me lihtsalt muutuvas a ja b. 1643 01:15:04,440 --> 01:15:08,340 >> Meil oli kopeeritud x ja y sisse midagi, mida nimetatakse a ja b. 1644 01:15:08,340 --> 01:15:11,092 Aga me tegelikult kunagi manipuleeritud x ja y ise. 1645 01:15:11,092 --> 01:15:12,800 Kas te näe kuidas see toimub? 1646 01:15:12,800 --> 01:15:16,140 Kas me oleme lihtsalt kopeerida seda üle, kuid me ei ole tegelikult hoida 1647 01:15:16,140 --> 01:15:18,030 lugu sellest, kus nad olid mälu. 1648 01:15:18,030 --> 01:15:20,127 >> Ja nii nüüd arvuti otsib, oh, ma olen 1649 01:15:20,127 --> 01:15:21,960 käivitada see asi läbi see armas funktsiooni. 1650 01:15:21,960 --> 01:15:23,690 Aga x ja y on endiselt x ja y. 1651 01:15:23,690 --> 01:15:26,240 Midagi juhtus neid asjaolu tõttu 1652 01:15:26,240 --> 01:15:28,340 et need parameetrid ja kohalikud muutujad 1653 01:15:28,340 --> 01:15:30,150 hoitakse teist paigutama mälu. 1654 01:15:30,150 --> 01:15:32,030 Ja see on kõrgema taseme mõiste, et me tulen 1655 01:15:32,030 --> 01:15:34,300 ilmuvad hiljem muidugi. 1656 01:15:34,300 --> 01:15:36,950 Aga tean, et see on probleem, mis võib juhtuda 1657 01:15:36,950 --> 01:15:41,400 ja et me nuputada, kuidas selle kohta, kuidas käsitleda seda hiljem muidugi. 1658 01:15:41,400 --> 01:15:41,900 OKEI. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 Hästi. 1661 01:15:48,250 --> 01:15:51,780 Nii viimase kontseptsiooni me oleme tõesti, et katta 1662 01:15:51,780 --> 01:15:53,880 mis saab olema kasulik jaoks pset sel nädalal 1663 01:15:53,880 --> 01:15:56,060 on nn käsurea argumente. 1664 01:15:56,060 --> 01:16:00,820 Nii Rob loengul läks läbi Selline lühidalt, kuidas need töötavad. 1665 01:16:00,820 --> 01:16:02,770 Sisuliselt teada, et kui olete kirjalikult 1666 01:16:02,770 --> 01:16:06,280 nagu põhifunktsiooni, kui me kirjutas funktsioone enne minevikus, 1667 01:16:06,280 --> 01:16:07,804 meil oli int main void. 1668 01:16:07,804 --> 01:16:10,470 Ja põhjus oli meil void seal oli, sest meie programmid ei 1669 01:16:10,470 --> 01:16:12,520 vaja sisendväärtused joosta, eks? 1670 01:16:12,520 --> 01:16:16,020 Kui ma jooksin Mario, ma ei pea tegelikult lihtsalt kirjuta midagi 1671 01:16:16,020 --> 01:16:16,970 kui ma jooksin Mario. 1672 01:16:16,970 --> 01:16:20,170 Ma võiks kiire kasutajal hiljem. 1673 01:16:20,170 --> 01:16:22,450 Aga see ei ole alati nii. 1674 01:16:22,450 --> 01:16:24,980 >> Näiteks selles nädala probleem seab, 1675 01:16:24,980 --> 01:16:28,365 sa lähed küsitakse, et Lisaks töötab oma programmi, 1676 01:16:28,365 --> 01:16:30,990 sa lähed tahan sisend Teatud asjad otse kui 1677 01:16:30,990 --> 01:16:32,050 käivitada oma programmi. 1678 01:16:32,050 --> 01:16:34,720 Nii, kuidas me seda nimetatakse käsurea argument, mis 1679 01:16:34,720 --> 01:16:37,280 on nagu argument saate sisestada otse 1680 01:16:37,280 --> 01:16:39,260 kui sa üritad käivitada oma programmi. 1681 01:16:39,260 --> 01:16:44,680 >> Nii et tähistada seda, see on üsna keeruline välimusega, 1682 01:16:44,680 --> 01:16:47,320 aga see on tõesti ei ole, et raske. Nii int main-- 1683 01:16:47,320 --> 01:16:48,910 see on lihtsalt oma põhifunktsiooni. 1684 01:16:48,910 --> 01:16:52,110 Into Argc komaga string argv sulgudes. 1685 01:16:52,110 --> 01:16:56,040 Nii et kõik, mis ütleb, et see int argc-- kõik, mis ütleb, 1686 01:16:56,040 --> 01:17:00,560 on see, et need on mitmeid argumendid arvuti oodata. 1687 01:17:00,560 --> 01:17:03,130 >> Nii et üks asi, mis on tõesti oluline jälgida 1688 01:17:03,130 --> 01:17:07,080 on füüsiline oma programmi nime loeb üks nendest argumentidest. 1689 01:17:07,080 --> 01:17:11,080 Nii et kui ma tahtnud minu programmi joosta pluss üks käsurea 1690 01:17:11,080 --> 01:17:13,310 argument, ma olen tegelikult läheb on kaks. 1691 01:17:13,310 --> 01:17:15,080 Argc on tegelikult saab olema kaks. 1692 01:17:15,080 --> 01:17:18,010 Ja siis string argv bracket-- kõik, mis teeb, 1693 01:17:18,010 --> 01:17:20,410 see annab mulle massiivi stringe, mis on 1694 01:17:20,410 --> 01:17:24,870 läheb lihtsalt kuvada ja salvestada mida kõik need käsurea argumendid. 1695 01:17:24,870 --> 01:17:34,090 >> Nii näiteks, kui ma tahtnud seda Programm, ./copy inFile outfile, eks? 1696 01:17:34,090 --> 01:17:37,330 See on lihtsalt tüüpiline Linux käsk. 1697 01:17:37,330 --> 01:17:38,830 Mis tegelikult on Argc? 1698 01:17:38,830 --> 01:17:41,320 Mitu käsurea argumente on seal tegelikult on? 1699 01:17:41,320 --> 01:17:45,130 Kõik see teeb on teha koopia infile nime ühe faili 1700 01:17:45,130 --> 01:17:47,070 ja see koopiad see teise faili, eks? 1701 01:17:47,070 --> 01:17:48,700 See on kõik see teeb. 1702 01:17:48,700 --> 01:17:53,080 Nagu näete, ma teen seda ühel real ilma tegelikult vajavad programmi. 1703 01:17:53,080 --> 01:17:55,380 >> Mis on meie Argc sel juhul? 1704 01:17:55,380 --> 01:17:58,968 Mitu argumendid meil on? 1705 01:17:58,968 --> 01:17:59,634 Sihtrühm: Kolm? 1706 01:17:59,634 --> 01:18:01,200 ANDI PENG: Meil ​​on kolm, täpselt. 1707 01:18:01,200 --> 01:18:05,030 Nii et see on väga intuitiivne lihtsalt arvan, et see on lihtsalt 1708 01:18:05,030 --> 01:18:06,290 infile ja outfile. 1709 01:18:06,290 --> 01:18:10,190 Aga tean, et füüsilise nimi Programm näed moodustab ühe. 1710 01:18:10,190 --> 01:18:13,220 Nii et sel juhul Argc on tegelikult kolm. 1711 01:18:13,220 --> 01:18:15,860 Kuidas, mida on argv 0? 1712 01:18:15,860 --> 01:18:18,180 Pidage meeles, et kõik käsureaargumentidena 1713 01:18:18,180 --> 01:18:20,500 hoiti massiivi stringe. 1714 01:18:20,500 --> 01:18:24,140 Nii et kui ma püüan sellele juurde, mida oleks argv sulg 0 anna mulle? 1715 01:18:24,140 --> 01:18:25,364 >> Sihtrühm: [kuuldamatu]. 1716 01:18:25,364 --> 01:18:26,155 ANDI PENG: Täpselt. 1717 01:18:26,155 --> 01:18:28,550 See annaks mulle dot kaldkriips koopia, sest see on 1718 01:18:28,550 --> 01:18:31,070 0. element, Esimene osa minu rida. 1719 01:18:31,070 --> 01:18:33,236 Aga argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> Sihtrühm: inFile. 1721 01:18:33,945 --> 01:18:35,070 ANDI PENG: inFile, täpselt. 1722 01:18:35,070 --> 01:18:36,272 Aga argv 2? 1723 01:18:36,272 --> 01:18:37,022 Sihtrühm: outFile. 1724 01:18:37,022 --> 01:18:38,190 ANDI PENG: outFile. 1725 01:18:38,190 --> 01:18:39,290 See on natuke keeruline nüüd. 1726 01:18:39,290 --> 01:18:42,630 Mis te poisid arvavad argv 3 läheb andis mulle 1727 01:18:42,630 --> 01:18:45,522 kui ma proovisin printida, et välja? 1728 01:18:45,522 --> 01:18:48,260 >> Sihtrühm: [kuuldamatu]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI PENG: Kas teil on käsi püsti? 1730 01:18:50,164 --> 01:18:50,663 Jah. 1731 01:18:50,663 --> 01:18:51,550 >> Sihtrühm: alternatiiv. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI PENG: Täpselt. 1733 01:18:52,341 --> 01:18:55,440 Seega pidage meeles loengus, et me on lõpus rassi midagi 1734 01:18:55,440 --> 01:18:56,640 nimetatakse null terminaator? 1735 01:18:56,640 --> 01:18:58,890 Me võtame arvesse seda ka edasi klassis. 1736 01:18:58,890 --> 01:19:02,472 Aga tean, et märke, kuidas arvuti 1737 01:19:02,472 --> 01:19:04,430 teab, et see on lõpp massiiv on, et see 1738 01:19:04,430 --> 01:19:07,310 paneb midagi, mida nimetatakse null terminaator või kriips null. 1739 01:19:07,310 --> 01:19:12,047 >> Nii et kui sa püüad pääseda argv 3, sa lähed tabanud see kriips 0. 1740 01:19:12,047 --> 01:19:13,630 See on isegi rohkem konksuga küsimus. 1741 01:19:13,630 --> 01:19:17,020 Aga argv 4? 1742 01:19:17,020 --> 01:19:20,920 Nii et see on minevikus null terminaator Varem piire meie massiivi. 1743 01:19:20,920 --> 01:19:24,380 Mis sa arvad läheb juhtuda, kui me püüame seda teha? 1744 01:19:24,380 --> 01:19:25,842 >> Sihtrühm: [kuuldamatu]? 1745 01:19:25,842 --> 01:19:26,550 ANDI PENG: Vabandust? 1746 01:19:26,550 --> 01:19:28,025 Ütle, et natuke kõvemini? 1747 01:19:28,025 --> 01:19:29,086 >> Sihtrühm: [kuuldamatu]. 1748 01:19:29,086 --> 01:19:29,710 ANDI PENG: Jah. 1749 01:19:29,710 --> 01:19:32,420 See on nimi ala saate tõenäoliselt saada. 1750 01:19:32,420 --> 01:19:36,610 Aga tean, et argv 4-- mis võimaldab teil juurdepääsu 1751 01:19:36,610 --> 01:19:38,610 kohti arvuti mälu, et sa tõesti 1752 01:19:38,610 --> 01:19:41,650 ei tohiks olla liigutav, sest kohe tead, mis argv on. 1753 01:19:41,650 --> 01:19:46,220 Sa tead, et see on massiivi suurus 3 mis on dot koopia, infile ja outfile. 1754 01:19:46,220 --> 01:19:50,200 >> Kui te proovida minna nii kaugele, et et sa oled mööda null terminaator 1755 01:19:50,200 --> 01:19:53,050 arvuti on ilmselt salvestatud midagi argv 4. 1756 01:19:53,050 --> 01:19:55,790 Ja sa tõesti ei tohiks olla võimaldada juurdepääsu argv 4, 1757 01:19:55,790 --> 01:19:58,130 sest sa oled faili kapis ja sa oled ainult 1758 01:19:58,130 --> 01:19:59,790 lubatud juurdepääs nendele kolmele riiulid. 1759 01:19:59,790 --> 01:20:02,870 Aga kui te üritate jõuda palju kaugemale riiulile, kus teil on lubatud, 1760 01:20:02,870 --> 01:20:04,930 sa lähed alustada jama muid asju arvuti mällu. 1761 01:20:04,930 --> 01:20:06,690 See saab olema tõesti halb. 1762 01:20:06,690 --> 01:20:07,440 Nii lihtsalt tean seda. 1763 01:20:07,440 --> 01:20:10,370 Ole väga ettevaatlik, et sa ei ole lihtsalt juhuslikult alustada 1764 01:20:10,370 --> 01:20:14,772 juurdepääsu elemendid massiivi et ei olnud, mida sa tahtsid luua. 1765 01:20:14,772 --> 01:20:17,114 Yep. 1766 01:20:17,114 --> 01:20:18,430 >> OKEI. 1767 01:20:18,430 --> 01:20:26,360 Nii et me teeme teise terminal näiteks siin. 1768 01:20:26,360 --> 01:20:27,300 OKEI. 1769 01:20:27,300 --> 01:20:29,900 Nii Rob kiiresti loengu teisel päeval läks 1770 01:20:29,900 --> 01:20:35,040 läbi selle näiteks siis, kui ta oli int main int Argc string argv 1771 01:20:35,040 --> 01:20:39,090 sulgudes, mis ütleb mulle, et ma olen läheb on käsurea argumente. 1772 01:20:39,090 --> 01:20:41,860 >> Ta on, kui Argc võrdub võrdub 2-- mäletan, 1773 01:20:41,860 --> 01:20:45,070 võrdub võrdsete võrdlemine. 1774 01:20:45,070 --> 01:20:47,980 Kui see võrdub 2, siis ma olen trükkimineku hello, 1775 01:20:47,980 --> 01:20:51,190 olenemata esimene massiivi element on. 1776 01:20:51,190 --> 01:20:54,100 Else print, tere. 1777 01:20:54,100 --> 01:20:56,300 Mis see läheb juhtuda sisuliselt? 1778 01:20:56,300 --> 01:21:00,570 Kas keegi lihtsalt seletada Inglise, mida see programm teeb? 1779 01:21:00,570 --> 01:21:01,272 Jah. 1780 01:21:01,272 --> 01:21:08,160 >> Sihtrühm: Kui keegi kirjutada käsk ja ütles oma ees- ja perekonnanimi, 1781 01:21:08,160 --> 01:21:12,096 see ei ole lihtsalt printida Esimene ja öelda, hello, 1782 01:21:12,096 --> 01:21:14,090 Mis iganes on Sinu esimene nimi on. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI PENG: OK, lähme käivitada. 1784 01:21:15,410 --> 01:21:22,470 Nii näiteks, kui ma oleksin teha Selle faili teha hello mina-- hello 1785 01:21:22,470 --> 01:21:24,500 mina-- mida sa tahad, et sisend? 1786 01:21:24,500 --> 01:21:25,900 >> Sihtrühm: Ees- ja perekonnanimi. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI PENG: Ees- ja perekonnanimi? 1788 01:21:27,280 --> 01:21:28,180 Spaces? 1789 01:21:28,180 --> 01:21:29,690 >> Sihtrühm: Jah. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI PENG: Kas keegi ütleks mulle kohe, mis on Argc? 1791 01:21:33,490 --> 01:21:35,630 Just seal? 1792 01:21:35,630 --> 01:21:36,290 Oih, vabandust. 1793 01:21:36,290 --> 01:21:37,920 Lubage mul tagasi minna. 1794 01:21:37,920 --> 01:21:40,740 Mitu käsurea argumente are-- kutid tõesti ei näe. 1795 01:21:40,740 --> 01:21:43,760 Aga ma püüan suumida. 1796 01:21:43,760 --> 01:21:44,290 Ma üritan. 1797 01:21:44,290 --> 01:21:45,414 Jah, seal on kolm, eks? 1798 01:21:45,414 --> 01:21:48,750 See dot kaldkriipsuga hello, see on Andi, ja see on Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Mida te poisid arvate, et see Programm läheb välja trükkida? 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 Oi vabandust. 1803 01:21:57,120 --> 01:21:57,810 Vale nime. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 See prindib, tere. 1806 01:22:06,130 --> 01:22:09,603 Kas keegi tahtma selgitada miks see juhtub? 1807 01:22:09,603 --> 01:22:10,103 Jah? 1808 01:22:10,103 --> 01:22:11,019 >> Sihtrühm: [kuuldamatu]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI PENG: Täpselt. 1811 01:22:15,230 --> 01:22:19,940 Nii et siin on tingimuslik tähendab, et kui Argc võrdub võrdub 2. 1812 01:22:19,940 --> 01:22:23,650 Nii ainult juhul, et seal on kaks käsurea argumente. 1813 01:22:23,650 --> 01:22:25,850 Siis ma lähen printida, tere, mis see on. 1814 01:22:25,850 --> 01:22:28,210 Aga muidu, ma lähen prindi lihtsalt, tere. 1815 01:22:28,210 --> 01:22:30,040 Nii ei keegi taha mulle näiteks 1816 01:22:30,040 --> 01:22:35,050 kuidas ma saaks tegelikult saada see printimiseks väärtus argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Mida ma pean sisend siin? 1818 01:22:38,600 --> 01:22:39,840 Ainult üks asi, eks? 1819 01:22:39,840 --> 01:22:42,900 Kuna dot tere juba loeb esimene argument. 1820 01:22:42,900 --> 01:22:43,930 Mul on ainult üks. 1821 01:22:43,930 --> 01:22:46,470 Nii dot hello kui ma lihtsalt ei Andi. 1822 01:22:46,470 --> 01:22:47,270 Tere, Andi. 1823 01:22:47,270 --> 01:22:49,186 Kas kõik mõistavad miks see juhtub? 1824 01:22:49,186 --> 01:22:49,602 Jah. 1825 01:22:49,602 --> 01:22:52,500 >> Sihtrühm: Nii vaheline ruum käsk LINE on see [kuuldamatu]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: Ei 1828 01:22:56,830 --> 01:23:03,810 Nii et ruumi käsurea argument, x, rääkige oma arvuti 1829 01:23:03,810 --> 01:23:06,820 et see on algus uus string. 1830 01:23:06,820 --> 01:23:11,130 Nii string argv siin-- see kauplustes kõik oma käsud line argumendid 1831 01:23:11,130 --> 01:23:13,110 ridades. 1832 01:23:13,110 --> 01:23:17,420 Ja nii ruumi käsurea argument-- kõik, mis teeb, on sulle öelda, 1833 01:23:17,420 --> 01:23:21,030 see on lõpus üks string ja see on aeg edasi liikuda teisele. 1834 01:23:21,030 --> 01:23:21,990 >> Jah. 1835 01:23:21,990 --> 01:23:23,530 See on päris oluline Sinu pset, sest sa oled 1836 01:23:23,530 --> 01:23:24,613 läheb testime neid. 1837 01:23:24,613 --> 01:23:29,300 Nii kas keegi on Küsimuste selle? 1838 01:23:29,300 --> 01:23:30,016 OK, lahe. 1839 01:23:30,016 --> 01:23:30,515 Jah? 1840 01:23:30,515 --> 01:23:35,008 >> Sihtrühm: Nii põhjus soovid pane täisarv argument calc asemel 1841 01:23:35,008 --> 01:23:40,059 on [kuuldamatu] oleks, kui soovite kirjuta täiendavat teavet 1842 01:23:40,059 --> 01:23:41,030 [Kuuldamatu]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI PENG: Jah, täpselt. 1844 01:23:42,090 --> 01:23:45,370 Mõned programmid teil vaja sisestada käsurea argument 1845 01:23:45,370 --> 01:23:47,732 et see möödub ja kasutab seda. 1846 01:23:47,732 --> 01:23:49,035 Jah. 1847 01:23:49,035 --> 01:23:50,410 Sihtrühm: Mis siis, kui [kuuldamatu]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI PENG: Noh, mida ma pean muuta, siis minu programm? 1850 01:23:58,870 --> 01:23:59,870 >> Sihtrühm: Just 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI PENG: Miks on see, et juhtub, sa arvad? 1853 01:24:15,020 --> 01:24:18,940 >> Sihtrühm: Kuna [kuuldamatu]. 1854 01:24:18,940 --> 01:24:22,370 >> Sihtrühm: Sa pead muuda see 2 [kuuldamatu]. 1855 01:24:22,370 --> 01:24:23,484 >> Sihtrühm: 1 ja 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI PENG: 1 ja 2, täpselt. 1857 01:24:24,650 --> 01:24:29,150 Nii et sel juhul sa ilmselt tahad olla kaks printf statements-- 1858 01:24:29,150 --> 01:24:32,601 mis trükitakse argv 1 ja üks, mis trükitud argv 2. 1859 01:24:32,601 --> 01:24:33,100 Siin. 1860 01:24:33,100 --> 01:24:34,516 Ma ei saa tegelikult teha, et reaalne kiire. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Palun. 1863 01:24:47,320 --> 01:24:48,287 Oh. 1864 01:24:48,287 --> 01:24:49,370 Mitte päris, mida sa tahtsid. 1865 01:24:49,370 --> 01:24:52,590 Aga kui te poisid jändama vormingu, siis tulevad välja. 1866 01:24:52,590 --> 01:24:54,981 Jah. 1867 01:24:54,981 --> 01:24:55,480 Cool. 1868 01:24:55,480 --> 01:24:57,670 Ma tean, et me oleme natuke vähe aega. 1869 01:24:57,670 --> 01:25:02,469 Aga ma olen lihtsalt kavatse kiiresti kulutada paari minuti läbimas helpful-- 1870 01:25:02,469 --> 01:25:03,760 Sihtrühm: Sul on kaks minutit. 1871 01:25:03,760 --> 01:25:05,010 ANDI PENG: Mul on kaks minutit? 1872 01:25:05,010 --> 01:25:06,340 Aitäh. 1873 01:25:06,340 --> 01:25:09,180 Natuke kiiret pset näpunäiteid. 1874 01:25:09,180 --> 01:25:13,100 Nii see pset, ma väga soovitada, nagu ma ütlesin, igaüks lugeda spec. 1875 01:25:13,100 --> 01:25:16,804 Sul kirjalikult kolme programs-- üks nimetatakse initials.c, üks nn caesar.c, 1876 01:25:16,804 --> 01:25:17,720 üks nn vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Mõned olulised näpunäited, et kutid tõesti 1879 01:25:22,340 --> 01:25:25,040 hoida mind-- nii on see funktsioon 1880 01:25:25,040 --> 01:25:27,770 nimetatakse atoi-- nagu mulle meeldib öelda, trois. 1881 01:25:27,770 --> 01:25:29,520 Selge, kas see on tegelikult, kuidas sa seda ütled. 1882 01:25:29,520 --> 01:25:32,510 Aga kõik see teeb, see on sisestanud. 1883 01:25:32,510 --> 01:25:34,320 See teisendab stringi int. 1884 01:25:34,320 --> 01:25:37,490 Nii kujutab ASCII i täisarv. 1885 01:25:37,490 --> 01:25:40,310 See on lihtsalt konverteeriva ASCII väärtused täisarve. 1886 01:25:40,310 --> 01:25:44,510 Seega pidage meeles argv, massiiv, et kauplustes kõik oma käske ritta arguments-- 1887 01:25:44,510 --> 01:25:46,300 ta salvestab neid kõiki stringe. 1888 01:25:46,300 --> 01:25:50,010 Ja kui sa tahad, et oleks võimalik on üks neist saanud täisarv, 1889 01:25:50,010 --> 01:25:52,750 sa lähed on kasutada seda väärtust siin. 1890 01:25:52,750 --> 01:25:56,690 >> Moodul, nagu me käsitlesime varem klassis täna 1891 01:25:56,690 --> 01:25:59,550 võimaldab teil olema Ülejäänud iganes on. 1892 01:25:59,550 --> 01:26:03,620 Nii et kui meil on tõesti suur hulk Caesar, 1893 01:26:03,620 --> 01:26:06,117 Mis siis, kui meil on lõpuks string Vigenere? 1894 01:26:06,117 --> 01:26:08,450 Kuidas sul läheb, et oleks võimalik saada, et ümbritsev? 1895 01:26:08,450 --> 01:26:11,330 Kui ma tabanud z ja ma tahan see tagasi minna, 1896 01:26:11,330 --> 01:26:13,650 kuidas ma kavatsen saada et ümbritsev? 1897 01:26:13,650 --> 01:26:15,960 Tõenäoliselt soovid kasutada moodul seal kuskil. 1898 01:26:15,960 --> 01:26:19,190 >> Teiseks, sirvida ringi teegi. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 See on uus raamatukogu on meil. 1900 01:26:20,680 --> 01:26:25,270 Leiad palju tõesti kasulik functions-- isupper, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, tolower, isalpha, jne. 1902 01:26:27,681 --> 01:26:30,680 Kõik funktsioonid on väga kasulik kui sa üritad aru saada, 1903 01:26:30,680 --> 01:26:33,780 on see märk väiketähti kirja? 1904 01:26:33,780 --> 01:26:35,730 Kuidas muuta see stringi suur-? 1905 01:26:35,730 --> 01:26:38,146 Kõik need asjad on väga, väga kasulik oma pset. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 OKEI. 1908 01:26:45,500 --> 01:26:49,644 >> Lahtiolekuajad täna on 8.00 11:00 Teal klassiruumis homme 1909 01:26:49,644 --> 01:26:51,310 samuti kolmapäeval ja neljapäeval õhtul. 1910 01:26:51,310 --> 01:26:53,280 Lahtiolekuajad on commons. 1911 01:26:53,280 --> 01:26:56,180 Väga soovitan teil poisid kõik alustada kohe, 1912 01:26:56,180 --> 01:27:00,490 sest sa ei taha olla, et poiss, kes neljapäeva õhtul on probleeme 1913 01:27:00,490 --> 01:27:03,870 esitades oma pset ja nagu, ma ei tea, mida teha. 1914 01:27:03,870 --> 01:27:05,870 Hakkasin, ma lõpetasin ma esitanud. 1915 01:27:05,870 --> 01:27:09,737 Proovige anda endale ruumi, sest koodi probleeme esineb alati. 1916 01:27:09,737 --> 01:27:11,570 Sa tahad teha kindel, et sa annad ise 1917 01:27:11,570 --> 01:27:14,810 palju aega, et oleks võimalik lõpetada psets. 1918 01:27:14,810 --> 01:27:15,310 Cool. 1919 01:27:15,310 --> 01:27:16,720 Ma logelema siin. 1920 01:27:16,720 --> 01:27:18,226 >> Sihtrühm: Kas see online juba? 1921 01:27:18,226 --> 01:27:20,850 ANDI PENG: Ma ei tea, kas see on Internetis juba olemas, kuid see saab olema. 1922 01:27:20,850 --> 01:27:23,500 Ma logelema siin, kui keegi on küsimusi juba. 1923 01:27:23,500 --> 01:27:25,390 Tänan, et tulid. 1924 01:27:25,390 --> 01:27:27,105