1 00:00:00,000 --> 00:00:05,530 2 00:00:05,530 --> 00:00:09,790 >> PROFESSOR: Nii päevakorda Sel nädalal ei ole nii palju kraami. 3 00:00:09,790 --> 00:00:12,801 Aga loodetavasti väga, väga kasulik ja asjakohaste kutid sel nädalal. 4 00:00:12,801 --> 00:00:15,550 Aga me ei kavatse kulutada võibolla 15, 20 minutit lihtsalt kiiresti rääkima 5 00:00:15,550 --> 00:00:17,370 umbes link nimekirja. 6 00:00:17,370 --> 00:00:19,694 Link nimekirju ei kavatse kaetakse kohta viktoriin. 7 00:00:19,694 --> 00:00:22,610 Nii et ehk oleks väga kasulik õppida natuke, mis see on. 8 00:00:22,610 --> 00:00:25,210 >> Me läheme kulutada suur Enamik tänapäeva osa 9 00:00:25,210 --> 00:00:27,640 läheb üle viktoriin null praktikas probleeme. 10 00:00:27,640 --> 00:00:30,970 Ja siis me salvestada võibolla 20, 30 minutit lõpus iga ikka küsimustele 11 00:00:30,970 --> 00:00:32,850 kellelgi on. 12 00:00:32,850 --> 00:00:34,610 >> Ja siis, viimasel viis minutit, ma lähen 13 00:00:34,610 --> 00:00:36,467 anda pump up kõne viktoriini. 14 00:00:36,467 --> 00:00:38,050 Te kõik tahavad olla siin selle eest. 15 00:00:38,050 --> 00:00:39,591 Sest see saab olema hea aeg. 16 00:00:39,591 --> 00:00:42,650 17 00:00:42,650 --> 00:00:49,230 >> Kõik õige, et mõned materjali link nimekirja. 18 00:00:49,230 --> 00:00:52,620 Kuidas nad tavaliselt struktureeritud on teil on, mida nimetatakse sõlme, eks? 19 00:00:52,620 --> 00:00:54,870 Sa pead need asjad mida nimetatakse sõlmed, mis on struktuurideks. 20 00:00:54,870 --> 00:00:57,360 Ma lähen üle, kuidas luua sõlme järgmisele slaidile. 21 00:00:57,360 --> 00:01:00,680 Aga sisuliselt kõik seotud nimekirjad on on andmeid, et 22 00:01:00,680 --> 00:01:03,340 on nöörile koos läbi suunanäitajaks. 23 00:01:03,340 --> 00:01:09,110 >> Ja nii see eelis, meil kasutades ahelloend üle, 24 00:01:09,110 --> 00:01:11,280 ehk nagu massiivi, on asjaolu, et massiivi 25 00:01:11,280 --> 00:01:15,000 teil on vaja üks külgnevas ploki mälu kõik samas kohas, üks 26 00:01:15,000 --> 00:01:16,870 teise järel, et oleks võimalik on, et. 27 00:01:16,870 --> 00:01:20,200 Arvestades ahelloend, siis võiks on juhuslik vähe bitti mälu 28 00:01:20,200 --> 00:01:23,020 kogu arvuti nöörile koos suunanäitajaks. 29 00:01:23,020 --> 00:01:26,270 >> Ja see, kuidas sa oleks juurdepääs teabele 30 00:01:26,270 --> 00:01:28,610 mis tuleb üksteise järel Teine, pärast teisi 31 00:01:28,610 --> 00:01:32,720 ilma lihtsalt tohutu patakas mälu arvuti kuhugi. 32 00:01:32,720 --> 00:01:35,910 Ja nii on see üks peamisi miks me kasutame link nimekirja. 33 00:01:35,910 --> 00:01:40,300 >> Teiseks, see on väga lihtne dünaamiliselt suurust link nimekirja, sest massiivi, 34 00:01:40,300 --> 00:01:44,720 kui kuulutada massiivi, sul on teatud hulk raha. 35 00:01:44,720 --> 00:01:47,340 Oletame, et ma tahtsin luua massiivi 10 täisarvud. 36 00:01:47,340 --> 00:01:49,970 Ma luua massiivi 10 täisarvud, ja ongi kõik. 37 00:01:49,970 --> 00:01:50,580 See on 10. 38 00:01:50,580 --> 00:01:52,038 Ma ei tea, mida teha pärast seda. 39 00:01:52,038 --> 00:01:53,680 Kui ma tahtsin seda 11, ei saa seda teha. 40 00:01:53,680 --> 00:01:55,710 Kui ma tahan, et see 9, ei saa seda teha. 41 00:01:55,710 --> 00:01:59,910 >> Arvestades, et link nimekirja, võid lisada ja kustutada ja sisestada kuhu tahad. 42 00:01:59,910 --> 00:02:04,940 Võite dünaamiliselt suurust muuta struktureerida siin oma andmete struktuuri. 43 00:02:04,940 --> 00:02:08,370 Ja see annab meile palju rohkem lisada paindlikkust 44 00:02:08,370 --> 00:02:11,320 et meil ei ole tavaliselt on massiivid. 45 00:02:11,320 --> 00:02:15,210 >> Igaüks segi põhi struktuuri, kuidas link nimekiri on 46 00:02:15,210 --> 00:02:17,930 või miks me peame kasutama ühe üle massiivi? 47 00:02:17,930 --> 00:02:20,330 Jah, me läheme üle üksikasjalikult kuidas tegelikult luua üks. 48 00:02:20,330 --> 00:02:24,121 Aga see on lihtsalt selline üldises mõttes just nüüd. 49 00:02:24,121 --> 00:02:24,620 Cool. 50 00:02:24,620 --> 00:02:28,770 Ja nii massiivid on niidile koos need ilusad vähe asju 51 00:02:28,770 --> 00:02:29,960 nimetatakse sõlmedeks. 52 00:02:29,960 --> 00:02:32,210 Kõik sõlm on on teatud tüüpi struktuure. 53 00:02:32,210 --> 00:02:36,090 Pea meeles, et struct on kui sa tahad luua teatud tüüpi muutuja 54 00:02:36,090 --> 00:02:39,850 C, mis ei ole juba olemas, siis, kui programmeerija, 55 00:02:39,850 --> 00:02:42,030 võib tegelikult luua selle ise. 56 00:02:42,030 --> 00:02:46,540 >> Ja nii seda tüüpi andmeid struktuuri nimetatakse tipu 57 00:02:46,540 --> 00:02:50,770 tegelikult on meie poolt loodud, et ei kasuta C omal. 58 00:02:50,770 --> 00:02:53,150 Ja nii, et sa luua üks on teil 59 00:02:53,150 --> 00:02:57,170 päises typedef struct, mis ütleb koostaja ma olen 60 00:02:57,170 --> 00:02:59,640 umbes luua struktuure. 61 00:02:59,640 --> 00:03:00,830 >> Me läheme nime "sõlm". 62 00:03:00,830 --> 00:03:03,350 Ja sees me ei kavatse kuulutada muutuja, 63 00:03:03,350 --> 00:03:05,060 mis läheb salvestada väärtus. 64 00:03:05,060 --> 00:03:09,320 Ja siis me ka läheb on osuti nimetatakse "kõrval" 65 00:03:09,320 --> 00:03:12,090 mis viitab järgmise sõlme link nimekirja. 66 00:03:12,090 --> 00:03:14,730 Ja siis sa lõpetad selle ära lihtsalt korrates sõlme jälle nii 67 00:03:14,730 --> 00:03:17,490 koostaja teab, OK see on end minu struct. 68 00:03:17,490 --> 00:03:22,540 >> Ja nii sel viisil, et me oleme omamoodi luua armas väike massiiv 69 00:03:22,540 --> 00:03:25,450 selline asi koos hinna ja viidaga. 70 00:03:25,450 --> 00:03:27,757 Ja võite linkida neid kõiki koos neid viiteid. 71 00:03:27,757 --> 00:03:30,090 Nii et nad saavad igasugu olla nöörile koos ahelas. 72 00:03:30,090 --> 00:03:32,920 73 00:03:32,920 --> 00:03:34,162 >> Cool. 74 00:03:34,162 --> 00:03:35,453 Kas sa kuuled, et natuke parem? 75 00:03:35,453 --> 00:03:36,140 >> Sihtrühm: Jah. 76 00:03:36,140 --> 00:03:38,540 >> PROFESSOR: Okei. 77 00:03:38,540 --> 00:03:44,280 Nii nii, et kui te poisid näevad, tüüpiline link nimekiri on struktureeritud 78 00:03:44,280 --> 00:03:45,500 on teil on head. 79 00:03:45,500 --> 00:03:49,460 Sul on peas väärtus, mis ei ole kusjuures märkida muul osuti. 80 00:03:49,460 --> 00:03:53,177 Aga see läheb osutavad, või viide teise sõlme. 81 00:03:53,177 --> 00:03:56,510 Sõlme pärast läheb viide sõlme pärast seda, ja nii edasi ja nii edasi 82 00:03:56,510 --> 00:03:59,170 kuni sa lõpuks tabas Aasta lõpus oma link nimekirja. 83 00:03:59,170 --> 00:04:00,980 Ja sa lihtsalt ei pea osuti seal. 84 00:04:00,980 --> 00:04:04,659 >> Ja nii, mõtle, kett, või isegi kui keegi teile poisid teha, ma ei tea, 85 00:04:04,659 --> 00:04:06,450 Nagu Fruit Loops kui sa olid väike. 86 00:04:06,450 --> 00:04:08,590 Sa oleks string neid koos ja neid kanda kaelas. 87 00:04:08,590 --> 00:04:09,840 Arvan, et see on täpselt sama asi. 88 00:04:09,840 --> 00:04:12,964 Sul on neid vähe asju, mida saab string koos sel hetkel üks 89 00:04:12,964 --> 00:04:15,291 peale seda, et üksteise järel see, ja nii edasi ja nii edasi 90 00:04:15,291 --> 00:04:17,040 kuni teil on kett andmestruktuuri 91 00:04:17,040 --> 00:04:21,190 mida saab kasutada siiski soovite. 92 00:04:21,190 --> 00:04:27,370 >> Nii nii, et seda oleksime tavaliselt sisestada või kustutada 93 00:04:27,370 --> 00:04:30,020 mis tahes sõlme link nimekiri on väga erinevad 94 00:04:30,020 --> 00:04:31,970 sõltuvalt sellest, kus see sõlm on. 95 00:04:31,970 --> 00:04:34,880 Niisiis, näiteks seetõttu osuti on alati 96 00:04:34,880 --> 00:04:38,645 osutades eriline väärtus, kui kustutad või lisada sõlme, 97 00:04:38,645 --> 00:04:41,770 soovite veenduda, et pointer on kõik osutavad õigeid asju. 98 00:04:41,770 --> 00:04:46,200 >> Nii et kui sa tahad potentsiaalselt sisestada Uue sõlme väärtusega üks 99 00:04:46,200 --> 00:04:48,379 sees sorteeritud link nimekirja, me kõik teame siin 100 00:04:48,379 --> 00:04:51,170 pildilt, et läheb minna vahel pea ja kaks, eks? 101 00:04:51,170 --> 00:04:52,620 Kuna üks sobib just seal. 102 00:04:52,620 --> 00:04:59,060 Aga kuidas me seda teha on kõigepealt dereferencing kursorit 103 00:04:59,060 --> 00:05:02,160 pealaest ja saates selle ühe. 104 00:05:02,160 --> 00:05:05,040 >> Aga me tuleme probleem siin. 105 00:05:05,040 --> 00:05:08,280 Kas keegi näha, milline probleem on, kui me esimest apparent 106 00:05:08,280 --> 00:05:10,090 kursorit pealaest üks? 107 00:05:10,090 --> 00:05:14,202 Mis probleem võib meil joosta, kui me püüame lisada seda, et ees meie massiivi? 108 00:05:14,202 --> 00:05:15,409 >> Sihtrühm: [kuuldamatu] 109 00:05:15,409 --> 00:05:16,200 PROFESSOR: Täpselt. 110 00:05:16,200 --> 00:05:20,000 Nii et siin on meil osuti, mis oli kord juhtides peast kaks. 111 00:05:20,000 --> 00:05:23,120 Aga kui sa lahti saada, et pointer, siis suunake see, et üks, 112 00:05:23,120 --> 00:05:26,500 nüüd ei tea kuhu minna, et leida kaks. 113 00:05:26,500 --> 00:05:29,850 Sest nagu ma enne ütlesin, et sul on hiiglaslik patakas mälu arvuti. 114 00:05:29,850 --> 00:05:31,860 Kõik need sõlmed võiks juhuslikult segamini 115 00:05:31,860 --> 00:05:33,350 igal pool arvuti. 116 00:05:33,350 --> 00:05:36,140 Ja sa ei tea, kuidas et minna leida seda. 117 00:05:36,140 --> 00:05:40,420 >> Ja et sa pead olema viiteid osutades kõik sõlmed lõpus. 118 00:05:40,420 --> 00:05:42,420 Või muidu, kui sa kogemata apparent üks 119 00:05:42,420 --> 00:05:44,485 ilma määramist väärtus esimene, sa oled 120 00:05:44,485 --> 00:05:47,410 lihtsalt kavatse kaotada kõik hiljem. 121 00:05:47,410 --> 00:05:49,720 >> Nii et me läheme teha on, siis oleks esimene 122 00:05:49,720 --> 00:05:53,270 soovid luua kursori sõlme soovite sisestada. 123 00:05:53,270 --> 00:05:55,270 Point see, kus te tahan lisada seda, 124 00:05:55,270 --> 00:05:59,410 ja siis hiljem sa viitaks pea tagasi ühe. 125 00:05:59,410 --> 00:06:02,800 >> Kas see mõttekas kõik siin? 126 00:06:02,800 --> 00:06:03,346 Hea. 127 00:06:03,346 --> 00:06:04,720 Mõtle seda nagu kett. 128 00:06:04,720 --> 00:06:07,420 Kui lisate kett, see on selline intuitiivne 129 00:06:07,420 --> 00:06:10,742 kuidas sa minna sisestamist, et. 130 00:06:10,742 --> 00:06:15,274 >> OK, nii et on tegelikult palju lühem kui ma arvasin, et see oleks, 131 00:06:15,274 --> 00:06:16,690 viie minuti Spiel lingil nimekirjad. 132 00:06:16,690 --> 00:06:19,960 Just nii kutid on põhiidee, mis see on. 133 00:06:19,960 --> 00:06:23,580 >> Siin on meil päevakorras viktoriin null. 134 00:06:23,580 --> 00:06:24,895 Ära lase seda hirmutada teid. 135 00:06:24,895 --> 00:06:26,270 Ma tean, et see on palju informatsiooni. 136 00:06:26,270 --> 00:06:27,580 See tundub väga hirmutav. 137 00:06:27,580 --> 00:06:33,130 Samuti on palju, ma arvan, CSC liiki mõisted. 138 00:06:33,130 --> 00:06:37,440 Asjad kuueteistkümnendsüsteemis stringid, suunanäitajaks, dünaamiline mälu eraldised 139 00:06:37,440 --> 00:06:40,120 on väga jube kõlav poolest. 140 00:06:40,120 --> 00:06:42,700 >> Aga me ei kavatse murda neid alla, teha mõned praktikas probleeme 141 00:06:42,700 --> 00:06:44,980 nii et kutid kõik on valmis seda testi. 142 00:06:44,980 --> 00:06:47,104 Kui paljud kutid on juba alustanud õpib? 143 00:06:47,104 --> 00:06:50,040 144 00:06:50,040 --> 00:06:53,670 >> OK, kutid ilmselt tahad alustada alustanud 145 00:06:53,670 --> 00:06:56,480 kohta, et kuna viktoriin on homme. 146 00:06:56,480 --> 00:06:58,739 Või Neljapäeval mõned teist. 147 00:06:58,739 --> 00:07:01,030 Jah, nii me läheme üle mõned praktikas probleeme. 148 00:07:01,030 --> 00:07:04,600 Kui kutid kõik tahavad võtta välja paberilehe, pliiats. 149 00:07:04,600 --> 00:07:07,310 Me läheme lihtsalt veeta Enamik tänapäeva osa 150 00:07:07,310 --> 00:07:11,590 läheb üle mõned, et nii teiega on idee, mida oodata on viktoriini. 151 00:07:11,590 --> 00:07:14,957 152 00:07:14,957 --> 00:07:16,890 >> OKEI. 153 00:07:16,890 --> 00:07:19,730 Paar logistika rekvisiidid samuti, et keegi 154 00:07:19,730 --> 00:07:25,120 kes ei ole sellele seosele seal vajaduse te lähete cs50.yale.edu, esi 155 00:07:25,120 --> 00:07:28,566 Sellel lehel on link mis ütleb, et "About viktoriin Zero." 156 00:07:28,566 --> 00:07:29,440 Link viib sind kohale. 157 00:07:29,440 --> 00:07:31,065 Kui te ei ole lugenud, siis loe seda. 158 00:07:31,065 --> 00:07:34,470 Sest ta ütleb teile tõesti oluline teavet viktoriini. 159 00:07:34,470 --> 00:07:37,410 >> Ma lähen tõmmake see välja et lihtsalt sellepärast, füüsiliselt, 160 00:07:37,410 --> 00:07:40,200 kui te poisid ei tea, kus minna, meil on probleeme. 161 00:07:40,200 --> 00:07:44,220 Ja kui sinu viimane poolest A N, minna õigusteadust õppima auditooriumis. 162 00:07:44,220 --> 00:07:47,500 Ja kui sinu viimane algab P Z minge Davies Auditorium. 163 00:07:47,500 --> 00:07:50,240 Ja see kehtib ainult inimesed kolmapäeval osa. 164 00:07:50,240 --> 00:07:53,420 >> Kui te võtate viktoriinis Neljapäev, lähete SSS 114 165 00:07:53,420 --> 00:07:55,078 kus oma loengu tavaliselt on. 166 00:07:55,078 --> 00:07:55,953 Sihtrühm: [kuuldamatu] 167 00:07:55,953 --> 00:07:59,316 168 00:07:59,316 --> 00:08:01,940 PROFESSOR: O Z, sa lähed minna Davies auditooriumis. 169 00:08:01,940 --> 00:08:03,273 Ma lähen seda muuta, eks? 170 00:08:03,273 --> 00:08:05,670 171 00:08:05,670 --> 00:08:09,698 >> Ah jaa, sa lihtsalt ei suuda automaatselt. 172 00:08:09,698 --> 00:08:11,753 >> Oh yeah, see oled sina Christa. 173 00:08:11,753 --> 00:08:15,190 174 00:08:15,190 --> 00:08:16,030 Jah, minu halb. 175 00:08:16,030 --> 00:08:17,610 Yep, O-Z, sa lähed minna Davies Auditorim. 176 00:08:17,610 --> 00:08:19,140 Ma lähen seda parandada, kui ma üles laadida. 177 00:08:19,140 --> 00:08:20,320 Jah. 178 00:08:20,320 --> 00:08:22,160 >> Ja siis ka midagi oluline meeles 179 00:08:22,160 --> 00:08:25,290 on see, et kolmapäeval, kui teil on ametlikult õpib kolmapäeval osas 180 00:08:25,290 --> 00:08:26,832 Te peate viktoriin kolmapäeval. 181 00:08:26,832 --> 00:08:29,706 Ja kui sa oled registreerunud neljapäeval Te peate viktoriin neljapäeval. 182 00:08:29,706 --> 00:08:31,000 Ja see on ajal klassi aega. 183 00:08:31,000 --> 00:08:35,970 Kui ma arvan, et see on nagu 1:00, et 02:15 kolmapäeviti ja 2:30-03:45 184 00:08:35,970 --> 00:08:37,220 neljapäeviti. 185 00:08:37,220 --> 00:08:41,710 >> Kui teil on vastuolus konflikte, Dean vabandusi on ainus asi, 186 00:08:41,710 --> 00:08:43,030 Kahjuks me ei võta. 187 00:08:43,030 --> 00:08:45,560 Kuna meil oli Valdav enamik taotlusi 188 00:08:45,560 --> 00:08:47,970 lülituda kolmapäevast kuni neljapäevani. 189 00:08:47,970 --> 00:08:51,265 Mida me ei saa au, kui meil Dean soovile. 190 00:08:51,265 --> 00:08:52,650 >> OKEI. 191 00:08:52,650 --> 00:08:57,000 Nii et enne kui me Alustamiseks kohta Paar praktika probleeme, 192 00:08:57,000 --> 00:09:00,540 Ma lihtsalt minna üle Andy kasulikke nõuandeid edu. 193 00:09:00,540 --> 00:09:04,140 Te, kui õpid, siis tõesti tahad harjutada kirjutamist kood käsitsi. 194 00:09:04,140 --> 00:09:07,050 Esimene kord, kui ma kunagi võttis CS viktoriin, ma ei olnud 195 00:09:07,050 --> 00:09:09,960 Praktikas kirjalikult kood käsitsi Enne ja see oli väga 196 00:09:09,960 --> 00:09:11,890 šokeeriv juures, kui raske oli. 197 00:09:11,890 --> 00:09:16,125 >> Kui poisid ei satuks harjumus kirjutades välja kõik, 198 00:09:16,125 --> 00:09:20,260 tegemist väga loomulikult on võimalik on automaatselt täita 199 00:09:20,260 --> 00:09:22,015 Sulgudes ja semikoolonid seal. 200 00:09:22,015 --> 00:09:23,890 Kui sa kirjutad seda käsitsi, mõnikord on 201 00:09:23,890 --> 00:09:27,100 väga lihtne unustada semikooloniga, või unustada sulgeda klambri 202 00:09:27,100 --> 00:09:30,970 või unustada sulgeda koolon, või midagi sellist. 203 00:09:30,970 --> 00:09:34,322 >> Nii et kui sa kirjutad koodi käsitsi see on hoopis teine ​​tunne. 204 00:09:34,322 --> 00:09:37,280 Nii kutid, kui te töötate läbi mõned praktikas probleeme, 205 00:09:37,280 --> 00:09:38,904 see oleks hea tõesti harjutada täna. 206 00:09:38,904 --> 00:09:41,770 Või homme, ma arvan, kui sa oled võttes viktoriini neljapäeval. 207 00:09:41,770 --> 00:09:45,280 >> Teiseks, meil on viimane, nagu, Kaheksa aasta väärtuses tava 208 00:09:45,280 --> 00:09:47,070 viktoriinid online. 209 00:09:47,070 --> 00:09:50,759 Tänavune viktoriin tõenäoliselt väga, väga sarnased neile kõigile. 210 00:09:50,759 --> 00:09:51,800 Nad on kõik väga sarnased. 211 00:09:51,800 --> 00:09:54,220 Sa mingi sattuda stiilis tüüpi küsimused 212 00:09:54,220 --> 00:09:57,250 et me küsime, millist tüüpi funktsioone, mis me kirjutada seda, 213 00:09:57,250 --> 00:09:58,580 jne, jne. 214 00:09:58,580 --> 00:10:01,980 >> Nii, et võta praktikas viktoriinid, eriti tähtaegu. 215 00:10:01,980 --> 00:10:05,390 75 minutit teha viktoriini on mitte palju aega. 216 00:10:05,390 --> 00:10:07,254 See on väga, väga pikk. 217 00:10:07,254 --> 00:10:09,670 Ja nii kutid tõesti veenduda, et kutid on 218 00:10:09,670 --> 00:10:11,990 harjumus kirjalikult kood käsitsi kiiresti. 219 00:10:11,990 --> 00:10:15,070 Sest sa ei taha, et esimene aega, et näha viktoriini selle pikkus 220 00:10:15,070 --> 00:10:16,560 olla oma viktoriini. 221 00:10:16,560 --> 00:10:20,540 Te tõesti soovite veenduda et sa harjutada varem. 222 00:10:20,540 --> 00:10:24,550 >> Neljandaks soovite vaadata loeng ja osa slaidid. 223 00:10:24,550 --> 00:10:25,980 Sa ei pea meelde asju. 224 00:10:25,980 --> 00:10:30,430 Tegelikult kõik on võimaldanud üks valge paberileht märkmeid, 225 00:10:30,430 --> 00:10:31,090 ees ja taga. 226 00:10:31,090 --> 00:10:32,920 Te ei kirjuta ega kirjutada. 227 00:10:32,920 --> 00:10:37,070 Kui sa leiad ennast vajavad meelde midagi, pane see maha, et lehed. 228 00:10:37,070 --> 00:10:40,810 >> Ma garanteerin, sa ei taha ummikus keset seda viktoriini 229 00:10:40,810 --> 00:10:43,890 on nagu, oh yeah, milline on Runtime sedasorti versus et omamoodi. 230 00:10:43,890 --> 00:10:46,490 Lihtsalt pane see alla ja kopeerida otse oma märkuse lehel. 231 00:10:46,490 --> 00:10:50,420 Siis saab tegelikult lihtsalt kasutada oma aju mõtlema probleeme 232 00:10:50,420 --> 00:10:52,190 selle asemel, et meenutada fakte. 233 00:10:52,190 --> 00:10:55,250 Ja nii tõesti ära mis tahes niši üksikasjad 234 00:10:55,250 --> 00:11:00,140 mis sa arvad, et sa pead meelde, sulpsti ta maha läbivaatamise lehel. 235 00:11:00,140 --> 00:11:02,680 >> OK, küsimusi logistiliselt seoses viktoriin 236 00:11:02,680 --> 00:11:05,510 Enne kui me alustame mõnda viktoriin probleeme harjutada? 237 00:11:05,510 --> 00:11:06,416 Jah? 238 00:11:06,416 --> 00:11:10,040 >> Sihtrühm: Mul ei ole olnud võimalust vaadata viktoriin [kuuldamatu] 239 00:11:10,040 --> 00:11:11,757 kuid see saab olema taotlus enamasti, 240 00:11:11,757 --> 00:11:14,090 või on seal ka saab olema, nagu teadmised küsimusi? 241 00:11:14,090 --> 00:11:14,940 >> PROFESSOR: See on palju. 242 00:11:14,940 --> 00:11:16,731 Nii, nii, et ma oleks kirjeldatud viktoriin 243 00:11:16,731 --> 00:11:18,810 on-- panin kokku mõned praktikas probleeme 244 00:11:18,810 --> 00:11:20,960 et ma tõmmatakse kõik viktoriinid. 245 00:11:20,960 --> 00:11:25,210 Aga näed, et seal on kaks peamist tüüpi küsimusi küsime. 246 00:11:25,210 --> 00:11:28,750 >> Üks on väga madal detail kraami. 247 00:11:28,750 --> 00:11:31,720 Anname väikese tüki koodi ja öelda, kas on viga siin? 248 00:11:31,720 --> 00:11:33,110 Mis oleks väljatrükk siin? 249 00:11:33,110 --> 00:11:35,980 Mida see kood toota, jne. 250 00:11:35,980 --> 00:11:38,710 Nii väga madal informatsiooni üksikasju. 251 00:11:38,710 --> 00:11:42,700 >> Ja Tagakülg, me peame väga kõrge teadmistepõhise küsimusi. 252 00:11:42,700 --> 00:11:45,190 Kas oskate selgitada, millised vahe binaarne otsing 253 00:11:45,190 --> 00:11:46,148 ja lineaarne otsing on? 254 00:11:46,148 --> 00:11:48,500 Miks me tahame, et kasutada üksteise peal? 255 00:11:48,500 --> 00:11:49,960 Ehk, mis on GDB? 256 00:11:49,960 --> 00:11:51,560 Miks me tahame kasutada GDB? 257 00:11:51,560 --> 00:11:54,590 Kõrgem tase, põhjalikumaid arusaamist küsimusi. 258 00:11:54,590 --> 00:11:58,240 Nii näete segu kaks neist oma viktoriini. 259 00:11:58,240 --> 00:12:01,462 >> Midagi muud, enne kui me pea otse sinna? 260 00:12:01,462 --> 00:12:02,879 OKEI. 261 00:12:02,879 --> 00:12:03,670 Sihtrühm: Veel üks. 262 00:12:03,670 --> 00:12:04,030 PROFESSOR: Oh, veel üks. 263 00:12:04,030 --> 00:12:04,340 Vabandust. 264 00:12:04,340 --> 00:12:05,631 >> Sihtrühm: Jah, see kõik on õige. 265 00:12:05,631 --> 00:12:10,140 Nii et sa räägid 75 minutini liiga lühike, nagu see on ebatõenäoline 266 00:12:10,140 --> 00:12:11,640 et me lõpetame? 267 00:12:11,640 --> 00:12:13,571 Või nagu, 75 minuti on täpselt nii palju aega 268 00:12:13,571 --> 00:12:15,700 kui meil oleks vaja, kui olime nõuetekohaselt ette valmistatud? 269 00:12:15,700 --> 00:12:17,450 PROFESSOR: OK, nii et Viktoriin on keeruline. 270 00:12:17,450 --> 00:12:19,550 See on kindlasti raske. 271 00:12:19,550 --> 00:12:21,092 Leiad ennast vähe aega. 272 00:12:21,092 --> 00:12:24,341 Sa oled ilmselt läheb löögi, nagu 10, 15 minutit minna, ja on nagu pask. 273 00:12:24,341 --> 00:12:25,520 Olen nii palju ära teha. 274 00:12:25,520 --> 00:12:26,520 Ja see on täiesti korras. 275 00:12:26,520 --> 00:12:28,740 Igaüks läheb tunnevad samamoodi. 276 00:12:28,740 --> 00:12:31,074 >> Lihtsalt olla väga teadlik kui palju aega teil on. 277 00:12:31,074 --> 00:12:33,490 Ja nii see on põhjus, miks ma ütlen teile poisid tava viktoriine. 278 00:12:33,490 --> 00:12:36,672 Sest see tõesti annab hea tunde mida viktoriini saab olema sarnane. 279 00:12:36,672 --> 00:12:39,130 Nii et kui sa leiad end seda võimalik lõpetanud tava 280 00:12:39,130 --> 00:12:41,671 viktoriinid hea summa ajal, saate tempo ise ka, 281 00:12:41,671 --> 00:12:45,695 siis ei ole probleemi Kolmapäeval või neljapäeval. 282 00:12:45,695 --> 00:12:46,575 >> Cool. 283 00:12:46,575 --> 00:12:49,200 Nii et kui kõik wants-- ma arvan enamik inimesi on paberilehte 284 00:12:49,200 --> 00:12:49,810 välja juba. 285 00:12:49,810 --> 00:12:52,604 Ma lähen oma olemuselt lihtsalt teile proovi küsimused, 286 00:12:52,604 --> 00:12:54,520 teile poisid, nagu, et paar minutit teha neid. 287 00:12:54,520 --> 00:12:59,610 Ja me läheme üle klassina Mis vastused need on. 288 00:12:59,610 --> 00:13:02,860 >> Nii et see on väga tüüpiline alguses küsimuse küsime me 289 00:13:02,860 --> 00:13:06,720 küsida, lihtsalt konverteeriva numbrid erinevate alustega. 290 00:13:06,720 --> 00:13:09,070 Binary, kui kutid Meenuta, on alust kaks. 291 00:13:09,070 --> 00:13:12,470 Decimal on alus 10, või mida me kui inimestel tavaliselt tõlgendada. 292 00:13:12,470 --> 00:13:17,120 Hexadecimal on alus 16, mis on null üheksani samuti läbi F. 293 00:13:17,120 --> 00:13:19,990 >> Nii et neli numbrit ma olen küsib kutid teisendada siin. 294 00:13:19,990 --> 00:13:23,909 Ma annan sulle meeldib, kolm kuni neli minutit läbi mõelda 295 00:13:23,909 --> 00:13:25,200 me läheks umbes selle lahendamise. 296 00:13:25,200 --> 00:13:32,832 297 00:13:32,832 --> 00:13:35,710 >> Sihtrühm: Kas me lubada kalkulaatorid? 298 00:13:35,710 --> 00:13:37,630 >> PROFESSOR: sa ei vaja kalkulaatorid, yeah. 299 00:13:37,630 --> 00:13:42,420 Ma arvan, et põhi Lisaks, ma arvan, on kõik kutid palutakse teha. 300 00:13:42,420 --> 00:14:41,700 301 00:14:41,700 --> 00:14:45,070 >> Ja just nii ma selline on tunne ja kui kõik on tehtud, otsida, 302 00:14:45,070 --> 00:14:47,429 laine, ma ei tea, naeratus, otsida hea meel, kui sa oled teinud. 303 00:14:47,429 --> 00:14:47,929 Jah. 304 00:14:47,929 --> 00:17:21,680 305 00:17:21,680 --> 00:17:23,945 Võib-olla veel paar minutit. 306 00:17:23,945 --> 00:18:28,080 307 00:18:28,080 --> 00:18:29,600 >> OK, olgem viia see. 308 00:18:29,600 --> 00:18:31,580 Ma sihilikult läheb teile poisid vähem aega 309 00:18:31,580 --> 00:18:33,760 kui sa ilmselt vaja teha mõned neist probleemidest, 310 00:18:33,760 --> 00:18:37,124 lihtsalt sellepärast, et ma tahan veenduda, et saame läbi hunnik probleeme. 311 00:18:37,124 --> 00:18:39,290 Nii ei muretse, kui sa ei ole on võimalus lõpetada. 312 00:18:39,290 --> 00:18:43,770 Täiesti OK nii kaua kui on idee, kuidas edasi minna. 313 00:18:43,770 --> 00:18:45,850 Nii saab minna ja teha esimene. 314 00:18:45,850 --> 00:18:52,690 315 00:18:52,690 --> 00:18:57,870 >> Nii esimene, keegi ei taha mulle öelda binaarne, mida teha kõigi nende numbrit 316 00:18:57,870 --> 00:19:00,484 esindada seoses nende väärtused? 317 00:19:00,484 --> 00:19:01,250 Jah? 318 00:19:01,250 --> 00:19:03,349 >> Sihtrühm: Kaks kuni power null, kaks ühele. 319 00:19:03,349 --> 00:19:04,140 PROFESSOR: Täpselt. 320 00:19:04,140 --> 00:19:04,640 So. 321 00:19:04,640 --> 00:19:13,430 322 00:19:13,430 --> 00:19:16,430 >> Õigus, et tavaliselt kui me oleme base 10 323 00:19:16,430 --> 00:19:20,580 kõik need esindavad on, nagu, 10 baasi null, eks? 324 00:19:20,580 --> 00:19:21,810 See on sinu oma koha. 325 00:19:21,810 --> 00:19:24,520 Kõik teie 10 koht on on 10 võimu üks. 326 00:19:24,520 --> 00:19:26,600 Sa 100 koht on 10 võimu kaks. 327 00:19:26,600 --> 00:19:29,570 >> Ükskõik baasi oled läheb teha täpselt sama asi, 328 00:19:29,570 --> 00:19:31,480 lihtsalt teistsuguse baasi. 329 00:19:31,480 --> 00:19:34,130 Nii binaarne, kõik, mis on on alus kaks. 330 00:19:34,130 --> 00:19:37,110 Sa lähed, et muuta kõiki numbrit kaheks iganes võimu 331 00:19:37,110 --> 00:19:38,190 Selle numbriga. 332 00:19:38,190 --> 00:19:41,450 Ja nii selles mõttes, me võib olla lihtsam viis 333 00:19:41,450 --> 00:19:43,800 on võimalik liita või Kokkuvõttes kõik numbrid, et 334 00:19:43,800 --> 00:19:46,010 teisendada baasi 10. 335 00:19:46,010 --> 00:19:50,362 >> Nii ei keegi taha mulle öelda, mida Vastus esimesele baasis kümme? 336 00:19:50,362 --> 00:19:51,674 >> Sihtrühm: Two, [kuuldamatu] 337 00:19:51,674 --> 00:19:52,340 PROFESSOR: Jah. 338 00:19:52,340 --> 00:19:53,230 Sihtrühm: 42. 339 00:19:53,230 --> 00:19:56,560 PROFESSOR: 42, et te lähete. 340 00:19:56,560 --> 00:20:00,660 Nii, kuidas me saime selle vastus oli poolt tehes kaks esimest, mis on kaks. 341 00:20:00,660 --> 00:20:02,760 Plus kahe kolmas, mis on kaheksa. 342 00:20:02,760 --> 00:20:07,590 Plus kaks viienda, mis on kõik, mis on üle jäänud. 343 00:20:07,590 --> 00:20:09,390 Sa Kokkuvõttes neid üles ja see on 42. 344 00:20:09,390 --> 00:20:12,000 >> Kas keegi segaduses, kuidas me saime seda? 345 00:20:12,000 --> 00:20:15,630 Nii põhjalikult Lisaks, nagu Ma ütlesin, siis peaks olema OK. 346 00:20:15,630 --> 00:20:17,410 Kui ei, noh, saame harjutada, et liiga. 347 00:20:17,410 --> 00:20:18,720 Aga see on kõik õige. 348 00:20:18,720 --> 00:20:20,560 Cool. 349 00:20:20,560 --> 00:20:25,570 >> Kas keegi taha mulle anda vastus teine ​​ka? 350 00:20:25,570 --> 00:20:26,860 >> 50? 351 00:20:26,860 --> 00:20:27,600 Väga hea. 352 00:20:27,600 --> 00:20:30,044 Igaüks segaduses, kuidas saime, et kas? 353 00:20:30,044 --> 00:20:31,960 Cool, ma oleks vastused järgmisele slaidile. 354 00:20:31,960 --> 00:20:34,440 Nii ei muretse, kui sa vaja kopeerida selle alla. 355 00:20:34,440 --> 00:20:38,860 >> OK, nii kuueteistkümnendsüsteemis on veidi keerukam. 356 00:20:38,860 --> 00:20:41,840 aga ma lähen näitan teile poisid otsetee, kuidas seda teha. 357 00:20:41,840 --> 00:20:44,800 Nii kuueteistkümnendsüsteemis, kui mäletan, kõik see on olla 16. 358 00:20:44,800 --> 00:20:48,920 Ja kuna me nagu inimesed tegelikult ei on 16 numbrid tähistavad, et 359 00:20:48,920 --> 00:20:56,940 läheme nullist üheksani, mis meie esimene 10 väärtustega ja siis teeme läbi F, 360 00:20:56,940 --> 00:20:58,630 mis on järgmise kuue väärtusi. 361 00:20:58,630 --> 00:21:03,040 >> Ja nii on kõige lihtsam viis minna mis tahes binaarne number kuueteistkümnendsüsteemis 362 00:21:03,040 --> 00:21:05,350 on murda neid pooleks. 363 00:21:05,350 --> 00:21:10,042 Ja nii igal kahendarvuna anname siis ilmselt kaheksa numbrit. 364 00:21:10,042 --> 00:21:11,750 Sa võid murda neid keskel. 365 00:21:11,750 --> 00:21:17,460 >> Nii et esimene one-- üks ühele, üks ühele üks, üks, üks ühe. 366 00:21:17,460 --> 00:21:21,340 Kind of arvan, et see üles, sa tead, joonistada kaldkriipsuga või koma nende vahel. 367 00:21:21,340 --> 00:21:23,800 Ja sa võid teisendada otse mis tahes 368 00:21:23,800 --> 00:21:26,670 see on esimese arvu kuueteistkümnendsüsteemis, 369 00:21:26,670 --> 00:21:29,880 ja mis iganes on siin Teise kuueteistkümnendsüsteemi. 370 00:21:29,880 --> 00:21:37,584 >> Nii mäletan ühise märke, Mida kuueteistkümnendväärtused alustada? 371 00:21:37,584 --> 00:21:38,460 >> Sihtrühm: Zero. 372 00:21:38,460 --> 00:21:39,270 >> PROFESSOR: 0X. 373 00:21:39,270 --> 00:21:45,210 Nii et me teame, et iga kord, kui me palume teil teisendada iga numbri kuueteistkümnesüsteemis 374 00:21:45,210 --> 00:21:48,230 või igal ajal näete number, mis algab 0x, 375 00:21:48,230 --> 00:21:50,230 sa tead, et see on kuueteistkümnendväärtus. 376 00:21:50,230 --> 00:21:54,160 >> Ja siis sa lähed palutakse otsustada, milline neist kahest numbrist on. 377 00:21:54,160 --> 00:21:59,690 Ja kuidas sa seda teha, häälte lugemise up et pool ja häälte lugemise up, et pool. 378 00:21:59,690 --> 00:22:02,870 Nii selles näites, mida peaks üks, üks, üks, üks olla? 379 00:22:02,870 --> 00:22:04,890 Mis väärtus oleks? 380 00:22:04,890 --> 00:22:06,040 See oleks F, eks? 381 00:22:06,040 --> 00:22:08,050 See oleks 15. 382 00:22:08,050 --> 00:22:11,780 >> Nii et see oleks F. Üks, ühe, üks, üks on siin ka 383 00:22:11,780 --> 00:22:21,270 F. Nii ühe, üks, üks, üks, üks, üks, üks, üks kuueteistkümnendsüsteemis, kõik see on on 0XFF. 384 00:22:21,270 --> 00:22:25,350 Kuna see pool esindatud F väärtus 15, 385 00:22:25,350 --> 00:22:27,331 ja seda pool esindatud F väärtus 15. 386 00:22:27,331 --> 00:22:29,456 Sest mäletan, et me oleme arvestades nullist üheksani. 387 00:22:29,456 --> 00:22:35,290 A on nagu 10, B on nagu 11, F 15. 388 00:22:35,290 --> 00:22:41,690 >> Kas see mõtet igaüks, kuidas saime binaarne et kuueteistkümnendsüsteemis? 389 00:22:41,690 --> 00:22:44,595 >> Sihtrühm: Ja nii kuidas saame 15 ühest, ühe, üks, üks? 390 00:22:44,595 --> 00:22:46,220 PROFESSOR: Jah, see on binaarsed, eks? 391 00:22:46,220 --> 00:22:48,090 Kujutage ette, et see on lihtsalt binaarne number. 392 00:22:48,090 --> 00:22:50,792 Nii et teil on kaks kuni zeroth, mis on üks. 393 00:22:50,792 --> 00:22:51,500 Sihtrühm: Oh, OK. 394 00:22:51,500 --> 00:22:51,670 Nii et sa lihtsalt kokku saada. 395 00:22:51,670 --> 00:22:52,670 >> PROFESSOR: Jah, ja siis sa lihtsalt kokku, et välja. 396 00:22:52,670 --> 00:22:53,380 See on kõik see. 397 00:22:53,380 --> 00:22:54,890 >> Sihtrühm: OK. 398 00:22:54,890 --> 00:22:55,830 >> PROFESSOR: OK. 399 00:22:55,830 --> 00:23:00,740 >> Sihtrühm: Nii et sa minna binaarne numbriliste et kuueteistkümnendsüsteemis? 400 00:23:00,740 --> 00:23:04,590 >> PROFESSOR: Ongi Lihtsaim viis seda teha, jah. 401 00:23:04,590 --> 00:23:11,390 Sa ei kavatse koma kuna koma ainult nullist üheksani. 402 00:23:11,390 --> 00:23:13,410 Oleme vaid mingi jagades selle kaheks. 403 00:23:13,410 --> 00:23:15,201 >> Sihtrühm: [kuuldamatu] kasutades koma leida 404 00:23:15,201 --> 00:23:17,809 mida see sobib kuni kuueteistkümnendsüsteemis. 405 00:23:17,809 --> 00:23:20,100 PROFESSOR: Ma mõtlen, et sa oled häälte lugemise up kasutades põhilised matemaatika. 406 00:23:20,100 --> 00:23:20,725 Sihtrühm: Jah. 407 00:23:20,725 --> 00:23:22,300 PROFESSOR: Jah, päris palju. 408 00:23:22,300 --> 00:23:23,630 See on natuke segane. 409 00:23:23,630 --> 00:23:26,410 Aga tean, et sa saab jagada iganes 410 00:23:26,410 --> 00:23:28,160 see väärtus on võetud lihtsalt pooleks. 411 00:23:28,160 --> 00:23:29,570 Vaata, millised on selle kahendsüsteemis? 412 00:23:29,570 --> 00:23:30,610 Mis number see on? 413 00:23:30,610 --> 00:23:33,270 See saab olema midagi nullist F. 414 00:23:33,270 --> 00:23:35,722 >> Siin on ka kavatse olla midagi nullist F. 415 00:23:35,722 --> 00:23:37,722 Ja siis saate lihtsalt panna Nende kahe seal. 416 00:23:37,722 --> 00:23:38,263 >> Sihtrühm: OK. 417 00:23:38,263 --> 00:23:38,910 PROFESSOR: Yep. 418 00:23:38,910 --> 00:23:39,410 OKEI. 419 00:23:39,410 --> 00:23:42,320 Nii kutid tahavad proovida järgmise siis? 420 00:23:42,320 --> 00:23:49,601 Null, üks, null üks, üks, null, üks null. 421 00:23:49,601 --> 00:23:52,350 Ma annan sulle sinusuguseid 30 sekundit, sest sa ilmselt ei tea, 422 00:23:52,350 --> 00:23:53,850 trikk, kuidas seda teha varem. 423 00:23:53,850 --> 00:24:24,950 424 00:24:24,950 --> 00:24:27,381 >> OK, keegi taha see pihta? 425 00:24:27,381 --> 00:24:28,774 >> 0x5A. 426 00:24:28,774 --> 00:24:29,440 PROFESSOR: 0x5A. 427 00:24:29,440 --> 00:24:30,470 5a. 428 00:24:30,470 --> 00:24:31,340 Väga hea. 429 00:24:31,340 --> 00:24:37,050 Nii et see siin oleks olla-- soovid meile öelda, kuidas sul on? 430 00:24:37,050 --> 00:24:38,920 Esiteks, kuidas sa said viie? 431 00:24:38,920 --> 00:24:42,030 >> Sihtrühm: Kuna null, üks, null, üks on viis. 432 00:24:42,030 --> 00:24:45,170 >> PROFESSOR: Kas igaüks aru miks null, üks, null, üks on viis? 433 00:24:45,170 --> 00:24:46,260 Sul on siin. 434 00:24:46,260 --> 00:24:48,010 Sul pole midagi kahe esimese. 435 00:24:48,010 --> 00:24:50,300 Kahe teise, siis on üks, mis on neli. 436 00:24:50,300 --> 00:24:52,600 Nii et sa lisada neli pluss üks, sa pead viis. 437 00:24:52,600 --> 00:24:53,600 Igaüks hea? 438 00:24:53,600 --> 00:24:54,100 OKEI. 439 00:24:54,100 --> 00:24:56,570 Ja siis mis see oleks ja miks? 440 00:24:56,570 --> 00:24:58,350 Mis number teeb vastavad? 441 00:24:58,350 --> 00:24:59,350 >> Sihtrühm: 10. 442 00:24:59,350 --> 00:25:00,976 >> PROFESSOR: Ja mis seda baasi kaks? 443 00:25:00,976 --> 00:25:01,850 Sihtrühm: [kuuldamatu] 444 00:25:01,850 --> 00:25:03,010 PROFESSOR: Täpselt. 445 00:25:03,010 --> 00:25:06,370 Nii et see teine ​​väärtus oleks siin 0x5A. 446 00:25:06,370 --> 00:25:08,410 >> Igaüks hea, kuidas teisendada? 447 00:25:08,410 --> 00:25:10,770 See on palju lihtsam kui sa arvad, et on. 448 00:25:10,770 --> 00:25:13,330 Ma lihtsalt tahan veenduda tead kasulikke näpunäiteid 449 00:25:13,330 --> 00:25:14,950 ja nippe, kuidas seda teha. 450 00:25:14,950 --> 00:25:18,432 >> Sihtrühm: Miks sa lihtsalt jagada see keset niimoodi? 451 00:25:18,432 --> 00:25:21,390 Lihtsalt olla nagu, OK, ma olen ainult kavatse hooli neist esimene [kuuldamatu]? 452 00:25:21,390 --> 00:25:24,240 >> PROFESSOR: Sest see on tegelikult kuidas kuueteistkümnendväärtused on esindatud. 453 00:25:24,240 --> 00:25:26,890 0X, et tegelikult tähendab midagi muud kui ütlen teile 454 00:25:26,890 --> 00:25:28,710 et see on kuueteistkümnendsüsteemis number. 455 00:25:28,710 --> 00:25:31,580 Ja see esindab alati esimesed neli numbrit. 456 00:25:31,580 --> 00:25:34,330 Ja see esindab alati Viimase nelja numbrit. 457 00:25:34,330 --> 00:25:37,835 Ja nii need kaks numbrit lihtsalt vastavad erinevatele bitti. 458 00:25:37,835 --> 00:25:39,200 >> Sihtrühm: Nii me always-- 459 00:25:39,200 --> 00:25:41,830 >> PROFESSOR: Sa oled alati hakka kaheksa väärtus bitti. 460 00:25:41,830 --> 00:25:44,580 >> Sihtrühm: Kas see on just nagu asi siin või et asi üle? 461 00:25:44,580 --> 00:25:46,883 PROFESSOR: See on lihtsalt asi arvutid, eks. 462 00:25:46,883 --> 00:25:47,424 Sihtrühm: OK. 463 00:25:47,424 --> 00:25:48,240 Awesome. 464 00:25:48,240 --> 00:25:51,290 >> PROFESSOR: Ka nii selles näites me ümber binaarset numbriliste, 465 00:25:51,290 --> 00:25:53,290 ja binaarne et kuueteistkümnendsüsteemis. 466 00:25:53,290 --> 00:25:56,610 Te soovite, veendumaks, et ka harjutada läheb teistpidi. 467 00:25:56,610 --> 00:26:03,370 Nii et kui ma sulle andsin 0XFF, siis võiks juhtida, et välja binaarne, eks? 468 00:26:03,370 --> 00:26:06,820 >> Sa teisendada F binaarne, mis on üks, üks, üks, üks, 469 00:26:06,820 --> 00:26:09,380 teisendada F kahekomponentsete, mis on üks, üks, üks, üks. 470 00:26:09,380 --> 00:26:11,310 >> Nii me võib paluda teil teha teistpidi. 471 00:26:11,310 --> 00:26:14,817 Nii koma kahekomponentsete või kuueteistkümnendsüsteemi kahekomponentsete. 472 00:26:14,817 --> 00:26:16,650 Nii et sa tahad teha kindel, et tead nii moodi. 473 00:26:16,650 --> 00:26:19,371 Me ilmselt küsida nende kahe kombinatsioon. 474 00:26:19,371 --> 00:26:20,660 >> Jah, teil on küsimus? 475 00:26:20,660 --> 00:26:22,724 Ma ei see-- sa oled hea? 476 00:26:22,724 --> 00:26:23,348 Sihtrühm: Jah. 477 00:26:23,348 --> 00:26:24,560 PROFESSOR: OK. 478 00:26:24,560 --> 00:26:26,101 Kas ma olen hea tühjendada? 479 00:26:26,101 --> 00:26:26,600 Hea. 480 00:26:26,600 --> 00:26:33,965 481 00:26:33,965 --> 00:26:40,437 >> Olgu, nii vastuseid siin, kui keegi Huvitav on hiljem ja segane. 482 00:26:40,437 --> 00:26:41,844 OKEI. 483 00:26:41,844 --> 00:26:46,070 >> Sihtrühm: Kas see, kui me paneme Meie tähed Capitol või väiketähed? 484 00:26:46,070 --> 00:26:50,360 >> PROFESSOR: see, sest kuueteistkümnendsüsteemis Tavapäraselt 485 00:26:50,360 --> 00:26:52,840 kõik märgid on suurtäheks. 486 00:26:52,840 --> 00:26:54,650 Nii A-F on saab olema suur-. 487 00:26:54,650 --> 00:26:58,660 Kui paned väiketähti a, ma ei tea kui me oleks tingimata märkida, et see vale. 488 00:26:58,660 --> 00:27:00,679 Aga teoreetiliselt see ei ole tehniliselt 489 00:27:00,679 --> 00:27:01,970 kuidas sa peaksid olema see. 490 00:27:01,970 --> 00:27:03,303 Nii nad peaksid olema suur-. 491 00:27:03,303 --> 00:27:05,910 Jah, hea küsimus. 492 00:27:05,910 --> 00:27:07,780 >> OKEI. 493 00:27:07,780 --> 00:27:08,790 Teine küsimus. 494 00:27:08,790 --> 00:27:12,750 Mõtle see armas programmi siin. 495 00:27:12,750 --> 00:27:15,180 Ma küsida, Ma tulen tagasi selle. 496 00:27:15,180 --> 00:27:23,170 >> Niisiis, esiteks, mis sees on standard io.h see huvi programmi? 497 00:27:23,170 --> 00:27:26,640 Teiseks, mida tähendab tühine tähenda kooskõlas kolm? 498 00:27:26,640 --> 00:27:30,572 Ja kolmandaks, mida ei naasmist null alates Peamine, sest line kuus, üldjuhul tähendama? 499 00:27:30,572 --> 00:27:33,280 Kui te tahate kirjutada neid maha, sest mul minna tagasi 500 00:27:33,280 --> 00:27:36,810 slaidile lihtsalt nii näed koodi. 501 00:27:36,810 --> 00:27:40,400 See on näide, nagu, võibolla kõrgema taseme küsimus, kus me palume teil 502 00:27:40,400 --> 00:27:42,435 Mis asjad tähendavad programmi. 503 00:27:42,435 --> 00:27:47,290 504 00:27:47,290 --> 00:27:49,215 >> Igaüks hea minu jaoks tagasi minna slide? 505 00:27:49,215 --> 00:27:53,400 506 00:27:53,400 --> 00:27:54,361 OK, lahe. 507 00:27:54,361 --> 00:27:57,610 Nii et ma annan sulle sinusuguseid võibolla kolm minuti vaadata seda üks reaalne kiire. 508 00:27:57,610 --> 00:28:41,330 509 00:28:41,330 --> 00:28:44,140 >> OK, nii et see on nagu suhteliselt lihtne, kontseptuaalselt. 510 00:28:44,140 --> 00:28:49,280 Kas keegi taha mulle öelda, mis on Esimene sees räsi sealhulgas 511 00:28:49,280 --> 00:28:52,630 Meie standard io.h raamatukogu faili? 512 00:28:52,630 --> 00:28:55,510 Miks me vajame, et raamatukogu sisaldub selle programmi? 513 00:28:55,510 --> 00:28:56,930 Mis siin me vajame seda? 514 00:28:56,930 --> 00:28:56,980 >> Jah? 515 00:28:56,980 --> 00:28:58,340 >> Sihtrühm: Kas see, kui paned et printf? 516 00:28:58,340 --> 00:28:59,131 >> PROFESSOR: Täpselt. 517 00:28:59,131 --> 00:29:01,780 Nii printf, iga kord, kui võtta kasutajalt 518 00:29:01,780 --> 00:29:04,140 ja printida midagi ekraani, mis on 519 00:29:04,140 --> 00:29:05,600 standard sisend, väljund raamatukogu. 520 00:29:05,600 --> 00:29:07,170 Mõtle sellele, et way-- sisend, väljund. 521 00:29:07,170 --> 00:29:08,430 >> Kas mul on väljund? 522 00:29:08,430 --> 00:29:09,207 Jah. 523 00:29:09,207 --> 00:29:12,040 Nii et ma tean, et ma olen alati saab vaja STANDARDIZE i.o raamatukogu. 524 00:29:12,040 --> 00:29:16,400 >> Nii printf on funktsioon mille peame juurde 525 00:29:16,400 --> 00:29:19,370 ja hashtag hulka standard i.o raamatukogu. 526 00:29:19,370 --> 00:29:20,280 OKEI. 527 00:29:20,280 --> 00:29:22,660 >> Teiseks, see, mida ei void tähendama? 528 00:29:22,660 --> 00:29:26,970 Meil on int main (void), mida ei void siin mõtlen siin kolmandal liinil? 529 00:29:26,970 --> 00:29:28,080 Jah, taga. 530 00:29:28,080 --> 00:29:29,020 >> Sihtrühm: [kuuldamatu] 531 00:29:29,020 --> 00:29:29,920 >> PROFESSOR: Täpselt. 532 00:29:29,920 --> 00:29:33,320 Seega pidage meeles, me oleme õppinud alustades meie pset 533 00:29:33,320 --> 00:29:35,360 et saate tegelikult määrata käsureal 534 00:29:35,360 --> 00:29:39,010 argumente, et oma programmi, et sa põhifunktsioon, võtab nii teile kui kasutajale, 535 00:29:39,010 --> 00:29:39,650 kutsuda. 536 00:29:39,650 --> 00:29:42,650 Kui meil on tühine, mis tähendab, et sa võiks lihtsalt käivitada programmi otse 537 00:29:42,650 --> 00:29:44,680 ilma käsurea argumente. 538 00:29:44,680 --> 00:29:46,160 Igaüks selge, et? 539 00:29:46,160 --> 00:29:46,660 OKEI. 540 00:29:46,660 --> 00:29:52,850 >> Ja lõpuks, miks me vaeva teed see tagasipöördumine null asi siin? 541 00:29:52,850 --> 00:29:54,740 Miks me isegi on int main? 542 00:29:54,740 --> 00:29:57,330 Miks ei saa me lihtsalt void main void? 543 00:29:57,330 --> 00:29:59,216 Jah? 544 00:29:59,216 --> 00:30:01,590 Sihtrühm: Just nii, et me saame olla kindel, et programm on 545 00:30:01,590 --> 00:30:04,247 väljumisel edukalt, kui vastandina kui see oli nummerdatud. 546 00:30:04,247 --> 00:30:06,580 Ja me teame, et see on teistsugust viga. 547 00:30:06,580 --> 00:30:07,621 >> PROFESSOR: Jah, täpselt. 548 00:30:07,621 --> 00:30:10,670 See on lihtsalt väga tavalised asi, mida me teeme, 549 00:30:10,670 --> 00:30:13,840 on see, et lihtsalt lõpus oma programmi, lihtsalt veendumaks, et 550 00:30:13,840 --> 00:30:15,830 et oma põhifunktsiooni töötab korralikult, 551 00:30:15,830 --> 00:30:17,940 Oleme alati tahtnud teha vastutasuks null. 552 00:30:17,940 --> 00:30:21,160 Kuigi me võib tingimata ei näe, et trükitud pool. 553 00:30:21,160 --> 00:30:25,092 >> Sest nagu programmeerijad, sa tead, kui Teil on palju erinevaid ridu koodi 554 00:30:25,092 --> 00:30:27,050 ja sa ei tea, kus need on valesti, 555 00:30:27,050 --> 00:30:30,240 ja kui viga juhtub soovid veenduge, et saate selle vea. 556 00:30:30,240 --> 00:30:33,240 Ja nii tavaliselt, kui midagi läheb valesti me peame tagasi ühe lihtsalt 557 00:30:33,240 --> 00:30:34,669 veenduda, et me teame, et see on. 558 00:30:34,669 --> 00:30:36,460 Nii et kui te näete tagasi null, et tavaliselt 559 00:30:36,460 --> 00:30:38,293 tähendab, et teie programm on täideti edukalt. 560 00:30:38,293 --> 00:30:40,490 561 00:30:40,490 --> 00:30:40,990 Hea? 562 00:30:40,990 --> 00:30:45,180 563 00:30:45,180 --> 00:30:45,680 Cool. 564 00:30:45,680 --> 00:30:48,710 565 00:30:48,710 --> 00:30:52,680 >> OK, teine ​​programm siin. 566 00:30:52,680 --> 00:30:54,827 Mõtle seda. 567 00:30:54,827 --> 00:30:56,910 Ja kui te poisid näha float, kutid ilmselt 568 00:30:56,910 --> 00:31:00,810 on hea idee, mida Ma olen umbes küsida. 569 00:31:00,810 --> 00:31:05,200 >> Nii et kui see programm täidab, nagu näete, 570 00:31:05,200 --> 00:31:09,330 Olen kuulutab float sees minu peamine funktsioon. 571 00:31:09,330 --> 00:31:13,470 Ma nimetades seda "vastata," ja ma panen mis võrdub ühe jagatud 10. 572 00:31:13,470 --> 00:31:17,860 Ma väljatrükk, et üks kümnendkohani et sularahaga. 573 00:31:17,860 --> 00:31:19,880 Ja siis ma tagasi nulli. 574 00:31:19,880 --> 00:31:24,470 >> Nii et kui täidesaatva programmi arvan, et tagasi ahne nüüd, 575 00:31:24,470 --> 00:31:26,550 Selle programmi prindib 0,0. 576 00:31:26,550 --> 00:31:29,993 Nagu me kõik teame, loodetavasti kõik tea, üks jagatud 10 ei ole 0.00, 577 00:31:29,993 --> 00:31:32,350 see on 0,1. 578 00:31:32,350 --> 00:31:37,810 Aga miks see programm mõtleb et 1 jagatud 10 prindib 0,1 teisi 579 00:31:37,810 --> 00:31:39,504 kui 0,1? 580 00:31:39,504 --> 00:31:42,545 Ma annan sulle poisid äkki nagu 30 sekundit lihtsalt kiiresti mõelda, et 581 00:31:42,545 --> 00:31:43,878 ja ma lähen tagasi programmi. 582 00:31:43,878 --> 00:32:17,800 583 00:32:17,800 --> 00:32:20,290 >> OKEI. 584 00:32:20,290 --> 00:32:22,205 Igaüks taha anda talle süsti? 585 00:32:22,205 --> 00:32:24,330 Kolmes lausete või vähem, sest tavaliselt oleme 586 00:32:24,330 --> 00:32:27,650 läheb piirata kõik vastused kuni kolm lauset või vähem 587 00:32:27,650 --> 00:32:31,130 nii et sa ei saa lihtsalt Tuletab juhuslikult asju peale oma viktoriini. 588 00:32:31,130 --> 00:32:32,740 >> Jah, võta maha. 589 00:32:32,740 --> 00:32:36,390 >> Sihtrühm: Nii et ma arvan, et see asi nimega, nagu, [kuuldamatu] 590 00:32:36,390 --> 00:32:42,320 Nii võib esineda näiteks seal võiks olla, nagu, 0.09, 591 00:32:42,320 --> 00:32:47,250 et kui sa printida esimene kohaline oleks 0,0? 592 00:32:47,250 --> 00:32:49,100 >> PROFESSOR: Sule, mitte päris. 593 00:32:49,100 --> 00:32:49,810 Christabell? 594 00:32:49,810 --> 00:32:51,770 >> Sihtrühm: Sa jagamisel ühe ja 10 ja nad mõlemad täisarvud. 595 00:32:51,770 --> 00:32:54,610 Ja nii, et see läheb ladustada seda on täisarv. 596 00:32:54,610 --> 00:32:56,480 Ja nii lähima täisarvuni oleks 0,0. 597 00:32:56,480 --> 00:32:57,471 Ja nii see on 0,1. 598 00:32:57,471 --> 00:32:58,970 PROFESSOR: Jah, see on tõesti hea. 599 00:32:58,970 --> 00:33:00,040 See on õige vastus. 600 00:33:00,040 --> 00:33:03,597 Nii et see on väga segane kontseptsioon palju lapsi. 601 00:33:03,597 --> 00:33:06,680 Ja ma tõesti tahan veenduda, et seda võimendab igaühe peas. 602 00:33:06,680 --> 00:33:10,090 >> Nii, mida me kutsume ujuvad punkti ebatäpsus, 603 00:33:10,090 --> 00:33:12,800 kui põhjuseks, miks paljud oma programmides ahne 604 00:33:12,800 --> 00:33:17,010 ei tööta algselt oli, sest unustasid enamus oma muutuv. 605 00:33:17,010 --> 00:33:19,370 Mis Christabell ütles oli täiesti õige. 606 00:33:19,370 --> 00:33:21,990 >> Ujuk on oma olemuselt ebatäpne. 607 00:33:21,990 --> 00:33:26,400 Kuna arvutis, eks meil piiratud kogus bitti mälu 608 00:33:26,400 --> 00:33:28,480 saame kasutada esindama arvu. 609 00:33:28,480 --> 00:33:33,480 Nii näiteks seda CS50 ID on-- Ma arvan, et see on 64-bitine arvuti. 610 00:33:33,480 --> 00:33:37,520 >> Ujuk saab esindatud poolt piiratud kogus neid bitti. 611 00:33:37,520 --> 00:33:42,260 Ja nii 0,1 lõpmatu nullid, See on olnud 0,1 on, eks? 612 00:33:42,260 --> 00:33:45,450 Kuid me ei saa tegelikult salvestada et number meie arvuti. 613 00:33:45,450 --> 00:33:47,810 Me lihtsalt ei ole piisavalt mälu seda teha. 614 00:33:47,810 --> 00:33:52,340 >> Ja nii lähima ühtlustamise kohta Mis on mällu talletatud on tegelikult 615 00:33:52,340 --> 00:33:55,390 midagi 0.000 midagi, midagi, midagi, midagi. 616 00:33:55,390 --> 00:34:01,240 Kumb, kui sa kärbi see, ümardab allapoole 0,0. 617 00:34:01,240 --> 00:34:05,640 >> Ja nii see näide on vaid üks mis näitab, palju küsimusi 618 00:34:05,640 --> 00:34:08,469 meil, kui me oleme püüab valesti teha matemaatika 619 00:34:08,469 --> 00:34:11,000 heitmata kui teist täisarv. 620 00:34:11,000 --> 00:34:14,870 Nii lihtsalt olema ettevaatlikud seda juhtub. 621 00:34:14,870 --> 00:34:18,239 >> On viktoriinid, kui anname ploki koodi ja see on nagu, 622 00:34:18,239 --> 00:34:19,510 Mis prindib lõpus? 623 00:34:19,510 --> 00:34:24,096 Ja kui see on mingi suvaline väärtus teil poisid peaksid teadma, miks see juhtub. 624 00:34:24,096 --> 00:34:24,909 Jah? 625 00:34:24,909 --> 00:34:27,926 >> Sihtrühm: Lühenda on vabaneda kõik pärast teatavat? 626 00:34:27,926 --> 00:34:28,513 [Kuuldamatu] 627 00:34:28,513 --> 00:34:30,929 PROFESSOR: Jah, nii tegelikult see on tõesti halb näide, 628 00:34:30,929 --> 00:34:37,870 kuna 0,100 iganes tegelikult oleks tömp alla 0,1. 629 00:34:37,870 --> 00:34:41,389 Aga kui sa olid joosta see-- ma ei mäletan, sest eelmisel aastal nad 630 00:34:41,389 --> 00:34:42,830 jooksis ta teistsuguse programmi. 631 00:34:42,830 --> 00:34:45,300 Nad jooksid seda midagi, mida nimetatakse CS50 Appliance, mis 632 00:34:45,300 --> 00:34:46,389 erineb ID. 633 00:34:46,389 --> 00:34:48,520 See oli 32-bitine süsteem, ma arvan. 634 00:34:48,520 --> 00:34:50,290 Ja nii seal olid erinevad numbrid. 635 00:34:50,290 --> 00:34:53,330 >> Aga põhimõtteliselt, lihtsalt tean, et kogu kontseptsioon kärpimise 636 00:34:53,330 --> 00:34:54,815 ja kuidas see lihtsalt lõikab asjad ära. 637 00:34:54,815 --> 00:34:55,690 Ja kui see rounds-- 638 00:34:55,690 --> 00:34:56,300 >> Sihtrühm: Ilma ümardamisest. 639 00:34:56,300 --> 00:34:57,370 >> PROFESSOR: Täpselt. 640 00:34:57,370 --> 00:34:57,870 Jah. 641 00:34:57,870 --> 00:35:02,330 642 00:35:02,330 --> 00:35:04,380 Cool. 643 00:35:04,380 --> 00:35:05,250 >> Hi, taga. 644 00:35:05,250 --> 00:35:07,634 Me elame üle mõned viktoriin läbivaatamise küsimusi. 645 00:35:07,634 --> 00:35:08,430 >> Hästi. 646 00:35:08,430 --> 00:35:10,150 Nii leiavad erinevat programmi siin. 647 00:35:10,150 --> 00:35:12,797 648 00:35:12,797 --> 00:35:15,380 Ma annan teile poisid Paar minutit lugeda üle selle. 649 00:35:15,380 --> 00:35:18,588 See on midagi, mis oli väga hiljuti, et ma arvan, puhus palju sa 650 00:35:18,588 --> 00:35:19,142 poisid mõtetes. 651 00:35:19,142 --> 00:35:21,100 Aga me ei kavatse rääkida läbi selle jälle lihtsalt 652 00:35:21,100 --> 00:35:24,152 veenduge mõista seda täielikult. 653 00:35:24,152 --> 00:35:24,652 OKEI. 654 00:35:24,652 --> 00:35:41,280 655 00:35:41,280 --> 00:35:41,780 OKEI. 656 00:35:41,780 --> 00:35:44,342 Igaüks on vaja rohkem aega, et loe läbi see kood? 657 00:35:44,342 --> 00:35:45,650 OKEI. 658 00:35:45,650 --> 00:35:50,630 >> Seega tundub mulle, et Selles programmis ma olen 659 00:35:50,630 --> 00:35:53,460 luua kaks stringi abil getString. 660 00:35:53,460 --> 00:35:55,180 Üks kutsutud s ja üks nn t. 661 00:35:55,180 --> 00:35:58,680 Ja kui nad võrdsed võrdub üksteisele 662 00:35:58,680 --> 00:36:00,880 see peaks printida "Sa sisestage sama asi. " 663 00:36:00,880 --> 00:36:04,170 >> Aga elsewise oleks printida, "Sa trükitud erinevaid asju, "eks? 664 00:36:04,170 --> 00:36:05,990 Tundub väga lihtne. 665 00:36:05,990 --> 00:36:08,720 Aga siiski, kui ma tegelikult proovida kirjutada selle programmi, 666 00:36:08,720 --> 00:36:12,230 tundub, et isegi siis, kui ma input täpselt sama stringid, 667 00:36:12,230 --> 00:36:15,490 see ikka prindib välja, "Sa trükitud erinevaid asju! " 668 00:36:15,490 --> 00:36:18,020 Kas keegi taha võtta tulistas miks see programm alati 669 00:36:18,020 --> 00:36:20,370 vastab, et sisendite on erinevad, isegi 670 00:36:20,370 --> 00:36:22,090 kui sõnad ise on samad? 671 00:36:22,090 --> 00:36:24,870 672 00:36:24,870 --> 00:36:29,170 >> Nii et kui ma oleks input-- David armastus kasutada näiteks nagu ema, eks? 673 00:36:29,170 --> 00:36:37,890 Väiketähed M-O-M S, T võrdub väiketähed M-O-M. 674 00:36:37,890 --> 00:36:40,340 Kui ma jooksin seda läbi Selle koodiga, siis miks ta 675 00:36:40,340 --> 00:36:44,180 välja printida "tipitud erinevaid asju?" 676 00:36:44,180 --> 00:36:46,336 >> Kas keegi on vaja rohkem aeg mõelda sellele? 677 00:36:46,336 --> 00:36:47,294 OK, ma arvan, et me oleme head. 678 00:36:47,294 --> 00:36:48,716 Jah? 679 00:36:48,716 --> 00:36:53,930 >> Sihtrühm: OK, nii et see on midagi kus see salvestatakse mällu, eks? 680 00:36:53,930 --> 00:36:54,890 >> PROFESSOR: Yep. 681 00:36:54,890 --> 00:37:00,400 >> Sihtrühm: Kus see on nagu, kui see string s hoitakse mälus spot-- 682 00:37:00,400 --> 00:37:01,689 Ma leiutas see-- on null. 683 00:37:01,689 --> 00:37:02,355 PROFESSOR: Muidugi. 684 00:37:02,355 --> 00:37:05,290 Sihtrühm: Ja string t hoitakse mälus kohapeal 685 00:37:05,290 --> 00:37:11,000 jms, 167, ja seejärel null ei võrdu 167. 686 00:37:11,000 --> 00:37:12,610 >> PROFESSOR: Täpselt. 687 00:37:12,610 --> 00:37:18,350 OK, nii et pidage meeles, see uskumatu ilmutust selgitasime kutid 688 00:37:18,350 --> 00:37:21,530 Möödunud nädalal, et stringid ei ole tegelikult olemas? 689 00:37:21,530 --> 00:37:25,380 Kui me luua midagi, mida nimetatakse string me tegelikult 690 00:37:25,380 --> 00:37:29,330 luua midagi, mida nimetatakse char star. 691 00:37:29,330 --> 00:37:34,470 Mis kõik on on viit string või array tähemärki. 692 00:37:34,470 --> 00:37:39,480 >> Ja nii selles Näiteks, kui ma olid sisestada M-O-M tee 693 00:37:39,480 --> 00:37:49,350 et minu arvuti ei säilita seda on jooksul mälu kurakriips null, eks? 694 00:37:49,350 --> 00:37:53,180 Need neli märki, sümbolit, oleks salvestatud kusagil. 695 00:37:53,180 --> 00:37:59,290 >> Ja siis need neli tegelased, kurakriips null, 696 00:37:59,290 --> 00:38:01,275 hoitakse kuskil mujal, eks? 697 00:38:01,275 --> 00:38:04,685 Ma ei tea, kus aadressid on, et nad on kusagil minu arvutis. 698 00:38:04,685 --> 00:38:07,080 Aga ma ei tea täpselt, kus nad on. 699 00:38:07,080 --> 00:38:10,170 >> Kui ma luua string s, kõik, mis tegelikult on 700 00:38:10,170 --> 00:38:15,550 on kursor alustada selle string. 701 00:38:15,550 --> 00:38:21,130 Ja kui ma luua selle t väärtus, kõik, mis on viit siin. 702 00:38:21,130 --> 00:38:23,980 Ja nii, kui sa üritad võrdsustama ning vaadake 703 00:38:23,980 --> 00:38:27,710 et näha, kas s on võrdsete võrdub t, arvuti 704 00:38:27,710 --> 00:38:31,635 on tõesti lihtsalt tagasi sa aadress seda m 705 00:38:31,635 --> 00:38:33,390 ja aadress, mis m. 706 00:38:33,390 --> 00:38:36,230 Ja kuna nad on kaks üksikdetailiga andmeid 707 00:38:36,230 --> 00:38:38,750 mis on salvestatud kahes erinevas aadressid arvuti, 708 00:38:38,750 --> 00:38:41,750 Arvuti kunagi tunne neid on sama. 709 00:38:41,750 --> 00:38:43,500 Kas keegi taha anda tulistas, mida me 710 00:38:43,500 --> 00:38:46,900 peaks tegema, kui me tahtsime, et parandada seda ja on õige töötava programmi 711 00:38:46,900 --> 00:38:49,360 asemel? 712 00:38:49,360 --> 00:38:52,070 Mõtle, et paar sekundit. 713 00:38:52,070 --> 00:38:54,929 Mida me vajame, et valida saaksin selle programmi toimimiseks 714 00:38:54,929 --> 00:38:56,220 kuidas me tahame seda toimida? 715 00:38:56,220 --> 00:39:17,260 716 00:39:17,260 --> 00:39:18,918 >> Jah, tahan võtke torkehaav at seda? 717 00:39:18,918 --> 00:39:24,082 >> Sihtrühm: Kas me püüame apparent pointer ja vaadata läbi massiivi? 718 00:39:24,082 --> 00:39:25,540 PROFESSOR: See on üks viis seda teha. 719 00:39:25,540 --> 00:39:27,880 Nii, mis su nimi oligi? 720 00:39:27,880 --> 00:39:29,010 Mul on kahju, meenutavad mulle. 721 00:39:29,010 --> 00:39:29,589 >> Zee: Zee. 722 00:39:29,589 --> 00:39:32,130 PROFESSOR: Jah, mis siis Zee soovitas absoluutselt tööd. 723 00:39:32,130 --> 00:39:32,629 Õigus? 724 00:39:32,629 --> 00:39:35,730 Võiksime apparent kursorit ja tegelikult minna ja juurdepääs 725 00:39:35,730 --> 00:39:38,460 Füüsiline andme sees siin. 726 00:39:38,460 --> 00:39:40,300 Ja me saame lihtsalt võrrelda kogu ekraani. 727 00:39:40,300 --> 00:39:43,670 >> Me ei saa öelda, OK, pointer, mulle mis sees siin. 728 00:39:43,670 --> 00:39:44,960 Oleks tagastada m. 729 00:39:44,960 --> 00:39:47,168 Ja ma ütleksin, pointer, mulle mis sees siin. 730 00:39:47,168 --> 00:39:47,750 Tagastab m. 731 00:39:47,750 --> 00:39:48,410 Kas need mängu? 732 00:39:48,410 --> 00:39:49,410 Jah. 733 00:39:49,410 --> 00:39:50,340 Siis me liigume edasi. 734 00:39:50,340 --> 00:39:54,240 >> Hoiame kontrollida kogu kaks stringid kogu tee kuni lõpuni 735 00:39:54,240 --> 00:39:56,635 ja vaata, kas need on võrdsed, Kui kõik väärtused on võrdsed. 736 00:39:56,635 --> 00:39:59,680 Ja kui kõik väärtused on võrdsed, siis me teame, stringid on tõsi. 737 00:39:59,680 --> 00:40:01,600 Absoluutselt, see on, kuidas me seda teeme? 738 00:40:01,600 --> 00:40:03,930 >> Kas keegi segi kõik see? 739 00:40:03,930 --> 00:40:06,970 Kogu kontseptsioon, kuidas stringid on tõesti ainult viiteid, 740 00:40:06,970 --> 00:40:08,440 ja kuidas nad tegelikult ei eksisteeri? 741 00:40:08,440 --> 00:40:10,480 Ja miks me vead meeldib, kuidas me seda saada? 742 00:40:10,480 --> 00:40:15,070 Sest ma garanteerin teile poisid, viiteid ja string eraldamise ja mälu 743 00:40:15,070 --> 00:40:16,470 ei kavatse tulla. 744 00:40:16,470 --> 00:40:17,410 >> Jah? 745 00:40:17,410 --> 00:40:21,072 >> Sihtrühm: [kuuldamatu] apparent seda, sa lihtsalt panna star [kuuldamatu] 746 00:40:21,072 --> 00:40:21,780 PROFESSOR: Right. 747 00:40:21,780 --> 00:40:28,430 Nii et derererence osuti vahendid minna, et aadress pointer 748 00:40:28,430 --> 00:40:30,390 ja saada andmeid, väärtus on. 749 00:40:30,390 --> 00:40:32,700 Ja kuidas seda teha on star pointer. 750 00:40:32,700 --> 00:40:34,262 Ärge ajage seda. 751 00:40:34,262 --> 00:40:35,186 >> Sihtrühm: [kuuldamatu]. 752 00:40:35,186 --> 00:40:35,852 >> PROFESSOR: Jah. 753 00:40:35,852 --> 00:40:39,750 Sihtrühm: Nii saate lihtsalt kirjutada Kui täht s võrdne võrdsete star t. 754 00:40:39,750 --> 00:40:40,630 >> PROFESSOR: Noh, ei. 755 00:40:40,630 --> 00:40:40,960 Ei. 756 00:40:40,960 --> 00:40:41,640 >> Sihtrühm: See ei ole piisavalt hea, eks? 757 00:40:41,640 --> 00:40:43,760 >> PROFESSOR: Ei ole, sest sa oled kontrollime ainult esimene täht. 758 00:40:43,760 --> 00:40:46,010 Sa oled ilmselt läheb vaja mingi loop mis 759 00:40:46,010 --> 00:40:49,055 itereerib läbi iga iseloomu nii stringe. 760 00:40:49,055 --> 00:40:49,837 Jah. 761 00:40:49,837 --> 00:40:52,920 Nii et kui sa tahad lihtsalt vaadata kui nad alustasid sama asja, 762 00:40:52,920 --> 00:40:58,220 saate teha siis, kui täht s on võrdne star t. 763 00:40:58,220 --> 00:41:01,300 Siis sa tead, et need vähemalt algas sama tegelane. 764 00:41:01,300 --> 00:41:01,952 >> Jah? 765 00:41:01,952 --> 00:41:04,056 >> Sihtrühm: Nii teed sa ei oleks 766 00:41:04,056 --> 00:41:06,064 nagu need sisestati loop või osuti? 767 00:41:06,064 --> 00:41:06,730 PROFESSOR: Jah. 768 00:41:06,730 --> 00:41:08,170 Päris palju just for loop. 769 00:41:08,170 --> 00:41:12,430 Pea meeles, David klassis mainitud vaba süntaktiline suhkur? 770 00:41:12,430 --> 00:41:17,690 Ja tal oli see väga segane asi star t 771 00:41:17,690 --> 00:41:22,030 pluss üks, kus see hõlmaks läbi ja seda kursorit liigutada? 772 00:41:22,030 --> 00:41:29,910 Lihtsam viis selleks see on lihtsalt t i. 773 00:41:29,910 --> 00:41:31,090 >> Nii et see on lihtsalt massiivi. 774 00:41:31,090 --> 00:41:34,630 Nii, et siis oleks jaoks loop, mis jooksis nullist i, kus 775 00:41:34,630 --> 00:41:36,580 i on pikkus string, siis võiks lihtsalt 776 00:41:36,580 --> 00:41:39,510 kirjutada, et selle asemel, et teeme Kogu pointer, viidates asi. 777 00:41:39,510 --> 00:41:43,510 Nii need asjad on täpselt samaväärne arvuti. 778 00:41:43,510 --> 00:41:45,905 >> Te ilmselt ei pead teadma, et 779 00:41:45,905 --> 00:41:48,280 aga see on hea, et lihtsalt selline on taga meelt. 780 00:41:48,280 --> 00:41:52,630 Lihtsalt tean, et arvuti tunneb erinevaid plokke koodi 781 00:41:52,630 --> 00:41:53,890 sama asi. 782 00:41:53,890 --> 00:41:57,510 Sest see on lihtsalt palju rohkem kasutaja sõbralik meile esitada see nagu see on 783 00:41:57,510 --> 00:41:58,150 massiivi. 784 00:41:58,150 --> 00:42:00,990 See on lihtsalt lihtsam. 785 00:42:00,990 --> 00:42:02,719 >> Sihtrühm: Nii et kasutage strlen meeldib, get-- 786 00:42:02,719 --> 00:42:03,385 PROFESSOR: Jah. 787 00:42:03,385 --> 00:42:03,926 Sihtrühm: OK. 788 00:42:03,926 --> 00:42:05,940 PROFESSOR: Sa võiksid kasuta strlen, või kui teil 789 00:42:05,940 --> 00:42:10,420 ei olnud strlen saate lihtsalt teha kuni kuni te tabanud kurakriips null nii. 790 00:42:10,420 --> 00:42:11,568 Kas teeks. 791 00:42:11,568 --> 00:42:12,068 Jah. 792 00:42:12,068 --> 00:42:14,871 793 00:42:14,871 --> 00:42:17,996 Sihtrühm: Nii see on, et apparent iga üks märk, kui me tegelikult 794 00:42:17,996 --> 00:42:21,044 kirjalikult Selle koodiga hoiame võiks lihtsalt teha t sulgudes i 795 00:42:21,044 --> 00:42:22,460 Nagu tähe ees on? 796 00:42:22,460 --> 00:42:27,700 >> PROFESSOR: Jah, võrdub võrdsete s sulg i ja seejärel liikuma i 797 00:42:27,700 --> 00:42:29,790 alla kuni jõuad lõppu. 798 00:42:29,790 --> 00:42:31,286 Jah, see on see, mida sa teeksid. 799 00:42:31,286 --> 00:42:33,660 Ja ma tegelikult on järgmine näiteks siis, kui me tegelikult 800 00:42:33,660 --> 00:42:36,740 kirjuta strlen nii kutid liiki ja saad mängida seda natuke. 801 00:42:36,740 --> 00:42:43,567 >> Nii on igaühel selge lihtsalt mälu, stringid, vihjeid, kvaliteet aadressid? 802 00:42:43,567 --> 00:42:46,650 Mõned kõrgema mõisted, mida te tahe kindel vaja teada, viktoriin 803 00:42:46,650 --> 00:42:48,928 homme. 804 00:42:48,928 --> 00:42:49,904 >> Hästi. 805 00:42:49,904 --> 00:42:50,404 Väga hea. 806 00:42:50,404 --> 00:42:54,824 807 00:42:54,824 --> 00:42:55,324 Yep. 808 00:42:55,324 --> 00:42:58,770 809 00:42:58,770 --> 00:43:04,180 OK, nii et üks asi, mida me ka küsida Teile, kui me teeme igal aastal viktoriin, on 810 00:43:04,180 --> 00:43:08,340 Oletame, et olete unustanud (mis me ilmselt unustada seda teha kord aastas) 811 00:43:08,340 --> 00:43:10,810 kus päisefail strlen on deklareeritud. 812 00:43:10,810 --> 00:43:13,860 Ja nii on meil kirjutada seda ise. 813 00:43:13,860 --> 00:43:16,350 >> Siin on nimekiri suunised et me saame esitada teile 814 00:43:16,350 --> 00:43:20,660 poisid, kus sa saad eeldada, et S string ei ole null. 815 00:43:20,660 --> 00:43:23,830 Võite eeldada, et s on lõpetatakse längkriipsuga null. 816 00:43:23,830 --> 00:43:26,670 Nii et sa tead, et see, mida see saab lõppeda. 817 00:43:26,670 --> 00:43:29,500 >> Ja näiteks, et pikkus hello oleks viis. 818 00:43:29,500 --> 00:43:32,890 Nii et sa ei saa eeldada, et hello saab viie, H-E-L-L-O. 819 00:43:32,890 --> 00:43:35,890 Sa ei pea eeldama, et tagaküljel null moodustab pikkusest. 820 00:43:35,890 --> 00:43:39,720 821 00:43:39,720 --> 00:43:42,300 >> See viimane asi siin, ei muretsema täisarv ülevoolu. 822 00:43:42,300 --> 00:43:45,270 Kas keegi mäletab Mis täisarv ülevoolu on? 823 00:43:45,270 --> 00:43:48,041 >> Sihtrühm: ulatuslikum pikkus [kuuldamatu]. 824 00:43:48,041 --> 00:43:50,740 >> PROFESSOR: Jah, võib seletada natuke, mida see tähendab? 825 00:43:50,740 --> 00:43:55,330 >> Sihtrühm: Niisiis, ma arvan, et see läheb tagasi et kärbitakse näiteks varem. 826 00:43:55,330 --> 00:43:58,380 Aga kui sul on lihtsalt nii palju numbreid mis lähevad kaugemale bittide arv 827 00:43:58,380 --> 00:44:01,409 et saate tegelikult määrata selle et see lihtsalt mingi ära lõigatud. 828 00:44:01,409 --> 00:44:04,242 PROFESSOR: Jah, nii tüüpiline arvuti, kui palju bitte meil on? 829 00:44:04,242 --> 00:44:05,306 Sihtrühm: 32? 830 00:44:05,306 --> 00:44:06,430 PROFESSOR: Jah, 32, eks. 831 00:44:06,430 --> 00:44:10,030 Ja nii see on, mida neli miljardit kaks miljardit? 832 00:44:10,030 --> 00:44:13,579 Neli miljardit kuni neli miljardit positiivsed täisarvud, eks? 833 00:44:13,579 --> 00:44:15,370 Kaks miljardit negatiivne, kaks miljardit positiivne, 834 00:44:15,370 --> 00:44:16,900 sõltub sellest, kuidas sa tahad seda teha. 835 00:44:16,900 --> 00:44:21,470 >> Ja nii põhimõtteliselt saame piisavalt täisarvud, mis võib ulatuda kuni 836 00:44:21,470 --> 00:44:25,800 kaks kuni 31. miinus 1, eks? 837 00:44:25,800 --> 00:44:27,980 Sest kui me tabanud kaks kuni 32., me ei 838 00:44:27,980 --> 00:44:30,040 ole nii palju mälu meie arvuti. 839 00:44:30,040 --> 00:44:32,310 >> Ja nii teoreetiliselt ma võiks tulla mitmeid 840 00:44:32,310 --> 00:44:34,560 see tähendab, et umbes kaks kuni 46.. 841 00:44:34,560 --> 00:44:38,040 See on suur perse number, kuid Teoreetiliselt võid. 842 00:44:38,040 --> 00:44:42,730 Ja nii täisarv ülevoolu on, kui sa püüad luua täisarvu, mis läheb kaugemale 843 00:44:42,730 --> 00:44:44,790 arvuti on võimeline ladustamiseks. 844 00:44:44,790 --> 00:44:46,590 >> Ja siis poisid Selles näites ei ole 845 00:44:46,590 --> 00:44:51,330 muretsema meist annab sulle hiiglane string, mis on kaks kuni 32. tähemärki 846 00:44:51,330 --> 00:44:51,830 pikk. 847 00:44:51,830 --> 00:44:54,010 See oleks tegelikult tähendab. 848 00:44:54,010 --> 00:44:59,430 >> Olgu, nii et ma lihtsalt annan kutid põhistruktuuri seda. 849 00:44:59,430 --> 00:45:02,020 Sa lähed, et luua funktsiooni nimetatakse int strlen, kus 850 00:45:02,020 --> 00:45:08,436 Pass, süsi star, või string, kursor string nimetatakse s. 851 00:45:08,436 --> 00:45:10,820 >> Hea küll, igaüks kopeerida, et maha. 852 00:45:10,820 --> 00:45:13,550 853 00:45:13,550 --> 00:45:14,850 Cool. 854 00:45:14,850 --> 00:45:17,020 Oops-- muul viisil. 855 00:45:17,020 --> 00:45:21,360 >> Nii et see on selline nagu raskem tükk probleem, 856 00:45:21,360 --> 00:45:25,320 nii et ma annan sulle poisid võibolla viis kuni kuus minutit, et selline ajurünnak 857 00:45:25,320 --> 00:45:27,478 ja kirjutada see funktsioon välja. 858 00:45:27,478 --> 00:45:29,710 >> Sihtrühm: Me ei konto [kuuldamatu] 859 00:45:29,710 --> 00:45:30,200 me ei pea kasutama täisarv? 860 00:45:30,200 --> 00:45:31,241 >> PROFESSOR: Ei, sa ei pea. 861 00:45:31,241 --> 00:48:05,847 862 00:48:05,847 --> 00:48:06,930 Ma annan sulle poisid vihje. 863 00:48:06,930 --> 00:48:12,325 Aega loop võib olla suureks abiks. 864 00:48:12,325 --> 00:48:12,825 Jah. 865 00:48:12,825 --> 00:48:44,995 866 00:48:44,995 --> 00:48:45,495 Siin 867 00:48:45,495 --> 00:48:45,995 kommi. 868 00:48:45,995 --> 00:48:49,980 869 00:48:49,980 --> 00:48:53,410 Candy on saadaval ka viktoriini, ma arvan. 870 00:48:53,410 --> 00:48:55,315 Nii kutid on kõik sugared homme. 871 00:48:55,315 --> 00:49:01,110 872 00:49:01,110 --> 00:49:02,962 Kas i-- sul see. 873 00:49:02,962 --> 00:49:03,718 >> Sihtrühm: OK. 874 00:49:03,718 --> 00:49:04,384 PROFESSOR: Jah. 875 00:49:04,384 --> 00:49:10,550 876 00:49:10,550 --> 00:49:11,870 >> Võib-olla 30 sekundit või nii. 877 00:49:11,870 --> 00:50:02,220 878 00:50:02,220 --> 00:50:07,340 >> Olgu, kui sa oled ei teinud, ei muretse. 879 00:50:07,340 --> 00:50:08,810 Me liikuda selles koos. 880 00:50:08,810 --> 00:50:09,310 OKEI. 881 00:50:09,310 --> 00:50:13,800 Nii et ma lähen lihtsalt paigutus põhistruktuur see funktsioon siin. 882 00:50:13,800 --> 00:50:17,255 Int strlen. 883 00:50:17,255 --> 00:50:20,040 884 00:50:20,040 --> 00:50:23,460 Esiteks, kas keegi taha öelda mulle, mida see int tähendab? 885 00:50:23,460 --> 00:50:25,160 Me peame selle funktsiooni. 886 00:50:25,160 --> 00:50:26,709 >> Sihtrühm: strlen [kuuldamatu]. 887 00:50:26,709 --> 00:50:27,500 PROFESSOR: Täpselt. 888 00:50:27,500 --> 00:50:31,140 Mida iganes juhtub siin, Me peame taastama täisarv. 889 00:50:31,140 --> 00:50:36,367 Ja nagu on ette nähtud spec, tahame return-- 890 00:50:36,367 --> 00:50:37,700 Mine siis poisid muudkui läheb. 891 00:50:37,700 --> 00:50:40,480 See kõik on hea. 892 00:50:40,480 --> 00:50:42,960 Söö kõik, et ma ei ole võtma tagasi, tegelikult. 893 00:50:42,960 --> 00:50:46,022 894 00:50:46,022 --> 00:50:48,855 Int lihtsalt tähendab, et sa oled kavatse tagasi täisarv. 895 00:50:48,855 --> 00:50:55,350 896 00:50:55,350 --> 00:50:57,106 >> Mis on see char star s? 897 00:50:57,106 --> 00:50:58,640 Mida see tähendab? 898 00:50:58,640 --> 00:51:00,879 >> Sihtrühm: Like, mida kuramuse sisend. 899 00:51:00,879 --> 00:51:01,670 PROFESSOR: Täpselt. 900 00:51:01,670 --> 00:51:04,142 Ja mis on peaaegu sama asi nagu char star? 901 00:51:04,142 --> 00:51:04,850 Sihtrühm: String? 902 00:51:04,850 --> 00:51:05,641 PROFESSOR: Täpselt. 903 00:51:05,641 --> 00:51:09,080 Nii et kõik me teeme on anda see kursor string. 904 00:51:09,080 --> 00:51:09,580 OKEI. 905 00:51:09,580 --> 00:51:12,860 906 00:51:12,860 --> 00:51:13,360 Cool. 907 00:51:13,360 --> 00:51:16,650 >> Samuti ärge unustage, kui me unustame teile need sulgudesse, 908 00:51:16,650 --> 00:51:18,330 ärge unustage, et kirjutada neid ise. 909 00:51:18,330 --> 00:51:20,720 Sest teoreetiliselt oma koodi vale, kui te unustate kirjutada. 910 00:51:20,720 --> 00:51:21,803 Lihtsalt alati tähelepanu pöörata. 911 00:51:21,803 --> 00:51:23,750 Nagu vähe asju et sa ei märka 912 00:51:23,750 --> 00:51:26,917 kui sa programmeerimine sülearvuti, sest laptop see sinu jaoks? 913 00:51:26,917 --> 00:51:28,624 Ära unusta, sa käega kirjutama. 914 00:51:28,624 --> 00:51:29,170 Jah? 915 00:51:29,170 --> 00:51:30,954 >> Sihtrühm: Aga kuidas vale? 916 00:51:30,954 --> 00:51:33,190 Nagu, me saame kogu probleem valesti? 917 00:51:33,190 --> 00:51:34,190 >> PROFESSOR: Ei, ei. 918 00:51:34,190 --> 00:51:34,860 Ärge muretsege. 919 00:51:34,860 --> 00:51:39,270 See on tegelikult teoreetiliselt võimalik teil saada täielikku punkte küsimus 920 00:51:39,270 --> 00:51:41,980 isegi kui teie koodi ei jookse kunagi reaalses elus. 921 00:51:41,980 --> 00:51:46,052 Ma soovitan teil ei püüa teha, mis juhtub. 922 00:51:46,052 --> 00:51:48,260 Näiteks nagu siis, kui kõik see siin on õige, 923 00:51:48,260 --> 00:51:51,850 kuid te unustate koolon või sulg, koodi tegelikult ei tööta. 924 00:51:51,850 --> 00:51:53,740 Aga me võime olla armuline. 925 00:51:53,740 --> 00:51:54,394 >> Jah? 926 00:51:54,394 --> 00:51:56,050 >> Sihtrühm: Kas sa pead kommenteerima meie käekiri? 927 00:51:56,050 --> 00:51:57,758 >> PROFESSOR: Ei, ei, ei muret, et. 928 00:51:57,758 --> 00:51:58,440 No kommenteerides. 929 00:51:58,440 --> 00:51:59,400 Stiil peab olema hea. 930 00:51:59,400 --> 00:52:01,470 Nagu, ei Smush kõik ühel real. 931 00:52:01,470 --> 00:52:04,580 Me ei ole rahul , kui sa seda teha. 932 00:52:04,580 --> 00:52:07,250 >> Kas keegi taha mulle esimene rida? 933 00:52:07,250 --> 00:52:08,633 Hint, see on väga lihtne. 934 00:52:08,633 --> 00:52:09,320 >> Jah? 935 00:52:09,320 --> 00:52:11,920 >> Sihtrühm: keskmine, n võrdub nulliga. 936 00:52:11,920 --> 00:52:13,734 Lihtsalt luua counter. 937 00:52:13,734 --> 00:52:15,900 PROFESSOR: Nii et me tahame mõned omamoodi counter, eks? 938 00:52:15,900 --> 00:52:19,780 Ma lihtsalt nimetada see "lugema" huvides loetavust. 939 00:52:19,780 --> 00:52:21,265 Mida me tahame, et seada see võrdub? 940 00:52:21,265 --> 00:52:21,890 >> Sihtrühm: Zero. 941 00:52:21,890 --> 00:52:23,840 PROFESSOR: Yep. 942 00:52:23,840 --> 00:52:24,340 Semikooloniga. 943 00:52:24,340 --> 00:52:26,250 See on ka väga imelik joonistus semikooloniga. 944 00:52:26,250 --> 00:52:28,870 Just harjutada seda tehes. 945 00:52:28,870 --> 00:52:31,990 >> Nii et me tahame kõigepealt counter-tüüpi int. 946 00:52:31,990 --> 00:52:35,360 Kuna me tahame loota kuni kuidas palju tegelasi või tähed 947 00:52:35,360 --> 00:52:36,780 Selles string, eks? 948 00:52:36,780 --> 00:52:38,330 Väga lihtne esimene samm. 949 00:52:38,330 --> 00:52:42,140 >> OK, võibolla natuke keerulisem Nüüd, kuidas me seda teha? 950 00:52:42,140 --> 00:52:45,400 Kas keegi taha anna mulle koodirida 951 00:52:45,400 --> 00:52:48,450 et võib-olla aitab loop läbi iganes see on? 952 00:52:48,450 --> 00:52:54,540 953 00:52:54,540 --> 00:52:56,900 >> Jah, vapper hing taga? 954 00:52:56,900 --> 00:53:06,832 >> Sihtrühm: OK, nii et kui punkti tärnid on jah, täht s, 955 00:53:06,832 --> 00:53:09,465 ei võrdu nulliga, siis midagi? 956 00:53:09,465 --> 00:53:11,090 PROFESSOR: See on tõesti väga lähedal. 957 00:53:11,090 --> 00:53:11,835 Tõesti lähedal. 958 00:53:11,835 --> 00:53:13,710 Nii et ma pöördun kaks asja, et. 959 00:53:13,710 --> 00:53:18,240 Esiteks, see ei ole täpselt null. 960 00:53:18,240 --> 00:53:20,110 Mis on? 961 00:53:20,110 --> 00:53:22,550 See on null terminaator mis on kurakriips null. 962 00:53:22,550 --> 00:53:24,960 Nii nad erinevad selle kohta, kuidas need on salvestatud. 963 00:53:24,960 --> 00:53:26,270 Nii et sa oled tõesti lähedal. 964 00:53:26,270 --> 00:53:30,330 >> Ja teiseks, me ei taha lihtsalt kursorit liigutada. 965 00:53:30,330 --> 00:53:32,320 Me tahame, et tegelikult juurdepääsu väärtusi, eks? 966 00:53:32,320 --> 00:53:34,050 Ja nii, kuidas me seda teeme? 967 00:53:34,050 --> 00:53:34,550 Väga lihtne. 968 00:53:34,550 --> 00:53:36,841 Ära mõtle suunanäitajaks, ei mõtle mälestusi. 969 00:53:36,841 --> 00:53:38,525 Mine tagasi nädalal kaks selle kursuse. 970 00:53:38,525 --> 00:53:39,555 >> Sihtrühm: [kuuldamatu]. 971 00:53:39,555 --> 00:53:40,680 PROFESSOR: Alates, mäletad? 972 00:53:40,680 --> 00:53:41,400 Mis on stringid? 973 00:53:41,400 --> 00:53:42,650 Kuidas nad salvestatakse mällu? 974 00:53:42,650 --> 00:53:43,300 >> Sihtrühm: Nad tõstetud. 975 00:53:43,300 --> 00:53:43,810 >> PROFESSOR: Nad on tõstetud. 976 00:53:43,810 --> 00:53:45,550 Niisiis, kuidas me juurde iga märgi sees? 977 00:53:45,550 --> 00:53:46,466 >> Sihtrühm: [kuuldamatu]. 978 00:53:46,466 --> 00:53:47,530 PROFESSOR: Täpselt. 979 00:53:47,530 --> 00:53:53,195 Nii while-- mis toimub sees siin? 980 00:53:53,195 --> 00:53:54,940 S - 981 00:53:54,940 --> 00:53:55,920 >> Sihtrühm: I. 982 00:53:55,920 --> 00:53:58,216 >> PROFESSOR: Oh, ma ei ole, seda teeb? 983 00:53:58,216 --> 00:53:59,620 >> Sihtrühm: Oh, loota? 984 00:53:59,620 --> 00:54:01,640 >> PROFESSOR: Me ei saa lihtsalt kasuta arv, ei saa me oleme? 985 00:54:01,640 --> 00:54:03,050 >> Sihtrühm: Vabandust, ma helistasin ta i. 986 00:54:03,050 --> 00:54:04,341 >> PROFESSOR: Jah, see on kõik hea. 987 00:54:04,341 --> 00:54:06,710 988 00:54:06,710 --> 00:54:10,760 Meil on varieeruv siin see on juba deklareeritud meie counter. 989 00:54:10,760 --> 00:54:13,650 Miks me lihtsalt ei kasuta seda liikuda läbi samas loop? 990 00:54:13,650 --> 00:54:15,230 Kas see on mõtet? 991 00:54:15,230 --> 00:54:20,864 >> Niisiis, kui s count-- keegi ei taha mulle, mis juhtub pärast siin? 992 00:54:20,864 --> 00:54:22,030 Sihtrühm: See ei ole võrdne. 993 00:54:22,030 --> 00:54:23,405 PROFESSOR: ei võrdu, eks? 994 00:54:23,405 --> 00:54:26,200 See on paugu võrdne, hüüumärk võrdne, 995 00:54:26,200 --> 00:54:28,500 mida iganes sa poisid tahavad nimetame seda ei equal-- 996 00:54:28,500 --> 00:54:29,496 >> Sihtrühm: [kuuldamatu]. 997 00:54:29,496 --> 00:54:30,990 >> PROFESSOR: Jah. 998 00:54:30,990 --> 00:54:37,110 Mäleta ülakoma on süsi, jutumärkide on stringi. 999 00:54:37,110 --> 00:54:38,630 Ole ettevaatlik, kui kasutate neid. 1000 00:54:38,630 --> 00:54:42,430 Nii et kui me vaatame läbi massiivi, viimane märk, 1001 00:54:42,430 --> 00:54:46,420 me teame, et me ei taha seda kurakriips null. 1002 00:54:46,420 --> 00:54:47,340 >> Niisiis, kui. 1003 00:54:47,340 --> 00:54:48,840 Me ei ole lõpus stringi. 1004 00:54:48,840 --> 00:54:52,335 Mida me tahame teha sees? 1005 00:54:52,335 --> 00:54:55,269 >> Sihtrühm: Tahame lisada counter nii ta loeb pluss pluss? 1006 00:54:55,269 --> 00:54:56,060 PROFESSOR: Täpselt. 1007 00:54:56,060 --> 00:55:03,064 Nii et siin me teeme loe, loeb pluss pluss. 1008 00:55:03,064 --> 00:55:03,980 Kadunud veel üks rida. 1009 00:55:03,980 --> 00:55:05,090 Me oleme peaaegu kohal. 1010 00:55:05,090 --> 00:55:07,398 Mida me unustades teha? 1011 00:55:07,398 --> 00:55:08,770 >> Sihtrühm: Tulles null? 1012 00:55:08,770 --> 00:55:10,820 >> PROFESSOR: Sa tahad tagasi nulli? 1013 00:55:10,820 --> 00:55:12,962 >> Sihtrühm: Ei, tagasi strlen. 1014 00:55:12,962 --> 00:55:13,511 Oodake. 1015 00:55:13,511 --> 00:55:14,760 PROFESSOR: mis on salvestatud? 1016 00:55:14,760 --> 00:55:15,090 Sihtrühm: krahv. 1017 00:55:15,090 --> 00:55:15,589 Loe. 1018 00:55:15,589 --> 00:55:17,150 PROFESSOR: Täpselt. 1019 00:55:17,150 --> 00:55:20,760 Nii et siin me läheme tagasi loota. 1020 00:55:20,760 --> 00:55:23,450 1021 00:55:23,450 --> 00:55:25,380 >> Sest see, mis me oleme siin teed ultimately-- 1022 00:55:25,380 --> 00:55:29,780 meil on counter muutuja, mis on läheb juurdekasvu meie string. 1023 00:55:29,780 --> 00:55:33,050 Me läheme edasi minema, hoida läheb, ümber ja ümber selle silmuse. 1024 00:55:33,050 --> 00:55:37,700 Ja kuigi me pole otsa selle string, mis on null terminaator. 1025 00:55:37,700 --> 00:55:40,410 >> Ja iga kord, kui me minna läbi see lisame meie counter. 1026 00:55:40,410 --> 00:55:42,640 Ja me läheme edasi koos selle massiivi. 1027 00:55:42,640 --> 00:55:44,880 Ja lõpuks, kui me tabas null terminaator 1028 00:55:44,880 --> 00:55:48,469 me teame, oh, saame murda, tagastab arvu. 1029 00:55:48,469 --> 00:55:49,260 Meil on strlen. 1030 00:55:49,260 --> 00:55:52,280 1031 00:55:52,280 --> 00:55:56,400 >> Kas igaüks saada, kuidas see viidi ellu? 1032 00:55:56,400 --> 00:55:58,830 Kuigi loops-- Ma tean, et me ei ole teinud liiga palju nendega 1033 00:55:58,830 --> 00:56:01,240 kuid nad tavaliselt väga, väga kasulik, kui teil 1034 00:56:01,240 --> 00:56:05,390 ei tea, mida sa peatumata tingimus on tingimata olema. 1035 00:56:05,390 --> 00:56:06,220 >> Küsimus? 1036 00:56:06,220 --> 00:56:10,080 >> Sihtrühm: Kas me kirjutame null kohta, samas seisukorras? 1037 00:56:10,080 --> 00:56:10,940 >> PROFESSOR: Kuigi? 1038 00:56:10,940 --> 00:56:15,304 Jah, nii see probleem oli mul teile poisid eeldada, et s ei ole null. 1039 00:56:15,304 --> 00:56:17,220 Sest mäletan, Teoreetiliselt, kui ma sulle andsin 1040 00:56:17,220 --> 00:56:21,180 osuti, mis oli liiga suur mälu, see annaks sulle null, eks? 1041 00:56:21,180 --> 00:56:23,770 Seda operatsioonisüsteemi süsteem teeks. 1042 00:56:23,770 --> 00:56:26,960 >> Nii et kui ma ei saa öelda, et eeldada, s oleks null, siis on vaja vaadata. 1043 00:56:26,960 --> 00:56:32,050 Nii siin, siis oleks, kui s võrdub võrdub null, tagastab ühe. 1044 00:56:32,050 --> 00:56:33,028 Midagi sellist. 1045 00:56:33,028 --> 00:56:34,153 Sihtrühm: [kuuldamatu] null. 1046 00:56:34,153 --> 00:56:37,287 1047 00:56:37,287 --> 00:56:39,370 PROFESSOR: OK, ma ütlen miks me ei saa seda teha. 1048 00:56:39,370 --> 00:56:43,357 Kuna mäleta mälu, eks siin. 1049 00:56:43,357 --> 00:56:43,940 Me läheme siit. 1050 00:56:43,940 --> 00:56:49,940 1051 00:56:49,940 --> 00:56:54,090 >> Sul on hiiglane plokid mälu kõike võrgud 1052 00:56:54,090 --> 00:56:56,680 et salvestada erinevaid väärtusi, eks? 1053 00:56:56,680 --> 00:57:00,110 Ja nii kõik stringi on-- eest Näiteks, kui me oleme sisestada hello, 1054 00:57:00,110 --> 00:57:05,490 oleks H-E-L-L-O kurakriips null, eks? 1055 00:57:05,490 --> 00:57:09,570 Ja siis kes teab, nagu juhuslik seda, mis on siin pärast seda. 1056 00:57:09,570 --> 00:57:11,220 >> Me ei tea tegelikult, mis seal on. 1057 00:57:11,220 --> 00:57:13,350 Ja nii, kui sa olid teha asemel langkriipsude null, 1058 00:57:13,350 --> 00:57:15,590 null, ei pruugi see olla null. 1059 00:57:15,590 --> 00:57:17,680 Sest see lihtsalt võib tähendada mingi suvaline muid asju 1060 00:57:17,680 --> 00:57:19,270 mis ei kuulu teie string. 1061 00:57:19,270 --> 00:57:23,219 Ja nii teed, et me alati teada, et string lõpeb ei längkriipsuga null. 1062 00:57:23,219 --> 00:57:25,760 Ja nii see on alati, kuidas me vaadake lõpus stringi. 1063 00:57:25,760 --> 00:57:30,820 >> Null, kõik see tähendab, kui teil on olematu pointer, esiteks, 1064 00:57:30,820 --> 00:57:36,160 või kui teie mälu on lihtsalt nii suur, et sa ei saa tagastada, siis see oleks null. 1065 00:57:36,160 --> 00:57:40,150 Nii et ole ettevaatlik, kui eristavat vahe null 1066 00:57:40,150 --> 00:57:42,130 ja kurakriips null. 1067 00:57:42,130 --> 00:57:43,670 Jah. 1068 00:57:43,670 --> 00:57:46,886 >> Igaüks OK seda? 1069 00:57:46,886 --> 00:57:48,150 OKEI. 1070 00:57:48,150 --> 00:57:50,440 >> Pidin kutid kirjutada strlen. 1071 00:57:50,440 --> 00:57:53,790 Feasibly võiksime küsida ka kirjutad välja A I, pea meeles, et "Atwoa" 1072 00:57:53,790 --> 00:57:55,400 või mis iganes tahate seda kutsuda? 1073 00:57:55,400 --> 00:57:58,010 See funktsioon Vigenere ja Caesar, mis 1074 00:57:58,010 --> 00:58:00,900 teisendab ASCII väärtus täisarv? 1075 00:58:00,900 --> 00:58:04,360 See on ka tulla mineviku viktoriinid Funktsioonide oleme palunud kirjutada. 1076 00:58:04,360 --> 00:58:08,280 >> Päris palju tahes funktsiooni et oled kasutanud ja on 1077 00:58:08,280 --> 00:58:11,660 väga lihtne kirjutada ise, andurid meeldi on madalam, 1078 00:58:11,660 --> 00:58:14,620 on ülemine, alandada, ülemise. 1079 00:58:14,620 --> 00:58:17,964 Funktsioonid, mis teisendavad stringi väiketähed suurtäheks. 1080 00:58:17,964 --> 00:58:19,380 Me kõik teame, kuidas seda teha, eks? 1081 00:58:19,380 --> 00:58:21,100 See on päris lihtne. 1082 00:58:21,100 --> 00:58:24,770 Just soovite veenduda, et teil can-- see on sama mõtte protsessi. 1083 00:58:24,770 --> 00:58:26,940 Sa lihtsalt korrata läbi ja pöörad asjad. 1084 00:58:26,940 --> 00:58:30,190 Sa kas loota või kui lülitad asju erinevalt. 1085 00:58:30,190 --> 00:58:32,280 >> Ma suggest-- ma ei tea, kas me läheme 1086 00:58:32,280 --> 00:58:39,080 küsida meelde, mida kapitali A või kapitali Z või väiketähed A või väiketähed 1087 00:58:39,080 --> 00:58:42,640 z on ASCII, kuid pakun võibolla kirjalikult, et alla juhul, 1088 00:58:42,640 --> 00:58:44,124 me teeme. 1089 00:58:44,124 --> 00:58:45,540 Just nii kutid on alles. 1090 00:58:45,540 --> 00:58:47,180 Nagu suur- A, mida, 197? 1091 00:58:47,180 --> 00:58:51,320 Ja siis väiketähed on nagu 50 midagi. 1092 00:58:51,320 --> 00:58:52,492 65, yeah, et te lähete. 1093 00:58:52,492 --> 00:58:54,950 Nii lihtsalt päris palju teada Nende vahe on 32. 1094 00:58:54,950 --> 00:58:57,670 See on päris oluline. 1095 00:58:57,670 --> 00:58:58,170 Jah. 1096 00:58:58,170 --> 00:59:01,445 Kas ma olen hea selles küsimuses? 1097 00:59:01,445 --> 00:59:01,945 OKEI. 1098 00:59:01,945 --> 00:59:03,109 >> Sihtrühm: Võiksime teoreetiliselt kirjutada mõned 1099 00:59:03,109 --> 00:59:04,410 Nende alla ka meie little-- 1100 00:59:04,410 --> 00:59:07,035 >> PROFESSOR: Sa teoreetiliselt võiks lihtsalt kopeerida funktsiooni alla. 1101 00:59:07,035 --> 00:59:08,482 See on tõsi. 1102 00:59:08,482 --> 00:59:11,080 >> Sihtrühm: Ei [kuuldamatu]. 1103 00:59:11,080 --> 00:59:12,720 >> PROFESSOR: Te on lehel. 1104 00:59:12,720 --> 00:59:14,194 Te ei märkuse lehel. 1105 00:59:14,194 --> 00:59:14,860 Sa võid selle tippida. 1106 00:59:14,860 --> 00:59:15,490 Võite kirjutada. 1107 00:59:15,490 --> 00:59:17,031 Seda saab teha mida iganes sa tahad sellega. 1108 00:59:17,031 --> 00:59:18,530 Jah. 1109 00:59:18,530 --> 00:59:21,406 Nii teoreetiliselt kui tahad, minna. 1110 00:59:21,406 --> 00:59:23,338 >> Sihtrühm: [kuuldamatu] aga me tõesti ei 1111 00:59:23,338 --> 00:59:25,994 pea meeles väärtust, saame lihtsalt 1112 00:59:25,994 --> 00:59:28,914 kasutada kõrgema või väiksem funktsiooni, eks? 1113 00:59:28,914 --> 00:59:29,580 PROFESSOR: Jah. 1114 00:59:29,580 --> 00:59:32,740 Aga kui me andsime teile küsimus mis ütleb, et kirjutada ülemine, 1115 00:59:32,740 --> 00:59:34,350 siis oleks vaja seda kirjutada. 1116 00:59:34,350 --> 00:59:38,150 Nii kutid võib eeldada, et sa poisid on juurdepääs kõigile funktsioonidele, 1117 00:59:38,150 --> 00:59:41,523 aga kui sa tahad kasutada kõrgema või väiksem, mida sa ka teha? 1118 00:59:41,523 --> 00:59:43,840 >> Sihtrühm: [kuuldamatu] kasutada CS50 [kuuldamatu] 1119 00:59:43,840 --> 00:59:44,840 >> PROFESSOR: Kas CS50.h? 1120 00:59:44,840 --> 00:59:47,320 1121 00:59:47,320 --> 00:59:48,310 Ole ettevaatlik seal. 1122 00:59:48,310 --> 00:59:50,640 >> Nii peaks ülemine, alandada, on ülemine, on väiksem, 1123 00:59:50,640 --> 00:59:52,990 funktsioone, mis hõlmavad string manipuleerimise on 1124 00:59:52,990 --> 00:59:55,490 kõik asuvad kas ASCII või sees matemaatika raamatukogu 1125 00:59:55,490 --> 00:59:57,350 või sees string raamatukogu. 1126 00:59:57,350 --> 01:00:00,290 Nii et kui te poisid kasutavad neid funktsioonid olla ettevaatlik meeles 1127 01:00:00,290 --> 01:00:01,451 lisada, et päise kaudu. 1128 01:00:01,451 --> 01:00:03,950 Nii et ehk ka midagi tahan lisada oma lehele, 1129 01:00:03,950 --> 01:00:04,892 Mis on päis? 1130 01:00:04,892 --> 01:00:06,600 Millised on raamatukogud olete kasutanud? 1131 01:00:06,600 --> 01:00:08,550 Mis funktsioonid sees need raamatukogud? 1132 01:00:08,550 --> 01:00:09,230 See on tähtis. 1133 01:00:09,230 --> 01:00:10,420 >> Jah? 1134 01:00:10,420 --> 01:00:12,570 >> Sihtrühm: Kas me lihtsalt politseinik välja ja teha hashtag 1135 01:00:12,570 --> 01:00:14,955 läbi absoluutselt iga kirja oleme kunagi 1136 01:00:14,955 --> 01:00:17,340 näinud nagu kõik küsimused? 1137 01:00:17,340 --> 01:00:18,320 >> PROFESSOR: Sa võiksid. 1138 01:00:18,320 --> 01:00:20,361 Ma ei tea, kuidas õnnelik me ei kavatse olla hinne 1139 01:00:20,361 --> 01:00:25,090 et viktoriin, kui iga tükk koodi on kaks korda nii kaua kui see peaks olema. 1140 01:00:25,090 --> 01:00:27,200 Ma ei tea, me võiksime startida punkti stiilis. 1141 01:00:27,200 --> 01:00:28,790 Aga teoreetiliselt oma kood oleks õige. 1142 01:00:28,790 --> 01:00:30,915 Te võiks politseinik välja ja lihtsalt hõlmata kõike. 1143 01:00:30,915 --> 01:00:32,044 See on hea ka, yeah. 1144 01:00:32,044 --> 01:00:32,960 Sihtrühm: [kuuldamatu]. 1145 01:00:32,960 --> 01:00:33,270 PROFESSOR: Jah. 1146 01:00:33,270 --> 01:00:34,900 Pakun ei tee seda küll. 1147 01:00:34,900 --> 01:00:35,505 Jah. 1148 01:00:35,505 --> 01:00:36,130 Sihtrühm: Cool. 1149 01:00:36,130 --> 01:00:36,620 PROFESSOR: Hea küsimus. 1150 01:00:36,620 --> 01:00:37,480 Sihtrühm: Nii, halvimal juhul. 1151 01:00:37,480 --> 01:00:38,563 PROFESSOR: Halvimal juhul. 1152 01:00:38,563 --> 01:00:40,350 Kui teil täiesti unustada, sa võiksid seda teha. 1153 01:00:40,350 --> 01:00:40,850 Jah. 1154 01:00:40,850 --> 01:00:43,870 1155 01:00:43,870 --> 01:00:45,400 >> Yep, kood on seal. 1156 01:00:45,400 --> 01:00:49,176 Ma kasutasin n asemel loota, kuid sa tean, mida iganes ujukid oma paadiga. 1157 01:00:49,176 --> 01:00:51,092 Sihtrühm: Oota, nii et me ei pea hashtag 1158 01:00:51,092 --> 01:00:53,460 hulka, sest me oleme algusega kell int? 1159 01:00:53,460 --> 01:00:56,150 1160 01:00:56,150 --> 01:00:59,924 >> PROFESSOR: Jah, ma lihtsalt eeldada, et meil paluti kirjutada funktsiooni. 1161 01:00:59,924 --> 01:01:02,340 Kui sa tahad olla ohutu, siis võiks ilmselt pani selle sinna. 1162 01:01:02,340 --> 01:01:05,650 Aga ma lihtsalt ei viitsinud, yeah. 1163 01:01:05,650 --> 01:01:09,919 >> Ma isegi ei tea, kas sa vaja raamatukogu seda. 1164 01:01:09,919 --> 01:01:12,710 Sest sa ei ole tõesti trükkimine välja midagi või midagi, eks? 1165 01:01:12,710 --> 01:01:16,500 1166 01:01:16,500 --> 01:01:19,568 Jah, ma ei tea, kas sa pead raamatukogu. 1167 01:01:19,568 --> 01:01:22,400 >> OKEI. 1168 01:01:22,400 --> 01:01:26,020 See on ka natuke rohkem mööda read mälu manipuleerimist. 1169 01:01:26,020 --> 01:01:27,400 Selline veidi keeruline. 1170 01:01:27,400 --> 01:01:28,960 Mõtle sellele. 1171 01:01:28,960 --> 01:01:30,580 Sul on funktsioon nimega funkts. 1172 01:01:30,580 --> 01:01:33,570 Ma oleks võinud selle nimeks mis iganes, aga ma valin nime funkts. 1173 01:01:33,570 --> 01:01:36,000 Mul on see üle minu peamine. 1174 01:01:36,000 --> 01:01:39,790 Pea meeles, et sa tahad olla Funktsiooni pärast peamist, 1175 01:01:39,790 --> 01:01:42,370 sa tahad teha kindel, et sa lisada prototüübi top. 1176 01:01:42,370 --> 01:01:45,750 >> Aga sel juhul see oli nii lühike et ma tundsin, et ma võiks lihtsalt 1177 01:01:45,750 --> 01:01:47,260 lisada see pealüliti kohal. 1178 01:01:47,260 --> 01:01:51,170 Ma ei pea olema prototüüp, sest see on juba kirjutatud eespool. 1179 01:01:51,170 --> 01:01:55,430 Nii ma teen oma põhifunktsiooni loob täisarv x võrdub 10. 1180 01:01:55,430 --> 01:02:00,490 Ma helistan minu funkts funktsiooni, ja siis saab printida midagi. 1181 01:02:00,490 --> 01:02:02,840 >> Ja siis see on tegelikult Mis funkts teeb. 1182 01:02:02,840 --> 01:02:04,340 Te taha mõelda selle kaudu. 1183 01:02:04,340 --> 01:02:05,423 Sest see on veidi keeruline. 1184 01:02:05,423 --> 01:02:07,220 See on väga, väga keeruline, tegelikult. 1185 01:02:07,220 --> 01:02:09,549 Mõtle läbi, mida see Programm oleks väljastades. 1186 01:02:09,549 --> 01:02:10,840 Ma annan sulle poisid kaks minutit. 1187 01:02:10,840 --> 01:03:36,660 1188 01:03:36,660 --> 01:03:37,891 >> Hea arutelusid? 1189 01:03:37,891 --> 01:03:38,853 >> Sihtrühm: Jah. 1190 01:03:38,853 --> 01:03:39,815 >> PROFESSOR: Jah. 1191 01:03:39,815 --> 01:03:42,220 Olgu, nii et see on keeruline põhjusel. 1192 01:03:42,220 --> 01:03:44,845 Ja see on põhjus, miks ma tahtsin tuua see, et kõigi tähelepanu. 1193 01:03:44,845 --> 01:03:47,870 1194 01:03:47,870 --> 01:03:51,147 Kas keegi taha mulle soovitus, püüdes? 1195 01:03:51,147 --> 01:03:52,230 Mis oleks selle välja printida? 1196 01:03:52,230 --> 01:03:53,930 Täiesti tore, kui sa eksid. 1197 01:03:53,930 --> 01:03:55,619 Jah? 1198 01:03:55,619 --> 01:03:59,483 >> Sihtrühm: Ma arvan, et see on 100 ja siis 10 kahe eraldi read. 1199 01:03:59,483 --> 01:04:00,940 >> PROFESSOR: Ja 10? 1200 01:04:00,940 --> 01:04:03,154 Kas kellelgi on mingeid muid oletusi? 1201 01:04:03,154 --> 01:04:04,150 Jah? 1202 01:04:04,150 --> 01:04:09,040 >> Sihtrühm: Võib-olla vaid 10, sest funkts ei naasmist midagi? 1203 01:04:09,040 --> 01:04:11,610 >> PROFESSOR: OK, nii et me on vist number üks 1204 01:04:11,610 --> 01:04:14,990 on see, et vist number kaks on lihtsalt läheb välja printida 10. 1205 01:04:14,990 --> 01:04:17,623 Kas kellelgi on mingeid muid oletusi? 1206 01:04:17,623 --> 01:04:19,654 OKEI. 1207 01:04:19,654 --> 01:04:21,070 Nii Läbigem seda, eks? 1208 01:04:21,070 --> 01:04:23,903 Kui sa saad tükk kood, ei ole lihtsalt vaadata ja olla nagu, 1209 01:04:23,903 --> 01:04:25,060 ah, et on nii palju asju! 1210 01:04:25,060 --> 01:04:26,460 Ma olen nii segaduses! 1211 01:04:26,460 --> 01:04:28,220 Like, rahune maha. 1212 01:04:28,220 --> 01:04:31,602 Lihtsalt tean, et sa võiksid lihtsalt vaadata läbi koodi rida-realt. 1213 01:04:31,602 --> 01:04:32,310 See on kõik see. 1214 01:04:32,310 --> 01:04:33,840 See on nagu raamatu lugemine. 1215 01:04:33,840 --> 01:04:38,000 >> Nii iga funktsiooni, me alati alustada peamine. 1216 01:04:38,000 --> 01:04:40,860 Nii et me läheme alustada int main void, 1217 01:04:40,860 --> 01:04:43,010 isegi programmi juba alavääristama, eks? 1218 01:04:43,010 --> 01:04:45,070 Alusta peamistes tühine. 1219 01:04:45,070 --> 01:04:48,030 Int x võrdub 10. 1220 01:04:48,030 --> 01:04:50,400 >> Nii et ma lähen tühjendada. 1221 01:04:50,400 --> 01:04:55,179 1222 01:04:55,179 --> 01:04:58,470 Ma juhtida mälu just nii poisid võivad sellist näha, mis toimub. 1223 01:04:58,470 --> 01:05:02,190 >> Pea meeles, siin on meil stack? 1224 01:05:02,190 --> 01:05:05,810 Siin on meil hunnik kusagil siin. 1225 01:05:05,810 --> 01:05:07,470 Stack kasvab üles, eks? 1226 01:05:07,470 --> 01:05:10,150 Ja jooksul korstnat, sa pead vooluvõrgust toimib ka 1227 01:05:10,150 --> 01:05:12,230 kõik vooluvõrgust kohalikud muutujad. 1228 01:05:12,230 --> 01:05:14,310 >> Nii et siin, int x võrdub 10. 1229 01:05:14,310 --> 01:05:17,670 Meie peamine ülesanne me oleme luues muutuja nimega x. 1230 01:05:17,670 --> 01:05:20,590 Me seade, mis võrdub 10. 1231 01:05:20,590 --> 01:05:24,200 Siin on sul mõned x, ja sa oled seade, mis on võrdne 10, paremale, 1232 01:05:24,200 --> 01:05:25,400 jooksul peamine. 1233 01:05:25,400 --> 01:05:27,430 Igaüks hea? 1234 01:05:27,430 --> 01:05:28,070 >> Funktsioon. 1235 01:05:28,070 --> 01:05:30,330 Nüüd, meie peamiste funktsiooni, me kutsudes 1236 01:05:30,330 --> 01:05:31,810 funktsiooni oleme kirjutatud eespool. 1237 01:05:31,810 --> 01:05:34,550 Nii et me nüüd sisestage teine ​​funktsioon. 1238 01:05:34,550 --> 01:05:40,120 Me läheme luua uus muutuja int x võrdub 100. 1239 01:05:40,120 --> 01:05:42,410 Mis toimub siin pakis? 1240 01:05:42,410 --> 01:05:46,980 Mis juhtub, kui helistate funktsiooni, mis loob uusi muutujaid? 1241 01:05:46,980 --> 01:05:50,038 Mis juhtub siin pakis? 1242 01:05:50,038 --> 01:05:52,134 >> Sihtrühm: [kuuldamatu] vaiad peal? 1243 01:05:52,134 --> 01:05:52,800 PROFESSOR: Jah. 1244 01:05:52,800 --> 01:05:54,050 Nii see tegelikult loob koopia. 1245 01:05:54,050 --> 01:05:56,560 1246 01:05:56,560 --> 01:05:57,740 Ja see omamoodi vaiad peal. 1247 01:05:57,740 --> 01:06:00,700 Mõtle stack-- virna raamatuid, virna midagi. 1248 01:06:00,700 --> 01:06:06,520 Kuhjad peal, esimene aasta välja, kesta sisse, esimesena välja. 1249 01:06:06,520 --> 01:06:08,471 >> Nii see läheb luua x siin. 1250 01:06:08,471 --> 01:06:12,080 1251 01:06:12,080 --> 01:06:14,450 >> See läheb on kõik funcs muutujaid. 1252 01:06:14,450 --> 01:06:14,950 Hea. 1253 01:06:14,950 --> 01:06:20,980 Nüüd on meil kaks erinevat x on, et esindavad kaks väga erinevat asja. 1254 01:06:20,980 --> 01:06:24,470 Siis lähed printida välja täisarv x. 1255 01:06:24,470 --> 01:06:26,430 Nii saab printida 100, eks? 1256 01:06:26,430 --> 01:06:29,389 Sest siin on see 100. 1257 01:06:29,389 --> 01:06:31,680 Nii et esimene asi, et see läheb välja trükkida. 1258 01:06:31,680 --> 01:06:35,710 Kuna see funktsioon tagastab midagi, nüüd selle funktsiooni, et rida peamine 1259 01:06:35,710 --> 01:06:37,070 tehakse. 1260 01:06:37,070 --> 01:06:39,160 Igaüks hea minuga nii palju? 1261 01:06:39,160 --> 01:06:43,034 >> Nii et me nüüd läbi kahe välja kolm rida meie põhiülesanne. 1262 01:06:43,034 --> 01:06:44,450 Nüüd me ei kavatse kolmandal real. 1263 01:06:44,450 --> 01:06:46,350 Me läheme printf. 1264 01:06:46,350 --> 01:06:48,222 Mis see on x, mis peamine? 1265 01:06:48,222 --> 01:06:49,263 Mida see esindab? 1266 01:06:49,263 --> 01:06:52,720 1267 01:06:52,720 --> 01:06:54,280 >> Mis väärtus on x nüüd? 1268 01:06:54,280 --> 01:06:55,220 >> Sihtrühm: 100. 1269 01:06:55,220 --> 01:06:56,799 >> PROFESSOR: See on 100? 1270 01:06:56,799 --> 01:06:57,590 Sihtrühm: Ikka 10. 1271 01:06:57,590 --> 01:06:58,878 PROFESSOR: Ikka 10. 1272 01:06:58,878 --> 01:07:00,870 Jah. 1273 01:07:00,870 --> 01:07:06,810 Sest mäletan jooksul Meie funkts, x võrdub 100. 1274 01:07:06,810 --> 01:07:09,690 Aga kui me naasta meie peamine ülesanne, 1275 01:07:09,690 --> 01:07:12,440 muutuja on salvestatud teise kohta meie stack. 1276 01:07:12,440 --> 01:07:16,250 >> Nüüd peame minema tagasi Peamised korstnat, toiteplokk kohalikud muutujad. 1277 01:07:16,250 --> 01:07:18,460 Ja siin x on võrdne 10. 1278 01:07:18,460 --> 01:07:20,300 Ja nii me läheme välja printida 10. 1279 01:07:20,300 --> 01:07:22,530 >> Nii ta oli täiesti õigus. 1280 01:07:22,530 --> 01:07:25,053 Me läheme on väljund 100 ja 10. 1281 01:07:25,053 --> 01:07:25,553 Jah? 1282 01:07:25,553 --> 01:07:28,700 Sihtrühm: Kui malloc, on see hunnik või virna, mis on [kuuldamatu]? 1283 01:07:28,700 --> 01:07:31,950 PROFESSOR: Kui malloc, te võtate mälu hunnik 1284 01:07:31,950 --> 01:07:32,830 ja selle eraldamine. 1285 01:07:32,830 --> 01:07:34,950 Nii et sa ei pea jama kõik see. 1286 01:07:34,950 --> 01:07:38,100 Nii et ma arvan, et suurem Buffee Siin on midagi, mida nimetatakse ulatuse. 1287 01:07:38,100 --> 01:07:39,650 >> Neile teist, kes olid läbivaatamise istungil eile õhtul, 1288 01:07:39,650 --> 01:07:41,080 me rääkisime põgusalt seda. 1289 01:07:41,080 --> 01:07:45,380 Ulatus määrab, kuidas ja kui teie muutujad olemas. 1290 01:07:45,380 --> 01:07:48,050 Või millises raamid teha oma muutujad olemas. 1291 01:07:48,050 --> 01:07:51,690 >> Päris palju rusikareegel üldiselt on oma variables-- kui loote neid 1292 01:07:51,690 --> 01:07:56,660 sees lokkis braces-- need on olemas ainult sees need looksulg. 1293 01:07:56,660 --> 01:08:00,312 >> Nii näiteks meie funktsioonina funkts, näete neid kahte traksid. 1294 01:08:00,312 --> 01:08:02,020 Kui loote midagi sees on, 1295 01:08:02,020 --> 01:08:06,500 võimalused on kõik, mida sa teed on luua pinu ja hoidmine, et seal. 1296 01:08:06,500 --> 01:08:07,430 Sama asi on peamine. 1297 01:08:07,430 --> 01:08:09,950 See on lihtsalt salvestatud sees peamine. 1298 01:08:09,950 --> 01:08:13,560 >> Ka sa tahad olla väga, väga ettevaatlik siin. 1299 01:08:13,560 --> 01:08:18,310 Kuna ulatus ka laenab ise erinevaid näiteid. 1300 01:08:18,310 --> 01:08:25,950 Nii näiteks võtta loop, et int i võrdub 0. 1301 01:08:25,950 --> 01:08:28,460 Ma alla, ma ei tea, 10. 1302 01:08:28,460 --> 01:08:32,111 Ma pluss pluss. 1303 01:08:32,111 --> 01:08:34,560 Ja sul koodi sees on, eks? 1304 01:08:34,560 --> 01:08:38,830 >> Kuhu see muutuja, i, tegelikult ainult olemas? 1305 01:08:38,830 --> 01:08:40,510 Ainult sees oma silmus. 1306 01:08:40,510 --> 01:08:43,640 Nii et ma võin kihla vedada, et paljud teist poisid on ilmselt tekkinud see viga 1307 01:08:43,640 --> 01:08:45,930 sa teed programme oma psets. 1308 01:08:45,930 --> 01:08:49,990 Kui paljud kutid on püüdnud kasutada i väljaspool silmus ja oli viga? 1309 01:08:49,990 --> 01:08:53,310 Nagu unreferenced täisarvud või midagi sellist? 1310 01:08:53,310 --> 01:08:56,069 >> Põhjus, miks see juhtub on, sest siin oled 1311 01:08:56,069 --> 01:08:59,109 luua midagi, et ainult eksisteerib teie jaoks silmus. 1312 01:08:59,109 --> 01:09:01,972 Ja kui sa püüad seda kasutada, ma ei tegelikult olemas väljaspool seda. 1313 01:09:01,972 --> 01:09:04,930 Nii et põhimõtteliselt arvuti öeldes, ma ei tea, mida sa räägid. 1314 01:09:04,930 --> 01:09:08,689 Tean vaid, et ma olin siin, aga nüüd enam mitte. 1315 01:09:08,689 --> 01:09:12,580 >> Nii et kui ma oleksin luua silmus sees, eks? 1316 01:09:12,580 --> 01:09:19,080 Ja ma lähen luua uus, nagu int j, ja on seda teha mida iganes. 1317 01:09:19,080 --> 01:09:23,689 Ja sul on kood sees et loop, j olemas ainult siin. 1318 01:09:23,689 --> 01:09:26,029 Aga et ka eksisteerib i. 1319 01:09:26,029 --> 01:09:29,310 Ja nii j olemas ainult selle jaoks silmus, 1320 01:09:29,310 --> 01:09:33,850 Kuigi ma olemas kogu asi. 1321 01:09:33,850 --> 01:09:34,500 >> Igaüks selge? 1322 01:09:34,500 --> 01:09:37,416 Sama asi tingimisi avaldused Kui soovite luua midagi. 1323 01:09:37,416 --> 01:09:40,390 Sama asi samas silmuseid, kui soovid luua midagi. 1324 01:09:40,390 --> 01:09:42,390 See on midagi olla väga, väga ettevaatlik. 1325 01:09:42,390 --> 01:09:45,681 Nii et see oli tõesti hea probleem selles mõttes, et ta näitas kahte asja. 1326 01:09:45,681 --> 01:09:47,160 See näitas esimene, ulatuse. 1327 01:09:47,160 --> 01:09:49,550 Ja see näitab, Samuti mälu eraldamise. 1328 01:09:49,550 --> 01:09:54,130 Kuna kutid peaksid teadma, et funktsioonid kasvavad ülespoole pakis. 1329 01:09:54,130 --> 01:09:56,710 Ja et kui helistate funktsioone, loote 1330 01:09:56,710 --> 01:09:59,060 sisuliselt uue korstna mälu. 1331 01:09:59,060 --> 01:10:02,100 See on väga erinev Mis võrgutoitega mälu. 1332 01:10:02,100 --> 01:10:03,300 Jah. 1333 01:10:03,300 --> 01:10:03,800 Huh! 1334 01:10:03,800 --> 01:10:05,470 Igaüks OK on? 1335 01:10:05,470 --> 01:10:06,750 See oli segane. 1336 01:10:06,750 --> 01:10:09,380 Väga hea teemadel minna üle, sest sa oled ilmselt 1337 01:10:09,380 --> 01:10:12,255 hakka mõned konksuga asju on viktoriini. 1338 01:10:12,255 --> 01:10:13,350 Jah. 1339 01:10:13,350 --> 01:10:13,850 Cool. 1340 01:10:13,850 --> 01:10:16,014 1341 01:10:16,014 --> 01:10:18,430 Ma panen teile 100 üks line ja siis 10 teisele. 1342 01:10:18,430 --> 01:10:21,468 Jah, väga hea. 1343 01:10:21,468 --> 01:10:26,350 >> OK, nüüd kutid saavad võimalus olla TAS. 1344 01:10:26,350 --> 01:10:30,600 Sa saad vastata kõigile armas kirju, et ma mõnikord. 1345 01:10:30,600 --> 01:10:34,290 >> Nii, Dear Andi, näen ma arvan, midagi on läheb valesti, mu koostaja. 1346 01:10:34,290 --> 01:10:37,910 Ma olen kindel, et minu kood on õige, aga ma saan laevastikuosi süü 1347 01:10:37,910 --> 01:10:39,074 Iga kord, kui ma saan. 1348 01:10:39,074 --> 01:10:39,740 Mis toimub? 1349 01:10:39,740 --> 01:10:42,844 Palun aidake, palju armastust. 1350 01:10:42,844 --> 01:10:45,740 1351 01:10:45,740 --> 01:10:49,410 >> Kui te poisid midagi sellist et kuidas sa vastaksid? 1352 01:10:49,410 --> 01:10:51,860 Need on tegelikult väga levinud küsimusi küsime. 1353 01:10:51,860 --> 01:10:54,090 Kas siis, kui anname teile stsenaarium, anname me 1354 01:10:54,090 --> 01:10:56,350 Sinu parim oletus on, mis toimub. 1355 01:10:56,350 --> 01:11:00,710 Igaüks on torkehaav at, mis toimub? 1356 01:11:00,710 --> 01:11:02,654 Jah? 1357 01:11:02,654 --> 01:11:06,056 >> Sihtrühm: Äkki dereferenced null, midagi kursorit 1358 01:11:06,056 --> 01:11:08,924 osutab millelegi null. 1359 01:11:08,924 --> 01:11:11,590 PROFESSOR: Jah, et tahaks olla näiteks siis, kui see juhtuks. 1360 01:11:11,590 --> 01:11:14,467 Aga mis on suurem pilt mis siin toimub? 1361 01:11:14,467 --> 01:11:17,050 Sihtrühm: Kas see üritad juurdepääsu mälu, et sa ei ole 1362 01:11:17,050 --> 01:11:18,175 peaks olema juurdepääs? 1363 01:11:18,175 --> 01:11:19,200 PROFESSOR: Täpselt. 1364 01:11:19,200 --> 01:11:24,800 Nii mõelda seg süü, off piirid, piiratud ala mälu 1365 01:11:24,800 --> 01:11:27,780 et sa ei tohiks liigutav. 1366 01:11:27,780 --> 01:11:31,670 >> Nii päris palju, kui sa üritad to index-- nagu näiteks 1367 01:11:31,670 --> 01:11:34,110 olete kuulutanud massiivi nullist üheksani. 1368 01:11:34,110 --> 01:11:37,360 Aga sa proovige puudutada, et 10. väärtus, siis ei ole juurdepääsu sellele. 1369 01:11:37,360 --> 01:11:38,694 Sest sa ei kuulutanud. 1370 01:11:38,694 --> 01:11:40,943 Ja nii arvuti läheb vaadata, et oleks nagu, 1371 01:11:40,943 --> 01:11:43,440 uh oh, sa üritad minna väljaspool piire indeks. 1372 01:11:43,440 --> 01:11:45,270 Ma annan teile laevastikuosi süü. 1373 01:11:45,270 --> 01:11:46,590 >> Mõtle, kui segment, eks? 1374 01:11:46,590 --> 01:11:49,665 Ekstra segment, süü on kui üritate rikkuda midagi 1375 01:11:49,665 --> 01:11:50,790 ja sa ei peaks seal olema. 1376 01:11:50,790 --> 01:11:53,660 Segmenteerimine süü on igal sa proovige puudutada asju 1377 01:11:53,660 --> 01:11:54,970 et sa ei tohiks liigutav. 1378 01:11:54,970 --> 01:11:56,815 >> Nii levinumad näited on indeks. 1379 01:11:56,815 --> 01:11:58,940 Muidugi, kui sa üritad puudutada, et oli null, 1380 01:11:58,940 --> 01:12:00,220 et oleks ka töötada nii hästi. 1381 01:12:00,220 --> 01:12:02,300 Kui kursor üritasin puudutada asju, mida ei tohiks puutuda, 1382 01:12:02,300 --> 01:12:03,730 mis võiks toimida nii hästi. 1383 01:12:03,730 --> 01:12:07,120 Enamik tavaliselt saate vaata seda massiivi. 1384 01:12:07,120 --> 01:12:07,740 Igaüks hea? 1385 01:12:07,740 --> 01:12:10,374 >> Sihtrühm: Nii et kui sa tahad juurdepääs 10. koht 1386 01:12:10,374 --> 01:12:12,290 ja seal on vaid piir üheksa või midagi. 1387 01:12:12,290 --> 01:12:13,160 >> PROFESSOR: Jah, täpselt. 1388 01:12:13,160 --> 01:12:13,660 Enam vähem. 1389 01:12:13,660 --> 01:12:15,930 1390 01:12:15,930 --> 01:12:16,430 Cool. 1391 01:12:16,430 --> 01:12:19,070 1392 01:12:19,070 --> 01:12:19,920 >> Lugupeetud Andi. 1393 01:12:19,920 --> 01:12:23,440 Nii meil need imeline asju nimetatakse kehvasti. 1394 01:12:23,440 --> 01:12:25,472 Kui Merge sort-- nagu me Saag on näiteks siis, kui 1395 01:12:25,472 --> 01:12:27,180 Taavet kogu asi class-- miks, 1396 01:12:27,180 --> 01:12:29,760 Kui see on nii palju kiiremini kui mõne kehvasti, 1397 01:12:29,760 --> 01:12:33,310 Miks me vaevu isegi teades mõne kehvasti? 1398 01:12:33,310 --> 01:12:35,100 >> Mis on selle küsimuse küsid sa? 1399 01:12:35,100 --> 01:12:36,659 Mis on kolm word-- 1400 01:12:36,659 --> 01:12:37,950 Sihtrühm: Mis on kompromiss? 1401 01:12:37,950 --> 01:12:38,530 PROFESSOR: Täpselt. 1402 01:12:38,530 --> 01:12:39,946 Seda küsimust küsib. 1403 01:12:39,946 --> 01:12:43,682 Mis on kompromiss Merge omamoodi salmid muu kehvasti? 1404 01:12:43,682 --> 01:12:45,850 >> Sihtrühm: Võtab mälu, eks? 1405 01:12:45,850 --> 01:12:47,720 >> PROFESSOR: Kas selgitada, et natuke rohkem? 1406 01:12:47,720 --> 01:12:49,490 Esiteks olgem selgitada Merge kaupluse. 1407 01:12:49,490 --> 01:12:50,970 Kuidas Merge omamoodi tööta? 1408 01:12:50,970 --> 01:12:55,220 >> Sihtrühm: Nii see toimib jagades kõik pooleks 1409 01:12:55,220 --> 01:13:00,660 ja siis paneb ta kokku ja ümberjaotamise see, et, 1410 01:13:00,660 --> 01:13:02,862 nagu iga kord, kui ühendada komplekti. 1411 01:13:02,862 --> 01:13:03,820 PROFESSOR: Päris palju. 1412 01:13:03,820 --> 01:13:06,861 Nii et ma ei tõmmata see välja, kuid see võta mind viie minutiga seda välja tõmmata. 1413 01:13:06,861 --> 01:13:10,220 Vaata tagasi sektsiooni slaidid kus me katta Merge omamoodi. 1414 01:13:10,220 --> 01:13:10,790 Täpselt. 1415 01:13:10,790 --> 01:13:13,406 >> Nii kuidas Merge omamoodi tööd on see jagab asjad poole, 1416 01:13:13,406 --> 01:13:15,780 ja siis lihtsalt vaatab Esimene väärtusi nende kõigi 1417 01:13:15,780 --> 01:13:17,000 ja sorteerib ainult. 1418 01:13:17,000 --> 01:13:20,364 Pidevalt loob uusi massiivid ja paneb asjad rohkem korras. 1419 01:13:20,364 --> 01:13:23,030 Ja nii kui see on tõesti kiiresti, sest it's-- sa tead, 1420 01:13:23,030 --> 01:13:25,380 binaarne otsing on n log n. 1421 01:13:25,380 --> 01:13:27,880 Loote nii palju erinevad massiivid, et sa oled 1422 01:13:27,880 --> 01:13:29,700 kasutades tohutu mälu. 1423 01:13:29,700 --> 01:13:33,080 Ja nii, kui see on kiirem, kompromiss siin on see, et te kasutate rohkem mälu. 1424 01:13:33,080 --> 01:13:38,490 >> Ja nii, vihje, sorteerib ja otsingud kaeti palju sel aastal 1425 01:13:38,490 --> 01:13:41,610 kui nad on olnud aastaid eelmise. 1426 01:13:41,610 --> 01:13:45,100 Te peaksite nägema, et peegeldasid kohta viktoriin. 1427 01:13:45,100 --> 01:13:49,160 Ma tahaksin kindlasti veeta aega läheb selle üle, mida kõik eri sorti 1428 01:13:49,160 --> 01:13:52,320 on, kuidas Kahendotsingupuu, Kui lineaarne otsing tööd. 1429 01:13:52,320 --> 01:13:54,750 Kuidas olla pseudokoodi koodi neid välja. 1430 01:13:54,750 --> 01:13:55,950 Millised on käimas korda? 1431 01:13:55,950 --> 01:13:59,210 Midagi töötab korda on väga lihtne kopeerida ette koridori märkus lehel 1432 01:13:59,210 --> 01:13:59,710 õige? 1433 01:13:59,710 --> 01:14:01,420 >> See on väga raske, kui sa oled keskel test 1434 01:14:01,420 --> 01:14:02,390 ja sa pead mõtlema, et välja. 1435 01:14:02,390 --> 01:14:03,160 Kopeeri see maha. 1436 01:14:03,160 --> 01:14:05,550 Ma garanteerin teile oled läheb vaja seda teada. 1437 01:14:05,550 --> 01:14:06,860 Millised on kompromisside? 1438 01:14:06,860 --> 01:14:10,064 Halvimal juhul, parimal juhul stsenaariumid neile kõigile, väga tundma. 1439 01:14:10,064 --> 01:14:10,564 Jah? 1440 01:14:10,564 --> 01:14:12,730 >> Sihtrühm: Kas meil on vaja tea, kuidas koodi Merge omamoodi? 1441 01:14:12,730 --> 01:14:15,470 Nagu, me peame mäleta kirjutan? 1442 01:14:15,470 --> 01:14:18,950 >> PROFESSOR: Ma väga kahtlen selles, lihtsalt sest see on nagu üsna keeruline. 1443 01:14:18,950 --> 01:14:22,282 Aga see ei pruugi olla võimatu, kui me paluda teil kasutada pseudokoodi välja. 1444 01:14:22,282 --> 01:14:22,781 Jah. 1445 01:14:22,781 --> 01:14:25,470 1446 01:14:25,470 --> 01:14:29,170 >> Yep, OK, üks rohkem. 1447 01:14:29,170 --> 01:14:31,387 See võib olla tulla sa viimane tükk natuke. 1448 01:14:31,387 --> 01:14:42,101 1449 01:14:42,101 --> 01:14:43,090 Jah? 1450 01:14:43,090 --> 01:14:44,930 Kas kõik kuulsid? 1451 01:14:44,930 --> 01:14:48,360 >> OK, nii et päris palju esimene kõik, mis tüüpi programmi 1452 01:14:48,360 --> 01:14:51,000 Oleks annab teile väljund niimoodi? 1453 01:14:51,000 --> 01:14:54,350 Pea meeles, me palusime teil õppida uut tüüpi silumine näitaja? 1454 01:14:54,350 --> 01:14:57,340 Mis oli nimi on? 1455 01:14:57,340 --> 01:14:59,460 Valgrindi, õigus 1456 01:14:59,460 --> 01:15:02,600 >> See oli programm, kus võid helistada, et võiks 1457 01:15:02,600 --> 01:15:05,940 jälgida kõiki mälu sa oled kasutades oma programmi ja toimub. 1458 01:15:05,940 --> 01:15:11,090 Nii et kui sul on midagi, nagu, kindlasti kaotanud, 40 baiti üks plokk. 1459 01:15:11,090 --> 01:15:14,870 Ilmselt sa ei ole meenutades, et vabastada see. 1460 01:15:14,870 --> 01:15:18,710 Sest kui te kasutate baiti mälu, see tähendab, et olete külastatud et mälu, 1461 01:15:18,710 --> 01:15:20,240 aga sa ei ole olnud võimalik tasuta. 1462 01:15:20,240 --> 01:15:21,948 Nii et sa tahad teha kindel, et sa oled ka 1463 01:15:21,948 --> 01:15:31,420 kasutades free-- see on funktsioon-- vaba kõiki 1464 01:15:31,420 --> 01:15:34,930 mälu ümber jagada malloc. 1465 01:15:34,930 --> 01:15:35,500 >> Cool. 1466 01:15:35,500 --> 01:15:37,140 Nii et see klapp, ma pean selle üles. 1467 01:15:37,140 --> 01:15:41,050 See on kõikjal palju loengud, on palju osa slaidid. 1468 01:15:41,050 --> 01:15:44,254 Sa tõesti tahad teha kindel sa lihtsalt tead kõike seda. 1469 01:15:44,254 --> 01:15:47,170 Kas teie märkus lehel või kui te tahad meeles pidada, julgelt. 1470 01:15:47,170 --> 01:15:48,836 See on tõesti väga, väga tähtis. 1471 01:15:48,836 --> 01:15:53,200 1472 01:15:53,200 --> 01:15:56,890 >> Ka väga hea küsimus, et me võime küsida. 1473 01:15:56,890 --> 01:16:00,320 Miks on valik sort-- pilk Valik sort-- kõik runtimes 1474 01:16:00,320 --> 01:16:02,060 on n ruudus. 1475 01:16:02,060 --> 01:16:06,714 Sõltumata sellest, kuidas nimekirja tegemist sind, miks on Selection sort-- 1476 01:16:06,714 --> 01:16:08,630 Ma annan sulle poisid 30 Teise mõtlema. 1477 01:16:08,630 --> 01:16:10,700 Sest see on selline segane. 1478 01:16:10,700 --> 01:16:12,710 See on seotud mõningase mõistelise mõtte. 1479 01:16:12,710 --> 01:16:16,470 Miks joosta korda olema samad nii kõige suurema ja kõige stsenaariumi? 1480 01:16:16,470 --> 01:16:28,850 1481 01:16:28,850 --> 01:16:30,000 >> Jah? 1482 01:16:30,000 --> 01:16:38,084 >> Sihtrühm: Kuna valik omamoodi iga positsiooni või ruumi see väike massiiv 1483 01:16:38,084 --> 01:16:40,350 asi või mis iganes. 1484 01:16:40,350 --> 01:16:44,430 Nii et isegi parima stsenaariumi korral isegi kui see on täiesti järjestatud, 1485 01:16:44,430 --> 01:16:47,380 see ikkagi olla nagu, OK, üks. 1486 01:16:47,380 --> 01:16:49,000 Minu esimene koht Mul on üks. 1487 01:16:49,000 --> 01:16:50,250 Ja läbida kõik neist. 1488 01:16:50,250 --> 01:16:51,249 OK, üks on väikseim. 1489 01:16:51,249 --> 01:16:53,053 Ja siis läheb jälle ja on nagu, OK, kaks 1490 01:16:53,053 --> 01:16:54,594 on väikseim kõigist asjadest. 1491 01:16:54,594 --> 01:16:56,804 Aga see on veel kontrollida iga ühe. 1492 01:16:56,804 --> 01:16:57,470 PROFESSOR: Jah. 1493 01:16:57,470 --> 01:17:00,490 Nii näiteks ütleme lihtsalt Meil on nimekiri juba sorteeritud, 1494 01:17:00,490 --> 01:17:03,390 massiivi 04:59. 1495 01:17:03,390 --> 01:17:07,100 Nii, et valik erinevaid on, et see läheb läbi, siis kontrolli neid kaks. 1496 01:17:07,100 --> 01:17:08,234 Siis kontrollib neid kaks. 1497 01:17:08,234 --> 01:17:09,650 Ja siis ta kontrollib, ja see kontrollib. 1498 01:17:09,650 --> 01:17:13,285 See hoiab kontrollimise kõiki neid, olenemata sellest, kas või mitte 1499 01:17:13,285 --> 01:17:14,160 see on tegelikult järjestatud. 1500 01:17:14,160 --> 01:17:16,450 Sest see on lihtsalt Muide omamoodi toimib. 1501 01:17:16,450 --> 01:17:19,530 >> Ja nii see küsimus on selline nagu kontseptuaalne küsimus, mida me küsime. 1502 01:17:19,530 --> 01:17:21,430 Kus esimene, teil tean, mida Selection omamoodi 1503 01:17:21,430 --> 01:17:23,304 on õige, et oleks võimalik vastata küsimusele. 1504 01:17:23,304 --> 01:17:26,200 Sa pead aru saama, kontseptuaalselt, mis toimub. 1505 01:17:26,200 --> 01:17:30,760 Ja siis võite taotleda seda ja arvan, OK olgem vaid ette kujutada, halvimal juhul. 1506 01:17:30,760 --> 01:17:32,230 Nad on kõik järjekorras. 1507 01:17:32,230 --> 01:17:33,290 Kuidas mõjutavad seda? 1508 01:17:33,290 --> 01:17:34,650 >> Mis siis, kui see on ülenevas järjestuses? 1509 01:17:34,650 --> 01:17:35,640 Kui see on juba järjestatud? 1510 01:17:35,640 --> 01:17:37,240 Kuidas oleks, mis mõjutavad runtimes? 1511 01:17:37,240 --> 01:17:40,270 Ja siis valik justkui märkad et see ei ole tegelikult oluline. 1512 01:17:40,270 --> 01:17:43,500 Sest sa kontrollida kõiki väärtused, olenemata sellest, mis toimub. 1513 01:17:43,500 --> 01:17:45,810 >> Ja nii häid asju meeles pidada. 1514 01:17:45,810 --> 01:17:50,290 Miks mõned kehvasti erineda teistest ja kuidas kõige halvima stsenaariumi puhul 1515 01:17:50,290 --> 01:17:52,740 mõjutaks neid kõiki. 1516 01:17:52,740 --> 01:17:56,700 >> Ma lähen tõesti tabanud kehvasti sest see toimub viktoriin. 1517 01:17:56,700 --> 01:17:57,199 Jah. 1518 01:17:57,199 --> 01:18:00,820 1519 01:18:00,820 --> 01:18:01,320 OKEI. 1520 01:18:01,320 --> 01:18:05,590 Seal on kuus minutit aega. 1521 01:18:05,590 --> 01:18:09,880 Saan kolme minuti küsimusi. 1522 01:18:09,880 --> 01:18:12,290 Võin ka logelema nagu 20 minutit pärast osa 1523 01:18:12,290 --> 01:18:13,850 Kui soovite esitada küsimusi ka. 1524 01:18:13,850 --> 01:18:16,330 Kas keegi on lihtsalt väga lühike Küsimuste ja kontseptuaalseid küsimusi 1525 01:18:16,330 --> 01:18:17,360 nad ebaselgeks kohe? 1526 01:18:17,360 --> 01:18:17,832 Jah? 1527 01:18:17,832 --> 01:18:19,720 >> Sihtrühm: Kas sa räägid vähe natuke bitwise ettevõtjad? 1528 01:18:19,720 --> 01:18:20,280 >> PROFESSOR: Jah. 1529 01:18:20,280 --> 01:18:22,446 Nii bitwise operaatorid midagi, mida sa ilmselt 1530 01:18:22,446 --> 01:18:24,170 Võib lihtsalt tahavad panna oma lehel. 1531 01:18:24,170 --> 01:18:27,540 Nii quickly-- ma ei taha minna liiga süvitsi 1532 01:18:27,540 --> 01:18:31,164 sest Harvard, oma läbivaatamine istungil käsitletud seda päris hästi. 1533 01:18:31,164 --> 01:18:33,080 Bitikaupa operaator, seal on neist viis, eks? 1534 01:18:33,080 --> 01:18:41,370 >> Seal on see, mis on x või funktsiooni, seal on ampersand, mis on ja. 1535 01:18:41,370 --> 01:18:44,050 Toru, mis on või. 1536 01:18:44,050 --> 01:18:46,790 Ja siis on kaks eri tüüpi nihked. 1537 01:18:46,790 --> 01:18:50,610 >> Kui ma annan sulle kaks väärtusi, kui Ma annan teile, nagu üks ja üks. 1538 01:18:50,610 --> 01:18:52,390 Mis oleks, et hinnata,? 1539 01:18:52,390 --> 01:18:55,490 Kui ma annan teile õige ja tõsi, tõsi? 1540 01:18:55,490 --> 01:18:56,930 Aga õige või vale? 1541 01:18:56,930 --> 01:18:57,830 Ikka tõsi, eks? 1542 01:18:57,830 --> 01:18:59,762 Sest seal on või. 1543 01:18:59,762 --> 01:19:01,220 Me tõenäoliselt teile numbrid. 1544 01:19:01,220 --> 01:19:03,780 Seega pidage meeles, üks võrdub tõsi, null võrdub vale. 1545 01:19:03,780 --> 01:19:07,407 Ja me võiksime teile neid asju ja palun ütle meile, mis juhtub. 1546 01:19:07,407 --> 01:19:10,240 Harvard katab selle esimese 10 minutit oma uuringus istungil 1547 01:19:10,240 --> 01:19:11,230 tõesti, tõesti hästi. 1548 01:19:11,230 --> 01:19:14,260 Nii kutid tahavad teha Vaadake kindlasti tagasi, et. 1549 01:19:14,260 --> 01:19:16,387 >> Sihtrühm: Kas pisa5 saab olema viktoriini? 1550 01:19:16,387 --> 01:19:16,970 PROFESSOR: Ei 1551 01:19:16,970 --> 01:19:18,240 Ärge isegi vaadata pisa5 kohe. 1552 01:19:18,240 --> 01:19:18,810 See on raske. 1553 01:19:18,810 --> 01:19:22,830 Lihtsalt ei vaevu isegi vaadates pisa5. 1554 01:19:22,830 --> 01:19:25,665 >> Kuna mõned vihjed ja ettepanekuid, ma 1555 01:19:25,665 --> 01:19:28,320 soovitan teil alustada pisa5 niipea, kui test on läbi. 1556 01:19:28,320 --> 01:19:30,319 See on kõige raskem nädalal, kuid siis poisid 1557 01:19:30,319 --> 01:19:34,590 kandub see mäed raudteeveeremi roheline ja kutsikad 1558 01:19:34,590 --> 01:19:36,115 ja see on hea. 1559 01:19:36,115 --> 01:19:39,810 >> See klass saab olulise lihtsam pärast viiendat pset. 1560 01:19:39,810 --> 01:19:41,560 Sihtrühm: Lahtiolekuajad on pühapäev, esmaspäev? 1561 01:19:41,560 --> 01:19:44,260 PROFESSOR: Jah, nii tööaega hakkab Sunday, et esmaspäeval pset. 1562 01:19:44,260 --> 01:19:47,009 Lahtiolekuajad täna sisuliselt oleks lihtsalt vaadata viktoriini. 1563 01:19:47,009 --> 01:19:50,350 Kui keegi tahab tulla ja küsida TAS küsimus, me tuleme. 1564 01:19:50,350 --> 01:19:53,220 >> Ma võtan võibolla veel üks küsimus kui kellelgi on küsimus? 1565 01:19:53,220 --> 01:19:53,809 Jah? 1566 01:19:53,809 --> 01:19:55,850 Sihtrühm: Kui sa oled määratlemisel sõlmed, [kuuldamatu] 1567 01:19:55,850 --> 01:20:00,700 kui sa ütled sõlme täht ja siis järgmine, teeb arvuti automaatselt 1568 01:20:00,700 --> 01:20:03,610 aru, et sa oled viidates teise osuti? 1569 01:20:03,610 --> 01:20:04,580 >> PROFESSOR: Ei 1570 01:20:04,580 --> 01:20:06,710 >> Sihtrühm: Sa pead linkida see [kuuldamatu]? 1571 01:20:06,710 --> 01:20:09,270 >> PROFESSOR: Nii põhimõtteliselt struct sõlme on, mäletan, 1572 01:20:09,270 --> 01:20:12,620 see on nagu loote sõlme ja siis on pointer nimetas tuleva. 1573 01:20:12,620 --> 01:20:14,630 Kõik, mida sa teed on võttes struktuuri seal. 1574 01:20:14,630 --> 01:20:16,387 Sa pead määrama et osuti. 1575 01:20:16,387 --> 01:20:18,470 Nii et arvutid ei ole tea, mida ta teeb veel. 1576 01:20:18,470 --> 01:20:20,250 Sul on tegelikult määrata seda, kui loote oma ahelloendid. 1577 01:20:20,250 --> 01:20:22,170 Ja see, mida peamiselt pset 5 toimub. 1578 01:20:22,170 --> 01:20:24,106 Nii ei ole muret ükskõik mis praegu. 1579 01:20:24,106 --> 01:20:26,380 >> Sihtrühm: Nii et me ei pea keskenduda liigselt link nimekirja, just 1580 01:20:26,380 --> 01:20:27,440 üldise kontseptsiooni? 1581 01:20:27,440 --> 01:20:30,980 >> PROFESSOR: Just päris palju korstnad, järjekorrad, link nimekirjad, puud, hash tabeleid. 1582 01:20:30,980 --> 01:20:33,639 Just võimalik teada, millised need on. 1583 01:20:33,639 --> 01:20:35,680 Me ei kavatse küsida soovid midagi konkreetset 1584 01:20:35,680 --> 01:20:39,300 sest me ei ole tõesti teinud pset, et see hõlmab mis tahes selle veel. 1585 01:20:39,300 --> 01:20:45,540 >> Nii kahes viimases minutit enne Ma teid vabaks tappa see viktoriin. 1586 01:20:45,540 --> 01:20:49,370 Päris palju, nagu, mõtle, kui palju kutid on tulnud selles klassis. 1587 01:20:49,370 --> 01:20:52,820 >> Mäletan, kui nädalas kaks Selle klassi, mõned teist 1588 01:20:52,820 --> 01:20:55,720 kulutada kolm tundi kirjutamiseks vett. 1589 01:20:55,720 --> 01:20:57,970 Kui kaua see aega võtab teid poisid kirjutada vesi nüüd? 1590 01:20:57,970 --> 01:20:59,670 30 sekundit, äkki? 1591 01:20:59,670 --> 01:21:01,810 Mõelge, kui palju kutid õppinud. 1592 01:21:01,810 --> 01:21:04,320 CS on tõesti väga raske teema. 1593 01:21:04,320 --> 01:21:06,190 Ei ole mingit kahtlust, et. 1594 01:21:06,190 --> 01:21:09,160 On raske, sellepärast keegi uurib seda. 1595 01:21:09,160 --> 01:21:10,730 See on lihtsalt raske. 1596 01:21:10,730 --> 01:21:11,650 Ja see on täiesti korras. 1597 01:21:11,650 --> 01:21:14,150 >> Ja ma olen tõesti uhke, et kõik teinud seda nii kaugele. 1598 01:21:14,150 --> 01:21:16,380 Psets ei ole lihtne. 1599 01:21:16,380 --> 01:21:17,790 Nad võtavad palju aega. 1600 01:21:17,790 --> 01:21:22,580 Te ma ei küsi kunagi kirjutada Mängu 15. või Vigenere kohta pset. 1601 01:21:22,580 --> 01:21:24,160 Pole vaja lihtsalt närvi sellest. 1602 01:21:24,160 --> 01:21:28,080 Kõik testaamme siin on hinnata Sinu kontseptuaalne teadmisi, samuti 1603 01:21:28,080 --> 01:21:31,524 nagu mõned oma põhioskusi kodeerimine. 1604 01:21:31,524 --> 01:21:33,440 Katse eesmärk on tõesti raske. 1605 01:21:33,440 --> 01:21:36,180 Nagu on see mõeldud teil ei saa 100. 1606 01:21:36,180 --> 01:21:39,880 Samuti on mõeldud teile, et ilmselt ole võimalik lõpetada 75 minutit. 1607 01:21:39,880 --> 01:21:41,995 Ja see on täiesti korras. 1608 01:21:41,995 --> 01:21:42,870 Ma olen üliõpilane ise. 1609 01:21:42,870 --> 01:21:45,960 Ma tean, ma vihkan seda, kui ma kõnnin välja olla viktoriin, shit. 1610 01:21:45,960 --> 01:21:47,044 See oli tõesti raske. 1611 01:21:47,044 --> 01:21:49,460 Tõenäoliselt, mida läheb happen-- ja see on täiesti trahvi, 1612 01:21:49,460 --> 01:21:50,751 Ma ütlen teile poisid kohe. 1613 01:21:50,751 --> 01:21:53,190 Vahend neid asju ei ole kõrge üldse. 1614 01:21:53,190 --> 01:21:55,360 >> Ja neile, kes on saada, nagu, 1615 01:21:55,360 --> 01:21:57,870 kolmekesi oma probleem komplekti, see ei tähenda, et sa oled 1616 01:21:57,870 --> 01:21:59,536 hakka 60 protsenti selles klassis. 1617 01:21:59,536 --> 01:22:01,440 Kui sa saad 60% kohta viktoriin, mis ei ole 1618 01:22:01,440 --> 01:22:03,330 tähenda, et sa lähed saada D selles klassis. 1619 01:22:03,330 --> 01:22:05,740 Näeme, eriti I jaoks Neile, minu osa, 1620 01:22:05,740 --> 01:22:07,406 Ma näen, kui raske kutid töötavad. 1621 01:22:07,406 --> 01:22:09,190 Ja ma saan jälgida seda. 1622 01:22:09,190 --> 01:22:11,420 >> Te trahvi. 1623 01:22:11,420 --> 01:22:14,580 Ei ole institutsionaalne mälu õnne lõpus semester. 1624 01:22:14,580 --> 01:22:16,840 Kuna kõik Harvard lapsed räägivad nende sõbrad, oh, siis saad trahvi. 1625 01:22:16,840 --> 01:22:18,381 Keegi ei ütle teile poisid, et siin. 1626 01:22:18,381 --> 01:22:20,950 Nii et ma pean ütlema teile, poisid, mis siin. 1627 01:22:20,950 --> 01:22:22,280 >> Te trahvi. 1628 01:22:22,280 --> 01:22:24,080 Ma olen nii uhke kõik kutid. 1629 01:22:24,080 --> 01:22:25,680 Test on raske. 1630 01:22:25,680 --> 01:22:28,140 Õppida, ja hiljem lihtsalt see ära visata. 1631 01:22:28,140 --> 01:22:31,280 Ole valmis midagi uut õppida. 1632 01:22:31,280 --> 01:22:33,990 Ja süüa kommi. 1633 01:22:33,990 --> 01:22:35,940 Me oleme on palju kommi. 1634 01:22:35,940 --> 01:22:37,760 >> Saa hea une. 1635 01:22:37,760 --> 01:22:40,420 Ärge magage, sest et oleksin väga halb. 1636 01:22:40,420 --> 01:22:41,490 CS on palju loogikat. 1637 01:22:41,490 --> 01:22:44,960 Kui te ei saa magada, sa ei saa toimida, ja aju ei saa toimida. 1638 01:22:44,960 --> 01:22:48,780 Ja ma tulen siia järgmise 20 minutit, kui keegi tahab logelema. 1639 01:22:48,780 --> 01:22:51,150 Te ei kavatse tappa. 1640 01:22:51,150 --> 01:22:53,000 Edu. 1641 01:22:53,000 --> 01:22:55,663