1 00:00:07,420 --> 00:00:08,160 [Powered by Google Translate] David J. Malan: Nu labi. 2 00:00:08,160 --> 00:00:11,170 Tas ir CS50, un tas ir beigas divas nedēļas. 3 00:00:11,170 --> 00:00:14,650 Ja jūs gaidīt, lai būtu izsalcis ap šo laiku rīt, zinu, ka mēs ejam 4 00:00:14,650 --> 00:00:18,920 sasaukt kā nelielu grupu rīt, ceturtdien, 01:15. 5 00:00:18,920 --> 00:00:21,460 Tur šis URL šeit, ja jūs vēlaties, lai RSVP. 6 00:00:21,460 --> 00:00:25,270 Telpa ir ierobežota, tāpēc, lūdzu, piedod, ja veidlapa ir piepildīts ar laiku jums 7 00:00:25,270 --> 00:00:26,680 aizpildīt šo veidlapu. 8 00:00:26,680 --> 00:00:29,400 Vēl URL gan, ka varētu būt interesanti tas ir. 9 00:00:29,400 --> 00:00:32,409 >> Tātad tikai par mēneša laikā, protams, ir būs pieejami 10 00:00:32,409 --> 00:00:36,090 vēl plašāk izmantojot EDX, pa kuru ļaudis internetā būs 11 00:00:36,090 --> 00:00:39,580 iespēja sekot līdzi, iesaistīties gaitā diezgan aktīvi, patiesībā. 12 00:00:39,580 --> 00:00:43,070 Tie būs, izmantojot CS50 Appliance un CS50 diskutēt un lielākā daļa 13 00:00:43,070 --> 00:00:45,840 dažādas programmatūras rīki, kas mums jau ir, izmantojot šo semestri. 14 00:00:45,840 --> 00:00:49,030 Un viena no iniciatīvām mēs gribētu uzņemties kā eksperiments šogad 15 00:00:49,030 --> 00:00:53,120 ir redzēt, cik daudz satura mēs varam tulkot citi runā un 16 00:00:53,120 --> 00:00:54,110 rakstveida valodas. 17 00:00:54,110 --> 00:00:58,000 Tātad, ja jūs varētu būt interese piedalīties šajā projektā, kuru laikā 18 00:00:58,000 --> 00:01:02,090 mēs nodrošināsim angļu stenogrammas un subtitrus kurss s 19 00:01:02,090 --> 00:01:05,190 lekcijas un šorti un semināri un sekcijas un tamlīdzīgi - 20 00:01:05,190 --> 00:01:08,700 ja tu runā tekoši vai rakstīt tekoši kādu citu valodu, mēs varētu 21 00:01:08,700 --> 00:01:12,240 patīk iesaistīties jums šajā projektā, kurā jūs ņemt uz vienu vai vairākiem 22 00:01:12,240 --> 00:01:15,340 video, tulkojot tos valodu jūs zināt gluži labi. 23 00:01:15,340 --> 00:01:19,050 Lai dotu jums sajūtu interfeisu, tur tas ir interneta lietotāja saskarne 24 00:01:19,050 --> 00:01:22,330 ka mēs, izmantojot kas radīs būtībā UI kā šis. 25 00:01:22,330 --> 00:01:24,520 Tas bija man māca daži Halloween atpakaļ. 26 00:01:24,520 --> 00:01:27,710 Un labajā pusē tur melnā blakus šiem laika zīmogiem, 27 00:01:27,710 --> 00:01:31,300 Jūs redzēsiet dažādas lietas, kas nāca no manas mutes, ka dienā. 28 00:01:31,300 --> 00:01:34,660 Un tad zem tā, jūs varēsiet tulkot kādā citā valodā. 29 00:01:34,660 --> 00:01:37,840 Ko tieši kartēšana ir starp, šajā gadījumā, angļu 30 00:01:37,840 --> 00:01:38,660 un, teiksim, spāņu. 31 00:01:38,660 --> 00:01:40,480 Tātad, tas ir tiešām ļoti lietotājam draudzīgs rīks. 32 00:01:40,480 --> 00:01:43,690 Jūs varat attīt un ātri uz priekšu ļoti viegli ar tastatūras īsceļus. 33 00:01:43,690 --> 00:01:46,710 Tātad, ja jūs vēlaties piedalīties šajā eksperimentā un ir jūsu vārdiem 34 00:01:46,710 --> 00:01:50,730 redzējuši un lasa potenciāli tūkstošiem ļaudīm, kas tur, lūdzu, justies 35 00:01:50,730 --> 00:01:51,960 brīvi piedalīties. 36 00:01:51,960 --> 00:01:56,940 >> Tagad viens vārds par no pirmdienas kaķēns, citādi mēs esam nosūtīti pārlieku 37 00:01:56,940 --> 00:01:58,120 biedējošu ziņu. 38 00:01:58,120 --> 00:02:02,130 Vai saprast, ka darba laiks domāt un kā sekcijas liecina, ka 39 00:02:02,130 --> 00:02:05,110 dizains protams, ir ļoti daudz, lai skolēni sadarbojas un 40 00:02:05,110 --> 00:02:09,250 runājot strādāt problēmu kopas un problēmas kopā. 41 00:02:09,250 --> 00:02:13,630 Un tiešām līnija vienkārši nāk uz leju, lai, atkal, darbs jūs galu galā 42 00:02:13,630 --> 00:02:16,420 jāiesniedz būtu savu. 43 00:02:16,420 --> 00:02:19,080 Un tā tas ir, pavisam godīgi - jo darba laika, tas ir pilnīgi normāli - 44 00:02:19,080 --> 00:02:21,560 tas ir pilnīgi paredzams, pat - lai čatā ar dažiem 45 00:02:21,560 --> 00:02:22,370 draugi blakus. 46 00:02:22,370 --> 00:02:25,240 Ja viņš vai viņa cīnās ar kādu tēmu, un jūs, piemēram, ak, arī ļaujiet 47 00:02:25,240 --> 00:02:27,750 man sniegt jums ieskatu kādu rindiņu kodu, kas man rakstīja. 48 00:02:27,750 --> 00:02:28,290 Tas ir jauki. 49 00:02:28,290 --> 00:02:28,700 Kas notiek. 50 00:02:28,700 --> 00:02:31,580 Un tas ir ļoti daudz labvēlīga, es domāju, ar mācību procesā. 51 00:02:31,580 --> 00:02:35,270 Ja līnija, atkal izpaužas šķērsoja ir, kad galva ir sava veida slīpi pāri 52 00:02:35,270 --> 00:02:38,800 šeit pārāk daudz sekundes vai minūtēs, kas tiešām ir tikai 53 00:02:38,800 --> 00:02:41,250 bijis atbloķēšana iespēja savu draugu. 54 00:02:41,250 --> 00:02:43,870 Un, protams, kad lietas iegūt apmaiņa pa e-pastu un Dropbox un 55 00:02:43,870 --> 00:02:45,350 līdzīgi, arī tur ir līnija. 56 00:02:45,350 --> 00:02:48,940 Tātad ar visiem līdzekļiem, justies ērti un sajust aicināti tērzēt ar draugiem 57 00:02:48,940 --> 00:02:51,270 un klasesbiedru par psets un vairāk. 58 00:02:51,270 --> 00:02:54,680 Un tikai saprast, ka tas, ko jūs galu galā iesniegt patiešām ir 59 00:02:54,680 --> 00:02:57,780 produkts no jūsu radīšanu un nevis kāds cits. 60 00:02:57,780 --> 00:03:01,010 >> Tātad pašā vēnu cuddly radījumi, jūs varētu 61 00:03:01,010 --> 00:03:02,820 zina par šo puisis šeit. 62 00:03:02,820 --> 00:03:06,180 Tātad šis ir horrifically stilīgs filmu no gadus atpakaļ. 63 00:03:06,180 --> 00:03:08,680 Kāds šeit redzējis Spaceballs? 64 00:03:08,680 --> 00:03:09,120 Labi. 65 00:03:09,120 --> 00:03:10,220 Tik labs skaits šeit. 66 00:03:10,220 --> 00:03:13,840 Tātad šī ir mūsu lieliski akadēmiskā veids, kā ieviest šodien beidzot 67 00:03:13,840 --> 00:03:15,130 jēdziens par kriptogrāfiju. 68 00:03:15,130 --> 00:03:19,010 Un tā viena no domēna īpašas problēmas 2 PSET, kas stāsies 69 00:03:19,010 --> 00:03:22,770 veic vēlu rīt naktī, ir nirt vērā pasaulē kriptogrāfija, kas 70 00:03:22,770 --> 00:03:26,380 ir māksla šifrējot vai kodēšanas informāciju. 71 00:03:26,380 --> 00:03:30,160 Un tas galu galā ir saistīts ar pasaules drošību. 72 00:03:30,160 --> 00:03:34,440 >> Tagad drošību visvairāk mūs nāk kā diezgan ikdienišķa mehānismu. 73 00:03:34,440 --> 00:03:36,920 Visi no mums ir lietotājvārdus un paroles. 74 00:03:36,920 --> 00:03:41,350 Un visi no mums ir ļoti slikti lietotājvārdus un paroles, visticamāk. 75 00:03:41,350 --> 00:03:45,250 Ja parole ir tāda pati uz vairākām vietnēm, kas, iespējams, nav 76 00:03:45,250 --> 00:03:47,920 labākā ideja, jo mēs apspriestu uz semestra beigām. 77 00:03:47,920 --> 00:03:51,680 Ja parole ir rakstīts uz līmlapas - nav joks - uz jūsu 78 00:03:51,680 --> 00:03:55,130 monitors, ka arī ne vienmēr ir labākais dizains, bet diezgan izplatīta 79 00:03:55,130 --> 00:03:56,140 parādība. 80 00:03:56,140 --> 00:04:00,420 Un, ja jūs nelietojat kriptogrāfija, lai šifrētu paroles, tie ir 81 00:04:00,420 --> 00:04:01,610 īpaši neaizsargāti. 82 00:04:01,610 --> 00:04:04,670 Tātad, ja jūs domājat, ka jūs ir super gudrs, ņemot slēpto vārdu 83 00:04:04,670 --> 00:04:07,740 dokumentēt kaut kur uz cietā diska, kas ir visas jūsu paroles, bet 84 00:04:07,740 --> 00:04:10,550 tas mapē, ka neviens gatavojas meklēt, kas arī nav ļoti 85 00:04:10,550 --> 00:04:11,540 drošs mehānisms. 86 00:04:11,540 --> 00:04:15,100 Un tā, ko 2 PSET ieviesīs tas māksla kriptogrāfiju un 87 00:04:15,100 --> 00:04:18,300 kodēšanas informācija, lai lietas, piemēram, paroles, ir 88 00:04:18,300 --> 00:04:19,500 visi drošāku. 89 00:04:19,500 --> 00:04:24,500 Lai motivētu šo ļoti reālās pasaules problēmas ar ļoti nav reālā pasaule 90 00:04:24,500 --> 00:04:28,740 scenārijs, ļaujiet man jūs iepazīstināt ar mūsu mīļākie klipus to šeit no šīs 91 00:04:28,740 --> 00:04:29,895 filma, Spaceballs. 92 00:04:29,895 --> 00:04:30,565 >> [VIDEO ATSKAŅOŠANA] 93 00:04:30,565 --> 00:04:32,995 -Ķivere, jūs velns, kas notiek? 94 00:04:32,995 --> 00:04:34,730 Ko jūs darāt, lai mana meita? 95 00:04:34,730 --> 00:04:38,960 -Ļaujiet man iepazīstināt izcili jauno plastikas ķirurgs, Dr Philip 96 00:04:38,960 --> 00:04:43,290 Schlotkin, vislielākais deguns darbs cilvēks visu 97 00:04:43,290 --> 00:04:45,526 Visums un Beverly Hills. 98 00:04:45,526 --> 00:04:46,450 -Jūsu Augstība. 99 00:04:46,450 --> 00:04:47,380 -Deguns darbu? 100 00:04:47,380 --> 00:04:48,035 Es nesaprotu. 101 00:04:48,035 --> 00:04:49,480 Viņa jau bija deguns darbu. 102 00:04:49,480 --> 00:04:51,490 Tas bija salds 16 klāt. 103 00:04:51,490 --> 00:04:53,090 -Nē, tas nav tas, ko tu domā. 104 00:04:53,090 --> 00:04:55,150 Tas ir daudz, daudz sliktāk. 105 00:04:55,150 --> 00:04:59,860 Ja tu nedod man kombināciju ar gaisa vairogs, Dr Schlotkin būs 106 00:04:59,860 --> 00:05:04,135 sniegt savu meitu atpakaļ savu veco degunu. 107 00:05:04,135 --> 00:05:05,385 -Nē! 108 00:05:08,202 --> 00:05:10,186 Kur tu tā? 109 00:05:10,186 --> 00:05:11,178 -Nu labi. 110 00:05:11,178 --> 00:05:11,674 Es jums saku. 111 00:05:11,674 --> 00:05:12,666 Es jums saku. 112 00:05:12,666 --> 00:05:14,154 -Nē, tētis, nē. 113 00:05:14,154 --> 00:05:15,150 Jūs nedrīkstat. 114 00:05:15,150 --> 00:05:16,460 -Jūs esat nokļuvis labi, mans mīļais. 115 00:05:16,460 --> 00:05:18,450 Es garām savu jauno degunu. 116 00:05:18,450 --> 00:05:21,550 Bet es nevaru pateikt viņiem kombināciju vienalga ko. 117 00:05:21,550 --> 00:05:23,100 -Ļoti labi. 118 00:05:23,100 --> 00:05:25,510 Dr Schlotkin, darīt savu sliktāko. 119 00:05:25,510 --> 00:05:26,760 -Mans prieks. 120 00:05:30,560 --> 00:05:31,180 -Nē! 121 00:05:31,180 --> 00:05:33,450 Pagaidiet, pagaidiet. 122 00:05:33,450 --> 00:05:34,770 Es jums saku. 123 00:05:34,770 --> 00:05:36,400 Es jums saku. 124 00:05:36,400 --> 00:05:38,630 -Es zināju, ka tā varētu strādāt. 125 00:05:38,630 --> 00:05:42,040 Labi, dod to man. 126 00:05:42,040 --> 00:05:46,890 -Kombinācija ir viens. 127 00:05:46,890 --> 00:05:47,290 -One. 128 00:05:47,290 --> 00:05:48,183 -One. 129 00:05:48,183 --> 00:05:48,950 -Divi. 130 00:05:48,950 --> 00:05:49,370 -Divi. 131 00:05:49,370 --> 00:05:50,450 -Divi. 132 00:05:50,450 --> 00:05:50,715 -Trīs 133 00:05:50,715 --> 00:05:51,380 -Trīs. 134 00:05:51,380 --> 00:05:52,390 -Trīs. 135 00:05:52,390 --> 00:05:53,200 Četrzvaigžņu. 136 00:05:53,200 --> 00:05:53,720 Četrzvaigžņu. 137 00:05:53,720 --> 00:05:55,830 Četrzvaigžņu. 138 00:05:55,830 --> 00:05:56,580 -Pieci 139 00:05:56,580 --> 00:05:57,120 -Pieci. 140 00:05:57,120 --> 00:05:58,560 -Pieci. 141 00:05:58,560 --> 00:06:03,770 -Tātad kombinācija ir viens, divi, trīs, četri, pieci. 142 00:06:03,770 --> 00:06:06,745 Tas ir stupidest kombinācija es jebkad dzirdējis manā dzīvē. 143 00:06:06,745 --> 00:06:09,290 Tas ir tāda veida lieta idiots būtu viņa bagāžu. 144 00:06:09,290 --> 00:06:11,540 -Paldies, Jūsu Augstība. 145 00:06:11,540 --> 00:06:12,940 -Ko jūs darījāt? 146 00:06:12,940 --> 00:06:14,230 -Man palika pie sienas. 147 00:06:14,230 --> 00:06:14,630 -Nē, jums nav. 148 00:06:14,630 --> 00:06:15,430 Jūs izslēgt visu filmu. 149 00:06:15,430 --> 00:06:16,722 -Man ir nospiests nepareizs pogas. 150 00:06:16,722 --> 00:06:18,078 -Nu, ielieciet to atpakaļ. 151 00:06:18,078 --> 00:06:18,805 Ielieciet filmu atpakaļ. 152 00:06:18,805 --> 00:06:19,080 -Jā, kungs. 153 00:06:19,080 --> 00:06:19,270 Jā, kungs. 154 00:06:19,270 --> 00:06:19,830 -Let 's go, Erna. 155 00:06:19,830 --> 00:06:20,270 Nāc, Gretchen. 156 00:06:20,270 --> 00:06:22,850 Protams, jūs zināt, es joprojām ir arī rēķinu par šo. 157 00:06:27,400 --> 00:06:28,325 -Nu, tas darbojas? 158 00:06:28,325 --> 00:06:29,550 Kur ir vārti? 159 00:06:29,550 --> 00:06:29,910 -Tā strādāja, kungs. 160 00:06:29,910 --> 00:06:30,770 Mums ir kombinācija. 161 00:06:30,770 --> 00:06:31,390 -Lieliski. 162 00:06:31,390 --> 00:06:35,630 Tagad mēs varam veikt katru pēdējo elpu svaigu gaisu no planētas Druidia. 163 00:06:35,630 --> 00:06:36,550 Kas ir kombinācija? 164 00:06:36,550 --> 00:06:38,805 -Viens, divi, trīs, četri, pieci. 165 00:06:38,805 --> 00:06:40,610 -Viens, divi, trīs, četri, pieci? 166 00:06:40,610 --> 00:06:41,070 -Jā. 167 00:06:41,070 --> 00:06:41,760 -Tas ir pārsteidzošs. 168 00:06:41,760 --> 00:06:45,200 Man to pašu kombināciju manā bagāžā. 169 00:06:45,200 --> 00:06:47,800 Sagatavot Spaceball 1 tūlītējai izbraukšanas. 170 00:06:47,800 --> 00:06:48,536 -Jā, kungs. 171 00:06:48,536 --> 00:06:52,350 -Un mainīt kombināciju par manu bagāžu. 172 00:06:52,350 --> 00:06:53,250 -Ā! 173 00:06:53,250 --> 00:06:55,020 [END VIDEO ATSKAŅOŠANA] 174 00:06:55,020 --> 00:06:57,470 >> David J. Malan: pārsteidzošs filma jums tagad visi redzēt. 175 00:07:00,600 --> 00:07:06,540 Tāpēc konteksts šeit ir tāda, ka ar nedrošiem datiem nāk iespēja 176 00:07:06,540 --> 00:07:07,790 šifrēt to un motokross to. 177 00:07:07,790 --> 00:07:11,060 Un tā tas, piemēram, ir piemērs no šifrētu ziņu. 178 00:07:11,060 --> 00:07:12,980 Tas tiešām saka kaut ko angliski. 179 00:07:12,980 --> 00:07:14,750 Bet tas noteikti nav pilnīgi skaidrs. 180 00:07:14,750 --> 00:07:17,360 Un mēs būsim pilnu apli šodien kaitināt neatkarīgi ko tas noslēpums 181 00:07:17,360 --> 00:07:18,380 ziņa šeit ir. 182 00:07:18,380 --> 00:07:22,370 Bet reālajā pasaulē datoriem, lietas nav pat izskatās viņi varētu 183 00:07:22,370 --> 00:07:23,440 būt angļu frāzes. 184 00:07:23,440 --> 00:07:27,500 Piemēram, tas ir tas, ko jūs varētu atrast standarta Linux vai Mac vai 185 00:07:27,500 --> 00:07:32,080 Unix datoru failā, kas bija reiz sauc paroli failu. 186 00:07:32,080 --> 00:07:34,170 Mūsdienās, tas ir pārcelts uz citām vietām. 187 00:07:34,170 --> 00:07:38,660 Bet, ja paskatās īstajā vietā sistēmu, jūs redzēsiet ne tikai savu 188 00:07:38,660 --> 00:07:41,430 lietotājvārds vai citu cilvēku uz sistēmu, bet jūs redzēsiet 189 00:07:41,430 --> 00:07:43,410 šifrētu versija par to paroli. 190 00:07:43,410 --> 00:07:47,800 Patiešām, vārds kapenes tur liecina, ka šādi sīkumi tiek šifrēta. 191 00:07:47,800 --> 00:07:52,030 Un šis šķietami izlases burtu un rakstzīmju un ciparu sēriju un 192 00:07:52,030 --> 00:07:56,370 utt var atšifrēt tikai vispārīgi zinot kādu noslēpumu - 193 00:07:56,370 --> 00:07:58,600 noslēpums vārdu, noslēpums numuru. 194 00:07:58,600 --> 00:08:02,760 Un tā patiesi, par kriptogrāfiju galu galā vārīties uz leju māksla uzticēties dažus 195 00:08:02,760 --> 00:08:05,700 šķirot un zinot kaut ka kāds cits nav. 196 00:08:05,700 --> 00:08:10,010 Mēs izpētīt šo mazliet sīkāk šodien un PSET nākt. 197 00:08:10,010 --> 00:08:11,860 >> Un tagad vārdu par der / neder. 198 00:08:11,860 --> 00:08:15,250 Jo īpaši tāpēc, kā daži no jums ir ienira 1 PSET, ierīces, un 199 00:08:15,250 --> 00:08:18,390 ļoti jauna pasaule par sevi, sapratu, ka neapmierinātību un 200 00:08:18,390 --> 00:08:21,340 apjukums un vienkārši tehniskas grūtības ir sagaidāmas. 201 00:08:21,340 --> 00:08:24,410 Speciāli ar pirmo PSET, kur tur ir tikai tik daudz jauna, tikai kļūst 202 00:08:24,410 --> 00:08:28,830 iepazinušies ar ls un cd un visu šo mistiskā komandas jaunā vidē. 203 00:08:28,830 --> 00:08:32,679 Un tas ir nodalīta no faktisko materiālu un pašu programmu. 204 00:08:32,679 --> 00:08:35,960 Tātad saproti arī, ka pastāv noteikti darba laiks, kas pastāv kā 205 00:08:35,960 --> 00:08:36,770 atbalsta struktūra. 206 00:08:36,770 --> 00:08:38,620 Sadaļas sākt šo nāk svētdiena. 207 00:08:38,620 --> 00:08:41,990 Bet pats galvenais, ja jūs sajūta tikai, ka tas nav 208 00:08:41,990 --> 00:08:44,420 pasaule par jums, saprotu, ka tas tiešām tikai vajadzīgs laiks. 209 00:08:44,420 --> 00:08:47,520 Un ja nebūtu šo iespēju gadiem man par ņemot klase 210 00:08:47,520 --> 00:08:50,840 / neatbilstības, godīgi, es nekad nebūtu pat kāju klasē. 211 00:08:50,840 --> 00:08:53,520 Un jūs varat mainīt šo līdz, teiksim, piektā kursa pirmdiena. 212 00:08:53,520 --> 00:08:57,110 Tātad, ja jūs esat uz malas tagad saprotam, ka nevis galva uz kādu citu 213 00:08:57,110 --> 00:09:01,000 ūdeņi vispār, vai noteikti jāapsver tikai mainot nodot / neizdoties. 214 00:09:01,000 --> 00:09:03,750 Atkal, tur nav īsti šī kultūra šeit Hārvarda no ņemot lietas 215 00:09:03,750 --> 00:09:08,080 / neatbilstības jo visi patiešām vēlas sasniegt vai overachieve. 216 00:09:08,080 --> 00:09:11,470 Bet godīgi sakot, tas ir brīnišķīgs veids, kā mēģināt kaut ko, kas varbūt nav 217 00:09:11,470 --> 00:09:13,110 būs pazīstams ar jums. 218 00:09:13,110 --> 00:09:17,090 Un jūs galu galā darīt vairumā gadījumu diezgan smalkas, varbūt 219 00:09:17,090 --> 00:09:18,040 daudz jūsu pārsteigums. 220 00:09:18,040 --> 00:09:20,850 Un vēl konkrēti, ko es domāju / neatbilstības parasti dara, 221 00:09:20,850 --> 00:09:23,350 jo, kā jūs varētu būt pieredzējuši ar 0 PSET, ja esat likts 222 00:09:23,350 --> 00:09:27,200 kas 10 stundas, 15 stundas, 25 stundas par dažām PSET - un jūs tikai banging 223 00:09:27,200 --> 00:09:28,180 galvu pret sienu, 224 00:09:28,180 --> 00:09:29,850 un tas kļūst super vēlu naktī, 225 00:09:29,850 --> 00:09:31,880 bet tu esi PSET tāpat 90% no ceļu, 226 00:09:31,880 --> 00:09:33,780 Jūs zināt, jūs vienkārši nevar izrēķināt viena lieta - 227 00:09:33,780 --> 00:09:36,830 / neatbilstības patiešām ņem malas off no klases, piemēram, tas, kur jūs varat kārtot 228 00:09:36,830 --> 00:09:39,150 gada laimīgi saka labi, es zinu, tas nav ideāls. 229 00:09:39,150 --> 00:09:40,470 Bet es strādāju manu ass off par šo. 230 00:09:40,470 --> 00:09:42,410 Es esmu diezgan apmierināts ar kur tas beidzās. 231 00:09:42,410 --> 00:09:44,780 Un ka būs cerības uz der / neder. 232 00:09:44,780 --> 00:09:46,850 Tātad paturēt to prātā. 233 00:09:46,850 --> 00:09:47,140 >> Labi. 234 00:09:47,140 --> 00:09:50,980 Tātad tiem no jums, kuri ir cīnījušies, lai izmantotu Harvard University Wi-Fi zināt 235 00:09:50,980 --> 00:09:54,780 ka tur CS50 SSID, Wi-Fi savienojums peldošs apkārt, ka jums 236 00:09:54,780 --> 00:09:56,520 varētu būt labāk veicas par. 237 00:09:56,520 --> 00:09:59,430 Tas mazliet ironiski, ka paroles par šo - ja vēlaties izmēģināt 238 00:09:59,430 --> 00:10:03,080 savieno ar šo par labāku ātrumu un dariet mums zināmu, ja tas nav labāk - 239 00:10:03,080 --> 00:10:09,240 ir viens, divi, trīs, četri, pieci, visu ceļu līdz pat astoņiem jo astoņi ir 240 00:10:09,240 --> 00:10:10,270 drošāka nekā pieci. 241 00:10:10,270 --> 00:10:15,520 Tātad, ja jums ir nepieciešama Wi-Fi paroli, izveidojiet savienojumu ar CS50 bezvadu šeit. 242 00:10:15,520 --> 00:10:16,950 Viens, divi, trīs, četri, pieci, seši, septiņi, astoņi. 243 00:10:16,950 --> 00:10:20,440 Un pēc gada CS50 Pārrunājiet, ja jums vēl ir neregulāra savienojumu jautājumiem, 244 00:10:20,440 --> 00:10:24,880 un mēs pieņemsim pilnvaras, kas būtu jāzina par šo telpu. 245 00:10:24,880 --> 00:10:25,180 >> Labi. 246 00:10:25,180 --> 00:10:30,350 Tik ātri ķircinātājs, jo īpaši tiem no jums, kas ir fanu zēni vai meitenes 247 00:10:30,350 --> 00:10:31,900 visas lietas Apple. 248 00:10:31,900 --> 00:10:37,566 Ko es izraka no pāris gadus atpakaļ bija šo failu šeit, ilock.c, tikai lai 249 00:10:37,566 --> 00:10:40,930 veida padarīt konkrētākas un sarežģītāka kādu no vairāk pamata C 250 00:10:40,930 --> 00:10:42,350 programmas mēs esam rakstiski. 251 00:10:42,350 --> 00:10:44,360 Tāpēc es atvēra šo failu, ilock.c. 252 00:10:44,360 --> 00:10:46,830 Tas ir pieejams par Lekciju lapā šodien. 253 00:10:46,830 --> 00:10:49,470 Kreisajā pusē, jūs redzēsiet garš saraksts funkcijas. 254 00:10:49,470 --> 00:10:51,860 Tātad puisis, kurš rakstīja šo uzrakstīja daudz funkciju, 255 00:10:51,860 --> 00:10:53,290 vairāk nekā tikai galvenais. 256 00:10:53,290 --> 00:10:55,490 Viņš izmantoja visu ķekars bibliotēku šeit. 257 00:10:55,490 --> 00:11:00,450 Un, ja mēs sāktu ritinàt, ko tas patiesībā ir, ir ļoti 258 00:11:00,450 --> 00:11:04,670 pirmkārt, es uzskatu, kreka par sākotnējo IPHONE. 259 00:11:04,670 --> 00:11:08,000 Ja jūs vēlaties, lai jailbreak sākotnējo iPhone, kas nozīmē untether 260 00:11:08,000 --> 00:11:11,800 tas no AT & T un faktiski instalēt īpašu programmatūru par to un darīt lietas 261 00:11:11,800 --> 00:11:13,510 ka Apple nevēlējās cilvēkiem darīt - 262 00:11:13,510 --> 00:11:17,020 labi, kāds bija laiks, lai noskaidrotu, kā tieši viņi varētu izmantot 263 00:11:17,020 --> 00:11:20,880 programmatūras kļūdas, kļūdas, bugs, jo Apple programmatūru. 264 00:11:20,880 --> 00:11:22,650 Un tādējādi dzimis ilock.c. 265 00:11:22,650 --> 00:11:26,670 Ka, ja jūs apkopota to uz datora un uzstāda to uz iPhone, kas 266 00:11:26,670 --> 00:11:29,810 bija saistīts ar datoru, izmantojot, teiksim, izmantojot USB kabeli, tas dod jums 267 00:11:29,810 --> 00:11:33,360 administratīvi vai saknes privilēģijas uz jūsu iPhone, un ļauj jums darīt diezgan daudz 268 00:11:33,360 --> 00:11:34,170 ko jūs vēlaties. 269 00:11:34,170 --> 00:11:36,740 >> Un tā tur ir bijis šis aizraujoši kaķis un pele starp Apple spēli un 270 00:11:36,740 --> 00:11:39,920 pārējā pasaule jo īpaši tie, tāpat kā daudziem uzņēmumiem, mēģināt, lai bloķētu 271 00:11:39,920 --> 00:11:43,220 viņu sīkumi leju, lai jūs varētu darīt tikai ar to, ko viņi vēlas. 272 00:11:43,220 --> 00:11:46,620 Bet, pateicoties tādiem cilvēkiem kā šis, un viņu izpratne par zema līmeņa 273 00:11:46,620 --> 00:11:50,580 informācija un, šajā gadījumā, C programmēšana un no pazīstamajiem konstrukcijas krava 274 00:11:50,580 --> 00:11:54,630 ka mēs esam sākuši spēlēt ar, jums ir iespēja tiešām sviras 275 00:11:54,630 --> 00:11:59,050 aparatūra veidā redzat fit un ne vienmēr kādu komersantu. 276 00:11:59,050 --> 00:12:01,360 Tātad, piemēram, man nav ne jausmas, ko tas viss dara. 277 00:12:01,360 --> 00:12:03,220 Bet GetVersion izklausās diezgan vienkārši. 278 00:12:03,220 --> 00:12:05,480 Un izskatās, ka tas ir funkcija, ka šī persona rakstīja. 279 00:12:05,480 --> 00:12:09,240 Ņemt kādu skaitlim kā argumentu, neatgriež neko, bet 280 00:12:09,240 --> 00:12:13,080 Šķiet cilpa ar par cilpu šeit un ja stāvoklī, ja nosacījums, 281 00:12:13,080 --> 00:12:15,620 pauze, un kaut kā saistīts ar versiju numuriem. 282 00:12:15,620 --> 00:12:16,700 Ja mēs ritiniet uz leju - 283 00:12:16,700 --> 00:12:19,570 pat ja no šiem atslēgvārdiem partijas būs jaunas, un tur 284 00:12:19,570 --> 00:12:22,590 Visai daudz funkciju šeit mēs nekad neesmu redzējis, un, iespējams, kādreiz redzēt pāri 285 00:12:22,590 --> 00:12:23,830 kurss semestrī - 286 00:12:23,830 --> 00:12:27,150 beigās, dienā, tas ievēro tos pašus noteikumus un loģiku, ka mēs esam 287 00:12:27,150 --> 00:12:28,760 spēlē ar līdz šim. 288 00:12:28,760 --> 00:12:34,220 Tātad tas ir pārāk vecs, lai kreka jūsu iPhone 3s vai 4s vai drīz 5s, šajās dienās, 289 00:12:34,220 --> 00:12:37,320 bet zinu, ka tas viss ir ļoti daudz iegūst no šīs pasaules, ka mēs esam 290 00:12:37,320 --> 00:12:38,430 ienira. 291 00:12:38,430 --> 00:12:41,900 >> Tāpēc pieņemsim to apskatīt nedaudz vairāk vienkāršs piemērs. 292 00:12:41,900 --> 00:12:46,100 Tas viens, tikai, lai iesilda ar kādu sintaksi un arī daži citi dati 293 00:12:46,100 --> 00:12:49,240 veids, ka mēs esam runājuši par to, bet nav īsti redzams C. Tātad šis ir 294 00:12:49,240 --> 00:12:51,680 failu sauc positive1.c. 295 00:12:51,680 --> 00:12:55,120 Un vienu augšpusē komentāriem, tas tikai prasa, lai lietotājs nodrošina 296 00:12:55,120 --> 00:12:55,960 pozitīvs skaitlis. 297 00:12:55,960 --> 00:12:59,530 Tātad, tas ir piemērs do-kamēr cilpa, kas ir jauki, lai lietotājam interaktīvu 298 00:12:59,530 --> 00:13:01,980 programmas, kur jums ir nepieciešams, lai pastāstītu lietotājam kaut ko darīt. 299 00:13:01,980 --> 00:13:05,190 Un, ja tie nav sadarboties, jūs kliegt uz viņiem vai noraidīt savu ieguldījumu. 300 00:13:05,190 --> 00:13:11,610 Sakāms, es esmu gatavojas darīt līnijas 19 līdz 24, kamēr lietotājs ir 301 00:13:11,610 --> 00:13:14,310 man nav devis pozitīvu skaitli. 302 00:13:14,310 --> 00:13:20,400 Tagad šī detaļa šeit 18 līnijas, kāpēc es apliecinu n iepriekš šo visu 303 00:13:20,400 --> 00:13:24,490 looping būvēt nevis blakus līdz 22 līnijas, kur es 304 00:13:24,490 --> 00:13:26,880 tiešām rūp, lai iegūtu n? 305 00:13:26,880 --> 00:13:27,330 Yeah? 306 00:13:27,330 --> 00:13:27,780 [Dzirdams] 307 00:13:27,780 --> 00:13:29,040 >> David J. Malan: Jā, tā tas jautājums par darbības jomu. 308 00:13:29,040 --> 00:13:30,850 Un lajs pilnvaru laikā, ko tas joma attiecas uz? 309 00:13:34,690 --> 00:13:36,610 Yeah? 310 00:13:36,610 --> 00:13:37,860 [Dzirdams] 311 00:13:40,040 --> 00:13:41,105 David J. Malan: Vai tu runā nedaudz skaļāk? 312 00:13:41,105 --> 00:13:43,450 SPEAKER 1: Kur jūs varat piekļūt konkrētu mainīgo. 313 00:13:43,450 --> 00:13:45,170 David J. Malan: Perfect. 314 00:13:45,170 --> 00:13:47,360 Kur jūs varat piekļūt konkrētu mainīgo. 315 00:13:47,360 --> 00:13:50,400 Un vispār, īkšķis noteikums līdz šim ir bijis, ka dažu darbības joma 316 00:13:50,400 --> 00:13:55,860 mainīgais ir definēts ar jaunākajiem cirtaini bikšturi ka esat redzējuši. 317 00:13:55,860 --> 00:14:02,010 Un tāpēc šajā gadījumā, ja es sniedza kļūda paziņojot n 22 līnijas, 318 00:14:02,010 --> 00:14:03,010 ka līnija varētu strādāt. 319 00:14:03,010 --> 00:14:10,990 Es vēlos saņemt int, un es liktu to, ka mainīgais N 22 rindā. 320 00:14:10,990 --> 00:14:16,900 Bet kas rindā kodu, tagad nav ne jausmas, ko es runāju par? 321 00:14:16,900 --> 00:14:22,650 Tātad 25, un izrādās, 24, kā arī, jo šajā gadījumā, tā atrodas ārpus 322 00:14:22,650 --> 00:14:23,610 no cirtaini lencēm. 323 00:14:23,610 --> 00:14:27,280 Tik vienkārši nedaudz par traucējumu mazliet, bet ļoti viegli atrisināt, vienkārši paziņojot 324 00:14:27,280 --> 00:14:30,140 mainīgo ārpus funkciju pati. 325 00:14:30,140 --> 00:14:32,600 >> Tagad mēs redzēsim vēlāk šodien, jūs varat iet vienu soli tālāk. 326 00:14:32,600 --> 00:14:34,860 Un jūs pat varētu saņemt nedaudz slinks - 327 00:14:34,860 --> 00:14:37,320 un tas nav ieteicams, jo vispār - 328 00:14:37,320 --> 00:14:42,260 bet jūs pat varētu saņemt slinks un nodot mainīgo globāli, tā teikt, ne 329 00:14:42,260 --> 00:14:46,670 iekšpusē funkciju, nevis iekšpusē cilpas, bet failu pati, ārpus 330 00:14:46,670 --> 00:14:49,600 no visas funkcijas jūs esat rakstiski, jo es darīju šeit 15 līnijas. 331 00:14:49,600 --> 00:14:51,160 Bet tas parasti ir sarauca pieri. 332 00:14:51,160 --> 00:14:55,680 Bet saprotu, tas ir risinājums reizēm citas problēmas, jo mēs 333 00:14:55,680 --> 00:14:56,620 beidzot redzēt. 334 00:14:56,620 --> 00:14:58,130 Tātad tagad, mēs atstāt to kā šis. 335 00:14:58,130 --> 00:15:01,030 Bet pieņemsim redzēt, ja mēs varam pārrakstīt šo tikai sākt izteikt sevi 336 00:15:01,030 --> 00:15:01,990 nedaudz savādāk. 337 00:15:01,990 --> 00:15:05,330 >> Tātad šī programma, tikai, lai būtu skaidrs, ir positive1. 338 00:15:05,330 --> 00:15:11,810 Ļaujiet man iet uz priekšu šeit un manā termināļa logā padarīt positive1, Enter. 339 00:15:11,810 --> 00:15:12,740 Apkopo, labi. 340 00:15:12,740 --> 00:15:14,910 Es esmu gatavojas palaist positive1, hit Enter. 341 00:15:14,910 --> 00:15:16,820 Es pieprasu, ka jūs man vesels pozitīvs skaitlis. 342 00:15:16,820 --> 00:15:18,260 Es saku -1. 343 00:15:18,260 --> 00:15:18,910 Tas nestrādāja. 344 00:15:18,910 --> 00:15:22,150 0, 99, kas, šķiet, darbojas. 345 00:15:22,150 --> 00:15:23,570 Varbūt ne visvairāk stingra pārbaude. 346 00:15:23,570 --> 00:15:26,480 Bet vismaz tas ir jauki veselība pārbaudītu, ka mēs esam uz pareizā ceļa. 347 00:15:26,480 --> 00:15:29,240 Tāpēc tagad ļaujiet man iet uz priekšu un atvērt šīs divas versijas. 348 00:15:29,240 --> 00:15:32,500 Un kas ir atšķirīgs jau? 349 00:15:32,500 --> 00:15:35,140 Tā īsteno to pašu. 350 00:15:35,140 --> 00:15:40,660 Bet kas ir lekt kā nepārprotami atšķiras šajā laikā? 351 00:15:40,660 --> 00:15:42,560 Jā, tā tas bool zaļā krāsā. 352 00:15:42,560 --> 00:15:45,980 Gedit ir iezīmēts zaļā krāsā šo atslēgvārdu pazīstams kā bool, 353 00:15:45,980 --> 00:15:47,000 kas ir datu tips. 354 00:15:47,000 --> 00:15:51,080 Tas nenāk uzcelta uz visiem C. versijām Jums nepieciešams iekļaut 355 00:15:51,080 --> 00:15:52,010 īpaša bibliotēka. 356 00:15:52,010 --> 00:15:54,770 Mūsu gadījumā, es iekļauta CS50 bibliotēku, lai mēs 357 00:15:54,770 --> 00:15:56,460 piekļūt bool. 358 00:15:56,460 --> 00:15:59,810 Bet 18 līnijā, mēs, šķiet, ir Būla vērtība šeit sauc pateicīgi. 359 00:15:59,810 --> 00:16:01,040 Lai es varētu būt sauc šo neko. 360 00:16:01,040 --> 00:16:04,500 Bet es to sauca pateicīgs tikai veida izteikt dažus semantisko nozīmi. 361 00:16:04,500 --> 00:16:07,930 Tātad sākotnēji 18 līnijas, es neesmu acīmredzot nav pateicīgs, jo 362 00:16:07,930 --> 00:16:12,150 Būla vērtība pateicīgi tiek inicializēts ar viltus 18 rindā. 363 00:16:12,150 --> 00:16:16,890 Un tad šķiet, ko es esmu darījusi šeit 21 līnijām līdz 23 ir man tikko 364 00:16:16,890 --> 00:16:18,610 veida pārrakstīt manu loģiku. 365 00:16:18,610 --> 00:16:21,020 Līdz ar to nav funkcionāli atšķirīgs. 366 00:16:21,020 --> 00:16:26,940 Bet 22 līnija tagad, es varētu pārbaudīt, vai int lietotājs ir nodrošināts ir lielāks nekā 367 00:16:26,940 --> 00:16:31,120 0, tad es vienkārši mainīt vērtību pateicīgs taisnība. 368 00:16:31,120 --> 00:16:32,290 Un kāpēc es varu darīt? 369 00:16:32,290 --> 00:16:35,600 Jo 25 līnija, acīmredzot, es esmu gatavojas pārbaudīt stāvokli. 370 00:16:35,600 --> 00:16:39,380 Vai šī cilpa, kamēr pateicīgi ir nepatiesa. 371 00:16:39,380 --> 00:16:43,610 >> Tāpēc es ierosinu to kā alternatīvu vienas versijas, jo tas ir vismaz 372 00:16:43,610 --> 00:16:45,130 nedaudz vairāk intuitīvu, varbūt. 373 00:16:45,130 --> 00:16:46,900 Tas nedaudz vairāk balstīta angļu valodā. 374 00:16:46,900 --> 00:16:51,710 Tā darīt tālāk, kamēr jūs neesat pateicīgi vai kamēr pateicīgi ir nepatiesa. 375 00:16:51,710 --> 00:16:55,890 Un šoreiz, arī es acīmredzot negribu atcerēties, ko lietotājs drukāti 376 00:16:55,890 --> 00:16:57,730 kas jo paziņojumā tur nav mainīgo n. 377 00:16:57,730 --> 00:16:58,650 Tātad patiesībā, es - 378 00:16:58,650 --> 00:17:00,080 maz balta meli tur. 379 00:17:00,080 --> 00:17:02,770 Funkcionāli, programma ir nedaudz atšķirīgs, kad mēs nokļūt uz leju 380 00:17:02,770 --> 00:17:04,819 tas tāpēc, ka es neesmu atcerēties to, ko n. 381 00:17:04,819 --> 00:17:09,579 Bet es gribēju parādīt arī šeit, ka, lai gan mēs esam redzējuši GetInt un 382 00:17:09,579 --> 00:17:13,920 GetString ko izmanto par labajā pusē vienādības zīmi līdz šim tā, ka 383 00:17:13,920 --> 00:17:17,160 mēs atceramies vērtību, tehniski, tas nav obligāti nepieciešams. 384 00:17:17,160 --> 00:17:20,950 Ja kāda iemesla dēļ jūs vienkārši nav aprūpi, lai saglabātu vērtību, jūs vienkārši vēlaties 385 00:17:20,950 --> 00:17:25,710 lai pārbaudītu vērtību, pamanīsiet, ka mēs varam vienkārši rakstīt šo kā GetInt atvērts 386 00:17:25,710 --> 00:17:27,000 paren, tuvu paren. 387 00:17:27,000 --> 00:17:30,460 Ka funkcija ir gatavojas atgriezties vērtību, jo mēs esam teikuši. 388 00:17:30,460 --> 00:17:32,010 Tas notiek, lai dotu jums atpakaļ int. 389 00:17:32,010 --> 00:17:36,450 Un tā, ja jūs garīgi domā par šo notiek, kad es rakstīt 99, GetInt 390 00:17:36,450 --> 00:17:38,160 atgriež skaitli 99. 391 00:17:38,160 --> 00:17:41,330 Un tā konceptuāli, tas ir, it kā mans kods ir faktiski šo. 392 00:17:41,330 --> 00:17:45,880 Tātad, ja 99 ir patiešām lielāks par 0, tad pateicīgs kļūst patiesa. 393 00:17:45,880 --> 00:17:50,420 Tad līnijas 25 saprot ooh, mēs esam darīts, jo es esmu tagad pateicīgs. 394 00:17:50,420 --> 00:17:54,590 Un 26 līnija, mēs vienkārši saka, paldies par pozitīvam skaitlim, kāds tas 395 00:17:54,590 --> 00:17:55,710 gadījās būt. 396 00:17:55,710 --> 00:17:58,900 >> Tagad pieņemsim do nedaudz sintaktisko cukura šeit, lai runāt. 397 00:17:58,900 --> 00:18:02,990 Redzēsim, vai mēs varam sakopt šo pozīciju 25 ar šo trešo un pēdējo dispersijas 398 00:18:02,990 --> 00:18:04,640 jo positive3. 399 00:18:04,640 --> 00:18:08,250 Tātad paziņojums vienīgā atšķirība tagad ir kāda līnija kodu? 400 00:18:11,930 --> 00:18:13,260 Yeah, tāpēc 25. 401 00:18:13,260 --> 00:18:15,520 Un mēs esam nav īsti redzējuši šo triks tikai yet. 402 00:18:15,520 --> 00:18:19,510 Bet mēs redzēt izsaukuma zīmi pirmdien, ko apzīmē ko? 403 00:18:19,510 --> 00:18:20,970 Tātad ne, vai noliegums. 404 00:18:20,970 --> 00:18:23,460 Tātad to Būla vērtību un uzsist savu vērtību. 405 00:18:23,460 --> 00:18:24,390 Patiess kļūst nepatiesa. 406 00:18:24,390 --> 00:18:25,500 Viltus kļūst patiesa. 407 00:18:25,500 --> 00:18:28,910 Tātad, es ierosinu, ir pat nedaudz vairāk intuitīvu par veidu 408 00:18:28,910 --> 00:18:32,200 rakstot kodu, jo es vēl sāktu pateicīgs nepatiesa. 409 00:18:32,200 --> 00:18:33,530 Es joprojām rīkoties šādi. 410 00:18:33,530 --> 00:18:35,700 Es noteikti pateicīgs taisnība, kad pienāks laiks. 411 00:18:35,700 --> 00:18:40,690 Bet tagad jūs varat patiešām vienkārši tulkot šo kodu mutiski kreisās uz labo, 412 00:18:40,690 --> 00:18:42,550 kamēr nav pateicīgi. 413 00:18:42,550 --> 00:18:46,170 Jo sprādziena, vai izsaukuma zīme, apzīmē jēdzienu nav, tāpēc, kamēr 414 00:18:46,170 --> 00:18:47,010 nav pateicīgi. 415 00:18:47,010 --> 00:18:49,740 >> Tātad vēlreiz, mēs esam nav ieviesusi jaunus jēdzienus par sevi. 416 00:18:49,740 --> 00:18:53,230 Mēs esam runājuši par booleans atpakaļ, kad mēs spēlējām ar nulles. 417 00:18:53,230 --> 00:18:55,690 Bet saprotu, tagad mēs varam tikai sākt rakstīt savu kodu 418 00:18:55,690 --> 00:18:56,550 daudzi un dažādi veidi. 419 00:18:56,550 --> 00:19:00,010 Jo īpaši tāpēc pset1, ja jūs esat veida cīnās, lai noskaidrotu ceļu uz 420 00:19:00,010 --> 00:19:03,400 uzrakstīt kādu programmu, izredzes ir tu esi veiksmi, jo tur būs kāds 421 00:19:03,400 --> 00:19:05,780 risinājumu skaits, kas var notikt pēc. 422 00:19:05,780 --> 00:19:09,850 Piemēram, tas ir tikai trīs, pat vienkāršāko programmu. 423 00:19:09,850 --> 00:19:10,180 Labi. 424 00:19:10,180 --> 00:19:13,860 Un tagad atceros pirmdien, mēs atstājām uz šo piezīmi ar atgriešanās vērtībām. 425 00:19:13,860 --> 00:19:18,280 Tātad par ļoti pirmo reizi, mēs uzrakstīja programmu, kas nav vienkārši ir galvenais, 426 00:19:18,280 --> 00:19:22,240 Tā arī ir sava pielāgotu funkciju, ka es uzrakstīju šeit. 427 00:19:22,240 --> 00:19:26,640 Tātad caur 34 31 līnija, es esmu ieviesta kuba funkciju. 428 00:19:26,640 --> 00:19:27,800 Tas nav sarežģīti. 429 00:19:27,800 --> 00:19:29,830 Tas ir tikai reizes nedēļā reizes, šajā gadījumā. 430 00:19:29,830 --> 00:19:34,920 Bet kas ir svarīgi par to, ka es esmu ņemot ieguldījumu veidā, un 431 00:19:34,920 --> 00:19:38,910 Es esmu atpakaļ izejas formā reizes reizes a. 432 00:19:38,910 --> 00:19:43,940 >> Tāpēc tagad man ir iespēja, līdzīgi man, lai ar printf vien izmanto, lai izsauktu 433 00:19:43,940 --> 00:19:47,120 Šī funkcija zvanot kuba funkciju. 434 00:19:47,120 --> 00:19:49,470 Un kubs funkcija prasa zināmu ieguldījumu. 435 00:19:49,470 --> 00:19:52,030 Un kubs funkcija atgriež kādu produkciju. 436 00:19:52,030 --> 00:19:56,660 Un tā savukārt, printf vienkārši darīja kaut ko. 437 00:19:56,660 --> 00:19:59,490 Tā nav atgriešanās neko, kas mums nerūp - lai gan, kā 438 00:19:59,490 --> 00:20:00,820 malā, tas atgriež vērtību. 439 00:20:00,820 --> 00:20:02,650 Jums tikai parasti ignorēt to. 440 00:20:02,650 --> 00:20:04,000 Printf tikko izdarīja kaut ko. 441 00:20:04,000 --> 00:20:06,220 Tas bija blakus efekts drukāšanas uz ekrāna. 442 00:20:06,220 --> 00:20:09,480 Turpretī šeit, mums ir kuba funkcija, kas 443 00:20:09,480 --> 00:20:11,400 faktiski atgriežas kaut. 444 00:20:11,400 --> 00:20:12,960 >> Tātad tas parasti - 445 00:20:12,960 --> 00:20:15,260 tiem iepazinušies ar to, tas ir diezgan vienkārši ideja. 446 00:20:15,260 --> 00:20:18,460 Bet tiem, kas mazāk pazīstami ar šo ideju iet uz izejvielu un kļūst 447 00:20:18,460 --> 00:20:21,700 atpakaļ izejas, pamēģināsim tikai kaut super vienkārši. 448 00:20:21,700 --> 00:20:25,180 Vai kāds ērti nāk uz skatuves īsi? 449 00:20:25,180 --> 00:20:27,460 Jums ir apmierināti ar kameru uz jums, kā labi. 450 00:20:27,460 --> 00:20:27,640 Yeah. 451 00:20:27,640 --> 00:20:28,610 Labi, kāda ir jūsu vārds? 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 Labi, Ken. 455 00:20:29,810 --> 00:20:31,060 Nāciet uz augšu. 456 00:20:31,060 --> 00:20:34,660 Tāpēc Ken būs funkcija veidu šeit. 457 00:20:34,660 --> 00:20:35,760 Un iesim uz priekšu un darīt to. 458 00:20:35,760 --> 00:20:38,790 Būsim mazliet iedomātā. 459 00:20:38,790 --> 00:20:39,770 Priecājos ar jums iepazīties. 460 00:20:39,770 --> 00:20:41,010 Laipni lūdzam skatuves centrā. 461 00:20:41,010 --> 00:20:41,980 Labi. 462 00:20:41,980 --> 00:20:45,590 Pieņemsim skārusi šo pogu šeit. 463 00:20:45,590 --> 00:20:46,420 Labi. 464 00:20:46,420 --> 00:20:49,490 Tātad šeit jums ir moderna tāfeles. 465 00:20:49,490 --> 00:20:53,050 Un ko es esmu, ir galvenā funkcija, piemēram. 466 00:20:53,050 --> 00:20:55,990 Un man nav iPad manā rokā. 467 00:20:55,990 --> 00:20:59,000 Man nav īsti atcerēties, kā - labi, patiesībā, nevar teikt, ka. 468 00:20:59,000 --> 00:21:02,200 Man nav īsti ir labs rokraksts. 469 00:21:02,200 --> 00:21:05,260 Un tātad, es gribu, lai jūs drukāt kaut uz ekrāna par mani. 470 00:21:05,260 --> 00:21:07,470 >> Tāpēc es esmu to galvenās programmas. 471 00:21:07,470 --> 00:21:15,060 Un es esmu nāksies jums teikt, rakstot to manā vistas nulles un 472 00:21:15,060 --> 00:21:16,600 tad iet jums ievadi. 473 00:21:16,600 --> 00:21:20,000 Tā kā dumjš gan šis darbs ir, funkciju jēdziens un aicinot 474 00:21:20,000 --> 00:21:22,260 funkcija un atgriežas funkciju tiešām vārīties uz leju, lai šo. 475 00:21:22,260 --> 00:21:23,120 Es esmu galvenais. 476 00:21:23,120 --> 00:21:26,270 Man ir tikai rakstīts printf ("kaut kas"), uz ekrāna. 477 00:21:26,270 --> 00:21:27,470 Es skrienu šo programmu. 478 00:21:27,470 --> 00:21:30,900 Un tiklīdz printf izpaužas sauc, tas aizņem vienu argumentu - vai viens parametrs, 479 00:21:30,900 --> 00:21:31,660 reizēm - 480 00:21:31,660 --> 00:21:32,780 starp pēdiņas. 481 00:21:32,780 --> 00:21:33,960 Šeit ir tas, ka arguments. 482 00:21:33,960 --> 00:21:35,740 Es esmu iet to Ken. 483 00:21:35,740 --> 00:21:39,390 Tagad viņš ir melnā kaste rakstisku dažas vairākus gadus atpakaļ, ka acīmredzot 484 00:21:39,390 --> 00:21:41,070 tikai zina, kā drukāt lietas uz ekrāna. 485 00:21:41,070 --> 00:21:42,320 >> Tātad, izpildīt. 486 00:21:48,842 --> 00:21:49,900 Tas nav slikti. 487 00:21:49,900 --> 00:21:50,890 Tātad, ļoti labs. 488 00:21:50,890 --> 00:21:52,900 Tāpēc tagad Ken tiek darīts izpildes. 489 00:21:52,900 --> 00:21:55,810 Vai viņš ir roku man neko atpakaļ? 490 00:21:55,810 --> 00:21:57,240 Tāpēc nav, ka mēs esam redzējuši līdz šim. 491 00:21:57,240 --> 00:21:59,230 Atkal, printf tas faktiski atgriežas numuru. 492 00:21:59,230 --> 00:22:01,640 Bet mēs esam gatavojas ignorēt to, ka tagad, jo mēs nekad to izmanto. 493 00:22:01,640 --> 00:22:03,400 Tā ka tas uz Ken. 494 00:22:03,400 --> 00:22:06,650 Un tāpēc tagad galvenais nāk atpakaļ izpildīt - 495 00:22:06,650 --> 00:22:09,630 Galvenais pārņem kontroli par programmas no jauna, jo šī līnija kodu, 496 00:22:09,630 --> 00:22:11,010 printf, tiek darīts izpildes. 497 00:22:11,010 --> 00:22:13,890 Un mēs iet par mūsu ceļu izpildes neatkarīgi citām līnijām ir tur. 498 00:22:13,890 --> 00:22:14,130 >> Labi. 499 00:22:14,130 --> 00:22:17,080 Tāpēc tagad pamēģināsim nedaudz atšķirīgu piemēru. 500 00:22:17,080 --> 00:22:22,430 Un šoreiz šeit, pieņemsim vispirms notīrītu ekrānu šeit. 501 00:22:22,430 --> 00:22:24,670 Un šoreiz, mēs izdarīsim cubing funkciju. 502 00:22:24,670 --> 00:22:27,350 Bet šoreiz, es gaidu produkcijas vērtību. 503 00:22:27,350 --> 00:22:28,630 Tāpēc pieņemsim iet uz priekšu un darīt to. 504 00:22:28,630 --> 00:22:35,680 Tāpēc tagad man ir līnijas kodu, kas saka x = kubs (x). 505 00:22:35,680 --> 00:22:36,930 Tik tiešām let's - 506 00:22:41,450 --> 00:22:43,940 koda, atgādināt, līnijas izskatās šādi. 507 00:22:43,940 --> 00:22:45,960 x = kubs (x). 508 00:22:45,960 --> 00:22:48,100 Tātad, kā tas notiek uz darbu? 509 00:22:48,100 --> 00:22:50,820 Tāpēc iesim uz priekšu un sniegt jums baltu ekrānu. 510 00:22:50,820 --> 00:22:55,000 Un es esmu gatavojas rakstīt tagad nosaka vērtību x, kas šobrīd ir 511 00:22:55,000 --> 00:23:01,080 time notiek, ir, teiksim, 2, lai saglabātu tā vienkārši. 512 00:23:01,080 --> 00:23:04,890 Tāpēc man ir uzrakstītas uz papīra vērtība 2, 513 00:23:04,890 --> 00:23:06,100 kas ir mana vērtība x. 514 00:23:06,100 --> 00:23:08,250 Es to nodod Ken. 515 00:23:08,250 --> 00:23:09,200 KEN: Un es vienkārši uzrakstīt atbildi? 516 00:23:09,200 --> 00:23:12,660 David J. Malan: Jā, pieņemsim tikai uzrakstīt atbildi. 517 00:23:12,660 --> 00:23:13,030 Labi. 518 00:23:13,030 --> 00:23:16,280 Un tagad viņš ir atgriezties man kaut ko. 519 00:23:16,280 --> 00:23:17,560 Tātad - 520 00:23:17,560 --> 00:23:18,170 perfekta. 521 00:23:18,170 --> 00:23:18,840 Nice segue. 522 00:23:18,840 --> 00:23:21,970 >> Tāpēc tagad viņš rokas mani atpakaļ vērtību 8, šajā gadījumā. 523 00:23:21,970 --> 00:23:23,220 Un ko man darīt ar to? 524 00:23:23,220 --> 00:23:26,130 Nu, patiesībā, redzēsim. 525 00:23:26,130 --> 00:23:26,640 Get šīs tiesības. 526 00:23:26,640 --> 00:23:27,880 Kas es esmu gatavojas darīt ar to? 527 00:23:27,880 --> 00:23:31,900 Tagad es esmu gatavojas izmantot šo vērtību un faktiski uzglabāt to tām 528 00:23:31,900 --> 00:23:33,400 paši biti atmiņā. 529 00:23:33,400 --> 00:23:35,030 Bet paziņojums, es esmu veida cīnās šeit. 530 00:23:35,030 --> 00:23:38,280 Es esmu nedaudz mulsina, jo, kad man tiešām rakstīt vērtību x? 531 00:23:38,280 --> 00:23:41,840 Jo tas, ko es esmu tikko izdarīt fiziski roku Kens papīra gabals 532 00:23:41,840 --> 00:23:44,400 kas bija vērtība 2, kas bija x. 533 00:23:44,400 --> 00:23:46,300 Un tiešām, tas ir tieši tas, kas notiek. 534 00:23:46,300 --> 00:23:50,100 Tātad izrādās, ka tad, kad jūs zvanu funkciju, un jums iet uz argumentu 535 00:23:50,100 --> 00:23:54,130 patīk "Hello World" vai jums iet ar argumentu, piemēram 2, vispār, tu esi 536 00:23:54,130 --> 00:23:56,720 aizrit kopiju šo argumentu. 537 00:23:56,720 --> 00:24:01,020 Un tā tāpat kā es pierakstīju numuru 2 šeit un pasniedza to Ken; ka jābūt 538 00:24:01,020 --> 00:24:04,760 nozīmē, ka man vēl ir kopiju vērtība 2 kaut kur. 539 00:24:04,760 --> 00:24:08,140 Jo patiesi, tagad, ka es esmu gotten atpakaļ vērtību 8, man ir nepieciešams, lai dotos atpakaļ 540 00:24:08,140 --> 00:24:12,010 RAM un faktiski pierakstīt 8 Ja man reiz bija numuru 2. 541 00:24:12,010 --> 00:24:15,720 >> Tik vizuāli atcerēties šo jēdzienu aizrit burtiski 542 00:24:15,720 --> 00:24:16,730 kopiju no vērtības. 543 00:24:16,730 --> 00:24:19,570 Ken dara viņa lieta, rokas mani atpakaļ kaut ko - šajā gadījumā, 544 00:24:19,570 --> 00:24:20,820 vērtību, piemēram, 8. 545 00:24:20,820 --> 00:24:22,660 Un tad man ir kaut ko darīt ar šo vērtību, ja es 546 00:24:22,660 --> 00:24:24,880 vēlas, lai saglabātu to apkārt. 547 00:24:24,880 --> 00:24:29,470 Tātad tas viss būs pārāk pazīstams pirms ilgi. 548 00:24:29,470 --> 00:24:33,082 Paldies tik daudz par šo demo šeit, Ken. 549 00:24:33,082 --> 00:24:34,820 Labi. 550 00:24:34,820 --> 00:24:36,720 Ļoti labi darīts. 551 00:24:36,720 --> 00:24:40,610 Tātad, pieņemsim redzēt, kā tas galu galā ir saistīts ar kādu no funkcijām 552 00:24:40,610 --> 00:24:42,270 zvanot ka mēs esam bijuši dara šeit. 553 00:24:42,270 --> 00:24:47,610 Tāpēc ļaujiet man iet uz priekšu un mūs atpakaļ uz cubing piemēram, šeit. 554 00:24:47,610 --> 00:24:53,080 Un paziņo, ka, ja mēs vēlamies, lai faktiski sākt lietot šo tālāk, mēs ejam 555 00:24:53,080 --> 00:24:57,050 ir jābūt uzmanīgiem par to, ka skaitlis x, kas ir tiek pagāja 556 00:24:57,050 --> 00:25:01,390 šeit ir atšķirīga no tā, ko patiesībā tiek nodots uz funkciju. 557 00:25:01,390 --> 00:25:03,940 Tātad vēlreiz, ko ir pieņēmis kopiju kļūs pavisam 558 00:25:03,940 --> 00:25:05,620 Germane tikai brīdi. 559 00:25:05,620 --> 00:25:09,320 >> Tāpēc pieņemsim to apskatīt kaut ko, kas nav gluži darbu labi vēl. 560 00:25:09,320 --> 00:25:11,790 Es iešu uz priekšu un atvērt 1/3 buggy piemēru, kas 561 00:25:11,790 --> 00:25:13,560 ir kļūdains pēc būtības. 562 00:25:13,560 --> 00:25:18,070 Un to sauc buggy3, un tā īsteno swapping funkciju. 563 00:25:18,070 --> 00:25:23,500 Tātad šeit mums ir galvenā funkcija, kas ir x un y patvaļīgi inicializēts ar 564 00:25:23,500 --> 00:25:24,720 1 un 2, attiecīgi. 565 00:25:24,720 --> 00:25:27,590 Mēs varētu izmantot GetInt, bet mums vienkārši ir nepieciešams vienkāršs uzdevums. 566 00:25:27,590 --> 00:25:29,680 Tātad, tas ir iekodēts kā 1 un 2. 567 00:25:29,680 --> 00:25:35,330 Līnijās 21 un 22, mēs acīmredzot izdrukāt x un y, vienu par vienu līniju. 568 00:25:35,330 --> 00:25:39,620 Tad, 23 līnijas, es varu pieprasīt es esmu pārnešana šīs vērtības, dot, dot, dot. 569 00:25:39,620 --> 00:25:43,030 Es acīmredzot zvanīt jau 24 līnijā funkciju sauc mijmaiņas 570 00:25:43,030 --> 00:25:44,000 kas ņem divus argumentus. 571 00:25:44,000 --> 00:25:46,430 Tas ir pilnīgi legit, lai funkcijas veikt divus argumentus. 572 00:25:46,430 --> 00:25:48,220 Mēs esam redzējuši printf darīt jau. 573 00:25:48,220 --> 00:25:50,370 Tātad mijmaiņas acīmredzot ņem x un y. 574 00:25:50,370 --> 00:25:53,010 Un jo tā nosaukums liecina, es ceru, ka tas notiek, lai 575 00:25:53,010 --> 00:25:54,320 swap šīm divām vērtībām. 576 00:25:54,320 --> 00:25:57,560 Tātad, tad es varu pieprasīt, 25 līnijas, nomainīju. 577 00:25:57,560 --> 00:26:01,570 Un es pārdrukāt x un y, pieņemot, ka 578 00:26:01,570 --> 00:26:02,830 viņi patiešām ir samainīti. 579 00:26:02,830 --> 00:26:04,370 Bet, ja es tiešām palaist šo programmu - 580 00:26:04,370 --> 00:26:06,060 ļaujiet man atvērt termināla logu. 581 00:26:06,060 --> 00:26:07,750 Ļaujiet man buggy3. 582 00:26:07,750 --> 00:26:09,970 Kā liecina nosaukums, tas nav gatavojas pārtraukt labi. 583 00:26:09,970 --> 00:26:14,690 Jo, kad es hit Enter, ievērosiet, ka x ir 1. 584 00:26:14,690 --> 00:26:15,720 y ir 2. 585 00:26:15,720 --> 00:26:19,160 Un vēl pēc programmas beigām, viņi joprojām, patiesībā, tas pats. 586 00:26:19,160 --> 00:26:22,760 >> Tātad, pamatojoties uz demonstrāciju tikai tagad ar Ken, kas patiesībā notiek? 587 00:26:22,760 --> 00:26:24,660 Nu, pieņemsim pikējošais šajā mijmaiņas funkciju. 588 00:26:24,660 --> 00:26:25,800 Tas ir super īss. 589 00:26:25,800 --> 00:26:28,020 Tas ir tikai dažas rindiņas kodu ilgu. 590 00:26:28,020 --> 00:26:32,810 Bet kas ir būtiska problēma, pamatojoties uz vienkāršu stāsts 591 00:26:32,810 --> 00:26:34,270 šeit ar Ken? 592 00:26:34,270 --> 00:26:36,115 Kāpēc mijmaiņas bojāta? 593 00:26:36,115 --> 00:26:37,365 [Dzirdams] 594 00:26:39,840 --> 00:26:40,460 Tieši tā. 595 00:26:40,460 --> 00:26:43,610 Tāpēc mēs esam uzglabājot uz kopiju, nevis uz mainīgo pati. 596 00:26:43,610 --> 00:26:46,810 Citiem vārdiem sakot, mijmaiņas acīmredzot ņem divus argumentus, int. 597 00:26:46,810 --> 00:26:49,370 Un tas ir patvaļīgi sauc un b. 598 00:26:49,370 --> 00:26:54,430 Un šeit, es esmu pieņemts X un Y, kas ir attiecīgi 1 un 2. 599 00:26:54,430 --> 00:26:56,580 Bet es neesmu burtiski iet uz x. 600 00:26:56,580 --> 00:26:58,410 Es neesmu burtiski iet y. 601 00:26:58,410 --> 00:27:01,230 Es esmu pieņemot no x kopiju un y kopija. 602 00:27:01,230 --> 00:27:05,180 Tas ir tāpat kā gandrīz it kā tu nokopēt un ielīmēt mijmaiņas vērtības, kas 603 00:27:05,180 --> 00:27:07,440 vēlaties, lai tas tiešām manipulēt. 604 00:27:07,440 --> 00:27:11,970 Tātad, ja tas ir gadījumā, kad es, programma, sākt izpildot 605 00:27:11,970 --> 00:27:14,140 līnija 35, tad 36 - 606 00:27:14,140 --> 00:27:17,740 kad man ar 37 līniju, šajā brīdī stāsts, kāda ir vērtība? 607 00:27:20,740 --> 00:27:24,850 Šajā brīdī stāsts, 37 līnija, kāda ir vērtība šajā brīdī? 608 00:27:24,850 --> 00:27:25,980 Tātad tas būtu vienkārši 1. 609 00:27:25,980 --> 00:27:26,170 Labi? 610 00:27:26,170 --> 00:27:29,100 Jo x tika pieņemts kā pirmo argumentu. 611 00:27:29,100 --> 00:27:33,150 Un šī funkcija tikai patvaļīgi ir zvanot savu pirmo argumentu,. 612 00:27:33,150 --> 00:27:35,130 Tāpat ir y, otrais arguments. 613 00:27:35,130 --> 00:27:37,930 Un tas ir tikai patvaļīgi zvanot uz otro argumentu b. 614 00:27:37,930 --> 00:27:40,510 >> Tagad šis dalījums ir faktiski diezgan vienkārši izskaidrot. 615 00:27:40,510 --> 00:27:40,880 Padomā par to. 616 00:27:40,880 --> 00:27:42,980 Neviens no mums ir tikās persona, kas rakstīja printf. 617 00:27:42,980 --> 00:27:49,880 Tā protams, viņš vai viņa nav ne jausmas, ko mūsu mainīgajiem 30 gadus vēlāk dodaties 618 00:27:49,880 --> 00:27:50,710 saukt. 619 00:27:50,710 --> 00:27:55,110 Tāpēc ir jābūt atšķirībai starp to, ko jūs saucat mainīgie 620 00:27:55,110 --> 00:27:59,960 funkcijas rakstāt un ko tu sauc mainīgos funkcijas jūs esat 621 00:27:59,960 --> 00:28:01,770 zvanot vai izmantojot. 622 00:28:01,770 --> 00:28:05,120 Tātad citiem vārdiem sakot, es esmu uzrakstījis manu mainīgos kā x un y. 623 00:28:05,120 --> 00:28:08,060 Bet, ja kāds cits bija rakstīts mijmaiņas funkciju, viņš vai viņa noteikti 624 00:28:08,060 --> 00:28:10,480 nezinu, ko mani mainīgie gatavojas saukt. 625 00:28:10,480 --> 00:28:13,850 Lai saprastu, ka tas ir iemesls, kāpēc jums ir šī divdabība nosaukumiem. 626 00:28:13,850 --> 00:28:16,800 Tehniski, es varētu darīt sagadīšanās. 627 00:28:16,800 --> 00:28:19,750 Bet tie joprojām būtu pieņemts kā kopijas. 628 00:28:19,750 --> 00:28:22,940 Tas būtu tikai tīra nejaušība estētiski ja šī persona, kas rakstīja 629 00:28:22,940 --> 00:28:25,590 mijmaiņas bija izmantojusi tos pašus vārdus. 630 00:28:25,590 --> 00:28:25,930 >> Labi. 631 00:28:25,930 --> 00:28:29,010 Tātad šajā brīdī stāsts, 37 līnija, ir 1. 632 00:28:29,010 --> 00:28:30,410 b ir 2. 633 00:28:30,410 --> 00:28:32,040 Un tagad es doties uz mijmaiņas tiem. 634 00:28:32,040 --> 00:28:34,730 Nu, pirmkārt, ļaujiet man patiesībā darīt daudz vienkāršāk. 635 00:28:34,730 --> 00:28:36,500 Es nezinu, ko šie trīs rindas koda darām. 636 00:28:36,500 --> 00:28:37,370 Ļaujiet man tikai darīt. 637 00:28:37,370 --> 00:28:38,850 b izpaužas. 638 00:28:38,850 --> 00:28:40,170 izpaužas b. 639 00:28:40,170 --> 00:28:41,450 Darīts. 640 00:28:41,450 --> 00:28:43,540 Kāpēc tas ir salauzta, loģiski? 641 00:28:46,980 --> 00:28:48,590 Tas ir sava veida intuitīvo lieta, vai ne? 642 00:28:48,590 --> 00:28:50,640 Tātad kļūst b. 643 00:28:50,640 --> 00:28:52,450 Un b kļūst. 644 00:28:52,450 --> 00:28:55,410 Bet problēma ir tā, ka tiklīdz 37 līnijas izpilda, kāda ir 645 00:28:55,410 --> 00:28:58,170 vērtību un b? 646 00:28:58,170 --> 00:28:59,070 Pats, 1. 647 00:28:59,070 --> 00:29:03,460 Jo jums ir clobbered, tā sakot, jūs esat mainījuši b vienāds. 648 00:29:03,460 --> 00:29:06,000 Lai vienreiz līnija 37 izpildīts, tas ir lieliski. 649 00:29:06,000 --> 00:29:09,940 Jums tagad ir divas kopijas numuru 1 iekšpuses šo funkciju. 650 00:29:09,940 --> 00:29:14,720 Tātad tad, kad jūs sakāt 38 līnija, izpaužas b, labi, tu esi veida ieskrūvē. 651 00:29:14,720 --> 00:29:17,370 Jo jūs esat tikai piešķirot 1 līdz 1. 652 00:29:17,370 --> 00:29:20,400 Jūs esat veida zaudējis vērtību jums nerūp. 653 00:29:20,400 --> 00:29:22,910 >> Tātad sākotnējā versijā šis, pamanīt to, ko es darīju. 654 00:29:22,910 --> 00:29:26,620 Es tā vietā bija trešajā rindā kodu, kas izskatījās. 655 00:29:26,620 --> 00:29:29,910 Es paziņoju pagaidu mainīgo - TPP ir ļoti bieži vārdu 656 00:29:29,910 --> 00:29:31,240 par pagaidu mainīgo. 657 00:29:31,240 --> 00:29:34,280 Tas ir int, jo tā ir saskaņot to, ko es gribu, lai kopiju. 658 00:29:34,280 --> 00:29:39,720 Es glabāt kopiju iekšpusē TPP. Lai vienreiz līnija 37 ir izpildīts, 659 00:29:39,720 --> 00:29:41,390 gada vērtība ir - 660 00:29:41,390 --> 00:29:42,970 ātri veselība pārbaudītu - 661 00:29:42,970 --> 00:29:43,460 1. 662 00:29:43,460 --> 00:29:45,780 No b vērtība ir 2. 663 00:29:45,780 --> 00:29:48,470 Un no tmp vērtība ir arī 1. 664 00:29:48,470 --> 00:29:51,470 Tāpēc tagad es izpildīt līnija 38. 665 00:29:51,470 --> 00:29:57,180 Lai vienreiz līnija 38 izpilda, uzņemas ar b vērtību. 666 00:29:57,180 --> 00:29:58,510 Un b bija 2. 667 00:29:58,510 --> 00:30:00,500 Tāpēc tagad ir 2. 668 00:30:00,500 --> 00:30:03,110 Tātad šajā brīdī stāsts, ir 2, b ir 2, 669 00:30:03,110 --> 00:30:05,130 un tmp ir 1. 670 00:30:05,130 --> 00:30:09,330 Tāpēc tagad loģiski, mēs varam tikai plunkšķis TPP vērtība uz b. 671 00:30:09,330 --> 00:30:10,690 Un mēs esam darīts. 672 00:30:10,690 --> 00:30:12,170 >> Tātad mēs esam atrisināt šo problēmu. 673 00:30:12,170 --> 00:30:16,040 Diemžēl, kad es palaist šo programmu šādā veidā, tas nav reāli mijmaiņas 674 00:30:16,040 --> 00:30:17,700 nekādas vērtības. 675 00:30:17,700 --> 00:30:18,950 Bet, lai būtu skaidrs, kāpēc? 676 00:30:23,420 --> 00:30:26,310 Es noteikti loģisku problēmu no tikai pirms brīža. 677 00:30:26,310 --> 00:30:31,150 Bet atkal, ja man palaist šo programmu, x un y paliek nemainīgs līdz gada beigām 678 00:30:31,150 --> 00:30:33,834 programmas izpilde. 679 00:30:33,834 --> 00:30:34,760 [Dzirdams] 680 00:30:34,760 --> 00:30:36,030 David J. Malan: Tātad mums nav atgriezušies neko. 681 00:30:36,030 --> 00:30:36,960 Tāpēc, ka ir taisnība. 682 00:30:36,960 --> 00:30:39,880 Bet izrādās, tur ir par problēmu, mazliet šeit, jo līdz šim, 683 00:30:39,880 --> 00:30:42,460 Vienīgais mēs esam spējuši atgriezties, ir viena lieta. 684 00:30:42,460 --> 00:30:46,540 Un tas ir ierobežojums C. Jūs varat atgriezties tikai patiešām vienu vērtību, 685 00:30:46,540 --> 00:30:48,970 tādā gadījumā, es esmu veida iestrēdzis šeit 686 00:30:48,970 --> 00:30:51,805 jo es varētu atgriezties jaunu vērtību x vai es varētu atgriezties 687 00:30:51,805 --> 00:30:53,160 jaunā vērtība y. 688 00:30:53,160 --> 00:30:54,330 Bet es gribu gan atpakaļ. 689 00:30:54,330 --> 00:30:58,010 Tāpēc atgriežoties nav vienkāršs risinājums šeit. 690 00:30:58,010 --> 00:30:59,770 Bet problēma būtībā ir, kāpēc? 691 00:30:59,770 --> 00:31:03,270 Ko mēs patiesībā samainīti? 692 00:31:03,270 --> 00:31:04,010 un b. 693 00:31:04,010 --> 00:31:07,670 Bet a un b ir kopijas X un Y, kas nozīmē, ka mēs vienkārši darīja visu šo 694 00:31:07,670 --> 00:31:10,080 darbs - mēs tikko pavadīja kā trīs minūtes runā par mijmaiņas 695 00:31:10,080 --> 00:31:11,680 funkcija un visi no šiem mainīgajiem trīs. 696 00:31:11,680 --> 00:31:15,090 Un tas ir lieliski, pilnīgi pareizs izolēti. 697 00:31:15,090 --> 00:31:20,230 Bet A un B darbības joma tikai šajās līnijās šeit. 698 00:31:20,230 --> 00:31:24,130 Tik vienkārši kā par cilpu, ja jūs atzīt skaitlim es iekšā par 699 00:31:24,130 --> 00:31:27,400 cilpa - līdzīgi, ja jūs atzīst un b iekšpusē funkcija, kas 700 00:31:27,400 --> 00:31:30,550 Jūs esat rakstiski, viņi tikai derīgs iekšā šī funkcija. 701 00:31:30,550 --> 00:31:35,020 Kas nozīmē, tiklīdz mijmaiņas tiek darīts izpildes un mēs aiziet no līdz 24 līnijas 702 00:31:35,020 --> 00:31:38,380 līnija 25, x un y nav mainījies vispār. 703 00:31:38,380 --> 00:31:42,580 Jūs vienkārši izšķērdēta visai daudz laika pārnešana kopijas mainīgajiem. 704 00:31:42,580 --> 00:31:46,490 >> Tātad izrādās, ka risinājums ir tas tiešām nav skaidrs. 705 00:31:46,490 --> 00:31:49,210 Tas nav gluži pietiekami, lai atgrieztos vērtības, jo mēs varam 706 00:31:49,210 --> 00:31:50,320 atgriezties tikai vienu vērtību. 707 00:31:50,320 --> 00:31:53,370 Un es tiešām gribu, lai mijmaiņas gan x un y, tajā pašā laikā. 708 00:31:53,370 --> 00:31:55,020 Tāpēc mēs esam gatavojas atgriezties uz šo. 709 00:31:55,020 --> 00:31:58,770 Bet tagad, saprotam, ka šis jautājums būtībā izriet no fakta 710 00:31:58,770 --> 00:32:00,660 ka a un b ir kopijas. 711 00:32:00,660 --> 00:32:03,450 Un tie ir savā darbības jomā. 712 00:32:03,450 --> 00:32:04,980 Nu, pieņemsim mēģināt atrisināt šo kaut kādā veidā. 713 00:32:04,980 --> 00:32:09,200 Ļaujiet man tiešām ritināt atpakaļ šeit un atvērt, teiksim, ceturto variantu 714 00:32:09,200 --> 00:32:11,170 par šo, buggy4. 715 00:32:11,170 --> 00:32:13,230 Un ko par šo? 716 00:32:13,230 --> 00:32:16,690 Tas ir līdzīgi, bet vienkāršāk problēma apskatīt, pirms mēs pieņemt stab pie 717 00:32:16,690 --> 00:32:17,530 risināt to. 718 00:32:17,530 --> 00:32:19,440 Šī programma sauc pieaugums. 719 00:32:19,440 --> 00:32:24,320 Un tas acīmredzot inicializē ar x skaitlis līdz 1 18 rindā. 720 00:32:24,320 --> 00:32:25,950 Es tam jāpieprasa x ir 1. 721 00:32:25,950 --> 00:32:28,020 Es tam jāpieprasa palielināšanai, dot, dot, dot. 722 00:32:28,020 --> 00:32:29,460 Es tad aicinu pieaugumu. 723 00:32:29,460 --> 00:32:33,480 Bet tad rindās 22 un 23, man apgalvo, tas ir bijis palielināts. 724 00:32:33,480 --> 00:32:37,780 Es apgalvo x ir tagad kāds tas ir, 2 iespējams. 725 00:32:37,780 --> 00:32:39,770 >> Taču šī programma ir buggy. 726 00:32:39,770 --> 00:32:41,020 Kāda ir problēma? 727 00:32:43,450 --> 00:32:44,418 Yeah? 728 00:32:44,418 --> 00:32:45,668 [Dzirdams] 729 00:32:49,260 --> 00:32:49,850 David J. Malan: Tieši tā. 730 00:32:49,850 --> 00:32:52,430 Tātad x ir pasludināts acīmredzami 18 līnijas. 731 00:32:52,430 --> 00:32:54,410 Tas ir iekšā Main s cirtaini lencēm. 732 00:32:54,410 --> 00:32:58,470 Tik vienkārša atbilde ir tāda, ka, labi, x pastāv šeit. 733 00:32:58,470 --> 00:33:01,510 Tā nepastāv 32 rindā. 734 00:33:01,510 --> 00:33:03,710 Tāpēc šī programma faktiski nav pat sastādīt. 735 00:33:03,710 --> 00:33:07,910 Kompilators, kad mēģinu apkopojot šo kodu, gatavojas kliegt uz mani 736 00:33:07,910 --> 00:33:13,190 par kādu nedeklarētu identifikatoru vai kaut kas šajā sakarā. 737 00:33:13,190 --> 00:33:13,870 Faktiski, pamēģināsim. 738 00:33:13,870 --> 00:33:15,235 Tas ir padarīt buggy4. 739 00:33:17,780 --> 00:33:18,190 Tur tas ir. 740 00:33:18,190 --> 00:33:22,030 Izmantot nedeklarētu identifikators x 32 rindā. 741 00:33:22,030 --> 00:33:25,700 Un tiešām, būsim precīzāk šodien šeit tā, ka tas ir noderīgi 742 00:33:25,700 --> 00:33:27,140 darba laiks un mājās. 743 00:33:27,140 --> 00:33:29,000 Ievērojiet, ka tas ir mazliet cryptically rakstīts. 744 00:33:29,000 --> 00:33:31,560 Bet fakts, ka šķindēt ir kliedza uz mums, sakot 745 00:33:31,560 --> 00:33:36,970 buggy4.c: 32:5, ir faktiski noderīga. 746 00:33:36,970 --> 00:33:41,970 Tas nozīmē, ka kļūda ir par pie raksturs nostāju 5 32 līniju. 747 00:33:41,970 --> 00:33:44,670 Tātad viens, divi, trīs, četri, pieci. 748 00:33:44,670 --> 00:33:46,640 Tas ir, faktiski, kur ir problēma. 749 00:33:46,640 --> 00:33:49,710 Un arī paturēt prātā, darba laika un mājās, es esmu laimīgs šeit. 750 00:33:49,710 --> 00:33:50,740 Man ir viena kļūda. 751 00:33:50,740 --> 00:33:52,660 Tas būs salīdzinoši viegli noteikt. 752 00:33:52,660 --> 00:33:56,220 Bet, ja jūs saņemsiet visu ekrānu pilns milzīgs kļūdu ziņojumus, atkal, 753 00:33:56,220 --> 00:33:59,240 saprotam, ka viszemākais viens var tikai būt simptoms 754 00:33:59,240 --> 00:34:00,320 augšējais ones. 755 00:34:00,320 --> 00:34:03,560 Tāpēc vienmēr tramdīt nosaka jūsu bugs no augšas uz leju. 756 00:34:03,560 --> 00:34:06,720 Jo tur var tikai margrietiņa ķēdes efekts, kas tiek iesaka jums 757 00:34:06,720 --> 00:34:09,030 ir veids, vairāk problēmu, nekā jūs faktiski darīt. 758 00:34:09,030 --> 00:34:14,989 >> Tātad, kā mēs varētu noteikt šo ja mans mērķis ir, lai pieauguma x? 759 00:34:14,989 --> 00:34:15,370 Ko tas nozīmē? 760 00:34:15,370 --> 00:34:15,620 Labi. 761 00:34:15,620 --> 00:34:16,679 Tātad, mēs varam padarīt x pasaules. 762 00:34:16,679 --> 00:34:18,860 Paņemsim saīsni, kas man brīdinājusi par agrāk. 763 00:34:18,860 --> 00:34:20,550 Bet heck, mēs vienkārši ir nepieciešams ātrs risinājums. 764 00:34:20,550 --> 00:34:23,949 Tāpēc pieņemsim tikai teikt, int x šeit. 765 00:34:23,949 --> 00:34:25,600 Tas padara x globāla. 766 00:34:25,600 --> 00:34:28,460 Tāpēc tagad galvenais ir piekļuve tai. 767 00:34:28,460 --> 00:34:31,780 Un pieauguma ir piekļuve tai. 768 00:34:31,780 --> 00:34:33,860 Un tāpēc ļaujiet man iet uz priekšu un apkopo šo tagad. 769 00:34:33,860 --> 00:34:36,330 Padarīt buggy4, Enter. 770 00:34:36,330 --> 00:34:37,440 Šķiet, lai apkopotu tagad. 771 00:34:37,440 --> 00:34:40,949 Pieņemsim palaist buggy4, un tas, šķiet, faktiski strādā. 772 00:34:40,949 --> 00:34:42,780 Tagad tas ir viens no šīm lietām - 773 00:34:42,780 --> 00:34:45,870 darīt, kā es saku, nevis kā es, jo es esmu tikai izdarīt šeit. 774 00:34:45,870 --> 00:34:49,239 Jo kopumā mūsu programmas gatavojas saņemt daudz vairāk interesantu un 775 00:34:49,239 --> 00:34:50,440 daudz ilgāk nekā šis. 776 00:34:50,440 --> 00:34:53,199 Un, ja jūsu risinājums dzīves problēmām ir tikai ah, nodot visas 777 00:34:53,199 --> 00:34:57,550 mainīgie augšpusē jūsu failu, ļoti ātri darīt programmas nokļūt 778 00:34:57,550 --> 00:34:59,700 horrifically grūti pārvaldīt. 779 00:34:59,700 --> 00:35:02,050 Tā kļūst grūtāk izdomāt jaunus mainīgo nosaukumi. 780 00:35:02,050 --> 00:35:05,240 Tā kļūst grūtāk saprast, ko mainīgais dara ko. 781 00:35:05,240 --> 00:35:08,250 >> Un tā vispār, tas nav labs risinājums. 782 00:35:08,250 --> 00:35:09,780 Tāpēc pieņemsim darīt labāk. 783 00:35:09,780 --> 00:35:11,920 Mēs nevēlamies, lai izmantotu globālu mainīgo šeit. 784 00:35:11,920 --> 00:35:14,050 Es vēlos, lai pieauguma x. 785 00:35:14,050 --> 00:35:16,050 Tāpēc es varētu, protams - 786 00:35:16,050 --> 00:35:18,450 beigās, dienā, tas ir sava veida dumjš stāsts, jo mēs vienkārši izdarīt. 787 00:35:18,450 --> 00:35:22,050 Bet, ja es nezināju par šo operatoru, vai arī man neļāva 788 00:35:22,050 --> 00:35:27,700 mainīt to galvenais pats, kā gan citādi es varētu īstenot Ken nekā šeit, šajā 789 00:35:27,700 --> 00:35:31,450 laiks nav kubu, bet pieauguma? 790 00:35:31,450 --> 00:35:32,700 Kā es varu mainīt šo lietu šeit? 791 00:35:32,700 --> 00:35:33,025 Yeah. 792 00:35:33,025 --> 00:35:34,275 [Dzirdams] 793 00:35:37,430 --> 00:35:38,000 David J. Malan: Labi, labi. 794 00:35:38,000 --> 00:35:40,490 Tātad, kāpēc nav man caurlaide X? 795 00:35:40,490 --> 00:35:44,390 Un tad nevis atdot to, kāpēc nav es tikai darīt atdevi x + 1? 796 00:35:44,390 --> 00:35:46,370 Tagad, pāris vairāk lietas ir jāmaina šeit. 797 00:35:46,370 --> 00:35:47,530 Es esmu uz pareizā ceļa. 798 00:35:47,530 --> 00:35:48,910 Kas vēl man ir nepieciešams nomainīt? 799 00:35:48,910 --> 00:35:49,470 Kāds cits. 800 00:35:49,470 --> 00:35:49,882 Yeah? 801 00:35:49,882 --> 00:35:51,530 [Dzirdams] 802 00:35:51,530 --> 00:35:53,520 David J. Malan: Man vajag, lai mainītu atgriešanās veidu pieauguma 803 00:35:53,520 --> 00:35:54,590 jo tas nav anulēta. 804 00:35:54,590 --> 00:35:56,650 Neesošu nozīmē nekas ir atdoti. 805 00:35:56,650 --> 00:35:57,600 Bet skaidri, tagad tas ir. 806 00:35:57,600 --> 00:36:01,280 Tāpēc to nepieciešams mainīt, lai int būtu saskaņā ar kāda 807 00:36:01,280 --> 00:36:02,580 Es esmu tiešām atgriezties. 808 00:36:02,580 --> 00:36:04,580 >> Tagad kaut kas cits vēl ir bagijs šeit. 809 00:36:04,580 --> 00:36:04,982 Yeah? 810 00:36:04,982 --> 00:36:06,590 [Dzirdams] 811 00:36:06,590 --> 00:36:07,630 David J. Malan: Tātad man ir nepieciešams, lai pieauguma x? 812 00:36:07,630 --> 00:36:10,336 [Dzirdams] 813 00:36:10,336 --> 00:36:11,880 David J. Malan: Ah, tāpēc man ir nepieciešams, lai iet x. 814 00:36:11,880 --> 00:36:13,300 Tāpēc man ir nepieciešams to darīt šeit. 815 00:36:17,590 --> 00:36:19,690 Tātad prototips, man ir, lai mainītu šo šeit. 816 00:36:19,690 --> 00:36:21,290 Tāpēc šī ir kļūt int. 817 00:36:21,290 --> 00:36:22,820 Tas ir kļuvis - 818 00:36:22,820 --> 00:36:23,670 hmm. 819 00:36:23,670 --> 00:36:24,710 Man tiešām ir bug leju šeit. 820 00:36:24,710 --> 00:36:25,780 Pieņemsim noteikt šo vienu vispirms. 821 00:36:25,780 --> 00:36:27,990 Kas būtu tas patiesībā ir? 822 00:36:27,990 --> 00:36:29,330 Tātad tas ir got būt int kaut. 823 00:36:29,330 --> 00:36:30,340 Tas varētu būt x. 824 00:36:30,340 --> 00:36:33,120 Bet godīgi sakot, ja jūs sākat aicinot visas jūsu mainīgo x, tas notiek, lai saņemtu 825 00:36:33,120 --> 00:36:35,250 mazāk un mazāk skaidrs, kas ir kas. 826 00:36:35,250 --> 00:36:38,210 Tāpēc pieņemsim tikai patvaļīgi izvēlēties citu nosaukumu konvencija For My 827 00:36:38,210 --> 00:36:40,220 palīga funkcijas, uzdevumus es esmu rakstiski. 828 00:36:40,220 --> 00:36:41,100 Mēs to saucam. 829 00:36:41,100 --> 00:36:44,500 Vai mēs varētu to saucam - sauksim to even_number būt vēl skaidrāks. 830 00:36:44,500 --> 00:36:47,610 Tātad, tad man ir atgriezties kāds numurs ir plus 1. 831 00:36:47,610 --> 00:36:49,720 Un tagad man ir jāmaina viena cita lieta šeit un viens 832 00:36:49,720 --> 00:36:50,700 Otra lieta šeit. 833 00:36:50,700 --> 00:36:54,150 Kas man ir jāmaina uz 21 līniju pirmais? 834 00:36:54,150 --> 00:36:55,390 Man ir to uzticēs x. 835 00:36:55,390 --> 00:36:57,480 Tāpēc es nevaru vienkārši piezvanīt porciju x. 836 00:36:57,480 --> 00:37:01,000 Man vajag atcerēties atbildi, mainot vērtību X 837 00:37:01,000 --> 00:37:02,020 kreisajā pusē. 838 00:37:02,020 --> 00:37:04,930 Un pat ja x ir tagad pa kreisi un pa labi, tas ir pilnīgi naudas sodu, jo 839 00:37:04,930 --> 00:37:08,370 labajā pusē izpaužas izpildīts pirmais tam izpaužas plopped uz kreiso 840 00:37:08,370 --> 00:37:10,240 rokas lieta, x šajā gadījumā. 841 00:37:10,240 --> 00:37:11,900 Un tad visbeidzot, tas ir viegli noteikt tagad. 842 00:37:11,900 --> 00:37:15,080 Tas būtu tikai saskaņot to, ko ir zemāk. 843 00:37:15,080 --> 00:37:17,120 Int skaits. 844 00:37:17,120 --> 00:37:17,320 >> Labi. 845 00:37:17,320 --> 00:37:20,290 Tātad viss ķekars izmaiņu patiešām stulba funkcijas. 846 00:37:20,290 --> 00:37:24,250 Bet pārstāvis lietām, ka mēs arvien vairāk vēlas darīt. 847 00:37:24,250 --> 00:37:25,490 Lai padarītu buggy4. 848 00:37:25,490 --> 00:37:26,485 Es esmu ieskrūvē augšu kaut kur. 849 00:37:26,485 --> 00:37:27,520 Ak mans Dievs. 850 00:37:27,520 --> 00:37:29,660 Pieci kļūdas, tāpat, sešu līnija programma. 851 00:37:29,660 --> 00:37:36,500 Tātad, kas ir nepareizi, 18 līnija, raksturs 5? 852 00:37:36,500 --> 00:37:36,970 Labi. 853 00:37:36,970 --> 00:37:39,330 Tāpēc man ir atzīt šo int. 854 00:37:39,330 --> 00:37:39,630 Labi. 855 00:37:39,630 --> 00:37:41,790 Tātad, pieņemsim redzēt, visu ķekars citas kļūdas. 856 00:37:41,790 --> 00:37:42,230 Ak mans Dievs. 857 00:37:42,230 --> 00:37:43,880 19, 18, 21. 858 00:37:43,880 --> 00:37:46,020 Bet atkal, pieņemsim tikai skaidrs ekrānu - 859 00:37:46,020 --> 00:37:48,660 Kontrole L šeit - un atkārtoti palaist šķindēt. 860 00:37:48,660 --> 00:37:51,340 Tātad 5 problēmas ir faktiski tikai, ka viens. 861 00:37:51,340 --> 00:37:53,500 Tāpēc tagad pieņemsim darboties buggy4, Enter. 862 00:37:53,500 --> 00:37:54,150 Whew. 863 00:37:54,150 --> 00:37:57,434 x ir palielināts pareizi. 864 00:37:57,434 --> 00:37:58,420 >> Labi. 865 00:37:58,420 --> 00:38:01,700 Kādi jautājumi par to, kā pieauguma skaitļus? 866 00:38:01,700 --> 00:38:02,896 Yeah? 867 00:38:02,896 --> 00:38:06,864 SPEAKER 2: Kāpēc ir tā, ka jūs varat vienkārši mainīt x uz numuru kas mainīgo 868 00:38:06,864 --> 00:38:08,860 nosaukt un tas būs zināt, ko tu domā? 869 00:38:08,860 --> 00:38:09,600 David J. Malan: Labs jautājums. 870 00:38:09,600 --> 00:38:13,130 Kā tas ir, ka es varu tikai mainīt x uz numuru un programma būs zināt 871 00:38:13,130 --> 00:38:13,990 uzreiz? 872 00:38:13,990 --> 00:38:16,120 Tātad vēlreiz, domā par to, kā šo abstrakciju. 873 00:38:16,120 --> 00:38:20,110 Tātad, ja es esmu galvenais un Ken ir elementārparaugu, atklāti sakot, man nav vienalga 874 00:38:20,110 --> 00:38:21,540 ko Kens aicina savu iPad. 875 00:38:21,540 --> 00:38:25,350 Man vienalga, ko viņš prasa kaut kas ir jādara ar savu ieviešanu 876 00:38:25,350 --> 00:38:26,550 šo funkcionalitāti. 877 00:38:26,550 --> 00:38:32,130 Tātad šis ir īstenošana detaļa, kas man, galvenais, nav 878 00:38:32,130 --> 00:38:33,010 ir rūpēties par. 879 00:38:33,010 --> 00:38:37,440 Un tā vienkārši mainot to konsekventi iekšpusē funkciju, numuru šeit 880 00:38:37,440 --> 00:38:41,340 un skaits šeit ir viss tas notiek tik ilgi, kā es recompile. 881 00:38:41,340 --> 00:38:43,820 Tas ir veida, piemēram, ja jūs domājat par - daudzi no mums, tiem no jums, ar vadītāja 882 00:38:43,820 --> 00:38:46,590 licences, kas esam virza, vai, ja esat pat brauc ar automašīnu - 883 00:38:46,590 --> 00:38:50,710 lielākā daļa no mums nav ne jausmas, kā auto darbojas zem motora pārsega. 884 00:38:50,710 --> 00:38:54,710 Un burtiski, ja jūs atvērtu kapuci, lielākā daļa no mums - mani ieskaitot - 885 00:38:54,710 --> 00:38:56,580 nav gatavojas, lai tiešām zināt, ko mēs meklējam, ir. 886 00:38:56,580 --> 00:38:58,850 Veida, piemēram, jūs varētu justies ar stuff kā šīs tiesības tagad. 887 00:38:58,850 --> 00:39:01,380 Bet mums nav īsti ir vienalga, kā auto darbojas. 888 00:39:01,380 --> 00:39:05,000 Mums nav vienalga, ko visi stieņi un virzuļu un kabeļiem iekšpusē 889 00:39:05,000 --> 00:39:07,700 auto ir faktiski dara. 890 00:39:07,700 --> 00:39:11,360 >> Tātad kaut kas līdzīgs, ko jūs saucat virzulis nav nozīmes 891 00:39:11,360 --> 00:39:11,920 šeit, šajā gadījumā. 892 00:39:11,920 --> 00:39:12,490 Pati ideja. 893 00:39:12,490 --> 00:39:12,670 Yeah? 894 00:39:12,670 --> 00:39:13,920 [Dzirdams] 895 00:39:25,250 --> 00:39:29,530 David J. Malan: Ja būtu vairāk izmantojumu mainīgo Xa brīdi atpakaļ, 896 00:39:29,530 --> 00:39:32,220 Jūs, programmētājs, būtu jāmaina tos visur. 897 00:39:32,220 --> 00:39:35,230 Vai jūs varētu burtiski darīt File, Menu, un pēc tam atrast / nomainīt, 898 00:39:35,230 --> 00:39:36,270 kaut kā tā. 899 00:39:36,270 --> 00:39:40,110 Bet jums nāksies izdarīt šīs pārmaiņas sevi. 900 00:39:40,110 --> 00:39:41,200 Jums ir jābūt konsekventiem. 901 00:39:41,200 --> 00:39:42,450 [Dzirdams] 902 00:39:47,200 --> 00:39:48,960 David J. Malan: īpaši lai, piemēram šeit? 903 00:39:48,960 --> 00:39:52,660 Ja tas bija int citu numuru? 904 00:39:52,660 --> 00:39:52,940 Yeah. 905 00:39:52,940 --> 00:39:56,430 Tātad, lai jautājumi, kad jūs zvanāt funkciju. 906 00:39:56,430 --> 00:40:00,350 Tātad, ja es bija aicinot pieaugumu šeit ar kaut komats kaut ko, 907 00:40:00,350 --> 00:40:01,400 tur tieši kartēšanu. 908 00:40:01,400 --> 00:40:04,490 Pirmais mainīgo, neatkarīgi no tā sauc, ir izgatavots kopiju pirmā 909 00:40:04,490 --> 00:40:05,480 arguments nekā šeit. 910 00:40:05,480 --> 00:40:07,280 Atvainojiet, tas nedrīkst būt iekavas. 911 00:40:07,280 --> 00:40:09,300 Otrs arguments līniju līdz ar otru. 912 00:40:09,300 --> 00:40:11,220 >> Tātad, lai, jā, jautājumi. 913 00:40:11,220 --> 00:40:11,490 Labi. 914 00:40:11,490 --> 00:40:13,360 Žēl man bija tālu tur nokļūt. 915 00:40:13,360 --> 00:40:14,610 Citi jautājumi? 916 00:40:16,460 --> 00:40:16,850 Labi. 917 00:40:16,850 --> 00:40:20,300 Tātad, pieņemsim redzēt, ja mēs nevaram uzzīmēt zīmējumu par to, kas patiesībā notiek 918 00:40:20,300 --> 00:40:22,160 šeit zem motora pārsega, lai runāt. 919 00:40:22,160 --> 00:40:26,310 Tātad šī ir taisnstūra, kas varētu pārstāvēt datora atmiņā. 920 00:40:26,310 --> 00:40:31,240 Tātad, pat ja jums nav ne jausmas, cik atmiņa strādā vai cik RAM darbi, vismaz 921 00:40:31,240 --> 00:40:33,590 pieņemu, ka jums ir ķekarus to šajās dienās. 922 00:40:33,590 --> 00:40:34,740 Jūs esat ieguvuši megabaiti tā. 923 00:40:34,740 --> 00:40:35,760 Jūs esat ieguvuši gigabaitu tā. 924 00:40:35,760 --> 00:40:40,690 Un mēs zinām no nedēļu nulles ka baits ir tieši tas, ko? 925 00:40:40,690 --> 00:40:41,280 8 biti. 926 00:40:41,280 --> 00:40:42,730 Labi, tāpēc 8 nulles un ones. 927 00:40:42,730 --> 00:40:46,300 Tātad, ja jūsu datoram ir GIG RAM, divas gigs RAM šajās dienās, jums ir 928 00:40:46,300 --> 00:40:54,450 miljards vai 2 miljards baitu atmiņas, vai aptuveni 8 miljardiem vai 16000000000 929 00:40:54,450 --> 00:40:56,560 biti, iekšpusē datora. 930 00:40:56,560 --> 00:40:59,710 Tagad atšķirībā no mazā pūkainā Willy Piemēram, tas nav magnētiskās daļiņas 931 00:40:59,710 --> 00:41:00,560 parasti vairs. 932 00:41:00,560 --> 00:41:04,470 Arvien vairāk, klēpjdatoriem vismaz, tas ir cietvielu diskus, SSDs, ka 933 00:41:04,470 --> 00:41:05,560 vienkārši nav kustīgu daļu. 934 00:41:05,560 --> 00:41:06,710 Tas viss elektroniski. 935 00:41:06,710 --> 00:41:08,070 Tas viss balstās elektrība. 936 00:41:08,070 --> 00:41:12,360 Tāpēc domāju, ka, lai gan, šī taisnstūra kā tikai pārstāv vienu vai divas 937 00:41:12,360 --> 00:41:13,930 gigabaitu atmiņas, kas jums ir. 938 00:41:13,930 --> 00:41:15,500 >> Tāpēc tas rieciens atmiņas. 939 00:41:15,500 --> 00:41:20,460 Tagad datorzinātņu pasaulē ir sava veida atdalīta gabalos 940 00:41:20,460 --> 00:41:22,570 atmiņa darīt dažādas lietas. 941 00:41:22,570 --> 00:41:25,930 Tātad, piemēram, ja tas ir jūsu datora atmiņa - kā to ierosināja 942 00:41:25,930 --> 00:41:30,400 taisnstūris tur - izrādās, ka pēc vienošanās, augšpusē jūsu RAM, tāpēc 943 00:41:30,400 --> 00:41:33,170 runāt, parasti tas, ko sauc teksta segments. 944 00:41:33,170 --> 00:41:35,910 Tie ir nulles un tiem, kas jums ir apkopojusi. 945 00:41:35,910 --> 00:41:39,040 Tātad, kad mēs esam paskatījās zem motora pārsega pie kāda a.out ir, visas 946 00:41:39,040 --> 00:41:40,360 kad skaitļi un tiem - 947 00:41:40,360 --> 00:41:44,000 palaižot programmu, šie skaitļi mainās un tiem tiek ielādēta no cietā 948 00:41:44,000 --> 00:41:46,290 iedzīt kaut ko sauc RAM. 949 00:41:46,290 --> 00:41:48,950 Un RAM, viņi likts uz augšu. 950 00:41:48,950 --> 00:41:50,330 Tagad tikmēr, jums ir citas lietas. 951 00:41:50,330 --> 00:41:53,060 Inicializēts dati, neinicializēts dati. 952 00:41:53,060 --> 00:41:56,440 Šie divi swaths atmiņas atsaucas uz globālo mainīgo, kas 953 00:41:56,440 --> 00:41:57,530 jums nav bieži izmanto. 954 00:41:57,530 --> 00:42:00,630 Bet dažreiz, ja jūs darāt, viņi galu galā tur augšā, kā arī. 955 00:42:00,630 --> 00:42:01,620 Tad tur ir daži citi sīkumi. 956 00:42:01,620 --> 00:42:04,130 Vides mainīgos, kas mums nav tērēt daudz laika. 957 00:42:04,130 --> 00:42:06,120 Bet tad divas svarīgas lietas, kas nāks atpakaļ visā šajā 958 00:42:06,120 --> 00:42:08,130 semestris, steku un kaudze. 959 00:42:08,130 --> 00:42:12,280 >> Tātad lielākā daļa no jūsu datora atmiņa ir rezervēta, braucot programmu 960 00:42:12,280 --> 00:42:14,880 kaut ko sauc kaudzīti un kaut sauc kaudze. 961 00:42:14,880 --> 00:42:16,940 Un mēs nebrauksim runāt par kaudzes šodien, bet mēs 962 00:42:16,940 --> 00:42:18,180 runāt par kaudze. 963 00:42:18,180 --> 00:42:22,910 Un kaudze ir domāts, lai uzburt vizuāli līdzīgi ēdamzālē 964 00:42:22,910 --> 00:42:26,120 Paplātes in Mather namā, vai kur jums gadās būt, ja 965 00:42:26,120 --> 00:42:27,810 ēdamzāle darbinieki tīrīt tos katru dienu. 966 00:42:27,810 --> 00:42:30,180 Viņi kaudze tos no grīdas uz augšu. 967 00:42:30,180 --> 00:42:33,800 Un līdzīgi atmiņā ir šo ideju, liekot kaut uz 968 00:42:33,800 --> 00:42:36,740 kaudze, liekot kaut uz steku, liekot kaut uz kaudze. 969 00:42:36,740 --> 00:42:38,000 Un ko mēs saprotam ar šo? 970 00:42:38,000 --> 00:42:41,430 Nu, pieņemsim tuvinātu tikai apakšējā pusē šī attēla, jūsu datora 971 00:42:41,430 --> 00:42:43,990 RAM, ierosināt turpmāko. 972 00:42:43,990 --> 00:42:48,300 Izrādās, ka tad, kad jūs darbināt programmu, piemēram a.out vai sveiki, neatkarīgi 973 00:42:48,300 --> 00:42:49,920 programma ir, ka jūs esat rakstiski, 974 00:42:49,920 --> 00:42:53,030 atkal, šie skaitļi mainās un tiem tiek ielādēta no cietā diska - kas ir 975 00:42:53,030 --> 00:42:56,190 ilgtermiņa uzglabāšanu, paliek tur pat ja jūs kontaktdakšu - 976 00:42:56,190 --> 00:42:57,220 iekrauj RAM. 977 00:42:57,220 --> 00:42:59,020 RAM ir ātrāks nekā cieto disku. 978 00:42:59,020 --> 00:43:00,700 Tas ir mazāks nekā cietajiem diskiem. 979 00:43:00,700 --> 00:43:03,490 Bet tas ir, ja programmas dzīvot, bet jūs tos palaižot. 980 00:43:03,490 --> 00:43:06,380 >> Tātad jūs dubultklikšķi programmu uz Mac vai PC - tas ir ielādēta no 981 00:43:06,380 --> 00:43:07,750 cietais disks RAM. 982 00:43:07,750 --> 00:43:11,760 Tiklīdz tas ir iekrauj RAM, kad skaitļi un tiem iet pie ceļu augšā, 983 00:43:11,760 --> 00:43:13,130 tā sauc teksta segmentā. 984 00:43:13,130 --> 00:43:17,040 Bet tad, tiklīdz jūsu programma faktiski sāk darboties, galvenais 985 00:43:17,040 --> 00:43:18,140 funkcija sauc. 986 00:43:18,140 --> 00:43:21,070 Un galvenais, kā mēs esam redzējuši, bieži ir vietējās mainīgie. 987 00:43:21,070 --> 00:43:24,560 Un tas ir Ints un stīgas un simboli un kā. 988 00:43:24,560 --> 00:43:28,300 Tātad, ja jūsu programma, kas jums ir rakstisks vai programma, kas jums ir 989 00:43:28,300 --> 00:43:33,680 dubultā noklikšķinājuši izmanto daži mainīgie iekšpusē galvenais, viņi galu galā pie 990 00:43:33,680 --> 00:43:37,020 apakšā jūsu kaudze atmiņas, lai runāt. 991 00:43:37,020 --> 00:43:39,160 Tagad vairāk konkrētāk, ko tas patiesībā nozīmē? 992 00:43:39,160 --> 00:43:44,080 Tas tikai nozīmē, ka, ja mēs gatavojamies numurēt lietas - 993 00:43:44,080 --> 00:43:49,380 ja mēs gatavojamies skaits bytes RAM savā datorā, ievērosiet, ka 994 00:43:49,380 --> 00:43:51,650 tas varētu būt baitu skaits nulle. 995 00:43:51,650 --> 00:43:56,130 Tas varētu būt baitu numur viens, divi, trīs, četri, pieci, seši, visi 996 00:43:56,130 --> 00:43:57,290 ceļu līdz pat patīk - 997 00:43:57,290 --> 00:44:01,520 2000000000 būtu visu ceļu tur augšā. 998 00:44:01,520 --> 00:44:05,960 Tātad, citiem vārdiem sakot, ja mēs runājam par RAM vai atmiņas ziņā baitos, tā 999 00:44:05,960 --> 00:44:09,680 tikai nozīmē, ka kāds ir nolēmis, ko skaitu katram no 1000 00:44:09,680 --> 00:44:11,110 šie gabalos atmiņas. 1001 00:44:11,110 --> 00:44:16,950 >> Tātad, ja jums ir nepieciešams 32 bitus int, vai jums ir nepieciešams 8 bitus char, kur 1002 00:44:16,950 --> 00:44:18,320 tie nonāk atmiņā? 1003 00:44:18,320 --> 00:44:20,650 Nu konceptuāli, viņi tikai beigās apakšā šis 1004 00:44:20,650 --> 00:44:21,780 lieta, ko sauc kaudzīti. 1005 00:44:21,780 --> 00:44:25,670 Bet kas ir interesanti tagad ir, kad galvenā aicina funkcija. 1006 00:44:25,670 --> 00:44:28,830 Pieņemsim funkciju sauc foo, tikai patvaļīgi nosaukumu. 1007 00:44:28,830 --> 00:44:32,480 Kas notiek, ir galvenais ir apakšā šo kaudze atmiņu. 1008 00:44:32,480 --> 00:44:35,630 Foo tagad tiek likts uz augšu no galvenā atmiņā. 1009 00:44:35,630 --> 00:44:40,020 Tātad kādi vietējie mainīgie ka foo ir galu galā veida konceptuāli iepriekš 1010 00:44:40,020 --> 00:44:40,770 tiem, kas galvenais. 1011 00:44:40,770 --> 00:44:46,920 Ja foo aicina citu funkciju sauc bārs, šie mainīgie galu galā šeit. 1012 00:44:46,920 --> 00:44:49,790 Ja josla aicina kaut ko citu, šeit, šeit, šeit. 1013 00:44:49,790 --> 00:44:53,900 Tātad, kas ir interesanti par darbības programmu, ir, ka, kā jūs sauc funkcijas, 1014 00:44:53,900 --> 00:44:57,720 un kā tās funkcijas zvanu funkcijas, un kā šīs funkcijas zvanu funkciju, 1015 00:44:57,720 --> 00:45:00,980 Jūs veidot šo kaudzīti funkciju atmiņā. 1016 00:45:00,980 --> 00:45:06,740 Un tikai vienu reizi funkcija atgriež jūs sākat saņemt šo atmiņu atpakaļ. 1017 00:45:06,740 --> 00:45:11,190 Tātad viens no vienkāršākajiem veidiem, kā pietrūkt atmiņas, kas datorprogrammu ir 1018 00:45:11,190 --> 00:45:14,170 rakstīt funkcijas, kas nekad atgriezties. 1019 00:45:14,170 --> 00:45:16,650 >> Tātad, piemēram, pieņemsim demonstrēt tik daudz ar 1020 00:45:16,650 --> 00:45:18,460 apzināti bagijs programma. 1021 00:45:18,460 --> 00:45:24,690 Ļaujiet man iet uz priekšu un darīt # Ietvert , int galvenais (spēkā neesošs). 1022 00:45:24,690 --> 00:45:31,270 Un es esmu gatavojas darīt, kamēr (2> 1), kas, iespējams, nebūs nekad 1023 00:45:31,270 --> 00:45:33,370 mainīties uz mums. 1024 00:45:33,370 --> 00:45:37,720 Un ļaujiet man iet uz priekšu tagad un darīt printf. 1025 00:45:37,720 --> 00:45:39,950 Faktiski, tas būs mazāk vizuāli interesants. 1026 00:45:39,950 --> 00:45:40,460 Darīsim to. 1027 00:45:40,460 --> 00:45:44,840 Par int (i = 0, i> 0). 1028 00:45:44,840 --> 00:45:49,740 Pieņemsim šo kļūdu, i + +. 1029 00:45:49,740 --> 00:45:51,150 Un pieņemsim nav printf šeit. 1030 00:45:51,150 --> 00:45:52,550 Pieņemsim praktizēt to, ko man bija sludināja. 1031 00:45:52,550 --> 00:45:54,090 Pieņemsim ir metode šeit. 1032 00:45:54,090 --> 00:46:00,860 Anulēts koris, un mēs teikt int i. 1033 00:46:00,860 --> 00:46:02,295 Un tad es esmu gatavojas teikt, printf - 1034 00:46:04,871 --> 00:46:06,790 ak, pieņemsim šo interesantāku. 1035 00:46:06,790 --> 00:46:08,350 Pieņemsim faktiski nav drukāt neko. 1036 00:46:08,350 --> 00:46:10,530 Darīsim to. 1037 00:46:10,530 --> 00:46:11,780 Koris (i). 1038 00:46:16,630 --> 00:46:17,000 >> Labi. 1039 00:46:17,000 --> 00:46:20,040 Tātad tas ir bagijs, jo kāpēc? 1040 00:46:20,040 --> 00:46:22,850 Es esmu padarot šo augšu, kā es iet, jo programma nav reāli darīt neko 1041 00:46:22,850 --> 00:46:23,420 procentu. 1042 00:46:23,420 --> 00:46:24,670 Bet tas nav mērķis. 1043 00:46:24,670 --> 00:46:30,440 Mērķis ir uzrakstīt programmu, kuras galvenā funkcija ko dara, acīmredzot? 1044 00:46:30,440 --> 00:46:31,370 Zvanu pati. 1045 00:46:31,370 --> 00:46:32,600 Un patiesībā, mums nav vajadzīga cilpa. 1046 00:46:32,600 --> 00:46:36,070 Pieņemsim pat vienkāršos tas vienkārši tā, lai aizmirst par patiešām 1047 00:46:36,070 --> 00:46:37,310 fundamentāls kļūda. 1048 00:46:37,310 --> 00:46:39,200 Galvenie zvani koris dziedāt kādu koris. 1049 00:46:39,200 --> 00:46:41,760 Tad es tomēr kaut ko stulbu, un man bija koris zvanu koris, jo es pieņemts 1050 00:46:41,760 --> 00:46:43,550 kāds cits gatavojas to īstenot varbūt. 1051 00:46:43,550 --> 00:46:45,960 Un tagad tas nav gatavojas sastādīt vēl. 1052 00:46:45,960 --> 00:46:48,340 Man vajag darīt? 1053 00:46:48,340 --> 00:46:49,700 Man vajag prototips, atcerēties. 1054 00:46:49,700 --> 00:46:55,520 Tāpēc man ir nepieciešams, lai būtu šeit anulēts koris (int i);. 1055 00:46:55,520 --> 00:46:57,470 >> Tāpēc tagad, ja es eju uz leju šeit - 1056 00:46:57,470 --> 00:46:59,030 patiesībā, pieņemsim izmantot lielāku logu. 1057 00:46:59,030 --> 00:47:01,670 Iesim uz priekšu un veikt koris. 1058 00:47:01,670 --> 00:47:06,000 Iesim uz priekšu un veikt koris. 1059 00:47:06,000 --> 00:47:08,302 Izmantot neidentificēts deklarantam i. 1060 00:47:08,302 --> 00:47:09,860 Ak, tas bija muļķīgi. 1061 00:47:09,860 --> 00:47:11,020 Mums nav vajadzīga argumentu. 1062 00:47:11,020 --> 00:47:13,680 Darīsim to. 1063 00:47:13,680 --> 00:47:14,550 Wish mums bija sākām šo ceļu. 1064 00:47:14,550 --> 00:47:16,160 Tas būtu bijis daudz vieglāk programma rakstīt. 1065 00:47:16,160 --> 00:47:20,100 Tātad tur. 1066 00:47:20,100 --> 00:47:23,870 Tagad iesim uz manu termināļa logu, atkārtoti palaist šķindēt. 1067 00:47:23,870 --> 00:47:26,900 Un šeit mēs iet. 1068 00:47:26,900 --> 00:47:28,020 Tas bija ļoti ātri. 1069 00:47:28,020 --> 00:47:30,690 Kas patiesībā vienkārši notika, lai gan? 1070 00:47:30,690 --> 00:47:33,430 Nu, tagad es ņemšu pievienot drukas rindu, lai mēs varētu redzēt. 1071 00:47:33,430 --> 00:47:41,330 Tāpēc ļaujiet man teikt printf, teiksim, es esmu šeit. 1072 00:47:41,330 --> 00:47:43,470 Labi, ne mainīgie, mēs atstāt to tāpat. 1073 00:47:43,470 --> 00:47:44,860 Ļaujiet man vēlreiz palaist darīt. 1074 00:47:44,860 --> 00:47:47,940 Ļaujiet man atkārtoti palaist koris. 1075 00:47:47,940 --> 00:47:51,235 Un nāk par. 1076 00:47:53,880 --> 00:47:55,130 Saglabātu turpinās. 1077 00:47:57,630 --> 00:47:59,750 Kā malā, kāpēc tā nav avarēja vēl? 1078 00:47:59,750 --> 00:48:02,050 Segmentācija vaina notika super ātri pirms tam. 1079 00:48:02,050 --> 00:48:04,250 [Dzirdams] 1080 00:48:04,250 --> 00:48:04,830 David J. Malan: Tieši tā. 1081 00:48:04,830 --> 00:48:06,350 Tāpēc ir nepieciešams laiks, lai drukātu. 1082 00:48:06,350 --> 00:48:08,370 Tas tikai ņem vairāk darbu par datora daļas. 1083 00:48:08,370 --> 00:48:09,550 Un tur tas ir. 1084 00:48:09,550 --> 00:48:10,620 Segmentācija vaina. 1085 00:48:10,620 --> 00:48:12,140 >> Tātad paziņojums cik ātri programmas darbojas. 1086 00:48:12,140 --> 00:48:14,110 Ja jūs neesat drukāšanas neko, super ātri. 1087 00:48:14,110 --> 00:48:18,100 Bet mēs joprojām got šo segmentācijas vaina, jo to, kas notiek? 1088 00:48:18,100 --> 00:48:21,310 Nu, ja jūs domājat par to, kā jūsu datora atmiņā ir izklāstīts, šis 1089 00:48:21,310 --> 00:48:22,890 notiek, ir galvenais. 1090 00:48:22,890 --> 00:48:23,800 Bet šeit - 1091 00:48:23,800 --> 00:48:28,670 pieņemsim tikai nosaukt šo koris, un sauksim šo koris. 1092 00:48:28,670 --> 00:48:33,420 Un tagad, ja man darīt manu estētiku labi, tas ir tikai gatavojas teikt koris, 1093 00:48:33,420 --> 00:48:38,060 koris, koris, koris, koris, koris, koris, ad nauseum. 1094 00:48:38,060 --> 00:48:39,920 Un visbeidzot, kas notiks? 1095 00:48:39,920 --> 00:48:46,690 Ja liels attēls burtiski ir tas, kas vienkārši notiek konceptuāli? 1096 00:48:46,690 --> 00:48:48,320 Kaudzīti pārtēriņš kaudzi. 1097 00:48:48,320 --> 00:48:52,400 Vai vēl ļaunāk, jūs vienkārši pārsniegts viss, ieskaitot teksta segmentā, kas ir 1098 00:48:52,400 --> 00:48:54,530 kad skaitļi un tie, kas pārstāv savu programmu. 1099 00:48:54,530 --> 00:48:56,690 Īsāk sakot, tas ir vienkārši super, super slikti. 1100 00:48:56,690 --> 00:48:56,860 Labi? 1101 00:48:56,860 --> 00:48:58,620 Jūsu programmā ir spiraled ārpus kontroles. 1102 00:48:58,620 --> 00:49:02,840 Jūs izmantojat kā vairāk atmiņas, nekā paredzēts visiem, jo ​​stulba 1103 00:49:02,840 --> 00:49:03,920 kļūda, šajā gadījumā. 1104 00:49:03,920 --> 00:49:08,160 Vai šajā gadījumā, ļoti apzināti darīts funkcija zvana pati. 1105 00:49:08,160 --> 00:49:09,210 Tagad tas ir ne visi slikti. 1106 00:49:09,210 --> 00:49:12,540 Funkcijas, kas sevi dēvēja tiešām ir ļoti liels spēks 1107 00:49:12,540 --> 00:49:13,700 kad jūs to izmantot pareizi. 1108 00:49:13,700 --> 00:49:15,650 Man ir neizmanto to pareizi šeit. 1109 00:49:15,650 --> 00:49:16,940 >> Tātad tas nav viss slikti. 1110 00:49:16,940 --> 00:49:20,620 Bet fakts, ka es nekad tiešām pārtraukt zvana sevi ir būtiska 1111 00:49:20,620 --> 00:49:23,050 vājums šeit par šo programmu. 1112 00:49:23,050 --> 00:49:25,090 Tātad, ja mēs ejam ar visu šo? 1113 00:49:25,090 --> 00:49:26,230 Nu, ko īsti notiek? 1114 00:49:26,230 --> 00:49:30,010 Kad es zvanu pieauguma funkcijas, tāpat kā mēs to darām ar šiem piemēriem, 1115 00:49:30,010 --> 00:49:33,290 Man ir vērtība, piemēram, 1 ka es iet iekšā 1116 00:49:33,290 --> 00:49:35,820 Es iet uz kopiju numur viens. 1117 00:49:35,820 --> 00:49:37,080 Tāpēc šādi notiek. 1118 00:49:37,080 --> 00:49:40,390 Tāpēc iesim uz pieauguma piemērs. 1119 00:49:40,390 --> 00:49:44,230 Un šis puisis tiesības pār šeit. 1120 00:49:44,230 --> 00:49:46,800 Tātad, šeit ir to, kas patiesībā notiek. 1121 00:49:46,800 --> 00:49:50,770 Kad es piezvanīju pieaugumu, un es iet uz X, piktogrammām, kas ir 1122 00:49:50,770 --> 00:49:53,660 šeit notiek, tas ir - 1123 00:49:53,660 --> 00:50:00,240 ja man ir vērtība 1 glabājas šeit, un es tiešām aicinu pieaugumu, kas 1124 00:50:00,240 --> 00:50:02,680 tagad sauc koris - 1125 00:50:02,680 --> 00:50:04,010 Jā, tas ir throwing mani šeit. 1126 00:50:04,010 --> 00:50:06,750 Tāpēc sauksim šo pieaugumu. 1127 00:50:06,750 --> 00:50:09,420 Un mēs nezinām, kas tas nākamais uzdevums būs. 1128 00:50:09,420 --> 00:50:14,270 Tātad, kas patiesībā notiek, ir šeit kaut kur galvenais, man ir rieciens 1129 00:50:14,270 --> 00:50:16,670 atmiņa, kas ir uzglabāt numuru 1. 1130 00:50:16,670 --> 00:50:19,730 Kad es aicinu pieaugumu, es esmu, izmantojot citu rieciens atmiņas, bet tagad es 1131 00:50:19,730 --> 00:50:20,840 ir kopiju 1. 1132 00:50:20,840 --> 00:50:25,480 Kad es pieauguma šo vērtību, tas kļūst 2 - briesmīgi rakstīts uz 1133 00:50:25,480 --> 00:50:26,420 ekrāns šeit. 1134 00:50:26,420 --> 00:50:30,550 Bet tad, kas notiek ātrāk pieauguma atdevi? 1135 00:50:30,550 --> 00:50:34,610 Šī atmiņa vienkārši izpaužas nodota atpakaļ uz operētājsistēmu, kas nozīmē visu 1136 00:50:34,610 --> 00:50:37,470 Jūs esat darījuši, ir nekas noderīgs. 1137 00:50:37,470 --> 00:50:43,460 Viens, kas sākotnēji tika ietverts galvenais ir joprojām faktiski tur. 1138 00:50:43,460 --> 00:50:44,650 >> Tātad, kur mēs nokļūsim ar šo? 1139 00:50:44,650 --> 00:50:49,400 Nu, izrādās, ka atmiņā ir tas atpakaļ atpakaļ secību 1140 00:50:49,400 --> 00:50:50,940 baiti ka jums var likt sīkumi iekšā 1141 00:50:50,940 --> 00:50:53,760 Un izrādās, ka mēs jau esam redzējuši kaut kas ietver liekot 1142 00:50:53,760 --> 00:50:55,100 lietas atpakaļ atpakaļ atpakaļ atpakaļ. 1143 00:50:55,100 --> 00:51:00,170 Kas ir virkne, kas balstās uz nedēļu un vienu tagad nedēļu divi? 1144 00:51:00,170 --> 00:51:01,840 Tātad tas ir tikai kolekcija rakstzīmes. 1145 00:51:01,840 --> 00:51:05,290 Tātad izrādās, tāpat kā jūs varat ievietot numurus atmiņā, tāpat jūs varat 1146 00:51:05,290 --> 00:51:06,900 likts rakstzīmes atmiņā. 1147 00:51:06,900 --> 00:51:09,810 Un, kad sāksim rakstzīmes atmiņā atpakaļ atpakaļ atpakaļ uz 1148 00:51:09,810 --> 00:51:12,800 atpakaļ, izrādās, ka, izmantojot vienkāršāko lietām, piemēram, par cilpu vai 1149 00:51:12,800 --> 00:51:14,510 kamēr cilpa, mēs varam atkārtot - 1150 00:51:14,510 --> 00:51:17,130 no kreisās uz labo pa virknē burtiem - 1151 00:51:17,130 --> 00:51:20,720 un sākt masāžas tos dažādiem burtiem pavisam. 1152 00:51:20,720 --> 00:51:25,550 Varētu kļūt B. B varētu kļūt C. Tāpēc, ka galu galā, mēs varam veikt 1153 00:51:25,550 --> 00:51:28,830 Angļu teikums, kas faktiski ir jēga un pārvērst katru no tām 1154 00:51:28,830 --> 00:51:32,440 burti vienam ejot caur mūsu datora atmiņā paliek 1155 00:51:32,440 --> 00:51:34,300 Tiesības uz faktiski šifrēt. 1156 00:51:34,300 --> 00:51:36,590 >> Tāpēc pieņemsim mūsu piecu minūšu pārtraukumu šeit, un, kad mēs atgriezīsimies, mēs 1157 00:51:36,590 --> 00:51:39,060 uzsāktu šo procesu kodēšanas informācija. 1158 00:51:41,640 --> 00:51:43,180 >> Labi. 1159 00:51:43,180 --> 00:51:48,440 Tātad, pirms mēs ienirt uz kādu crypto un šīs lietas sauc bloki, ļaujiet man 1160 00:51:48,440 --> 00:51:51,610 pauzes, lai kādi jautājumi, jo es jūtu, ka man tiešām veida neskaidri daži 1161 00:51:51,610 --> 00:51:52,230 šīm tēmām. 1162 00:51:52,230 --> 00:51:53,940 Tāpēc pieņemsim noteikt tagad, ja mēs varam. 1163 00:51:53,940 --> 00:51:56,480 Tātad mēs vienkārši runājām par atgriešanās vērtībām. 1164 00:51:56,480 --> 00:51:58,630 Mēs runājām par argumentiem. 1165 00:51:58,630 --> 00:52:02,330 Un mēs runājām par šo jēdzienu, ko mēs būsim atpakaļ uz nedēļās 1166 00:52:02,330 --> 00:52:07,140 nāc, no skatīšanās atmiņas par visu ķekars no šiem stacked 1167 00:52:07,140 --> 00:52:08,540 paplātes, lai runāt. 1168 00:52:08,540 --> 00:52:13,460 No apakšas uz augšu, piemēram, ka katrs paplātes, kas izpaužas likts uz skursteņa atspoguļo 1169 00:52:13,460 --> 00:52:15,160 funkcija, kas pašlaik tiek saukta. 1170 00:52:17,970 --> 00:52:20,300 Kādi jautājumi? 1171 00:52:20,300 --> 00:52:22,890 Tā kā par - ļaujiet man mēģināt lūdzot jautājumu. 1172 00:52:22,890 --> 00:52:25,520 Es turpinu nesabojātos, taču tagad it's - you've visi redzējuši zēna seju. 1173 00:52:25,520 --> 00:52:27,020 Tātad mēs būsim atpakaļ uz to. 1174 00:52:27,020 --> 00:52:29,700 >> Tāpēc ļaujiet man uzdot jautājumu šeit. 1175 00:52:29,700 --> 00:52:34,810 Ļaujiet man vienkāršot šo atpakaļ uz kāda tā bija pirms dažiem mūsu agrāk Q & A. 1176 00:52:34,810 --> 00:52:41,730 Un fakts, ka pieaugums ir atvērta iekavas, int skaits, slēgtas 1177 00:52:41,730 --> 00:52:42,260 iekavas. 1178 00:52:42,260 --> 00:52:46,370 Kāda int skaits pārstāv? 1179 00:52:46,370 --> 00:52:47,250 [Dzirdams] 1180 00:52:47,250 --> 00:52:47,870 David J. Malan: arguments. 1181 00:52:47,870 --> 00:52:50,732 Labi, bet kas ir arguments? 1182 00:52:50,732 --> 00:52:51,620 [Dzirdams] 1183 00:52:51,620 --> 00:52:52,500 David J. Malan: Atvainojiet, kas tas ir? 1184 00:52:52,500 --> 00:52:53,150 SPEAKER 3: Kaut jūs iet iekšā 1185 00:52:53,150 --> 00:52:53,570 David J. Malan: Labi. 1186 00:52:53,570 --> 00:52:54,780 Tātad kaut kas jums iet iekšā 1187 00:52:54,780 --> 00:52:56,560 Un vispār, tas ir tikai ieejas. 1188 00:52:56,560 --> 00:52:59,860 Ja jūs esat rakstiski funkciju un kuru funkcijas ir mērķis dzīvē ir darīt 1189 00:52:59,860 --> 00:53:03,290 kaut nedaudz atšķiras katru reizi, kad lietojat to, tad vienīgais veids, kā 1190 00:53:03,290 --> 00:53:07,710 Lai tas notiktu tiešām, šķiet, būtu nodrošināt to ar ieguldījumu, lai tā 1191 00:53:07,710 --> 00:53:10,180 var darīt kaut ko citu, ar šo ieejas katru reizi. 1192 00:53:10,180 --> 00:53:13,590 >> Tātad jums ir nepieciešams norādīt divas lietas, kad funkcija tiek ieejas. 1193 00:53:13,590 --> 00:53:17,240 Jums ir nepieciešams norādīt vārdu, kas jūs vēlaties, lai dotu šo ieguldījumu, vienīgi 1194 00:53:17,240 --> 00:53:20,790 savas ērtības, lai jūs varētu atsaukties uz to, kas tu funkciju 1195 00:53:20,790 --> 00:53:23,610 sevi ir rakstiski, kā es šeit 32 rindā. 1196 00:53:23,610 --> 00:53:27,840 Bet jums arī nepieciešams norādīt tā tipu, jo C ir programmēšanas valoda 1197 00:53:27,840 --> 00:53:28,840 ka tikai prasa 1198 00:53:28,840 --> 00:53:31,810 ka, ja jūs vēlaties mainīgo, jums ir pateikt datoram, ko 1199 00:53:31,810 --> 00:53:32,790 datu tips tas ir, 1200 00:53:32,790 --> 00:53:35,540 liela daļa tā, ka tā zina, cik daudz biti 1201 00:53:35,540 --> 00:53:37,230 piešķirt uz šo mainīgo. 1202 00:53:37,230 --> 00:53:38,600 , Jo tas varētu būt Six - 1203 00:53:38,600 --> 00:53:39,990 žēl, tas nebūs seši. 1204 00:53:39,990 --> 00:53:41,050 Tas var būt 16. 1205 00:53:41,050 --> 00:53:41,630 Tas var būt 8. 1206 00:53:41,630 --> 00:53:44,410 Tas var būt 32, pat 64. 1207 00:53:44,410 --> 00:53:45,820 Bet dators jāzina. 1208 00:53:45,820 --> 00:53:49,110 Tagad kreisajā pusē int atspoguļo to, tieši pretēji? 1209 00:53:52,825 --> 00:53:53,780 [Dzirdams] 1210 00:53:53,780 --> 00:53:54,570 David J. Malan: Kas tas ir? 1211 00:53:54,570 --> 00:53:55,390 [Dzirdams] 1212 00:53:55,390 --> 00:53:57,920 David J. Malan: tips funkciju un, konkrētāk, 1213 00:53:57,920 --> 00:53:59,755 veids no saražotā. 1214 00:53:59,755 --> 00:54:00,220 Tiesības. 1215 00:54:00,220 --> 00:54:04,220 Tātad tā lieta iekavās pārstāv tās ieejas, ja tādi ir, 1216 00:54:04,220 --> 00:54:06,640 lieta kreisi pārstāv savu produkciju. 1217 00:54:06,640 --> 00:54:10,560 Un šajā gadījumā, pieauguma acīmredzot atgriež int. 1218 00:54:10,560 --> 00:54:14,590 Un tā int ir atgriešanās tips šīs funkcijas. 1219 00:54:14,590 --> 00:54:16,090 >> Ko tas nozīmē ar atgriešanu? 1220 00:54:16,090 --> 00:54:19,810 Burtiski, jūs izmantojat atslēgvārdu atdevi. 1221 00:54:19,810 --> 00:54:24,640 Un tad, ja tas, ko jūs atgriežas labi no atslēgvārds ir 1222 00:54:24,640 --> 00:54:28,340 vesels, tad tas ir patiešām saskan ar to, ko mēs esam solīja. 1223 00:54:28,340 --> 00:54:31,110 Jūs nevar darīt kaut kas līdzīgs šim - 1224 00:54:31,110 --> 00:54:32,280 Sveiki, pasaule - 1225 00:54:32,280 --> 00:54:33,500 jo tas ir virkne. 1226 00:54:33,500 --> 00:54:35,440 Acīmredzot tas nav vesels skaitlis. 1227 00:54:35,440 --> 00:54:40,450 Tātad īsumā, slogs ir tiešām par mums, programmētājs, būs specifiska 1228 00:54:40,450 --> 00:54:44,730 ko mēs esam atgriežas un tad tiešām iet par to atpakaļ. 1229 00:54:44,730 --> 00:54:49,030 Un tad, lai tad vēl skaidrs konteksts - 1230 00:54:49,030 --> 00:54:50,080 tur viņš ir atkal. 1231 00:54:50,080 --> 00:54:51,060 Konteksts - 1232 00:54:51,060 --> 00:54:52,830 liels pārsteigums nāk tikai brīdi. 1233 00:54:52,830 --> 00:54:57,720 Konteksts šeit tagad ir tas, ka datora atmiņa ir, atkal, 1234 00:54:57,720 --> 00:54:59,070 gigabaitu, divi gigabaiti, neatkarīgi. 1235 00:54:59,070 --> 00:54:59,630 Varbūt tas ir vairāk. 1236 00:54:59,630 --> 00:55:00,540 Varbūt tas ir mazāk. 1237 00:55:00,540 --> 00:55:03,750 Bet dators uzskata to par tādu, kam dažādas sadaļas. 1238 00:55:03,750 --> 00:55:04,860 Kaut kas tur lejā. 1239 00:55:04,860 --> 00:55:06,020 Kaut kas cits iet uz augšu tur. 1240 00:55:06,020 --> 00:55:07,540 Tēmām iet pa vidu. 1241 00:55:07,540 --> 00:55:09,300 Un šodien, mēs vienkārši sākt stāstīt šo stāstu. 1242 00:55:09,300 --> 00:55:11,130 >> Bet mēs būsim atpakaļ uz šo laika gaitā. 1243 00:55:11,130 --> 00:55:15,000 Tagad, vienīgais gabals atmiņas mums patiešām rūp ir teksta segments 1244 00:55:15,000 --> 00:55:17,160 jo tas tikai atspoguļo nulles un ones 1245 00:55:17,160 --> 00:55:18,460 kas šķindēt ir izvadīt. 1246 00:55:18,460 --> 00:55:21,570 Tātad, ja jūs palaist komandu pie klaviatūras, piemēram a.out, vai jūs dubultā 1247 00:55:21,570 --> 00:55:25,350 noklikšķiniet uz ikonas Mac OS vai Windows, jūsu programma ir ielādēta no cietā 1248 00:55:25,350 --> 00:55:26,930 iedzīt RAM. 1249 00:55:26,930 --> 00:55:30,850 Un tas ir plopped augšpusē datora RAM, lai runāt. 1250 00:55:30,850 --> 00:55:35,470 Tagad tikmēr, kā jūsu programma sākas un galvenais izpaužas sauc 1251 00:55:35,470 --> 00:55:39,240 Programma Jūs rakstījāt vai programmu Microsoft vai Apple rakstīja, kāds no tās 1252 00:55:39,240 --> 00:55:42,930 vietējās mainīgie galu galā tur lejā apakšā datora atmiņā. 1253 00:55:42,930 --> 00:55:46,490 Bet, ja galvenais aicina citu funkciju, kas pati ir mainīgos vai 1254 00:55:46,490 --> 00:55:48,340 argumenti, viņi galu galā virs tā. 1255 00:55:48,340 --> 00:55:50,670 Un, ja šī funkcija prasa kaut ko, viņi galu galā virs tā, 1256 00:55:50,670 --> 00:55:51,840 virs tā, virs tā. 1257 00:55:51,840 --> 00:55:56,100 Un tikai tad, kad funkcija tiek darīts izpildes dara kaudze paplātes, tāpēc 1258 00:55:56,100 --> 00:55:58,320 runāt, sāk iegūt zemāk un zemāk. 1259 00:55:58,320 --> 00:56:03,370 Un tas ir tas, ko tad, īsumā, izskaidro, kāpēc, kad jūs zvanu Cube - 1260 00:56:03,370 --> 00:56:04,660 vai jūs saucat pieaugumu - 1261 00:56:04,660 --> 00:56:06,490 jūs iet uz kopiju vērtības. 1262 00:56:06,490 --> 00:56:09,840 Un ko tas nozīmē piktogrammām ir, ka jūs burtiski rakstot 1263 00:56:09,840 --> 00:56:14,540 citā daļā atmiņu 1 numuru, mainot ka 1 līdz 2, ja 1264 00:56:14,540 --> 00:56:15,360 pieaugums - 1265 00:56:15,360 --> 00:56:17,450 vai līdz 8 ir, ja kuba - 1266 00:56:17,450 --> 00:56:21,450 un tad izmet atmiņu prom, tiklīdz palielinājums vai kubā 1267 00:56:21,450 --> 00:56:23,410 funkcija atgriež. 1268 00:56:23,410 --> 00:56:24,267 >> Jautājums. 1269 00:56:24,267 --> 00:56:25,517 [Dzirdams] 1270 00:56:28,090 --> 00:56:29,970 David J. Malan: Kur - globālie mainīgie tiek glabāti, kas ir 1271 00:56:29,970 --> 00:56:32,960 Pašlaik sauc inicializēts dati vai neinicializēts dati. 1272 00:56:32,960 --> 00:56:35,900 Atšķirība ir, ja jums ir globālā mainīgā, un jūs piešķirat to 1273 00:56:35,900 --> 00:56:39,530 Nekavējoties ar vienādības zīmes vērtība, tas beidzas līdz augšpusē tur. 1274 00:56:39,530 --> 00:56:43,390 Un, ja jūs vienkārši pateikt int x semikolu ar nekādas vērtības, tas beidzas līdz mazliet 1275 00:56:43,390 --> 00:56:46,670 mazāks RAM vienkārši pēc vienošanās. 1276 00:56:46,670 --> 00:56:49,308 Citi jautājumi. 1277 00:56:49,308 --> 00:56:49,750 Labi. 1278 00:56:49,750 --> 00:56:53,040 >> Tātad šo attēlu nāks atpakaļ, jo mēs iegūtu vairāk spēcīgs ar ko mēs varam darīt 1279 00:56:53,040 --> 00:56:53,830 ar datoru. 1280 00:56:53,830 --> 00:56:58,790 Bet tagad, pieņemsim ir īss intro uz kriptogrāfija, īpaša veida 1281 00:56:58,790 --> 00:57:01,910 Kriptogrāfija tas neatrisina visas pasaules problēmas, bet tas atrisinātu 1282 00:57:01,910 --> 00:57:02,480 daži no tiem. 1283 00:57:02,480 --> 00:57:06,090 Šajā gadījumā šeit, mums ir kaut ko sauc noslēpums atslēgas kriptogrāfiju. 1284 00:57:06,090 --> 00:57:10,430 Un slepenā atslēga kriptogrāfija, kā nosaukums liecina, iegūst savu drošību 1285 00:57:10,430 --> 00:57:11,330 no noslēpumu. 1286 00:57:11,330 --> 00:57:14,720 Tātad, piemēram, ja jūs esat atpakaļ pakāpē skolā un jūs iet 1287 00:57:14,720 --> 00:57:18,040 maz noslēpums mīlestības vēstuli uz zēns vai meitene jūs drupināšanas par - ja tu 1288 00:57:18,040 --> 00:57:20,820 gribēju iet, ka ar auditoriju, jūs, iespējams, nebūtu rakstīt 1289 00:57:20,820 --> 00:57:24,120 šāds angļu piezīmi vai kāds jūsu dzimtā valoda ir, drīzāk, tu 1290 00:57:24,120 --> 00:57:25,800 varētu šifrēt to. 1291 00:57:25,800 --> 00:57:27,820 Vai jūs varētu vienkārši nosūtīt tos īsziņu šajās dienās. 1292 00:57:27,820 --> 00:57:30,310 Bet jūs tiešām var iet viņiem piezīmi visā klasē. 1293 00:57:30,310 --> 00:57:33,820 Un tas ir jādara droši, tādā veidā, ka jūsu draugi un skolotājs 1294 00:57:33,820 --> 00:57:36,820 nezinu, ko jūs esat rakstiski, jūs varētu nākt klajā ar diezgan vienkāršu 1295 00:57:36,820 --> 00:57:37,800 algoritms - 1296 00:57:37,800 --> 00:57:39,290 Jauns gan jūs varētu būt - 1297 00:57:39,290 --> 00:57:40,780 lai tikai motokross vārdiem. 1298 00:57:40,780 --> 00:57:44,390 Tā vietā rakstot, jūs varētu uzrakstīt B. vietā B, jūs varētu uzrakstīt 1299 00:57:44,390 --> 00:57:46,670 C. vietā C, jūs varētu rakstīt D, un tā tālāk. 1300 00:57:46,670 --> 00:57:50,020 Vai jūs varētu nākt klajā ar daudz sarežģītu tulkojumu vēstulēm 1301 00:57:50,020 --> 00:57:51,300 dažādām vēstulēm. 1302 00:57:51,300 --> 00:57:55,440 Bet nozveja ir zēns vai meitene, kuram jūs sūtāt šo piezīmi ir 1303 00:57:55,440 --> 00:57:56,850 zināt kaut ko. 1304 00:57:56,850 --> 00:57:59,620 Kas ir tas, protams? 1305 00:57:59,620 --> 00:58:01,400 Piemēram, kādas ir jūsu noslēpums ir. 1306 00:58:01,400 --> 00:58:04,620 Piemēram, kāda ir starp AS un BS un Cs un DS kartēšana? 1307 00:58:04,620 --> 00:58:08,780 Tas ir tikai pievienojot vienu, tā sakot, uz katru no burtiem, lai iet no 1308 00:58:08,780 --> 00:58:09,730 Uz B, B uz C? 1309 00:58:09,730 --> 00:58:11,350 Tas ir daudz sarežģītāka, nekā? 1310 00:58:11,350 --> 00:58:16,450 Tātad jūs un jūsu simpātiju ir nepieciešama šo slepeno informāciju. 1311 00:58:16,450 --> 00:58:18,170 Bet tur ir sava veida nozvejas-22 šeit. 1312 00:58:18,170 --> 00:58:20,760 Ja šī ir pirmā reizi, kad jūs sūtāt šo mīlestības vēstuli caur 1313 00:58:20,760 --> 00:58:25,590 klasē, kā tas, ka zēns vai meitene dodas uz zināt noslēpums pat ir? 1314 00:58:25,590 --> 00:58:28,450 Tātad slepenā atslēga Šifrēšanas neatrisina visas pasaules problēmas. 1315 00:58:28,450 --> 00:58:30,490 Un tur tiešām attiecības, ka mēs atgriezīsimies pie virzienā 1316 00:58:30,490 --> 00:58:31,370 semestra beigās. 1317 00:58:31,370 --> 00:58:35,970 >> Tāpat, ir neviens no mums, iespējams, kādreiz nosūtīts - 1318 00:58:35,970 --> 00:58:39,453 Tāpat, lielākā daļa no mums nevar zināt kādu, kas darbojas, piemēram, pie 1319 00:58:39,453 --> 00:58:40,300 Amazon.com. 1320 00:58:40,300 --> 00:58:43,130 Un tomēr, daudzi no mums ir iespējams iegādāties sīkumi pie Amazon.com. 1321 00:58:43,130 --> 00:58:45,670 Un mēs esam mācīti domāt, ka šos e-komercijas 1322 00:58:45,670 --> 00:58:47,060 darījumi ir droši. 1323 00:58:47,060 --> 00:58:47,210 Labi? 1324 00:58:47,210 --> 00:58:49,310 URL, iespējams saka https. 1325 00:58:49,310 --> 00:58:51,590 Tur varbūt muļķīgi mazliet atslēdziņa ikonas kaut kur. 1326 00:58:51,590 --> 00:58:54,680 Tur ir dažas no kriptogrāfijas veida nodrošināt savu kredītkartes informāciju 1327 00:58:54,680 --> 00:58:56,980 starp jums un Amazon.com. 1328 00:58:56,980 --> 00:59:00,410 Un tomēr, ja kriptogrāfija ietver zinot kādu noslēpumu, un tomēr man nav 1329 00:59:00,410 --> 00:59:03,330 zināt kāds pie Amazon, un es esmu, protams, nav sakārtoti jebkāda veida 1330 00:59:03,330 --> 00:59:07,350 noslēpums ar kādu Amazon, kā mans dators vai mana pārlūkprogramma to izdarīt? 1331 00:59:07,350 --> 00:59:10,100 Nu, izrādās, tur ir citi veidi, kriptogrāfija kopā kas atrisinās 1332 00:59:10,100 --> 00:59:10,740 ka problēma. 1333 00:59:10,740 --> 00:59:13,610 Bet šodien, mēs koncentrēties uz vienkāršu vienu, kur jūs varat sakārtot 1334 00:59:13,610 --> 00:59:18,480 pārietu zināt kādu noslēpumu, piemēram, 1 plus vai kādu starp AS un BS kartēšanu. 1335 00:59:18,480 --> 00:59:20,710 >> Un par kriptogrāfiju process parasti ietver šo. 1336 00:59:20,710 --> 00:59:23,550 Jums ir dažas teksta, kas attēlota šeit kreisi. 1337 00:59:23,550 --> 00:59:26,260 Jūs palaist to caur kādu algoritmu vai procedūras 1338 00:59:26,260 --> 00:59:27,670 šifrējot to. 1339 00:59:27,670 --> 00:59:31,390 Varbūt tas ir tikai kļūst B un B kļūst C. un tad jūs galu galā ar 1340 00:59:31,390 --> 00:59:32,260 šifrēt tekstu. 1341 00:59:32,260 --> 00:59:36,450 Tikmēr, kad jūsu simpātiju saņem slepeno piezīmi, viņš vai viņa ir, tad 1342 00:59:36,450 --> 00:59:39,950 atšifrēt ar vispārīgi atpakaļgaitas ka algoritmu, lai iegūtu 1343 00:59:39,950 --> 00:59:41,640 atpakaļ uz teksta. 1344 00:59:41,640 --> 00:59:43,860 Tagad tur ir fiziski iemiesojumi šo. 1345 00:59:43,860 --> 00:59:46,720 Piemēram, tas ir mazliet noslēpums dekodera gredzenu. 1346 00:59:46,720 --> 00:59:50,060 Un tas ir gredzens, kas nozīmē, ka tur ir divas ciparnīcas šeit. 1347 00:59:50,060 --> 00:59:53,630 Uz ārējās perifērijā šī lieta, tur ir burti no A līdz Z, 1348 00:59:53,630 --> 00:59:55,110 kaut viņi nejaušā secībā. 1349 00:59:55,110 --> 00:59:58,410 Un no iekšpuses, tur tiešām daži skaitļi, piemēram, ka ar šo 1350 00:59:58,410 --> 01:00:02,940 gredzens, jūs varat veida vērsties ārpus tā, bet ne no iekšpuses, lai rindā 1351 01:00:02,940 --> 01:00:04,110 numurus ar burtiem. 1352 01:00:04,110 --> 01:00:08,290 Un klipa jūs gatavojaties redzēt - no kuriem daži jūs varētu būt redzējis 24/7 1353 01:00:08,290 --> 01:00:11,120 ap Ziemassvētku sezonā no filmu sauc Ziemassvētku stāsts. 1354 01:00:11,120 --> 01:00:16,050 Jūs redzēsiet, ka maz Ralphie bija tik ieinteresēts, lai noskaidrotu, ko maz bāreni 1355 01:00:16,050 --> 01:00:19,810 Annie noslēpums vēstījums bija viņam, ka tika paziņots, es domāju, 1356 01:00:19,810 --> 01:00:22,810 forma skaitliskajā ziņojumus par sērijveida kastē. 1357 01:00:22,810 --> 01:00:26,760 Un jums bija uzkrāt visu maz kartes, kas nāca 1358 01:00:26,760 --> 01:00:27,480 ar labības kastē. 1359 01:00:27,480 --> 01:00:28,320 Jums bija uz pastu tos collas 1360 01:00:28,320 --> 01:00:31,060 Jums bija, lai saņemtu atpakaļ slepeno dekodera gredzenu, lai jūs varētu beidzot saprast 1361 01:00:31,060 --> 01:00:34,190 , ko kartēšana ir starp burtiem un cipariem, 1362 01:00:34,190 --> 01:00:35,420 vai burti un burti. 1363 01:00:35,420 --> 01:00:39,790 Tāpēc es jums šo īso klipu no Ziemassvētku stāsts motivēt PSET 2 un 1364 01:00:39,790 --> 01:00:42,340 Mūsu diskusija, pēc brīža, par masīvu. 1365 01:00:42,340 --> 01:00:43,773 Tātad šeit mums ir Ralphie. 1366 01:00:43,773 --> 01:00:44,126 >> [VIDEO ATSKAŅOŠANA] 1367 01:00:44,126 --> 01:00:47,470 -Vai tas zināms visiem un dažādi, ka Ralfs Pārkers tiek iecelts 1368 01:00:47,470 --> 01:00:50,690 no Little Orphan Annie Secret Circle loceklis un viņam ir tiesības uz visiem 1369 01:00:50,690 --> 01:00:53,500 godina un ieguvumi rodas tiem. 1370 01:00:53,500 --> 01:00:56,040 -Parakstīts, Mazā Bārenis Annija. 1371 01:00:56,040 --> 01:00:58,730 Parakstu, Pierre Andre! 1372 01:00:58,730 --> 01:01:00,150 Ar tinti! 1373 01:01:00,150 --> 01:01:02,910 Apbalvojumus un ieguvumi, kas jau vecumā no deviņiem. 1374 01:01:09,970 --> 01:01:10,730 Nāc, pieņemsim nokļūt ar to. 1375 01:01:10,730 --> 01:01:15,000 Man nav nepieciešams visu, kas jazz par kontrabandistiem un pirāti. 1376 01:01:15,000 --> 01:01:17,624 -Dziesmas rīt naktī noslēguma piedzīvojumu Melnais 1377 01:01:17,624 --> 01:01:19,710 Pirātu kuģis. 1378 01:01:19,710 --> 01:01:23,380 Tagad ir pienācis laiks, lai Annie slepeno ziņu jums biedri 1379 01:01:23,380 --> 01:01:25,670 no Secret Circle. 1380 01:01:25,670 --> 01:01:30,260 Atcerieties, bērni, tikai locekļi Annie s Secret Circle var atšifrēt 1381 01:01:30,260 --> 01:01:31,660 Annie noslēpums ziņa. 1382 01:01:31,660 --> 01:01:36,230 Atcerieties, Annija ir atkarīgs no jums. 1383 01:01:36,230 --> 01:01:38,720 Iestatīt savu pins līdz B2. 1384 01:01:38,720 --> 01:01:41,040 Šeit ir ziņa. 1385 01:01:41,040 --> 01:01:42,470 12, 11 - 1386 01:01:42,470 --> 01:01:46,000 -Es esmu savā pirmajā slepenā sanāksmē. 1387 01:01:46,000 --> 01:01:49,440 -14, 11, 18, 16 - 1388 01:01:49,440 --> 01:01:51,700 Pjērs bija liels balss šovakar. 1389 01:01:51,700 --> 01:01:54,890 Es varētu pateikt, ka šovakar vēstījums bija ļoti svarīgi. 1390 01:01:54,890 --> 01:01:56,750 -3, 25. 1391 01:01:56,750 --> 01:01:58,590 Tas ir vēstījums no Annie pati. 1392 01:01:58,590 --> 01:01:59,840 Atcerieties, nav pateikt kāds. 1393 01:02:04,570 --> 01:02:08,750 -90 Sekundes vēlāk, es esmu tikai telpā mājā, kur zēns no deviņiem 1394 01:02:08,750 --> 01:02:12,980 varētu sēdēt privātumu un atšifrēt. 1395 01:02:12,980 --> 01:02:17,130 Aha, B. Es devos uz nākamo. 1396 01:02:17,130 --> 01:02:20,330 E. Pirmais vārds ir jābūt. 1397 01:02:20,330 --> 01:02:22,670 S. Tā nāca vieglāk tagad. 1398 01:02:22,670 --> 01:02:24,590 U. 1399 01:02:24,590 --> 01:02:26,510 -Ak, come on, Ralphie. 1400 01:02:26,510 --> 01:02:28,430 Man iet. 1401 01:02:28,430 --> 01:02:30,350 -I'll būt tiesības uz leju, ma. 1402 01:02:30,350 --> 01:02:33,720 -Gee sīkšana. 1403 01:02:33,720 --> 01:02:38,270 -T, O. Noteikti. 1404 01:02:38,270 --> 01:02:40,000 Noteikti ko? 1405 01:02:40,000 --> 01:02:42,105 Kas bija maz Bārenis Annija cenšas pateikt? 1406 01:02:42,105 --> 01:02:43,095 Noteikti ko? 1407 01:02:43,095 --> 01:02:43,590 -Ralphie! 1408 01:02:43,590 --> 01:02:44,580 Randy ir ieguvuši iet. 1409 01:02:44,580 --> 01:02:45,570 Vai jūs, lūdzu, nākt ārā? 1410 01:02:45,570 --> 01:02:46,560 -Nu labi, ma. 1411 01:02:46,560 --> 01:02:48,540 Es būšu tiesības out. 1412 01:02:48,540 --> 01:02:50,580 -Es biju kļūst tuvāk tagad. 1413 01:02:50,580 --> 01:02:52,550 Spriedze bija briesmīga. 1414 01:02:52,550 --> 01:02:53,355 Kas tas bija? 1415 01:02:53,355 --> 01:02:56,315 No planētas liktenis var pakārt līdzsvarā. 1416 01:02:56,315 --> 01:02:56,790 -Ralphie! 1417 01:02:56,790 --> 01:02:59,165 Randy dabūja iet. 1418 01:02:59,165 --> 01:03:02,310 -I'll būt labi ārā, lai kliedz skaļi. 1419 01:03:02,310 --> 01:03:04,000 -Gee, gandrīz tur. 1420 01:03:04,000 --> 01:03:05,180 Mani pirksti lidoja. 1421 01:03:05,180 --> 01:03:07,150 Mans prāts bija tērauda lamatas. 1422 01:03:07,150 --> 01:03:08,790 Katru poru virmoja. 1423 01:03:08,790 --> 01:03:10,040 Tas bija gandrīz skaidrs. 1424 01:03:10,040 --> 01:03:13,400 Jā, jā, jā, jā. 1425 01:03:13,400 --> 01:03:18,960 -Noteikti dzert savu Ovaltine. 1426 01:03:18,960 --> 01:03:20,210 Ovaltine? 1427 01:03:24,010 --> 01:03:25,260 Apaļīgs komerciāla? 1428 01:03:28,200 --> 01:03:29,640 Dēls kuce. 1429 01:03:29,640 --> 01:03:33,340 [END VIDEO ATSKAŅOŠANA] 1430 01:03:33,340 --> 01:03:36,040 >> David J. Malan: Tātad mums ir kriptogrāfiju. 1431 01:03:36,040 --> 01:03:39,670 Tātad, kā ar datoru, mēs varam iet par īstenošanu vai 1432 01:03:39,670 --> 01:03:40,950 pārstāv lietas, kā šis? 1433 01:03:40,950 --> 01:03:44,430 Nu, mums ir nepieciešams veids, kā izteikt sevi nedaudz elastīgāk nekā 1434 01:03:44,430 --> 01:03:46,420 Mūsu mainīgie līdz šim sniegtie pakalpojumi. 1435 01:03:46,420 --> 01:03:47,370 Mēs esam bija Ints. 1436 01:03:47,370 --> 01:03:48,380 Mēs esam bija chars. 1437 01:03:48,380 --> 01:03:50,790 Mēs esam bija pludiņus un dubultspēlēs un daži citi. 1438 01:03:50,790 --> 01:03:55,050 Bet tie ir unikāli atmiņu, kas nav īsti ļauj mums 1439 01:03:55,050 --> 01:03:58,010 izteikt lietas, piemēram, vārdus un teikumus un frāzes. 1440 01:03:58,010 --> 01:04:00,200 Patiesi, mēs esam sauc tādas lietas stīgas. 1441 01:04:00,200 --> 01:04:03,650 Bet mēs solīja, ka tas patiešām ir tikai vienkāršošanu CS50 ar 1442 01:04:03,650 --> 01:04:07,020 bibliotēka, kas mēs esam, kas vēlas mizu atpakaļ. 1443 01:04:07,020 --> 01:04:08,970 >> Un tāpēc sāksim to darīt šeit. 1444 01:04:08,970 --> 01:04:11,130 Ļaujiet man iet uz priekšu un atvērt failu - 1445 01:04:11,130 --> 01:04:13,770 visi šie faili ir pieejami kā parasti tiešsaistē - 1446 01:04:13,770 --> 01:04:19,120 aicināja array.c lai atrisinātu problēmu nav saistīta ar stīgas bet glezno 1447 01:04:19,120 --> 01:04:23,040 attēlu šeit, kā mēs varētu izmantot kaut ko sauc par masīvu. 1448 01:04:23,040 --> 01:04:25,530 Masīvs ir datu tips. 1449 01:04:25,530 --> 01:04:31,320 Tas ir veids, mainīgais, par veidu, ka ir vairākas mazākas datu tipu 1450 01:04:31,320 --> 01:04:34,150 iekšpusē tā atpakaļ atpakaļ atpakaļ atpakaļ. 1451 01:04:34,150 --> 01:04:37,700 Tātad, piemēram, ja mēs vēlamies, lai rakstītu maz programmu, kas sniedz jums jūsu 1452 01:04:37,700 --> 01:04:42,110 viktorīna vidējo kursu, piemēram, 50, kas ir divas viktorīnas, jūs varētu ļoti viegli 1453 01:04:42,110 --> 01:04:45,170 rakstīt šo programmu - pamatā pat par dažiem pagājušās nedēļas materiālu - 1454 01:04:45,170 --> 01:04:47,770 izmantojot GetInt un mainīgo lielumu pāris. 1455 01:04:47,770 --> 01:04:51,920 Int quiz1, int quiz2, un tas ir diezgan vienkārši. 1456 01:04:51,920 --> 01:04:55,930 Tas ir varbūt 10, 20 rindas kods, max, lai īstenotu programmu, kas lūdz 1457 01:04:55,930 --> 01:05:01,170 lietotājs divas viktorīnu punktus un pēc tam aprēķina to vidējais pievienojot tos 1458 01:05:01,170 --> 01:05:03,850 kopā, dalot ar divi, un tad izdrukāt rezultātu. 1459 01:05:03,850 --> 01:05:06,380 Mēs droši vien varētu izdarīt diezgan viegli tagad pēc 1460 01:05:06,380 --> 01:05:07,510 daži minūšu skaits. 1461 01:05:07,510 --> 01:05:11,005 >> Bet problēma ir tā, ka pieņemsim, ka 50 bija trīs viktorīnas vai četri. 1462 01:05:11,005 --> 01:05:13,510 Pieņemsim, ka jūs vēlaties izmantot to pašu programmu klase, kas bija 1463 01:05:13,510 --> 01:05:14,850 nedēļas viktorīnas. 1464 01:05:14,850 --> 01:05:16,610 Padomā par klasi, kas ir nedēļas viktorīnas. 1465 01:05:16,610 --> 01:05:20,610 Ja tur ir, piemēram, 16 vai tik nedēļas semestrī, tagad jums ir 16 mainīgie - 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 Tiklīdz jūs sākat redzēt šo atlaišanu, tas kopēšanu un ielīmēšanu 1468 01:05:27,560 --> 01:05:31,390 koda, tas ir jāsāk, lai jūs vēlaties, tur bija labāks veids. 1469 01:05:31,390 --> 01:05:33,930 Un par laimi, jo bloki, tur ir. 1470 01:05:33,930 --> 01:05:34,980 Tāpēc pieņemsim darīt. 1471 01:05:34,980 --> 01:05:38,430 Pirmkārt, ļaujiet man iepazīstināt ļoti vienkārša lieta, ka mēs esam ne izmantots līdz šim, 1472 01:05:38,430 --> 01:05:40,140 bet jūs redzēsiet to reizēm kodu. 1473 01:05:40,140 --> 01:05:42,360 Tas ir tas, ko parasti sauc nemainīgs. 1474 01:05:42,360 --> 01:05:45,790 Tāpēc tas konstanti nozīmē, ka šī vērtība nekad nemainās. 1475 01:05:45,790 --> 01:05:49,210 Cilvēka konvencija veidojot nemainīga ir izmantot visu kapitālu 1476 01:05:49,210 --> 01:05:51,940 burti, tikai tāpēc, ka tas patiešām izceļas savu kodu. 1477 01:05:51,940 --> 01:05:55,960 Un īpašs atslēgvārdu, ka jūs izmantot C ir # definēt. 1478 01:05:55,960 --> 01:06:00,250 Tātad, ja jūs sakāt # define, tad atstarpi, tad vārdu, kuru vēlaties izmantot 1479 01:06:00,250 --> 01:06:03,260 Pastāvīga vārds, un tad vērtība nemainās. 1480 01:06:03,260 --> 01:06:06,180 Tātad paziņojuma, tas ir atšķirīgs no piešķirot kaut mainīgo. 1481 01:06:06,180 --> 01:06:07,020 Nav vienlīdzības zīmi. 1482 01:06:07,020 --> 01:06:08,240 Nav semikolu. 1483 01:06:08,240 --> 01:06:11,410 Tas ir tas, ko parasti sauc par apstrādātāju direktīvas, bet vairāk par 1484 01:06:11,410 --> 01:06:12,210 ka cita laika. 1485 01:06:12,210 --> 01:06:18,540 >> Tagad, tas rada nemainīgu sauc vērtība viktorīnas kuru faktiskā 1486 01:06:18,540 --> 01:06:19,940 skaitliskā vērtība ir 2. 1487 01:06:19,940 --> 01:06:24,020 Tātad visur jūs redzēt viktorīnas, viktorīnas, aptaujas visā šo failu, kas ir 1488 01:06:24,020 --> 01:06:25,410 tikai numurs 2. 1489 01:06:25,410 --> 01:06:28,100 Tagad, ja es paskatos galvenais tagad, pieņemsim redzēt, kā tas darbojas. 1490 01:06:28,100 --> 01:06:29,500 Sākumā tas izskatās mazliet noslēpumains. 1491 01:06:29,500 --> 01:06:31,340 Bet tas viss ir sīkumi, no vienas nedēļas. 1492 01:06:31,340 --> 01:06:32,710 Pieprasīt no lietotāja pakāpēs. 1493 01:06:32,710 --> 01:06:33,630 Kā mēs to darām? 1494 01:06:33,630 --> 01:06:35,470 Nu, 22 līnija - 1495 01:06:35,470 --> 01:06:37,210 Tas ir patiešām sulīgs daļa - 1496 01:06:37,210 --> 01:06:40,960 Es paziņoju, apgrozāmos līdzekļus, bet ne tikai viena pludiņš. 1497 01:06:40,960 --> 01:06:44,620 Es esmu paziņojot, drīzāk, masīvu peldošā komata vērtību. 1498 01:06:44,620 --> 01:06:49,100 Ka mainīgais tiks sauc pakāpes, kā jau minēts šeit. 1499 01:06:49,100 --> 01:06:53,080 Bet vienīgais gabals jaunās sintakses tad ir šie kvadrātiekavas, fakts 1500 01:06:53,080 --> 01:06:59,350 ka es esmu teica peldēt pakāpes un tad atveriet kronšteins un tad numurs. 1501 01:06:59,350 --> 01:07:02,460 Paziņojums, ja tas ir nemainīgs, tas ir tāpat kā mēs to darījām. 1502 01:07:02,460 --> 01:07:06,890 Tas nozīmē, hey dators, dod man divas pludiņi, un pieņemsim kolektīvi piezvanīt 1503 01:07:06,890 --> 01:07:08,220 viņiem pakāpes. 1504 01:07:08,220 --> 01:07:11,920 Tas ir pretstatā daudz garlaicīgs process, kā šis. 1505 01:07:11,920 --> 01:07:15,850 Peldēt Grade1, peldēt Grade2, un tā tālāk. 1506 01:07:15,850 --> 01:07:20,010 Tāpēc masīvs ļauj mums īstenot šo ideju, bet daudz mazāk messily, jo 1507 01:07:20,010 --> 01:07:24,630 tādā veidā, ka mēs varam rakstīt vienu rindiņu kodu, nevis, teiksim, 16 16 A 1508 01:07:24,630 --> 01:07:25,740 nedēļa semestris. 1509 01:07:25,740 --> 01:07:29,950 Tāpēc es negribēju grūti kods 2, jo, ja jūs domājat par šo tagad 1510 01:07:29,950 --> 01:07:34,160 loģiski - pieņemsim nākamgad CS50 maiņas 3 viktorīnas vietā. 1511 01:07:34,160 --> 01:07:35,510 Un man bija numuru 2 šeit. 1512 01:07:35,510 --> 01:07:36,600 Man bija numuru 2 šeit. 1513 01:07:36,600 --> 01:07:37,580 Man bija numuru 2 šeit. 1514 01:07:37,580 --> 01:07:38,560 Man bija numuru 2 šeit. 1515 01:07:38,560 --> 01:07:43,180 Tā kļūst ļoti garlaicīgs un ļoti viegli skrūvējamu augšu un uz nejauši mainīt 1516 01:07:43,180 --> 01:07:47,690 viena vērtība līdz 3 un garām kādu citu vērtību 2. 1517 01:07:47,690 --> 01:07:52,460 Tāpēc es esmu gatavojas nevis abstrakti šo prom, un izmantot šo konstante, ka tās 1518 01:07:52,460 --> 01:07:54,120 nosaukums, nekad nemainās. 1519 01:07:54,120 --> 01:07:57,710 Un tagad, nav svarīgi, vai mums ir dažādi viktorīnas šogad vai nākamā, es 1520 01:07:57,710 --> 01:08:01,210 vienkārši ir mainīt to vienā vietā, šeit augšā. 1521 01:08:01,210 --> 01:08:02,720 >> Tā ka viss konstante ir. 1522 01:08:02,720 --> 01:08:08,680 Tikmēr jaunā konceptuālā iezīme ir tā, ka no masīva. 1523 01:08:08,680 --> 01:08:14,660 Tātad kvadrātiekavas man šo daudz pludiņus un ļauj man kolektīvi 1524 01:08:14,660 --> 01:08:16,630 viņiem piezvanīt pakāpes šeit. 1525 01:08:16,630 --> 01:08:17,990 Tāpēc tagad pieņemsim redzēt, ko es esmu gatavojas darīt. 1526 01:08:17,990 --> 01:08:20,359 Šeit 24 līnija ir par sākums cilpu. 1527 01:08:20,359 --> 01:08:22,260 Tas ir patiešām nekas iedomātā. 1528 01:08:22,260 --> 01:08:25,060 Tas ir vienkārši, izmantojot aptaujas nevis iekodēts numuru. 1529 01:08:25,060 --> 01:08:27,790 Bet tur nekas intelektuāli atšķiras no tiem pagājušajā nedēļā. 1530 01:08:27,790 --> 01:08:29,040 Tas ir tikai printf. 1531 01:08:29,040 --> 01:08:35,490 Tātad printf ("viktorīna skaits% d no% d"), jo es tikai vēlos, lai izdrukātu dot man viktorīnas 1532 01:08:35,490 --> 01:08:38,050 numurs diviem un tad viens no diviem divi. 1533 01:08:38,050 --> 01:08:39,850 Tātad šis ir tīri estētisks lieta. 1534 01:08:39,850 --> 01:08:42,500 Bet interesanti daļa tagad ir 27 rindā. 1535 01:08:42,500 --> 01:08:48,310 Lai aizpildītu vienā no divām vietturu ar peldošo komatu 1536 01:08:48,310 --> 01:08:51,029 vērtība, tu atkal izmantot kvadrātiekavas. 1537 01:08:51,029 --> 01:08:55,620 Šajā gadījumā, es esmu, izmantojot i, jo šis cilpa ir sācies ar I līdzinoties 1538 01:08:55,620 --> 01:08:57,560 kāda vērtība, acīmredzot? 1539 01:08:57,560 --> 01:08:58,279 0. 1540 01:08:58,279 --> 01:09:01,350 >> Tātad pirmajā atkārtojuma šīs cilpas, tas ir, it kā es 1541 01:09:01,350 --> 01:09:02,689 rakstīja šo kodu. 1542 01:09:02,689 --> 01:09:05,580 Bet otrajā atkārtojuma šīs cilpas, tas ir, it kā es 1543 01:09:05,580 --> 01:09:07,750 rakstīja šo manā kodu. 1544 01:09:07,750 --> 01:09:10,750 Bet fakts, ka es esmu, izmantojot mainīgo ir ideāls, jo, kā nosaukums 1545 01:09:10,750 --> 01:09:14,300 ierosina, tas mainās savu vērtību par katru atkārtojuma. 1546 01:09:14,300 --> 01:09:17,370 Tāpēc es esmu aizpildot šī masīva vienas vietas laikā. 1547 01:09:17,370 --> 01:09:18,910 Ko tas masīvs izskatās? 1548 01:09:18,910 --> 01:09:21,430 Nu, iemesls, kāpēc es vērsa šo super vienkāršu taisnstūri uz ekrāna šeit 1549 01:09:21,430 --> 01:09:23,350 Pirms šī iemesla. 1550 01:09:23,350 --> 01:09:27,279 Masīvs ir tikai atmiņas rieciens seko cita rieciens atmiņas, 1551 01:09:27,279 --> 01:09:30,109 seko cits rieciens atmiņu, un tā tālāk. 1552 01:09:30,109 --> 01:09:35,260 Tātad, ja mans masīvs ir 2 izmēru, šajā gadījumā šeit, viss, ko es varētu darīt ar 1553 01:09:35,260 --> 01:09:37,590 ierakstot manu viktorīnu punktus, piemēram, šeit. 1554 01:09:37,590 --> 01:09:39,430 Man 100 par šo vienu. 1555 01:09:39,430 --> 01:09:42,020 Un tad es saņēmu 99 par šo vienu. 1556 01:09:42,020 --> 01:09:46,040 Tad šī atmiņa varētu pat tikt izmantots, jo es esmu tikai lūdza 1557 01:09:46,040 --> 01:09:48,689 Dators masīva 2 izmēru. 1558 01:09:48,689 --> 01:09:50,180 Šie laukumi ir joprojām. 1559 01:09:50,180 --> 01:09:50,340 Labi? 1560 01:09:50,340 --> 01:09:52,500 Jums vēl ir divi gigabaiti RAM, pat ja tu esi tikai 1561 01:09:52,500 --> 01:09:53,979 lūdzot divus pludiņi. 1562 01:09:53,979 --> 01:09:58,710 Tātad aiz masīviem ideja ir tāda, ka dators vienkārši ņem rieciens atmiņas 1563 01:09:58,710 --> 01:10:03,230 un tad proporcionāli sadala mazākos gabalos atpakaļ atpakaļ atpakaļ atpakaļ. 1564 01:10:03,230 --> 01:10:04,740 Un tā tas viss masīvs. 1565 01:10:04,740 --> 01:10:09,080 Tas ir blakusesoši rieciens atmiņas, iekšā kas var nodot lietas. 1566 01:10:09,080 --> 01:10:12,400 >> Tagad tas notiek, lai pēc tam darīt tikai dažas boring aritmētika. 1567 01:10:12,400 --> 01:10:16,170 Ja es ritiniet uz leju šeit, tas ir, ja es tad atkārtot pa masīva. 1568 01:10:16,170 --> 01:10:19,410 Es nāku klajā ar summējot visu masīvā vērtībām. 1569 01:10:19,410 --> 01:10:22,390 Un tad es izmantot apaļo funkciju šeit, lai faktiski darīt 1570 01:10:22,390 --> 01:10:23,940 Apkopojot dalīts ar viktorīnas. 1571 01:10:23,940 --> 01:10:27,450 Bet ļaujiet man vilnis savu roku tajā kā sava veida pietiekami aritmētikas tagad. 1572 01:10:27,450 --> 01:10:30,010 Bet viss, kas dara man beidzot ir skaitļošanas vidēji. 1573 01:10:30,010 --> 01:10:33,640 Tāpēc vispirms viktorīna plus 2. viktorīna, dalīts ar 2, un pēc tam drukāšanas 1574 01:10:33,640 --> 01:10:34,700 tā veic kā int. 1575 01:10:34,700 --> 01:10:39,030 >> Bet pieņemsim tagad pāreja uz citu piemēru sauc virkne1, 1576 01:10:39,030 --> 01:10:42,370 kas krāsām līdzīgu ainu, bet, izmantojot stīgām. 1577 01:10:42,370 --> 01:10:45,550 Ļaujiet man iet uz priekšu un vienkāršot tikai brīdi. 1578 01:10:45,550 --> 01:10:48,340 Un piedod iedobi tagad. 1579 01:10:48,340 --> 01:10:52,280 Paziņojums šā piemērā 19 līnijā, man string no lietotāja. 1580 01:10:52,280 --> 01:10:55,780 Bet pamanīt to, ko es esmu nākamais dara rindās 22 vēlāk. 1581 01:10:55,780 --> 01:11:00,260 Es esmu tiešām atkārtojot no i līdz - un tas ir jauns triks - 1582 01:11:00,260 --> 01:11:02,730 strlen, stīgu garumu. 1583 01:11:02,730 --> 01:11:07,010 Tas ir funkcija, kas nāk ar C, ka, ja jūs iet to stīgu, tā stāsta 1584 01:11:07,010 --> 01:11:08,950 Jūs cik rakstzīmes ir šajā virknē. 1585 01:11:08,950 --> 01:11:09,440 Tas arī viss. 1586 01:11:09,440 --> 01:11:12,520 Fakts, ka tā ir strlen instead stīgu garums ir tikai tāpēc, ka tas ir 1587 01:11:12,520 --> 01:11:13,040 vairāk kodolīgs. 1588 01:11:13,040 --> 01:11:17,100 Pirms 30 gadiem, cilvēkiem patika rakstīt lietas kā īsi vien iespējams. 1589 01:11:17,100 --> 01:11:19,080 Tāpēc mēs esam tur, ka konvenciju šeit. 1590 01:11:19,080 --> 01:11:21,730 I + + tikai nozīmē pieauguma i katrā atkārtojuma. 1591 01:11:21,730 --> 01:11:24,310 Un tagad paziņojums šo, kas ir patiešām interesanti. 1592 01:11:24,310 --> 01:11:28,730 Tātad 24 rindā, es saku datoru, man raksturs ziņām astoņi 1593 01:11:28,730 --> 01:11:30,770 biti, un to sauc c. 1594 01:11:30,770 --> 01:11:35,370 Bet kas tas ir par labajā pusē saka? 1595 01:11:35,370 --> 01:11:38,150 Angļu, ko tas pārstāv? 1596 01:11:38,150 --> 01:11:40,070 [Dzirdams] 1597 01:11:40,070 --> 01:11:40,490 David J. Malan: Tieši tā. 1598 01:11:40,490 --> 01:11:42,390 Dodiet man pirmo rakstzīmi masīvs. 1599 01:11:42,390 --> 01:11:45,400 Vai vispār, man i-rakstzīmi masīvs. 1600 01:11:45,400 --> 01:11:48,230 Un saprast, tas ir svarīgi, ka šobrīd kā datorzinātnieku, mēs esam patiesībā 1601 01:11:48,230 --> 01:11:49,330 skaitot no 0. 1602 01:11:49,330 --> 01:11:51,290 Jums nav rīcības brīvības tagad, lai sāktu to darīt. 1603 01:11:51,290 --> 01:11:54,580 Tagad jums ir rīkosies saskaņā ar datoru cerībām un 1604 01:11:54,580 --> 01:11:58,010 skaitīt no nulles, jo [0] būs pirmais 1605 01:11:58,010 --> 01:11:59,670 raksturs virknē. 1606 01:11:59,670 --> 01:12:01,320 [1] būs otrais. 1607 01:12:01,320 --> 01:12:03,610 [2] būs trešais, un tā tālāk. 1608 01:12:03,610 --> 01:12:08,840 Tātad šajā programmā, ja es apkopot to - tas ir, atkal, virkne1. 1609 01:12:08,840 --> 01:12:11,040 >> Lai padarītu virkne1. 1610 01:12:11,040 --> 01:12:16,730 Un tagad es palaist virkne1 manā termināļa logā. 1611 01:12:16,730 --> 01:12:19,180 Tas gaida ievadi, tāpēc es esmu gatavojas rakstīt, teiksim, David. 1612 01:12:19,180 --> 01:12:20,080 Enter. 1613 01:12:20,080 --> 01:12:23,350 Un tagad tas drukā David viss dažādās līnijās, jo 1614 01:12:23,350 --> 01:12:24,430 paziņojums, ko es esmu dara. 1615 01:12:24,430 --> 01:12:27,510 Es esmu izdevējdarbība vienu rakstzīmi laikā. 1616 01:12:27,510 --> 01:12:29,100 Tagad mēs ne iedziļināties sīkāk šodien par šo. 1617 01:12:29,100 --> 01:12:31,610 Bet es svītrots brīdi pirms šīs pārbaudes šeit. 1618 01:12:31,610 --> 01:12:36,310 Izrādās, ka tad, ja lietotājs nedarbojas atbilstoši, sacīkstes, vai vienkārši 1619 01:12:36,310 --> 01:12:41,780 sajaukt, jūs faktiski var neizdoties, lai sniegtu virkni kādu garumu. 1620 01:12:41,780 --> 01:12:43,640 Ja jūs hit nepareizu taustiņu uz tastatūras, jūs varētu dot 1621 01:12:43,640 --> 01:12:44,390 Nav virknes vispār. 1622 01:12:44,390 --> 01:12:47,790 Vai, ja jūs esat ļaunprātīga, jūs varētu mēģināt ielīmēt gigabaitu vērts 1623 01:12:47,790 --> 01:12:49,380 eseja, lai aizpildītu šo virkni. 1624 01:12:49,380 --> 01:12:52,060 Un, ja dators darbojas no atmiņas, izrādās, ka mēs ejam 1625 01:12:52,060 --> 01:12:54,310 lai saņemtu atpakaļ šo īpašo vērtību sauc null. 1626 01:12:54,310 --> 01:12:57,550 Tātad tagad, tikai zinu, ka tur ir šī īpašā vērtība sauc Null, ka 1627 01:12:57,550 --> 01:13:01,000 ļaus mums pārbaudīt, kad mēs esam no atmiņas, cita starpā. 1628 01:13:01,000 --> 01:13:07,330 >> Bet, ja es atvērt tagad virkne2, paziņojums viena atšķirība šeit. 1629 01:13:07,330 --> 01:13:09,760 Paziņojums viena atšķirība šeit ar virkne2. 1630 01:13:09,760 --> 01:13:13,260 Ar virkne2, šis cilpa ir nedaudz atšķirīgs. 1631 01:13:13,260 --> 01:13:16,350 Ļaujiet man izdzēst nulls, lai mēs varētu runāt par tiem citā laikā. 1632 01:13:16,350 --> 01:13:18,460 Bet kas ir atšķirīgs par, lai cilpa šoreiz? 1633 01:13:21,580 --> 01:13:23,160 Un es varētu doties atpakaļ uz iepriekšējo piemēru. 1634 01:13:23,160 --> 01:13:24,800 Tā ka ir versija divi. 1635 01:13:24,800 --> 01:13:27,020 Šī ir versija viens. 1636 01:13:27,020 --> 01:13:31,935 Viens, divi, viens divi. 1637 01:13:35,030 --> 01:13:38,240 Tāpēc strlen zvans ir kur? 1638 01:13:38,240 --> 01:13:40,420 Tas pirmajā daļā attiecībā uz cilpas. 1639 01:13:40,420 --> 01:13:43,060 Jebkurš domas par to, kāpēc es esmu to izdarīt? 1640 01:13:43,060 --> 01:13:43,690 Yeah. 1641 01:13:43,690 --> 01:13:46,010 [Dzirdams] 1642 01:13:46,010 --> 01:13:47,630 David J. Malan: Tātad mums nav zvanu funkciju katru reizi. 1643 01:13:47,630 --> 01:13:48,040 Tieši tā. 1644 01:13:48,040 --> 01:13:50,350 Atceros no uz cilpas, kas viņi super vienkārša, kad jūs veida 1645 01:13:50,350 --> 01:13:52,180 saprotu, ka tas ir inicializācijas, 1646 01:13:52,180 --> 01:13:53,330 nosacījums, un atjauninājums. 1647 01:13:53,330 --> 01:13:55,430 Problēma ir tā, ka nosacījums notiek par katru 1648 01:13:55,430 --> 01:13:56,600 atkārtojuma no cilpas. 1649 01:13:56,600 --> 01:13:59,930 Un tāpēc šajā piemērā šeit, kas ir slikti par to, 1650 01:13:59,930 --> 01:14:03,500 ka šis ir mans stāvoklis? 1651 01:14:03,500 --> 01:14:05,920 Jūs aicināt strlen atkal un atkal un atkal. 1652 01:14:05,920 --> 01:14:08,990 Bet tad, kad es esmu drukāti Dāvids, šī virknes garums ir pieci. 1653 01:14:08,990 --> 01:14:11,560 Un tas nav gatavojas mainīt uz katru atkārtojuma no cilpas, jo 1654 01:14:11,560 --> 01:14:15,560 stīgu joprojām D-V-I-D. Tātad tas ir mājiens par to, kas notiek, lai kļūtu 1655 01:14:15,560 --> 01:14:19,650 arvien svarīga ideja pazīstama kā dizaina lēmumu, kur - vienkārši nav 1656 01:14:19,650 --> 01:14:21,640 padarīt datoru darīt nevajadzīgu darbu. 1657 01:14:21,640 --> 01:14:25,630 >> Tagad tāpat kā ložņāt preview 2 PSET, PSET 2 standarta izdevuma 1658 01:14:25,630 --> 01:14:28,850 gatavojas apstrīdēt jums tiešām īstenotu dažas vairākus cipariem, daži 1659 01:14:28,850 --> 01:14:32,650 skaits šifrēšanas algoritmu, lai jūs var gan šifrēt un atšifrēt 1660 01:14:32,650 --> 01:14:35,530 noslēpums ziņas, līdzīgi vienas Ralphie tur dekodēt. 1661 01:14:35,530 --> 01:14:38,720 Jo hakeru izdevumā 2 PSET, mēs gatavojamies iet mazliet tālāk. 1662 01:14:38,720 --> 01:14:42,010 Mēs ejam, lai rokas jums failu no faktiskā datora sistēmu, kas satur 1663 01:14:42,010 --> 01:14:45,690 viss ķekars lietotājvārdus un faktisko šifrētu paroles, un izaicinājums 1664 01:14:45,690 --> 01:14:49,110 par hakeru valodā būs kreka tās paroles un izdomāt 1665 01:14:49,110 --> 01:14:53,060 , ko kriptogrāfijas vai kāda slepena tika izmantots, lai faktiski 1666 01:14:53,060 --> 01:14:55,080 ģenerēt tās paroles. 1667 01:14:55,080 --> 01:14:58,360 Un mēs esam gatavojas darīt, izmantojot jaunu funkciju šeit no C, ka es došu 1668 01:14:58,360 --> 01:15:02,200 Jums tikai demo, kas pazīstams kā komandrindas argumentus. 1669 01:15:02,200 --> 01:15:05,930 >> Tātad izrādās, kā daži no jums var būt redzējis sadaļā vai mācību grāmatas, 1670 01:15:05,930 --> 01:15:09,850 Galvenais ne vienmēr ir jābūt spēkā neesošu iekavās. 1671 01:15:09,850 --> 01:15:14,060 Izrādās, ka galvenais var būt arī rakstīts kā šis, ar diviem argumentiem, 1672 01:15:14,060 --> 01:15:19,690 argc un argv, kur argc ir vārdu skaits, kas jums rakstīt pēc 1673 01:15:19,690 --> 01:15:21,940 programmas nosaukums uz jūsu komandrindas. 1674 01:15:21,940 --> 01:15:24,550 Un argv ir faktiskie vārdi. 1675 01:15:24,550 --> 01:15:29,470 Un kā kvadrātiekavas tur liecina, argv acīmredzot masīvs. 1676 01:15:29,470 --> 01:15:33,720 Tas būs virkne pēc virknes pēc virknes atmiņā. 1677 01:15:33,720 --> 01:15:36,170 Tātad, ko mēs ejam, lai varētu to darīt, sākot ar 2 PSET, tiek 1678 01:15:36,170 --> 01:15:37,310 kaut kas līdzīgs šim. 1679 01:15:37,310 --> 01:15:42,450 Ja es argv1, kas ir piemērs mēs atgriezīsimies pie pirmdien, un palaist 1680 01:15:42,450 --> 01:15:45,180 tas, ievērosiet, ka tas nav, šķiet, darīt kaut ko vēl. 1681 01:15:45,180 --> 01:15:47,050 Tā vienkārši izdrukā savu vārdu. 1682 01:15:47,050 --> 01:15:53,220 Bet, ja es saku ardievas klase, paziņojums, ka šī programma acīmredzot vairākkārt uzsvērts 1683 01:15:53,220 --> 01:15:57,030 pār katru vārdu, kas tika drukāti uz ātru. 1684 01:15:57,030 --> 01:16:02,050 Un līdzekļus, ar kuriem mēs iegūtu piekļuvi vārdiem, ka lietotājam ir 1685 01:16:02,050 --> 01:16:06,780 drukāti uz ātru ir mainot galvenais, sākot ar šo nedēļas nogalē, no int 1686 01:16:06,780 --> 01:16:10,710 galvenais (spēkā neesošs) int galvenais (argc, argv). 1687 01:16:10,710 --> 01:16:13,700 Un tādējādi būs piedzimis komandrindas argumentus. 1688 01:16:13,700 --> 01:16:17,210 Un, kad jums patiešām sarežģīta šajā, jūs varēsiet rakstīt 1689 01:16:17,210 --> 01:16:21,370 tiešām trippy programmas, piemēram, šo vienu šeit, kas iet virs un aiz 1690 01:16:21,370 --> 01:16:25,520 daži no funkcionalitātes mēs esam darījuši līdz šim, bet visi ir diezgan spēcīgs. 1691 01:16:25,520 --> 01:16:27,330 >> Tāpēc mēs atstāt to ar šo uz ekrāna. 1692 01:16:27,330 --> 01:16:29,160 Un mēs redzēt jūs pirmdien.