1 00:00:00,000 --> 00:00:05,530 2 00:00:05,530 --> 00:00:09,790 >> Profesor: Tak agenda pre tento týždeň, nie je tak moc vecí. 3 00:00:09,790 --> 00:00:12,801 Ale dúfajme, že veľmi, veľmi užitočné a relevantné pre vás tento týždeň. 4 00:00:12,801 --> 00:00:15,550 Ale my sa chystáte stráviť možno 15, 20 minút len ​​rýchlo hovorí 5 00:00:15,550 --> 00:00:17,370 o zozname odkazov. 6 00:00:17,370 --> 00:00:19,694 Zoznamy odkaz sa chystáte vzťahovať na kvíz. 7 00:00:19,694 --> 00:00:22,610 Takže možno, že by bolo veľmi užitočné sa dozvedieť niečo o tom, čo to je. 8 00:00:22,610 --> 00:00:25,210 >> Chystáme sa minúť obrovské Väčšina dnešných sekcie 9 00:00:25,210 --> 00:00:27,640 bude cez kvíz nulovými problémy praxe. 10 00:00:27,640 --> 00:00:30,970 A potom budeme šetriť snáď 20, 30 minút na konci pre všetky pretrvávajúce otázky 11 00:00:30,970 --> 00:00:32,850 niekto má. 12 00:00:32,850 --> 00:00:34,610 >> A potom, posledný päť minút, idem 13 00:00:34,610 --> 00:00:36,467 dať napumpovať reč pre kvíz. 14 00:00:36,467 --> 00:00:38,050 Vy všetci chceme byť za to tu. 15 00:00:38,050 --> 00:00:39,591 Vzhľadom k tomu, že to bude ten správny čas. 16 00:00:39,591 --> 00:00:42,650 17 00:00:42,650 --> 00:00:49,230 >> Dobre, takže niektoré materiál na zozname odkazov. 18 00:00:49,230 --> 00:00:52,620 Ako oni sú typicky štruktúrované je Máte, čo sa nazýva uzol, že jo? 19 00:00:52,620 --> 00:00:54,870 Máte tieto veci zvanej uzly, ktoré sú structs. 20 00:00:54,870 --> 00:00:57,360 Ja pôjdem nad tým, ako vytvoriť uzol na ďalšiu snímku. 21 00:00:57,360 --> 00:01:00,680 Ale v podstate všetci napojení Zoznamy je sú dáta, ktoré 22 00:01:00,680 --> 00:01:03,340 bolo navlečené dohromady pomocou ukazovateľov. 23 00:01:03,340 --> 00:01:09,110 >> A tak výhodu máme použitie prepojeného zoznamu cez, 24 00:01:09,110 --> 00:01:11,280 možno, ako pole, je skutočnosť, že v matici 25 00:01:11,280 --> 00:01:15,000 budete potrebovať jeden súvislý blok pamäte všetko na jednom mieste, jeden 26 00:01:15,000 --> 00:01:16,870 po sebe, aby bolo možné, aby toto. 27 00:01:16,870 --> 00:01:20,200 Vzhľadom k tomu, Google zozname, môžete majú náhodné malé kúsky pamäti 28 00:01:20,200 --> 00:01:23,020 po celom vašom počítači navlečené dohromady ukazovateľov. 29 00:01:23,020 --> 00:01:26,270 >> A týmto spôsobom prístup k informáciám 30 00:01:26,270 --> 00:01:28,610 že prichádza jeden po iné, po druhej 31 00:01:28,610 --> 00:01:32,720 bez toho, aby bolo len obrovský kus pamäte v počítači niekde. 32 00:01:32,720 --> 00:01:35,910 A tak to je jeden z hlavných Dôvody, prečo používame zoznam odkazov. 33 00:01:35,910 --> 00:01:40,300 >> Po druhé, je to veľmi jednoduché dynamicky zmeniť veľkosť zoznamu odkazov, pretože v poli, 34 00:01:40,300 --> 00:01:44,720 pri deklarovať pole, máte určitú nastavenú hodnotu. 35 00:01:44,720 --> 00:01:47,340 Povedzme, že som chcel vytvoriť Pole 10 celých čísel. 36 00:01:47,340 --> 00:01:49,970 Aj vytvoriť rad 10 celé čísla, a to je všetko. 37 00:01:49,970 --> 00:01:50,580 Je to 10. 38 00:01:50,580 --> 00:01:52,038 Ja neviem, čo robiť po tom. 39 00:01:52,038 --> 00:01:53,680 Keby som chcel, aby sa stalo 11, môžete to urobiť. 40 00:01:53,680 --> 00:01:55,710 Ak chcem, aby sa stalo 9, môžete to urobiť. 41 00:01:55,710 --> 00:01:59,910 >> Vzhľadom k tomu, v zozname odkazov, môžete pridať a odstrániť a vložiť kamkoľvek budete chcieť. 42 00:01:59,910 --> 00:02:04,940 Môžete dynamicky meniť veľkosť štruktúru tu, vaše dátové štruktúry. 43 00:02:04,940 --> 00:02:08,370 A to nám dáva veľa viac pridané flexibility 44 00:02:08,370 --> 00:02:11,320 že my nie typicky majú s poli. 45 00:02:11,320 --> 00:02:15,210 >> Každý, kto nevedia, základné štruktúra, ako je zoznam odkaz 46 00:02:15,210 --> 00:02:17,930 alebo prečo musíme použiť jeden cez pole? 47 00:02:17,930 --> 00:02:20,330 Jo, pôjdeme cez detailne ako sa vlastne vytvoriť. 48 00:02:20,330 --> 00:02:24,121 Ale to je len druh všeobecný zmysel práve teraz. 49 00:02:24,121 --> 00:02:24,620 Super. 50 00:02:24,620 --> 00:02:28,770 A tak polia sú navlečené spolu z týchto krásnych maličkostí 51 00:02:28,770 --> 00:02:29,960 zvanej uzly. 52 00:02:29,960 --> 00:02:32,210 Všetky uzol je je druh Struct. 53 00:02:32,210 --> 00:02:36,090 Pamätajte si, že struct je, ak ste chceli vytvoriť určitý typ premennej 54 00:02:36,090 --> 00:02:39,850 v C, že už nie je existujú, vy, ako programátor, 55 00:02:39,850 --> 00:02:42,030 môže skutočne vytvoriť, že sami. 56 00:02:42,030 --> 00:02:46,540 >> A tak sa tento typ dát Štruktúra sa nazýva uzol, 57 00:02:46,540 --> 00:02:50,770 bolo skutočne vytvorený nás, že neexistuje v rámci C, na jeho vlastné. 58 00:02:50,770 --> 00:02:53,150 A spôsob, akým vás vytvoriť z nich je máte 59 00:02:53,150 --> 00:02:57,170 hlavička typedef struct, ktorý hovorí kompilátora Som 60 00:02:57,170 --> 00:02:59,640 o vytvorení Struct. 61 00:02:59,640 --> 00:03:00,830 >> Ideme pomenujte ju "uzol". 62 00:03:00,830 --> 00:03:03,350 A vnútri ideme deklarovať premennú v, 63 00:03:03,350 --> 00:03:05,060 ktorý sa chystá uložiť hodnotu. 64 00:03:05,060 --> 00:03:09,320 A potom sme tiež bude sa ukazovateľ s názvom "next" 65 00:03:09,320 --> 00:03:12,090 , Ktorý odkazuje na budúci uzol v zozname odkazov. 66 00:03:12,090 --> 00:03:14,730 A potom skončíte, že off jednoduchým opakovaním uzol znovu tak, 67 00:03:14,730 --> 00:03:17,490 kompilátor vie, OK to je koniec môjho struct. 68 00:03:17,490 --> 00:03:22,540 >> A tak týmto spôsobom, sme trochu vytváranie roztomilé pole 69 00:03:22,540 --> 00:03:25,450 Takéto veci s hodnoty a s ukazovateľom. 70 00:03:25,450 --> 00:03:27,757 A vy ich môžete prepojiť všetky spoločne s týmito ukazovateľmi. 71 00:03:27,757 --> 00:03:30,090 Tak, aby mohli byť všetky druhy navlečené dohromady v reťazci. 72 00:03:30,090 --> 00:03:32,920 73 00:03:32,920 --> 00:03:34,162 >> Super. 74 00:03:34,162 --> 00:03:35,453 Môžete počuť, že o niečo lepší? 75 00:03:35,453 --> 00:03:36,140 >> Divákov: Jo. 76 00:03:36,140 --> 00:03:38,540 >> Profesor: Dobre. 77 00:03:38,540 --> 00:03:44,280 Takže spôsob, ktorý, ako je vy vidieť, typický zoznam odkaz je štruktúrovaný 78 00:03:44,280 --> 00:03:45,500 ich budete mať hlavu. 79 00:03:45,500 --> 00:03:49,460 Máte hodnotu hlavy, ktorá nie je nasmerovaný iným ukazovateľom. 80 00:03:49,460 --> 00:03:53,177 Ale bude to poukázať na, alebo referencie, iný uzol. 81 00:03:53,177 --> 00:03:56,510 Uzol po bude odkazovať uzol po tom, a tak ďalej a tak ďalej 82 00:03:56,510 --> 00:03:59,170 kým sa nakoniec hit koniec vášho zoznamu odkazov. 83 00:03:59,170 --> 00:04:00,980 A tie jednoducho nebude mať ukazovateľ tam. 84 00:04:00,980 --> 00:04:04,659 >> A tak, ako myslím, na reťazi, či dokonca ak niekto z vás chlapci vyrobených, ja neviem, 85 00:04:04,659 --> 00:04:06,450 ako s ovocnými Loops keď si bola malá. 86 00:04:06,450 --> 00:04:08,590 Tie by string ich dohromady a nosiť okolo krku. 87 00:04:08,590 --> 00:04:09,840 Myslíš, že je to presne to isté. 88 00:04:09,840 --> 00:04:12,964 Máte tieto malé veci, ktoré môže reťazec seba, že bod na jeden 89 00:04:12,964 --> 00:04:15,291 po tom, aby jeden po to, a tak ďalej a tak ďalej 90 00:04:15,291 --> 00:04:17,040 až budete mať reťaz dátové štruktúry 91 00:04:17,040 --> 00:04:21,190 že môžete použiť však budete chcieť. 92 00:04:21,190 --> 00:04:27,370 >> Takže tak, že toto by sme typicky vložiť alebo vymazať 93 00:04:27,370 --> 00:04:30,020 akýkoľvek uzol z odkazu Zoznam je veľmi odlišná 94 00:04:30,020 --> 00:04:31,970 podľa toho, kde je tento uzol. 95 00:04:31,970 --> 00:04:34,880 Tak, napríklad, pretože ukazovatele sú vždy 96 00:04:34,880 --> 00:04:38,645 ukazuje na určitú hodnotu, pri odstránení alebo vložení uzla, 97 00:04:38,645 --> 00:04:41,770 chcete, aby sa ubezpečil, že ukazovateľ všetko ukazuje na správne veci. 98 00:04:41,770 --> 00:04:46,200 >> Takže ak by ste chceli potenciálne vložiť nový uzol s hodnotou jedného 99 00:04:46,200 --> 00:04:48,379 vnútri zoradení odkaz zoznam, všetci vieme, tu 100 00:04:48,379 --> 00:04:51,170 Z obrázku, čo sa deje na ísť medzi hlavou a dvaja, že jo? 101 00:04:51,170 --> 00:04:52,620 Pretože jeden sedí práve tam. 102 00:04:52,620 --> 00:04:59,060 Ale spôsob, akým budeme robiť, že je tým, že najprv dereferencing ukazovateľ 103 00:04:59,060 --> 00:05:02,160 od hlavy a posielanie, že k jednému. 104 00:05:02,160 --> 00:05:05,040 >> Ale my prišli do problému tu. 105 00:05:05,040 --> 00:05:08,280 Môže niekto vidieť, čo je problém ak je sme boli na prvej dereferencia 106 00:05:08,280 --> 00:05:10,090 ukazovateľ od hlavy k jednému? 107 00:05:10,090 --> 00:05:14,202 Aký problém môžeme naraziť keď sa snažíme pridať to do prednej časti našej ponuku? 108 00:05:14,202 --> 00:05:15,409 >> Divákov: [Nepočuteľné] 109 00:05:15,409 --> 00:05:16,200 Profesor: Presne tak. 110 00:05:16,200 --> 00:05:20,000 Takže tu máme ukazovateľ, ktorý bol akonáhle smerujúce od hlavy až dva. 111 00:05:20,000 --> 00:05:23,120 Ale ak ste sa zbavili, že ukazovateľ, čo si len upozorniť na jeden, 112 00:05:23,120 --> 00:05:26,500 teraz máme tušenie kam ísť nájsť dva. 113 00:05:26,500 --> 00:05:29,850 Vzhľadom k tomu, ako som už povedal, že ste dostal obrovský kus pamäte v počítači. 114 00:05:29,850 --> 00:05:31,860 Všetky tieto uzly by mohli náhodne premiešané 115 00:05:31,860 --> 00:05:33,350 v akomkoľvek mieste v počítači. 116 00:05:33,350 --> 00:05:36,140 A vy neviete, ako ísť o zistenie, že. 117 00:05:36,140 --> 00:05:40,420 >> A tak je potrebné mať ukazovatele smerujúce ku všetkým uzlom na konci. 118 00:05:40,420 --> 00:05:42,420 Alebo ak ste náhodou dereferencia jedného 119 00:05:42,420 --> 00:05:44,485 bez prvej prideľovanie hodnota najprv, že ste 120 00:05:44,485 --> 00:05:47,410 len tak stratiť všetko potom. 121 00:05:47,410 --> 00:05:49,720 >> Takže to, čo budeme urobiť, je, by ste najprv 122 00:05:49,720 --> 00:05:53,270 Chcete vytvoriť ukazovateľ na uzol, ktorý chcete vložiť. 123 00:05:53,270 --> 00:05:55,270 Bode, kde ste chcete vložiť ju do, 124 00:05:55,270 --> 00:05:59,410 a potom potom vám by mohol smerovať hlavu späť do jedného. 125 00:05:59,410 --> 00:06:02,800 >> Znamená to, že zmysel pre všetky tu? 126 00:06:02,800 --> 00:06:03,346 Skvelé. 127 00:06:03,346 --> 00:06:04,720 Ber to ako, rovnako ako reťaz. 128 00:06:04,720 --> 00:06:07,420 Ak pridáte reťazec, je to celkom intuitívne 129 00:06:07,420 --> 00:06:10,742 ako by ste ísť o vloženie to. 130 00:06:10,742 --> 00:06:15,274 >> OK, tak to je v skutočnosti oveľa kratšie, než som si myslel, že to bude, 131 00:06:15,274 --> 00:06:16,690 päť minút spiel na odkaz zoznamoch. 132 00:06:16,690 --> 00:06:19,960 Len tak si chlapci majú Základnou myšlienkou, čo to je. 133 00:06:19,960 --> 00:06:23,580 >> Tu máme program pre Quiz nula. 134 00:06:23,580 --> 00:06:24,895 Nedovoľte, aby to zastrašiť. 135 00:06:24,895 --> 00:06:26,270 Viem, že je to veľa informácií. 136 00:06:26,270 --> 00:06:27,580 Vyzerá to veľmi desivé. 137 00:06:27,580 --> 00:06:33,130 Je to tiež veľa, ja myslím, CSC druh termínov. 138 00:06:33,130 --> 00:06:37,440 Veci ako hexadecimálne reťazce, ukazovátka, dynamická alokácia pamäte 139 00:06:37,440 --> 00:06:40,120 sú veľmi desivé znejúce termíny. 140 00:06:40,120 --> 00:06:42,700 >> Ale budeme rozbiť dole, urobiť nejaké problémy praxe 141 00:06:42,700 --> 00:06:44,980 takže vy všetci sú pripravené pre tento test. 142 00:06:44,980 --> 00:06:47,104 Koľko z vás má Už začala študovať? 143 00:06:47,104 --> 00:06:50,040 144 00:06:50,040 --> 00:06:53,670 >> OK, vy pravdepodobne budete chcieť na začiatok Začíname 145 00:06:53,670 --> 00:06:56,480 na to, že preto, že test je zajtra. 146 00:06:56,480 --> 00:06:58,739 Alebo vo štvrtok pre niektoré z vás. 147 00:06:58,739 --> 00:07:01,030 Jo, takže budeme ísť nad niektorými problémami praxe. 148 00:07:01,030 --> 00:07:04,600 Ak vy všetci chcú, aby sa out list papiera, ceruzku. 149 00:07:04,600 --> 00:07:07,310 Budeme len stráviť Drvivá väčšina dnešných sekcie 150 00:07:07,310 --> 00:07:11,590 bude cez niektoré to tak chlapci majú predstavu o tom, čo možno očakávať na kvíz. 151 00:07:11,590 --> 00:07:14,957 152 00:07:14,957 --> 00:07:16,890 >> OK. 153 00:07:16,890 --> 00:07:19,730 Pár logistické Detaily rovnako, pre každého 154 00:07:19,730 --> 00:07:25,120 ktorý nebol k tomuto odkazu tam, ak idete do cs50.yale.edu, na prednej strane 155 00:07:25,120 --> 00:07:28,566 Táto stránka je tu odkaz ktorý hovorí, že "o Quiz Zero." 156 00:07:28,566 --> 00:07:29,440 Link sa dostanete tam. 157 00:07:29,440 --> 00:07:31,065 Ak ste nečítali, prečítajte si to. 158 00:07:31,065 --> 00:07:34,470 Vzhľadom k tomu, to vám povie naozaj dôležité informácie o kvízu. 159 00:07:34,470 --> 00:07:37,410 >> Chystám sa vytiahnuť to z že len preto, fyzicky, 160 00:07:37,410 --> 00:07:40,200 ak vy neviete, kde ísť, budeme mať problémy. 161 00:07:40,200 --> 00:07:44,220 A tak, ak vaše posledný v podmienkach s N, choďte na Právnickej fakulte hľadisko. 162 00:07:44,220 --> 00:07:47,500 A ak sa vaše posledné začína P od A do Z, choďte na Davies Auditorium. 163 00:07:47,500 --> 00:07:50,240 A to sa vzťahuje len na ľudia v sekcii stredu. 164 00:07:50,240 --> 00:07:53,420 >> Ak užívate kvíz na Štvrtok, idete do SSS 114 165 00:07:53,420 --> 00:07:55,078 kde sa vaše prednáška je obvykle. 166 00:07:55,078 --> 00:07:55,953 Divákov: [Nepočuteľné] 167 00:07:55,953 --> 00:07:59,316 168 00:07:59,316 --> 00:08:01,940 Profesor: O do Z, budete ísť do Davies hľadisko. 169 00:08:01,940 --> 00:08:03,273 Chystám sa zmeniť, nie? 170 00:08:03,273 --> 00:08:05,670 171 00:08:05,670 --> 00:08:09,698 >> Oh, jo, proste nepodarí automaticky. 172 00:08:09,698 --> 00:08:11,753 >> Ach jo, to ste vy Christa. 173 00:08:11,753 --> 00:08:15,190 174 00:08:15,190 --> 00:08:16,030 Jo, moja zlá. 175 00:08:16,030 --> 00:08:17,610 Jo, O A do Z, budete ísť do Davies Auditorio. 176 00:08:17,610 --> 00:08:19,140 Chystám sa opraviť, keď som nahrať. 177 00:08:19,140 --> 00:08:20,320 Jo. 178 00:08:20,320 --> 00:08:22,160 >> A potom tiež niečo dôležité na myseľ 179 00:08:22,160 --> 00:08:25,290 je, že Streda, ak ste oficiálne zapísal v sekcii Streda, 180 00:08:25,290 --> 00:08:26,832 musíte vziať kvíz v stredu. 181 00:08:26,832 --> 00:08:29,706 A ak ste sa zapísal do štvrtka, musíte vziať kvíz štvrtok. 182 00:08:29,706 --> 00:08:31,000 A je to počas vyučovacej doby. 183 00:08:31,000 --> 00:08:35,970 Tam, kde si myslím, že je to ako na 1:00 02:15 v stredu a od 02:30 do 03:45 184 00:08:35,970 --> 00:08:37,220 vo štvrtok. 185 00:08:37,220 --> 00:08:41,710 >> Ak máte za nezlučiteľné konflikty, Ospravedlnenia dekana sú jediná vec, 186 00:08:41,710 --> 00:08:43,030 bohužiaľ, môžeme vziať. 187 00:08:43,030 --> 00:08:45,560 Pretože sme mali Drvivá väčšina žiadostí 188 00:08:45,560 --> 00:08:47,970 prejsť od stredy do štvrtka. 189 00:08:47,970 --> 00:08:51,265 Čo nemôžeme ctiť, pokiaľ máme požiadavku na dekana. 190 00:08:51,265 --> 00:08:52,650 >> OK. 191 00:08:52,650 --> 00:08:57,000 Takže než začneme na Pár problémy praxe, 192 00:08:57,000 --> 00:09:00,540 Ja som jednoducho ísť cez Andy užitočné tipy na dosiahnutie úspechu. 193 00:09:00,540 --> 00:09:04,140 Vy, keď budete študovať, naozaj chcete praktizovať písať kód ručne. 194 00:09:04,140 --> 00:09:07,050 Prvýkrát, čo som kedy vzal SK kvíz, som nemal 195 00:09:07,050 --> 00:09:09,960 Prax písanie kódu ručne pred a to bolo extrémne 196 00:09:09,960 --> 00:09:11,890 šokujúce, ako to bolo ťažké. 197 00:09:11,890 --> 00:09:16,125 >> Kedy vy nedostanú do zvyk písať si všetko, 198 00:09:16,125 --> 00:09:20,260 ide veľmi je prirodzene schopný mať autocompleted 199 00:09:20,260 --> 00:09:22,015 držiaky a bodkočiarkami tam. 200 00:09:22,015 --> 00:09:23,890 Keď napíšete to rúk, niekedy je to 201 00:09:23,890 --> 00:09:27,100 veľmi, veľmi ľahké zabudnúť na bodkočiarku, alebo zabudnete zavrieť držiak, 202 00:09:27,100 --> 00:09:30,970 alebo zabudnete zavrieť dvojbodku, alebo niečo také. 203 00:09:30,970 --> 00:09:34,322 >> Takže pri písaní kódu ručne, to je veľmi odlišný pocit. 204 00:09:34,322 --> 00:09:37,280 Takže vy chlapi, keď pracujete cez niektoré z problémov praxe, 205 00:09:37,280 --> 00:09:38,904 bolo by dobré, aby dnes naozaj cvičiť. 206 00:09:38,904 --> 00:09:41,770 Alebo zajtra, myslím, ak ste brať kvíz na štvrtok. 207 00:09:41,770 --> 00:09:45,280 >> Po druhé, máme posledný, rovnako ako, osemročný to stojí praxe 208 00:09:45,280 --> 00:09:47,070 kvízy online. 209 00:09:47,070 --> 00:09:50,759 Tohtoročný kvíz bude pravdepodobne veľmi, veľmi podobné pre všetky z nich. 210 00:09:50,759 --> 00:09:51,800 Všetci sú veľmi podobné. 211 00:09:51,800 --> 00:09:54,220 Tak nejako dostať do štýl typu otázok 212 00:09:54,220 --> 00:09:57,250 že sa pýtame, typ funkcie, ktoré budeme napísať ju, 213 00:09:57,250 --> 00:09:58,580 a tak ďalej, a tak ďalej. 214 00:09:58,580 --> 00:10:01,980 >> Tak sa v praxi kvízy, zvlášť v časovej tiesni. 215 00:10:01,980 --> 00:10:05,390 75 minút urobiť kvíz je nie je veľa množstvo času. 216 00:10:05,390 --> 00:10:07,254 Je to veľmi, veľmi dlho. 217 00:10:07,254 --> 00:10:09,670 A tak vy naozaj chcete aby sa ubezpečil, že vy ste 218 00:10:09,670 --> 00:10:11,990 vo zvyku písania kód ručne rýchlo. 219 00:10:11,990 --> 00:10:15,070 Vzhľadom k tomu, vy nechcete, aby sa ako prvý čas pozrieť kvíz z tejto dĺžky 220 00:10:15,070 --> 00:10:16,560 byť na kvíz. 221 00:10:16,560 --> 00:10:20,540 Vy naozaj chcete, aby sa ubezpečil, že cvičíte vopred. 222 00:10:20,540 --> 00:10:24,550 >> Po štvrté, chcete preskúmavať prednáška a sekcie šmýkačky. 223 00:10:24,550 --> 00:10:25,980 Nemusíte pamätať veci. 224 00:10:25,980 --> 00:10:30,430 V skutočnosti, každý je povolené jedným biely papier poznámok, 225 00:10:30,430 --> 00:10:31,090 predné a zadné. 226 00:10:31,090 --> 00:10:32,920 Vy môžete písať a písať. 227 00:10:32,920 --> 00:10:37,070 Ak zistíte sami museli zapamätať niečo, položil ju na tomto liste. 228 00:10:37,070 --> 00:10:40,810 >> Ja vám zaručiť, nechcete, aby sa zasekol v polovici tohto kvízu 229 00:10:40,810 --> 00:10:43,890 bytia ako, ach jo, čo je to runtime tohto druhu proti tomuto druhu. 230 00:10:43,890 --> 00:10:46,490 Stačí uviesť, že dole a skopírujte ho priamo z poznámky listu. 231 00:10:46,490 --> 00:10:50,420 Potom môžete vlastne len použiť vaše mozog premýšľať o problémoch, 232 00:10:50,420 --> 00:10:52,190 skôr než pripomenúť fakty. 233 00:10:52,190 --> 00:10:55,250 A tak sa skutočne využiť akýchkoľvek špecializovaných detailov 234 00:10:55,250 --> 00:11:00,140 že si myslíte, že je potrebné pamätať, PLOP ju na recenzie liste. 235 00:11:00,140 --> 00:11:02,680 >> OK, akékoľvek otázky logisticky pokiaľ ide o kvíz 236 00:11:02,680 --> 00:11:05,510 Než začneme niektoré Problémy kvíz praxi? 237 00:11:05,510 --> 00:11:06,416 Jo? 238 00:11:06,416 --> 00:11:10,040 >> Divákov: Nemal som šancu sa pozrieť na teste [nepočuteľných] 239 00:11:10,040 --> 00:11:11,757 ale to bude Aplikácia väčšinou, 240 00:11:11,757 --> 00:11:14,090 Alebo je tam tiež bude, ako, vedomostné otázky? 241 00:11:14,090 --> 00:11:14,940 >> Profesor: Je to veľa. 242 00:11:14,940 --> 00:11:16,731 Tak, tak, že som by opísal kvíz 243 00:11:16,731 --> 00:11:18,810 je-- som dal dohromady niektoré problémy praxe 244 00:11:18,810 --> 00:11:20,960 že som vytiahol zo všetkých kvízov. 245 00:11:20,960 --> 00:11:25,210 Ale uvidíte, že tam sú dve hlavné typy otázok budeme vás požiadať, aby ste. 246 00:11:25,210 --> 00:11:28,750 >> Jedným z nich je veľmi nízka hladina detail vecí. 247 00:11:28,750 --> 00:11:31,720 Dáme vám malý kus kódu a hovoria, že je chyba tu? 248 00:11:31,720 --> 00:11:33,110 Čo by sa tlačiť tu? 249 00:11:33,110 --> 00:11:35,980 Čo bude tento kód produkovať, a tak ďalej. 250 00:11:35,980 --> 00:11:38,710 Takže podrobnosti veľmi nízkej úrovni informácie. 251 00:11:38,710 --> 00:11:42,700 >> A na druhej strane, budeme mať veľmi Otázky na vedomostiach založenej na vysokej úrovni. 252 00:11:42,700 --> 00:11:45,190 Môžete mi vysvetliť, čo sa Rozdiel medzi binárne vyhľadávanie 253 00:11:45,190 --> 00:11:46,148 a lineárne vyhľadávanie? 254 00:11:46,148 --> 00:11:48,500 Prečo by chceme použite jednu nad druhou? 255 00:11:48,500 --> 00:11:49,960 Možno, že to, čo je GDB? 256 00:11:49,960 --> 00:11:51,560 Prečo chceme použiť GDB? 257 00:11:51,560 --> 00:11:54,590 Vyšší level, zásadnejšie pochopenie otázky. 258 00:11:54,590 --> 00:11:58,240 Tak uvidíte zmes dvaja z nich na kvíz. 259 00:11:58,240 --> 00:12:01,462 >> Čokoľvek iné než my zamieriť rovno do toho? 260 00:12:01,462 --> 00:12:02,879 OK. 261 00:12:02,879 --> 00:12:03,670 Divákov: Ešte jeden. 262 00:12:03,670 --> 00:12:04,030 Profesor: Oh, ešte jeden. 263 00:12:04,030 --> 00:12:04,340 Prepáčte. 264 00:12:04,340 --> 00:12:05,631 >> Publikum: Jo, je to v poriadku. 265 00:12:05,631 --> 00:12:10,140 Takže hovoríte, že 75 minút je príliš krátka, ako to je nepravdepodobné, 266 00:12:10,140 --> 00:12:11,640 že skončí? 267 00:12:11,640 --> 00:12:13,571 Alebo, ako, 75 minút je presne toľko, koľko času 268 00:12:13,571 --> 00:12:15,700 ako by sme potrebovali, keby sme boli náležite pripravený? 269 00:12:15,700 --> 00:12:17,450 Profesor: OK, takže kvíz je náročné. 270 00:12:17,450 --> 00:12:19,550 Je to určite náročné. 271 00:12:19,550 --> 00:12:21,092 Ocitnete sa málo času. 272 00:12:21,092 --> 00:12:24,341 Vy ste asi bude hit, ako je 10, 15 minút ísť, a je rád, hovno. 273 00:12:24,341 --> 00:12:25,520 Som toľko zostáva. 274 00:12:25,520 --> 00:12:26,520 A to je úplne v pohode. 275 00:12:26,520 --> 00:12:28,740 Každý, kto to bude cítiť rovnako. 276 00:12:28,740 --> 00:12:31,074 >> Stačí byť veľmi dobre vedomý koľko máte času. 277 00:12:31,074 --> 00:12:33,490 A tak to je dôvod, prečo som povedať, chlapci robiť prax kvízy. 278 00:12:33,490 --> 00:12:36,672 Vzhľadom k tomu, je to naozaj dáva veľký zmysel toho, čo kvíz bude podobne. 279 00:12:36,672 --> 00:12:39,130 Takže ak sa ocitnete bytí schopný dokončil praxi 280 00:12:39,130 --> 00:12:41,671 kvízov v dobrom výške čas, môžete tempo sám dobre, 281 00:12:41,671 --> 00:12:45,695 potom nebudete mať problém v stredu alebo vo štvrtok. 282 00:12:45,695 --> 00:12:46,575 >> Super. 283 00:12:46,575 --> 00:12:49,200 Takže ak všetci wants-- Myslím, väčšina ľudí má listy papiera 284 00:12:49,200 --> 00:12:49,810 out už. 285 00:12:49,810 --> 00:12:52,604 Chystám sa v podstate len vám otázky vzorky, 286 00:12:52,604 --> 00:12:54,520 tí chlapci, podobne, pár minút na to je. 287 00:12:54,520 --> 00:12:59,610 A pôjdeme cez ako trieda aké odpovede na ne sú. 288 00:12:59,610 --> 00:13:02,860 >> Tak to je veľmi typický čoskoro otázka my budeme 289 00:13:02,860 --> 00:13:06,720 spýta, len konverzia Čísla medzi rôznymi základmi. 290 00:13:06,720 --> 00:13:09,070 Binárne, ako vy môžete Pripomeňme, je základ dva. 291 00:13:09,070 --> 00:13:12,470 Desatinnej je základ 10, alebo to, čo sme ako ľudia typicky interpretovať. 292 00:13:12,470 --> 00:13:17,120 Hexadecimálne je základňa 16, čo je nula do deviatich, rovnako ako A až F. 293 00:13:17,120 --> 00:13:19,990 >> Takže tam štyri čísla som dotazom vám chalani previesť tu. 294 00:13:19,990 --> 00:13:23,909 Dám vám páči, tri až štyri minúty premyslieť, ako 295 00:13:23,909 --> 00:13:25,200 mali by sme ísť o riešenie tohto. 296 00:13:25,200 --> 00:13:32,832 297 00:13:32,832 --> 00:13:35,710 >> Divákov: Sme povolené kalkulačky? 298 00:13:35,710 --> 00:13:37,630 >> Profesor: Nebude Potrebujete kalkulačky, jo. 299 00:13:37,630 --> 00:13:42,420 Myslím si, že základné sčítanie, myslím, že je všetci chlapci budú vyzvaní, aby robiť. 300 00:13:42,420 --> 00:14:41,700 301 00:14:41,700 --> 00:14:45,070 >> A rovnako tak som trochu mať zmysel kedy sa všetci vykonáva, pozrite sa, 302 00:14:45,070 --> 00:14:47,429 vlna, ja neviem, úsmev, vyzerať šťastný, keď máte hotovo. 303 00:14:47,429 --> 00:14:47,929 Jo. 304 00:14:47,929 --> 00:17:21,680 305 00:17:21,680 --> 00:17:23,945 Možno, že ešte pár minút. 306 00:17:23,945 --> 00:18:28,080 307 00:18:28,080 --> 00:18:29,600 >> OK, poďme priviesť ju. 308 00:18:29,600 --> 00:18:31,580 Ja úmyselne chystá tí chlapci menej času 309 00:18:31,580 --> 00:18:33,760 než budete pravdepodobne potrebovať robiť niektoré z týchto problémov, 310 00:18:33,760 --> 00:18:37,124 jednoducho preto, že chcem, aby sa uistil, že dostaneme cez veľa problémov. 311 00:18:37,124 --> 00:18:39,290 Takže žiadne starosti, ak ste nemali majú šancu dokončiť. 312 00:18:39,290 --> 00:18:43,770 Celkom v poriadku tak dlho, ako máte predstavu, ako ísť o tom. 313 00:18:43,770 --> 00:18:45,850 Tak poďme ďalej a urobiť prvý. 314 00:18:45,850 --> 00:18:52,690 315 00:18:52,690 --> 00:18:57,870 >> Takže najprv, niekto chce sa mi povedať, v binárnej, čo robiť každý z týchto čísel 316 00:18:57,870 --> 00:19:00,484 predstavujú, pokiaľ ide o ich hodnoty? 317 00:19:00,484 --> 00:19:01,250 Jo? 318 00:19:01,250 --> 00:19:03,349 >> Divákov: Two do sila nulová, dve ku jednej. 319 00:19:03,349 --> 00:19:04,140 Profesor: Presne tak. 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 >> Správne, takže typicky keď sme v základe 10 323 00:19:16,430 --> 00:19:20,580 všetky tieto predstavujú, sú, rovnako ako, 10 k základni nuly, že? 324 00:19:20,580 --> 00:19:21,810 To je vaša niečí miesto. 325 00:19:21,810 --> 00:19:24,520 Všetky vaše miesto 10 je je 10 k výkonu jedného. 326 00:19:24,520 --> 00:19:26,600 Miesto, ktoré je 10 100 k sile dva. 327 00:19:26,600 --> 00:19:29,570 >> Nech základňa ste v deje čo do činenia s presne rovnakú vec, 328 00:19:29,570 --> 00:19:31,480 len s inou báze. 329 00:19:31,480 --> 00:19:34,130 Takže binárne, všetko, čo je, je základ dva. 330 00:19:34,130 --> 00:19:37,110 Budeš previesť všetky číslic do dvoch na čokoľvek napájanie 331 00:19:37,110 --> 00:19:38,190 of číslice. 332 00:19:38,190 --> 00:19:41,450 A tak v tomto zmysle, sme môžu mať jednoduchší spôsob 333 00:19:41,450 --> 00:19:43,800 že budú môcť sčítať, alebo sčítať všetky čísla v poradí 334 00:19:43,800 --> 00:19:46,010 previesť do základu 10. 335 00:19:46,010 --> 00:19:50,362 >> Takže to niekto chcel, aby mi povedať, čo odpoveď na prvú z nich je v základe desať? 336 00:19:50,362 --> 00:19:51,674 >> Publikum: Two, [nepočuteľných] 337 00:19:51,674 --> 00:19:52,340 Profesor: Jo. 338 00:19:52,340 --> 00:19:53,230 Divákov: 42. 339 00:19:53,230 --> 00:19:56,560 Profesor: 42, tam idete. 340 00:19:56,560 --> 00:20:00,660 Takže ako sme dostali túto odpoveď bola o robí dva Prvý, ktorý je dva. 341 00:20:00,660 --> 00:20:02,760 Plus dva tretí, čo je osem. 342 00:20:02,760 --> 00:20:07,590 Plus dva až piaty, ktorý je, čo zostane. 343 00:20:07,590 --> 00:20:09,390 Môžete ich zhrnúť a to je 42. 344 00:20:09,390 --> 00:20:12,000 >> Je niekto zmätený o tom, ako sme sa dostali, že? 345 00:20:12,000 --> 00:20:15,630 Takže základná Navyše, ako Povedal som, mali by ste byť v poriadku. 346 00:20:15,630 --> 00:20:17,410 Ak nie, dobre, môžeme praktizovať, že taky. 347 00:20:17,410 --> 00:20:18,720 Ale to je v poriadku. 348 00:20:18,720 --> 00:20:20,560 Super. 349 00:20:20,560 --> 00:20:25,570 >> Má niekto chcel mi dať odpoveď na druhý rovnako? 350 00:20:25,570 --> 00:20:26,860 >> 50? 351 00:20:26,860 --> 00:20:27,600 Dobre. 352 00:20:27,600 --> 00:20:30,044 Každý, kto nevedia, ako máme, že buď? 353 00:20:30,044 --> 00:20:31,960 Cool, budem mať Odpovede na ďalšiu snímku. 354 00:20:31,960 --> 00:20:34,440 Takže žiadne starosti, ak vás je potrebné ho skopírovali. 355 00:20:34,440 --> 00:20:38,860 >> OK, takže hexadecimálne je trochu zložitejšie. 356 00:20:38,860 --> 00:20:41,840 ale ja vám ukážem chlapci zástupcu na to, ako to urobiť. 357 00:20:41,840 --> 00:20:44,800 Takže hexadecimálne, ako vy pamätajte, že všetko, čo ich bude 16. 358 00:20:44,800 --> 00:20:48,920 A pretože sme ako ľudia robia nie vlastne mať 16 čísel reprezentovať to, 359 00:20:48,920 --> 00:20:56,940 ideme od nuly do deviatich, ktoré naše prvé 10 hodnôt, a potom budeme robiť A až F, 360 00:20:56,940 --> 00:20:58,630 ktoré sú ďalších šesť hodnoty. 361 00:20:58,630 --> 00:21:03,040 >> A tak najjednoduchší spôsob, ako ísť od akýkoľvek binárne číslo na šestnástkové 362 00:21:03,040 --> 00:21:05,350 je rozdeliť ich do polovice. 363 00:21:05,350 --> 00:21:10,042 A tak akýkoľvek binárne číslo dáme budete pravdepodobne mať osem číslic. 364 00:21:10,042 --> 00:21:11,750 Stačí si len zlomiť je až v stredu. 365 00:21:11,750 --> 00:21:17,460 >> Takže prvé one-- jedným one, jedného jeden, jeden, jeden, jeden raz. 366 00:21:17,460 --> 00:21:21,340 Druh si, že to, viete, kresliť lomka alebo čiarka medzi nimi. 367 00:21:21,340 --> 00:21:23,800 A môžete len previesť priamo čokoľvek 368 00:21:23,800 --> 00:21:26,670 to je k prvému počet hexadecimálne, 369 00:21:26,670 --> 00:21:29,880 a, čo je tu druhý z hexadecimálne. 370 00:21:29,880 --> 00:21:37,584 >> Takže pamätajte z bežnej notácie, čo hexadecimálne hodnoty začať? 371 00:21:37,584 --> 00:21:38,460 >> Divákov: Zero. 372 00:21:38,460 --> 00:21:39,270 >> Profesor: 0x. 373 00:21:39,270 --> 00:21:45,210 Takže vieme, že kedykoľvek vás žiadame previesť ľubovoľný počet na šestnástkové 374 00:21:45,210 --> 00:21:48,230 alebo kedykoľvek vidíte akýkoľvek číslo, ktoré začína 0x, 375 00:21:48,230 --> 00:21:50,230 viete, že je to hodnota v šestnástkovej sústave. 376 00:21:50,230 --> 00:21:54,160 >> A potom budete vyzvaní k zistiť, čo tieto dve číslice sú. 377 00:21:54,160 --> 00:21:59,690 A tak, ako si to urobiť, sčítanie hlasov up že polovica a sčítanie hlasov sa, že polovica. 378 00:21:59,690 --> 00:22:02,870 Takže v tomto príklade, to, čo by jedna, jedna, jedna, jedna byť? 379 00:22:02,870 --> 00:22:04,890 Čo hodnota by to malo byť? 380 00:22:04,890 --> 00:22:06,040 To by bolo F, že jo? 381 00:22:06,040 --> 00:22:08,050 To by bolo 15. 382 00:22:08,050 --> 00:22:11,780 >> Takže by to bolo F. One, jeden, jeden, jeden je tu tiež 383 00:22:11,780 --> 00:22:21,270 F. Takže jeden, jeden, jeden, jeden, jeden, jeden, jeden, človek v šestnástkovej sústave, všetko, čo je, je 0xFF. 384 00:22:21,270 --> 00:22:25,350 Pretože táto polovica zastúpená F, hodnota 15, 385 00:22:25,350 --> 00:22:27,331 a to polovica zastúpená F, hodnota 15. 386 00:22:27,331 --> 00:22:29,456 Vzhľadom k tomu, pamätajte, že sme počítanie od nuly do deviatich. 387 00:22:29,456 --> 00:22:35,290 A je ako 10, B je ako 11, F 15. 388 00:22:35,290 --> 00:22:41,690 >> Dáva to zmysel pre každého ako sme sa dostali z binárneho na hexadecimálne? 389 00:22:41,690 --> 00:22:44,595 >> Divákov: A tak, ako sme sa dostali 15 z jedného, ​​jeden, jeden, jeden? 390 00:22:44,595 --> 00:22:46,220 Profesor: Jo, to je binárny, že jo? 391 00:22:46,220 --> 00:22:48,090 Predstavte si, že je to len binárne číslo. 392 00:22:48,090 --> 00:22:50,792 Takže budete musieť do dvoch zeroth, čo je jedna. 393 00:22:50,792 --> 00:22:51,500 Publikum: Oh, OK. 394 00:22:51,500 --> 00:22:51,670 Takže si jednoducho celkom to. 395 00:22:51,670 --> 00:22:52,670 >> Profesor: Jo, a potom proste celkom to von. 396 00:22:52,670 --> 00:22:53,380 To je všetko, čo je. 397 00:22:53,380 --> 00:22:54,890 >> Divákov: OK. 398 00:22:54,890 --> 00:22:55,830 >> Profesor: OK. 399 00:22:55,830 --> 00:23:00,740 >> Divákov: Takže idete z binárnej do desiatkovej na hexadecimálne? 400 00:23:00,740 --> 00:23:04,590 >> Profesor: To je Najjednoduchší spôsob, ako robiť tak, jo. 401 00:23:04,590 --> 00:23:11,390 Nebudeš do desiatkovej sústavy, pretože desiatkovej len má nula až deväť. 402 00:23:11,390 --> 00:23:13,410 Sme tak nejako rozdelenie toto hore na dve časti. 403 00:23:13,410 --> 00:23:15,201 >> Divákov: [Nepočuteľné] použitie desatinné nájsť 404 00:23:15,201 --> 00:23:17,809 čo to zodpovedá až v šestnástkovej sústave. 405 00:23:17,809 --> 00:23:20,100 Profesor: Myslím, že si sčítanie hlasov up s využitím základných matematiky. 406 00:23:20,100 --> 00:23:20,725 Divákov: Jo. 407 00:23:20,725 --> 00:23:22,300 Profesor: Jo, celkom veľa. 408 00:23:22,300 --> 00:23:23,630 Je to trochu mätúce. 409 00:23:23,630 --> 00:23:26,410 Ale viem, že vy môže rozdeliť čokoľvek 410 00:23:26,410 --> 00:23:28,160 táto hodnota je na iba polovice. 411 00:23:28,160 --> 00:23:29,570 Pozrite sa, čo je to v binárnej? 412 00:23:29,570 --> 00:23:30,610 Čo je to číslo? 413 00:23:30,610 --> 00:23:33,270 Je to bude niečo od nuly až F. 414 00:23:33,270 --> 00:23:35,722 >> Tu sa tiež bude niečo od nuly až F. 415 00:23:35,722 --> 00:23:37,722 A potom stačí dať tí dvaja tu. 416 00:23:37,722 --> 00:23:38,263 >> Divákov: OK. 417 00:23:38,263 --> 00:23:38,910 Profesor: Jo. 418 00:23:38,910 --> 00:23:39,410 OK. 419 00:23:39,410 --> 00:23:42,320 Takže vy chcete vyskúšajte ďalší jeden potom? 420 00:23:42,320 --> 00:23:49,601 Nula, jedna, nula jedna, jedným, nula, jedna nula. 421 00:23:49,601 --> 00:23:52,350 Dám vám chlapci ako 30 sekúnd, pretože ste asi nevedeli 422 00:23:52,350 --> 00:23:53,850 trik, ako to urobiť skôr. 423 00:23:53,850 --> 00:24:24,950 424 00:24:24,950 --> 00:24:27,381 >> OK, niekto chcel, aby si to jeden výstrel? 425 00:24:27,381 --> 00:24:28,774 >> 0X5A. 426 00:24:28,774 --> 00:24:29,440 Profesor: 0X5A. 427 00:24:29,440 --> 00:24:30,470 5a. 428 00:24:30,470 --> 00:24:31,340 Dobre. 429 00:24:31,340 --> 00:24:37,050 Tak toto tu by be-- chcete aby nám povedali, ako sa máš, že? 430 00:24:37,050 --> 00:24:38,920 Po prvé, ako ste sa dostal päť? 431 00:24:38,920 --> 00:24:42,030 >> Publikum: Vzhľadom k nule, jedným, nula, jedna je päť. 432 00:24:42,030 --> 00:24:45,170 >> Profesor: Rozumejú prečo nula, jedna, nula, jedna je päť? 433 00:24:45,170 --> 00:24:46,260 Vy ste dostal jeden tu. 434 00:24:46,260 --> 00:24:48,010 Nemáte nič do dvoch až prvý. 435 00:24:48,010 --> 00:24:50,300 V dvoch do druhého, vás mať jeden, ktorý je štyri. 436 00:24:50,300 --> 00:24:52,600 Takže si pridať dva plus ten, máte päť. 437 00:24:52,600 --> 00:24:53,600 Všetci dobre? 438 00:24:53,600 --> 00:24:54,100 OK. 439 00:24:54,100 --> 00:24:56,570 A potom, čo to bolo a prečo? 440 00:24:56,570 --> 00:24:58,350 Aké číslo robí zodpovedá? 441 00:24:58,350 --> 00:24:59,350 >> Divákov: 10. 442 00:24:59,350 --> 00:25:00,976 >> Profesor: A čo to v základni dva? 443 00:25:00,976 --> 00:25:01,850 Divákov: [Nepočuteľné] 444 00:25:01,850 --> 00:25:03,010 Profesor: Presne tak. 445 00:25:03,010 --> 00:25:06,370 Takže to druhá hodnota by tu bolo 0X5A. 446 00:25:06,370 --> 00:25:08,410 >> Všetci dobre na tom, ako previesť? 447 00:25:08,410 --> 00:25:10,770 Je to oveľa jednoduchšie, než si myslíte, že je. 448 00:25:10,770 --> 00:25:13,330 Ja len chcem, aby sa ubezpečil, Viete, užitočné tipy 449 00:25:13,330 --> 00:25:14,950 a triky na to, ako to urobiť. 450 00:25:14,950 --> 00:25:18,432 >> Divákov: Prečo stačí rozdeliť to v stredu také? 451 00:25:18,432 --> 00:25:21,390 Len sa ako, OK, budem len starostlivosť o nich najprv [nepočuteľných]? 452 00:25:21,390 --> 00:25:24,240 >> Profesor: Vzhľadom na to, že je to vlastne spôsob hexadecimálne hodnoty sú zastúpené. 453 00:25:24,240 --> 00:25:26,890 0x, že v skutočnosti znamená, nič iné, než hovorím 454 00:25:26,890 --> 00:25:28,710 že to je šestnástkové číslo. 455 00:25:28,710 --> 00:25:31,580 A to vždy predstavuje Prvé štyri číslice. 456 00:25:31,580 --> 00:25:34,330 A to vždy predstavuje posledné štyri číslice. 457 00:25:34,330 --> 00:25:37,835 A tak tieto dve číslice len zodpovedajú rôznym bitov. 458 00:25:37,835 --> 00:25:39,200 >> Divákov: Takže sa budeme always-- 459 00:25:39,200 --> 00:25:41,830 >> Profesor: Si vždy dostane osem hodnoty bitov. 460 00:25:41,830 --> 00:25:44,580 >> Divákov: Je to rovnako ako vec tu, alebo že vec po všetkom? 461 00:25:44,580 --> 00:25:46,883 Profesor: To je len vec v oblasti počítačov, jo. 462 00:25:46,883 --> 00:25:47,424 Divákov: OK. 463 00:25:47,424 --> 00:25:48,240 Úžasné. 464 00:25:48,240 --> 00:25:51,290 >> Profesor: Tiež, takže v tomto prípade sme prevedené z dvojkovej do desiatkovej, 465 00:25:51,290 --> 00:25:53,290 a od binárne k hexadecimálne. 466 00:25:53,290 --> 00:25:56,610 Vy chcete, aby sa ubezpečil, môžete tiež cvičiť ísť opačným spôsobom. 467 00:25:56,610 --> 00:26:03,370 Takže keď som ti dal 0xFF, mohol by ste čerpať, že v binárnej, že jo? 468 00:26:03,370 --> 00:26:06,820 >> Previesť F do binárne, čo je jedna, jedna, jedna, jedna, 469 00:26:06,820 --> 00:26:09,380 previesť F na binárne, ktorý je jeden, jeden, jedna, jedna. 470 00:26:09,380 --> 00:26:11,310 >> Tak sme sa požiadať vás o to opačne. 471 00:26:11,310 --> 00:26:14,817 Takže desatinné binárne, alebo hexadecimálne na binárne. 472 00:26:14,817 --> 00:26:16,650 Takže chcete, aby sa istý, že viete oboma smermi. 473 00:26:16,650 --> 00:26:19,371 Najskôr vám položiť Kombinácia týchto dvoch. 474 00:26:19,371 --> 00:26:20,660 >> Jo, máte nejakú otázku? 475 00:26:20,660 --> 00:26:22,724 Môžem see-- ste dobrí? 476 00:26:22,724 --> 00:26:23,348 Divákov: Jo. 477 00:26:23,348 --> 00:26:24,560 Profesor: OK. 478 00:26:24,560 --> 00:26:26,101 Som dobrý vymazať to? 479 00:26:26,101 --> 00:26:26,600 Skvelé. 480 00:26:26,600 --> 00:26:33,965 481 00:26:33,965 --> 00:26:40,437 >> Dobre, takže odpovede sú tu, ak niekto je zvedavý neskôr a dostať zmätený. 482 00:26:40,437 --> 00:26:41,844 OK. 483 00:26:41,844 --> 00:26:46,070 >> Divákov: Záleží na tom, či dáme Naši listy v hlavnom meste, alebo malá? 484 00:26:46,070 --> 00:26:50,360 >> Profesor: To robí, pretože v šestnástkovej sústave, podľa konvencie, 485 00:26:50,360 --> 00:26:52,840 všetky postavy sú veľké písmená. 486 00:26:52,840 --> 00:26:54,650 Takže A až F sú Bude veľké písmená. 487 00:26:54,650 --> 00:26:58,660 Ak dáte malými písmenami A, ja neviem, ak by sme nutne označiť to zle. 488 00:26:58,660 --> 00:27:00,679 Ale teoreticky, to nie je technicky 489 00:27:00,679 --> 00:27:01,970 ako sa máš to mať. 490 00:27:01,970 --> 00:27:03,303 Takže všetky by mali byť veľké písmená. 491 00:27:03,303 --> 00:27:05,910 Jo, dobrá otázka. 492 00:27:05,910 --> 00:27:07,780 >> OK. 493 00:27:07,780 --> 00:27:08,790 Druhá otázka. 494 00:27:08,790 --> 00:27:12,750 Zoberme si tento krásny programu tu. 495 00:27:12,750 --> 00:27:15,180 Opýtam sa na otázku, Vrátim sa to. 496 00:27:15,180 --> 00:27:23,170 >> Tak, za prvé, čo je vo vnútri štandardu IO.H, že je v záujme programu? 497 00:27:23,170 --> 00:27:26,640 Po druhé, čo robí void znamenať v rade tri? 498 00:27:26,640 --> 00:27:30,572 A za tretie, čo sa vracia na nulu z hlavné, as línie šesť, všeobecne znamenajú? 499 00:27:30,572 --> 00:27:33,280 Ak vy chcete napísať tým dole, pretože som sa vrátiť späť 500 00:27:33,280 --> 00:27:36,810 do snímky len tak môžete vidieť kód. 501 00:27:36,810 --> 00:27:40,400 To je príklad, ako, možno vyššiu úroveň otázka, kde vás žiadame 502 00:27:40,400 --> 00:27:42,435 čo veci znamenajú v programe. 503 00:27:42,435 --> 00:27:47,290 504 00:27:47,290 --> 00:27:49,215 >> Každý, kto pre mňa dobré, aby vrátiť sa na snímku? 505 00:27:49,215 --> 00:27:53,400 506 00:27:53,400 --> 00:27:54,361 OK v pohode. 507 00:27:54,361 --> 00:27:57,610 Takže ja dám sa vám bude páčiť snáď troch minút sa pozrieť na tomto jednom naozaj rýchlo. 508 00:27:57,610 --> 00:28:41,330 509 00:28:41,330 --> 00:28:44,140 >> OK, takže toto je ako pomerne jednoduché, koncepčne. 510 00:28:44,140 --> 00:28:49,280 Má niekto chcel, aby mi povedal, čo je najprv zvnútra hash, vrátane 511 00:28:49,280 --> 00:28:52,630 naším štandardom IO.H súbor knižnice? 512 00:28:52,630 --> 00:28:55,510 Prečo potrebujeme túto knižnicu súčasťou tohto programu? 513 00:28:55,510 --> 00:28:56,930 To, čo tu budeme potrebovať pre? 514 00:28:56,930 --> 00:28:56,980 >> Jo? 515 00:28:56,980 --> 00:28:58,340 >> Divákov: je, že keď ste dal, že printf? 516 00:28:58,340 --> 00:28:59,131 >> Profesor: Presne tak. 517 00:28:59,131 --> 00:29:01,780 Takže printf, kedykoľvek budete brať vstup od užívateľa 518 00:29:01,780 --> 00:29:04,140 a niečo vytlačiť na obrazovku, ktorá je 519 00:29:04,140 --> 00:29:05,600 štandardný vstup, výstup knižnicu. 520 00:29:05,600 --> 00:29:07,170 Myslite na to, že way-- vstup, výstup. 521 00:29:07,170 --> 00:29:08,430 >> Mám výstup? 522 00:29:08,430 --> 00:29:09,207 Áno. 523 00:29:09,207 --> 00:29:12,040 Takže viem, že som vždy Potrebujem knižnicu Normované i.o. 524 00:29:12,040 --> 00:29:16,400 >> Takže printf je funkcia , Ktorú by sme potrebovali prístup 525 00:29:16,400 --> 00:29:19,370 a hashtag zahŕňajú Štandardné i.o knižnica. 526 00:29:19,370 --> 00:29:20,280 OK. 527 00:29:20,280 --> 00:29:22,660 >> Po druhé, čo void znamenať? 528 00:29:22,660 --> 00:29:26,970 Máme int main (void), čo robí void tu na mysli tú na linke tri? 529 00:29:26,970 --> 00:29:28,080 Jo, v chrbte. 530 00:29:28,080 --> 00:29:29,020 >> Divákov: [Nepočuteľné] 531 00:29:29,020 --> 00:29:29,920 >> Profesor: Presne tak. 532 00:29:29,920 --> 00:29:33,320 Takže pamätajte, že sme sa naučili počnúc naším pset 533 00:29:33,320 --> 00:29:35,360 že môžete skutočne špecifikovať príkazový riadok 534 00:29:35,360 --> 00:29:39,010 Argumenty, že váš program, ktorý vás Hlavnou funkciou, berie ako vy, užívateľ, 535 00:29:39,010 --> 00:29:39,650 hovoria. 536 00:29:39,650 --> 00:29:42,650 Ak máme void, čo znamená, že vás mohol len spustiť program priamo 537 00:29:42,650 --> 00:29:44,680 bez akýchkoľvek argumentov príkazového riadku. 538 00:29:44,680 --> 00:29:46,160 Všetci jasné, že? 539 00:29:46,160 --> 00:29:46,660 OK. 540 00:29:46,660 --> 00:29:52,850 >> A nakoniec prečo sa obťažovať robiť tento návrat nula vec tu? 541 00:29:52,850 --> 00:29:54,740 Prečo máme dokonca int main? 542 00:29:54,740 --> 00:29:57,330 Prečo nemôžeme len tak void main void? 543 00:29:57,330 --> 00:29:59,216 Jo? 544 00:29:59,216 --> 00:30:01,590 Divákov: Len tak, že môžeme uistite sa, že je program 545 00:30:01,590 --> 00:30:04,247 úspešnom ukončení, as na rozdiel od ak bol očíslované. 546 00:30:04,247 --> 00:30:06,580 A my by sme vedieť, že je to iný druh chyby. 547 00:30:06,580 --> 00:30:07,621 >> Profesor: Jo, presne tak. 548 00:30:07,621 --> 00:30:10,670 To je len veľmi konvenčné vec, ktorú robíme, 549 00:30:10,670 --> 00:30:13,840 je to, že práve na konci váš program, len aby sa ubezpečil, 550 00:30:13,840 --> 00:30:15,830 že vaše hlavné funkciu beží správne, 551 00:30:15,830 --> 00:30:17,940 vždy chceme urobiť vrátiť nulu. 552 00:30:17,940 --> 00:30:21,160 Aj keď môžeme byť nutne Nie je vidieť, že tlačený kdekoľvek. 553 00:30:21,160 --> 00:30:25,092 >> Vzhľadom k tomu, ako programátori, viete, ak máte mnoho rôznych riadkov kódu 554 00:30:25,092 --> 00:30:27,050 a vy neviete, kde títo idú zle, 555 00:30:27,050 --> 00:30:30,240 a ak sa chyba stane, že chcete uistite sa, že máte túto chybu. 556 00:30:30,240 --> 00:30:33,240 A tak typicky ak sa niečo zle budeme mať návrat jedného len 557 00:30:33,240 --> 00:30:34,669 aby sa ubezpečil, vieme, že to je. 558 00:30:34,669 --> 00:30:36,460 Takže ak uvidíte návrat nula, ktoré typicky 559 00:30:36,460 --> 00:30:38,293 znamená, že váš program vykonaný úspešne. 560 00:30:38,293 --> 00:30:40,490 561 00:30:40,490 --> 00:30:40,990 Dobrý? 562 00:30:40,990 --> 00:30:45,180 563 00:30:45,180 --> 00:30:45,680 Super. 564 00:30:45,680 --> 00:30:48,710 565 00:30:48,710 --> 00:30:52,680 >> OK, druhý program tu. 566 00:30:52,680 --> 00:30:54,827 Zoberme si, že. 567 00:30:54,827 --> 00:30:56,910 A ak vy vidíte float, môžete chlapci zrejme 568 00:30:56,910 --> 00:31:00,810 mať dobrú predstavu o tom, čo Chystám sa vás opýtať. 569 00:31:00,810 --> 00:31:05,200 >> Takže keď tento program vykoná, ako môžete vidieť, 570 00:31:05,200 --> 00:31:09,330 Som deklarovaní plavák vnútri mojej hlavnú funkciu. 571 00:31:09,330 --> 00:31:13,470 Ja som to pomenovanie "odpovedal," a ja som nastavenie rovnajúcu sa jednému delené 10. 572 00:31:13,470 --> 00:31:17,860 Som vytlačiť na jeden desatinné miesto, ktoré plavák. 573 00:31:17,860 --> 00:31:19,880 A potom som sa vráti na nulu. 574 00:31:19,880 --> 00:31:24,470 >> Takže pri realizácii programu, Spomeňte si na chamtivý teraz, 575 00:31:24,470 --> 00:31:26,550 tento program vytlačí 0.0. 576 00:31:26,550 --> 00:31:29,993 Ako všetci vieme, dúfajme, že my všetci vedieť, jeden delené 10, nie je 0,00, 577 00:31:29,993 --> 00:31:32,350 to je 0,1. 578 00:31:32,350 --> 00:31:37,810 Ale vysvetliť, prečo si myslí, že tento program že 1 delené 10 kópií na 0,1 iné 579 00:31:37,810 --> 00:31:39,504 ako 0,1? 580 00:31:39,504 --> 00:31:42,545 Som, že ste dám možno ako 30. sekúnd len rýchlo premýšľať o tom, že 581 00:31:42,545 --> 00:31:43,878 a ja pôjdem späť do programu. 582 00:31:43,878 --> 00:32:17,800 583 00:32:17,800 --> 00:32:20,290 >> OK. 584 00:32:20,290 --> 00:32:22,205 Každý, kto chce dať mu šancu? 585 00:32:22,205 --> 00:32:24,330 V troch vetách alebo menej, pretože obvykle sme 586 00:32:24,330 --> 00:32:27,650 chystá obmedziť všetky odpovede na troch vetách alebo menej 587 00:32:27,650 --> 00:32:31,130 takže sa nemusíte len chrliť náhodné veci, na pevnom disku kvíz. 588 00:32:31,130 --> 00:32:32,740 >> Jo, mať šancu. 589 00:32:32,740 --> 00:32:36,390 >> Divákov: Takže si myslím, že je to vec zvaná, rovnako ako, [nepočuteľných] 590 00:32:36,390 --> 00:32:42,320 Tak by mohlo byť, napríklad, že by mohlo byť, rovnako ako, 0.09, 591 00:32:42,320 --> 00:32:47,250 že ak tlačíte prvý číslice, bolo by to na 0,0? 592 00:32:47,250 --> 00:32:49,100 >> Profesor: Close, nie tak celkom. 593 00:32:49,100 --> 00:32:49,810 Christabelle? 594 00:32:49,810 --> 00:32:51,770 >> Divákov: Ste jeden a delenie 10, a obaja sú celé čísla. 595 00:32:51,770 --> 00:32:54,610 A tak spôsob, akým to bude ukladať ich ako celé číslo. 596 00:32:54,610 --> 00:32:56,480 A tak sa najbližšie celé číslo bude 0.0. 597 00:32:56,480 --> 00:32:57,471 A tak to je 0,1. 598 00:32:57,471 --> 00:32:58,970 Profesor: Jo, to je naozaj dobrý. 599 00:32:58,970 --> 00:33:00,040 To je správna odpoveď. 600 00:33:00,040 --> 00:33:03,597 Tak to je veľmi mätúce koncept pre mnoho detí. 601 00:33:03,597 --> 00:33:06,680 A ja naozaj chcem, aby sa uistil, že toto je posilnené v hlave každého z nás. 602 00:33:06,680 --> 00:33:10,090 >> Takže to, čo hovoríme plávajúce bod nepresnosť, 603 00:33:10,090 --> 00:33:12,800 kde je dôvod, prečo mnoho z vašich programov v chamtivý 604 00:33:12,800 --> 00:33:17,010 nefungoval spočiatku bolo preto, ste zabudli na obsadenie vašej premennej. 605 00:33:17,010 --> 00:33:19,370 Takže to, čo povedal Christabelle bolo úplne správne. 606 00:33:19,370 --> 00:33:21,990 >> Plávajúce je neodmysliteľne nepresná. 607 00:33:21,990 --> 00:33:26,400 Pretože v počítači, vpravo, my máme konečné množstvo bitov pamäte 608 00:33:26,400 --> 00:33:28,480 môžeme použiť predstavovať čísla. 609 00:33:28,480 --> 00:33:33,480 Tak, napríklad, to CS50 ID je-- Myslím, že je to 64-bitový počítač. 610 00:33:33,480 --> 00:33:37,520 >> Plavák môže byť zastúpený iba o konečné množstvo týchto bitov. 611 00:33:37,520 --> 00:33:42,260 A tak 0,1 s nekonečnou nulami, že je bol 0,1 je, že jo? 612 00:33:42,260 --> 00:33:45,450 Ale nemôžeme vlastne ukladať toto číslo v našom počítači. 613 00:33:45,450 --> 00:33:47,810 My jednoducho nemajú dostatok pamäte, aby tak urobili. 614 00:33:47,810 --> 00:33:52,340 >> A tak najbližšie priblíženie , Čo je uložené v pamäti je v skutočnosti 615 00:33:52,340 --> 00:33:55,390 niečo ako 0,000 niečo, niečo, niečo, niečo. 616 00:33:55,390 --> 00:34:01,240 Čo, akonáhle sa skrátiť to, zaokrúhli nadol na 0.0. 617 00:34:01,240 --> 00:34:05,640 >> A tak tento príklad je iba jedným , Ktorý ukazuje veľa otázok 618 00:34:05,640 --> 00:34:08,469 máme vždy, keď sme snaží nesprávne robiť matematiku 619 00:34:08,469 --> 00:34:11,000 bez osadenia ako iný celé číslo. 620 00:34:11,000 --> 00:34:14,870 Takže proste mať na pozore sa to stáva. 621 00:34:14,870 --> 00:34:18,239 >> Na kvízy, ak dáme vám blok kódu a je to ako, 622 00:34:18,239 --> 00:34:19,510 čo vytlačí na konci? 623 00:34:19,510 --> 00:34:24,096 A či je to nejaký náhodný hodnota, ktorú chlapci by mali vedieť, prečo sa to deje. 624 00:34:24,096 --> 00:34:24,909 Jo? 625 00:34:24,909 --> 00:34:27,926 >> Divákov: Truncate, je zbaviť sa všetko po určitom okamihu? 626 00:34:27,926 --> 00:34:28,513 [Nepočuteľných] 627 00:34:28,513 --> 00:34:30,929 Profesor: Jo, tak vlastne toto je naozaj zlý príklad, 628 00:34:30,929 --> 00:34:37,870 pretože 0.100 čo vlastne by skrátiť až do 0,1. 629 00:34:37,870 --> 00:34:41,389 Ale ak ste mali spustiť to-- vôbec sa mi nepáči pamätať, pretože v minulom roku, ktoré 630 00:34:41,389 --> 00:34:42,830 bežal na inom programe. 631 00:34:42,830 --> 00:34:45,300 Bežali ho v niečo, čo nazýva CS50 Appliance, ktorý 632 00:34:45,300 --> 00:34:46,389 sa líši od ID. 633 00:34:46,389 --> 00:34:48,520 To bolo 32-bitový systém, myslím. 634 00:34:48,520 --> 00:34:50,290 A tak tam boli rôzne čísla. 635 00:34:50,290 --> 00:34:53,330 >> Ale v podstate, len viem, že celý koncept skrátenie 636 00:34:53,330 --> 00:34:54,815 a ako to len kusy veci preč. 637 00:34:54,815 --> 00:34:55,690 A tak, ak si to rounds-- 638 00:34:55,690 --> 00:34:56,300 >> Divákov: Bez zaokrúhlenia. 639 00:34:56,300 --> 00:34:57,370 >> Profesor: Presne tak. 640 00:34:57,370 --> 00:34:57,870 Jo. 641 00:34:57,870 --> 00:35:02,330 642 00:35:02,330 --> 00:35:04,380 Super. 643 00:35:04,380 --> 00:35:05,250 >> Ahoj, v chrbte. 644 00:35:05,250 --> 00:35:07,634 Práve sme sa nad niektorými kvíz preskúmanie otázky. 645 00:35:07,634 --> 00:35:08,430 >> Dobre. 646 00:35:08,430 --> 00:35:10,150 Takže zvážte iný program tu. 647 00:35:10,150 --> 00:35:12,797 648 00:35:12,797 --> 00:35:15,380 Budem vám chlapci pár minút na čítanie cez to. 649 00:35:15,380 --> 00:35:18,588 To je niečo, čo bolo pre veľmi Nedávno si myslím, že fúkal veľa z vás 650 00:35:18,588 --> 00:35:19,142 myseľ GUYS je. 651 00:35:19,142 --> 00:35:21,100 Ale budeme hovoriť cez to opäť len 652 00:35:21,100 --> 00:35:24,152 aby sa ubezpečil, pochopiť úplne. 653 00:35:24,152 --> 00:35:24,652 OK. 654 00:35:24,652 --> 00:35:41,280 655 00:35:41,280 --> 00:35:41,780 OK. 656 00:35:41,780 --> 00:35:44,342 Každý, kto potrebujú viac času čítať prostredníctvom tohto kódu? 657 00:35:44,342 --> 00:35:45,650 OK. 658 00:35:45,650 --> 00:35:50,630 >> Tak sa mi zdá, že V tomto programe, že som 659 00:35:50,630 --> 00:35:53,460 vytvorenie dvoch reťazcov pomocou getString. 660 00:35:53,460 --> 00:35:55,180 Jeden tzv s a jeden s názvom t. 661 00:35:55,180 --> 00:35:58,680 A v prípade, že sú rovné sa rovná k sebe, 662 00:35:58,680 --> 00:36:00,880 Mala by vypisovať "You zadajte to isté. " 663 00:36:00,880 --> 00:36:04,170 >> Ale elsewise, bolo by to tlačiť, "You napísal rôzne veci, "že jo? 664 00:36:04,170 --> 00:36:05,990 Zdá sa, že veľmi, veľmi jednoduché. 665 00:36:05,990 --> 00:36:08,720 Ale, ale, či som vlastne skúste napísať tento program, 666 00:36:08,720 --> 00:36:12,230 zdá sa, že aj keď som Vstupné presne rovnaké reťazca, 667 00:36:12,230 --> 00:36:15,490 stále tlačí, "You napísaný rôzne veci! " 668 00:36:15,490 --> 00:36:18,020 Má niekto chcel vziať strieľal na dôvod, prečo tento program vždy 669 00:36:18,020 --> 00:36:20,370 odpovedá, že vstupy sú rôzne, a to aj 670 00:36:20,370 --> 00:36:22,090 ak sú tieto slová sú rovnaké? 671 00:36:22,090 --> 00:36:24,870 672 00:36:24,870 --> 00:36:29,170 >> Takže ak by som mal input-- David lásku použiť príklad, ako mama, že jo? 673 00:36:29,170 --> 00:36:37,890 Malé písmená M-O-M pre S, T sa rovná malé písmená M-O-M. 674 00:36:37,890 --> 00:36:40,340 Ak by som bežal to prostredníctvom že kód, prečo by to 675 00:36:40,340 --> 00:36:44,180 vytlačiť "zadaný rôzne veci?" 676 00:36:44,180 --> 00:36:46,336 >> Potrebuje niekto viac čas premýšľať o tom? 677 00:36:46,336 --> 00:36:47,294 OK, myslím, že sme dobrí. 678 00:36:47,294 --> 00:36:48,716 Jo? 679 00:36:48,716 --> 00:36:53,930 >> Publikum: OK, tak to je niečo o kde je uložený v pamäti, že jo? 680 00:36:53,930 --> 00:36:54,890 >> Profesor: Jo. 681 00:36:54,890 --> 00:37:00,400 >> Divákov: Kde to je, ak je to reťazec s je uložený v pamäti spot-- 682 00:37:00,400 --> 00:37:01,689 Som vynaliezania tohle-- je nulová. 683 00:37:01,689 --> 00:37:02,355 Profesor: Iste. 684 00:37:02,355 --> 00:37:05,290 Divákov: A string t je uložený v pamäti na mieste, 685 00:37:05,290 --> 00:37:11,000 ako je, 167, a potom nula sa nerovná 167. 686 00:37:11,000 --> 00:37:12,610 >> Profesor: Presne tak. 687 00:37:12,610 --> 00:37:18,350 OK, tak si pamätajte tento neuveriteľný zjavenie sme vysvetlili vami 688 00:37:18,350 --> 00:37:21,530 minulý týždeň, že Reťazce sa v skutočnosti neexistujú? 689 00:37:21,530 --> 00:37:25,380 Keď sme sa vytvoriť niečo s názvom string sme, v skutočnosti, 690 00:37:25,380 --> 00:37:29,330 vytvoriť niečo, čo nazýva char hviezda. 691 00:37:29,330 --> 00:37:34,470 Čo všetko, čo je, je ukazovateľ na reťazec alebo na pole znakov. 692 00:37:34,470 --> 00:37:39,480 >> A tak v tomto prípade, keď som bolo na vstup M-O-M cesta 693 00:37:39,480 --> 00:37:49,350 že môj počítač by ukladať ich v pamäti spätné lomítko nula, nie? 694 00:37:49,350 --> 00:37:53,180 Tieto štyri znaky, znaky, by boli uložené niekde. 695 00:37:53,180 --> 00:37:59,290 >> A potom tieto štyri znaky, spätné lomítko nula, 696 00:37:59,290 --> 00:38:01,275 sú uložené niekde inde, nie? 697 00:38:01,275 --> 00:38:04,685 Nemám potuchy, kde sa adresy sú, oni sú niekde v mojom počítači. 698 00:38:04,685 --> 00:38:07,080 Ale nemyslím si, presne viem, kde sú. 699 00:38:07,080 --> 00:38:10,170 >> Keď som sa vytvoriť reťazec s, všetko, čo je skutočne 700 00:38:10,170 --> 00:38:15,550 je ukazovateľ na začiatok tohto reťazca. 701 00:38:15,550 --> 00:38:21,130 A keď som sa vytvoriť túto hodnotu t, všetko, čo je ukazovateľ na TU. 702 00:38:21,130 --> 00:38:23,980 A tak keď sa snažíte znamienko rovnosti a kontrolovať 703 00:38:23,980 --> 00:38:27,710 aby zistil, či to je rovná rovná t, počítač 704 00:38:27,710 --> 00:38:31,635 je naozaj len návratu do ste adresu tohto m 705 00:38:31,635 --> 00:38:33,390 a adresa tohto m. 706 00:38:33,390 --> 00:38:36,230 A pretože sú dva samostatné kusy dát 707 00:38:36,230 --> 00:38:38,750 ktoré sú uložené v dvoch rôznych adresy v počítači, 708 00:38:38,750 --> 00:38:41,750 váš počítač sa nikdy uznať ako je rovnaký. 709 00:38:41,750 --> 00:38:43,500 Má niekto chcel dať šancu na to, čo sme 710 00:38:43,500 --> 00:38:46,900 musieť urobiť, keď by sme chceli opraviť to a mať správny spustený program 711 00:38:46,900 --> 00:38:49,360 namiesto toho? 712 00:38:49,360 --> 00:38:52,070 Premýšľajte o tom, že na pár sekúnd. 713 00:38:52,070 --> 00:38:54,929 Čo treba zmeniť, aby Si tento program fungovanie 714 00:38:54,929 --> 00:38:56,220 tak, ako chceme, aby to fungovať? 715 00:38:56,220 --> 00:39:17,260 716 00:39:17,260 --> 00:39:18,918 >> Jo, chcem, aby sa bodnúť sa na to? 717 00:39:18,918 --> 00:39:24,082 >> Divákov: Môžeme skúsiť dereferencia ukazovateľ a nechajte cez pole? 718 00:39:24,082 --> 00:39:25,540 Profesor: To je jeden spôsob, ako to urobiť. 719 00:39:25,540 --> 00:39:27,880 Takže, čo je zase Vaše meno? 720 00:39:27,880 --> 00:39:29,010 Je mi to ľúto, mi pripomínajú. 721 00:39:29,010 --> 00:39:29,589 >> Zee: Zee. 722 00:39:29,589 --> 00:39:32,130 Profesor: Jo, tak čo Zee navrhol by absolútne fungovať. 723 00:39:32,130 --> 00:39:32,629 Je to tak? 724 00:39:32,629 --> 00:39:35,730 Mohli by sme dereferencia ukazovateľ a skutočne ísť a prístup 725 00:39:35,730 --> 00:39:38,460 fyzikálne dáta vnútri odtiaľto. 726 00:39:38,460 --> 00:39:40,300 A my môžeme len porovnať celú obrazovku. 727 00:39:40,300 --> 00:39:43,670 >> Dá sa povedať, OK, ukazovateľ, daj mi, čo je vo vnútri sem. 728 00:39:43,670 --> 00:39:44,960 To by vrátiť m. 729 00:39:44,960 --> 00:39:47,168 A povedal by som, ukazovateľ, daj mi, čo je vo vnútri sem. 730 00:39:47,168 --> 00:39:47,750 Vrátiť m. 731 00:39:47,750 --> 00:39:48,410 Myslíte tie zápas? 732 00:39:48,410 --> 00:39:49,410 Áno. 733 00:39:49,410 --> 00:39:50,340 Potom sme ďalej. 734 00:39:50,340 --> 00:39:54,240 >> Stále preštudovaní celé dva Reťazce celú cestu až do konca 735 00:39:54,240 --> 00:39:56,635 a uvidíme, či to sú rovnaké, ak všetky zistené hodnoty sú rovnaké. 736 00:39:56,635 --> 00:39:59,680 A ak je všetky hodnoty sú rovnaké, potom vieme, že reťazce sú pravdivé. 737 00:39:59,680 --> 00:40:01,600 Určite, to je, ako by sme to urobiť? 738 00:40:01,600 --> 00:40:03,930 >> Má niekto zmätený na niečo z toho? 739 00:40:03,930 --> 00:40:06,970 Celý koncept how reťazcov sú naozaj len ukazovatele, 740 00:40:06,970 --> 00:40:08,440 a ako sa v skutočnosti neexistujú? 741 00:40:08,440 --> 00:40:10,480 A prečo sme si chyby ako spôsob, ako by sme to? 742 00:40:10,480 --> 00:40:15,070 Vzhľadom k tomu, Ja vám zaručiť, chlapci, ukazovatele a pridelenie reťazec a pamäť 743 00:40:15,070 --> 00:40:16,470 sa chystáte prísť. 744 00:40:16,470 --> 00:40:17,410 >> Jo? 745 00:40:17,410 --> 00:40:21,072 >> Divákov: [Nepočuteľné] dereferencia to, stačí dať hviezdu [nepočuteľných] 746 00:40:21,072 --> 00:40:21,780 Profesor: Správne. 747 00:40:21,780 --> 00:40:28,430 Takže derererence ukazovateľ prostriedky ísť na túto adresu ukazovatele 748 00:40:28,430 --> 00:40:30,390 a získať dáta, hodnotu tam. 749 00:40:30,390 --> 00:40:32,700 A spôsob, ako to urobiť, je hviezda ukazovateľ. 750 00:40:32,700 --> 00:40:34,262 Nemýľte si to. 751 00:40:34,262 --> 00:40:35,186 >> Divákov: [Nepočuteľné]. 752 00:40:35,186 --> 00:40:35,852 >> Profesor: Jo. 753 00:40:35,852 --> 00:40:39,750 Divákov: Takže môžete len písať ak hviezda s rovná rovní hviezda t. 754 00:40:39,750 --> 00:40:40,630 >> Profesor: No, no. 755 00:40:40,630 --> 00:40:40,960 Nie. 756 00:40:40,960 --> 00:40:41,640 >> Divákov: To nie je dosť dobrý, nie? 757 00:40:41,640 --> 00:40:43,760 >> Profesor: To nie, pretože si Iba kontrola prvé písmeno. 758 00:40:43,760 --> 00:40:46,010 Vy ste pravdepodobne bude potrebovať nejaký slučke, ktorá sa 759 00:40:46,010 --> 00:40:49,055 prejde každý charakter v oboch reťazcoch. 760 00:40:49,055 --> 00:40:49,837 Jo. 761 00:40:49,837 --> 00:40:52,920 Takže ak by ste chceli len skontrolovať, v prípade, začali sa rovnakú vec, 762 00:40:52,920 --> 00:40:58,220 ak, hviezda, ktorú môžete urobiť s sa rovná hviezdy t. 763 00:40:58,220 --> 00:41:01,300 Potom viete, že aspoň začal s rovnakým znakom. 764 00:41:01,300 --> 00:41:01,952 >> Jo? 765 00:41:01,952 --> 00:41:04,056 >> Divákov: Takže cesta si, že by bolo 766 00:41:04,056 --> 00:41:06,064 ako vložený pre sláčiky alebo ukazovateľ? 767 00:41:06,064 --> 00:41:06,730 Profesor: Jo. 768 00:41:06,730 --> 00:41:08,170 Docela veľa len pre sláčiky. 769 00:41:08,170 --> 00:41:12,430 Pamätajte si, že David je uvedené v triede voľná syntaxe cukor? 770 00:41:12,430 --> 00:41:17,690 A mal to veľmi mätúce vec hviezdy t 771 00:41:17,690 --> 00:41:22,030 plus jedna, kde by integrovať vďaka a presuňte ukazovateľ? 772 00:41:22,030 --> 00:41:29,910 Jednoduchší spôsob, ako robiť to je len t i. 773 00:41:29,910 --> 00:41:31,090 >> Takže je to len pole. 774 00:41:31,090 --> 00:41:34,630 Spôsob, akým by ste mať pre slučka, ktorá bežala od nuly až i, kde 775 00:41:34,630 --> 00:41:36,580 i je po celej dĺžke reťazec, mohli ste práve 776 00:41:36,580 --> 00:41:39,510 napísať, že namiesto toho robia Celý ukazovateľ, referenčné vec. 777 00:41:39,510 --> 00:41:43,510 Takže tieto veci sú presne ekvivalent v počítači. 778 00:41:43,510 --> 00:41:45,905 >> Vy ste asi nebude je potrebné vedieť, že, 779 00:41:45,905 --> 00:41:48,280 ale je to dobré, aby tak nejako majú vzadu svojej mysli. 780 00:41:48,280 --> 00:41:52,630 Len viem, že počítač uznáva rôzne bloky kódu 781 00:41:52,630 --> 00:41:53,890 ako rovnakú vec. 782 00:41:53,890 --> 00:41:57,510 Vzhľadom k tomu, to je len oveľa viac užívateľsky priateľské pre nás predstaviť, ako to je 783 00:41:57,510 --> 00:41:58,150 poľa. 784 00:41:58,150 --> 00:42:00,990 Je to proste jednoduchšie. 785 00:42:00,990 --> 00:42:02,719 >> Divákov: Takže použiť strlen rád, get-- 786 00:42:02,719 --> 00:42:03,385 Profesor: Jo. 787 00:42:03,385 --> 00:42:03,926 Divákov: OK. 788 00:42:03,926 --> 00:42:05,940 Profesor: Dalo by sa používať strlen alebo, ak 789 00:42:05,940 --> 00:42:10,420 nemal strlen môžete len urobiť up kým nenarazíte spätné lomítko nula pre obe strany. 790 00:42:10,420 --> 00:42:11,568 Buď bude fungovať. 791 00:42:11,568 --> 00:42:12,068 Jo. 792 00:42:12,068 --> 00:42:14,871 793 00:42:14,871 --> 00:42:17,996 Divákov: Takže je to na dereferencia každý Jeden znak, keď sme boli vlastne 794 00:42:17,996 --> 00:42:21,044 písania tohto kódu, my mohol len robiť t aj držiaky 795 00:42:21,044 --> 00:42:22,460 Páči sa mi s hviezdou pred ním? 796 00:42:22,460 --> 00:42:27,700 >> Profesor: Jo, rovná sa rovná ov držiak i, a potom aj ďalej 797 00:42:27,700 --> 00:42:29,790 down up, kým nenarazíte na koniec. 798 00:42:29,790 --> 00:42:31,286 Jo, to je to, čo by ste urobili. 799 00:42:31,286 --> 00:42:33,660 A ja skutočne budúci Príkladom, kedy sme vlastne 800 00:42:33,660 --> 00:42:36,740 napísať strlen takže chlapci bude druh zo si hrať sa s ním trochu. 801 00:42:36,740 --> 00:42:43,567 >> Takže je jasné, všetci len na pamäti, struny, ukazovátka, kvalita adresy? 802 00:42:43,567 --> 00:42:46,650 Niektoré pojmy vyššej úrovne, ktoré ste bude pre istotu potrebujú poznať na kvízu 803 00:42:46,650 --> 00:42:48,928 zajtra. 804 00:42:48,928 --> 00:42:49,904 >> Dobre. 805 00:42:49,904 --> 00:42:50,404 Dobre. 806 00:42:50,404 --> 00:42:54,824 807 00:42:54,824 --> 00:42:55,324 Jo. 808 00:42:55,324 --> 00:42:58,770 809 00:42:58,770 --> 00:43:04,180 OK, tak jedna vec, ktorú budeme tiež požiadať vy, ako to robíme každý rok na kvíz, je, 810 00:43:04,180 --> 00:43:08,340 Predpokladám, že ste zabudli (čo zdá sa, že zabudli urobiť ročne) 811 00:43:08,340 --> 00:43:10,810 , V ktorom je súbor hlavičky strlen deklaroval. 812 00:43:10,810 --> 00:43:13,860 A tak musíme prepísať ju sami. 813 00:43:13,860 --> 00:43:16,350 >> Tu je zoznam pokynov že môžeme prezentovať vás 814 00:43:16,350 --> 00:43:20,660 chlapci kde dostanete predpokladať, že S reťazec nebude null. 815 00:43:20,660 --> 00:43:23,830 Môžete predpokladať, že bude s ukončený spätným lomítkom nula. 816 00:43:23,830 --> 00:43:26,670 Takže viete, že je to, čo že to bude končiť. 817 00:43:26,670 --> 00:43:29,500 >> A, napríklad, že sa dĺžka Hello by bolo päť. 818 00:43:29,500 --> 00:43:32,890 Takže môžete predpokladať, že ahoj bude päť, H-E-L-L-O. 819 00:43:32,890 --> 00:43:35,890 Nemusíte sa domnievať, že zadok žiadny účet, pre dĺžku. 820 00:43:35,890 --> 00:43:39,720 821 00:43:39,720 --> 00:43:42,300 >> To posledné, čo tu, nie báť integer overflow. 822 00:43:42,300 --> 00:43:45,270 Pamätá si niekto, čo integer overflow je? 823 00:43:45,270 --> 00:43:48,041 >> Divákov: ide nad rámec Dĺžka [nepočuteľných]. 824 00:43:48,041 --> 00:43:50,740 >> Profesor: Jo, môžete vysvetliť trochu, čo to znamená? 825 00:43:50,740 --> 00:43:55,330 >> Publikum: Takže, myslím, že sa vráti späť k orezávanie príklad skôr. 826 00:43:55,330 --> 00:43:58,380 Ale ak máte len toľko čísel že presahujú počet bitov 827 00:43:58,380 --> 00:44:01,409 že môžete skutočne priradiť že to bude len trochu odrezať. 828 00:44:01,409 --> 00:44:04,242 Profesor: Jo, tak o typický počítač, koľko bitov máme? 829 00:44:04,242 --> 00:44:05,306 Divákov: 32? 830 00:44:05,306 --> 00:44:06,430 Profesor: Jo, 32, vpravo. 831 00:44:06,430 --> 00:44:10,030 A tak to je to, čo, štyri miliardy, dvoch miliárd? 832 00:44:10,030 --> 00:44:13,579 Štyri miliardy až štyri miliardy pozitívne celé čísla, že? 833 00:44:13,579 --> 00:44:15,370 Dve miliardy negatívne, dvoch miliárd pozitívne, 834 00:44:15,370 --> 00:44:16,900 závisí na tom, ako chcete, aby to urobiť. 835 00:44:16,900 --> 00:44:21,470 >> A tak v podstate môžeme mať dosť celé čísla, ktorá môže ísť až 836 00:44:21,470 --> 00:44:25,800 na dva do 31. mínus 1, že jo? 837 00:44:25,800 --> 00:44:27,980 Vzhľadom k tomu, raz sme narazili dva na 32., my nie 838 00:44:27,980 --> 00:44:30,040 mať toľko pamäti v našom počítači. 839 00:44:30,040 --> 00:44:32,310 >> A tak, teoreticky, som by mohla prísť s číslom 840 00:44:32,310 --> 00:44:34,560 ktorý je, rovnako ako, dva až 46 .. 841 00:44:34,560 --> 00:44:38,040 Je to číslo obrovský-ass, ale teoreticky mohol. 842 00:44:38,040 --> 00:44:42,730 A tak pretečeniu celé číslo je, ak sa pokúsite vytvoriť celé číslo, ktoré ide nad rámec 843 00:44:42,730 --> 00:44:44,790 váš počítač je schopný uložiť. 844 00:44:44,790 --> 00:44:46,590 >> A tak si chlapci pre tento príklad nemá 845 00:44:46,590 --> 00:44:51,330 sa starať o nás dáva vám obrie reťazec, ktorý je dvakrát až 32. znakov 846 00:44:51,330 --> 00:44:51,830 dlho. 847 00:44:51,830 --> 00:44:54,010 To by bolo naozaj vážne. 848 00:44:54,010 --> 00:44:59,430 >> Dobre, tak som len tak dať vy základná štruktúra tohto. 849 00:44:59,430 --> 00:45:02,020 Budeš na vytvorenie Funkcia tzv int strlen kde 850 00:45:02,020 --> 00:45:08,436 Úspešné absolvovanie, char hviezda, alebo reťazec, ukazovateľ na reťazec s názvom ov. 851 00:45:08,436 --> 00:45:10,820 >> V poriadku, všetci skopírujte že dole. 852 00:45:10,820 --> 00:45:13,550 853 00:45:13,550 --> 00:45:14,850 Super. 854 00:45:14,850 --> 00:45:17,020 Oops-- iná cesta. 855 00:45:17,020 --> 00:45:21,360 >> Takže toto je niečo ako tvrdšie kus problému, 856 00:45:21,360 --> 00:45:25,320 takže Dám ti chalani možno päť až Šesť minút na druhu náhly nápad 857 00:45:25,320 --> 00:45:27,478 a písať túto funkciu von. 858 00:45:27,478 --> 00:45:29,710 >> Divákov: Nemáme Účet pre [nepočuteľných], 859 00:45:29,710 --> 00:45:30,200 nemusíme používať číslo? 860 00:45:30,200 --> 00:45:31,241 >> Profesor: Nie, to nie. 861 00:45:31,241 --> 00:48:05,847 862 00:48:05,847 --> 00:48:06,930 Dám vám chlapci nápovedu. 863 00:48:06,930 --> 00:48:12,325 Slučka while môže byť veľmi užitočné tu. 864 00:48:12,325 --> 00:48:12,825 Jo. 865 00:48:12,825 --> 00:48:44,995 866 00:48:44,995 --> 00:48:45,495 Tu je 867 00:48:45,495 --> 00:48:45,995 cukrovinky. 868 00:48:45,995 --> 00:48:49,980 869 00:48:49,980 --> 00:48:53,410 Candy bude tiež k dispozícii pre kvíz, myslím. 870 00:48:53,410 --> 00:48:55,315 Takže vy budú všetci sladené zajtra. 871 00:48:55,315 --> 00:49:01,110 872 00:49:01,110 --> 00:49:02,962 Dokážete Já-- máš to. 873 00:49:02,962 --> 00:49:03,718 >> Divákov: OK. 874 00:49:03,718 --> 00:49:04,384 Profesor: Jo. 875 00:49:04,384 --> 00:49:10,550 876 00:49:10,550 --> 00:49:11,870 >> Možno, že 30 viac sekúnd alebo tak. 877 00:49:11,870 --> 00:50:02,220 878 00:50:02,220 --> 00:50:07,340 >> Dobre, ak ste neurobili, žiadne starosti. 879 00:50:07,340 --> 00:50:08,810 Budeme prechádzať spoločne. 880 00:50:08,810 --> 00:50:09,310 OK. 881 00:50:09,310 --> 00:50:13,800 Takže idem len rozvrhnutie základná štruktúra pre túto funkciu tu. 882 00:50:13,800 --> 00:50:17,255 Strlen Int. 883 00:50:17,255 --> 00:50:20,040 884 00:50:20,040 --> 00:50:23,460 Po prvé, niekto chce povedať, mi, čo to znamená int? 885 00:50:23,460 --> 00:50:25,160 Musíme mať v tejto funkcii. 886 00:50:25,160 --> 00:50:26,709 >> Divákov: strlen [Nepočuteľné]. 887 00:50:26,709 --> 00:50:27,500 Profesor: Presne tak. 888 00:50:27,500 --> 00:50:31,140 Takže nech sa stane čokoľvek sem, Musíme sa vrátiť celé číslo. 889 00:50:31,140 --> 00:50:36,367 A ako je uvedené v spec, chceme return-- 890 00:50:36,367 --> 00:50:37,700 Choď do toho chlapci, proste ďalej. 891 00:50:37,700 --> 00:50:40,480 Je to všetko dobré. 892 00:50:40,480 --> 00:50:42,960 Zjedz to všetko, takže nemám to vziať späť, v skutočnosti. 893 00:50:42,960 --> 00:50:46,022 894 00:50:46,022 --> 00:50:48,855 Int jednoducho znamená, že ste bude vracia celé číslo. 895 00:50:48,855 --> 00:50:55,350 896 00:50:55,350 --> 00:50:57,106 >> Čo je to char hviezda s? 897 00:50:57,106 --> 00:50:58,640 Čo to znamená? 898 00:50:58,640 --> 00:51:00,879 >> Publikum: Rovnako ako to, čo sa na vstupe dovnútra. 899 00:51:00,879 --> 00:51:01,670 Profesor: Presne tak. 900 00:51:01,670 --> 00:51:04,142 A čo je takmer to isté ako char hviezda? 901 00:51:04,142 --> 00:51:04,850 Publikum: String? 902 00:51:04,850 --> 00:51:05,641 Profesor: Presne tak. 903 00:51:05,641 --> 00:51:09,080 Takže všetko, čo robíte, je dávať Tento ukazovateľ na reťazec. 904 00:51:09,080 --> 00:51:09,580 OK. 905 00:51:09,580 --> 00:51:12,860 906 00:51:12,860 --> 00:51:13,360 Super. 907 00:51:13,360 --> 00:51:16,650 >> Tiež nezabudnite, že ak by sme zabudnúť aby vám tieto konzoly, 908 00:51:16,650 --> 00:51:18,330 nezabudnite im písať sami. 909 00:51:18,330 --> 00:51:20,720 Vzhľadom k tomu, teoreticky, váš kód nesprávne, ak ste zabudli ne písať. 910 00:51:20,720 --> 00:51:21,803 Len vždy venovať pozornosť. 911 00:51:21,803 --> 00:51:23,750 Rovnako ako, maličkosti že si nevšimnete 912 00:51:23,750 --> 00:51:26,917 keď ste programovania na notebooku, pretože váš laptop to urobí za vás? 913 00:51:26,917 --> 00:51:28,624 Nezabudnite pri píšete ručne. 914 00:51:28,624 --> 00:51:29,170 Jo? 915 00:51:29,170 --> 00:51:30,954 >> Divákov: Ale ako chybné? 916 00:51:30,954 --> 00:51:33,190 Rovnako ako, dostaneme celý problém zle? 917 00:51:33,190 --> 00:51:34,190 >> Profesor: Nie, nie. 918 00:51:34,190 --> 00:51:34,860 Nebojte sa. 919 00:51:34,860 --> 00:51:39,270 Je to vlastne teoreticky možné pre vás dostať plný počet bodov na otázku, 920 00:51:39,270 --> 00:51:41,980 aj keď váš kód bude nikdy nedôjde v reálnom živote. 921 00:51:41,980 --> 00:51:46,052 Navrhujem to neskúsite aby sa to stalo. 922 00:51:46,052 --> 00:51:48,260 Napríklad, keby všetko že tu je v poriadku, 923 00:51:48,260 --> 00:51:51,850 ale zabudnete hrubého čreva alebo konzolu, váš kód nebude v skutočnosti spustiť. 924 00:51:51,850 --> 00:51:53,740 Ale môžeme byť milosrdní. 925 00:51:53,740 --> 00:51:54,394 >> Jo? 926 00:51:54,394 --> 00:51:56,050 >> Divákov: Máte na komentovať na našich rukopis? 927 00:51:56,050 --> 00:51:57,758 >> Profesor: Nie, nie, nie obavy o tom. 928 00:51:57,758 --> 00:51:58,440 Bez komentára. 929 00:51:58,440 --> 00:51:59,400 Štýl by mala byť dobrá. 930 00:51:59,400 --> 00:52:01,470 Rovnako ako, nie smush všetko na jednom riadku. 931 00:52:01,470 --> 00:52:04,580 Nebudeme radi s vami, ak to urobíte. 932 00:52:04,580 --> 00:52:07,250 >> Má niekto chcel daj mi prvý riadok? 933 00:52:07,250 --> 00:52:08,633 Tip, je to veľmi jednoduché. 934 00:52:08,633 --> 00:52:09,320 >> Jo? 935 00:52:09,320 --> 00:52:11,920 >> Publikum: Int, n sa rovná nule. 936 00:52:11,920 --> 00:52:13,734 Stačí nastaviť čítač. 937 00:52:13,734 --> 00:52:15,900 Profesor: Tak my chceme niektoré druh čítača, že jo? 938 00:52:15,900 --> 00:52:19,780 Ja som jednoducho ísť pomenovať ju "počítať" kvôli čitateľnosti. 939 00:52:19,780 --> 00:52:21,265 Čo chceme nastaviť rovný? 940 00:52:21,265 --> 00:52:21,890 >> Divákov: Zero. 941 00:52:21,890 --> 00:52:23,840 Profesor: Jo. 942 00:52:23,840 --> 00:52:24,340 Bodkočiarka. 943 00:52:24,340 --> 00:52:26,250 Je to tiež veľmi podivné kreslenie bodkočiarkami. 944 00:52:26,250 --> 00:52:28,870 Len prax tom, že. 945 00:52:28,870 --> 00:52:31,990 >> Takže chceme najprv čítač typu int. 946 00:52:31,990 --> 00:52:35,360 Pretože chceme spočítať, ako Mnoho znaky alebo písmená 947 00:52:35,360 --> 00:52:36,780 v tomto reťazci, že jo? 948 00:52:36,780 --> 00:52:38,330 Veľmi ľahké prvý krok. 949 00:52:38,330 --> 00:52:42,140 >> OK, možno trochu zložitejšie Teraz, ako sa budeme robiť tak? 950 00:52:42,140 --> 00:52:45,400 Má niekto chcel daj mi riadok kódu 951 00:52:45,400 --> 00:52:48,450 , Ktoré môžu byť schopní pomôcť slučky cez to, čo je to? 952 00:52:48,450 --> 00:52:54,540 953 00:52:54,540 --> 00:52:56,900 >> Jo, statočná duša v chrbte? 954 00:52:56,900 --> 00:53:06,832 >> Publikum: OK, takže aj keď bod Hviezdičky sa jo, hviezda s, 955 00:53:06,832 --> 00:53:09,465 nie je rovný nule, potom niečo urobiť? 956 00:53:09,465 --> 00:53:11,090 Profesor: To je naozaj, naozaj blízko. 957 00:53:11,090 --> 00:53:11,835 Naozaj blízko. 958 00:53:11,835 --> 00:53:13,710 Takže budem riešiť dve veci, s tým. 959 00:53:13,710 --> 00:53:18,240 Po prvé, nie je to presne nula. 960 00:53:18,240 --> 00:53:20,110 Čo je to? 961 00:53:20,110 --> 00:53:22,550 Je to null terminátor, čo je spätné lomítko nula. 962 00:53:22,550 --> 00:53:24,960 Takže sú odlišné hľadiska toho, ako sú uložené. 963 00:53:24,960 --> 00:53:26,270 Takže ty si naozaj blízko. 964 00:53:26,270 --> 00:53:30,330 >> A za druhé, nechceme len posuniete ukazovateľ. 965 00:53:30,330 --> 00:53:32,320 Chceme vlastne prístup k hodnotám, že jo? 966 00:53:32,320 --> 00:53:34,050 A tak, ako to urobíme? 967 00:53:34,050 --> 00:53:34,550 Veľmi ľahké. 968 00:53:34,550 --> 00:53:36,841 Nemyslite si, že o ukazovatele, si nemyslím, že o spomienkach. 969 00:53:36,841 --> 00:53:38,525 Vráťte sa do týždňa dva tohto kurzu. 970 00:53:38,525 --> 00:53:39,555 >> Divákov: [Nepočuteľné]. 971 00:53:39,555 --> 00:53:40,680 Profesor: Ako, pamätáš? 972 00:53:40,680 --> 00:53:41,400 Aké sú struny? 973 00:53:41,400 --> 00:53:42,650 Ako sú uložené v pamäti? 974 00:53:42,650 --> 00:53:43,300 >> Divákov: Sú aktivovaná. 975 00:53:43,300 --> 00:53:43,810 >> Profesor: Sú chované. 976 00:53:43,810 --> 00:53:45,550 Tak ako máme pristupovať každá postava vnútri? 977 00:53:45,550 --> 00:53:46,466 >> Divákov: [Nepočuteľné]. 978 00:53:46,466 --> 00:53:47,530 Profesor: Presne tak. 979 00:53:47,530 --> 00:53:53,195 Tak while-- čo ide dovnútra tu? 980 00:53:53,195 --> 00:53:54,940 S of - 981 00:53:54,940 --> 00:53:55,920 >> Publikum: I. 982 00:53:55,920 --> 00:53:58,216 >> Profesor: Oh, ja neexistuje, to robí? 983 00:53:58,216 --> 00:53:59,620 >> Publikum: Oh, počítať? 984 00:53:59,620 --> 00:54:01,640 >> Profesor: Môžeme len používať počet, nie? 985 00:54:01,640 --> 00:54:03,050 >> Publikum: Prepáč, volal som to aj. 986 00:54:03,050 --> 00:54:04,341 >> Profesor: Jo, je to všetko dobré. 987 00:54:04,341 --> 00:54:06,710 988 00:54:06,710 --> 00:54:10,760 Máme premennú tu to je už bol vyhlásený ako náš pult. 989 00:54:10,760 --> 00:54:13,650 Tak prečo nie my jednoducho použiť, že pohybovať cez while? 990 00:54:13,650 --> 00:54:15,230 Dáva to zmysel? 991 00:54:15,230 --> 00:54:20,864 >> Takže zatiaľ čo s o count-- niekto chce dať mi, čo sa stane po tu? 992 00:54:20,864 --> 00:54:22,030 Divákov: To nie je presne. 993 00:54:22,030 --> 00:54:23,405 Profesor: Does not rovnaké, nie? 994 00:54:23,405 --> 00:54:26,200 Je to rana rovná, výkričník rovná, 995 00:54:26,200 --> 00:54:28,500 čo vy chcete volať to nie je equal-- 996 00:54:28,500 --> 00:54:29,496 >> Divákov: [Nepočuteľné]. 997 00:54:29,496 --> 00:54:30,990 >> Profesor: Jo. 998 00:54:30,990 --> 00:54:37,110 Nezabudnite jediné citácie je pre char, úvodzovky sú na povrázku. 999 00:54:37,110 --> 00:54:38,630 Pri ich používaní buďte opatrní. 1000 00:54:38,630 --> 00:54:42,430 Takže, keď sa pozeráme skrz pole, posledný znak, 1001 00:54:42,430 --> 00:54:46,420 vieme, že nechceme že je backslash nula. 1002 00:54:46,420 --> 00:54:47,340 >> Takže zatiaľ čo. 1003 00:54:47,340 --> 00:54:48,840 Sme nie je na konci reťazca. 1004 00:54:48,840 --> 00:54:52,335 Čo chceme urobiť vnútri? 1005 00:54:52,335 --> 00:54:55,269 >> Divákov: Chceme pridať do počítadlo tak to počíta a navyše? 1006 00:54:55,269 --> 00:54:56,060 Profesor: Presne tak. 1007 00:54:56,060 --> 00:55:03,064 Tak tu budeme robiť počítať, počítať a navyše. 1008 00:55:03,064 --> 00:55:03,980 Chýba ešte jednu linku. 1009 00:55:03,980 --> 00:55:05,090 Už tam skoro sme. 1010 00:55:05,090 --> 00:55:07,398 Čo budeme robiť zabudol? 1011 00:55:07,398 --> 00:55:08,770 >> Divákov: Vrátenie nula? 1012 00:55:08,770 --> 00:55:10,820 >> Profesor: Chcete vrátiť nulu? 1013 00:55:10,820 --> 00:55:12,962 >> Publikum: Nie, návrat do strlen. 1014 00:55:12,962 --> 00:55:13,511 Počkajte. 1015 00:55:13,511 --> 00:55:14,760 Profesor: ktorý je uložený v? 1016 00:55:14,760 --> 00:55:15,090 Divákov: gróf. 1017 00:55:15,090 --> 00:55:15,589 Gróf. 1018 00:55:15,589 --> 00:55:17,150 Profesor: Presne tak. 1019 00:55:17,150 --> 00:55:20,760 Tak tu budeme vracať počítať. 1020 00:55:20,760 --> 00:55:23,450 1021 00:55:23,450 --> 00:55:25,380 >> Pretože to, čo sme tu robíš ultimately-- 1022 00:55:25,380 --> 00:55:29,780 máme proti premennú, ktorá je chystá zvýšiť prostredníctvom našej reťazec. 1023 00:55:29,780 --> 00:55:33,050 Budeme ďalej, udržať deje okolo a okolo tejto slučky. 1024 00:55:33,050 --> 00:55:37,700 A keď nie sme na konci tohto reťazec, ktorý je null terminátor. 1025 00:55:37,700 --> 00:55:40,410 >> A zakaždým, keď prejdeme to, my pridávame do nášho pultu. 1026 00:55:40,410 --> 00:55:42,640 A ideme ďalej spolu v tomto poli. 1027 00:55:42,640 --> 00:55:44,880 A na konci, akonáhle sme hit null zakončenie, 1028 00:55:44,880 --> 00:55:48,469 Vieme, oh, môžeme zlomiť, vrátenie počtu. 1029 00:55:48,469 --> 00:55:49,260 Máme strlen. 1030 00:55:49,260 --> 00:55:52,280 1031 00:55:52,280 --> 00:55:56,400 >> Má každý dostať ako to bola realizovaná? 1032 00:55:56,400 --> 00:55:58,830 Kým loops-- Viem, že sme nie vykonané príliš s nimi, 1033 00:55:58,830 --> 00:56:01,240 ale oni sú zvyčajne Veľmi, veľmi užitočné, ak 1034 00:56:01,240 --> 00:56:05,390 Neviem, čo ste zastavenie podmienka nutne musí byť. 1035 00:56:05,390 --> 00:56:06,220 >> Otázka? 1036 00:56:06,220 --> 00:56:10,080 >> Divákov: Môžeme napísať null na zatiaľ čo stave? 1037 00:56:10,080 --> 00:56:10,940 >> Profesor: Kým? 1038 00:56:10,940 --> 00:56:15,304 Jo, takže v tomto probléme som mal vás chlapci predpokladajú, že to nebude mať hodnotu null. 1039 00:56:15,304 --> 00:56:17,220 Vzhľadom k tomu, pamätajte, teoreticky, keby som vám dal 1040 00:56:17,220 --> 00:56:21,180 ukazovateľ, ktorý bol príliš veľký pamäti, to by vám null, že jo? 1041 00:56:21,180 --> 00:56:23,770 To je to, čo prevádzkové systém by robiť. 1042 00:56:23,770 --> 00:56:26,960 >> Takže keď som sa ti predpokladať, s by byť null, je potrebné skontrolovať. 1043 00:56:26,960 --> 00:56:32,050 Tak tu hore, mali by ste robiť, keď s rovná sa rovná null, vráti jeden. 1044 00:56:32,050 --> 00:56:33,028 Niečo ako toto. 1045 00:56:33,028 --> 00:56:34,153 Divákov: [nepočuteľný] nulu. 1046 00:56:34,153 --> 00:56:37,287 1047 00:56:37,287 --> 00:56:39,370 Profesor: OK, poviem vy, prečo nemôžeme urobiť. 1048 00:56:39,370 --> 00:56:43,357 Vzhľadom k tomu, pamätajte na pamäti, že jo, tu. 1049 00:56:43,357 --> 00:56:43,940 Pôjdeme sem. 1050 00:56:43,940 --> 00:56:49,940 1051 00:56:49,940 --> 00:56:54,090 >> Máš obrie bloky pamäti všetky s mriežkami 1052 00:56:54,090 --> 00:56:56,680 že ukladať rôzne hodnoty, nie? 1053 00:56:56,680 --> 00:57:00,110 A tak všetko reťazec je-- pre Napríklad, ak my sa na vstup ahoj, 1054 00:57:00,110 --> 00:57:05,490 bolo by H-E-L-L-O spätné lomítko nula, nie? 1055 00:57:05,490 --> 00:57:09,570 A potom kto vie, rovnako ako náhodné veci, ktoré sú v tu po ňom. 1056 00:57:09,570 --> 00:57:11,220 >> Nemáme vlastne vedieť, čo tam je. 1057 00:57:11,220 --> 00:57:13,350 A tak ak ste mali urobiť miesto spätné lomítko nula, 1058 00:57:13,350 --> 00:57:15,590 null, nemusí byť null. 1059 00:57:15,590 --> 00:57:17,680 Vzhľadom k tomu, že to môže znamenať, niektoré náhodné ďalšie veci 1060 00:57:17,680 --> 00:57:19,270 ktoré nepatria do vašej reťazci. 1061 00:57:19,270 --> 00:57:23,219 A tak spôsob, akým vždy vieme, že reťazec končí so spätným lomítkom nula. 1062 00:57:23,219 --> 00:57:25,760 A tak to je vždy, ako my skontrolujte, či koniec reťazca. 1063 00:57:25,760 --> 00:57:30,820 >> Null, všetko to znamená je, ak máte neexistujúce ukazovateľ, v prvom rade, 1064 00:57:30,820 --> 00:57:36,160 alebo ak je tak veľký, že vaša pamäť nemôžete vrátiť, potom by to bolo null. 1065 00:57:36,160 --> 00:57:40,150 Takže buďte veľmi opatrní pri rozlišovaní Rozdiel medzi null 1066 00:57:40,150 --> 00:57:42,130 a spätné lomítko nula. 1067 00:57:42,130 --> 00:57:43,670 Jo. 1068 00:57:43,670 --> 00:57:46,886 >> Každý, kto v poriadku s tým? 1069 00:57:46,886 --> 00:57:48,150 OK. 1070 00:57:48,150 --> 00:57:50,440 >> Takže som mal chalani vypísať strlen. 1071 00:57:50,440 --> 00:57:53,790 Reálne môžeme tiež požiadať napíšete out A až I, pamätajte, že "Atwoa" 1072 00:57:53,790 --> 00:57:55,400 alebo ako vy to chcete nazývať? 1073 00:57:55,400 --> 00:57:58,010 Táto funkcia v Vigener a Caesar, že 1074 00:57:58,010 --> 00:58:00,900 prevedie ASCII hodnotu na celé číslo? 1075 00:58:00,900 --> 00:58:04,360 To tiež má prísť na minulých kvízy funkcií sme požiadaní, aby ste mohli napísať. 1076 00:58:04,360 --> 00:58:08,280 >> Skoro žiadne funkcie ktoré ste použili, a je 1077 00:58:08,280 --> 00:58:11,660 veľmi ľahké písať sami, Senzory páči, je nižšia, 1078 00:58:11,660 --> 00:58:14,620 je horná, znížiť, aby horná. 1079 00:58:14,620 --> 00:58:17,964 Funkcie, ktoré by previesť reťazec z malých písmen na veľké písmená. 1080 00:58:17,964 --> 00:58:19,380 Všetci vieme, ako to urobiť, nie? 1081 00:58:19,380 --> 00:58:21,100 Je to celkom jednoduché. 1082 00:58:21,100 --> 00:58:24,770 Len chcem, aby sa ubezpečil, že ste can-- je to rovnaký myšlienkový proces. 1083 00:58:24,770 --> 00:58:26,940 Práve ste iterovat a zapnete veci. 1084 00:58:26,940 --> 00:58:30,190 Buď počet, alebo keď odbočíte veci inak. 1085 00:58:30,190 --> 00:58:32,280 >> Ja by som suggest-- I neviem, či ideme 1086 00:58:32,280 --> 00:58:39,080 vás požiadať, aby ste zapamätať čo základnom imaní alebo kapitál Z, či malé písmená A alebo malé písmená 1087 00:58:39,080 --> 00:58:42,640 z sú v ASCII, ale povedala by som, že snáď napísal, že sa v prípade, 1088 00:58:42,640 --> 00:58:44,124 robíme. 1089 00:58:44,124 --> 00:58:45,540 Len tak si chlapci majú odkaz. 1090 00:58:45,540 --> 00:58:47,180 Rovnako ako veľké písmeno A je to, čo, 197? 1091 00:58:47,180 --> 00:58:51,320 A potom malá je ako 50 niečo. 1092 00:58:51,320 --> 00:58:52,492 65, jo, tam idete. 1093 00:58:52,492 --> 00:58:54,950 Takže len celkom veľa poznať Rozdiel medzi nimi je 32. 1094 00:58:54,950 --> 00:58:57,670 To je docela dôležité. 1095 00:58:57,670 --> 00:58:58,170 Jo. 1096 00:58:58,170 --> 00:59:01,445 Som dobrý na to? 1097 00:59:01,445 --> 00:59:01,945 OK. 1098 00:59:01,945 --> 00:59:03,109 >> Publikum: Mohli by sme teoreticky napísať nejaký 1099 00:59:03,109 --> 00:59:04,410 z nich sa aj na našich little-- 1100 00:59:04,410 --> 00:59:07,035 >> Profesor: Je teoreticky mohol len skopírovať funkciu nadol. 1101 00:59:07,035 --> 00:59:08,482 To je pravda. 1102 00:59:08,482 --> 00:59:11,080 >> Divákov: Nie [Nepočuteľné]. 1103 00:59:11,080 --> 00:59:12,720 >> Profesor: Vy máte list. 1104 00:59:12,720 --> 00:59:14,194 Vy chlapci majú poznámku list. 1105 00:59:14,194 --> 00:59:14,860 Môžete písať to. 1106 00:59:14,860 --> 00:59:15,490 Môžete to napísať. 1107 00:59:15,490 --> 00:59:17,031 Môžete robiť, čo chcete s ním. 1108 00:59:17,031 --> 00:59:18,530 Jo. 1109 00:59:18,530 --> 00:59:21,406 Takže teoreticky, ak Ak chcete, ísť na. 1110 00:59:21,406 --> 00:59:23,338 >> Divákov: [Nepočuteľné] ale my naozaj 1111 00:59:23,338 --> 00:59:25,994 nutne mať na pamäti je hodnota, môžeme len 1112 00:59:25,994 --> 00:59:28,914 použite na hornej alebo na nižšej funkcie, že jo? 1113 00:59:28,914 --> 00:59:29,580 Profesor: Jo. 1114 00:59:29,580 --> 00:59:32,740 Ale ak sa vám dal otázku ktorá hovorí, že písať na hornej, 1115 00:59:32,740 --> 00:59:34,350 potom budete musieť napísať. 1116 00:59:34,350 --> 00:59:38,150 Takže vy môžete predpokladať, že ste chlapci majú prístup ku všetkým funkciám, 1117 00:59:38,150 --> 00:59:41,523 ale ak chcete použiť na hornej alebo na nižšia, čo si tiež musíte urobiť? 1118 00:59:41,523 --> 00:59:43,840 >> Divákov: [Nepočuteľné] použite CS50 [nepočuteľných] 1119 00:59:43,840 --> 00:59:44,840 >> Profesor: Je to CS50.h? 1120 00:59:44,840 --> 00:59:47,320 1121 00:59:47,320 --> 00:59:48,310 Buďte opatrní tam. 1122 00:59:48,310 --> 00:59:50,640 >> Tak, aby horná, znížiť, je horná, je nižšia, 1123 00:59:50,640 --> 00:59:52,990 funkcie, ktoré zahŕňajú manipuláciu s reťazcami sú 1124 00:59:52,990 --> 00:59:55,490 všetko v rámci buď v ASCII alebo v matematickej knižnici 1125 00:59:55,490 --> 00:59:57,350 alebo v knižnici reťazca. 1126 00:59:57,350 --> 01:00:00,290 Takže ak vy používať tie funkcie, dávajte pozor, aby pamätať 1127 01:00:00,290 --> 01:00:01,451 zahrnúť túto hlavičku. 1128 01:00:01,451 --> 01:00:03,950 Tak snáď tiež niečo vás chcú zahrnúť do listu, 1129 01:00:03,950 --> 01:00:04,892 aké sú hlavičky? 1130 01:00:04,892 --> 01:00:06,600 Aké sú knižnice ste používali? 1131 01:00:06,600 --> 01:00:08,550 Aké funkcie sú Vnútri týchto knižníc? 1132 01:00:08,550 --> 01:00:09,230 Je to dôležité. 1133 01:00:09,230 --> 01:00:10,420 >> Jo? 1134 01:00:10,420 --> 01:00:12,570 >> Divákov: Mohli by sme proste Poldové a robiť hashtag 1135 01:00:12,570 --> 01:00:14,955 prostredníctvom absolútne každý list, ktorý sme kedy 1136 01:00:14,955 --> 01:00:17,340 videný ako na všetky otázky? 1137 01:00:17,340 --> 01:00:18,320 >> Profesor: Dalo by sa. 1138 01:00:18,320 --> 01:00:20,361 Ja neviem, ako šťastní budeme mať do platovej triedy 1139 01:00:20,361 --> 01:00:25,090 že kvíz, keď každý kus kódu je dvakrát tak dlho, ako je potrebné, aby bolo. 1140 01:00:25,090 --> 01:00:27,200 Ja neviem, ako by sme mohli vzlietnuť bod za štýl. 1141 01:00:27,200 --> 01:00:28,790 Ale teoreticky Váš code by bolo správne. 1142 01:00:28,790 --> 01:00:30,915 Vy ste mohol Poldové a len patrí všetko. 1143 01:00:30,915 --> 01:00:32,044 To je tiež v pohode, jo. 1144 01:00:32,044 --> 01:00:32,960 Divákov: [Nepočuteľné]. 1145 01:00:32,960 --> 01:00:33,270 Profesor: Jo. 1146 01:00:33,270 --> 01:00:34,900 Navrhoval by som nerobil, že hoci. 1147 01:00:34,900 --> 01:00:35,505 Jo. 1148 01:00:35,505 --> 01:00:36,130 Divákov: cool. 1149 01:00:36,130 --> 01:00:36,620 Profesor: Dobrá otázka. 1150 01:00:36,620 --> 01:00:37,480 Publikum: Takže, najhorší scenár. 1151 01:00:37,480 --> 01:00:38,563 Profesor: Najhorší prípad. 1152 01:00:38,563 --> 01:00:40,350 Ak ste úplne zabudol, si to mohol urobiť. 1153 01:00:40,350 --> 01:00:40,850 Jo. 1154 01:00:40,850 --> 01:00:43,870 1155 01:00:43,870 --> 01:00:45,400 >> Jo, kód je tu. 1156 01:00:45,400 --> 01:00:49,176 Použil som n miesto počte, ale vás Viete, čo pláva svoju loď. 1157 01:00:49,176 --> 01:00:51,092 Publikum: Počkaj, takže sme nebude musieť hashtag 1158 01:00:51,092 --> 01:00:53,460 zahŕňajú pretože sme začína na int? 1159 01:00:53,460 --> 01:00:56,150 1160 01:00:56,150 --> 01:00:59,924 >> Profesor: Jo, len som predpokladal, že sme boli požiadaní, aby napísali funkciu. 1161 01:00:59,924 --> 01:01:02,340 Ak by ste chceli byť v bezpečí, vám by pravdepodobne to tam dal. 1162 01:01:02,340 --> 01:01:05,650 Ale ja som jednoducho nemal obťažovať, jo. 1163 01:01:05,650 --> 01:01:09,919 >> Ja ani neviem, či vás potrebovať knižnicu pre toto. 1164 01:01:09,919 --> 01:01:12,710 Vzhľadom k tomu, že ste naozaj tlač out čokoľvek alebo niečo, že jo? 1165 01:01:12,710 --> 01:01:16,500 1166 01:01:16,500 --> 01:01:19,568 Jo, ja nie chcete vedieť, budete potrebovať knižnicu. 1167 01:01:19,568 --> 01:01:22,400 >> OK. 1168 01:01:22,400 --> 01:01:26,020 To je tiež trochu viac pozdĺž línia manipulácia pamäte. 1169 01:01:26,020 --> 01:01:27,400 Tento druh trochu zložitejšie. 1170 01:01:27,400 --> 01:01:28,960 Premýšľajte o tom. 1171 01:01:28,960 --> 01:01:30,580 Máte funkciu nazvanú FUNC. 1172 01:01:30,580 --> 01:01:33,570 Mohol som označil to za čokoľvek, ale vybrať to pomenovať FUNC. 1173 01:01:33,570 --> 01:01:36,000 Mám ju nad mojím hlavným. 1174 01:01:36,000 --> 01:01:39,790 Pamätajte si, že chcete mať funkcie potom, čo váš hlavný, 1175 01:01:39,790 --> 01:01:42,370 si chcete byť istý, že zahŕňajú prototyp vrcholu. 1176 01:01:42,370 --> 01:01:45,750 >> Ale v tomto prípade to bolo tak krátka že som cítil, že som mohol len 1177 01:01:45,750 --> 01:01:47,260 zahrnúť ho na vrchole hlavnej. 1178 01:01:47,260 --> 01:01:51,170 Nepotreboval som mať prototyp, pretože je to už napísané vyššie. 1179 01:01:51,170 --> 01:01:55,430 Takže všetko, čo robím vo svojom hlavnú funkciu vytvára čísla x rovná 10. 1180 01:01:55,430 --> 01:02:00,490 Volám svoju FUNC funkcie, a potom vytlačíte niečo. 1181 01:02:00,490 --> 01:02:02,840 >> A potom je to vlastne čo func robí. 1182 01:02:02,840 --> 01:02:04,340 Vy chlapci chcú myslieť cez to. 1183 01:02:04,340 --> 01:02:05,423 Vzhľadom k tomu, že je to trochu zložitejšie. 1184 01:02:05,423 --> 01:02:07,220 Je to veľmi, veľmi zložité, v skutočnosti. 1185 01:02:07,220 --> 01:02:09,549 Premyslite si, čo to program by bol výstup. 1186 01:02:09,549 --> 01:02:10,840 Dám ti chlapci dve minúty. 1187 01:02:10,840 --> 01:03:36,660 1188 01:03:36,660 --> 01:03:37,891 >> Dobré diskusie? 1189 01:03:37,891 --> 01:03:38,853 >> Divákov: Jo. 1190 01:03:38,853 --> 01:03:39,815 >> Profesor: Jo. 1191 01:03:39,815 --> 01:03:42,220 Dobre, takže to je zradné z nejakého dôvodu. 1192 01:03:42,220 --> 01:03:44,845 A to je dôvod, prečo som chcel priviesť to každého pozornosť. 1193 01:03:44,845 --> 01:03:47,870 1194 01:03:47,870 --> 01:03:51,147 Má niekto chcel, aby mi návrh, pokus? 1195 01:03:51,147 --> 01:03:52,230 Čo by to vytlačiť? 1196 01:03:52,230 --> 01:03:53,930 Úplne v poriadku, ak sa mýlite. 1197 01:03:53,930 --> 01:03:55,619 Jo? 1198 01:03:55,619 --> 01:03:59,483 >> Divákov: Myslím si, že je to 100 a potom 10 na dvoch samostatných liniek. 1199 01:03:59,483 --> 01:04:00,940 >> Profesor: A 10? 1200 01:04:00,940 --> 01:04:03,154 Má niekto nejaké iné odhady? 1201 01:04:03,154 --> 01:04:04,150 Jo? 1202 01:04:04,150 --> 01:04:09,040 >> Divákov: Možno len preto, že 10 func sa nevracia nič? 1203 01:04:09,040 --> 01:04:11,610 >> Profesor: OK, tak my majú hádať číslo jedna 1204 01:04:11,610 --> 01:04:14,990 je to, že odhad číslo dva je práve chystá vytlačiť 10. 1205 01:04:14,990 --> 01:04:17,623 Má niekto nejaké iné odhady? 1206 01:04:17,623 --> 01:04:19,654 OK. 1207 01:04:19,654 --> 01:04:21,070 Takže poďme prejsť to, že jo? 1208 01:04:21,070 --> 01:04:23,903 Kedykoľvek dostanete kus kódu, to nie je len sa na to pozerať, a to ako, 1209 01:04:23,903 --> 01:04:25,060 ach, to je toľko vecí! 1210 01:04:25,060 --> 01:04:26,460 Som tak zmätená! 1211 01:04:26,460 --> 01:04:28,220 Rovnako ako, upokoj sa. 1212 01:04:28,220 --> 01:04:31,602 Len viem, že môžete jednoducho prehliadnuť kód riadok po riadku. 1213 01:04:31,602 --> 01:04:32,310 To je všetko, čo je. 1214 01:04:32,310 --> 01:04:33,840 Je to ako čítanie knihy. 1215 01:04:33,840 --> 01:04:38,000 >> Takže s akoukoľvek funkciou, vždy začať na hlavnú. 1216 01:04:38,000 --> 01:04:40,860 Takže budeme štart na int main prázdnote, 1217 01:04:40,860 --> 01:04:43,010 i programu sa Už spustiť dole, že jo? 1218 01:04:43,010 --> 01:04:45,070 Začnite na v hlavnom prázdnote. 1219 01:04:45,070 --> 01:04:48,030 Int x rovná 10. 1220 01:04:48,030 --> 01:04:50,400 >> Takže budem vymazať to. 1221 01:04:50,400 --> 01:04:55,179 1222 01:04:55,179 --> 01:04:58,470 Budem čerpať pamäte len tak vás chlapci môže druh vidieť, čo sa deje. 1223 01:04:58,470 --> 01:05:02,190 >> Pamätajte si, tu máme hromadu? 1224 01:05:02,190 --> 01:05:05,810 Tu hore Máme hromadiť niekde tu. 1225 01:05:05,810 --> 01:05:07,470 Stack vyrastie, je to tak? 1226 01:05:07,470 --> 01:05:10,150 A v zásobníku, budete mať sieťové funkcie, rovnako ako 1227 01:05:10,150 --> 01:05:12,230 všetky sieťového lokálnych premenných. 1228 01:05:12,230 --> 01:05:14,310 >> Tak tu, int x rovná 10. 1229 01:05:14,310 --> 01:05:17,670 V rámci našej hlavnú funkciu sme vytvára premennú s názvom x. 1230 01:05:17,670 --> 01:05:20,590 Sme nastavenie, ktoré sa rovná 10. 1231 01:05:20,590 --> 01:05:24,200 Tu máte nejaké x, a vy ste nastavenie, ktoré sa rovná 10, vpravo, 1232 01:05:24,200 --> 01:05:25,400 v hlavnej. 1233 01:05:25,400 --> 01:05:27,430 Všetci dobre? 1234 01:05:27,430 --> 01:05:28,070 >> Function. 1235 01:05:28,070 --> 01:05:30,330 Takže teraz, v rámci našich hlavných funkcie, voláme 1236 01:05:30,330 --> 01:05:31,810 Funkcie sme napísané vyššie. 1237 01:05:31,810 --> 01:05:34,550 Takže sme teraz zadať druhú funkciu. 1238 01:05:34,550 --> 01:05:40,120 Chystáme sa vytvoriť ďalšie premenná int x rovná 100. 1239 01:05:40,120 --> 01:05:42,410 Čo sa deje tu v zásobníku? 1240 01:05:42,410 --> 01:05:46,980 Čo sa stane, keď hovoríte Funkcia, ktorá vytvára nové premenné? 1241 01:05:46,980 --> 01:05:50,038 Čo sa deje tu v zásobníku? 1242 01:05:50,038 --> 01:05:52,134 >> Divákov: [Nepočuteľné] kôpky na vrchole? 1243 01:05:52,134 --> 01:05:52,800 Profesor: Jo. 1244 01:05:52,800 --> 01:05:54,050 Takže to vlastne vytvorí kópiu. 1245 01:05:54,050 --> 01:05:56,560 1246 01:05:56,560 --> 01:05:57,740 A to druh pilotmi na vrchole. 1247 01:05:57,740 --> 01:06:00,700 Myslite na stack-- stoh kníh, stoh čokoľvek. 1248 01:06:00,700 --> 01:06:06,520 Pilotmi na vrchole, najprv v poslednej out, posledný dnu, prvý von. 1249 01:06:06,520 --> 01:06:08,471 >> Takže to bude vytvoriť x sem. 1250 01:06:08,471 --> 01:06:12,080 1251 01:06:12,080 --> 01:06:14,450 >> To bude mať všetky funcs premenné. 1252 01:06:14,450 --> 01:06:14,950 Skvelé. 1253 01:06:14,950 --> 01:06:20,980 Takže teraz máme dva rozdielne x, že predstavujú dva veľmi odlišné veci. 1254 01:06:20,980 --> 01:06:24,470 Potom budeme tlačiť out celého čísla x. 1255 01:06:24,470 --> 01:06:26,430 Takže poďme tlač 100, nie? 1256 01:06:26,430 --> 01:06:29,389 Pretože tu je to 100. 1257 01:06:29,389 --> 01:06:31,680 Takže to je prvá vec, že to bude tlačiť. 1258 01:06:31,680 --> 01:06:35,710 Pretože táto funkcia vracia nič, Teraz táto funkcia, že linka v hlavnej 1259 01:06:35,710 --> 01:06:37,070 hotovo. 1260 01:06:37,070 --> 01:06:39,160 Všetci dobre so mnou tak ďaleko? 1261 01:06:39,160 --> 01:06:43,034 >> Takže teraz sme cez dve zo tri riadky z našich hlavných funkcií. 1262 01:06:43,034 --> 01:06:44,450 Teraz ideme do tretieho radu. 1263 01:06:44,450 --> 01:06:46,350 Ideme do printf. 1264 01:06:46,350 --> 01:06:48,222 Čo je to x v hlavnej? 1265 01:06:48,222 --> 01:06:49,263 Čo to predstavuje? 1266 01:06:49,263 --> 01:06:52,720 1267 01:06:52,720 --> 01:06:54,280 >> Aká je hodnota x teraz? 1268 01:06:54,280 --> 01:06:55,220 >> Divákov: 100. 1269 01:06:55,220 --> 01:06:56,799 >> Profesor: Je to 100? 1270 01:06:56,799 --> 01:06:57,590 Divákov: Still 10. 1271 01:06:57,590 --> 01:06:58,878 Profesor: Still 10. 1272 01:06:58,878 --> 01:07:00,870 Jo. 1273 01:07:00,870 --> 01:07:06,810 Vzhľadom k tomu, pamätajte, že v rámci náš func, x sa rovná 100. 1274 01:07:06,810 --> 01:07:09,690 Ale ak sa vrátime späť na našu hlavnú funkciu, 1275 01:07:09,690 --> 01:07:12,440 že premenná je uložená v iné miesto na našich zásobníka. 1276 01:07:12,440 --> 01:07:16,250 >> Takže teraz musíme ísť späť do hlavný zásobník, sieťový lokálne premenné. 1277 01:07:16,250 --> 01:07:18,460 A tu x je rovné 10. 1278 01:07:18,460 --> 01:07:20,300 A tak sme sa chystáte vytlačiť 10. 1279 01:07:20,300 --> 01:07:22,530 >> A tak mala úplnú pravdu. 1280 01:07:22,530 --> 01:07:25,053 Budeme mať výstup 100 a 10. 1281 01:07:25,053 --> 01:07:25,553 Jo? 1282 01:07:25,553 --> 01:07:28,700 Divákov: Keď malloc, je to haldy alebo zásobníka, ktorý je [nepočuteľný]? 1283 01:07:28,700 --> 01:07:31,950 Profesor: Keď malloc, Užívate pamäte z haldy 1284 01:07:31,950 --> 01:07:32,830 a ich prideľovanie. 1285 01:07:32,830 --> 01:07:34,950 Takže nemáte bordel s nič z toho. 1286 01:07:34,950 --> 01:07:38,100 Takže myslím, že väčšie jedlo so sebou Tu je niečo, čo nazýva priestor. 1287 01:07:38,100 --> 01:07:39,650 >> Pre tých z vás, ktorí boli na relácie v noci recenziu, 1288 01:07:39,650 --> 01:07:41,080 sme sa bavili o tom krátko. 1289 01:07:41,080 --> 01:07:45,380 Rozsah určuje, ako a ak existujú vaše premenné. 1290 01:07:45,380 --> 01:07:48,050 Alebo v akej rámy Do vášho premenné existujú. 1291 01:07:48,050 --> 01:07:51,690 >> Celkom veľa pravidlo všeobecne je Vaša variables-- ak ich vytvorenie 1292 01:07:51,690 --> 01:07:56,660 vnútri kučeravé braces-- existujú iba vo vnútri týchto zložených zátvoriek. 1293 01:07:56,660 --> 01:08:00,312 >> Tak napríklad v našej funkcii func, vidíš tie dve vzpery. 1294 01:08:00,312 --> 01:08:02,020 Ak vytvárate niečo vnútri nej, 1295 01:08:02,020 --> 01:08:06,500 šanca je všetko, čo robíte, je vytvorenie stack a ukladanie, ktoré tam. 1296 01:08:06,500 --> 01:08:07,430 To isté v hlavnej. 1297 01:08:07,430 --> 01:08:09,950 To je jednoducho uložený vo vnútri hlavnej. 1298 01:08:09,950 --> 01:08:13,560 >> Tiež chcete byť veľmi, veľmi opatrní. 1299 01:08:13,560 --> 01:08:18,310 Pretože pôsobnosť tiež požičiava samo o sebe na rôznych príkladoch. 1300 01:08:18,310 --> 01:08:25,950 Tak napríklad pre slučky, pre int i = 0. 1301 01:08:25,950 --> 01:08:28,460 Aj je nižšia ako, neviem, 10. 1302 01:08:28,460 --> 01:08:32,111 Aj s a. 1303 01:08:32,111 --> 01:08:34,560 A máte kód vnútri o tom, že jo? 1304 01:08:34,560 --> 01:08:38,830 >> Kde sa táto premenná, i, vlastne len existujú? 1305 01:08:38,830 --> 01:08:40,510 Iba vo vnútri si na slučky. 1306 01:08:40,510 --> 01:08:43,640 Tak som sa staviť, mnoho z vás má Pravdepodobne sa stretol túto chybu, keď 1307 01:08:43,640 --> 01:08:45,930 robíte programy vo vašich psets. 1308 01:08:45,930 --> 01:08:49,990 Koľko z vás sa pokúsili použiť aj mimo cyklus for a mal chybu? 1309 01:08:49,990 --> 01:08:53,310 Ako neexistuje odkaz celých čísel alebo niečo také? 1310 01:08:53,310 --> 01:08:56,069 >> Dôvod, prečo sa to stane Je tomu tak preto, že si tu 1311 01:08:56,069 --> 01:08:59,109 vytvorenie niečoho, že len existuje vo svoj pre slučke. 1312 01:08:59,109 --> 01:09:01,972 A ak sa pokúsite ho použiť, aj nie skutočne existujú mimo neho. 1313 01:09:01,972 --> 01:09:04,930 Takže v podstate počítač hovorí, ja Neviem, o čom hovoríte. 1314 01:09:04,930 --> 01:09:08,689 Všetko, čo viem, je, že som bol tu, ale teraz už nie. 1315 01:09:08,689 --> 01:09:12,580 >> Takže ak by som mal vytvoriť pre sláčiky vnútri, nie? 1316 01:09:12,580 --> 01:09:19,080 A budem vytvárať iný, ako int j, a mať to urobiť čokoľvek. 1317 01:09:19,080 --> 01:09:23,689 A máte kód vnútro že slučka, j existuje len tu. 1318 01:09:23,689 --> 01:09:26,029 Ale existuje aj vo vnútri aj. 1319 01:09:26,029 --> 01:09:29,310 A tak j existuje iba vnútri to pre sláčiky, 1320 01:09:29,310 --> 01:09:33,850 zatiaľ čo ja existuje v celej veci. 1321 01:09:33,850 --> 01:09:34,500 >> Všetci jasné? 1322 01:09:34,500 --> 01:09:37,416 To isté sa podmienené príkazy Ak chcete vytvoriť čokoľvek. 1323 01:09:37,416 --> 01:09:40,390 To isté s cyklami while pokiaľ Ak chcete vytvoriť čokoľvek. 1324 01:09:40,390 --> 01:09:42,390 To je niečo, čo sa veľmi, veľmi opatrní. 1325 01:09:42,390 --> 01:09:45,681 Takže to bol naozaj dobrý problém v pocit, že preukázala dve veci. 1326 01:09:45,681 --> 01:09:47,160 Je preukázané, ako prvý, rozsah. 1327 01:09:47,160 --> 01:09:49,550 A preukázal Tiež alokácie pamäte. 1328 01:09:49,550 --> 01:09:54,130 Vzhľadom k tomu, vy by mali vedieť, že funkcie rastú smerom nahor v stohu. 1329 01:09:54,130 --> 01:09:56,710 A že keď zavoláte funkcie, budete vytvárať 1330 01:09:56,710 --> 01:09:59,060 v podstate nový zásobník pamäte. 1331 01:09:59,060 --> 01:10:02,100 To je veľmi odlišná od aké sú vaše sieťové pamäť. 1332 01:10:02,100 --> 01:10:03,300 Jo. 1333 01:10:03,300 --> 01:10:03,800 Páni! 1334 01:10:03,800 --> 01:10:05,470 Každý, kto v poriadku na to? 1335 01:10:05,470 --> 01:10:06,750 To bolo mätúce. 1336 01:10:06,750 --> 01:10:09,380 Veľmi dobré témy prejsť, pretože ste pravdepodobne 1337 01:10:09,380 --> 01:10:12,255 dostane trochu zradné veci, ako že na kvíz. 1338 01:10:12,255 --> 01:10:13,350 Jo. 1339 01:10:13,350 --> 01:10:13,850 Super. 1340 01:10:13,850 --> 01:10:16,014 1341 01:10:16,014 --> 01:10:18,430 Dám vám 100 na jeden línie a potom 10 na strane druhej. 1342 01:10:18,430 --> 01:10:21,468 Jo, veľmi dobré. 1343 01:10:21,468 --> 01:10:26,350 >> OK, teraz vy dostanete šancu byť TA. 1344 01:10:26,350 --> 01:10:30,600 Dostanete sa odpovedať na všetky krásne e-maily, ktoré som sa niekedy dostanú. 1345 01:10:30,600 --> 01:10:34,290 >> Takže, Vážení Andi, vidím, myslím, že je niečo zle s mojím kompilátorom. 1346 01:10:34,290 --> 01:10:37,910 Som si istý, že môj kód je správny, ale Dostávam chybu segmentácie 1347 01:10:37,910 --> 01:10:39,074 zakaždým, keď som bežať. 1348 01:10:39,074 --> 01:10:39,740 Čo sa deje? 1349 01:10:39,740 --> 01:10:42,844 Prosím, pomôžte, veľa lásky. 1350 01:10:42,844 --> 01:10:45,740 1351 01:10:45,740 --> 01:10:49,410 >> Ak vy niečo podobné že ako by ste reagoval? 1352 01:10:49,410 --> 01:10:51,860 Sú to vlastne veľmi časté otázky, budeme vás požiadať, aby ste. 1353 01:10:51,860 --> 01:10:54,090 Je-li, vám dám scenár, dáme nám 1354 01:10:54,090 --> 01:10:56,350 váš najlepší odhad na to, čo sa deje. 1355 01:10:56,350 --> 01:11:00,710 Každý, kto má osteň na to, čo sa deje? 1356 01:11:00,710 --> 01:11:02,654 Jo? 1357 01:11:02,654 --> 01:11:06,056 >> Divákov: Možno, že dereferenced null, niečo ako ukazovateľ 1358 01:11:06,056 --> 01:11:08,924 ukazuje na niečo null. 1359 01:11:08,924 --> 01:11:11,590 Profesor: Jo, to by byť Príkladom, kedy že sa to stane. 1360 01:11:11,590 --> 01:11:14,467 Ale čo je to väčší obrázok o tom, čo sa tu deje? 1361 01:11:14,467 --> 01:11:17,050 Divákov: Je to, že sa snažíte prístup k pamäti, že nie ste 1362 01:11:17,050 --> 01:11:18,175 má mať prístup k? 1363 01:11:18,175 --> 01:11:19,200 Profesor: Presne tak. 1364 01:11:19,200 --> 01:11:24,800 Takže myslíte, že na poruchy seg, off Limity, obmedzený priestor v pamäti 1365 01:11:24,800 --> 01:11:27,780 že by ste nemali dotýkať. 1366 01:11:27,780 --> 01:11:31,670 >> Takže celkom veľa, keď sa snažíte k index--, ako je napríklad 1367 01:11:31,670 --> 01:11:34,110 ste deklaroval array od nuly do deviatich. 1368 01:11:34,110 --> 01:11:37,360 Ale skúste sa dotknúť, že 10. hodnota, nemáte prístup k tomuto. 1369 01:11:37,360 --> 01:11:38,694 Vzhľadom k tomu, ste nie je deklarované to. 1370 01:11:38,694 --> 01:11:40,943 A tak váš počítač sa deje pozrieť sa na to byť ako, 1371 01:11:40,943 --> 01:11:43,440 uh oh, sa snažíte ísť mimo hranice indexu. 1372 01:11:43,440 --> 01:11:45,270 Budem vám chyba segmentácie. 1373 01:11:45,270 --> 01:11:46,590 >> Myslite ako segmentu, nie? 1374 01:11:46,590 --> 01:11:49,665 Extra segmentu, je porucha Pri pokuse o porušení niečo 1375 01:11:49,665 --> 01:11:50,790 a nemali by ste tam byť. 1376 01:11:50,790 --> 01:11:53,660 Porucha Segmentácia je kedykoľvek skúste sa dotknúť vecí 1377 01:11:53,660 --> 01:11:54,970 že by ste nemali dotýkať. 1378 01:11:54,970 --> 01:11:56,815 >> Takže bežné príklady sú index. 1379 01:11:56,815 --> 01:11:58,940 Samozrejme, ak sa snažíte dotýkať sa, že bol null, 1380 01:11:58,940 --> 01:12:00,220 že by tiež fungovať rovnako dobre. 1381 01:12:00,220 --> 01:12:02,300 Ak je váš ukazovateľ sa snažia dotýkať sa veci, ktoré by nemali dotknúť, 1382 01:12:02,300 --> 01:12:03,730 ktoré by tiež mohli fungovať rovnako dobre. 1383 01:12:03,730 --> 01:12:07,120 Väčšina zvyčajne budete vidieť v matici. 1384 01:12:07,120 --> 01:12:07,740 Všetci dobre? 1385 01:12:07,740 --> 01:12:10,374 >> Divákov: Takže ak chcete prístup 10. bod 1386 01:12:10,374 --> 01:12:12,290 a tam je len limit deviatich alebo tak niečo. 1387 01:12:12,290 --> 01:12:13,160 >> Profesor: Jo, presne tak. 1388 01:12:13,160 --> 01:12:13,660 Celkom veľa. 1389 01:12:13,660 --> 01:12:15,930 1390 01:12:15,930 --> 01:12:16,430 Super. 1391 01:12:16,430 --> 01:12:19,070 1392 01:12:19,070 --> 01:12:19,920 >> Váženie Andi. 1393 01:12:19,920 --> 01:12:23,440 Takže máme tieto podivuhodné veci volal druhy. 1394 01:12:23,440 --> 01:12:25,472 Ak Zlúčiť sort-- ako my píla v príklade, keď 1395 01:12:25,472 --> 01:12:27,180 David urobil celý vec class-- prečo, 1396 01:12:27,180 --> 01:12:29,760 ak je to tak oveľa rýchlejšie než niektorý z ďalších druhov, 1397 01:12:29,760 --> 01:12:33,310 prečo ešte obťažovať s vedomím ktorúkoľvek ďalšie druhy? 1398 01:12:33,310 --> 01:12:35,100 >> Čo je táto otázka skutočne po vás? 1399 01:12:35,100 --> 01:12:36,659 Čo je to tri word-- 1400 01:12:36,659 --> 01:12:37,950 Divákov: Čo je trade-off? 1401 01:12:37,950 --> 01:12:38,530 Profesor: Presne tak. 1402 01:12:38,530 --> 01:12:39,946 To je to, čo otázka sa pýta. 1403 01:12:39,946 --> 01:12:43,682 Čo je trade-off medzi Zlúčiť druh verša inými druhmi? 1404 01:12:43,682 --> 01:12:45,850 >> Publikum: berie na pamäti, že jo? 1405 01:12:45,850 --> 01:12:47,720 >> Profesor: Páči sa vám vysvetľujú, že trochu viac? 1406 01:12:47,720 --> 01:12:49,490 Najprv si vysvetlíme Zlúčiť obchod. 1407 01:12:49,490 --> 01:12:50,970 Ako Merge sort funguje? 1408 01:12:50,970 --> 01:12:55,220 >> Divákov: Tak to funguje tak, že delenie všetko do polovice 1409 01:12:55,220 --> 01:13:00,660 a potom ju dať dohromady a prerozdelenie to v poradí, 1410 01:13:00,660 --> 01:13:02,862 ako zakaždým, keď zlúčenie sady. 1411 01:13:02,862 --> 01:13:03,820 Profesor: Tak nejako. 1412 01:13:03,820 --> 01:13:06,861 Takže môžem čerpať na to, ale to by trvať mi päť minút čerpať ju von. 1413 01:13:06,861 --> 01:13:10,220 Pozrite sa späť na sekciu snímok kde sme pokryli merge sort. 1414 01:13:10,220 --> 01:13:10,790 Presne tak. 1415 01:13:10,790 --> 01:13:13,406 >> Takže spôsob, ako zlúčiť triedenie diela to je rozdeľuje veci na polovicu, 1416 01:13:13,406 --> 01:13:15,780 a potom to proste vyzerá u Prvý hodnoty všetci 1417 01:13:15,780 --> 01:13:17,000 a zoradí nielen to. 1418 01:13:17,000 --> 01:13:20,364 Neustále vytvára nové pole a kladie veci stále viac a viac v poradí. 1419 01:13:20,364 --> 01:13:23,030 A tak keď to je naozaj, ale naozaj rýchlo, pretože it's-- viete, 1420 01:13:23,030 --> 01:13:25,380 binárne vyhľadávanie je n log n. 1421 01:13:25,380 --> 01:13:27,880 Budete vytvárať toľko rôzne polia, ktoré ste nablízku 1422 01:13:27,880 --> 01:13:29,700 pomocou obrovské množstvo pamäte. 1423 01:13:29,700 --> 01:13:33,080 A tak aj keď je rýchlejší, obchod off Tu je, že používate viac pamäte. 1424 01:13:33,080 --> 01:13:38,490 >> A tak, náznak, druhy a vyhľadávanie boli pokryté oveľa viac v tomto roku 1425 01:13:38,490 --> 01:13:41,610 než tomu bolo v rokoch minulých. 1426 01:13:41,610 --> 01:13:45,100 Vy ste mali vidieť, že odráža zodpovedajúcim spôsobom na kvíz. 1427 01:13:45,100 --> 01:13:49,160 Rozhodne by som tráviť čas ísť nad tým, čo všetko z rôznych druhov 1428 01:13:49,160 --> 01:13:52,320 sú, ako binárne vyhľadávanie, ako lineárne hľadanie práce. 1429 01:13:52,320 --> 01:13:54,750 Ako možno pseudokód kódu tých von. 1430 01:13:54,750 --> 01:13:55,950 Aké sú prevádzková doba? 1431 01:13:55,950 --> 01:13:59,210 Niečo ako beh doby je veľmi ľahko kopírovať dole na poznámkový hárok, 1432 01:13:59,210 --> 01:13:59,710 v poriadku? 1433 01:13:59,710 --> 01:14:01,420 >> Je to naozaj ťažké, keď ste v stredu testy 1434 01:14:01,420 --> 01:14:02,390 a vy budete musieť prísť na to von. 1435 01:14:02,390 --> 01:14:03,160 Skopírujte ho dole. 1436 01:14:03,160 --> 01:14:05,550 Ja vám zaručiť, že ste bude vedieť, že. 1437 01:14:05,550 --> 01:14:06,860 Aké sú kompromisy? 1438 01:14:06,860 --> 01:14:10,064 V najhoršom prípade, najlepšom prípade scenára pre všetky z nich, veľmi poznať. 1439 01:14:10,064 --> 01:14:10,564 Jo? 1440 01:14:10,564 --> 01:14:12,730 >> Divákov: Potrebujeme, aby vedieť, ako sa kód merge sort? 1441 01:14:12,730 --> 01:14:15,470 Rovnako ako, potrebujeme pamätať rekurzívne? 1442 01:14:15,470 --> 01:14:18,950 >> Profesor: Veľmi o tom pochybujem, len pretože je to ako celkom komplikovaný. 1443 01:14:18,950 --> 01:14:22,282 Ale to nemusí byť neuskutočniteľné, keby sme požiadať, aby ste používali pseudocode to. 1444 01:14:22,282 --> 01:14:22,781 Jo. 1445 01:14:22,781 --> 01:14:25,470 1446 01:14:25,470 --> 01:14:29,170 >> Jo, OK, ešte jeden. 1447 01:14:29,170 --> 01:14:31,387 To môže prísť v ste posledný kus za chvíľu. 1448 01:14:31,387 --> 01:14:42,101 1449 01:14:42,101 --> 01:14:43,090 Jo? 1450 01:14:43,090 --> 01:14:44,930 Vari všetci počuť, že? 1451 01:14:44,930 --> 01:14:48,360 >> OK, tak do značnej miery prvý všetci, aký typ programu 1452 01:14:48,360 --> 01:14:51,000 bude vám dáva výkon, ako je tento? 1453 01:14:51,000 --> 01:14:54,350 Nezabudnite vás žiadal, aby sa dozvedeli o Tento nový typ ladenie nástroje? 1454 01:14:54,350 --> 01:14:57,340 Aké bolo meno jeho? 1455 01:14:57,340 --> 01:14:59,460 Valgrind, pravá 1456 01:14:59,460 --> 01:15:02,600 >> Bol to program, kde sa dalo nazvať, ktoré by mohli 1457 01:15:02,600 --> 01:15:05,940 Sledujte všetky pamäte, ktorú ste použitie vo vašom programe, a sa deje. 1458 01:15:05,940 --> 01:15:11,090 Takže ak máte niečo, ako: definitívne stratil, 40 bytov v jednom bloku. 1459 01:15:11,090 --> 01:15:14,870 Pravdepodobne nie ste spomenul si na to uvoľniť. 1460 01:15:14,870 --> 01:15:18,710 Vzhľadom k tomu, ak používate bajtov pamäti, to znamená, že ste si prístup, že pamäť, 1461 01:15:18,710 --> 01:15:20,240 ale vy ste neboli schopní oslobodiť. 1462 01:15:20,240 --> 01:15:21,948 Takže chcete, aby sa Uistite sa, že to tiež 1463 01:15:21,948 --> 01:15:31,420 pomocou free-- to je function-- oslobodiť všetky 1464 01:15:31,420 --> 01:15:34,930 pamäti znovu pridelený podľa malloc. 1465 01:15:34,930 --> 01:15:35,500 >> Super. 1466 01:15:35,500 --> 01:15:37,140 Takže tejto snímke, budem mať to. 1467 01:15:37,140 --> 01:15:41,050 Je to všade v mnohých prednášky, v mnohých sekcie snímok. 1468 01:15:41,050 --> 01:15:44,254 Naozaj chcete, aby sa ubezpečil, jednoducho viete, toto všetko. 1469 01:15:44,254 --> 01:15:47,170 Buď v poznámke liste, alebo ak ste Chcete ho pamätať, neváhajte. 1470 01:15:47,170 --> 01:15:48,836 To je naozaj, naozaj, naozaj dôležité. 1471 01:15:48,836 --> 01:15:53,200 1472 01:15:53,200 --> 01:15:56,890 >> Tiež veľmi dobrý otázka, ktorú môžeme pýtať. 1473 01:15:56,890 --> 01:16:00,320 Prečo je pohľad Selection sort-- na Výber sort-- všetky runtimes 1474 01:16:00,320 --> 01:16:02,060 n sú na druhú. 1475 01:16:02,060 --> 01:16:06,714 Bez ohľadu na to, ako sa zoznam príde vy ako, tak prečo je výber sort-- 1476 01:16:06,714 --> 01:16:08,630 Dám vám chlapci 30 Druhá premýšľať o tom. 1477 01:16:08,630 --> 01:16:10,700 Vzhľadom k tomu, je to trochu mätúce. 1478 01:16:10,700 --> 01:16:12,710 To so sebou nesie určité koncepčné myslenie. 1479 01:16:12,710 --> 01:16:16,470 Prečo by dobu chodu byť rovnaké v ako najhorší a najlepší prípad scenára? 1480 01:16:16,470 --> 01:16:28,850 1481 01:16:28,850 --> 01:16:30,000 >> Jo? 1482 01:16:30,000 --> 01:16:38,084 >> Divákov: Vzhľadom k tomu, Selection sort každý poloha alebo priestor v tomto malom poli 1483 01:16:38,084 --> 01:16:40,350 vec alebo čokoľvek iného. 1484 01:16:40,350 --> 01:16:44,430 Takže aj v najlepšom prípade, aj keď je to úplne radené, 1485 01:16:44,430 --> 01:16:47,380 to by ešte byť ako, OK, jeden. 1486 01:16:47,380 --> 01:16:49,000 V mojom prvom mieste mám jeden. 1487 01:16:49,000 --> 01:16:50,250 A prejsť všetky z nich. 1488 01:16:50,250 --> 01:16:51,249 OK, jedna je najmenší. 1489 01:16:51,249 --> 01:16:53,053 A potom to ide znova a je ako, OK, dva 1490 01:16:53,053 --> 01:16:54,594 je najmenší zo všetkých vecí. 1491 01:16:54,594 --> 01:16:56,804 Ale to ešte musí skontrolovať každý a každý. 1492 01:16:56,804 --> 01:16:57,470 Profesor: Jo. 1493 01:16:57,470 --> 01:17:00,490 Tak napríklad, povedzme, Máme zoznam, už je zoradený, 1494 01:17:00,490 --> 01:17:03,390 poľa jedna až päť. 1495 01:17:03,390 --> 01:17:07,100 Spôsob, akým výberu druhov je, že prechádza, kontroluje aj týchto dvoch. 1496 01:17:07,100 --> 01:17:08,234 Potom sa skontroluje tí dvaja. 1497 01:17:08,234 --> 01:17:09,650 A potom to kontroluje a kontroluje. 1498 01:17:09,650 --> 01:17:13,285 Udržuje kontrolu všetkých z nich, bez ohľadu na to, či 1499 01:17:13,285 --> 01:17:14,160 je to vlastne zoradené. 1500 01:17:14,160 --> 01:17:16,450 Vzhľadom k tomu, že je to jednoducho spôsob, akým sa triedenie funguje. 1501 01:17:16,450 --> 01:17:19,530 >> A tak táto otázka je niečo ako koncepčné otázka, budeme pýtať. 1502 01:17:19,530 --> 01:17:21,430 Tam, kde ako prvý, aby ste viem, aké pre výber 1503 01:17:21,430 --> 01:17:23,304 je, právo, aby bolo možné odpovedať na otázku. 1504 01:17:23,304 --> 01:17:26,200 Musíte byť schopní porozumieť koncepčne, čo sa deje. 1505 01:17:26,200 --> 01:17:30,760 A potom môžete použiť, a premýšľať, OK poďme si predstaviť najhorší možný scenár. 1506 01:17:30,760 --> 01:17:32,230 Všetci sú v zostupnom poradí. 1507 01:17:32,230 --> 01:17:33,290 Ako by to mať vplyv na to? 1508 01:17:33,290 --> 01:17:34,650 >> Čo ak je to vzostupnom poradí? 1509 01:17:34,650 --> 01:17:35,640 Ak je to už je zoradený? 1510 01:17:35,640 --> 01:17:37,240 Ako by to vplyv na dobu chodu? 1511 01:17:37,240 --> 01:17:40,270 A potom Selection sort, zistíte, že nie je v skutočnosti nezáleží. 1512 01:17:40,270 --> 01:17:43,500 Vzhľadom k tomu, máte kontrolu všetky hodnoty bez ohľadu na to, čo sa deje. 1513 01:17:43,500 --> 01:17:45,810 >> A tak dobré veci na pamäti. 1514 01:17:45,810 --> 01:17:50,290 Prečo niektoré druhy sa líšia od ostatných a ako najlepšie a najhoršie prípad, 1515 01:17:50,290 --> 01:17:52,740 by mohli ovplyvniť všetky z nich. 1516 01:17:52,740 --> 01:17:56,700 >> Budem naozaj hit v druhoch pretože to bude na kvíz. 1517 01:17:56,700 --> 01:17:57,199 Jo. 1518 01:17:57,199 --> 01:18:00,820 1519 01:18:00,820 --> 01:18:01,320 OK. 1520 01:18:01,320 --> 01:18:05,590 K dispozícii je šesť minút zostáva. 1521 01:18:05,590 --> 01:18:09,880 Dokážem sa tri minúty otázok. 1522 01:18:09,880 --> 01:18:12,290 Môžem tiež poflakovať pre rovnako ako 20 minút po oddielu 1523 01:18:12,290 --> 01:18:13,850 Ak chcete klásť otázky rovnako. 1524 01:18:13,850 --> 01:18:16,330 Má niekto proste naozaj krátky otázky alebo koncepčné otázky 1525 01:18:16,330 --> 01:18:17,360 sú nejasné, práve teraz? 1526 01:18:17,360 --> 01:18:17,832 Jo? 1527 01:18:17,832 --> 01:18:19,720 >> Divákov: Môžeš hovoriť trochu niečo o bitové operátorov? 1528 01:18:19,720 --> 01:18:20,280 >> Profesor: Jo. 1529 01:18:20,280 --> 01:18:22,446 Takže bitové operátory sú niečo, čo pravdepodobne 1530 01:18:22,446 --> 01:18:24,170 Možno len chcete dať na svoj list. 1531 01:18:24,170 --> 01:18:27,540 Tak quickly-- Nechcem ísť do hĺbky príliš veľa 1532 01:18:27,540 --> 01:18:31,164 pretože Harvardu, v ich preskúmania sedenie, to skryl celkom dobre. 1533 01:18:31,164 --> 01:18:33,080 Bitová operátor, je tu päť z nich, že jo? 1534 01:18:33,080 --> 01:18:41,370 >> Tam je to, čo je x alebo funkciu, tam je ampersand, ktorý je a. 1535 01:18:41,370 --> 01:18:44,050 Pipe, ktorý je, alebo. 1536 01:18:44,050 --> 01:18:46,790 A potom máte dve rôzne druhy smien. 1537 01:18:46,790 --> 01:18:50,610 >> Keby som vám dve hodnoty, pokiaľ je to Dám vám, ako je, jedného a jeden. 1538 01:18:50,610 --> 01:18:52,390 Čo by to vyhodnotiť? 1539 01:18:52,390 --> 01:18:55,490 Ak dám vám pravda a pravda, pravda? 1540 01:18:55,490 --> 01:18:56,930 Čo pravdivé alebo nepravdivé? 1541 01:18:56,930 --> 01:18:57,830 Stále platí, že jo? 1542 01:18:57,830 --> 01:18:59,762 Vzhľadom k tomu, že to či. 1543 01:18:59,762 --> 01:19:01,220 Budeme s najväčšou pravdepodobnosťou vám čísla. 1544 01:19:01,220 --> 01:19:03,780 Takže pamätajte, že človek sa rovná pravda, nula sa rovná false. 1545 01:19:03,780 --> 01:19:07,407 A mohli by sme dať tieto veci a požiada vás, aby nám povedali, čo sa stane. 1546 01:19:07,407 --> 01:19:10,240 Harvard pokrýva ju počas prvých 10 minút svojho študijného zasadania 1547 01:19:10,240 --> 01:19:11,230 naozaj, naozaj dobre. 1548 01:19:11,230 --> 01:19:14,260 Takže vy chcete, aby istí, že sa pozriete späť na to. 1549 01:19:14,260 --> 01:19:16,387 >> Publikum: Je pisa5 Bude na kvíz? 1550 01:19:16,387 --> 01:19:16,970 PROFESSOR: Nie. 1551 01:19:16,970 --> 01:19:18,240 Ani sa na pisa5 práve teraz. 1552 01:19:18,240 --> 01:19:18,810 Je to ťažké. 1553 01:19:18,810 --> 01:19:22,830 Len to ani neobťažoval pri pohľade na pisa5. 1554 01:19:22,830 --> 01:19:25,665 >> Avšak, ako niektoré rady a návrhy, ja 1555 01:19:25,665 --> 01:19:28,320 by naznačovali, začnete pisa5 akonáhle test je u konca. 1556 01:19:28,320 --> 01:19:30,319 To bude najťažšie týždeň, ale potom chlapci 1557 01:19:30,319 --> 01:19:34,590 bude odovzdaná to na kopcoch z Rolling Green a šteňatá, 1558 01:19:34,590 --> 01:19:36,115 a je to v poriadku. 1559 01:19:36,115 --> 01:19:39,810 >> Táto trieda dostane významný jednoduchšia po piatom pset. 1560 01:19:39,810 --> 01:19:41,560 Publikum: Úradné hodiny sú nedele, pondelok? 1561 01:19:41,560 --> 01:19:44,260 Profesor: Jo, takže úradné hodiny bude nedele na pondelok na pset. 1562 01:19:44,260 --> 01:19:47,009 Úradné hodiny dnes večer v podstate bude len hodnotený kvízu. 1563 01:19:47,009 --> 01:19:50,350 Ak chce niekto prísť a opýtať sa TAS otázka, budeme tam. 1564 01:19:50,350 --> 01:19:53,220 >> Vezmem si možno ešte jednu otázku ak má niekto otázku? 1565 01:19:53,220 --> 01:19:53,809 Jo? 1566 01:19:53,809 --> 01:19:55,850 Divákov: Keď ste definujúce uzly, [nepočuteľných] 1567 01:19:55,850 --> 01:20:00,700 ak poviete uzla hviezdy a potom ďalšie, robí automaticky počítače 1568 01:20:00,700 --> 01:20:03,610 pochopiť, že ste s odkazom na iný ukazovateľ? 1569 01:20:03,610 --> 01:20:04,580 >> PROFESSOR: Nie. 1570 01:20:04,580 --> 01:20:06,710 >> Divákov: Musíš znovu zostaviť to [nepočuteľných]? 1571 01:20:06,710 --> 01:20:09,270 >> Profesor: Takže v podstate struct uzla je, pamätajte, 1572 01:20:09,270 --> 01:20:12,620 je to ako by ste vytvoriť uzol a potom máte ukazovateľ s názvom ďalšie. 1573 01:20:12,620 --> 01:20:14,630 Všetko, čo robíte, je s štruktúra tam. 1574 01:20:14,630 --> 01:20:16,387 Musíte priradiť že ukazovateľ niekde. 1575 01:20:16,387 --> 01:20:18,470 Takže počítača nie je viem, čo to ešte robí. 1576 01:20:18,470 --> 01:20:20,250 Musíte skutočne priradiť, keď ste vytváranie prepojeného zoznamu. 1577 01:20:20,250 --> 01:20:22,170 A to je to, čo hlavne pset 5 bude ďalej. 1578 01:20:22,170 --> 01:20:24,106 Takže žiadne obavy o nič z toho práve teraz. 1579 01:20:24,106 --> 01:20:26,380 >> Divákov: Tak my nemusíme príliš sústredí na zozname odkazov, len 1580 01:20:26,380 --> 01:20:27,440 všeobecné koncepcie? 1581 01:20:27,440 --> 01:20:30,980 >> Profesor: Len do značnej miery komíny, frontu, odkaz zoznamy, stromy, hashovacie tabuľky. 1582 01:20:30,980 --> 01:20:33,639 Len mať možnosť spoznať, čo sú. 1583 01:20:33,639 --> 01:20:35,680 Nebudeme sa opýtať vám nič konkrétneho páči 1584 01:20:35,680 --> 01:20:39,300 preto, že sme sa naozaj urobil pset, že sa vzťahuje na nič z toho doteraz. 1585 01:20:39,300 --> 01:20:45,540 >> Takže v posledných dvoch minútach pred Ja vás oslobodí zabiť tento kvíz. 1586 01:20:45,540 --> 01:20:49,370 Celkom veľa, rovnako ako, premýšľať o tom, ako ďaleko ste chlapci prišli v tejto triede. 1587 01:20:49,370 --> 01:20:52,820 >> Spomínam si, keď sa dvaja týždeň tejto triedy, niektorí z vás 1588 01:20:52,820 --> 01:20:55,720 trávia tri hodiny písania vodu. 1589 01:20:55,720 --> 01:20:57,970 Ako dlho by trvalo, než si chlapci písať vodu teraz? 1590 01:20:57,970 --> 01:20:59,670 30 sekúnd, možno? 1591 01:20:59,670 --> 01:21:01,810 Premýšľajte o tom, ako moc vy ste sa naučili. 1592 01:21:01,810 --> 01:21:04,320 CS je naozaj, naozaj ťažké tému. 1593 01:21:04,320 --> 01:21:06,190 Niet pochýb o tom. 1594 01:21:06,190 --> 01:21:09,160 Je to ťažké, to je dôvod, prečo nikto študuje. 1595 01:21:09,160 --> 01:21:10,730 Je to jednoducho ťažké. 1596 01:21:10,730 --> 01:21:11,650 A je to úplne v poriadku. 1597 01:21:11,650 --> 01:21:14,150 >> A som naozaj hrdý, že každý robil to tak ďaleko. 1598 01:21:14,150 --> 01:21:16,380 Psets nie je ľahké. 1599 01:21:16,380 --> 01:21:17,790 Berú veľa času. 1600 01:21:17,790 --> 01:21:22,580 Vy chlapi, nikdy vás požiadať, aby ste napísať hra 15 alebo Vigener na pset. 1601 01:21:22,580 --> 01:21:24,160 Nie je potrebné len vyšilovat o tom. 1602 01:21:24,160 --> 01:21:28,080 Všetko, čo testujeme tu je zhodnotiť Váš konceptuálne vedomosti, ako aj 1603 01:21:28,080 --> 01:21:31,524 ako niektoré z vašich základných zručností kódovania. 1604 01:21:31,524 --> 01:21:33,440 Test je navrhnutý tak, aby byť naozaj náročné. 1605 01:21:33,440 --> 01:21:36,180 Rovnako ako, že je navrhnutý tak, pre vás dostať 100. 1606 01:21:36,180 --> 01:21:39,880 Je určený aj pre vás pravdepodobne nebude môcť dokončiť za 75 minút. 1607 01:21:39,880 --> 01:21:41,995 A to je úplne v pohode. 1608 01:21:41,995 --> 01:21:42,870 Som študent sám. 1609 01:21:42,870 --> 01:21:45,960 Ja viem, ja neznášam, keď som chodiť z kvíz vyzerať, hovno. 1610 01:21:45,960 --> 01:21:47,044 To bolo naozaj ťažké. 1611 01:21:47,044 --> 01:21:49,460 Asi to, čo sa deje na happen-- a to je úplne v poriadku, 1612 01:21:49,460 --> 01:21:50,751 Hovorím vám chalani práve teraz. 1613 01:21:50,751 --> 01:21:53,190 Prostriedky na týchto veciach nie sú vysoké vôbec. 1614 01:21:53,190 --> 01:21:55,360 >> A pre tých z vás, ktorí Boli stále, rovnako ako, 1615 01:21:55,360 --> 01:21:57,870 trojky na Váš problém súpravy, to neznamená, že ste 1616 01:21:57,870 --> 01:21:59,536 bude mať 60 percent v tejto triede. 1617 01:21:59,536 --> 01:22:01,440 Ak sa dostanete 60% na kvíz, ktorý nemá 1618 01:22:01,440 --> 01:22:03,330 znamenať, budete dostať D v tejto triede. 1619 01:22:03,330 --> 01:22:05,740 Vidíme, hlavne ja, pre tých z vás, v mojej časti, 1620 01:22:05,740 --> 01:22:07,406 Vidím, ako ťažké vy všetci pracujú. 1621 01:22:07,406 --> 01:22:09,190 A ja som sledovať to. 1622 01:22:09,190 --> 01:22:11,420 >> Vy bude v poriadku. 1623 01:22:11,420 --> 01:22:14,580 Neexistuje žiadna inštitucionálnu pamäť šťastie na konci semestra. 1624 01:22:14,580 --> 01:22:16,840 Pretože všetky deti Harvard hovoria ich priatelia, oh, budete v poriadku. 1625 01:22:16,840 --> 01:22:18,381 Nikto vám hovorí, že chlapci tu. 1626 01:22:18,381 --> 01:22:20,950 Takže musím vám povedať, že chlapci tu. 1627 01:22:20,950 --> 01:22:22,280 >> Vy bude v poriadku. 1628 01:22:22,280 --> 01:22:24,080 Som tak hrdý na všetkých z vás. 1629 01:22:24,080 --> 01:22:25,680 Skúška bude ťažké. 1630 01:22:25,680 --> 01:22:28,140 Štúdia na to, a potom proste vyhodiť. 1631 01:22:28,140 --> 01:22:31,280 Pripravte sa učiť nové veci. 1632 01:22:31,280 --> 01:22:33,990 A jesť sladkosti. 1633 01:22:33,990 --> 01:22:35,940 Máme veľa cukroví. 1634 01:22:35,940 --> 01:22:37,760 >> Doprajte si dobrý nočný spánok. 1635 01:22:37,760 --> 01:22:40,420 Nenechajte spať, pretože to by bolo naozaj zlé. 1636 01:22:40,420 --> 01:22:41,490 CS je veľa logiky. 1637 01:22:41,490 --> 01:22:44,960 Ak nechcete spať, nemôžete fungovať, a váš mozog nemôže fungovať. 1638 01:22:44,960 --> 01:22:48,780 A ja budem tu pre ďalšie 20 minút, ak niekto chce poflakovať. 1639 01:22:48,780 --> 01:22:51,150 Vy sa chystáte ju zabiť. 1640 01:22:51,150 --> 01:22:53,000 Veľa štastia. 1641 01:22:53,000 --> 01:22:55,663