1 00:00:07,420 --> 00:00:08,160 [Powered by Google Translate] David J. Malan: Olgu. 2 00:00:08,160 --> 00:00:11,170 See on CS50, ja see on nädala lõpuks kaks. 3 00:00:11,170 --> 00:00:14,650 Kui arvate, et näljane Umbes samal ajal homme, tean, et me ei kavatse 4 00:00:14,650 --> 00:00:18,920 kutsuda kokku väike rühm homme, neljapäeval, 1:15. 5 00:00:18,920 --> 00:00:21,460 Seal on see link siin, kui soovite RSVP. 6 00:00:21,460 --> 00:00:25,270 Kosmos on piiratud, nii et palun andeks, kui vorm on täis selleks ajaks, kui 7 00:00:25,270 --> 00:00:26,680 täitke see ära. 8 00:00:26,680 --> 00:00:29,400 Teine link küll, et võiks huvi on see. 9 00:00:29,400 --> 00:00:32,409 >> Nii et peaaegu kuu aega, muidugi saab olema kättesaadav 10 00:00:32,409 --> 00:00:36,090 kõik laiemalt kaudu EDX, mille kaudu inimesed Internetis saab 11 00:00:36,090 --> 00:00:39,580 võimalik jälgida mööda, tegeleda muidugi üsna aktiivselt, tegelikult. 12 00:00:39,580 --> 00:00:43,070 Nad kasutavad CS50 Appliance ja CS50 arutada ja enamik 13 00:00:43,070 --> 00:00:45,840 erinevate tarkvara vahendeid, mis meil juba on kasutanud sel semestril. 14 00:00:45,840 --> 00:00:49,030 Ja üks algatused tahaksime võtta kui katset sel aastal 15 00:00:49,030 --> 00:00:53,120 on näha, kui palju sisu saame tõlkida teiste rääkinud ja 16 00:00:53,120 --> 00:00:54,110 kirjakeelt. 17 00:00:54,110 --> 00:00:58,000 Nii et kui teil olla huvi osaleda selles projektis, mille 18 00:00:58,000 --> 00:01:02,090 anname inglise ärakirju ja subtiitrid kursuse 19 00:01:02,090 --> 00:01:05,190 loengud ja lühikesed püksid ja seminarid ja lõigud jms - 20 00:01:05,190 --> 00:01:08,700 kui te räägite soravalt või kirjutada ladusalt mõnda muud keelt, oleksime 21 00:01:08,700 --> 00:01:12,240 armastan kaasata teid selle projekti, mille alusel te võtate ühe või mitme 22 00:01:12,240 --> 00:01:15,340 videod, tõlkides need keel mida sa tead väga hästi. 23 00:01:15,340 --> 00:01:19,050 Et anda teile tunne liides, seal on see veebipõhine kasutajaliides 24 00:01:19,050 --> 00:01:22,330 et me kasutame, mis loob sisuliselt UI niimoodi. 25 00:01:22,330 --> 00:01:24,520 See oli mulle õpetada mõned Halloween tagasi. 26 00:01:24,520 --> 00:01:27,710 Ja paremal pool on must kõrval need ajatemplid, 27 00:01:27,710 --> 00:01:31,300 näete erinevaid asju, mis tuli mu suust, et päev. 28 00:01:31,300 --> 00:01:34,660 Ja siis selle all, saate tõlkida mõnda muud keelt. 29 00:01:34,660 --> 00:01:37,840 Täpselt, mida kaardistamine on vahel, antud juhul inglise 30 00:01:37,840 --> 00:01:38,660 ja, ütleme, Hispaania. 31 00:01:38,660 --> 00:01:40,480 Nii et see on tegelikult väga kasutajasõbralik vahend. 32 00:01:40,480 --> 00:01:43,690 Võite tagasikerimiseks liigutage väga kergesti klaviatuuri otseteed. 33 00:01:43,690 --> 00:01:46,710 Nii et kui soovid osaleda selles eksperimendis ja olla oma sõnu 34 00:01:46,710 --> 00:01:50,730 näha ja lugeda potentsiaalselt tuhanded inimesed seal, siis ei tunne 35 00:01:50,730 --> 00:01:51,960 tasuta osaleda. 36 00:01:51,960 --> 00:01:56,940 >> Nüüd üks sõna kassipoeg alates esmaspäevast, muidu oleme saatnud liiga 37 00:01:56,940 --> 00:01:58,120 hirmutav sõnum. 38 00:01:58,120 --> 00:02:02,130 Kas mõistad, et kui tööaega soovitan ja lõigud näitavad, 39 00:02:02,130 --> 00:02:05,110 Projekteerimise käigus on väga palju on õpilasi koostööd ja 40 00:02:05,110 --> 00:02:09,250 räägi läbi töötada probleem komplekti ja probleemid koos. 41 00:02:09,250 --> 00:02:13,630 Ja tõesti liin lihtsalt taandub taas tööd sa lõpuks 42 00:02:13,630 --> 00:02:16,420 peaks esitama peaks olema oma. 43 00:02:16,420 --> 00:02:19,080 Ja nii see on, ausalt öeldes - ka tööaega, see on täiesti normaalne - 44 00:02:19,080 --> 00:02:21,560 see on täiesti ootuspärane, isegi - tuleb jututoas mõned 45 00:02:21,560 --> 00:02:22,370 sõbrad sinu kõrval. 46 00:02:22,370 --> 00:02:25,240 Kui ta üritab mõne teema, ja sa oled nagu, oh, hästi 47 00:02:25,240 --> 00:02:27,750 ma annan sulle pilguheit mõned rida koodi, mille ma kirjutasin. 48 00:02:27,750 --> 00:02:28,290 Ongi hea. 49 00:02:28,290 --> 00:02:28,700 Seda juhtub. 50 00:02:28,700 --> 00:02:31,580 Ja see on väga soodusta, ma arvan, kus õppimise protsessis. 51 00:02:31,580 --> 00:02:35,270 Kui joon, jälle saab ületada on kui pea on omamoodi kallutada üle 52 00:02:35,270 --> 00:02:38,800 siin on liiga palju sekundit või minutit, et tegelikult on lihtsalt 53 00:02:38,800 --> 00:02:41,250 olnud torustikupuhastusvahendid võimalus oma sõber. 54 00:02:41,250 --> 00:02:43,870 Ja kindlasti, kui asjad vahetatud e-posti teel ja Dropbox ja 55 00:02:43,870 --> 00:02:45,350 nagu ka seal on joon. 56 00:02:45,350 --> 00:02:48,940 Nii kõigi vahenditega, mugav ja tunnevad julgustas vestelda sõpradega 57 00:02:48,940 --> 00:02:51,270 ja klassikaaslastega umbes psets ja rohkem. 58 00:02:51,270 --> 00:02:54,680 Ja just aru, et mida sa lõpuks esitama peaks tõesti olema 59 00:02:54,680 --> 00:02:57,780 toode oma loomingu ja mitte keegi teine. 60 00:02:57,780 --> 00:03:01,010 >> Nii et samas vaimus ja kaisu olendid, siis võib 61 00:03:01,010 --> 00:03:02,820 tead see kutt siin. 62 00:03:02,820 --> 00:03:06,180 Nii et see on hirmsalt cheesy filmi aastat tagasi. 63 00:03:06,180 --> 00:03:08,680 Igaüks siin näinud Spaceballs? 64 00:03:08,680 --> 00:03:09,120 Hea küll. 65 00:03:09,120 --> 00:03:10,220 Nii hea number siin. 66 00:03:10,220 --> 00:03:13,840 Nii et see on meie imeliselt akadeemilise viis kehtestada täna lõpuks 67 00:03:13,840 --> 00:03:15,130 mõistet krüptograafia. 68 00:03:15,130 --> 00:03:19,010 Ja nii üks domeen eriprobleemid pset 2, mis tulevad 69 00:03:19,010 --> 00:03:22,770 välja homme hilisõhtul, on sukelduda maailma krüptograafia, mis 70 00:03:22,770 --> 00:03:26,380 on kunst krüptimine või skrambleerimise andmed. 71 00:03:26,380 --> 00:03:30,160 Ja see lõppkokkuvõttes on seotud maailma julgeolekut. 72 00:03:30,160 --> 00:03:34,440 >> Nüüd turvalisust kõige juures on kujul üsna Ilmalik mehhanismid. 73 00:03:34,440 --> 00:03:36,920 Kõigil meil on kasutajanimed ja paroolid. 74 00:03:36,920 --> 00:03:41,350 Ja meil kõigil on väga halb kasutajanimed ja paroolid, kõige tõenäolisem. 75 00:03:41,350 --> 00:03:45,250 Kui teie parool on sama paljudel veebisaitidel, et ilmselt ei ole 76 00:03:45,250 --> 00:03:47,920 parim idee, kui me arutame poole semestri lõpus. 77 00:03:47,920 --> 00:03:51,680 Kui teie parool on kirjutatud Kleepmärkme - no nali - oma 78 00:03:51,680 --> 00:03:55,130 monitori, et liiga ei ole tingimata parim disain, kuid üsna levinud 79 00:03:55,130 --> 00:03:56,140 nähtus. 80 00:03:56,140 --> 00:04:00,420 Ja kui te ei kasuta krüptograafia krüptimiseks paroolid, nad on 81 00:04:00,420 --> 00:04:01,610 eriti haavatavad. 82 00:04:01,610 --> 00:04:04,670 Nii et kui sa arvad, et oled super tark omades varjatud Word 83 00:04:04,670 --> 00:04:07,740 dokumenteerima kuskil kõvakettal, mis on kõik oma paroolid kuid 84 00:04:07,740 --> 00:04:10,550 see kausta, et keegi läheb vaatama, et liiga ei ole väga 85 00:04:10,550 --> 00:04:11,540 turvaline mehhanism. 86 00:04:11,540 --> 00:04:15,100 Ja mis pset 2 tutvustab on see kunst krüptograafia ja 87 00:04:15,100 --> 00:04:18,300 skrambleerimise teavet nii, et asjad paroolid on 88 00:04:18,300 --> 00:04:19,500 kõik turvalisemaks. 89 00:04:19,500 --> 00:04:24,500 Et motiveerida seda väga reaalse probleemi, millel on väga mitte-reaalse 90 00:04:24,500 --> 00:04:28,740 stsenaarium, lubage mul tutvustada teile üks meie lemmik klippe siit sellest 91 00:04:28,740 --> 00:04:29,895 filmi, Spaceballs. 92 00:04:29,895 --> 00:04:30,565 >> [VIDEO PLAYBACK] 93 00:04:30,565 --> 00:04:32,995 -Kiiver, sa paharet, mis toimub? 94 00:04:32,995 --> 00:04:34,730 Mida sa teed minu tütar? 95 00:04:34,730 --> 00:04:38,960 -Lubage mul tutvustada hiilgav noor plastist kirurg dr Philip 96 00:04:38,960 --> 00:04:43,290 Schlotkin, suurim nina töökoha mees kogu 97 00:04:43,290 --> 00:04:45,526 universum ja Beverly Hills. 98 00:04:45,526 --> 00:04:46,450 -Teie Kõrgeausus. 99 00:04:46,450 --> 00:04:47,380 -Nina töökoha? 100 00:04:47,380 --> 00:04:48,035 Ma ei saa aru. 101 00:04:48,035 --> 00:04:49,480 Ta oli juba nina tööd. 102 00:04:49,480 --> 00:04:51,490 See oli magus 16 kohal. 103 00:04:51,490 --> 00:04:53,090 -Ei, see pole see, mida sa arvad. 104 00:04:53,090 --> 00:04:55,150 See on palju, palju hullem. 105 00:04:55,150 --> 00:04:59,860 Kui te ei anna mulle kombinatsioon õhku kilp, Dr Schlotkin tahe 106 00:04:59,860 --> 00:05:04,135 anna oma tütart tagasi oma vana nina. 107 00:05:04,135 --> 00:05:05,385 -Ei! 108 00:05:08,202 --> 00:05:10,186 Kust sa selle said? 109 00:05:10,186 --> 00:05:11,178 -Hea küll. 110 00:05:11,178 --> 00:05:11,674 Ma ütlen. 111 00:05:11,674 --> 00:05:12,666 Ma ütlen. 112 00:05:12,666 --> 00:05:14,154 -Ei, issi, ei. 113 00:05:14,154 --> 00:05:15,150 Te ei tohi. 114 00:05:15,150 --> 00:05:16,460 -Sul on õigus, mu kallis. 115 00:05:16,460 --> 00:05:18,450 Ma igatsen endale nina. 116 00:05:18,450 --> 00:05:21,550 Aga ma ei ütle neile kombinatsioon ükskõik mida. 117 00:05:21,550 --> 00:05:23,100 -Väga hästi. 118 00:05:23,100 --> 00:05:25,510 Dr Schlotkin, tee oma halvim. 119 00:05:25,510 --> 00:05:26,760 -Minu rõõm. 120 00:05:30,560 --> 00:05:31,180 -Ei! 121 00:05:31,180 --> 00:05:33,450 Oota, oota. 122 00:05:33,450 --> 00:05:34,770 Ma ütlen. 123 00:05:34,770 --> 00:05:36,400 Ma ütlen. 124 00:05:36,400 --> 00:05:38,630 -Ma teadsin, et see toimib. 125 00:05:38,630 --> 00:05:42,040 Olgu, anna see mulle. 126 00:05:42,040 --> 00:05:46,890 -Kombinatsioon on üks. 127 00:05:46,890 --> 00:05:47,290 -Üks. 128 00:05:47,290 --> 00:05:48,183 -Üks. 129 00:05:48,183 --> 00:05:48,950 Kaks. 130 00:05:48,950 --> 00:05:49,370 Kaks. 131 00:05:49,370 --> 00:05:50,450 Kaks. 132 00:05:50,450 --> 00:05:50,715 Kolm 133 00:05:50,715 --> 00:05:51,380 -Kolm. 134 00:05:51,380 --> 00:05:52,390 -Kolm. 135 00:05:52,390 --> 00:05:53,200 -Neli. 136 00:05:53,200 --> 00:05:53,720 -Neli. 137 00:05:53,720 --> 00:05:55,830 -Neli. 138 00:05:55,830 --> 00:05:56,580 Viis 139 00:05:56,580 --> 00:05:57,120 Viis. 140 00:05:57,120 --> 00:05:58,560 Viis. 141 00:05:58,560 --> 00:06:03,770 -Nii et kombinatsioon on üks, kaks, kolm, neli, viis. 142 00:06:03,770 --> 00:06:06,745 See on kõige lollim kombinatsioon, mida ma kunagi kuulnud olen. 143 00:06:06,745 --> 00:06:09,290 See on selline asi, idioot oleks oma pagasi. 144 00:06:09,290 --> 00:06:11,540 -Tänan, teie kõrgeausus. 145 00:06:11,540 --> 00:06:12,940 -Mida sa tegid? 146 00:06:12,940 --> 00:06:14,230 -Keerasin maha seina. 147 00:06:14,230 --> 00:06:14,630 -Ei, sa ei teinud seda. 148 00:06:14,630 --> 00:06:15,430 Sa välja lülitatud kogu filmi. 149 00:06:15,430 --> 00:06:16,722 -Ma vist vajutanud vale nuppu. 150 00:06:16,722 --> 00:06:18,078 -Noh, pane see tagasi. 151 00:06:18,078 --> 00:06:18,805 Pane filmi tagasi. 152 00:06:18,805 --> 00:06:19,080 -Jah, sir. 153 00:06:19,080 --> 00:06:19,270 Jah, söör. 154 00:06:19,270 --> 00:06:19,830 -Lähme, Erna. 155 00:06:19,830 --> 00:06:20,270 Tule, Gretchen. 156 00:06:20,270 --> 00:06:22,850 Muidugi sa tead, et ma ikka pean teile arve selle eest. 157 00:06:27,400 --> 00:06:28,325 -Noh, kas see toimib? 158 00:06:28,325 --> 00:06:29,550 Kus on värav? 159 00:06:29,550 --> 00:06:29,910 -See toimis, söör. 160 00:06:29,910 --> 00:06:30,770 Meil on koos. 161 00:06:30,770 --> 00:06:31,390 -Tore. 162 00:06:31,390 --> 00:06:35,630 Nüüd saame võtta iga viimane sõõm värsket õhku planeedi Druidia. 163 00:06:35,630 --> 00:06:36,550 Mis on kombinatsioon? 164 00:06:36,550 --> 00:06:38,805 -Üks, kaks, kolm, neli, viis. 165 00:06:38,805 --> 00:06:40,610 -Üks, kaks, kolm, neli, viis? 166 00:06:40,610 --> 00:06:41,070 -Jah. 167 00:06:41,070 --> 00:06:41,760 -See on hämmastav. 168 00:06:41,760 --> 00:06:45,200 Mul sama kombinatsioon minu pagas. 169 00:06:45,200 --> 00:06:47,800 Valmista Spaceball 1 viivitamatut lahkumist. 170 00:06:47,800 --> 00:06:48,536 -Jah, sir. 171 00:06:48,536 --> 00:06:52,350 Ja muuta kombinatsioon minu pagas. 172 00:06:52,350 --> 00:06:53,250 -Oi! 173 00:06:53,250 --> 00:06:55,020 [END VIDEO PLAYBACK] 174 00:06:55,020 --> 00:06:57,470 >> David J. Malan: hämmastav film siis peaks nüüd kõik näha. 175 00:07:00,600 --> 00:07:06,540 Nii et kontekst on selles, et on ebakindlad andmed tuleb võimaluse 176 00:07:06,540 --> 00:07:07,790 krüptimiseks ja rüselus see. 177 00:07:07,790 --> 00:07:11,060 Ja nii see näiteks on näide krüpteeritud sõnum. 178 00:07:11,060 --> 00:07:12,980 See tegelikult ütleb midagi inglise keeles. 179 00:07:12,980 --> 00:07:14,750 Aga see kindlasti ei ole täielikult selge. 180 00:07:14,750 --> 00:07:17,360 Ja me täisringi täna tease peale mida see saladus 181 00:07:17,360 --> 00:07:18,380 sõnum on siin. 182 00:07:18,380 --> 00:07:22,370 Aga reaalses maailmas arvuteid, asjad ei paista isegi need võivad 183 00:07:22,370 --> 00:07:23,440 inglise väljendeid. 184 00:07:23,440 --> 00:07:27,500 Näiteks see, mida te võite leida standard Linux või Mac või 185 00:07:27,500 --> 00:07:32,080 Unix arvuti fail, mis oli kunagi ammu kutsus salasõna faili. 186 00:07:32,080 --> 00:07:34,170 Tänapäeval on see viidud teistesse kohtadesse. 187 00:07:34,170 --> 00:07:38,660 Aga kui sa vaatad õiges kohas süsteem, näete mitte ainult oma 188 00:07:38,660 --> 00:07:41,430 kasutajanimi või teiste inimeste kaudu, kuid näete 189 00:07:41,430 --> 00:07:43,410 krüpteeritud versioon oma parool. 190 00:07:43,410 --> 00:07:47,800 Tõepoolest, sõna krüpt on näidanud, et kodus asjad on krüpteeritud. 191 00:07:47,800 --> 00:07:52,030 Ja see rida näiliselt juhuslike tähtede ja märkide ja numbrite 192 00:07:52,030 --> 00:07:56,370 jne saab dekrüpteerida vaid üldiselt teada mõned saladus - 193 00:07:56,370 --> 00:07:58,600 salajane sõna, salajane number. 194 00:07:58,600 --> 00:08:02,760 Ja nii tõesti, kunst krüptograafia lõpuks taandub usaldada mõne 195 00:08:02,760 --> 00:08:05,700 sorteerida ning teades midagi, mida keegi teine ​​ei tee. 196 00:08:05,700 --> 00:08:10,010 Uurime seda veidi üksikasjalikumalt täna ja pset tulla. 197 00:08:10,010 --> 00:08:11,860 >> Ja nüüd sõna läbimise / mitteläbimise. 198 00:08:11,860 --> 00:08:15,250 Nii et eriti, nagu mõned teist on sukeldunud pset 1 aparaat, ja 199 00:08:15,250 --> 00:08:18,390 väga uus maailm ise, mõistsin, et pettumusi ja 200 00:08:18,390 --> 00:08:21,340 segadust ja lihtsalt tehnilised raskused on oodata. 201 00:08:21,340 --> 00:08:24,410 Eriti esimene pset, kus on nii palju uut, lihtsalt saada 202 00:08:24,410 --> 00:08:28,830 tuttav ls ja cd ja kõik need kauge käsud uues keskkonnas. 203 00:08:28,830 --> 00:08:32,679 Ja see on eraldi tegeliku materjali ja programmeerimine ise. 204 00:08:32,679 --> 00:08:35,960 Nii mõistame ka, et seal on kindlasti tööaega, mis eksisteerivad 205 00:08:35,960 --> 00:08:36,770 tugistruktuur. 206 00:08:36,770 --> 00:08:38,620 Sektsioonid algab sel pühapäeval. 207 00:08:38,620 --> 00:08:41,990 Aga mis kõige tähtsam, kui te ei tunne lihtsalt, et see ei ole 208 00:08:41,990 --> 00:08:44,420 maailma sa aru, et see tõesti ei lihtsalt võtab aega. 209 00:08:44,420 --> 00:08:47,520 Ja kui poleks seda võimalust aastat tagasi minu jaoks võtmise klass 210 00:08:47,520 --> 00:08:50,840 katse läbimise / mitteläbimise, ausalt, ma ei oleks isegi jalg klassiruumis. 211 00:08:50,840 --> 00:08:53,520 Ja te võite seda muuta, kuni, ütleme, viienda esmaspäeval käigus. 212 00:08:53,520 --> 00:08:57,110 Seega, kui olete äärel nüüd aru, et mitte pea mõnda muud 213 00:08:57,110 --> 00:09:01,000 vetes kokku, ei kindlasti kaaluda lihtsalt lendama katse läbimise / mitteläbimise. 214 00:09:01,000 --> 00:09:03,750 Jällegi, ei ole tõesti see kultuur siin Harvardi võtta asju 215 00:09:03,750 --> 00:09:08,080 katse läbimise / mitteläbimise sest igaüks tahab saavutada või overachieve. 216 00:09:08,080 --> 00:09:11,470 Aga ausalt öeldes, see on suurepärane võimalus proovida midagi, mis ei pruugi 217 00:09:11,470 --> 00:09:13,110 olema tuttav teile. 218 00:09:13,110 --> 00:09:17,090 Ja sa lõpuks teed, enamasti üsna hästi, võib-olla 219 00:09:17,090 --> 00:09:18,040 palju oma üllatuseks. 220 00:09:18,040 --> 00:09:20,850 Ja konkreetsemalt, mida ma arvan katse läbimise / mitteläbimise üldiselt teeb, 221 00:09:20,850 --> 00:09:23,350 eriti kui sa võisid kogenud pset 0, kui olete panna 222 00:09:23,350 --> 00:09:27,200 10 tundi, 15 tundi, 25 tundi mõnda pset - ja sa oled lihtsalt peksma 223 00:09:27,200 --> 00:09:28,180 oma pead vastu seina, 224 00:09:28,180 --> 00:09:29,850 ja see muutub super hilja õhtul, 225 00:09:29,850 --> 00:09:31,880 aga te olete võtnud pset nagu 90% teest, 226 00:09:31,880 --> 00:09:33,780 sa tead, sa lihtsalt ei saa aru, üks asi - 227 00:09:33,780 --> 00:09:36,830 katse läbimise / mitteläbimise tõesti võtab serv off klassi meeldib see, kus saate sortida 228 00:09:36,830 --> 00:09:39,150 on õnnelikult öelda, okei, ma tean, et see pole täiuslik. 229 00:09:39,150 --> 00:09:40,470 Aga ma töötasin my ass off selle. 230 00:09:40,470 --> 00:09:42,410 Ma olen päris rahul, kui ta sattus. 231 00:09:42,410 --> 00:09:44,780 Ja mis vastavad ootused läbimise / mitteläbimise. 232 00:09:44,780 --> 00:09:46,850 Nii et ärge hoidke seda silmas pidades. 233 00:09:46,850 --> 00:09:47,140 >> Hea küll. 234 00:09:47,140 --> 00:09:50,980 Nii neile, kes on võidelnud kasutada Harvardi ülikooli wifi tea 235 00:09:50,980 --> 00:09:54,780 et seal on CS50 SSID, Wi-Fi ühendus ujuvad ringi, et te 236 00:09:54,780 --> 00:09:56,520 võib olla parem õnne. 237 00:09:56,520 --> 00:09:59,430 See on natuke irooniline, et parool - kui te tahaksite proovida 238 00:09:59,430 --> 00:10:03,080 ühendades sellele parema kiiruse ja andke teada, kui see pole parem - 239 00:10:03,080 --> 00:10:09,240 on üks, kaks, kolm, neli, viis, kõik viis kuni kaheksa sest kaheksa on 240 00:10:09,240 --> 00:10:10,270 turvalisem kui viis. 241 00:10:10,270 --> 00:10:15,520 Nii et kui teil on vaja wifi parooli, ühendada CS50 juhtmevabalt siin. 242 00:10:15,520 --> 00:10:16,950 Üks, kaks, kolm, neli, viis, kuus, seitse, kaheksa. 243 00:10:16,950 --> 00:10:20,440 Ja postitustesse CS50 Arutle, kui sul on veel vahelduva ühenduvust küsimusi, 244 00:10:20,440 --> 00:10:24,880 ja laseme volitusi, et olla teavad seda ruumi. 245 00:10:24,880 --> 00:10:25,180 >> Hea küll. 246 00:10:25,180 --> 00:10:30,350 Nii kiire teaser, eriti neile, kes on fänn poiste ja tüdrukute 247 00:10:30,350 --> 00:10:31,900 kõik asjad Apple. 248 00:10:31,900 --> 00:10:37,566 Mida ma kaevasin üles mõned aastad tagasi oli see fail siin, ilock.c, lihtsalt 249 00:10:37,566 --> 00:10:40,930 omamoodi teha rohkem konkreetseid ja keerulisem mõned rohkem põhilisi C 250 00:10:40,930 --> 00:10:42,350 programme oleme olnud kirjalikult. 251 00:10:42,350 --> 00:10:44,360 Nii et ma avanud seda faili ilock.c. 252 00:10:44,360 --> 00:10:46,830 See on saadaval loenguid lehel täna. 253 00:10:46,830 --> 00:10:49,470 Vasakul servas, näed pikka nimekirja funktsioone. 254 00:10:49,470 --> 00:10:51,860 Nii et mehe, kes kirjutas selle kirjutasin üles palju funktsioone, 255 00:10:51,860 --> 00:10:53,290 enamat kui lihtsalt põhiline. 256 00:10:53,290 --> 00:10:55,490 Ta kasutas terve hulk raamatukogude siin. 257 00:10:55,490 --> 00:11:00,450 Ja kui hakkame sirvimiseks, mida see tegelikult on väga 258 00:11:00,450 --> 00:11:04,670 Esiteks, ma usun, crack originaal iPhone. 259 00:11:04,670 --> 00:11:08,000 Kui sa tahad Jailbreak originaal iPhone, mis tähendab untether 260 00:11:08,000 --> 00:11:11,800 see AT & T ja tegelikult installida spetsiaalne tarkvara peal ja teevad asju 261 00:11:11,800 --> 00:11:13,510 et Apple ei taha, et inimesed teevad - 262 00:11:13,510 --> 00:11:17,020 noh, keegi võttis aega, et aru saada, kuidas täpselt nad võiksid kasutada 263 00:11:17,020 --> 00:11:20,880 tarkvara vead, vead, vead, Apple tarkvara. 264 00:11:20,880 --> 00:11:22,650 Ja nõnda sündis ilock.c. 265 00:11:22,650 --> 00:11:26,670 Et kui sa koostatakse see arvutis ja installitud see peale iPhone, et 266 00:11:26,670 --> 00:11:29,810 oli ühendatud arvuti kaudu, ütleme, USB kaabel, see annaks sulle 267 00:11:29,810 --> 00:11:33,360 haldus-või administraatoriõigusi oma iPhone ja saate teha päris palju 268 00:11:33,360 --> 00:11:34,170 mida iganes sa tahad. 269 00:11:34,170 --> 00:11:36,740 >> Ja seega ei ole see põnev kassi-hiire mängu vahel Apple ja 270 00:11:36,740 --> 00:11:39,920 mujal maailmas eriti kui nad, nagu paljud ettevõtted, proovida lukustada 271 00:11:39,920 --> 00:11:43,220 oma kraami maha, nii et saate teha ainult seda, mida nad kavatsevad. 272 00:11:43,220 --> 00:11:46,620 Kuid tänu inimestele meeldib see ja nad mõistavad madala 273 00:11:46,620 --> 00:11:50,580 üksikasjad ja sel juhul, C programmeerimine ja palju tuttavaid konstrueerib 274 00:11:50,580 --> 00:11:54,630 et oleme hakanud mängides, siis on võimalik tõesti võimendavat 275 00:11:54,630 --> 00:11:59,050 riistvara viisil näed ja ei pruugi mõned äriühinguks. 276 00:11:59,050 --> 00:12:01,360 Nii näiteks, ma ei tea, mida see kõik teeb. 277 00:12:01,360 --> 00:12:03,220 Aga GetVersion kõlab üsna lihtne. 278 00:12:03,220 --> 00:12:05,480 Ja tundub, et see on funktsioon, mis see inimene kirjutas. 279 00:12:05,480 --> 00:12:09,240 Võtke mingi täisarv argumendina, ei tagasta midagi, kuid 280 00:12:09,240 --> 00:12:13,080 tundub ahelaks jaoks silmus siin ja kui tingimus, kui tingimus, 281 00:12:13,080 --> 00:12:15,620 murda, ja kuidagi seotud versiooni numbrit. 282 00:12:15,620 --> 00:12:16,700 Kui me keri - 283 00:12:16,700 --> 00:12:19,570 kuigi palju need märksõnad ei kavatse olla uus, ja seal on 284 00:12:19,570 --> 00:12:22,590 kogu palju funktsioone siin me pole kunagi näinud ja ei pruugi kunagi näha üle 285 00:12:22,590 --> 00:12:23,830 käigus poolaasta - 286 00:12:23,830 --> 00:12:27,150 aasta lõpus päev, see kehtivad samad reeglid ja loogika, et me oleme olnud 287 00:12:27,150 --> 00:12:28,760 mängib siiani. 288 00:12:28,760 --> 00:12:34,220 Nii et see on liiga vana crack oma iPhone 3s või 4s või peatselt 5s, nendel päevadel, 289 00:12:34,220 --> 00:12:37,320 kuid tean, et see kõik on väga palju saadud siin maailmas, et me oleme 290 00:12:37,320 --> 00:12:38,430 sukeldus. 291 00:12:38,430 --> 00:12:41,900 >> Võtame pilk veidi lihtsa näite. 292 00:12:41,900 --> 00:12:46,100 See üks, lihtsalt saada soojendada mõned süntaks ja ka mõned muud andmed 293 00:12:46,100 --> 00:12:49,240 tüüp, mis me rääkisime, kuid pole tõesti näinud C. Nii et see on 294 00:12:49,240 --> 00:12:51,680 fail nimega positive1.c. 295 00:12:51,680 --> 00:12:55,120 Ja kohta märkusi ülaosas, see lihtsalt nõuab, et kasutaja anda 296 00:12:55,120 --> 00:12:55,960 positiivne arv. 297 00:12:55,960 --> 00:12:59,530 Nii et see on näide do-kui ahela, mis on kena kasutaja interaktiivne 298 00:12:59,530 --> 00:13:01,980 programme, kus sa pead ütlema kasutaja midagi teha. 299 00:13:01,980 --> 00:13:05,190 Ja kui nad ei tee koostööd, siis karju neile või tagasi lükata oma panuse. 300 00:13:05,190 --> 00:13:11,610 Asjas, ma teen read 19 kuni 24, nii kaua, kui kasutaja on 301 00:13:11,610 --> 00:13:14,310 ei andnud mulle positiivse numbriga. 302 00:13:14,310 --> 00:13:20,400 Nüüd on see detail siin on line 18, miks ma kuulutada N üle kogu see 303 00:13:20,400 --> 00:13:24,490 silmuspõletamise ehitada mitte kohe eelarverida 22, kus ma 304 00:13:24,490 --> 00:13:26,880 tegelikult hoolivad saada n? 305 00:13:26,880 --> 00:13:27,330 Jah? 306 00:13:27,330 --> 00:13:27,780 [Kuuldamatu] 307 00:13:27,780 --> 00:13:29,040 >> David J. Malan: Jah, nii see küsimus ulatust. 308 00:13:29,040 --> 00:13:30,850 Ja üldarusaadavat valimisperiood, mida ei reguleerimisala hõlmab? 309 00:13:34,690 --> 00:13:36,610 Jah? 310 00:13:36,610 --> 00:13:37,860 [Kuuldamatu] 311 00:13:40,040 --> 00:13:41,105 David J. Malan: Kas te räägite veidi valjem? 312 00:13:41,105 --> 00:13:43,450 SPEAKER 1: Kui pääsete konkreetse tunnuse. 313 00:13:43,450 --> 00:13:45,170 David J. Malan: Perfect. 314 00:13:45,170 --> 00:13:47,360 Kui pääsete konkreetse tunnuse. 315 00:13:47,360 --> 00:13:50,400 Ja üldiselt, rusikareegel on seni olnud, et reguleerimisala mõned 316 00:13:50,400 --> 00:13:55,860 Muutuja on määratletud ka kõige uuemad looksulg, et olete näinud. 317 00:13:55,860 --> 00:14:02,010 Ja nii sel juhul, kui ma tegin vea tunnistamise n real 22, 318 00:14:02,010 --> 00:14:03,010 et rida oleks töö. 319 00:14:03,010 --> 00:14:10,990 Ma saaksin int, ja ma paneks see, et muutuja n eelarverida 22. 320 00:14:10,990 --> 00:14:16,900 Aga mis koodirida oleks nüüd ei tea, mida ma räägin? 321 00:14:16,900 --> 00:14:22,650 Nii et 25, ja tuleb välja, 24 ning samuti, sest sel juhul jääb 322 00:14:22,650 --> 00:14:23,610 Euroopa looksulg. 323 00:14:23,610 --> 00:14:27,280 Nii lihtsalt natuke ebameeldivalt, kuid väga kergesti lahendada lihtsalt kuulutatakse 324 00:14:27,280 --> 00:14:30,140 muutuja väljaspool funktsiooni. 325 00:14:30,140 --> 00:14:32,600 >> Nüüd näeme hiljem täna, võid minna ühe sammu edasi. 326 00:14:32,600 --> 00:14:34,860 Ja siis võiks isegi natuke laisk - 327 00:14:34,860 --> 00:14:37,320 ja seda ei soovitata üldiselt - 328 00:14:37,320 --> 00:14:42,260 aga sa võiksid isegi saada laisk ja panna muutuja globaalselt, kui nii võib öelda, ei 329 00:14:42,260 --> 00:14:46,670 sees funktsiooni, mitte sees silmus, kuid faili ennast, väljaspool 330 00:14:46,670 --> 00:14:49,600 Kõiki funktsioone olete kirjutanud, kui ma siin tegin real 15. 331 00:14:49,600 --> 00:14:51,160 Aga see on üldiselt kortsutas kulmu. 332 00:14:51,160 --> 00:14:55,680 Aga aru, et see on lahendus, mõnikord muid probleeme, nagu me 333 00:14:55,680 --> 00:14:56,620 lõpuks näha. 334 00:14:56,620 --> 00:14:58,130 Nii et nüüd jätame selle nii. 335 00:14:58,130 --> 00:15:01,030 Aga vaatame, kas me saame selle ümber kirjutada lihtsalt alustada eneseväljendamisel 336 00:15:01,030 --> 00:15:01,990 natuke teistmoodi. 337 00:15:01,990 --> 00:15:05,330 >> Nii et see programm, et asi selge oleks, on positive1. 338 00:15:05,330 --> 00:15:11,810 Lubage mul minna siin ja minu terminaliakent teha positive1, Enter. 339 00:15:11,810 --> 00:15:12,740 Koostab, eks. 340 00:15:12,740 --> 00:15:14,910 Ma lähen jooksma positive1, Enter. 341 00:15:14,910 --> 00:15:16,820 Ma nõuan, et sa annad mulle positiivne täisarv. 342 00:15:16,820 --> 00:15:18,260 Ma ütlen -1. 343 00:15:18,260 --> 00:15:18,910 See ei õnnestunud. 344 00:15:18,910 --> 00:15:22,150 0, 99, mis näib toimivat. 345 00:15:22,150 --> 00:15:23,570 Võib-olla mitte kõige range katse. 346 00:15:23,570 --> 00:15:26,480 Aga vähemalt on see kena meelerahu kontrolli, et me oleme õigel teel. 347 00:15:26,480 --> 00:15:29,240 Nüüd lubage mul edasi minna ja avada versioon kaks seda. 348 00:15:29,240 --> 00:15:32,500 Ja mis on erinev juba? 349 00:15:32,500 --> 00:15:35,140 Ta rakendab sama asi. 350 00:15:35,140 --> 00:15:40,660 Aga mis hüppas selgelt erinev seekord? 351 00:15:40,660 --> 00:15:42,560 Jah, nii see bool roheline. 352 00:15:42,560 --> 00:15:45,980 Gedit on rõhutatud roheline see märksõna tuntud bool, 353 00:15:45,980 --> 00:15:47,000 mis on andmetüüp. 354 00:15:47,000 --> 00:15:51,080 See ei tule ehitatud, et kõik versioonid C. Sa pead lisama 355 00:15:51,080 --> 00:15:52,010 konkreetse raamatukogu. 356 00:15:52,010 --> 00:15:54,770 Meie puhul ma ka CS50 raamatukogu, nii et me 357 00:15:54,770 --> 00:15:56,460 juurdepääs bool. 358 00:15:56,460 --> 00:15:59,810 Aga liin 18, me tundub, et on Boole'i ​​väärtus siin nimetatakse tänulik. 359 00:15:59,810 --> 00:16:01,040 Nii et ma võinuks see midagi. 360 00:16:01,040 --> 00:16:04,500 Aga ma helistasin talle tänulik lihtsalt selline edasi mõned semantiline tähendus. 361 00:16:04,500 --> 00:16:07,930 Nii et esialgu on line 18, ma olen ilmselt mitte tänulik, sest 362 00:16:07,930 --> 00:16:12,150 Tõeväärtuse tänulik vastab algselt vale eelarverea 18. 363 00:16:12,150 --> 00:16:16,890 Ja siis tundub, mida ma olen teinud siin ridades 21 kuni 23 on mul lihtsalt 364 00:16:16,890 --> 00:16:18,610 omamoodi ümber minu loogika. 365 00:16:18,610 --> 00:16:21,020 Seega ei ole funktsionaalselt erinevad. 366 00:16:21,020 --> 00:16:26,940 Aga eelarverida 22 nüüd, ma kontrollin kui int kasutaja on andnud on suurem kui 367 00:16:26,940 --> 00:16:31,120 0, siis ma lihtsalt väärtust muuta tänulikud tõsi. 368 00:16:31,120 --> 00:16:32,290 Ja miks ma seda teen? 369 00:16:32,290 --> 00:16:35,600 Kuna vastavalt 25, ilmselt, ma lähen vaatan seisukorras. 370 00:16:35,600 --> 00:16:39,380 Kas see tsükkel while tänulik on vale. 371 00:16:39,380 --> 00:16:43,610 >> Nii et pakun seda alternatiivina versioon, sest see on vähemalt 372 00:16:43,610 --> 00:16:45,130 natuke rohkem intuitiivne, võib-olla. 373 00:16:45,130 --> 00:16:46,900 See on veidi rohkem maandatud inglise keeles. 374 00:16:46,900 --> 00:16:51,710 Nii et tehke järgmist ajal ei ole tänulik või kui tänulik on vale. 375 00:16:51,710 --> 00:16:55,890 Ja seekord ka, ma ilmselt ei huvita mäleta, mida kasutaja sisestatud 376 00:16:55,890 --> 00:16:57,730 aastal, sest teate pole muutuja n. 377 00:16:57,730 --> 00:16:58,650 Nii et tegelikult ma - 378 00:16:58,650 --> 00:17:00,080 väike valge vale seal. 379 00:17:00,080 --> 00:17:02,770 Funktsionaalselt programm on natuke teistsugune kui saame põhjale 380 00:17:02,770 --> 00:17:04,819 sest ma ei mäleta mida n. 381 00:17:04,819 --> 00:17:09,579 Aga ma tahtsin näidata ka siin, et kuigi me oleme näinud GetInt ja 382 00:17:09,579 --> 00:17:13,920 GetString kasutatakse paremal servas võrdusmärk seni nii, et 383 00:17:13,920 --> 00:17:17,160 me mäletame väärtus, tehniliselt, see pole hädavajalik. 384 00:17:17,160 --> 00:17:20,950 Kui mingil põhjusel sa lihtsalt ei huvita, et säästa raha, tahad lihtsalt 385 00:17:20,950 --> 00:17:25,710 kontrollida väärtus, märkate, et me lihtsalt kirjutada seda GetInt avatud 386 00:17:25,710 --> 00:17:27,000 paren lähedal paren. 387 00:17:27,000 --> 00:17:30,460 See funktsioon ei kavatse naasta väärtus, nagu me oleme öelnud. 388 00:17:30,460 --> 00:17:32,010 See läheb teile tagasi int. 389 00:17:32,010 --> 00:17:36,450 Ja kui sa vaimselt arvan see juhtub, kui ma kirjuta 99, GetInt 390 00:17:36,450 --> 00:17:38,160 tagastab arvu 99. 391 00:17:38,160 --> 00:17:41,330 Ja nii kontseptuaalselt, see on nagu minu kood oli tegelikult see. 392 00:17:41,330 --> 00:17:45,880 Nii et kui 99 on tõepoolest suurem kui 0, siis tänulikud muutub tõsi. 393 00:17:45,880 --> 00:17:50,420 Siis rida 25 realiseerib ooh, me oleme valmis, sest ma olen nüüd tänulik. 394 00:17:50,420 --> 00:17:54,590 Ja rida 26, me lihtsalt öelda, aitäh positiivne täisarv, mis iganes see 395 00:17:54,590 --> 00:17:55,710 juhtus olema. 396 00:17:55,710 --> 00:17:58,900 >> Nüüd teeme veidi süntaktiline suhkru siin, nii rääkida. 397 00:17:58,900 --> 00:18:02,990 Vaatame, kas me saame puhastada seda joont 25 koos selle Kolmas ja viimane dispersioon 398 00:18:02,990 --> 00:18:04,640 aastal positive3. 399 00:18:04,640 --> 00:18:08,250 Nii märkate ainus erinevus nüüd ongi rida koodi? 400 00:18:11,930 --> 00:18:13,260 Jah, nii 25. 401 00:18:13,260 --> 00:18:15,520 Ja me pole tegelikult näinud seda trikki veel. 402 00:18:15,520 --> 00:18:19,510 Aga me ei vaata hüüumärk esmaspäeval, mis tähendab mida? 403 00:18:19,510 --> 00:18:20,970 Nii ei või eitus. 404 00:18:20,970 --> 00:18:23,460 Nii, et võta tõeväärtuse ja klapp selle väärtust. 405 00:18:23,460 --> 00:18:24,390 Tõsi muutub vale. 406 00:18:24,390 --> 00:18:25,500 Vale muutub tõsi. 407 00:18:25,500 --> 00:18:28,910 Nii et see, ma teeksin ettepaneku, on isegi natuke rohkem intuitiivne ja viis 408 00:18:28,910 --> 00:18:32,200 kirjalikult koodi, sest ma ikka initsialiseerida tänulikud vale. 409 00:18:32,200 --> 00:18:33,530 Ma ikka teha järgmist. 410 00:18:33,530 --> 00:18:35,700 Seadsin tänulikud tõsi, kui saabub aeg. 411 00:18:35,700 --> 00:18:40,690 Aga nüüd saab tõesti lihtsalt tõlkida see kood verbaalselt vasakult paremale, 412 00:18:40,690 --> 00:18:42,550 samas ei tänulik. 413 00:18:42,550 --> 00:18:46,170 Sest pauk, või hüüumärk, tähendab mõiste ei, nii et kui 414 00:18:46,170 --> 00:18:47,010 ei tänulik. 415 00:18:47,010 --> 00:18:49,740 >> Nii et taas, me ei ole kasutusele mingeid uusi mõisteid iseenesest. 416 00:18:49,740 --> 00:18:53,230 Me rääkisime tõeväärtused tagasi, kui me mängisime koos Scratch. 417 00:18:53,230 --> 00:18:55,690 Aga mõistan nüüd me võime lihtsalt hakake meie koodi 418 00:18:55,690 --> 00:18:56,550 mitmel erineval viisil. 419 00:18:56,550 --> 00:19:00,010 Nii et eriti pset1, kui sa oled omamoodi hädas nuputada viis 420 00:19:00,010 --> 00:19:03,400 kirjutada mõned programm, koefitsiendid sa oled õnne, sest seal saab olla 421 00:19:03,400 --> 00:19:05,780 mitmeid lahendusi, mida saab peale sattuma. 422 00:19:05,780 --> 00:19:09,850 Näiteks, see on lihtsalt kolm isegi kõige lihtsamaid programme. 423 00:19:09,850 --> 00:19:10,180 Hea küll. 424 00:19:10,180 --> 00:19:13,860 Ja nüüd meenutada esmaspäeval, jätsime selle teadmiseks tagasi väärtused. 425 00:19:13,860 --> 00:19:18,280 Nii et väga esimest korda, me kirjutasime programmi, mis ei ole ainult peamine, 426 00:19:18,280 --> 00:19:22,240 see on ka oma kohandatud funktsiooni, et ma kirjutasin siin. 427 00:19:22,240 --> 00:19:26,640 Nii real 31 kuni 34, olen rakendatud kuubik funktsioon. 428 00:19:26,640 --> 00:19:27,800 See ei ole keeruline. 429 00:19:27,800 --> 00:19:29,830 See on lihtsalt korda korda, sel juhul. 430 00:19:29,830 --> 00:19:34,920 Aga mis on tähtis on see, et ma olen võttes sisend kujul ja 431 00:19:34,920 --> 00:19:38,910 Ma tagastades toodangut kujul korda korda. 432 00:19:38,910 --> 00:19:43,940 >> Nii et nüüd on mul võimalus, palju nagu ma harjunud koos printf üksi, helistada 433 00:19:43,940 --> 00:19:47,120 See funktsioon helistades kuubik funktsioon. 434 00:19:47,120 --> 00:19:49,470 Ja kuubik funktsioon võtab mõned sisend. 435 00:19:49,470 --> 00:19:52,030 Ja kuubik tagastab funktsioon mõned väljund. 436 00:19:52,030 --> 00:19:56,660 Ja nii seevastu printf lihtsalt tegid midagi. 437 00:19:56,660 --> 00:19:59,490 See ei tagastanud midagi, et me hoolis - kuigi, nagu 438 00:19:59,490 --> 00:20:00,820 kõrvale, see tagastab väärtuse. 439 00:20:00,820 --> 00:20:02,650 Sa lihtsalt üldiselt ignoreerida. 440 00:20:02,650 --> 00:20:04,000 Printf lihtsalt tegid midagi. 441 00:20:04,000 --> 00:20:06,220 See oli kõrvalmõjuna trükkimine ekraanile. 442 00:20:06,220 --> 00:20:09,480 Seevastu siin, meil on kuubik funktsioon, mis 443 00:20:09,480 --> 00:20:11,400 tegelikult tagastab midagi. 444 00:20:11,400 --> 00:20:12,960 >> Nii et see on üldiselt - 445 00:20:12,960 --> 00:20:15,260 Neile, kes teavad seda, see on üsna lihtne idee. 446 00:20:15,260 --> 00:20:18,460 Aga neile vähem tuttav selle idee läbivad sisendite ja saada 447 00:20:18,460 --> 00:20:21,700 tagasi väljundid, proovime lihtsalt midagi super lihtne. 448 00:20:21,700 --> 00:20:25,180 Kas keegi mugav tulemas laval lühidalt? 449 00:20:25,180 --> 00:20:27,460 Sa pead olema rahul kaamera teile, samuti. 450 00:20:27,460 --> 00:20:27,640 Jah. 451 00:20:27,640 --> 00:20:28,610 Olgu, mis su nimi on? 452 00:20:28,610 --> 00:20:29,020 KEN: Ken. 453 00:20:29,020 --> 00:20:29,420 David J. Malan: Ken. 454 00:20:29,420 --> 00:20:29,810 Olgu, Ken. 455 00:20:29,810 --> 00:20:31,060 Tule üles. 456 00:20:31,060 --> 00:20:34,660 Nii Ken saab olema funktsioon sordib siin. 457 00:20:34,660 --> 00:20:35,760 Ja olgem minna ja seda teha. 458 00:20:35,760 --> 00:20:38,790 Lähme natuke uhke. 459 00:20:38,790 --> 00:20:39,770 Meeldiv kohtuda. 460 00:20:39,770 --> 00:20:41,010 Tere tulemast keskpunkti. 461 00:20:41,010 --> 00:20:41,980 Hea küll. 462 00:20:41,980 --> 00:20:45,590 Asume teele seda nuppu siin. 463 00:20:45,590 --> 00:20:46,420 Hea küll. 464 00:20:46,420 --> 00:20:49,490 Nii et siin on kaasaegne kriiditahvel. 465 00:20:49,490 --> 00:20:53,050 Ja mis ma olen on peamine funktsioon, näiteks. 466 00:20:53,050 --> 00:20:55,990 Ja ma ei pea iPadi minu poolt. 467 00:20:55,990 --> 00:20:59,000 Ma tõesti ei mäleta, kuidas - noh, tegelikult ei saa öelda, et. 468 00:20:59,000 --> 00:21:02,200 Ma tõesti ei ole hea käekiri. 469 00:21:02,200 --> 00:21:05,260 Ja nii seepärast, ma tahan printida midagi ekraanil minu jaoks. 470 00:21:05,260 --> 00:21:07,470 >> Nii et ma oleks põhiprogrammi. 471 00:21:07,470 --> 00:21:15,060 Ja ma ei sa öelda seda, kirjutades selle oma kana nullist ja 472 00:21:15,060 --> 00:21:16,600 siis kulgeb teil sisend. 473 00:21:16,600 --> 00:21:20,000 Nii nagu rumal kuigi see harjutus on, mõiste funktsioonid ja kutsudes 474 00:21:20,000 --> 00:21:22,260 funktsioon ja tagasi funktsioon tõesti taandub sellele. 475 00:21:22,260 --> 00:21:23,120 Olen peamine. 476 00:21:23,120 --> 00:21:26,270 Ma olen lihtsalt kirjutada printf ("midagi") ekraanil. 477 00:21:26,270 --> 00:21:27,470 Ma töötab selle programmi. 478 00:21:27,470 --> 00:21:30,900 Ja niipea, kui printf saab nimetada, see võtab üks argument - või ühe parameetri, 479 00:21:30,900 --> 00:21:31,660 mõnikord - 480 00:21:31,660 --> 00:21:32,780 vahel jutumärgid. 481 00:21:32,780 --> 00:21:33,960 Siin on see argument. 482 00:21:33,960 --> 00:21:35,740 Ma panen selle Ken. 483 00:21:35,740 --> 00:21:39,390 Nüüd on ta musta kasti kirjutada mõned mitu aastat tagasi, et ilmselt 484 00:21:39,390 --> 00:21:41,070 ainult teab, kuidas printida asju ekraanil. 485 00:21:41,070 --> 00:21:42,320 >> Nii täita. 486 00:21:48,842 --> 00:21:49,900 See ei ole halb. 487 00:21:49,900 --> 00:21:50,890 Nii, väga hea. 488 00:21:50,890 --> 00:21:52,900 Nüüd Ken tehakse täidesaatva. 489 00:21:52,900 --> 00:21:55,810 Kas ta pead anda mulle midagi tagasi? 490 00:21:55,810 --> 00:21:57,240 Nii ei ole, et me oleme näinud siiani. 491 00:21:57,240 --> 00:21:59,230 Jällegi printf ei tegelikult naasta arv. 492 00:21:59,230 --> 00:22:01,640 Aga me eirata, et nüüd, sest me pole kunagi seda kasutanud. 493 00:22:01,640 --> 00:22:03,400 Nii et see on mu Ken. 494 00:22:03,400 --> 00:22:06,650 Ja nüüd peamine tuleb tagasi ellu - 495 00:22:06,650 --> 00:22:09,630 Peamised võtab üle kontrolli programm uuesti, sest see rida koodi, 496 00:22:09,630 --> 00:22:11,010 printf, tehakse täidesaatva. 497 00:22:11,010 --> 00:22:13,890 Ja meil minna oma teed täidesaatva tahes teistel liinidel on olemas. 498 00:22:13,890 --> 00:22:14,130 >> Hea küll. 499 00:22:14,130 --> 00:22:17,080 Nüüd proovime veidi teistsugune näide. 500 00:22:17,080 --> 00:22:22,430 Ja seekord siin, olgem kõigepealt selgeks ekraani siin. 501 00:22:22,430 --> 00:22:24,670 Ja seekord, me teeme cubing funktsioon. 502 00:22:24,670 --> 00:22:27,350 Aga seekord, ma eeldan toodangu väärtus. 503 00:22:27,350 --> 00:22:28,630 Nii lähme edasi ja tee seda. 504 00:22:28,630 --> 00:22:35,680 Nii et nüüd on mul rida koodi, mis ütleb, x = kuup (x). 505 00:22:35,680 --> 00:22:36,930 Nii et tegelikult let's - 506 00:22:41,450 --> 00:22:43,940 rida koodi, mäletate, näeb välja selline. 507 00:22:43,940 --> 00:22:45,960 x = kuup (x). 508 00:22:45,960 --> 00:22:48,100 Niisiis, kuidas see läheb tööle? 509 00:22:48,100 --> 00:22:50,820 Nii lähme edasi ja annab teile valge ekraan uuesti. 510 00:22:50,820 --> 00:22:55,000 Ja ma kirjutan nüüd maha x väärtus, mis käesoleval ajal 511 00:22:55,000 --> 00:23:01,080 aega juhtub olema, ütleme, 2, hoida lihtsa. 512 00:23:01,080 --> 00:23:04,890 Nii et ma olen kirjutanud alla paberile väärtus 2, 513 00:23:04,890 --> 00:23:06,100 mis on minu x väärtust. 514 00:23:06,100 --> 00:23:08,250 Ma käsi selle Ken. 515 00:23:08,250 --> 00:23:09,200 KEN: Ja ma lihtsalt kirjutan vastuse? 516 00:23:09,200 --> 00:23:12,660 David J. Malan: Jah, teeme lihtsalt kirjutada vastus. 517 00:23:12,660 --> 00:23:13,030 Okei. 518 00:23:13,030 --> 00:23:16,280 Ja nüüd on ta tagasi mulle midagi. 519 00:23:16,280 --> 00:23:17,560 Nii et - 520 00:23:17,560 --> 00:23:18,170 täiuslik. 521 00:23:18,170 --> 00:23:18,840 Tore segue. 522 00:23:18,840 --> 00:23:21,970 >> Nii et nüüd ta käed mulle tagasi raha, 8., käesoleval juhul. 523 00:23:21,970 --> 00:23:23,220 Ja mida ma sellega teen? 524 00:23:23,220 --> 00:23:26,130 Noh, tegelikult, vaatame. 525 00:23:26,130 --> 00:23:26,640 Saada see õige. 526 00:23:26,640 --> 00:23:27,880 Mida ma sellega teha? 527 00:23:27,880 --> 00:23:31,900 Nüüd ma lähen seda väärtust ja tegelikult seda säilitada need 528 00:23:31,900 --> 00:23:33,400 sama bittide mälu. 529 00:23:33,400 --> 00:23:35,030 Aga teate, ma olen selline hädas siin. 530 00:23:35,030 --> 00:23:38,280 Ma olen natuke segaduses, sest kui ma tegelikult kirjutada x väärtus? 531 00:23:38,280 --> 00:23:41,840 Sest ma olen lihtsalt teinud on füüsiliselt käsi Ken paberile 532 00:23:41,840 --> 00:23:44,400 et oli väärtus 2, mis oli x. 533 00:23:44,400 --> 00:23:46,300 Ja tõepoolest, see on täpselt, mis juhtub. 534 00:23:46,300 --> 00:23:50,100 Nii tuleb välja, et kui te helistate funktsiooni, ja te kaotate ka argument 535 00:23:50,100 --> 00:23:54,130 nagu "tere maailm" või te kaotate ka argument, nagu 2, üldiselt, sa oled 536 00:23:54,130 --> 00:23:56,720 läbivad koopia sellest argumendist. 537 00:23:56,720 --> 00:24:01,020 Ja nii nagu ma kirjutasin number 2 siin ja andis selle Ken; et peab 538 00:24:01,020 --> 00:24:04,760 tähendab, et mul on veel koopia väärtus 2. kusagil. 539 00:24:04,760 --> 00:24:08,140 Sest tõepoolest, nüüd, et ma olen saanud tagasi raha 8, ma pean minema tagasi 540 00:24:08,140 --> 00:24:12,010 RAM ja tegelikult kirjutada 8 Kui ma ükskord oli number 2. 541 00:24:12,010 --> 00:24:15,720 >> Nii visuaalselt mäletan seda mõistet läbivad sõna otseses mõttes 542 00:24:15,720 --> 00:24:16,730 koopia väärtus. 543 00:24:16,730 --> 00:24:19,570 Ken teeb oma asja, ulatab mulle tagasi midagi - sel juhul 544 00:24:19,570 --> 00:24:20,820 väärtus nagu 8. 545 00:24:20,820 --> 00:24:22,660 Ja siis ma pean tegema midagi, et raha, kui ma 546 00:24:22,660 --> 00:24:24,880 tahan hoida seda ümber. 547 00:24:24,880 --> 00:24:29,470 Nii et see kõik on liigagi tuttav enne pikk. 548 00:24:29,470 --> 00:24:33,082 Tänan sind nii palju see demo siia, Ken. 549 00:24:33,082 --> 00:24:34,820 Hea küll. 550 00:24:34,820 --> 00:24:36,720 Väga hästi tehtud. 551 00:24:36,720 --> 00:24:40,610 Nii et vaatame, kuidas see lõpuks puudutab mõningaid funktsioon 552 00:24:40,610 --> 00:24:42,270 helistaja, et me oleme siin teinud. 553 00:24:42,270 --> 00:24:47,610 Nii et lubage mul minna ja tuua meid tagasi cubing näiteks siin. 554 00:24:47,610 --> 00:24:53,080 Ja märkate, et kui me tahame tegelikult alustavad selles edasi, me läheme 555 00:24:53,080 --> 00:24:57,050 et pead olema teadlik sellest, et arv x, mis kuramuse vastu võetud 556 00:24:57,050 --> 00:25:01,390 siin on erinev sellest, mida on tegelikult läks funktsioon. 557 00:25:01,390 --> 00:25:03,940 Nii et jällegi, see möödus koopia läheb muutunud üsna 558 00:25:03,940 --> 00:25:05,620 Sobiv vaid hetk. 559 00:25:05,620 --> 00:25:09,320 >> Võtame pilk midagi, mis ei ole päris tööd õige veel. 560 00:25:09,320 --> 00:25:11,790 Ma lähen edasi minna ja avada 1/3 lollakas näide, mis 561 00:25:11,790 --> 00:25:13,560 on ekslik iseloomuga. 562 00:25:13,560 --> 00:25:18,070 Ja seda nimetatakse buggy3, ja ta rakendab Vahetatakse funktsioon. 563 00:25:18,070 --> 00:25:23,500 Nii et siin on meil peamine funktsioon, mis on x ja y omavoliliselt initsialiseeritud 564 00:25:23,500 --> 00:25:24,720 1 ja 2 nimetatud isikud. 565 00:25:24,720 --> 00:25:27,590 Me võiksime kasutada GetInt, kuid me lihtsalt vaja lihtne kasutada. 566 00:25:27,590 --> 00:25:29,680 Nii et see on kodeeritud nagu 1 ja 2. 567 00:25:29,680 --> 00:25:35,330 Aastal read 21 ja 22, me ilmselt välja printida x ja y, üks rea kohta. 568 00:25:35,330 --> 00:25:39,620 Siis on line 23, Väidan, ma vahetada neid väärtusi, dot, dot, dot. 569 00:25:39,620 --> 00:25:43,030 Ma ilmselt helistada funktsiooni Rida 24 nimega swap 570 00:25:43,030 --> 00:25:44,000 , mis võtab kaks argumenti. 571 00:25:44,000 --> 00:25:46,430 See on täiesti legit funktsioonide võtta kaks argumenti. 572 00:25:46,430 --> 00:25:48,220 Me oleme näinud printf seda juba. 573 00:25:48,220 --> 00:25:50,370 Nii swap ilmselt on X ja Y. 574 00:25:50,370 --> 00:25:53,010 Ja nagu nimigi ütleb, ma loodan, et see läheb 575 00:25:53,010 --> 00:25:54,320 swap nende kahe väärtuse. 576 00:25:54,320 --> 00:25:57,560 Nii siis ma väita real 25, vahetasid. 577 00:25:57,560 --> 00:26:01,570 Ja ma kordustrükk x ja y eeldusel, et 578 00:26:01,570 --> 00:26:02,830 nad on tõepoolest vahetasid. 579 00:26:02,830 --> 00:26:04,370 Aga kui ma tegelikult käivitada programm - 580 00:26:04,370 --> 00:26:06,060 lubage mul avada terminali aknas. 581 00:26:06,060 --> 00:26:07,750 Lubage mul teha buggy3. 582 00:26:07,750 --> 00:26:09,970 Nagu nimigi ütleb, see ei lõpe hästi. 583 00:26:09,970 --> 00:26:14,690 Sest kui ma Enter, märkate, et x on 1. 584 00:26:14,690 --> 00:26:15,720 y on 2. 585 00:26:15,720 --> 00:26:19,160 Ja veel lõpus programm, nad on ikka tegelikult sama. 586 00:26:19,160 --> 00:26:22,760 >> Nii põhineb demonstratsioon just Ken, mis tegelikult toimub? 587 00:26:22,760 --> 00:26:24,660 Noh, olgem sukelduda sellesse swap funktsiooni. 588 00:26:24,660 --> 00:26:25,800 See on super lühike. 589 00:26:25,800 --> 00:26:28,020 See on ainult paar rida koodi pikk. 590 00:26:28,020 --> 00:26:32,810 Aga mis on põhiprobleem põhineb lihtne lugu rääkis 591 00:26:32,810 --> 00:26:34,270 siin Ken? 592 00:26:34,270 --> 00:26:36,115 Miks on vahetustehingu katki? 593 00:26:36,115 --> 00:26:37,365 [Kuuldamatu] 594 00:26:39,840 --> 00:26:40,460 Täpselt. 595 00:26:40,460 --> 00:26:43,610 Nii et me ladustamiseks kuni koopia, mitte muutuja ise. 596 00:26:43,610 --> 00:26:46,810 Teisisõnu, swap ilmselt võtab kaks argumenti, int. 597 00:26:46,810 --> 00:26:49,370 Ja see on meelevaldselt nimetatakse a ja b. 598 00:26:49,370 --> 00:26:54,430 Ja siin üleval, ma olen sooritanud x ja y, mis on vastavalt 1 ja 2. 599 00:26:54,430 --> 00:26:56,580 Aga ma ei sõna otseses mõttes möödaminnes x. 600 00:26:56,580 --> 00:26:58,410 Ma ei sõna otseses mõttes möödaminnes y. 601 00:26:58,410 --> 00:27:01,230 Ma panen koopia x ja koopia y. 602 00:27:01,230 --> 00:27:05,180 See on nagu peaaegu nagu sa kopeerida ja kleepida vahetada väärtused 603 00:27:05,180 --> 00:27:07,440 sa tahad seda tõesti manipuleerida. 604 00:27:07,440 --> 00:27:11,970 Nii et kui see on nii, kui ma, programmi alustada täidesaatva 605 00:27:11,970 --> 00:27:14,140 rida 35, siis 36 - 606 00:27:14,140 --> 00:27:17,740 kui ma saan rida 37, siinkohal lugu, mis on väärtus? 607 00:27:20,740 --> 00:27:24,850 Sel hetkel lugu, liin 37, mis on väärtus selles punktis? 608 00:27:24,850 --> 00:27:25,980 Nii et see peaks just olema 1. 609 00:27:25,980 --> 00:27:26,170 Eks? 610 00:27:26,170 --> 00:27:29,100 Kuna x võeti vastu esimese argumendina. 611 00:27:29,100 --> 00:27:33,150 Ja see funktsioon lihtsalt suvaliselt helistab Esimese argumendiga. 612 00:27:33,150 --> 00:27:35,130 Samamoodi on y teine ​​argument. 613 00:27:35,130 --> 00:27:37,930 Ja see on lihtsalt suvaliselt helistades teine ​​argument b. 614 00:27:37,930 --> 00:27:40,510 >> Nüüd on see kahestumine on tegelikult üsna lihtsalt ja arusaadavalt. 615 00:27:40,510 --> 00:27:40,880 Mõtle sellele. 616 00:27:40,880 --> 00:27:42,980 Keegi meist pole täidetud isikule, kes kirjutas printf. 617 00:27:42,980 --> 00:27:49,880 Nii et kindlasti, tal pole aimugi, mida meie muutujate 30 aastat hiljem hakkavad 618 00:27:49,880 --> 00:27:50,710 mida nimetatakse. 619 00:27:50,710 --> 00:27:55,110 Nii et seal peab olema vahet, mida te nimetate muutujad 620 00:27:55,110 --> 00:27:59,960 funktsioonid olete kirjalikult ja mida te nimetate muutujate funktsioonid sa oled 621 00:27:59,960 --> 00:28:01,770 helistades või kasutades. 622 00:28:01,770 --> 00:28:05,120 Nii et teiste sõnadega, ma olen kirjutanud minu muutujaid x ja y. 623 00:28:05,120 --> 00:28:08,060 Aga kui keegi oli kirjutanud swap funktsiooni, ta kindlasti 624 00:28:08,060 --> 00:28:10,480 ei tea, mida mu muutujad nimetama hakatakse. 625 00:28:10,480 --> 00:28:13,850 Nii mõistavad, et see on põhjus, miks teil on see duaalsus nimed. 626 00:28:13,850 --> 00:28:16,800 Tehniliselt, ma võiks seda teha kokkusattumus. 627 00:28:16,800 --> 00:28:19,750 Aga nad ikkagi vastu võetud koopiana. 628 00:28:19,750 --> 00:28:22,940 See oleks lihtsalt puhas juhus esteetiliselt kui see inimene, kes kirjutas 629 00:28:22,940 --> 00:28:25,590 swap oli kasutanud samad nimed. 630 00:28:25,590 --> 00:28:25,930 >> Hea küll. 631 00:28:25,930 --> 00:28:29,010 Nii et siinkohal lugu, joon 37, 1. 632 00:28:29,010 --> 00:28:30,410 b on 2. 633 00:28:30,410 --> 00:28:32,040 Ja nüüd ma jätkan vahetada neid. 634 00:28:32,040 --> 00:28:34,730 Noh esiteks, las ma tegelikult seda teha palju lihtsamalt. 635 00:28:34,730 --> 00:28:36,500 Ma ei tea, mida need kolm rida koodi tegid. 636 00:28:36,500 --> 00:28:37,370 Lubage mul seda teha. 637 00:28:37,370 --> 00:28:38,850 b saab. 638 00:28:38,850 --> 00:28:40,170 saab b. 639 00:28:40,170 --> 00:28:41,450 Valmis. 640 00:28:41,450 --> 00:28:43,540 Miks on see purustatud, loogiliselt? 641 00:28:46,980 --> 00:28:48,590 See on selline intuitiivne asi, eks? 642 00:28:48,590 --> 00:28:50,640 Nii muutub b. 643 00:28:50,640 --> 00:28:52,450 Ja B muutub. 644 00:28:52,450 --> 00:28:55,410 Probleem on aga selles, et niipea kui rida 37 hukatakse, mis on 645 00:28:55,410 --> 00:28:58,170 väärtus ja b? 646 00:28:58,170 --> 00:28:59,070 Sama, 1. 647 00:28:59,070 --> 00:29:03,460 Kuna olete clobbered, nii et rääkida, sa oled muutunud b võrdseks. 648 00:29:03,460 --> 00:29:06,000 Nii et kui rida 37 täidetakse, on see suurepärane. 649 00:29:06,000 --> 00:29:09,940 Sul on nüüd kaks eksemplari nr 1 sees seda funktsiooni. 650 00:29:09,940 --> 00:29:14,720 Siis kui sa ütled kooskõlas 38, saab b, noh, sa oled natuke kruvitud. 651 00:29:14,720 --> 00:29:17,370 Sest sa oled lihtsalt määrates 1-1. 652 00:29:17,370 --> 00:29:20,400 Sa oled selline kaotanud väärtust sa hoolisid. 653 00:29:20,400 --> 00:29:22,910 >> Nii originaal versioon sellest, märkate, mida ma tegin. 654 00:29:22,910 --> 00:29:26,620 Ma asemel oli kolmas rida koodi, mis nägi välja selline. 655 00:29:26,620 --> 00:29:29,910 Kinnitan ajutise muutuja - tmp on väga levinud nimi 656 00:29:29,910 --> 00:29:31,240 Tähtajalise muutuja. 657 00:29:31,240 --> 00:29:34,280 See on int, sest see peab sobima, mida ma tahan teha koopia. 658 00:29:34,280 --> 00:29:39,720 Ma salvestada koopia sees tmp. Nii et kui rida 37 on täidetud, 659 00:29:39,720 --> 00:29:41,390 väärtus on - 660 00:29:41,390 --> 00:29:42,970 kiire meelerahu vaadata - 661 00:29:42,970 --> 00:29:43,460 1. 662 00:29:43,460 --> 00:29:45,780 Väärtus b on 2. 663 00:29:45,780 --> 00:29:48,470 Ja väärtus tmp on ka 1. 664 00:29:48,470 --> 00:29:51,470 Nii et nüüd ma täita rida 38. 665 00:29:51,470 --> 00:29:57,180 Nii et kui liini nr 38 hukatakse, võtab väärtuse kohta b. 666 00:29:57,180 --> 00:29:58,510 Ja b oli 2. 667 00:29:58,510 --> 00:30:00,500 Nii on nüüd 2. 668 00:30:00,500 --> 00:30:03,110 Nii et siinkohal lugu, on 2, b = 2, 669 00:30:03,110 --> 00:30:05,130 ja tmp on 1. 670 00:30:05,130 --> 00:30:09,330 Nii et nüüd loogiliselt, saame lihtsalt sulpsti tmp väärtust arvesse B. 671 00:30:09,330 --> 00:30:10,690 Ja me oleme valmis. 672 00:30:10,690 --> 00:30:12,170 >> Nii oleme lahendanud selle probleemi. 673 00:30:12,170 --> 00:30:16,040 Kahjuks, kui ma saan selle programmi selles vormis, see ei ole tegelikult vahetada 674 00:30:16,040 --> 00:30:17,700 mis tahes väärtusi. 675 00:30:17,700 --> 00:30:18,950 Aga peab olema selge, miks? 676 00:30:23,420 --> 00:30:26,310 Ma parandasin loogiline probleemi hetk tagasi. 677 00:30:26,310 --> 00:30:31,150 Aga jälle, kui ma saan selle programmi, x ja y ei muutu aasta lõpuks 678 00:30:31,150 --> 00:30:33,834 programmi täitmist. 679 00:30:33,834 --> 00:30:34,760 [Kuuldamatu] 680 00:30:34,760 --> 00:30:36,030 David J. Malan: Nii et me ei tagastata midagi. 681 00:30:36,030 --> 00:30:36,960 Nii et see on tõsi. 682 00:30:36,960 --> 00:30:39,880 Aga selgub, seal on natuke probleem siin, sest seni 683 00:30:39,880 --> 00:30:42,460 Ainuke asi, me oleme suutnud tagasi on üks asi. 684 00:30:42,460 --> 00:30:46,540 Ja see on piirang C. Võite ainult naasta tõesti üks väärtus, 685 00:30:46,540 --> 00:30:48,970 sel juhul, ma olen selline ummikus siin 686 00:30:48,970 --> 00:30:51,805 sest ma tagasi uue väärtuse x ja ma võin tagasi 687 00:30:51,805 --> 00:30:53,160 uus väärtus y. 688 00:30:53,160 --> 00:30:54,330 Aga ma tahan nii tagasi. 689 00:30:54,330 --> 00:30:58,010 Nii et tagasi ei lihtsat lahendust. 690 00:30:58,010 --> 00:30:59,770 Aga probleem põhimõtteliselt on miks? 691 00:30:59,770 --> 00:31:03,270 Mida me tegelikult vahetasid? 692 00:31:03,270 --> 00:31:04,010 a ja b. 693 00:31:04,010 --> 00:31:07,670 Aga a ja b on koopiad x ja y, mis tähendab, et me lihtsalt ei kõik see 694 00:31:07,670 --> 00:31:10,080 töö - me lihtsalt kulutada nagu kolm minutit rääkida swap 695 00:31:10,080 --> 00:31:11,680 funktsioon ja kõik need kolm muutujat. 696 00:31:11,680 --> 00:31:15,090 Ja see on suur, täiesti õige isoleeritult. 697 00:31:15,090 --> 00:31:20,230 Aga a ja b reguleerimisalasse üksnes on need read siin. 698 00:31:20,230 --> 00:31:24,130 Nii nagu loop, kui te deklareerite täisarv i sees jaoks 699 00:31:24,130 --> 00:31:27,400 loop - sarnaselt, kui sa kuulutatakse a ja b sees funktsiooni 700 00:31:27,400 --> 00:31:30,550 olete kirjutanud, nad on ainus kehtiv sees, et funktsioon. 701 00:31:30,550 --> 00:31:35,020 Mis tähendab, niipea kui swap tehakse täidesaatva ja läheme realt 24 702 00:31:35,020 --> 00:31:38,380 joon 25, x ja y ei ole üldse muutunud. 703 00:31:38,380 --> 00:31:42,580 Sa raiskasid palju aega vahetada koopiaid muutujad. 704 00:31:42,580 --> 00:31:46,490 >> Nii selgub, et lahendus on tegelikult mitte-ilmne. 705 00:31:46,490 --> 00:31:49,210 See ei ole päris piisav, et tagastada väärtused, sest saame 706 00:31:49,210 --> 00:31:50,320 ainult tagastama ühe väärtuse. 707 00:31:50,320 --> 00:31:53,370 Ja ma tõesti tahan vahetada nii x ja y samal ajal. 708 00:31:53,370 --> 00:31:55,020 Nii et me ei kavatse tagasi tulla seda. 709 00:31:55,020 --> 00:31:58,770 Aga nüüd aru, et küsimus põhimõtteliselt tuleneb asjaolust, 710 00:31:58,770 --> 00:32:00,660 et a ja b on koopiad. 711 00:32:00,660 --> 00:32:03,450 Ja nad on oma ulatuse. 712 00:32:03,450 --> 00:32:04,980 Noh, proovime seda probleemi lahendada mingil moel. 713 00:32:04,980 --> 00:32:09,200 Lubage mul tegelikult kerida siia tagasi ja avada, oletame, neljandat varianti 714 00:32:09,200 --> 00:32:11,170 Selle, buggy4. 715 00:32:11,170 --> 00:32:13,230 Ja mis sellest? 716 00:32:13,230 --> 00:32:16,690 See on sarnane, kuid lihtsam probleem vaadata enne kui me võtke torkehaav at 717 00:32:16,690 --> 00:32:17,530 lahendamiseks. 718 00:32:17,530 --> 00:32:19,440 See programm on kutsutud juurdekasvu. 719 00:32:19,440 --> 00:32:24,320 Ja see ilmselt käivitab x täisarv 1 rida 18. 720 00:32:24,320 --> 00:32:25,950 Siis ma väita, x on 1. 721 00:32:25,950 --> 00:32:28,020 Ma siis väita incrementing, dot, dot, dot. 722 00:32:28,020 --> 00:32:29,460 Ma siis helista juurdekasvu. 723 00:32:29,460 --> 00:32:33,480 Aga siis ridadel 22 ja 23, ma väidavad, et see on olnud suurendatakse. 724 00:32:33,480 --> 00:32:37,780 Väidan x on nüüd iganes see on, 2 arvatavasti. 725 00:32:37,780 --> 00:32:39,770 >> Aga see programm on lollakas. 726 00:32:39,770 --> 00:32:41,020 Milles probleem? 727 00:32:43,450 --> 00:32:44,418 Jah? 728 00:32:44,418 --> 00:32:45,668 [Kuuldamatu] 729 00:32:49,260 --> 00:32:49,850 David J. Malan: Täpselt. 730 00:32:49,850 --> 00:32:52,430 Nii et x on kuulutatud ilmselt eelarverea 18. 731 00:32:52,430 --> 00:32:54,410 See on sees peamine on looksulg. 732 00:32:54,410 --> 00:32:58,470 Nii lihtne vastus on see, et, noh, x on olemas siin. 733 00:32:58,470 --> 00:33:01,510 See ei ole real 32. 734 00:33:01,510 --> 00:33:03,710 Nii et see programm tegelikult isegi ei kompileerida. 735 00:33:03,710 --> 00:33:07,910 Kompilaator, kui üritan koostada see kood, läheb minu peale karjuma 736 00:33:07,910 --> 00:33:13,190 mõningate deklareerimata tunnus või midagi selle kohta. 737 00:33:13,190 --> 00:33:13,870 Tegelikult proovime. 738 00:33:13,870 --> 00:33:15,235 See on teha buggy4. 739 00:33:17,780 --> 00:33:18,190 Siin see on. 740 00:33:18,190 --> 00:33:22,030 Kasutage deklareerimata tunnus x real 32. 741 00:33:22,030 --> 00:33:25,700 Ja tegelikult, olgem selgem täna siin, nii et see on kasulik 742 00:33:25,700 --> 00:33:27,140 tööaega ja kodus. 743 00:33:27,140 --> 00:33:29,000 Pange tähele, et see on natuke cryptically kirjutatud. 744 00:33:29,000 --> 00:33:31,560 Kuid tõsiasi, et rõkkama on karjus meile, öeldes: 745 00:33:31,560 --> 00:33:36,970 buggy4.c: 32:5, on tegelikult kasulik. 746 00:33:36,970 --> 00:33:41,970 See tähendab, et viga on line 32 on sümboli positsioon viis. 747 00:33:41,970 --> 00:33:44,670 Nii et üks, kaks, kolm, neli, viis. 748 00:33:44,670 --> 00:33:46,640 See on tegelikult kui probleem on. 749 00:33:46,640 --> 00:33:49,710 Ja ka meeles pidada, kontoris tundi ja kodus, ma olen õnnelik siin. 750 00:33:49,710 --> 00:33:50,740 Mul on üks viga. 751 00:33:50,740 --> 00:33:52,660 See saab olema suhteliselt lihtne kindlaks määrata. 752 00:33:52,660 --> 00:33:56,220 Aga kui sa saad terve ekraani täis valdav veateateid taas 753 00:33:56,220 --> 00:33:59,240 mõistma, et alumise võiks lihtsalt olla põhjustatud 754 00:33:59,240 --> 00:34:00,320 tähtsaim ones. 755 00:34:00,320 --> 00:34:03,560 Nii et alati Chase ette oma vigadest ülevalt alla. 756 00:34:03,560 --> 00:34:06,720 Sest seal võib olla ainult pärgühendusega efekti oletada te 757 00:34:06,720 --> 00:34:09,030 on nii rohkem probleeme kui sa tegelikult teha. 758 00:34:09,030 --> 00:34:14,989 >> Niisiis, kuidas me saaksime seda parandada, kui minu eesmärk on juurdekasvu x? 759 00:34:14,989 --> 00:34:15,370 Mis see on? 760 00:34:15,370 --> 00:34:15,620 Okei. 761 00:34:15,620 --> 00:34:16,679 Nii et me saame x globaalne. 762 00:34:16,679 --> 00:34:18,860 Võtame otsetee, et ma hoiatanud varem. 763 00:34:18,860 --> 00:34:20,550 Aga kuradit, me lihtsalt vaja kiiresti lahendada. 764 00:34:20,550 --> 00:34:23,949 Nii et ütleme lihtsalt int x siin. 765 00:34:23,949 --> 00:34:25,600 See teeb x globaalne. 766 00:34:25,600 --> 00:34:28,460 Nii et nüüd peamine on juurdepääs sellele. 767 00:34:28,460 --> 00:34:31,780 Ja juurdekasv on juurdepääs sellele. 768 00:34:31,780 --> 00:34:33,860 Ja las ma edasi minna ja koostada selle nüüd. 769 00:34:33,860 --> 00:34:36,330 Tee buggy4, Enter. 770 00:34:36,330 --> 00:34:37,440 Tundub, et koguda nüüd. 771 00:34:37,440 --> 00:34:40,949 Lähme sõitma buggy4, ja tundub, et tegelikult töötavad. 772 00:34:40,949 --> 00:34:42,780 Nüüd see on üks neist asjadest - 773 00:34:42,780 --> 00:34:45,870 tee nagu ma ütlen, mitte nagu mina, nagu ma olen lihtsalt teinud siin. 774 00:34:45,870 --> 00:34:49,239 Sest üldiselt meie programmid ei hakka palju huvitavam ja 775 00:34:49,239 --> 00:34:50,440 palju enam kui see. 776 00:34:50,440 --> 00:34:53,199 Ja kui teie lahendus elu probleemid on lihtsalt ah, pange kõik 777 00:34:53,199 --> 00:34:57,550 muutujad ülaosas oma faili väga kiiresti teha programme saada 778 00:34:57,550 --> 00:34:59,700 hirmsalt raske juhtida. 779 00:34:59,700 --> 00:35:02,050 See muutub raskemaks mõelda uusi muutujate nimed. 780 00:35:02,050 --> 00:35:05,240 See muutub raskemaks mõista, mida muutuja mida teeb. 781 00:35:05,240 --> 00:35:08,250 >> Ja nii üldiselt, et see ei ole hea lahendus. 782 00:35:08,250 --> 00:35:09,780 Teeme seda parem. 783 00:35:09,780 --> 00:35:11,920 Me ei taha kasutada globaalse muutuja siit. 784 00:35:11,920 --> 00:35:14,050 Ma ei taha, et juurdekasvu x. 785 00:35:14,050 --> 00:35:16,050 Nii et ma võiks ilmselt - 786 00:35:16,050 --> 00:35:18,450 aasta lõpus päev, see on selline rumal lugu, sest me lihtsalt seda teha. 787 00:35:18,450 --> 00:35:22,050 Aga kui ma ei teadnud, et käitaja, ega ma ei lubatud 788 00:35:22,050 --> 00:35:27,700 muuta see peamiseks ise, kuidas ma võiksin rakendada Ken siia, see 789 00:35:27,700 --> 00:35:31,450 aega mitte kuubik kuid juurdekasvu? 790 00:35:31,450 --> 00:35:32,700 Kuidas muuta seda asja siin? 791 00:35:32,700 --> 00:35:33,025 Jah. 792 00:35:33,025 --> 00:35:34,275 [Kuuldamatu] 793 00:35:37,430 --> 00:35:38,000 David J. Malan: Okei, hästi. 794 00:35:38,000 --> 00:35:40,490 Miks ma ei läbida x? 795 00:35:40,490 --> 00:35:44,390 Ja siis mitte tagastada, miks ei ma lihtsalt ei tagasipöördumist x + 1? 796 00:35:44,390 --> 00:35:46,370 Nüüd veel paar asjad peavad muutuma siin. 797 00:35:46,370 --> 00:35:47,530 Ma olen õigel teel. 798 00:35:47,530 --> 00:35:48,910 Mida veel ma pean näpistama? 799 00:35:48,910 --> 00:35:49,470 Keegi teine. 800 00:35:49,470 --> 00:35:49,882 Jah? 801 00:35:49,882 --> 00:35:51,530 [Kuuldamatu] 802 00:35:51,530 --> 00:35:53,520 David J. Malan: mul on vaja muuta tüübi tagastamise juurdekasvu 803 00:35:53,520 --> 00:35:54,590 sest see ei ole tühine. 804 00:35:54,590 --> 00:35:56,650 Tühjus ei tähenda midagi teada tagastatakse. 805 00:35:56,650 --> 00:35:57,600 Aga selge, et nüüd on. 806 00:35:57,600 --> 00:36:01,280 Nii et see peab muutma int olema kooskõlas ükskõik 807 00:36:01,280 --> 00:36:02,580 Ma olen tegelikult tagasi. 808 00:36:02,580 --> 00:36:04,580 >> Nüüd midagi on ikka lollakas siin. 809 00:36:04,580 --> 00:36:04,982 Jah? 810 00:36:04,982 --> 00:36:06,590 [Kuuldamatu] 811 00:36:06,590 --> 00:36:07,630 David J. Malan: Nii et ma pean juurdekasvu x? 812 00:36:07,630 --> 00:36:10,336 [Kuuldamatu] 813 00:36:10,336 --> 00:36:11,880 David J. Malan: Ah, et mul on vaja läbida x. 814 00:36:11,880 --> 00:36:13,300 Nii et ma pean seda tegema siin. 815 00:36:17,590 --> 00:36:19,690 Nii prototüüp, ma pean seda muuta siin. 816 00:36:19,690 --> 00:36:21,290 Nii et see peab muutuma int. 817 00:36:21,290 --> 00:36:22,820 See peab muutuma - 818 00:36:22,820 --> 00:36:23,670 hmm. 819 00:36:23,670 --> 00:36:24,710 Tegelikult on mul viga siin. 820 00:36:24,710 --> 00:36:25,780 Olgem määrata selle ühe esimesena. 821 00:36:25,780 --> 00:36:27,990 Mida peaks see tegelikult olema? 822 00:36:27,990 --> 00:36:29,330 Nii see ju olema int midagi. 823 00:36:29,330 --> 00:36:30,340 See võib olla x. 824 00:36:30,340 --> 00:36:33,120 Aga ausalt öeldes, kui te alustada kutsudes kõiki oma muutujad x, see läheb aina 825 00:36:33,120 --> 00:36:35,250 vähem selge, mis on mis. 826 00:36:35,250 --> 00:36:38,210 Nii et olgem lihtsalt suvaliselt valida erinevate nimereeglistik minu 827 00:36:38,210 --> 00:36:40,220 helper funktsioone, funktsioonid Ma kirjutan. 828 00:36:40,220 --> 00:36:41,100 Me kutsume seda. 829 00:36:41,100 --> 00:36:44,500 Või me võiksime seda nimetada - olgem nimetame seda even_number olla isegi selgemalt. 830 00:36:44,500 --> 00:36:47,610 Siis ma pean tagasi arvust olenemata on pluss 1. 831 00:36:47,610 --> 00:36:49,720 Ja nüüd ma pean muutma veel üks asi siin üleval ja üks 832 00:36:49,720 --> 00:36:50,700 Teine asi siin üleval. 833 00:36:50,700 --> 00:36:54,150 Mida ma pean muutma on line 21 esimene? 834 00:36:54,150 --> 00:36:55,390 Pean määrata selle x. 835 00:36:55,390 --> 00:36:57,480 Nii et ma ei saa lihtsalt helistada juurdekasvu x. 836 00:36:57,480 --> 00:37:01,000 Pean mäleta vastust, muutes väärtus x, 837 00:37:01,000 --> 00:37:02,020 vasakul pool. 838 00:37:02,020 --> 00:37:04,930 Ja kuigi x on nüüd vasakul ja paremal, see on täiesti trahvi, sest 839 00:37:04,930 --> 00:37:08,370 paremal pool saab teostada esimene siis saab plopped arvesse vasakul 840 00:37:08,370 --> 00:37:10,240 Samas asi, x käesolevas asjas. 841 00:37:10,240 --> 00:37:11,900 Ja siis lõpuks, see on lihtne määrata nüüd. 842 00:37:11,900 --> 00:37:15,080 See peaks lihtsalt mängu mis on allapoole. 843 00:37:15,080 --> 00:37:17,120 Int arv. 844 00:37:17,120 --> 00:37:17,320 >> Hea küll. 845 00:37:17,320 --> 00:37:20,290 Nii et terve hulk muudatusi tõesti loll funktsioon. 846 00:37:20,290 --> 00:37:24,250 Aga esindaja asju, mida me järjest teha tahad. 847 00:37:24,250 --> 00:37:25,490 Nii et buggy4. 848 00:37:25,490 --> 00:37:26,485 Olen silmamunad kusagil. 849 00:37:26,485 --> 00:37:27,520 Oh jumal. 850 00:37:27,520 --> 00:37:29,660 Viis vigu, nagu, 6-line programm. 851 00:37:29,660 --> 00:37:36,500 Nii et mis viga on line 18, iseloomu 5? 852 00:37:36,500 --> 00:37:36,970 Hea küll. 853 00:37:36,970 --> 00:37:39,330 Nii et ma pean deklareerima int. 854 00:37:39,330 --> 00:37:39,630 Hea küll. 855 00:37:39,630 --> 00:37:41,790 Nii et vaatame, terve hunnik muid vigu. 856 00:37:41,790 --> 00:37:42,230 Oh my god. 857 00:37:42,230 --> 00:37:43,880 19, 18, 21. 858 00:37:43,880 --> 00:37:46,020 Aga jälle, lihtsalt selge ekraan - 859 00:37:46,020 --> 00:37:48,660 Kontroll L siin - ja re-run rõkkama. 860 00:37:48,660 --> 00:37:51,340 Nii 5 probleemid on tegelikult just see üks. 861 00:37:51,340 --> 00:37:53,500 Nii et nüüd lähme jooksma buggy4, Enter. 862 00:37:53,500 --> 00:37:54,150 Whew. 863 00:37:54,150 --> 00:37:57,434 x on suurendatakse õigesti. 864 00:37:57,434 --> 00:37:58,420 >> Hea küll. 865 00:37:58,420 --> 00:38:01,700 Kõik küsimused selle kohta, kuidas juurdekasvu numbrid? 866 00:38:01,700 --> 00:38:02,896 Jah? 867 00:38:02,896 --> 00:38:06,864 SPEAKER 2: Miks on nii, et saate lihtsalt muuta x number muutuja 868 00:38:06,864 --> 00:38:08,860 nimetada ja see teab, mida sa silmas pead? 869 00:38:08,860 --> 00:38:09,600 David J. Malan: Hea küsimus. 870 00:38:09,600 --> 00:38:13,130 Kuidas on nii, et ma ei lihtsalt muuta x arvu ja programm teadma 871 00:38:13,130 --> 00:38:13,990 kohe? 872 00:38:13,990 --> 00:38:16,120 Nii et taas, ma arvan et kui see abstraktsioon. 873 00:38:16,120 --> 00:38:20,110 Nii et kui ma olen pea-ja Ken on kronoloogiline, ausalt, mind ei huvita 874 00:38:20,110 --> 00:38:21,540 Mis Ken kutsub oma iPad. 875 00:38:21,540 --> 00:38:25,350 Mind ei huvita, mida ta nimetab kõike, mis on pistmist tema rakendamine 876 00:38:25,350 --> 00:38:26,550 Selle funktsionaalsus. 877 00:38:26,550 --> 00:38:32,130 Nii et see on rakendamise üksikasju, et mina, peamine, ärge 878 00:38:32,130 --> 00:38:33,010 pea hooli. 879 00:38:33,010 --> 00:38:37,440 Ja nii lihtsalt muuta see järjekindlalt sees funktsiooni number siin 880 00:38:37,440 --> 00:38:41,340 ja number siin, on kõik see võtab nii kaua, kui ma kompileeri. 881 00:38:41,340 --> 00:38:43,820 See on omamoodi nagu kui sa arvad - paljud meist, neile, teile juhi 882 00:38:43,820 --> 00:38:46,590 litsentsid, kes olen sõita, või kui olete isegi sõidetakse auto - 883 00:38:46,590 --> 00:38:50,710 enamik meist ei tea, kuidas auto töötab all kapuuts. 884 00:38:50,710 --> 00:38:54,710 Ja sõna otseses mõttes, kui te avada kapuuts, enamik meist - mina kaasa arvatud - 885 00:38:54,710 --> 00:38:56,580 ei kavatse tea, mida me vaatame. 886 00:38:56,580 --> 00:38:58,850 Selline nagu sa võid tunda koos selliseid asju kohe. 887 00:38:58,850 --> 00:39:01,380 Aga me tõesti ei pea hooli sellest, kuidas auto töötab. 888 00:39:01,380 --> 00:39:05,000 Me ei pea hooli, mida kõik vardad ja kolvid ja kaablid sees 889 00:39:05,000 --> 00:39:07,700 auto on tegelikult seda. 890 00:39:07,700 --> 00:39:11,360 >> Nii et midagi, mida te nimetate kolb ei ole oluline 891 00:39:11,360 --> 00:39:11,920 siin antud juhul. 892 00:39:11,920 --> 00:39:12,490 Sama mõte. 893 00:39:12,490 --> 00:39:12,670 Jah? 894 00:39:12,670 --> 00:39:13,920 [Kuuldamatu] 895 00:39:25,250 --> 00:39:29,530 David J. Malan: Kui oleks rohkem kasutab muutuja xa Hetk tagasi 896 00:39:29,530 --> 00:39:32,220 te, programmeerija, oleks muuta neid kõikjal. 897 00:39:32,220 --> 00:39:35,230 Või võid sõna otseses mõttes teha Fail Menüü ja seejärel Otsi / Asenda, 898 00:39:35,230 --> 00:39:36,270 midagi sellist. 899 00:39:36,270 --> 00:39:40,110 Aga sa ei kavatse on teha need muudatused ise. 900 00:39:40,110 --> 00:39:41,200 Sa pead olema järjekindel. 901 00:39:41,200 --> 00:39:42,450 [Kuuldamatu] 902 00:39:47,200 --> 00:39:48,960 David J. Malan: kindlas järjekorras nagu siin? 903 00:39:48,960 --> 00:39:52,660 Kui see oli int teine ​​number? 904 00:39:52,660 --> 00:39:52,940 Jah. 905 00:39:52,940 --> 00:39:56,430 Nii et küsimustes, kui helistate funktsiooni. 906 00:39:56,430 --> 00:40:00,350 Nii et kui ma kutsusid juurdekasvu siin midagi koma midagi, 907 00:40:00,350 --> 00:40:01,400 seal on otsene kaardistamine. 908 00:40:01,400 --> 00:40:04,490 Esimene muutuja, mis iganes seda nimetatakse, on valmistatud koopia esimese 909 00:40:04,490 --> 00:40:05,480 argument siin. 910 00:40:05,480 --> 00:40:07,280 Vabandame, see ei peaks olema sulgudes. 911 00:40:07,280 --> 00:40:09,300 Teine argument ridade järele teine. 912 00:40:09,300 --> 00:40:11,220 >> Nii et, jah, küsimustes. 913 00:40:11,220 --> 00:40:11,490 Hea küll. 914 00:40:11,490 --> 00:40:13,360 Vabandust võtsin pikk tee sinna jõuda. 915 00:40:13,360 --> 00:40:14,610 Muud küsimused? 916 00:40:16,460 --> 00:40:16,850 Hea küll. 917 00:40:16,850 --> 00:40:20,300 Nii et vaatame, kui me ei saa maalida pilti sellest, mis tegelikult toimub 918 00:40:20,300 --> 00:40:22,160 siin all kapuuts, nii rääkida. 919 00:40:22,160 --> 00:40:26,310 Nii et see on ristkülik, mis võivad viidata arvuti mälu. 920 00:40:26,310 --> 00:40:31,240 Nii et isegi kui sul pole aimugi, kuidas mälu töötab või kuidas RAM töötab, vähemalt 921 00:40:31,240 --> 00:40:33,590 eeldada, et teil on kobarad see nendel päevadel. 922 00:40:33,590 --> 00:40:34,740 Sul megabaiti ta. 923 00:40:34,740 --> 00:40:35,760 Sul gigabaiti seda. 924 00:40:35,760 --> 00:40:40,690 Ja me teame nädal nulli, et bait on just see, mida? 925 00:40:40,690 --> 00:40:41,280 8 bitti. 926 00:40:41,280 --> 00:40:42,730 Õige, nii 8 nullidega ja ones. 927 00:40:42,730 --> 00:40:46,300 Nii et kui arvuti on kaarik RAM, kaks kontserti RAM nendel päevadel, teil on 928 00:40:46,300 --> 00:40:54,450 miljardit eurot ehk 2 miljardit baiti mälu, või umbes 8 miljardit või 16000000000 929 00:40:54,450 --> 00:40:56,560 bitti, sees arvuti. 930 00:40:56,560 --> 00:40:59,710 Nüüd erinevalt vähe Karvane Willy näiteks, see ei ole magnetilisi osakesi 931 00:40:59,710 --> 00:41:00,560 tavaliselt enam. 932 00:41:00,560 --> 00:41:04,470 Üha sülearvutid vähemalt, see on SSD ketastele SSDs, et 933 00:41:04,470 --> 00:41:05,560 lihtsalt ei ole liikuvaid osi. 934 00:41:05,560 --> 00:41:06,710 See kõik on elektrooniline. 935 00:41:06,710 --> 00:41:08,070 See kõik elektri aluseks. 936 00:41:08,070 --> 00:41:12,360 Nii et arvan küll, selle ristküliku kui lihtsalt esindavad üks või kaks 937 00:41:12,360 --> 00:41:13,930 gigabaiti mälu, et teil on. 938 00:41:13,930 --> 00:41:15,500 >> Nii et see on patakas mälu. 939 00:41:15,500 --> 00:41:20,460 Nüüd on maailm infotehnoloogia on omamoodi piiretega tükkideks 940 00:41:20,460 --> 00:41:22,570 mälu teha erinevaid asju. 941 00:41:22,570 --> 00:41:25,930 Nii näiteks, kui see on teie arvuti RAM - nagu soovitas 942 00:41:25,930 --> 00:41:30,400 ristkülik seal - Selgub, et tavapäraselt ülaosas oma RAM, nii 943 00:41:30,400 --> 00:41:33,170 rääkida, on üldiselt see, mida nimetatakse tekstiosa. 944 00:41:33,170 --> 00:41:35,910 Need on nullidega ja need, mida on koostanud. 945 00:41:35,910 --> 00:41:39,040 Nii et kui me vaatasime all kapuuts, mida a.out on kõik 946 00:41:39,040 --> 00:41:40,360 nullidega ja neist - 947 00:41:40,360 --> 00:41:44,000 kui te käivitate programmi, need nullidega ja need laaditakse teie raske 948 00:41:44,000 --> 00:41:46,290 sõitke midagi, mida nimetatakse RAM. 949 00:41:46,290 --> 00:41:48,950 Ja RAM, nad panna ülaosas. 950 00:41:48,950 --> 00:41:50,330 Nüüd vahepeal on teil muid asju. 951 00:41:50,330 --> 00:41:53,060 Vormindatud andmed, uninitialized andmed. 952 00:41:53,060 --> 00:41:56,440 Need kaks vaalu mälu viidata globaalsed muutujad, mis 953 00:41:56,440 --> 00:41:57,530 te ei kasutavad sageli. 954 00:41:57,530 --> 00:42:00,630 Aga mõnikord, kui te seda teete, nad lõpuks sinna samuti. 955 00:42:00,630 --> 00:42:01,620 Siis on mõned muud kraami. 956 00:42:01,620 --> 00:42:04,130 Keskkonnamuutujaid, mida me ei kuluta palju aega. 957 00:42:04,130 --> 00:42:06,120 Aga siis kaks olulist asja, mis tulevad tagasi kogu selle 958 00:42:06,120 --> 00:42:08,130 semester, korstnat ja hunnik. 959 00:42:08,130 --> 00:42:12,280 >> Nii et enamik arvuti mälu on reserveeritud sõites programmi 960 00:42:12,280 --> 00:42:14,880 midagi, mida nimetatakse korstnat ja midagi, mida nimetatakse hunnik. 961 00:42:14,880 --> 00:42:16,940 Ja me ei hakka rääkima hunnik täna, kuid me 962 00:42:16,940 --> 00:42:18,180 rääkida pinu. 963 00:42:18,180 --> 00:42:22,910 Ja pakk on mõeldud võluda välimusega nagu söögisaal 964 00:42:22,910 --> 00:42:26,120 jahu plaate Ema Maja või kus iganes juhtub olema, kus 965 00:42:26,120 --> 00:42:27,810 söögisaal personal puhastada neid iga päev. 966 00:42:27,810 --> 00:42:30,180 Nad korstnat neid kuni põranda üles. 967 00:42:30,180 --> 00:42:33,800 Ja täpselt samamoodi mälu on see idee panna midagi 968 00:42:33,800 --> 00:42:36,740 Kestab, pannes midagi virna, pannes midagi pinu. 969 00:42:36,740 --> 00:42:38,000 Ja mida me öelda? 970 00:42:38,000 --> 00:42:41,430 Noh, olgem suumida ainult alumises pooles seda pilti, arvuti 971 00:42:41,430 --> 00:42:43,990 RAM, esitades järgmised. 972 00:42:43,990 --> 00:42:48,300 Selgub, et kui te käivitate programmi nagu a.out või tere, olenemata 973 00:42:48,300 --> 00:42:49,920 programm on, et olete kirjutanud, 974 00:42:49,920 --> 00:42:53,030 jälle need nullidega ja need laaditakse arvuti kõvakettalt - mille on 975 00:42:53,030 --> 00:42:56,190 pikaajaliseks säilitamiseks, jääb sinna ka siis, kui te tõmmake alati pistikust - 976 00:42:56,190 --> 00:42:57,220 laaditud RAM. 977 00:42:57,220 --> 00:42:59,020 RAM on kiirem kui kõvakettad. 978 00:42:59,020 --> 00:43:00,700 See on väiksem kui kõvakettad. 979 00:43:00,700 --> 00:43:03,490 Aga see, kus programmid elavad samas näed neid. 980 00:43:03,490 --> 00:43:06,380 >> Nii et te topeltklõps programmi Mac või PC - see on laaditud 981 00:43:06,380 --> 00:43:07,750 kõvaketas mällu. 982 00:43:07,750 --> 00:43:11,760 Niipea, kui see on laaditud RAM, nullidega ja need lähevad kell viis üles, 983 00:43:11,760 --> 00:43:13,130 nn tekstiosa. 984 00:43:13,130 --> 00:43:17,040 Aga siis kohe, kui teie programm tegelikult käivitub, peamine 985 00:43:17,040 --> 00:43:18,140 funktsiooni nimetatakse. 986 00:43:18,140 --> 00:43:21,070 Ja peamine, nagu oleme näinud, on sageli lokaalsed muutujad. 987 00:43:21,070 --> 00:43:24,560 Ja see on ints ja keelpillidele ja tähed jms. 988 00:43:24,560 --> 00:43:28,300 Seega, kui teie programm, et olete kirjutanud või programm, mis teil on 989 00:43:28,300 --> 00:43:33,680 topelt klõpsatud kasutatud mõned muutujad sees peamine, nad lõpuks kell 990 00:43:33,680 --> 00:43:37,020 alt oma pakk mälu, kui nii võib öelda. 991 00:43:37,020 --> 00:43:39,160 Nüüd konkreetsemalt, mida see tegelikult tähendab? 992 00:43:39,160 --> 00:43:44,080 See lihtsalt tähendab, et kui me ei kavatse numbrile asjad - 993 00:43:44,080 --> 00:43:49,380 kui me ei kavatse arv baiti RAM arvuti, märkate, et 994 00:43:49,380 --> 00:43:51,650 see võib olla baidi number null. 995 00:43:51,650 --> 00:43:56,130 See võib olla baidi number üks, kaks, kolm, neli, viis, kuus, kõik 996 00:43:56,130 --> 00:43:57,290 tee kuni meeldib - 997 00:43:57,290 --> 00:44:01,520 2000000000 oleks kõik viis kuni seal tipus. 998 00:44:01,520 --> 00:44:05,960 Nii et teiste sõnadega, kui me räägime RAM või mälu poolest baiti, 999 00:44:05,960 --> 00:44:09,680 tähendab lihtsalt, et keegi on otsustanud, mida nummerdada iga 1000 00:44:09,680 --> 00:44:11,110 need mäluhulka. 1001 00:44:11,110 --> 00:44:16,950 >> Nii et kui teil on vaja 32 bitti jaoks int, või vajate 8 bitti jaoks char, kus 1002 00:44:16,950 --> 00:44:18,320 nad jõuavad mälu? 1003 00:44:18,320 --> 00:44:20,650 Noh põhimõtteliselt, nad lihtsalt lõpuks allosas see 1004 00:44:20,650 --> 00:44:21,780 asi nimega pinu. 1005 00:44:21,780 --> 00:44:25,670 Aga mis on huvitav nüüd on siis peamised kutsub funktsioon. 1006 00:44:25,670 --> 00:44:28,830 Oletame funktsioon nimega foo, lihtsalt suvaline nimi. 1007 00:44:28,830 --> 00:44:32,480 Mis juhtub on see peamine on allosas see pakk mälu. 1008 00:44:32,480 --> 00:44:35,630 Foo nüüd pannakse peal peamised mällu. 1009 00:44:35,630 --> 00:44:40,020 Nii et kõik kohalikud muutujad, et suva on lõpuks omamoodi kontseptuaalselt üle 1010 00:44:40,020 --> 00:44:40,770 need, peamised. 1011 00:44:40,770 --> 00:44:46,920 Kui foo helistab teisele funktsioon nimega baar, need muutujad sattusin. 1012 00:44:46,920 --> 00:44:49,790 Kui Kõnede midagi muud, siin, siin, siin. 1013 00:44:49,790 --> 00:44:53,900 Mis siis huvitavat programmi käivitamist on see, et kui te helistate funktsiooni, 1014 00:44:53,900 --> 00:44:57,720 ja kui need ülesanded kutsuvad funktsioone, ja kui need ülesanded kutsuvad funktsioone, 1015 00:44:57,720 --> 00:45:00,980 teil ehitada see pakk funktsioonide mälu. 1016 00:45:00,980 --> 00:45:06,740 Ja alles siis, kui funktsioon tagastab sa alustada saada, et mälu tagasi. 1017 00:45:06,740 --> 00:45:11,190 Nii et üks lihtsamaid viise otsa mälu arvutiprogramm peab 1018 00:45:11,190 --> 00:45:14,170 kirjutada funktsioone, mis kunagi tagasi. 1019 00:45:14,170 --> 00:45:16,650 >> Nii näiteks olgem näidata nii palju koos 1020 00:45:16,650 --> 00:45:18,460 tahtlikult lollakas programm. 1021 00:45:18,460 --> 00:45:24,690 Lubage mul minna ja teha # include , int main (void). 1022 00:45:24,690 --> 00:45:31,270 Ja ma teen samal ajal (2> 1), mis ilmselt ei ole kunagi 1023 00:45:31,270 --> 00:45:33,370 muuta meid. 1024 00:45:33,370 --> 00:45:37,720 Ja lubage mul minna nüüd ja teha printf. 1025 00:45:37,720 --> 00:45:39,950 Tegelikult, see saab olema vähem visuaalselt huvitav. 1026 00:45:39,950 --> 00:45:40,460 Teeme seda. 1027 00:45:40,460 --> 00:45:44,840 INT (i = 0; i> 0). 1028 00:45:44,840 --> 00:45:49,740 Teeme seda viga, i + +. 1029 00:45:49,740 --> 00:45:51,150 Ja ärgem printf siin. 1030 00:45:51,150 --> 00:45:52,550 Olgem tava, mida ma jutlustada. 1031 00:45:52,550 --> 00:45:54,090 Teeme meetod siin. 1032 00:45:54,090 --> 00:46:00,860 Void kooris, ja me ütleme int i. 1033 00:46:00,860 --> 00:46:02,295 Ja siis ma lähen ütlen, printf - 1034 00:46:04,871 --> 00:46:06,790 oh, teeme selle huvitavamaks. 1035 00:46:06,790 --> 00:46:08,350 Olgem tegelikult ei prindi üldse midagi. 1036 00:46:08,350 --> 00:46:10,530 Lihtsalt teeme seda. 1037 00:46:10,530 --> 00:46:11,780 Refrään (i). 1038 00:46:16,630 --> 00:46:17,000 >> Hea küll. 1039 00:46:17,000 --> 00:46:20,040 Nii et see on lollakas, sest miks? 1040 00:46:20,040 --> 00:46:22,850 Ma kujutan seda ette kui ma lähen, sest programm ei ole tegelikult midagi teha 1041 00:46:22,850 --> 00:46:23,420 huvi. 1042 00:46:23,420 --> 00:46:24,670 Aga see pole eesmärk. 1043 00:46:24,670 --> 00:46:30,440 Eesmärk on kirjutada programm, mille peamine funktsioon teeb seda, mida ilmselt? 1044 00:46:30,440 --> 00:46:31,370 Helista ise. 1045 00:46:31,370 --> 00:46:32,600 Ja tegelikult, me ei pea silmus. 1046 00:46:32,600 --> 00:46:36,070 Olgem isegi lihtsustada seda lihtsalt, et mitte unustada tõesti 1047 00:46:36,070 --> 00:46:37,310 põhiline viga. 1048 00:46:37,310 --> 00:46:39,200 Peamised kõned koori laulma mõned koori. 1049 00:46:39,200 --> 00:46:41,760 Siis ma tegin midagi rumalat, ja mul oli refrään kõne koori, sest ma eeldasin 1050 00:46:41,760 --> 00:46:43,550 keegi pidi seda rakendada võibolla. 1051 00:46:43,550 --> 00:46:45,960 Ja nüüd see ei kavatse koostada veel. 1052 00:46:45,960 --> 00:46:48,340 Ma pean tegema mida? 1053 00:46:48,340 --> 00:46:49,700 Vajan prototüüp, mäletan. 1054 00:46:49,700 --> 00:46:55,520 Nii et ma pean olema siin tühine koori (int i);. 1055 00:46:55,520 --> 00:46:57,470 >> Nii et nüüd, kui ma lähen siia alla - 1056 00:46:57,470 --> 00:46:59,030 tegelikult, olgem kasutada suuremas aknas. 1057 00:46:59,030 --> 00:47:01,670 Lähme edasi ja teha refrään. 1058 00:47:01,670 --> 00:47:06,000 Lähme edasi ja teha refrään. 1059 00:47:06,000 --> 00:47:08,302 Kasutage tuvastamata väljamängija i. 1060 00:47:08,302 --> 00:47:09,860 Oh, see oli loll. 1061 00:47:09,860 --> 00:47:11,020 Me ei vaja argument. 1062 00:47:11,020 --> 00:47:13,680 Lihtsalt teeme seda. 1063 00:47:13,680 --> 00:47:14,550 Oleks meil hakkas sel viisil. 1064 00:47:14,550 --> 00:47:16,160 Oleks olnud palju lihtsam programmi kirjutada. 1065 00:47:16,160 --> 00:47:20,100 Nii seal. 1066 00:47:20,100 --> 00:47:23,870 Lähme nüüd üle mu terminaliakent, uue ringi rõkkama. 1067 00:47:23,870 --> 00:47:26,900 Ja siin me läheme. 1068 00:47:26,900 --> 00:47:28,020 See oli tõesti kiire. 1069 00:47:28,020 --> 00:47:30,690 Mis tegelikult juhtus, kuigi? 1070 00:47:30,690 --> 00:47:33,430 Noh, nüüd ma lisada trüki rea, et saaksime näha. 1071 00:47:33,430 --> 00:47:41,330 Nii et lubage mul öelda printf, oletame, et ma olen siin. 1072 00:47:41,330 --> 00:47:43,470 Okei, ei muutujad, jätame selle niimoodi. 1073 00:47:43,470 --> 00:47:44,860 Lubage mul uuesti käivitada teha. 1074 00:47:44,860 --> 00:47:47,940 Las ma uue ringi koori. 1075 00:47:47,940 --> 00:47:51,235 Ja tule. 1076 00:47:53,880 --> 00:47:55,130 Lase edasi. 1077 00:47:57,630 --> 00:47:59,750 Nagu kõrvale, miks on see ole veel kokku varisenud? 1078 00:47:59,750 --> 00:48:02,050 Killustatust süü juhtus ülikiire enne. 1079 00:48:02,050 --> 00:48:04,250 [Kuuldamatu] 1080 00:48:04,250 --> 00:48:04,830 David J. Malan: Täpselt. 1081 00:48:04,830 --> 00:48:06,350 Nii et see võtab aega printida. 1082 00:48:06,350 --> 00:48:08,370 See lihtsalt võtab rohkem tööd arvuti osa. 1083 00:48:08,370 --> 00:48:09,550 Ja siin see on. 1084 00:48:09,550 --> 00:48:10,620 Segmenteerimine süü. 1085 00:48:10,620 --> 00:48:12,140 >> Nii märkate, kuidas kiire programme. 1086 00:48:12,140 --> 00:48:14,110 Kui te ei prindi midagi, super kiire. 1087 00:48:14,110 --> 00:48:18,100 Aga saime ikka seda killustatust süü, sest mis juhtub? 1088 00:48:18,100 --> 00:48:21,310 Noh, kui te arvate, kuidas teie arvuti mälus on sätestatud, seda 1089 00:48:21,310 --> 00:48:22,890 juhtub olema peamine. 1090 00:48:22,890 --> 00:48:23,800 Aga siin - 1091 00:48:23,800 --> 00:48:28,670 Ütleme nii, see refrään, ja olgem nimetame seda koori. 1092 00:48:28,670 --> 00:48:33,420 Ja nüüd, kui ma teen oma esteetika õigus, see on lihtsalt ütlen kooris, 1093 00:48:33,420 --> 00:48:38,060 kooris, koori, koori, koori, koori, koori, reklaami nauseum. 1094 00:48:38,060 --> 00:48:39,920 Ja lõpuks, mis juhtub? 1095 00:48:39,920 --> 00:48:46,690 Kui suur pilt sõna otseses mõttes on see, mis lihtsalt juhtub kontseptuaalselt? 1096 00:48:46,690 --> 00:48:48,320 Korstnat ületamise hunnik. 1097 00:48:48,320 --> 00:48:52,400 Või veel hullem, sa lihtsalt ületanud kõik, sealhulgas teksti segment, mis on 1098 00:48:52,400 --> 00:48:54,530 nullidega ja need, mis kujutavad oma programmi. 1099 00:48:54,530 --> 00:48:56,690 Lühidalt, see on lihtsalt super, super halb. 1100 00:48:56,690 --> 00:48:56,860 Eks? 1101 00:48:56,860 --> 00:48:58,620 Teie programm on spiraled kontrolli. 1102 00:48:58,620 --> 00:49:02,840 Sa kasutad nii rohkem mälu kui sa ette kõik, sest loll 1103 00:49:02,840 --> 00:49:03,920 viga sel juhul. 1104 00:49:03,920 --> 00:49:08,160 Või antud juhul väga teadlikult teinud funktsiooni kutsutakse ise. 1105 00:49:08,160 --> 00:49:09,210 Nüüd ei ole see kõik halb. 1106 00:49:09,210 --> 00:49:12,540 Funktsioonid kutsuvad end tegelikult on suurriik 1107 00:49:12,540 --> 00:49:13,700 kui te kasutate seda õigesti. 1108 00:49:13,700 --> 00:49:15,650 Ma ei ole kasutanud seda õigesti siin. 1109 00:49:15,650 --> 00:49:16,940 >> Nii et see ei ole kõik halb. 1110 00:49:16,940 --> 00:49:20,620 Kuid tõsiasi, et ma ei ole kunagi tegelikult ärge kutsuge ise on põhiline 1111 00:49:20,620 --> 00:49:23,050 nõrkus siin selle programmi. 1112 00:49:23,050 --> 00:49:25,090 Nii et kui me läheme selle kõigega? 1113 00:49:25,090 --> 00:49:26,230 Noh, mis tegelikult toimub? 1114 00:49:26,230 --> 00:49:30,010 Kui ma kutsun juurdekasvu funktsioon, nagu me tegime ka neid näiteid, 1115 00:49:30,010 --> 00:49:33,290 Mul on raha nagu 1, et annan sisse 1116 00:49:33,290 --> 00:49:35,820 Ma läbida koopia number üks. 1117 00:49:35,820 --> 00:49:37,080 Nii et järgmine juhtub. 1118 00:49:37,080 --> 00:49:40,390 Nii et lähme sisse juurdekasvu näiteks. 1119 00:49:40,390 --> 00:49:44,230 Ja see kutt siin. 1120 00:49:44,230 --> 00:49:46,800 Nii et siin on, mis tegelikult toimub. 1121 00:49:46,800 --> 00:49:50,770 Kui ma helistasin juurdekasvu, ja ma läbida x, piltlikult mis on 1122 00:49:50,770 --> 00:49:53,660 siin toimub on see - 1123 00:49:53,660 --> 00:50:00,240 kui mul on väärtus 1 ladustatud siin, ja ma tegelikult helistada juurdekasv, mis 1124 00:50:00,240 --> 00:50:02,680 on nüüdsest koori - 1125 00:50:02,680 --> 00:50:04,010 Jah, see on viskamine mind siin maha. 1126 00:50:04,010 --> 00:50:06,750 Nii et olgem nimetame seda juurdekasvu. 1127 00:50:06,750 --> 00:50:09,420 Ja me ei tea, mis see järgmine funktsioon saab olema. 1128 00:50:09,420 --> 00:50:14,270 Nii et mis tegelikult toimub on siin kusagil peamine, mul patakas 1129 00:50:14,270 --> 00:50:16,670 mälu, mis on hoidmiseks number 1. 1130 00:50:16,670 --> 00:50:19,730 Kui ma kutsun juurdekasvu, ma kasutan teise tüki mälu, aga nüüd ma 1131 00:50:19,730 --> 00:50:20,840 on koopia 1. 1132 00:50:20,840 --> 00:50:25,480 Kui ma juurdekasvu, et väärtus, see saab 2 - jubedalt kirjutatud 1133 00:50:25,480 --> 00:50:26,420 ekraan siin. 1134 00:50:26,420 --> 00:50:30,550 Aga siis, mis juhtub niipea kui juurdekasvu tulu? 1135 00:50:30,550 --> 00:50:34,610 See mälu lihtsalt saab kätte tagasi operatsioonisüsteemi, mis tähendab kõiki 1136 00:50:34,610 --> 00:50:37,470 sa oled teinud midagi kasulikku. 1137 00:50:37,470 --> 00:50:43,460 Üks, mis oli algselt esitatud peamised on ikka tegelikult olemas. 1138 00:50:43,460 --> 00:50:44,650 >> Nii et kui me läheme seda? 1139 00:50:44,650 --> 00:50:49,400 Noh, tuleb välja, et mälu sul on see seljad jada 1140 00:50:49,400 --> 00:50:50,940 baiti, mida saab panna asju sisse 1141 00:50:50,940 --> 00:50:53,760 Ja selgub, et me oleme juba näinud midagi, mis hõlmab pannes 1142 00:50:53,760 --> 00:50:55,100 asjad seljad et seljad. 1143 00:50:55,100 --> 00:51:00,170 Mis on string, mis põhineb nädalal ja nüüd nädal kaks? 1144 00:51:00,170 --> 00:51:01,840 Nii et see on lihtsalt kogumise tähemärki. 1145 00:51:01,840 --> 00:51:05,290 Nii selgub, just nagu saate panna numbrid mällu, samamoodi saab 1146 00:51:05,290 --> 00:51:06,900 panna märke mälu. 1147 00:51:06,900 --> 00:51:09,810 Ja kui me alustada pannes tähemärki mälu tagasi seljad kuni 1148 00:51:09,810 --> 00:51:12,800 tagasi, selgub, et kasutades kõige lihtsamaid asju nagu loop või 1149 00:51:12,800 --> 00:51:14,510 samas silmus, saame kinnitada, - 1150 00:51:14,510 --> 00:51:17,130 vasakult paremale üle märkide jada - 1151 00:51:17,130 --> 00:51:20,720 ja alustada massaging neid erinevaid märke täielikult. 1152 00:51:20,720 --> 00:51:25,550 Võib saada B. võiks saada C. Nii et lõppkokkuvõttes saame 1153 00:51:25,550 --> 00:51:28,830 Inglise lause, et tegelikult on mõistlik ja teisendada iga nimetatud 1154 00:51:28,830 --> 00:51:32,440 tähed ükshaaval jalgsi läbi meie arvuti mällu jäänud 1155 00:51:32,440 --> 00:51:34,300 õigus tegelikult varjata. 1156 00:51:34,300 --> 00:51:36,590 >> Võtame meie viieminutiline paus siin, ja kui me tagasi tuleme, siis me 1157 00:51:36,590 --> 00:51:39,060 alustada seda protsessi skrambleerimise andmed. 1158 00:51:41,640 --> 00:51:43,180 >> Hea küll. 1159 00:51:43,180 --> 00:51:48,440 Nii et enne kui me sukelduda mõned krüpto ja neid asju nimetatakse massiivid, las ma 1160 00:51:48,440 --> 00:51:51,610 pausi küsimusi, sest ma tunnen, et ma tõesti selline segane mõned 1161 00:51:51,610 --> 00:51:52,230 neid teemasid. 1162 00:51:52,230 --> 00:51:53,940 Nii et olgem määrata nüüd, kui saame. 1163 00:51:53,940 --> 00:51:56,480 Nii et me lihtsalt rääkisime tagasi väärtused. 1164 00:51:56,480 --> 00:51:58,630 Me rääkisime argumendid. 1165 00:51:58,630 --> 00:52:02,330 Ja me rääkisime seda mõistet, mis me tuleme tagasi sisse nädalat 1166 00:52:02,330 --> 00:52:07,140 tulema, vaatamise mälu terve hunnik neid kuhjata 1167 00:52:07,140 --> 00:52:08,540 plaate, nii rääkida. 1168 00:52:08,540 --> 00:52:13,460 Alt ülesse, nii et iga salve, et saab panna virna esindab 1169 00:52:13,460 --> 00:52:15,160 funktsioon, mis on praegu nimetatakse. 1170 00:52:17,970 --> 00:52:20,300 Kas on küsimusi? 1171 00:52:20,300 --> 00:52:22,890 Niisiis, kuidas umbes - las ma proovin küsimuse esitamist. 1172 00:52:22,890 --> 00:52:25,520 Hoian Soovida seda, kuid nüüd see on - you've kõik näinud poisi nägu. 1173 00:52:25,520 --> 00:52:27,020 Nii et me tuleme tagasi selle. 1174 00:52:27,020 --> 00:52:29,700 >> Nii et lubage mul küsida küsimus siia. 1175 00:52:29,700 --> 00:52:34,810 Lubage mul seda lihtsustada tagasi see oli enne mõned meie varasem Q & A. 1176 00:52:34,810 --> 00:52:41,730 Ja asjaolu, et juurdekasv on avatud sulgudes, int arv, suletud 1177 00:52:41,730 --> 00:52:42,260 sulgudes. 1178 00:52:42,260 --> 00:52:46,370 Mis int number koosneb? 1179 00:52:46,370 --> 00:52:47,250 [Kuuldamatu] 1180 00:52:47,250 --> 00:52:47,870 David J. Malan: argument. 1181 00:52:47,870 --> 00:52:50,732 Okei, aga mis on argument? 1182 00:52:50,732 --> 00:52:51,620 [Kuuldamatu] 1183 00:52:51,620 --> 00:52:52,500 David J. Malan: Vabandust, mis see on? 1184 00:52:52,500 --> 00:52:53,150 SPEAKER 3: Midagi te kaotate sisse 1185 00:52:53,150 --> 00:52:53,570 David J. Malan: Okei. 1186 00:52:53,570 --> 00:52:54,780 Nii et midagi, mis te kaotate sisse 1187 00:52:54,780 --> 00:52:56,560 Ja üldiselt see on lihtsalt sisend. 1188 00:52:56,560 --> 00:52:59,860 Kui kirjutate funktsioon ja mis funktsiooni eesmärk elus on teha 1189 00:52:59,860 --> 00:53:03,290 midagi veidi erinev iga kord, kui seda kasutada, siis ainus viis, 1190 00:53:03,290 --> 00:53:07,710 sel juhtuda tõesti tundub olevat seda anda oma panuse, nii et see 1191 00:53:07,710 --> 00:53:10,180 saab teha midagi erinevat selle sisendi iga kord. 1192 00:53:10,180 --> 00:53:13,590 >> Nii et teil on vaja täpsustada kahte asja, kui funktsioon võtab sisendeid. 1193 00:53:13,590 --> 00:53:17,240 Sa pead täpsustama nimi, mida soovite anda selle sisend, puhtalt 1194 00:53:17,240 --> 00:53:20,790 oma mugavuse nii et saad vaadata seda funktsiooni, mida 1195 00:53:20,790 --> 00:53:23,610 ise kirjutad, nagu ma siin tegin real 32. 1196 00:53:23,610 --> 00:53:27,840 Aga siis tuleb ka määrata oma tüüp, sest C on programmeerimiskeel 1197 00:53:27,840 --> 00:53:28,840 et lihtsalt nõuab 1198 00:53:28,840 --> 00:53:31,810 et kui sa tahad muutuja, peate ütleb arvuti, mida 1199 00:53:31,810 --> 00:53:32,790 andmetüüp on, 1200 00:53:32,790 --> 00:53:35,540 suures osas nii, et ta teab, kui palju bitti 1201 00:53:35,540 --> 00:53:37,230 eraldada, et muutuja. 1202 00:53:37,230 --> 00:53:38,600 Sest see võib olla 6 - 1203 00:53:38,600 --> 00:53:39,990 Vabandust, see ei ole kuue. 1204 00:53:39,990 --> 00:53:41,050 See võib olla 16. 1205 00:53:41,050 --> 00:53:41,630 See võib olla 8. 1206 00:53:41,630 --> 00:53:44,410 See võib olla 32, isegi 64. 1207 00:53:44,410 --> 00:53:45,820 Aga arvuti peab teadma. 1208 00:53:45,820 --> 00:53:49,110 Nüüd int vasakul servas näitab, mida seevastu? 1209 00:53:52,825 --> 00:53:53,780 [Kuuldamatu] 1210 00:53:53,780 --> 00:53:54,570 David J. Malan: Mis see on? 1211 00:53:54,570 --> 00:53:55,390 [Kuuldamatu] 1212 00:53:55,390 --> 00:53:57,920 David J. Malan: tüüpi funktsioon ja täpsemalt 1213 00:53:57,920 --> 00:53:59,755 tüüpi toodangut. 1214 00:53:59,755 --> 00:54:00,220 Õigus. 1215 00:54:00,220 --> 00:54:04,220 Nii et arvestades asja sulgudes tähistab oma panuse, kui üldse, 1216 00:54:04,220 --> 00:54:06,640 asi vasakule esindab oma toodangut. 1217 00:54:06,640 --> 00:54:10,560 Ja sel juhul, juurdekasv ilmselt tagastab int. 1218 00:54:10,560 --> 00:54:14,590 Ja nii int on tüübi tagastamise seda funktsiooni. 1219 00:54:14,590 --> 00:54:16,090 >> Mis see tähendab, et vastutasuks? 1220 00:54:16,090 --> 00:54:19,810 Sõna otseses mõttes, kui kasutate märksõna tagasi. 1221 00:54:19,810 --> 00:54:24,640 Ja siis, kui see, mida sa naased paremal märksõna on 1222 00:54:24,640 --> 00:54:28,340 täisarv, siis see on tõepoolest kooskõlas sellega, mida oleme lubanud. 1223 00:54:28,340 --> 00:54:31,110 Sa ei saa teha midagi sellist - 1224 00:54:31,110 --> 00:54:32,280 hello, world - 1225 00:54:32,280 --> 00:54:33,500 sest see on string. 1226 00:54:33,500 --> 00:54:35,440 Muidugi ei ole täisarv. 1227 00:54:35,440 --> 00:54:40,450 Nii lühike, koorem on tõesti meile, programmeerija, et olla täpne 1228 00:54:40,450 --> 00:54:44,730 et mida me tagasi ja siis tegelikult minna selle tagasi. 1229 00:54:44,730 --> 00:54:49,030 Ja siis teha tad rohkem selge kontekstis - 1230 00:54:49,030 --> 00:54:50,080 seal ta on uuesti. 1231 00:54:50,080 --> 00:54:51,060 Kontekstis - 1232 00:54:51,060 --> 00:54:52,830 suur üllatus tulemas üks hetk. 1233 00:54:52,830 --> 00:54:57,720 Kontekstis siin nüüd on, et arvuti mälu on taas 1234 00:54:57,720 --> 00:54:59,070 gigabyte kaks gigabaiti, mida iganes. 1235 00:54:59,070 --> 00:54:59,630 Ehk rohkem. 1236 00:54:59,630 --> 00:55:00,540 Võib-olla on vähem. 1237 00:55:00,540 --> 00:55:03,750 Aga arvuti peab seda on eri osades. 1238 00:55:03,750 --> 00:55:04,860 Midagi läheb sinna alla. 1239 00:55:04,860 --> 00:55:06,020 Midagi muud läheb sinna. 1240 00:55:06,020 --> 00:55:07,540 Erinevad asjad lähevad keskel. 1241 00:55:07,540 --> 00:55:09,300 Ja täna me lihtsalt hakkame ütlen seda lugu. 1242 00:55:09,300 --> 00:55:11,130 >> Aga me tuleme tagasi selle aja jooksul. 1243 00:55:11,130 --> 00:55:15,000 Praegu ainult tükk mälu me tõesti hoolivad on tekstiosa 1244 00:55:15,000 --> 00:55:17,160 sest see lihtsalt näitab nulli ja need 1245 00:55:17,160 --> 00:55:18,460 et rõkkama on väljastada. 1246 00:55:18,460 --> 00:55:21,570 Nii et kui sa jooksed käsk klaviatuuri nagu a.out, või sa topelt 1247 00:55:21,570 --> 00:55:25,350 kliki ikooni Mac OS või Windows, oma programmi laadida oma raske 1248 00:55:25,350 --> 00:55:26,930 sõitke RAM. 1249 00:55:26,930 --> 00:55:30,850 Ja see on plopped ülaosas oma arvuti RAM, nii rääkida. 1250 00:55:30,850 --> 00:55:35,470 Nüüd vahepeal oma programmi käivitub ja peamised läheb kutsutud 1251 00:55:35,470 --> 00:55:39,240 programmi sa kirjutasid või programmi Microsoft või Apple kirjutas, tema 1252 00:55:39,240 --> 00:55:42,930 kohalike muutujate lõpuks seal allosas arvuti mälu. 1253 00:55:42,930 --> 00:55:46,490 Aga kui peamine helistab teisele funktsioon, mis ise on muutujate või 1254 00:55:46,490 --> 00:55:48,340 argumente, nad lõpuks kohale. 1255 00:55:48,340 --> 00:55:50,670 Ja kui see funktsioon nõuab midagi, nad lõpuks kohal, 1256 00:55:50,670 --> 00:55:51,840 kõrgemal, selle kohal. 1257 00:55:51,840 --> 00:55:56,100 Ja alles siis, kui funktsioon on teinud täidesaatva teeb virna plaate, nii et 1258 00:55:56,100 --> 00:55:58,320 rääkida, hakkama saada väiksem ja väiksem. 1259 00:55:58,320 --> 00:56:03,370 Ja see on siis, lühikokkuvõte, seletab, kui helistate kuubik - 1260 00:56:03,370 --> 00:56:04,660 või helistate juurdekasvu - 1261 00:56:04,660 --> 00:56:06,490 sa läbides koopia väärtus. 1262 00:56:06,490 --> 00:56:09,840 Ja mida see tähendab piltlikult, et sa sõna otseses mõttes kirjalikult 1263 00:56:09,840 --> 00:56:14,540 number 1 teises osas mälu, muutes selle 1 kuni 2, kui tegemist on 1264 00:56:14,540 --> 00:56:15,360 juurdekasvu - 1265 00:56:15,360 --> 00:56:17,450 või 8, kui tegemist on kuubik - 1266 00:56:17,450 --> 00:56:21,450 ja siis visata, et mälu ära niipea, kui juurdekasv või kuubik 1267 00:56:21,450 --> 00:56:23,410 tagastab funktsioon. 1268 00:56:23,410 --> 00:56:24,267 >> Küsimus. 1269 00:56:24,267 --> 00:56:25,517 [Kuuldamatu] 1270 00:56:28,090 --> 00:56:29,970 David J. Malan: Kui - globaalsed muutujad hoitakse mis on 1271 00:56:29,970 --> 00:56:32,960 Praegu nimetatakse vormindatud andmed või uninitialized andmed. 1272 00:56:32,960 --> 00:56:35,900 Erinevus on, kui sul on globaalne muutuja, ja siis anna see 1273 00:56:35,900 --> 00:56:39,530 kohe väärtus võrdusmärki, see jõuab ülaosas seal. 1274 00:56:39,530 --> 00:56:43,390 Ja kui sa ütlesid int x semikooloniga koos mingit väärtust, see jõuab kergelt 1275 00:56:43,390 --> 00:56:46,670 madalam RAM lihtsalt kokkuleppeliselt. 1276 00:56:46,670 --> 00:56:49,308 Muud küsimused. 1277 00:56:49,308 --> 00:56:49,750 Hea küll. 1278 00:56:49,750 --> 00:56:53,040 >> Nii et see pilt tulevad tagasi, kui saame võimsamaks mida me saame teha 1279 00:56:53,040 --> 00:56:53,830 koos arvutiga. 1280 00:56:53,830 --> 00:56:58,790 Aga nüüd, olgem on lühike sissejuhatus krüptograafia, konkreetset tüüpi 1281 00:56:58,790 --> 00:57:01,910 krüptograafia see ei lahenda kõiki maailma probleeme, aga ei lahenda 1282 00:57:01,910 --> 00:57:02,480 mõned neist. 1283 00:57:02,480 --> 00:57:06,090 Sel juhul on meil midagi, mida nimetatakse salajase võtme krüptograafia. 1284 00:57:06,090 --> 00:57:10,430 Ja saladus võtme krüptograafia, nagu nimigi ütleb, saab oma turvalisuse 1285 00:57:10,430 --> 00:57:11,330 alates saladus. 1286 00:57:11,330 --> 00:57:14,720 Nii näiteks, kui sa oled tagasi algkooli ja sa möödaminnes 1287 00:57:14,720 --> 00:57:18,040 väike saladus armastus kirja poiss või tüdruk sa oled purustamine kohta - kui te 1288 00:57:18,040 --> 00:57:20,820 tahtsin edasi, et läbi publiku, siis ilmselt ei kirjuta 1289 00:57:20,820 --> 00:57:24,120 selline märkus inglise või mis iganes teie emakeel, vaid te 1290 00:57:24,120 --> 00:57:25,800 võib varjata seda. 1291 00:57:25,800 --> 00:57:27,820 Või võite lihtsalt saata sõnum nendel päevadel. 1292 00:57:27,820 --> 00:57:30,310 Aga sa võiksid tegelikult andke neile teadmiseks kogu klassiruumis. 1293 00:57:30,310 --> 00:57:33,820 Ja seda teha turvaliselt, nii et teie sõbrad ja õpetaja 1294 00:57:33,820 --> 00:57:36,820 ei tea, mida olete kirjalikult, siis võib tulla üsna lihtne 1295 00:57:36,820 --> 00:57:37,800 algoritm - 1296 00:57:37,800 --> 00:57:39,290 noor kuigi võite olla - 1297 00:57:39,290 --> 00:57:40,780 lihtsalt rüselus sõnu. 1298 00:57:40,780 --> 00:57:44,390 Nii et selle asemel kirjalikult, sa võiksid kirjutada B. Selle asemel, B, sa võiksid kirjutada 1299 00:57:44,390 --> 00:57:46,670 C. asemel C, sa võiksid kirjutada D, ja nii edasi. 1300 00:57:46,670 --> 00:57:50,020 Või siis võiks tulla keerukamaid tõlge tähed 1301 00:57:50,020 --> 00:57:51,300 erinevate tähtedega. 1302 00:57:51,300 --> 00:57:55,440 Aga saak on poiss või tüdruk, kellele saadate teadmiseks vaja 1303 00:57:55,440 --> 00:57:56,850 tea midagi. 1304 00:57:56,850 --> 00:57:59,620 Mis on mis, ilmselt? 1305 00:57:59,620 --> 00:58:01,400 Nagu, mida teie saladus on. 1306 00:58:01,400 --> 00:58:04,620 Nagu, mis see on kaardistamise vahel As ja Bs ja Cs ja DS? 1307 00:58:04,620 --> 00:58:08,780 Kas see on lihtsalt lisada üks, nii et rääkida, et iga tähti minna 1308 00:58:08,780 --> 00:58:09,730 Punktist A punkti B, B C? 1309 00:58:09,730 --> 00:58:11,350 Kas see keerulisem kui see? 1310 00:58:11,350 --> 00:58:16,450 Nii et teie ja teie purustada pea olema see saladus teavet. 1311 00:58:16,450 --> 00:58:18,170 Aga seal on mingi saak-22 siin. 1312 00:58:18,170 --> 00:58:20,760 Kui see on esimene kord, kui saadate selle armastuskirja kaudu 1313 00:58:20,760 --> 00:58:25,590 klass, kuidas on see poiss või tüdruk läheb teada, mis saladus isegi on? 1314 00:58:25,590 --> 00:58:28,450 Nii salajane võti krüpto ei lahenda kõiki maailma probleeme. 1315 00:58:28,450 --> 00:58:30,490 Ja seal on tegelikult suhe, et me tuleme tagasi suunas 1316 00:58:30,490 --> 00:58:31,370 semestri lõpuks. 1317 00:58:31,370 --> 00:58:35,970 >> Samamoodi on keegi meist ilmselt kunagi saatnud - 1318 00:58:35,970 --> 00:58:39,453 Samamoodi ei enamik meist ei tea keegi, mis töötab näiteks kell 1319 00:58:39,453 --> 00:58:40,300 Amazon.com. 1320 00:58:40,300 --> 00:58:43,130 Ja veel, paljud meist on ilmselt ostetud kraami Amazon.com. 1321 00:58:43,130 --> 00:58:45,670 Ja me oleme õpetanud oletada, et nende e-kaubanduse 1322 00:58:45,670 --> 00:58:47,060 tehingud on turvaline. 1323 00:58:47,060 --> 00:58:47,210 Eks? 1324 00:58:47,210 --> 00:58:49,310 URL ilmselt ütleb https. 1325 00:58:49,310 --> 00:58:51,590 Seal on võibolla rumal vähe tabaluku ikoon kuskil. 1326 00:58:51,590 --> 00:58:54,680 Seal on mingi krüptograafia kindlustada oma krediitkaardi andmed 1327 00:58:54,680 --> 00:58:56,980 Teie ja Amazon.com. 1328 00:58:56,980 --> 00:59:00,410 Ja veel, kui krüptograafia hõlmab teades mõned salajased, ja veel ma ei 1329 00:59:00,410 --> 00:59:03,330 tea keegi Amazonist ja ma kindlasti ei korraldatud mingeid 1330 00:59:03,330 --> 00:59:07,350 saladus kellegagi Amazonist, kuidas on minu arvutis või minu brauser seda teed? 1331 00:59:07,350 --> 00:59:10,100 Noh, selgub seal on teist liiki krüptograafia kokku, et lahendada 1332 00:59:10,100 --> 00:59:10,740 et probleem. 1333 00:59:10,740 --> 00:59:13,610 Aga täna, me keskenduma lihtne, kus saab korraldada ka 1334 00:59:13,610 --> 00:59:18,480 eelnevalt teada mõned saladus, nagu pluss 1 või mõned kaardistamise vahel As ja Bs. 1335 00:59:18,480 --> 00:59:20,710 >> Ja protsess krüptograafia tähendab tavaliselt seda. 1336 00:59:20,710 --> 00:59:23,550 Sul on mõned lihttekstina kujutatud siin vasakul. 1337 00:59:23,550 --> 00:59:26,260 Sa kestab see läbi mingi algoritm või menetluse 1338 00:59:26,260 --> 00:59:27,670 krüpteerimiseks ta. 1339 00:59:27,670 --> 00:59:31,390 Ehk on see lihtsalt muutub B, B muutub C. Ja siis lõpuks koos 1340 00:59:31,390 --> 00:59:32,260 salakiri teksti. 1341 00:59:32,260 --> 00:59:36,450 Vahepeal, kui oma kiindumuste saab saladus tähele, ta peab siis 1342 00:59:36,450 --> 00:59:39,950 dekrüpteerida üldiselt tagurdades, et algoritm, et saada 1343 00:59:39,950 --> 00:59:41,640 tagasi lihttekstina. 1344 00:59:41,640 --> 00:59:43,860 Nüüd on füüsilise inkarnatsiooni seda. 1345 00:59:43,860 --> 00:59:46,720 Näiteks see on väike saladus decoder ring. 1346 00:59:46,720 --> 00:59:50,060 Ja see on ring selles mõttes, et seal on kaks valib siin. 1347 00:59:50,060 --> 00:59:53,630 Väljastpoolt perifeeria see asi, seal on tähed A kuni Z, 1348 00:59:53,630 --> 00:59:55,110 kuigi nad on suvalises järjekorras. 1349 00:59:55,110 --> 00:59:58,410 Ja sees, seal on tegelikult mõned numbrid, nii et selle 1350 00:59:58,410 --> 01:00:02,940 ring saab omamoodi omakorda väljaspool, kuid mitte sees, et rivistama 1351 01:00:02,940 --> 01:00:04,110 numbrid tähed. 1352 01:00:04,110 --> 01:00:08,290 Ja klipp sa parasjagu näha - millest mõned olete näinud 24/7 1353 01:00:08,290 --> 01:00:11,120 umbes Jõulud filmi nimega jõulujutt. 1354 01:00:11,120 --> 01:00:16,050 Sa näed, et vähe Ralphie oli nii innukas, et aru saada, mis vähe harva 1355 01:00:16,050 --> 01:00:19,810 Annie salajane sõnum oli temale, mis oli edastatud, ma arvan, 1356 01:00:19,810 --> 01:00:22,810 moodustavad arvuliste sõnumeid seerianumber kasti. 1357 01:00:22,810 --> 01:00:26,760 Ja sa pidid kogunema kõik vähe kaarte, mis tuli 1358 01:00:26,760 --> 01:00:27,480 aastal teravilja kasti. 1359 01:00:27,480 --> 01:00:28,320 Sul oli posti neid sisse 1360 01:00:28,320 --> 01:00:31,060 Sa pidid tagasi minema salajane decoder ring, nii et saate lõpuks aru 1361 01:00:31,060 --> 01:00:34,190 välja, mida kaardistamine on vahel tähti ja numbreid, 1362 01:00:34,190 --> 01:00:35,420 või tähed ja tähed. 1363 01:00:35,420 --> 01:00:39,790 Nii et ma annan teile selle lühikese klipi jõulujutt motiveerida pset 2 ja 1364 01:00:39,790 --> 01:00:42,340 meie arutelu, hetk, massiivid. 1365 01:00:42,340 --> 01:00:43,773 Nii et siin on meil Ralphie. 1366 01:00:43,773 --> 01:00:44,126 >> [VIDEO PLAYBACK] 1367 01:00:44,126 --> 01:00:47,470 -Olgu teada, et igaüht, et Ralph Parker nimetatakse 1368 01:00:47,470 --> 01:00:50,690 liige Little harva Annie Secret Circle ning tal on õigus kõik 1369 01:00:50,690 --> 01:00:53,500 kiitusega ja kasu esinevad lisa. 1370 01:00:53,500 --> 01:00:56,040 Allkirjastatud, Little harva Annie. 1371 01:00:56,040 --> 01:00:58,730 Allkirjastas Pierre Andre! 1372 01:00:58,730 --> 01:01:00,150 Tindiga! 1373 01:01:00,150 --> 01:01:02,910 Kiitusega ja hüvitised, juba üheksa-aastaselt. 1374 01:01:09,970 --> 01:01:10,730 Tule, lähme edasi. 1375 01:01:10,730 --> 01:01:15,000 Ma ei pea kõik see jazz umbes salakaubavedajate ja piraatidest. 1376 01:01:15,000 --> 01:01:17,624 -Kuula homme õhtul sõlmida seiklus Black 1377 01:01:17,624 --> 01:01:19,710 Piraatlaeva. 1378 01:01:19,710 --> 01:01:23,380 Nüüd on aeg Annie salajane sõnum teile kohal 1379 01:01:23,380 --> 01:01:25,670 Euroopa Secret Circle. 1380 01:01:25,670 --> 01:01:30,260 Pea meeles, lapsed, vaid liikmed Annie Secret Circle saab dekodeerida 1381 01:01:30,260 --> 01:01:31,660 Annie salajane sõnum. 1382 01:01:31,660 --> 01:01:36,230 Pea meeles, et Annie on sõltuvalt teile. 1383 01:01:36,230 --> 01:01:38,720 Määra oma sõrmed B2. 1384 01:01:38,720 --> 01:01:41,040 Siin on sõnum. 1385 01:01:41,040 --> 01:01:42,470 12, 11 - 1386 01:01:42,470 --> 01:01:46,000 -Ma olen minu esimene salajane kohtumine. 1387 01:01:46,000 --> 01:01:49,440 -14, 11, 18, 16 - 1388 01:01:49,440 --> 01:01:51,700 -Pierre oli suur hääl täna. 1389 01:01:51,700 --> 01:01:54,890 Ma võiksin öelda, et täna sõnum oli tõepoolest oluline. 1390 01:01:54,890 --> 01:01:56,750 -3, 25. 1391 01:01:56,750 --> 01:01:58,590 See on sõnum Annie ise. 1392 01:01:58,590 --> 01:01:59,840 Pea meeles, et ei räägi kellelegi. 1393 01:02:04,570 --> 01:02:08,750 -90 Hetk, ma olen ainult tuba majast, kus poiss üheksa 1394 01:02:08,750 --> 01:02:12,980 võiks istuda privaatsust ja dekodeerida. 1395 01:02:12,980 --> 01:02:17,130 Aha, B. Ma läksin järgmise. 1396 01:02:17,130 --> 01:02:20,330 E. esimene sõna on olla. 1397 01:02:20,330 --> 01:02:22,670 S. See tuli lihtsam nüüd. 1398 01:02:22,670 --> 01:02:24,590 U. 1399 01:02:24,590 --> 01:02:26,510 -Oh, tule, Ralphie. 1400 01:02:26,510 --> 01:02:28,430 Ma pean minema. 1401 01:02:28,430 --> 01:02:30,350 -Tulen kohe alla, ma. 1402 01:02:30,350 --> 01:02:33,720 -Gee viuhti. 1403 01:02:33,720 --> 01:02:38,270 -T, O. Kindlasti. 1404 01:02:38,270 --> 01:02:40,000 Kindlasti mida? 1405 01:02:40,000 --> 01:02:42,105 Mis oli Little harva Annie üritab öelda? 1406 01:02:42,105 --> 01:02:43,095 Kindlasti mida? 1407 01:02:43,095 --> 01:02:43,590 -Ralphie! 1408 01:02:43,590 --> 01:02:44,580 Randy on saanud minna. 1409 01:02:44,580 --> 01:02:45,570 Kas sa palun tule välja? 1410 01:02:45,570 --> 01:02:46,560 -Olgu, ma. 1411 01:02:46,560 --> 01:02:48,540 Ma tulen kohe välja. 1412 01:02:48,540 --> 01:02:50,580 -Ma olin jõudmas nüüd. 1413 01:02:50,580 --> 01:02:52,550 Pinge oli kohutav. 1414 01:02:52,550 --> 01:02:53,355 Mis see oli? 1415 01:02:53,355 --> 01:02:56,315 Saatus planeet võib vaekausil. 1416 01:02:56,315 --> 01:02:56,790 -Ralphie! 1417 01:02:56,790 --> 01:02:59,165 Randy peab minema. 1418 01:02:59,165 --> 01:03:02,310 -Tulen kohe välja, taevas appi. 1419 01:03:02,310 --> 01:03:04,000 -Gee, peaaegu seal. 1420 01:03:04,000 --> 01:03:05,180 Minu sõrmed lendas. 1421 01:03:05,180 --> 01:03:07,150 Minu arvates oli terasest lõksu. 1422 01:03:07,150 --> 01:03:08,790 Igast poorist vibreerima. 1423 01:03:08,790 --> 01:03:10,040 See oli peaaegu selge. 1424 01:03:10,040 --> 01:03:13,400 Jah, jah, jah, jah. 1425 01:03:13,400 --> 01:03:18,960 -Kindlasti juua oma Ovaltine. 1426 01:03:18,960 --> 01:03:20,210 Ovaltine? 1427 01:03:24,010 --> 01:03:25,260 Trullakas kaubandus? 1428 01:03:28,200 --> 01:03:29,640 Litapoeg. 1429 01:03:29,640 --> 01:03:33,340 [END VIDEO PLAYBACK] 1430 01:03:33,340 --> 01:03:36,040 >> David J. Malan: Nii et meil on krüptograafia. 1431 01:03:36,040 --> 01:03:39,670 Niisiis, kuidas arvuti me saame minna rakendamisel või 1432 01:03:39,670 --> 01:03:40,950 esindavad selliseid asju? 1433 01:03:40,950 --> 01:03:44,430 Noh, me vajame viis väljendada end natuke paindlikumalt kui 1434 01:03:44,430 --> 01:03:46,420 meie muutujad on seni lubatud. 1435 01:03:46,420 --> 01:03:47,370 Meil on olnud ints. 1436 01:03:47,370 --> 01:03:48,380 Meil on olnud tähemärki. 1437 01:03:48,380 --> 01:03:50,790 Meil on olnud ujukite ja kahekohalised ja mõned teised. 1438 01:03:50,790 --> 01:03:55,050 Aga need on eravalduses mälu, mis tegelikult ei võimalda meil 1439 01:03:55,050 --> 01:03:58,010 väljendada asjad sõnu ja lauseid ja fraase. 1440 01:03:58,010 --> 01:04:00,200 Tõepoolest, me oleme kutsutud selliseid asju stringid. 1441 01:04:00,200 --> 01:04:03,650 Aga me lubasime, et see on tõesti vaid lihtsustamise CS50 1442 01:04:03,650 --> 01:04:07,020 raamatukogu, et me kavatseb koor tagasi. 1443 01:04:07,020 --> 01:04:08,970 >> Ja nii alustame seda teha siin. 1444 01:04:08,970 --> 01:04:11,130 Lubage mul minna ja avada fail - 1445 01:04:11,130 --> 01:04:13,770 kõik need failid on saadaval nagu tavaliselt internetis - 1446 01:04:13,770 --> 01:04:19,120 nimetatakse array.c lahendada probleemi mitteseotud stringid kuid kes värvivad 1447 01:04:19,120 --> 01:04:23,040 pilt siin on, kuidas me võiksime kasutada midagi, mida nimetatakse massiivi. 1448 01:04:23,040 --> 01:04:25,530 Massiiv on andmetüüp. 1449 01:04:25,530 --> 01:04:31,320 See on tüüpi muutuja, kehvasti, et on mitmeid väiksemaid andmetüübid 1450 01:04:31,320 --> 01:04:34,150 sees on seljad et seljad. 1451 01:04:34,150 --> 01:04:37,700 Nii näiteks, kui me tahame kirjutada väike programm, mis annab teile teie 1452 01:04:37,700 --> 01:04:42,110 viktoriin keskmiselt muidugi nagu 50, mis on kaks viktoriinid, võid väga kergesti 1453 01:04:42,110 --> 01:04:45,170 kirjutage see programm - põhineb isegi mõned eelmisel nädalal materjal - 1454 01:04:45,170 --> 01:04:47,770 kasutades GetInt ja paar muutujad. 1455 01:04:47,770 --> 01:04:51,920 Int quiz1, int quiz2, ja see on üsna lihtne. 1456 01:04:51,920 --> 01:04:55,930 See on võibolla 10, 20 rida koodi, maks, et rakendada programmi, mis küsib 1457 01:04:55,930 --> 01:05:01,170 kasutaja kahe viktoriini skoorid ja siis arvutab nende keskmise lisades need 1458 01:05:01,170 --> 01:05:03,850 koos, jagades kaks ja seejärel printida tulemust. 1459 01:05:03,850 --> 01:05:06,380 Võiksime tõenäoliselt teha päris kergesti nüüd pärast 1460 01:05:06,380 --> 01:05:07,510 mõned minutite arv. 1461 01:05:07,510 --> 01:05:11,005 >> Probleem on aga selles, et oletame, et 50 oli kolm viktoriinid või neli. 1462 01:05:11,005 --> 01:05:13,510 Oletame, et sa tahtsid kasutada sama programmi klassi, mis oli 1463 01:05:13,510 --> 01:05:14,850 iganädalane viktoriinid. 1464 01:05:14,850 --> 01:05:16,610 Mõtle klassi, mis on iganädalane viktoriinid. 1465 01:05:16,610 --> 01:05:20,610 Kui seal on nagu 16 või nii nädalat semester, nüüd on 16 näitajat - 1466 01:05:20,610 --> 01:05:24,270 int quiz1, int quiz2, int quiz3, int quiz4. 1467 01:05:24,270 --> 01:05:27,560 Niipea kui hakkate nägema seda koondamine, see kopeerida ja kleepida 1468 01:05:27,560 --> 01:05:31,390 koodi, see peaks hakkama sind soovin, et oleks parem. 1469 01:05:31,390 --> 01:05:33,930 Ja õnneks, sest massiivid on. 1470 01:05:33,930 --> 01:05:34,980 Nii et teeme seda. 1471 01:05:34,980 --> 01:05:38,430 Esiteks lubage mul tutvustada väga lihtne asi, et me pole kasutatud seni 1472 01:05:38,430 --> 01:05:40,140 kuid näete seda vahetevahel kood. 1473 01:05:40,140 --> 01:05:42,360 See on see, mida on üldiselt nimetatakse samaks. 1474 01:05:42,360 --> 01:05:45,790 Nii et see on pidev selles mõttes, et see väärtus ei muutu kunagi. 1475 01:05:45,790 --> 01:05:49,210 Inimeste konventsiooni loomisel pidevalt on kasutada kõiki kapitali 1476 01:05:49,210 --> 01:05:51,940 tähed, just nii, et see tõesti paistab silma oma koodi. 1477 01:05:51,940 --> 01:05:55,960 Ja eriline märksõna, mida saate kasutada C # define. 1478 01:05:55,960 --> 01:06:00,250 Nii et kui sa ütled # define, siis ruumi, siis sõna, mida soovite kasutada 1479 01:06:00,250 --> 01:06:03,260 pidev nimi ja seejärel väärtus samaks. 1480 01:06:03,260 --> 01:06:06,180 Nii teate, see erineb määrates midagi muutuja. 1481 01:06:06,180 --> 01:06:07,020 Pole mingit võrdusmärki. 1482 01:06:07,020 --> 01:06:08,240 Pole semikooloniga. 1483 01:06:08,240 --> 01:06:11,410 See on see, mida on üldiselt tuntud kui eeltöötluse direktiiv, kuid rohkem 1484 01:06:11,410 --> 01:06:12,210 et teine ​​kord. 1485 01:06:12,210 --> 01:06:18,540 >> Praegu tekitab see muutumatu väärtus nimega TESTID kelle tegelik 1486 01:06:18,540 --> 01:06:19,940 arvuline väärtus on 2. 1487 01:06:19,940 --> 01:06:24,020 Nii et kuskil näed viktoriine, interaktiivseid viktoriine kogu seda faili, mis on 1488 01:06:24,020 --> 01:06:25,410 lihtsalt number 2. 1489 01:06:25,410 --> 01:06:28,100 Nüüd, kui ma vaatan peamised nüüd, vaatame, kuidas see töötab. 1490 01:06:28,100 --> 01:06:29,500 Alguses tundub veidi segasena. 1491 01:06:29,500 --> 01:06:31,340 Aga see on kõik kraami nädal üks. 1492 01:06:31,340 --> 01:06:32,710 Küsi kasutajalt klassid. 1493 01:06:32,710 --> 01:06:33,630 Kuidas me seda teeme? 1494 01:06:33,630 --> 01:06:35,470 Noh, vastavalt 22 - 1495 01:06:35,470 --> 01:06:37,210 see on tõesti mahlane osa - 1496 01:06:37,210 --> 01:06:40,960 Kinnitan, float, kuid mitte ainult ühe sularahaga. 1497 01:06:40,960 --> 01:06:44,620 Ma kuulutatakse pigem massiivi murdarve. 1498 01:06:44,620 --> 01:06:49,100 See muutuja nimetama hakatakse hindeid, kui sellele viitab siin. 1499 01:06:49,100 --> 01:06:53,080 Aga ainult tükk uus süntaks siis on need nurksulud, asjaolu, 1500 01:06:53,080 --> 01:06:59,350 et ma olen öelnud float klassid ja siis sulg ja siis number. 1501 01:06:59,350 --> 01:07:02,460 Teate, kui see on pidev, see on nagu me seda tegime. 1502 01:07:02,460 --> 01:07:06,890 See tähendab, hei arvuti, anna mulle mõlemad ujukid, ja olgem ühiselt kutsuda 1503 01:07:06,890 --> 01:07:08,220 neid klasse. 1504 01:07:08,220 --> 01:07:11,920 See on kontrastiks palju tüütu protsess niimoodi. 1505 01:07:11,920 --> 01:07:15,850 Float Grade1, float Grade2, ja nii edasi. 1506 01:07:15,850 --> 01:07:20,010 Nii massiivi võimaldab meil rakendada seda ideed, kuid palju vähem räpakalt, et 1507 01:07:20,010 --> 01:07:24,630 nii, et me saame kirjutada üks rida koodi asemel, ütleme, 16, 16 1508 01:07:24,630 --> 01:07:25,740 nädal poolaastal. 1509 01:07:25,740 --> 01:07:29,950 Nii et ma ei tahtnud kõva-kood 2, sest kui sina arvad sellest nüüd 1510 01:07:29,950 --> 01:07:34,160 loogiliselt - oletame järgmisel aastal CS50 muudatusi kuni 3 viktoriinid asemel. 1511 01:07:34,160 --> 01:07:35,510 Ja mul oli number 2 siin. 1512 01:07:35,510 --> 01:07:36,600 Mul oli number 2 siin. 1513 01:07:36,600 --> 01:07:37,580 Mul oli number 2 siin. 1514 01:07:37,580 --> 01:07:38,560 Mul oli number 2 siin. 1515 01:07:38,560 --> 01:07:43,180 See muutub väga tüütu ja väga lihtne kägardama ja kogemata muuta 1516 01:07:43,180 --> 01:07:47,690 ühe väärtuse 3 ja jäta mõned muud väärtust 2. 1517 01:07:47,690 --> 01:07:52,460 Nii et ma lähen selle asemel abstraktne see ära ja kasutavad seda pidevalt, et tema 1518 01:07:52,460 --> 01:07:54,120 nimigi ütleb, ei muutu kunagi. 1519 01:07:54,120 --> 01:07:57,710 Ja nüüd, ükskõik kas meil on erinevad viktoriinid sel aastal või järgmisel, ma 1520 01:07:57,710 --> 01:08:01,210 lihtsalt seda muuta ühes kohas, siin üleval. 1521 01:08:01,210 --> 01:08:02,720 >> Nii et kõik on konstant. 1522 01:08:02,720 --> 01:08:08,680 Vahepeal uut kontseptuaalset omadus on, et massiivi. 1523 01:08:08,680 --> 01:08:14,660 Nii nurksulgudes anna mulle seda palju ujukite ja laseb mul ühiselt 1524 01:08:14,660 --> 01:08:16,630 helista neile hinded siin. 1525 01:08:16,630 --> 01:08:17,990 Nüüd vaatame, mida ma teen. 1526 01:08:17,990 --> 01:08:20,359 Siin Rida 24 on algusest jaoks silmus. 1527 01:08:20,359 --> 01:08:22,260 See on tõesti midagi meeldib. 1528 01:08:22,260 --> 01:08:25,060 See on lihtsalt kasutades viktoriinid asemel püsiprogrammeeritud arv. 1529 01:08:25,060 --> 01:08:27,790 Aga seal on midagi intellektuaalselt erinevate sinna eelmisel nädalal. 1530 01:08:27,790 --> 01:08:29,040 See on lihtsalt printf. 1531 01:08:29,040 --> 01:08:35,490 Nii printf ("viktoriini arv% d% d"), sest ma tahan välja printida mulle viktoriin 1532 01:08:35,490 --> 01:08:38,050 Number üks kahest ja siis kaks kahest. 1533 01:08:38,050 --> 01:08:39,850 Nii et see on puhtalt esteetiline asi. 1534 01:08:39,850 --> 01:08:42,500 Aga huvitav osa nüüd on rida 27. 1535 01:08:42,500 --> 01:08:48,310 Selleks, et täita üks kahest kohatäited koos ujukoma 1536 01:08:48,310 --> 01:08:51,029 väärtus, siis jälle kasutada nurksulgudes. 1537 01:08:51,029 --> 01:08:55,620 Sel juhul ma kasutan i, sest see loop on alanud i võrdub 1538 01:08:55,620 --> 01:08:57,560 Mis väärtus, ilmselt? 1539 01:08:57,560 --> 01:08:58,279 0. 1540 01:08:58,279 --> 01:09:01,350 >> Nii et esimese iteratsiooni see ahel, see on nii, nagu ma 1541 01:09:01,350 --> 01:09:02,689 Kirjutasin selle koodina. 1542 01:09:02,689 --> 01:09:05,580 Aga teist iteratsiooni see silmus, see on nii, nagu ma 1543 01:09:05,580 --> 01:09:07,750 Kirjutasin selle oma koodi. 1544 01:09:07,750 --> 01:09:10,750 Kuid tõsiasi, et ma kasutan muutuja on täiuslik, sest, nagu nimigi 1545 01:09:10,750 --> 01:09:14,300 soovitab, see on erinev selle väärtus igal iteratsiooni. 1546 01:09:14,300 --> 01:09:17,370 Nii et ma täita see massiivi ühe kohapeal korraga. 1547 01:09:17,370 --> 01:09:18,910 Mida see massiivi välja näeb? 1548 01:09:18,910 --> 01:09:21,430 Noh, põhjus ma joonistasin seda super lihtne ristkülik ekraanil siin 1549 01:09:21,430 --> 01:09:23,350 enne oli sel põhjusel. 1550 01:09:23,350 --> 01:09:27,279 Massiiv on lihtsalt patakas mälu järgneb teine ​​patakas mälu, 1551 01:09:27,279 --> 01:09:30,109 järgneb teine ​​patakas mälu ja nii edasi. 1552 01:09:30,109 --> 01:09:35,260 Nii et kui minu rida on suurus 2, antud juhul siin, kõik, mida ma teeks poolt 1553 01:09:35,260 --> 01:09:37,590 kirjutades minu viktoriini skoorid, nagu siin. 1554 01:09:37,590 --> 01:09:39,430 Ma sain 100 seda. 1555 01:09:39,430 --> 01:09:42,020 Ja siis ma sain 99 see üks. 1556 01:09:42,020 --> 01:09:46,040 Siis see mälu ei pruugi isegi kasutada, sest ma olen ainult palus 1557 01:09:46,040 --> 01:09:48,689 arvuti massiivi suurus 2. 1558 01:09:48,689 --> 01:09:50,180 Need väljakud on ikka veel seal. 1559 01:09:50,180 --> 01:09:50,340 Eks? 1560 01:09:50,340 --> 01:09:52,500 Teil on veel kaks gigabaiti operatiivmälu, isegi kui sa oled ainult 1561 01:09:52,500 --> 01:09:53,979 paludes mõlemad ujukid. 1562 01:09:53,979 --> 01:09:58,710 Nii et idee massiivid on see, et arvuti lihtsalt võtab tüki mälu 1563 01:09:58,710 --> 01:10:03,230 ja siis jaotab väiksemateks tükkideks seljad et seljad. 1564 01:10:03,230 --> 01:10:04,740 Ja nii ongi kõik massiiv on. 1565 01:10:04,740 --> 01:10:09,080 See on külgnevas patakas mälu, mille sees saab panna asjad. 1566 01:10:09,080 --> 01:10:12,400 >> Nüüd see juhtub siis tee lihtsalt mingi igav aritmeetika. 1567 01:10:12,400 --> 01:10:16,170 Kui ma keri siin on see, kus ma siis itereerime massiivi. 1568 01:10:16,170 --> 01:10:19,410 Ma tulla liitmise kõik väärtuste massiivi. 1569 01:10:19,410 --> 01:10:22,390 Ja siis ma kasutan ringi funktsioon siin tegelikult teha 1570 01:10:22,390 --> 01:10:23,940 Kokkuvõttes jagatakse viktoriine. 1571 01:10:23,940 --> 01:10:27,450 Aga las ma siputan kätt, et kui omamoodi piisavalt aritmeetika nüüd. 1572 01:10:27,450 --> 01:10:30,010 Aga kõik, mis teeb minu jaoks lõppkokkuvõttes on arvuti keskmine. 1573 01:10:30,010 --> 01:10:33,640 Nii et esimene viktoriin pluss 2. viktoriin, jagatuna 2 ja seejärel printimise 1574 01:10:33,640 --> 01:10:34,700 see välja nagu int. 1575 01:10:34,700 --> 01:10:39,030 >> Aga olgem nüüd ülemineku erinevaid Näiteks nimetatakse string1, 1576 01:10:39,030 --> 01:10:42,370 mis on samamoodi, kuid kasutades stringid. 1577 01:10:42,370 --> 01:10:45,550 Lubage mul minna ja lihtsustada seda hetkeks. 1578 01:10:45,550 --> 01:10:48,340 Ja anna taandus nüüd. 1579 01:10:48,340 --> 01:10:52,280 Teade kooskõlas 19. Selles näites ma saan stringi kasutaja. 1580 01:10:52,280 --> 01:10:55,780 Aga teate, mis ma järgmisena teeb eelarveridadel 22 aastast. 1581 01:10:55,780 --> 01:11:00,260 Ma olen tegelikult itereerimise alates i kuni - ja see on uus trikk - 1582 01:11:00,260 --> 01:11:02,730 strlen, string pikkusega. 1583 01:11:02,730 --> 01:11:07,010 See on funktsioon, mis on koos C et kui te kaotate see nöör, see ütleb 1584 01:11:07,010 --> 01:11:08,950 kui palju märke on, et nöör. 1585 01:11:08,950 --> 01:11:09,440 See on kõik. 1586 01:11:09,440 --> 01:11:12,520 Asjaolu, et see on strlen asemel stringi pikkus on lihtsalt sellepärast, et see on 1587 01:11:12,520 --> 01:11:13,040 sisutihe. 1588 01:11:13,040 --> 01:11:17,100 30 aastat tagasi, inimesed tahtnud kirjutada asju lühidalt kui võimalik. 1589 01:11:17,100 --> 01:11:19,080 Nii oleme hoitakse selle konventsiooni siin. 1590 01:11:19,080 --> 01:11:21,730 i + + tähendab lihtsalt juurdekasvu i iga iteratsiooni. 1591 01:11:21,730 --> 01:11:24,310 Ja nüüd märgata seda, mis on tõesti huvitav. 1592 01:11:24,310 --> 01:11:28,730 Nii kooskõlas 24, ma ütlen arvuti, anna mulle märk, kaheksa 1593 01:11:28,730 --> 01:11:30,770 bitti, ja nimetavad seda c. 1594 01:11:30,770 --> 01:11:35,370 Aga milline on see paremal pool räägib? 1595 01:11:35,370 --> 01:11:38,150 Inglise keeles, mida see koosneb? 1596 01:11:38,150 --> 01:11:40,070 [Kuuldamatu] 1597 01:11:40,070 --> 01:11:40,490 David J. Malan: Täpselt. 1598 01:11:40,490 --> 01:11:42,390 Anna mulle esimene märk massiiv. 1599 01:11:42,390 --> 01:11:45,400 Või üldisemalt, anna mulle i-nda märgi massiiv. 1600 01:11:45,400 --> 01:11:48,230 Ja mõistma, et see on oluline nüüd, et kui arvuti teadlased, me oleme tegelikult 1601 01:11:48,230 --> 01:11:49,330 lugedes 0. 1602 01:11:49,330 --> 01:11:51,290 Sul ei ole kaalutlusõigust nüüd hakata seda tegema. 1603 01:11:51,290 --> 01:11:54,580 Nüüd on teil käituda vastavalt arvuti ootustele ja 1604 01:11:54,580 --> 01:11:58,010 loe nullist, sest [0] saab olema esimene 1605 01:11:58,010 --> 01:11:59,670 märgi string. 1606 01:11:59,670 --> 01:12:01,320 [1] saab olema teine. 1607 01:12:01,320 --> 01:12:03,610 [2] saab olema kolmas ja nii edasi. 1608 01:12:03,610 --> 01:12:08,840 Nii et see programm, kui ma kompileerida - see on jällegi string1. 1609 01:12:08,840 --> 01:12:11,040 >> Nii et string1. 1610 01:12:11,040 --> 01:12:16,730 Ja nüüd ma saan string1 minu terminaliakent. 1611 01:12:16,730 --> 01:12:19,180 See ootab sisend, nii et ma lähen sisestada, ütleme, David. 1612 01:12:19,180 --> 01:12:20,080 Enter. 1613 01:12:20,080 --> 01:12:23,350 Ja nüüd ta prindib DAVID kõik erinevatel teedel, sest 1614 01:12:23,350 --> 01:12:24,430 teate, mis ma teen. 1615 01:12:24,430 --> 01:12:27,510 Ma printimise üks täht korraga. 1616 01:12:27,510 --> 01:12:29,100 Nüüd me ei hakka üksikasjalikult täna selle. 1617 01:12:29,100 --> 01:12:31,610 Aga ma välja hetk tagasi selle kontrolli siin. 1618 01:12:31,610 --> 01:12:36,310 Selgub, et kui kasutaja ei toimi, võistlevuse, või lihtsalt 1619 01:12:36,310 --> 01:12:41,780 segaduses, saab tegelikult ei anna string põhjalikkusega. 1620 01:12:41,780 --> 01:12:43,640 Kui põrkad vale klahvi klaviatuuril, siis võiks anda 1621 01:12:43,640 --> 01:12:44,390 no string üldse. 1622 01:12:44,390 --> 01:12:47,790 Või kui sa oled pahatahtlik, võite proovida kleepida GB väärtuses 1623 01:12:47,790 --> 01:12:49,380 essee, et täita seda stringi. 1624 01:12:49,380 --> 01:12:52,060 Ja kui arvuti mälu, tuleb välja, et me ei kavatse 1625 01:12:52,060 --> 01:12:54,310 et saada tagasi see eriline väärtus nimega null. 1626 01:12:54,310 --> 01:12:57,550 Nii et nüüd lihtsalt tean, et seal on see eriline väärtus nimega null, et 1627 01:12:57,550 --> 01:13:01,000 annab meile võimaluse vaadata, kui me mälu, muu hulgas. 1628 01:13:01,000 --> 01:13:07,330 >> Aga kui ma avada nüüd string2, märkate üks erinevus siin. 1629 01:13:07,330 --> 01:13:09,760 Teade üks erinevus siin string2. 1630 01:13:09,760 --> 01:13:13,260 Mis string2, seda silmus on veidi erinev. 1631 01:13:13,260 --> 01:13:16,350 Las ma kustutan nulls et saaksime rääkida need muul ajal. 1632 01:13:16,350 --> 01:13:18,460 Aga mis on erinev umbes jaoks silmus seekord? 1633 01:13:21,580 --> 01:13:23,160 Ja ma ei saa minna tagasi eelmise näite puhul. 1634 01:13:23,160 --> 01:13:24,800 Nii et see versioon kaks. 1635 01:13:24,800 --> 01:13:27,020 See on versioon üks. 1636 01:13:27,020 --> 01:13:31,935 Üks, kaks, üks kaks. 1637 01:13:35,030 --> 01:13:38,240 Nii strlen kõne on kus? 1638 01:13:38,240 --> 01:13:40,420 See on esimene osa jaoks silmus. 1639 01:13:40,420 --> 01:13:43,060 Kõik mõtted, miks ma seda teen? 1640 01:13:43,060 --> 01:13:43,690 Jah. 1641 01:13:43,690 --> 01:13:46,010 [Kuuldamatu] 1642 01:13:46,010 --> 01:13:47,630 David J. Malan: Nii et me ei sea funktsiooni iga kord. 1643 01:13:47,630 --> 01:13:48,040 Täpselt. 1644 01:13:48,040 --> 01:13:50,350 Meenuta alates jaoks silmuseid, et nad on super lihtne, kui sa omamoodi 1645 01:13:50,350 --> 01:13:52,180 aru, et see on käivitamise, 1646 01:13:52,180 --> 01:13:53,330 seisukorras ja uuendatud. 1647 01:13:53,330 --> 01:13:55,430 Probleem on selles, et tingimus juhtub iga 1648 01:13:55,430 --> 01:13:56,600 iteratsiooni silmus. 1649 01:13:56,600 --> 01:13:59,930 Ja nii see näide, mis on halb sellest, 1650 01:13:59,930 --> 01:14:03,500 et see on minu tingimus? 1651 01:14:03,500 --> 01:14:05,920 Helistate strlen uuesti ja uuesti ja uuesti. 1652 01:14:05,920 --> 01:14:08,990 Aga kui ma olen sisestatud DAVID, pikkus, et string on viis. 1653 01:14:08,990 --> 01:14:11,560 Ja see ei muutu iga iteratsiooni silmus sest 1654 01:14:11,560 --> 01:14:15,560 string on ikka D-V-I-D. Nii et see on vihje, mis hakkab muutuma 1655 01:14:15,560 --> 01:14:19,650 üha tähtsamaks idee tuntud disaini otsus, kus - lihtsalt ei 1656 01:14:19,650 --> 01:14:21,640 teha arvuti teha lisatöö. 1657 01:14:21,640 --> 01:14:25,630 >> Nüüd nagu vargsi eelvaade pset 2 pset 2 Standard Edition on 1658 01:14:25,630 --> 01:14:28,850 kavatse vaidlustada sa tegelikult rakendada teatud arvu ciphers, mõned 1659 01:14:28,850 --> 01:14:32,650 arvu krüpteerimisalgoritmide nii, et saate nii krüpteerimiseks ja dekrüpteerimiseks 1660 01:14:32,650 --> 01:14:35,530 SECRET kuuluvate sõnumitega, palju nagu üks Ralphie seal dekodeerida. 1661 01:14:35,530 --> 01:14:38,720 Kui häkker väljaanne pset 2, me läheme veidi kaugemale. 1662 01:14:38,720 --> 01:14:42,010 Me läheme käe faili tegelik arvutisüsteemi, mis sisaldab 1663 01:14:42,010 --> 01:14:45,690 terve hunnik kasutajanimesid ja tegelikke krüpteeritud paroolid ja väljakutse 1664 01:14:45,690 --> 01:14:49,110 jaoks häkker väljaanne saab olema crack need paroolid ja joonis 1665 01:14:49,110 --> 01:14:53,060 välja, mida krüptograafia või mis saladus kasutati tegelikult 1666 01:14:53,060 --> 01:14:55,080 tekitavad need paroolid. 1667 01:14:55,080 --> 01:14:58,360 Ja me ei kavatse seda teha, kasutades uut funktsiooni siin C et ma annan 1668 01:14:58,360 --> 01:15:02,200 sa lihtsalt demo, mida tuntakse käsurea argumente. 1669 01:15:02,200 --> 01:15:05,930 >> Nii selgub, nagu mõned teist ehk märganud jaos või õpikutes, 1670 01:15:05,930 --> 01:15:09,850 Peamised alati ei pea olema tühine sulgudes. 1671 01:15:09,850 --> 01:15:14,060 Tuleb välja, et peamised võib kirjutada ka niimoodi, kusjuures kaks argumenti, 1672 01:15:14,060 --> 01:15:19,690 argc ja argv, kus argc on sõnade arv tipite pärast 1673 01:15:19,690 --> 01:15:21,940 Programmi nime oma käsurida. 1674 01:15:21,940 --> 01:15:24,550 Ja argv on tegelikud sõnad. 1675 01:15:24,550 --> 01:15:29,470 Ja nagu nurksulud seal näitavad, argv on ilmselt massiivi. 1676 01:15:29,470 --> 01:15:33,720 See saab olema string pärast string pärast stringi mälu. 1677 01:15:33,720 --> 01:15:36,170 Nii et me ei kavatse olla võimeline tegema, alustades pset 2, on 1678 01:15:36,170 --> 01:15:37,310 midagi sellist. 1679 01:15:37,310 --> 01:15:42,450 Kui ma argv1, mis on näide me tuleme tagasi esmaspäeval ja käivitage 1680 01:15:42,450 --> 01:15:45,180 see, märkate, et see ei tundu midagi teha veel. 1681 01:15:45,180 --> 01:15:47,050 See lihtsalt trükib välja oma nime all. 1682 01:15:47,050 --> 01:15:53,220 Aga kui ma hüvasti klass, teate, et see programm ilmselt kordab 1683 01:15:53,220 --> 01:15:57,030 üle iga sõna, mis olid kirjutatud käsureale. 1684 01:15:57,030 --> 01:16:02,050 Ja vahendid, mille abil me pääseda sõnad, et kasutaja on 1685 01:16:02,050 --> 01:16:06,780 kirjutate kiire on, muutes peamine, alustades sel nädalavahetusel, alates int 1686 01:16:06,780 --> 01:16:10,710 main (void) int main (argc, argv). 1687 01:16:10,710 --> 01:16:13,700 Ja nõnda sünnib käsurea argumente. 1688 01:16:13,700 --> 01:16:17,210 Ja kui sa tõesti kogenud seda, sa pead olema võimeline kirjutama 1689 01:16:17,210 --> 01:16:21,370 tõesti trippy programmid, nagu see siin, mis läheb üle ja kaugemale 1690 01:16:21,370 --> 01:16:25,520 mõned funktsioonid oleme seni teinud vaid kõik üsna võimas. 1691 01:16:25,520 --> 01:16:27,330 >> Nii et jätame selle selle ekraanil. 1692 01:16:27,330 --> 01:16:29,160 Ja me näeme esmaspäeval.