1 00:00:00,000 --> 00:00:02,750 >> [9] [erosoagoa] 2 00:00:02,750 --> 00:00:04,750 [Rob Bowden] [Harvardeko Unibertsitateko] 3 00:00:04,750 --> 00:00:06,750 [Hau CS50.] [CS50.TV] 4 00:00:06,750 --> 00:00:12,130 >> Guztiak eskubidea. Funtsean, gaur egun guztiak you guys sortu da galdera batzuk eskatu. 5 00:00:12,130 --> 00:00:15,070 Gai batzuekin ibiltzea gai izan daiteke I 6 00:00:15,070 --> 00:00:17,570 inork ez edozein galdera eskatu badu apur bat. 7 00:00:17,570 --> 00:00:20,660 Zorionez, ez duzu. Norbaitek galderaren bat egin nahi? 8 00:00:20,660 --> 00:00:25,220 Agian iragan galdetegiak, gauzak ez zara gaur egun eroso. 9 00:00:34,630 --> 00:00:37,850 >> Bai. >> [Student] Ezin duzu bufferraren gainezkatzea erasoak baino gehiago joan? >> [Rob] Noski. 10 00:00:37,850 --> 00:00:45,530 Adibidez nagusietako benetan hementxe izan daiteke. 11 00:00:45,530 --> 00:00:48,720 Bufferraren gainezkatzea erasoak atzean akordio nagusiak dira 12 00:00:48,720 --> 00:00:51,540 buffer batzuk ditugu, hemen. 13 00:00:51,540 --> 00:00:54,110 Char c - duen tamaina 12 baino ez da - 14 00:00:54,110 --> 00:00:57,580 baina gero zerbait txertatu gara buffer horretan 15 00:00:57,580 --> 00:01:00,050 baina ez zehazki egiaztapena zenbat txertatu ari gara. 16 00:01:00,050 --> 00:01:06,740 Hemen strlen (bar) txertatu gara C sartu, baina, nork daki nola bar luzea da. 17 00:01:06,740 --> 00:01:11,970 12 karaktere baino gehiago bada, orduan hau da Buffer honek gainezka egingo. 18 00:01:11,970 --> 00:01:15,830 Argazki hau begira - 19 00:01:15,830 --> 00:01:20,840 hartu duzu bada 61 askoz gehiago ezagutzen jasoko duzu diseinua moduko honekin 20 00:01:20,840 --> 00:01:25,760 eta gorde marko erakuslea eta itzulera helbidea eta gurasoen errutina pila aurre 21 00:01:25,760 --> 00:01:27,760 eta benetako gauza horiek guztiak. 22 00:01:27,760 --> 00:01:31,340 Baina hemen behar duzun besterik ez dugu izan duten jakin nahi 23 00:01:31,340 --> 00:01:35,990 gure buffer espazio txiki honetan. 24 00:01:35,990 --> 00:01:39,480 Hemen c (0) dugu eta, ondoren, c, 1, 2, 3, 4, 5 eta abar ditugu. 25 00:01:39,480 --> 00:01:44,810 Egoera normalean buffer hori beteko genuke ohiko bakoitzeko. 26 00:01:44,810 --> 00:01:50,480 Dugu sartuta badago 'kaixo' h-e-l-l-o / 0 genuke, 27 00:01:50,480 --> 00:01:52,900 eta, ondoren, espazio huts mordo bat. 28 00:01:52,900 --> 00:01:57,910 Hacker bat - oh, asmatzen dut honen adibidea da. 29 00:01:57,910 --> 00:02:02,470 Hacker bat non honen antzeko zerbait lortuko dugu 30 00:02:02,470 --> 00:02:04,760 zer zehazki egiten saiatzen ari dira da 31 00:02:04,760 --> 00:02:07,890 normalean itzulera helbidea gainidatzi. 32 00:02:07,890 --> 00:02:12,510 Funtzio bat deitzen duzunean eta zure pila markoa lortzen pila gainean bultzatu 33 00:02:12,510 --> 00:02:14,690 pila marko horren beharra jakin nola - 34 00:02:14,690 --> 00:02:21,020 ondo, que ha sido izeneko funtzioa nola duten izeneko funtzioa itzultzeko jakin behar da. 35 00:02:21,020 --> 00:02:23,780 Beraz, nagusia deiak foo bada, foo behar nagusira itzultzeko, 36 00:02:23,780 --> 00:02:26,300 eta, beraz, hori da bueltan helbide honetan du. 37 00:02:26,300 --> 00:02:28,800 Baina zer hacker egin egingo da 38 00:02:28,800 --> 00:02:30,820 baliogabetu egiten da bueltan helbide bat bereziak dituzten 39 00:02:30,820 --> 00:02:40,090 non berriro - Little Indian - ez da erraza baina byte bakoitza atzeraka. 40 00:02:40,090 --> 00:02:47,300 Bueltan helbide honetan neurrian ordenagailua dagokionez 41 00:02:47,300 --> 00:02:51,390 helbide honetara itzuli foo itzuli baliokidea edo nagusia 42 00:02:51,390 --> 00:02:53,850 edo dena funtzioa deitzen da. 43 00:02:53,850 --> 00:02:54,800 Beraz, helbide honetara itzultzeko joan 44 00:02:54,800 --> 00:02:58,130 Horrek Beraz, zerbait gertatzen helbide honetan izango da 45 00:02:58,130 --> 00:03:04,740 eta horrek bai, batzuetan hemen egin dute itzulera helbidea erabili 46 00:03:04,740 --> 00:03:09,150 dakite duten funtzio zehatz bat da dagoeneko. 47 00:03:09,150 --> 00:03:12,630 Ezin dut gogoratu zer funtzioa deitzen. 48 00:03:12,630 --> 00:03:14,630 Nahi izan ezkero beranduago begiratu dut. 49 00:03:14,630 --> 00:03:17,570 >> Hona hemen zer egiten ari dira da itzulera helbidea pasatuz 50 00:03:17,570 --> 00:03:26,310 pila bera, eta hau non zertxobait arraroa da 51 00:03:26,310 --> 00:03:29,530 daude memoria non adibiderik - 52 00:03:29,530 --> 00:03:34,350 memoria zatitu daiteke irakurtzeko soilik, irakurri-idatzi sartu, eta memoria exekutagarria 53 00:03:34,350 --> 00:03:38,710 non memoria irakurtzeko soilik ikusi dugu aurretik non - 54 00:03:38,710 --> 00:03:43,960 char * s esan badut = kaixo ezin dut kaixo aldatu. 55 00:03:43,960 --> 00:03:46,200 Hori irakurtzeko soilik memoria. 56 00:03:46,200 --> 00:03:49,570 Ez da, gainera memoria exekutagarria ideia hau 57 00:03:49,570 --> 00:03:53,870 non memoria exekutagarria testua zure kodea segmentu izango litzateke. 58 00:03:53,870 --> 00:03:57,350 Zure ohiko helbide-espazio diseinua begira - 59 00:03:57,350 --> 00:04:03,090 Uste dut hori irudi ona izango da - 60 00:04:08,200 --> 00:04:12,170 Horrela funtzionatzen - non gure pila dugu hemen. Datuak memoria dugu. 61 00:04:12,170 --> 00:04:16,360 Ignore honetan, funtsean. Hau gure zeure da. 62 00:04:16,360 --> 00:04:18,810 Eta gero behera hemen dugu gure programa kode nagusia. 63 00:04:18,810 --> 00:04:27,480 Honen lekuan char bezala gure kateak jarri genituen * = kaixo antzekoa da 64 00:04:27,480 --> 00:04:29,730 eta hori irakurtzeko soilik. 65 00:04:29,730 --> 00:04:33,590 Baina zuk izan ere programa kode nagusia hau markatu exekutagarri gisa. 66 00:04:33,590 --> 00:04:37,950 Eta zuk egiten badira edo sistema eragilea ez dela behar bezala 67 00:04:37,950 --> 00:04:40,910 ondoren, memoria-leku bakarra izan behar du 68 00:04:40,910 --> 00:04:44,830 kodea duten benetan exekutatu ahal 69 00:04:44,830 --> 00:04:48,550 horrek esan nahi bufferraren gainezkatzea erasoa moduko hori hemen baino gehiago dugu 70 00:04:48,550 --> 00:04:53,800 eraginkorra izango litzateke, hau da, memoria exekutatu hemen gure pila saiatzen delako. 71 00:04:53,800 --> 00:04:57,230 Ohartu pictures lehen dira. 72 00:04:57,230 --> 00:04:59,270 Gure pila hazi behar dugu. 73 00:04:59,270 --> 00:05:01,270 Hemen pila behera hazten ari da. 74 00:05:01,270 --> 00:05:03,270 CS50 helburuetarako pila hazten gora. 75 00:05:03,270 --> 00:05:09,520 >> Posible da bufferraren gainezkatzea mota jakin hori saihesteko 76 00:05:09,520 --> 00:05:15,110 memoria eskualde exekutagarri horiek izatea eskualdeek ez exekutagarrian arabera. 77 00:05:15,110 --> 00:05:21,420 Baina besterik ez da gertatzen gutxitan memorian exekutagarria exekutagarri gisa markatu duten. 78 00:05:21,420 --> 00:05:26,520 Joera besterik ez da irakurtzeko soilik eta berriro idatzi izan direla erabiltzen dira gauza bakarra, 79 00:05:26,520 --> 00:05:28,990 beraz, hau da, oraindik oso eraginkorra. 80 00:05:28,990 --> 00:05:31,950 Eta hemen jarri genezake nahi dugun edozein dela ere. 81 00:05:31,950 --> 00:05:35,020 Ez zen benetan Pset gisa egindako 61 urte honetan, 82 00:05:35,020 --> 00:05:38,400 baina begiratzen baduzu iaz da eskaintza edo edozein aurreko urteko aldi 83 00:05:38,400 --> 00:05:44,110 Pset bat da ari zehazki sartzerakoan hemen kode hori ustezko ustezko duzu 84 00:05:44,110 --> 00:05:48,960 Balio jakin batzuk inprimatu edo dela ezberdina balio bat itzuli 85 00:05:48,960 --> 00:05:51,400 hori inprimatu behar ustezko balioa. 86 00:05:51,400 --> 00:05:57,770 Edo are gehiago cleverly, deitu duzu edo idatzi nahi du - 87 00:05:57,770 --> 00:06:03,320 beraz, hau itzuliko da hemen eta, ondoren, kodetze batzuk hemen exekutatu dituzu, 88 00:06:03,320 --> 00:06:09,720 eta gainezkatzerik of cleverest gero zer izan bueltan helbide honetara itzultzeko. 89 00:06:09,720 --> 00:06:11,970 Honi jaramonik egin behar dugu, beraz, nahiz eta 90 00:06:11,970 --> 00:06:16,720 hona etorri, oraindik ere bueltan helbide hori gogoratzen dugu nonbait 91 00:06:16,720 --> 00:06:18,890 horrela dugu nagusian edo dena itzultzeko, 92 00:06:18,890 --> 00:06:23,800 eta atsegin dugu inoiz ere nabaritu gauzak gaizki joan da. 93 00:06:23,800 --> 00:06:30,100 Baina gauzak egin beraz, hori horrela non agian barruan hemen gelbroke dugu gure iPhone da. 94 00:06:30,100 --> 00:06:35,670 Gauza normal gisa joan - programa batzuk exekutatu dugu eta horrelako gauzak, azkenean itzuli 95 00:06:35,670 --> 00:06:38,540 edozein dela ere, ez da eta itzultzeko ustezko, baina, bien bitartean, 96 00:06:38,540 --> 00:06:41,820 sistema eragilea osoa suntsitzeko kudeatzen duzu. 97 00:06:41,820 --> 00:06:50,950 Zuk ez duzu buffer erremediagune buruzko edo benetan aprobetxatuz haren kodea ezagutzeko. 98 00:06:50,950 --> 00:06:58,060 Behar ez duzu honen oinarrizko ideiak ezagutzeko duten gainez ari bufferraren da, 99 00:06:58,060 --> 00:07:02,010 eta honen arrazoia dela gainez daiteke delako ez gabiltza ala ez egiaztatzen da 100 00:07:02,010 --> 00:07:06,110 benetan gara hura mugen barruan. 101 00:07:06,110 --> 00:07:09,880 >> [Student] besterik ez da mugetatik egiaztapena prebenitzeko Irtenbidea? 102 00:07:09,880 --> 00:07:13,600 [Rob] Bai. Kasu honetan konponbidea litzateke 103 00:07:13,600 --> 00:07:20,850 bai esan ahal izango duzu bar strlen da 12-1 baino handiagoa bada - 104 00:07:20,850 --> 00:07:24,970 / 0 izan behar duzulako amaieran - 105 00:07:24,970 --> 00:07:34,090 edo eskuz izan duzu loop kopiak lehen 11 karaktere hori bakarrik, 106 00:07:34,090 --> 00:07:39,710 edo ia ezer non benetan ari zaren ziur ez duzu buffer duten gainezka egin den egiaztatzea. 107 00:07:45,580 --> 00:07:49,050 >> Beste galdera? Bai? 108 00:07:49,050 --> 00:07:52,760 [Ikasleak] saiatzen eta, agian programazio (inaudible) buruz zerbait buruz hitz egin duzu. 109 00:07:52,760 --> 00:07:58,720 [Rob] Noski. 110 00:07:58,720 --> 00:08:03,500 Benetako programa - 111 00:08:03,500 --> 00:08:08,190 ez genuke inoiz egin trie baten inplementazio bat egin nahi duzu azterketa 112 00:08:08,190 --> 00:08:12,840 hash taulak egin dutenei desleiala izango litzateke delako. 113 00:08:12,840 --> 00:08:16,030 Eta, era berean, ez genuke inoiz egin azterketa hash taula bat ezartzeko 114 00:08:16,030 --> 00:08:18,560 nor saiatzen zutenak desleiala izango litzateke delako. 115 00:08:18,560 --> 00:08:25,220 Hala ere, jakin behar duzu trie bat edo hash taula baten egitura, edo dena delakoa, eta egitura. 116 00:08:25,220 --> 00:08:30,230 Hori da benetan edozein ikusi dugu datu-egitura moduko egia. 117 00:08:30,230 --> 00:08:33,559 Lotuta zerrendak, pilatuta skews, zuhaitz bitar - 118 00:08:33,559 --> 00:08:38,190 structs horiek definitzeko bihotza gai izan behar duzu. 119 00:08:38,190 --> 00:08:44,810 Trie A - hori egin behar izango duzu gauza bakarra esan nahi du agian ematen dizugu 120 00:08:44,810 --> 00:08:50,070 Hitz batzuk edo zerbait eta esan dugu trie hori eraiki - 121 00:08:50,070 --> 00:08:52,870 agian, hitz multzo bat emango dizugu 122 00:08:52,870 --> 00:08:56,280 eta hori hiztegi honek adierazten trie bat eraikitzea bezala gaude. 123 00:08:56,280 --> 00:09:05,980 >> Egin dezagun gure hiztegi katua eta txakurra. 124 00:09:05,980 --> 00:09:10,790 Trie ideia da hasten gara array honekin - 125 00:09:10,790 --> 00:09:16,510 26 slots - 126 00:09:16,510 --> 00:09:24,490 eta zirrikitua bakoitzean benetako zirrikituaren indizearen hizki horrekin kezkatuta gaude dagokio. 127 00:09:24,490 --> 00:09:28,560 Beraz, hemen, gara katu txertatzeko gure trie sartzen saiatzen ari bazara 128 00:09:28,560 --> 00:09:35,360 lehen karaktere 'c' eta hori izango da, 'a 0 bada orduan b da 1, c 2 da.' 129 00:09:35,360 --> 00:09:38,090 Bigarren indizea sartzen joan goaz, 130 00:09:38,090 --> 00:09:41,100 eta ari gara trie bat sortu nahi duten off joan. 131 00:09:41,100 --> 00:09:47,080 26 slots izan goaz. 132 00:09:47,080 --> 00:09:51,140 Indize katua bigarren pertsonaia eta orduan ditugun. 133 00:09:51,140 --> 00:09:53,340 Duten 'a' zein da 0 spot izango da. 134 00:09:53,340 --> 00:09:56,960 Eta hori 26 lekuak izan. 135 00:09:56,960 --> 00:10:05,650 Ondoren, joan 't' nahi dugu, eta, gainera genuke behera datozen zein mota da, benetan garrantzitsua 136 00:10:05,650 --> 00:10:13,990 delako - ditzagun etorriko da hemen. Hemen gure 't' para trie da. 137 00:10:13,990 --> 00:10:23,370 Demagun honek 't' da indizea da 19. 138 00:10:23,370 --> 00:10:31,020 To saiatzen buruzko Garrantzitsuena gogoratzeko ezin duzu besterik gabe, gorde erakusle horien arrastoa. 139 00:10:31,020 --> 00:10:35,470 Izan ere segimendua egiteko, hau da, benetan ote den hitz baten amaieran. 140 00:10:35,470 --> 00:10:38,570 Beraz, hemen barruan dioen bandera nolabaiteko behar dugu 141 00:10:38,570 --> 00:10:41,520 ados, hau da, benetan hitz baten amaieran. 142 00:10:41,520 --> 00:10:46,830 Arrazoia beranduago saiatu gara hondamendi txertatzeko gure hiztegi sartu bada izatearen 143 00:10:46,830 --> 00:10:49,930 bertan bera hasita 3 karaktereak dauzka 144 00:10:49,930 --> 00:10:57,250 baina urrunago doa hori hitz baten amaiera dela aitortu behar dugu. 145 00:10:57,250 --> 00:11:01,330 Edo, bestela 'ca' bilatzeko saiatzen bagara eta horrek, agian, ez da hitz bat 146 00:11:01,330 --> 00:11:06,100 baina lortuko dugu behera hemen orduan dugu - 147 00:11:06,100 --> 00:11:10,270 edo litzateke c izango da eta ondoren, itxura batean ematen du - 148 00:11:10,270 --> 00:11:13,940 aitortu behar dugu ez dagoela nodo hau irteten da erakuslea da, nahiz 149 00:11:13,940 --> 00:11:15,940 ez du hitza amaieran irudikatzeko. 150 00:11:15,940 --> 00:11:19,430 >> Beraz, zer esan nahi duten - zer zinen esan du? 151 00:11:19,430 --> 00:11:22,760 Zer esan nahi du gure egiturari itxura? 152 00:11:22,760 --> 00:11:25,760 [Ikaslea] erakusleak array bat hori da, 26 luze eta ondoren bool bat izan ziren edo ez ziren da. 153 00:11:25,760 --> 00:11:47,430 [Rob] Bai. Beraz, izan dugu baten egiturari trie * erakusleak - Hemen dugu esan [26] on 154 00:11:47,430 --> 00:11:49,590 eta, ondoren, hemen baino gehiago puntu eta koma. 155 00:11:49,590 --> 00:11:53,210 Baina Pset oinarrituta, halaber, apostrophes kontuan behar dugu, 156 00:11:53,210 --> 00:11:58,170 beharrezko hard-kodea indizea 27 edo zerbait apostrofoa duzula horrek esan. 157 00:11:58,170 --> 00:12:00,440 Baina hemen 26 bakarrik buruz zaintzen dugu. 158 00:12:00,440 --> 00:12:11,830 Eta gero, agian, in char edo bool behar dugu - dezagun deitu hitza da. 159 00:12:11,830 --> 00:12:18,120 Hori da, 2, 3 gauza dela uste dut inoiz litzateke duzu behar saiatzen buruz jakin baten - 160 00:12:18,120 --> 00:12:24,370 horiek eraikitzeko, horietako egiturari, eta azken gauza horietako exekuzio-denbora da. 161 00:12:24,370 --> 00:12:28,250 >> Zer da trie baten exekuzio - edo trie batean lookup du? 162 00:12:28,250 --> 00:12:47,500 Hau da, non esaten dugu o (k) non k hitza dira bilatzen gertatuko dugu luzera da da; 163 00:12:47,500 --> 00:12:53,850 baina aldi berean esaten dugu - gutxienez Pset 5 speller mesedetan - esaten dugu 164 00:12:53,850 --> 00:12:59,470 hiztegian hitzik luzeena 45 karakteretara mugatuta dago, beraz, hau da, funtsean, 165 00:12:59,470 --> 00:13:04,900 45 O zein etengabeko aldia da. 166 00:13:04,900 --> 00:13:09,660 Beraz, ez dago zure hitza luzeena badago goi-muga gero - 167 00:13:09,660 --> 00:13:15,130 edo nahiz ingelesezko hiztegia bezala - ez da zure hitza luzeena buruzko goi-muga. 168 00:13:15,130 --> 00:13:19,970 Edo edozein hiztegi - ez da zure goiko hitza on luzeena lotuak. 169 00:13:19,970 --> 00:13:25,480 Ez dio axola zer egiten ari zaren denbora konstante da, 170 00:13:25,480 --> 00:13:33,810 baina k O da polita delako han benetan exekutatzen arteko aldea da esan 171 00:13:33,810 --> 00:13:40,120 45 karaktereko hitza alfabetoaren horrek hitzak baino ez ditu, 3 karaktere gehienez versus. 172 00:13:40,120 --> 00:13:52,870 Horri buruz beste gauza bat da hori - 173 00:13:52,870 --> 00:13:57,520 oh, delako besterik esaten 45 hori gertatzen gure hitza luzeena izan 174 00:13:57,520 --> 00:14:02,330 mota da silly delako, aldi berean, demagun algoritmo bat N. of O da 175 00:14:02,330 --> 00:14:06,510 Beno ados, memoria bakarrik onartzen da 2 ^ 32 byte behar delako, 176 00:14:06,510 --> 00:14:11,770 Orduz N 4 gehienek mila milioi da eta hori etengabeko denbora da, eta horrek zergatik uneren da 177 00:14:11,770 --> 00:14:14,870 leloa dela gauza horietakoren bat non ez da goi-muga esateko 178 00:14:14,870 --> 00:14:19,540 duten ezin dugu besterik gabe, etengabeko denbora murrizteko guztia etengabeko denbora dagoelako 179 00:14:19,540 --> 00:14:22,320 noiz uste duzu horrela. 180 00:14:22,320 --> 00:14:25,470 Baina seguruenik genuke onartuko horiek bai. 181 00:14:25,470 --> 00:14:31,780 Edonola ere azaldu bai O duten (1) esan nahi du goi-itxitako hitza luzera bat duzu? 182 00:14:31,780 --> 00:14:34,070 O (k) zure hitzaren luzera esan nahi du - 183 00:14:34,070 --> 00:14:40,900 bai, k hitzaren luzera esan nahi du. 184 00:14:44,060 --> 00:14:47,280 >> Bai. >> [Student] bool Does - zeren zure trie egin duzu 185 00:14:47,280 --> 00:14:53,220 katu joan nahi duzun, eta ondoren joan hurrengo erakuslea nahi duzu - zen bezalakoa zirudien 186 00:14:53,220 --> 00:14:59,860 eta, ondoren, esango dizu, berdin egia bada - litzateke egia dela jarri duzu at t duen bezala? 187 00:14:59,860 --> 00:15:06,560 [Rob] Dezagun uste kasu honetan, non adibide asko dezake, besterik gabe, saiatu eta etorri zaren 188 00:15:06,560 --> 00:15:12,310 Adibide sinpleak eta / edo muturreko eta zer izan behar du, beraz, bere uste hitza 'a' of utzi. 189 00:15:12,310 --> 00:15:21,320 Gure jatorrizko trie - 190 00:15:21,320 --> 00:15:35,510 jarri 1 bat hemen nahi genuke, edo litzaidake jarri 1 bat behera hemen nahi dugu. 191 00:15:35,510 --> 00:15:41,350 Esan, azken batean da seguruenik bai / edo nuke. 192 00:15:41,350 --> 00:15:46,000 Ezin dut arrazoia uste - edo benetan wouldn't duzu - 193 00:15:46,000 --> 00:15:51,060 arrazoia ez nuke jarri behera dago, ez duzu, nahiz eta urrun joan behar delako. 194 00:15:51,060 --> 00:15:55,820 Inoiz trie hau esleitu behar dugu. 195 00:15:55,820 --> 00:15:57,950 Jarri besterik ez dugu 1 du han. 196 00:15:57,950 --> 00:16:03,310 Hau da, oraindik ere NULL seinalatuz. 197 00:16:03,310 --> 00:16:09,430 Bada bakarrik ari gara karaktere bakar izan da joan 198 00:16:09,430 --> 00:16:17,220 ez dago arrazoirik behera zabaltzeko trie bestera gutun hori gisa erabiltzen besterik markatu da. 199 00:16:17,220 --> 00:16:21,260 Era berean, 'a' behera han dugu jarri izan balu 200 00:16:21,260 --> 00:16:27,860 gero, nahitaez, hauek guztiak litzateke nahiko luke 0 uneoro. 201 00:16:27,860 --> 00:16:36,060 >> [Student] Baina ez hasita trie bat izango dela 'a' hau seinalatu behar dugu? 202 00:16:36,060 --> 00:16:43,570 [Rob] global batzuk edo zerbait struct trie * t daukagu 203 00:16:43,570 --> 00:16:47,270 hemen adierazi, baina hori erakuslea besterik ez da. 204 00:16:47,270 --> 00:16:51,500 Ez da trie full-pizten duten bitartean seinalatuz. 205 00:16:51,500 --> 00:17:02,000 [Ikaslea] Ongi. Nola letra 'i'esleitzeko genuke - hitza dut honekin? 206 00:17:02,000 --> 00:17:06,380 [Rob] Bere galdera horri liteke erantzunez. Hold on. 207 00:17:06,380 --> 00:17:15,060 - Hori arazo bat non eta bera trie bat da 208 00:17:15,060 --> 00:17:17,880 Ez dakit bidea Pset idatzizko litzateke. 209 00:17:17,880 --> 00:17:19,880 Aurreko struct txarra zen. 210 00:17:19,880 --> 00:17:41,690 Baina, aldi berean egin izan dugu egitura nodo boolearra da - eta erakuslea - 211 00:17:41,690 --> 00:17:46,500 ez da benetan modu bat baino gehiago da idatzi izan duzu. 212 00:17:46,500 --> 00:18:01,800 Bestela trie bat ez da beharrezkoa eta egitura bat izan nahi du. 213 00:18:01,800 --> 00:18:21,250 Typedef nodo * - nahiz zitekeela trie izan - 214 00:18:21,250 --> 00:18:34,760 nodo [26] trie bat da, eta hau ez da jada egiturari. 215 00:18:34,760 --> 00:18:44,270 Diat bidean Pset espero lukeen duzu pentsatzen saiatzen ari da - orain ez da izango. 216 00:18:44,270 --> 00:18:47,650 [Ikaslea] gora bota dut berrikuspena saio hori, eta uste dut joan besterik ez dute - 217 00:18:47,650 --> 00:18:50,670 atsegin duzu baten bat, ondoren, joan hurrengo duzu bada - >> [Rob] Hori nola egiten dute? 218 00:18:50,670 --> 00:18:53,750 [Student] Eta gero, ez bada egia bat dago, ez du lan - 219 00:18:53,750 --> 00:18:58,710 [Rob] Bai. Horretan lan egiten du. Espazioa hondakinak - 220 00:18:58,710 --> 00:19:03,910 zertan izan duzu beste trie maila oso bat duzula ez luke lehenik eta behin behar. 221 00:19:03,910 --> 00:19:08,410 Hona hemen bakoitzean itsusiak lortzean - 222 00:19:08,410 --> 00:19:11,530 funtsean, hemen zer egiten saiatzen naiz elkartua da - 223 00:19:11,530 --> 00:19:15,000 ordez 26 zure saiatzen erakusleak izateaz, 224 00:19:15,000 --> 00:19:20,810 da 26 bool erakuslea, erakuslea bool, boolearra erakuslea, eta abar. 225 00:19:28,940 --> 00:19:34,410 >> [Student] Ezin duzu egin 2 array hori? Bools eta erakusleak array bat array bat? 226 00:19:34,410 --> 00:19:38,060 [Rob] izan duzu baina gero litzaidake behar duzu - 227 00:19:38,060 --> 00:19:41,500 2 booleans eta erakusleak, array-ak. 228 00:19:41,500 --> 00:19:47,340 Behar litzateke duzu gero zure booleans array eraiki - 229 00:19:47,340 --> 00:19:51,240 Zure booleans array behar bezala trie bezain handia izan 230 00:19:51,240 --> 00:19:53,200 ezin duzu besterik ez delako 26 booleans. 231 00:19:53,200 --> 00:19:57,010 Posible bakoitzarekin hazten ditu - 232 00:19:57,010 --> 00:20:03,240 bezala zure trie 26 baino gehiago egia edo gezurra posible hitzak ditu. 233 00:20:03,240 --> 00:20:08,240 Une horretan egin daitezke eta baita besterik egiturari bakar bat zure trie hazten behera egon. 234 00:20:08,240 --> 00:20:15,210 Honek ez dirudi eskubidea delako - zer egin, hemen nahi dut? 235 00:20:15,210 --> 00:20:23,640 Beraz, trie * t - 236 00:20:23,640 --> 00:20:30,200 daiteke typedef (nodo *) [26] trie egin duzu; 237 00:20:30,200 --> 00:20:33,090 duten sintaxia bila nabil izan daiteke. 238 00:20:36,740 --> 00:20:41,450 Eta hau besterik trie erregular bat izan behar du. 239 00:20:44,900 --> 00:20:47,440 Ez nago ziur. 240 00:20:47,440 --> 00:20:54,850 Baina horrela egin dugu balorazioa da, beraz, primeran lan fina, gehiegi. 241 00:20:54,850 --> 00:20:57,850 Kasu horretan, bada besterik bool hitza da eta, ondoren, 26 array 242 00:20:57,850 --> 00:21:01,750 orduan ez duzu hurrengo mailara joateko. 243 00:21:01,750 --> 00:21:05,420 Izango Bide hori egin nahi nuke pentsatu nuen. 244 00:21:07,500 --> 00:21:09,550 >> Beste galdera? 245 00:21:09,550 --> 00:21:12,540 [Ikasleak] dut beste zerbait buruzko galderak? >> [Rob] Bai. 246 00:21:12,540 --> 00:21:19,040 [Ikasleak] duzu aldea zer da gehiago joan eta noiz jQuery erabiltzen duzuna versus Ajax? 247 00:21:19,040 --> 00:21:24,550 [Rob] eta bere burua erabat desberdinak dira. 248 00:21:24,550 --> 00:21:32,720 JQuery egiten gaitu Ajax. Errazagoa Ajax erabilera batzuk ematen dizkigute du. 249 00:21:32,720 --> 00:21:38,480 Baina Ajax dator JavaScript batera datorrena. JavaScript Ajax gaitasunak. 250 00:21:38,480 --> 00:21:47,490 Guztiak Ajax esan nahi liken naiz jada orri batean eta noiz nahi dut - 251 00:21:47,490 --> 00:21:52,820 denean klikatu zerbait dut Ez dut behar informazio berria deskargatzeko orria berriz kargatzea eragingo du. 252 00:21:52,820 --> 00:21:55,020 Informazio berria eskatu besterik ez dut. 253 00:21:55,020 --> 00:22:01,220 Duzu begiratu ahal Facebook edo zerbait. 254 00:22:01,220 --> 00:22:05,580 Ikuskatu sarea. 255 00:22:05,580 --> 00:22:07,460 Txikitu hau. 256 00:22:12,070 --> 00:22:14,940 Behera hemen ari eskaera horiek guztiak lortzeko dugun ikusiko dugu. 257 00:22:14,940 --> 00:22:18,990 Orain, gainean klik egin I - ondo, Ajax Egin aurretik dut, nahiz ezer klikatu da. 258 00:22:18,990 --> 00:22:24,140 Baina sakatu dut honetan bada, ondoren, eskaerak mordo bat egiteko behera hemen 259 00:22:24,140 --> 00:22:33,530 besterik eskaera horiek egiten - oh, orain baino gehiago, hemen da. 260 00:22:33,530 --> 00:22:36,590 Dezagun freskatzeko. 261 00:22:36,590 --> 00:22:38,580 Berriro egin. 262 00:22:38,580 --> 00:22:42,090 Eskaera horiek guztiak lortuko dugula ikusiko dugu, baina hori oraindik ezin orrialdea kargatzeko prozesua izango da. 263 00:22:42,090 --> 00:22:47,400 Nabarituko Facebook da eskaerak konstante horiek egiteko ondoren ere orria kargatu. 264 00:22:47,400 --> 00:22:51,470 Eta klik egiten badut hemen, zenbait datu eskaerak batzuk gehiago egin ahal izango da 265 00:22:51,470 --> 00:22:54,990 hori gauza besterik klik nuen erantzuna da. 266 00:22:54,990 --> 00:23:04,660 Hori da Ajax besterik zer den. Hori ez zen orri batera deskargatuko jatorriz datuetan tira duzun aukera dago. 267 00:23:04,660 --> 00:23:12,050 >> JQuery bereizi da. JQuery liburutegian JavaScript bat besterik ez da gauza asko errazten da. 268 00:23:12,050 --> 00:23:28,660 JQuery rekin da abantaila asko da hau, besterik gabe - 269 00:23:28,660 --> 00:23:34,030 dolarraren ikurra - dolarraren ikurra JavaScript baliozko aldagai bat da. 270 00:23:34,030 --> 00:23:43,460 Beraz, jQuery - guztiak egiten ari den bezala esaten var $ = stuff sorta osoa - 271 00:23:43,460 --> 00:23:46,690 bertan stuff hori guztia funtzio handi batzuk bezala - 272 00:23:46,690 --> 00:23:52,650 eta orduan bezala modutan dolarraren ikurra duten erabiltzen dituzu 273 00:23:52,650 --> 00:24:23,940 $ ("# Oina"). Estiloan ("Testu-lerrokatzea", "zentroa"). 274 00:24:23,940 --> 00:24:32,330 JQuery sintaxia non abantaila handi bat sort hau ematen digu - 275 00:24:32,330 --> 00:24:35,650 beste ezaugarri batzuk ditu, baina zer nahi duzu, gehien zentratu nahi dugu 276 00:24:35,650 --> 00:24:38,760 besterik ez da gai honen antzeko elementuak aukeratzeko izatea. 277 00:24:38,760 --> 00:24:42,780 Erregular, Javascript arrunta-zahar bezala gauza egin dezakezu 278 00:24:42,780 --> 00:24:50,490 dokumentu-dot-lortzeko elementua ID Oina-dot by - Ez dakit zer den puntu horretan bertan - 279 00:24:50,490 --> 00:24:52,790 CSS edo estilo edo zerbait buruz zerbait - 280 00:24:52,790 --> 00:24:58,930 baina, gero, bestela, demagun klase arabera hautatu nahi izan dugu. 281 00:24:58,930 --> 00:25:06,330 Orain dena estilismoa ari gara estilo honekin klase Oina batekin. 282 00:25:06,330 --> 00:25:16,070 Edozein paragrafo estilo nahi badugu ere. 283 00:25:16,070 --> 00:25:22,000 Beraz, hautatzaileak hau - gai honen antzeko dom gauzak aukeratzeko izatea oso erosoa da 284 00:25:22,000 --> 00:25:29,420 geroztik arrunta zaharra JavaScript elementu dokumentu-dot-lortu egin klasearen izen by izango litzateke 285 00:25:29,420 --> 00:25:34,260 edo da, edozein dela ere, edo etiketa bat nahi nuen esateko lortzeko elementu etiketa izenez beharko nuke. 286 00:25:34,260 --> 00:25:37,530 Beraz, hori gauza horiek guztiak sartzeko dut modu zehatz jakin behar dut. 287 00:25:37,530 --> 00:25:40,810 Funtzioak ezberdinak izan klase bat edo ID bat erabiltzen nuen ala arabera joan 288 00:25:40,810 --> 00:25:46,420 edo etiketa bat edo zer, berriz jQuery besterik ez dela niretzat. 289 00:25:46,420 --> 00:25:53,120 >> [Student] Is jQuery erabili ahal izateko denean orriaren hasierako estetika egiten ari zaren? 290 00:25:53,120 --> 00:25:56,570 Edo ordena Sorozabal aldatzeko in da ondoren dagoeneko - >> [Rob] hura aldatzeko. 291 00:25:56,570 --> 00:25:58,440 [Ikaslea] After dagoeneko kargatu da. >> [Rob] Bai. 292 00:25:58,440 --> 00:26:07,020 Edozein hasierako Sorozabal - ondo, nahiz eta - 293 00:26:07,020 --> 00:26:09,970 oro har, aldaketa-mota hau erabili nahi duzun. 294 00:26:09,970 --> 00:26:14,330 Ez duzu aldatzeko - hau primeran ondo funtzionatuko luke. 295 00:26:14,330 --> 00:26:17,720 Baina normalean ez zenuke estilo honen antzeko aldatu. 296 00:26:17,720 --> 00:26:20,610 Horren ordez, klase edo zerbait berri bat eman dituzu 297 00:26:20,610 --> 00:26:24,650 berriz CSS du jadanik definitu klase horretarako modu jakin batean. 298 00:26:24,650 --> 00:26:28,920 Elementu horiek emanez klase berri bat hautatzen dut 299 00:26:28,920 --> 00:26:32,200 Duten jadanik deskargatutako estilo aplikatuz naiz. 300 00:26:32,200 --> 00:26:36,720 [Student] Beraz koadrotxo pare bat eta hori hautatu duzula gauzak hautatzean 301 00:26:36,720 --> 00:26:41,820 estilo berri bat aldatu eta hasi ezberdinen bila. >> [Rob] Bai. 302 00:26:41,820 --> 00:26:45,490 Bestelako gauzak buruz gogoratu - 303 00:26:45,490 --> 00:26:48,350 ondo, hainbat funtzio jQuery buruz gogoratu behar duzu. 304 00:26:48,350 --> 00:26:55,570 Demagun duten zerbait aukeratu gaude izena P. ekin 305 00:26:55,570 --> 00:27:00,500 >> [Student] Ez duzu beti kiloko erabili? 306 00:27:00,500 --> 00:27:09,600 [Rob] Horrek esan nahi du izena. Du CSS baliokidea da, beraz CSS selectors - Da horretan inspiratuta. 307 00:27:09,600 --> 00:27:12,410 Non CSS Oina bat estilo nahiko banu in - 308 00:27:12,410 --> 00:27:16,950 edo identifikazio Oina zerbait - 309 00:27:16,950 --> 00:27:23,490 Testu-lerrokatzea bezalakoa izango litzateke: center; 310 00:27:23,490 --> 00:27:28,820 ez duzu azterketa CSS idazteko, baina selectors jakin behar duzu. 311 00:27:28,820 --> 00:27:34,280 Nola irakurri jakin behar duzu - Zer jakin behar duzu. 312 00:27:34,280 --> 00:27:36,000 Baina inoiz ez genuke - 313 00:27:36,000 --> 00:27:42,390 ez duzu behar ezberdinak posible Sorozabal gauza guztiak buruz ikasi ahal izateko. Edo horietako edozein. 314 00:27:42,390 --> 00:27:50,020 >> JQuery gauza gogoratu behar duzu - 315 00:27:50,020 --> 00:27:58,380 gogoratu behar duzu dot-HTML, eta jQuery eredu komun bat - dezagun berriro idatzi hau. 316 00:27:58,380 --> 00:28:09,640 Eredu komuna da $ dugu ("# f"). Html 317 00:28:09,640 --> 00:28:15,650 Parentesi arrunta bakarrik jarri dut bada horrek esan nahi HTML lortzeko; 318 00:28:15,650 --> 00:28:23,870 berriz HTML esan eta jarri nahi dut hemen edozer in badut - zerbait lotura batzuk - 319 00:28:23,870 --> 00:28:30,410 parentesi barruan zerbait jarriz, orain HTML ezartzen du. 320 00:28:30,410 --> 00:28:33,760 Hori nahiko ohikoa funtzio sorta bat artean. 321 00:28:33,760 --> 00:28:38,360 Badira testu akordio bera da. 322 00:28:38,360 --> 00:28:41,720 HTML eta testu arteko aldea da testu hori hau txertatu joan 323 00:28:41,720 --> 00:28:46,350 gutxiago-baino bat literal gisa, handiagoa-baino aingura tag gisa ordez. 324 00:28:46,350 --> 00:28:53,000 Eta testua da berdinak izatea esan, ez dut hau besterik egingo. 325 00:28:53,000 --> 00:28:55,760 Dokumentuaren HTML ez - Honez dokumentuaren Testua eskuratzeko joan 326 00:28:55,760 --> 00:29:01,810 baina besterik elementu honen barruan testua. 327 00:29:01,810 --> 00:29:08,430 Beste bat da 'f' gertatzen bada sarrera bat ID bat izan nahi du, 328 00:29:08,430 --> 00:29:14,250 orduan hash-f-dot-val - sarrera ezartzeko antzeko zerbait nahi badut - 329 00:29:14,250 --> 00:29:17,900 demagun checkbox bat jo dut eta balio lehenetsi bat ezarri nahi dut - 330 00:29:17,900 --> 00:29:26,070 dot-val - ez dakite I - 3 - beraz, automatikoki testuaren 3 kutxa txertatzeko, 331 00:29:26,070 --> 00:29:35,980 baina 3-dot-val esan badut, hori dena delakoa da gaur egun niretzat testu-koadroan errekuperatzeko. 332 00:29:35,980 --> 00:29:39,690 >> Hau da, inprimaki baliozkotzea baliagarria non 333 00:29:39,690 --> 00:29:48,030 Besterik ez dakit benetan bete dute gauza guztiak egin nahi bada. 334 00:29:48,030 --> 00:29:54,710 Bata egiteko modu bada hit I aurkeztu ondoren nik ezinbestean orri batzuk bidaliko zerbitzarian - 335 00:29:54,710 --> 00:30:00,190 bezalako Gurekin PHP litzateke - eta hori datuak tratatzeko, eta saiatu litzateke esatea litzateke 336 00:30:00,190 --> 00:30:03,030 ez zuten zerbait bete eta, beraz, orain birzuzenketak horiek dioen beste orrialdera 337 00:30:03,030 --> 00:30:05,050 Zuk ez dena bete. 338 00:30:05,050 --> 00:30:11,650 Hori egin beharrean, Javascript / jQuery dezakezu besterik ikusten val hutsik badago. 339 00:30:11,650 --> 00:30:17,270 Komatxo hutsik - edo val da. 340 00:30:17,270 --> 00:30:23,120 Orain, horiek ohartaraztea ez duzula bete ezazu eremu hau ezin dugu - hori besterik egingo. 341 00:30:23,120 --> 00:30:26,990 Ezinbestean behar ez duzun PHP zerbitzariaren aldeko egiaztapena egin delako 342 00:30:26,990 --> 00:30:31,210 desgaitu dezakezu JavaScript nabigatzaile guztietan. 343 00:30:31,210 --> 00:30:36,180 Baina JavaScript esker eroso egin duten aktibatzen izan dutenentzat da, 344 00:30:36,180 --> 00:30:42,940 eta ia nabigatzaile ehuneko laurogeita bederatzi puntuko-zerbait izan bertan gaur egun. 345 00:30:42,940 --> 00:30:46,630 Oso jende gutxi piztu JavaScript off. 346 00:30:46,630 --> 00:30:52,850 Erabiltzaileen onerako da. PHP baliozkotzea egin behar duzu. 347 00:30:52,850 --> 00:30:55,990 JavaScript baliozkotzea egin behar duzu. 348 00:30:55,990 --> 00:30:57,950 >> [Student] Zer # m aipatzen du hemen? 349 00:30:57,950 --> 00:31:00,020 [Rob] Zer # f aipatzeko du? 350 00:31:00,020 --> 00:31:04,350 Ez dago nire dokumentuan elementu batzuk ID 'm' da. 351 00:31:04,350 --> 00:31:09,850 Egingo begiratu dugu - seguruenik Facebook adibide ugari ditu non etortzen dut elementu nahi bada 352 00:31:09,850 --> 00:31:17,820 Hemen bilatzen elementuen etiketa azpian Nabarmendu sortu ari hemen div zehatz honetan ikusten dut - 353 00:31:17,820 --> 00:31:22,670 edo orri osoa da - Bai, han da. Honen izena pagelet_bluebar ditu. 354 00:31:22,670 --> 00:31:26,730 Kontsola batean jQuery erabiltzen ari dira bere gain hartzen dut. 355 00:31:26,730 --> 00:31:40,030 Beraz, pagelet_bluebar hautatu izan dut, beraz, hori aukeratzen duten, eta zerbait gaizki egin nuen. 356 00:31:46,470 --> 00:31:52,250 Dezagun saiatu - edo agian, ez dira jQuery eta pertsonaia horren beste zerbait mapatzen erabiliz. 357 00:31:52,250 --> 00:32:04,970 Zerbait dakit adibide hobea jQuery erabiltzen ari da - 358 00:32:04,970 --> 00:32:10,600 oraindik gure elementu hemen begira - hemen dugu klasean, nabigazio-barrako berdin. 359 00:32:10,600 --> 00:32:12,330 Hau klasean, nabigazio-barrako zerbait da, 360 00:32:12,330 --> 00:32:19,180 beraz, gure kontsola barrutik dugu gauza begiratu daiteke klasean, nabigazio-barrako batera. 361 00:32:19,180 --> 00:32:21,770 Hemen hau baino gehiago mugitu ahal izango dugu, eta ikusi hori da hori zer den. 362 00:32:21,770 --> 00:32:29,850 Testu bihurtzeko egin nahi nuen. Hau duten testua da, beraz, ezarpen ikusten dut log daudelarik gainetik txostena 363 00:32:29,850 --> 00:32:35,760 eta diren guztiak hemen azpian, baina hori da, oraindik ere, HTML etiketa duten orrietan testua. 364 00:32:35,760 --> 00:32:52,230 HTML ezarri izan dut besterik link batzuk, 365 00:32:52,230 --> 00:32:56,550 beraz, nire bar dut botatzeko. Orain got osorik besterik ez beraz, YouTube lotuta goiburua kentzeko. 366 00:32:56,550 --> 00:32:59,630 >> Eta hor dago, edozein modutan, adibidez? 367 00:32:59,630 --> 00:33:01,940 Hemen formulario bat da. 368 00:33:01,940 --> 00:33:05,830 Ezin dut eskuin-klik egin eta ikuskatu elementu hementxe da etorri. 369 00:33:05,830 --> 00:33:08,460 Bere izena bilaketa-testua da ikusten dut, 370 00:33:08,460 --> 00:33:16,910 beraz, behera hemen identifikazio testu bilaketa egiten badut. 371 00:33:16,910 --> 00:33:23,190 Pasatuko dut ekarri eta hori gauza zuzena dut bilatzen zen dela ikusten dut. 372 00:33:23,190 --> 00:33:27,670 . Val egin nahi badut niri emateko zer idatzi nuen litzateke. 373 00:33:27,670 --> 00:33:36,010 Egin nahi badut kaixo hemen alda ezazu egingo up kaixo - jQuery. 374 00:33:36,010 --> 00:33:45,780 Jakina barregarria egin izan dut izena by elementu document.get bezala - testu bilaketa - 375 00:33:45,780 --> 00:33:54,000 Dut ez dakite zer den puntu honetan da - dot balioa - ez, lasaia dela ahaztuz. 376 00:33:54,000 --> 00:33:59,110 Beraz, hori da kaixo. Ez dakit nola ezarri nuke zerbait hobetu da. 377 00:33:59,110 --> 00:34:00,930 Bai, horrela aldatu dela. 378 00:34:00,930 --> 00:34:07,510 Baina ez duzu behar horiek eta webgune asko erabiltzeko puntua erabilera jQuery honetan. 379 00:34:07,510 --> 00:34:13,050 Nahiz eta azken proiektu bat bezala - lehenengo gauza - duzun web proiektu bat egiten ari bada 380 00:34:13,050 --> 00:34:20,030 Gomendatzen dut besterik ez da jQuery barne beraz, funtzio horiek guztiak erosotasuna lor dezakezu. 381 00:34:22,580 --> 00:34:27,750 >> [Student] uste dut elementu bat lortzeko dom erabiliz beste modu batean ikusi nuen. 382 00:34:27,750 --> 00:34:32,520 Ez dot erabili eta ondoren mantentzeko behera joan behar duzu? 383 00:34:32,520 --> 00:34:36,630 [Rob] hori egin dezakezu. Ez dakit oso ondo funtzionatuko luke. 384 00:34:36,630 --> 00:34:38,900 Zaila da, era horretan nabigatzeko. 385 00:34:38,900 --> 00:34:43,179 Adibide bat da - I ez dakite formak baldin badaukagu ​​- 386 00:34:43,179 --> 00:34:48,940 baina document.forms da inprimakiak zerrenda hori orri honetan itzuli da, 387 00:34:48,940 --> 00:34:55,070 Orduz document.forms egin dezaket 0 da lehen inprimaki izango. 388 00:34:55,070 --> 00:35:03,070 Dot - Ez dakit zer deitzen dugun hori - beraz, ez du, nahiz eta izen bat dute, 389 00:35:03,070 --> 00:35:08,050 beraz, agian Sarrerek funtzionatuko du. N º 390 00:35:08,050 --> 00:35:11,050 Ez dakite dut nola honetan lor - get elementu-I-izenaren etiketa sarrera. 391 00:35:11,050 --> 00:35:23,630 Bai, hori sarrera eman zidan, eta, orain, 0 sarrera nahi dut 392 00:35:23,630 --> 00:35:31,320 eta bere balioa hautatu nahi dut, beraz, hori da testua izango da. 393 00:35:31,320 --> 00:35:33,890 Amaitzeko get elementu hala egiten etiketa izenaren bidez izan nuen. 394 00:35:33,890 --> 00:35:36,210 Bada, nolabait, zuzenean aukeratu ahal izatea 395 00:35:36,210 --> 00:35:43,480 0 inprimaki, baina honi buruz gauza polita bidez da oraindik bezala ezagutu tags sarrerari izeneko bakarra izan nuen 396 00:35:43,480 --> 00:35:49,880 inprimaki honen ume bat zegoen, bestela, ez dut besterik ez bada zuzen aurrean sortu 397 00:35:49,880 --> 00:35:56,680 hau orri osoa elementu guztiak, dokumentu osoa hautatzen litzateke 398 00:35:56,680 --> 00:36:00,580 ordez inprimaki hori besterik ez du, eta ziur aski, ez are bat, nahi dut izan. 399 00:36:00,580 --> 00:36:06,180 Dut ez dakite zein den. Ez dakit. 400 00:36:06,180 --> 00:36:13,450 Uste dut lehenengo sarrera elementua gure orrialdean checkbox hau txikia da. 401 00:36:13,450 --> 00:36:20,450 >> [Student] Hau da, nahiko zerikusirik 402 00:36:20,450 --> 00:36:27,420 eta, seguru asko, mota horretako leloa, baina erantzuna teklan PHP dela dio - 403 00:36:27,420 --> 00:36:35,660 Ez dakit erantzuna gakoa edo oharrak ote den baina PHP zerbitzariaren aldeko dela dio 404 00:36:35,660 --> 00:36:39,590 Eta Ikusteko Javascript-a bezero-aldeko da. Zein da 2 arteko aldea? 405 00:36:39,590 --> 00:36:45,550 [Rob] Javascript bezero-aldeko eta PHP zerbitzariaren aldeko arteko aldea. 406 00:36:45,550 --> 00:36:51,890 Litzateke Uste aurretik barra / erabiliko nodo js entzun bada 407 00:36:51,890 --> 00:36:56,280 Ikusteko Javascript-a ez da bakarrik bezero-aldeko baina CS50 helburuetarako da - 408 00:36:56,280 --> 00:36:59,340 edo, gutxienez, galdetegi honen helburu den. 409 00:36:59,340 --> 00:37:03,800 PHP izateaz zerbitzariaren aldeko. Javascript ez. 410 00:37:03,800 --> 00:37:08,700 Zure web-orrian idazten duzun PHP idazten dituzu zerbitzarian. 411 00:37:08,700 --> 00:37:11,670 Inoiz egingo idazten duzu Javascript zerbitzarian. 412 00:37:11,670 --> 00:37:17,190 Ikusteko Javascript-a amaitzen ohitu nabigatzailea non JavaScript kodea exekutatzen bidaliko. 413 00:37:17,190 --> 00:37:22,250 Eta Javascript kodearen nabigatzailea bizi bestela delako nahi dut behar 414 00:37:22,250 --> 00:37:25,830 besterik ez edozein Javascript-y gauza sort hori sakatu bezala, 415 00:37:25,830 --> 00:37:31,720 Ez dut orrialde bat birkargatzen. Hau besterik JavaScript berriro formateatzeko niretzat gauza da. 416 00:37:31,720 --> 00:37:36,490 JavaScript zerbitzarian bizi izan bada, orduan nahi ezinbestean zerbait eskatu behar nuke 417 00:37:36,490 --> 00:37:39,490 zerbitzariaren zer egin behar zen jakiteko. 418 00:37:39,490 --> 00:37:45,380 PHP - han PHP gauza, hala nola ez da nabigatzailean. 419 00:37:45,380 --> 00:37:52,090 When I orri bat eskatu - beraz, demagun hemen orri hau bereziki eskatu nuen. 420 00:37:52,090 --> 00:37:57,270 Horrek esan nahi du hau eskatu egingo da - 421 00:37:57,270 --> 00:38:04,270 freskatu - nik orri hau freskatu egingo - 422 00:38:04,270 --> 00:38:07,210 beraz, eskaera hau gure zerbitzarira jokoz kanpo. 423 00:38:07,210 --> 00:38:13,190 Haria zehatz honetan itzultzeko identifikazio zehatz honekin behar dela ikusten da, 424 00:38:13,190 --> 00:38:23,740 beraz, gaur egun hori da PHP batzuk PHP interpretea da orrialde horretan interpretatzen joatea izango da 425 00:38:23,740 --> 00:38:28,680 eta eraldatu besterik HTML, CSS, JavaScript, agian, edozein sartu. 426 00:38:28,680 --> 00:38:36,930 Da eskaera hau prozesatzen eta eskuratzen testua eta stuff guztiak PHP ezazu 427 00:38:36,930 --> 00:38:39,170 duten benetan naiz basetik bila. 428 00:38:39,170 --> 00:38:44,750 Baina zer zerbitzari uzten besterik HTML / JS / CSS da. 429 00:38:44,750 --> 00:38:48,630 Ez dago eta horrek zerbitzari uzten PHP benetan egin bada delako 430 00:38:48,630 --> 00:38:53,890 orduan nabigatzailea ez daki zer da egin, ez du jakin zer PHP dagoelako izango litzateke. 431 00:38:53,890 --> 00:39:00,250 Baina pentsamendu berean Javascript bezero-aldeko delako, 432 00:39:00,250 --> 00:39:02,250 inoiz dezakezu sartzeko MySQL bertatik. 433 00:39:02,250 --> 00:39:07,430 Delako PHP zerbitzariaren aldeko da sartzeko daukazu MySQL bertatik. 434 00:39:07,430 --> 00:39:12,880 >> [Student] Ezin duzu cookieak segurtasun kezkak HTTP in errepasatuko? 435 00:39:12,880 --> 00:39:18,390 [Rob] Horiek ez dira gauza jakin behar dugu. 436 00:39:18,390 --> 00:39:24,500 Cookieak segurtasun kezkak HTTP batzuk. 437 00:39:24,500 --> 00:39:28,550 Galdera hemen big dago hemen ikusten dugu nire cookiea PHP / izena da. 438 00:39:28,550 --> 00:39:33,560 Duen PHP unibertsala zure saioa bezala. 439 00:39:33,560 --> 00:39:39,550 Zure saioa PHP barruan ez da inoiz balioztatu beharreko zerbait da 440 00:39:39,550 --> 00:39:45,690 duten saioan erabateko kontrola du zerbitzariari delako. 441 00:39:45,690 --> 00:39:47,690 Ezin duzu ukitu ere ez. 442 00:39:47,690 --> 00:39:53,120 Baina cookiea hau da - hau - 443 00:39:53,120 --> 00:39:57,500 eta saio hasi ahal izango duzu me gisa oraintxe hori erabili nahi baduzu asmatzen dut - 444 00:39:57,500 --> 00:40:06,610 ezinbestean zerbitzariari eskaera bakar bat egin duzu - baina hori cookie hori da. 445 00:40:06,610 --> 00:40:09,890 Zerbitzariko orri itzultzen. Eskaera egiten da. 446 00:40:09,890 --> 00:40:12,580 Jada ez da nor zaren edozein ideia dauka. 447 00:40:12,580 --> 00:40:17,230 Beraz, egiten dituzun hurrengo eskaera cookiea, besteak beste, beraz, badaki va 448 00:40:17,230 --> 00:40:19,810 hau baino lehen eskaera hau egin zuen pertsona da. 449 00:40:19,810 --> 00:40:23,830 Hau saio datu hori erabiltzaile honi lotuta dago. 450 00:40:23,830 --> 00:40:28,210 Horregatik, ez duzu saioa hasi ahal izateko bakoitza eta erabiltzen duzun orrian. 451 00:40:28,210 --> 00:40:33,380 Segurtasun arazoa honakoa da cookie hori bidaliko da web zehar. 452 00:40:33,380 --> 00:40:41,490 HTTPS hemen erabiltzen ari gara, beraz, kasu honetan esan nahi duen gauza hau enkriptatzeari ari gara. 453 00:40:41,490 --> 00:40:49,870 Norbaitek ezin etorri eta besterik lapurtzen nire cookiea eta orain zerbitzariari niretzat daudela uste izango da. 454 00:40:49,870 --> 00:40:52,060 Baina HTTP zuzen ahal izango dute. 455 00:40:52,060 --> 00:40:57,650 Just Wireshark / Firesheep stuff hau besterik dezakezu entzun airean wi-fis guztiei bezala 456 00:40:57,650 --> 00:41:01,380 eta nahi duzuna atzematen, beraz, bai. 457 00:41:01,380 --> 00:41:12,430 >> [Student] antzeko segurtasun arrisku moduko bat da erabiltzaile ID en gordetzeko post 458 00:41:12,430 --> 00:41:16,860 libreki edita daitezke kontsola eta gauzak erabiliz delako. 459 00:41:16,860 --> 00:41:23,410 [Rob] Bai. Ez dago non like ia ezer Erabiltzaileak dator gai askorekin 460 00:41:23,410 --> 00:41:26,940 balioztatzeko behar duzu. 461 00:41:26,940 --> 00:41:37,650 Badira kasuak non post bat egin beharrean nago bezala baliagarria izango litzateke ugari daude. 462 00:41:37,650 --> 00:41:39,650 Blah, blah, blah, blah, blah. Ondoren erantzuna sakatu dut. 463 00:41:39,650 --> 00:41:44,540 Oso baliagarria izango litzateke post eskaera barne identifikatuta bada delako 464 00:41:44,540 --> 00:41:48,610  Post hau lotzeko nirekin nahi dut. 465 00:41:48,610 --> 00:41:54,820 Baina ezin dut hori egin free post eskaera bat egin nahi dudalako - besterik eskuz bezalako 466 00:41:54,820 --> 00:41:57,820 etorri nire post eskaera - 467 00:41:57,820 --> 00:42:00,960 zure erabiltzaile izena erabiltzen du eta orain egingo duzun bezala argitaratu. 468 00:42:00,960 --> 00:42:07,440 Horregatik zerbitzariaren aldeko Ezin dut zuzena erabiltzaile ID duten post eskaerak oinarritzen. 469 00:42:07,440 --> 00:42:09,720 Horregatik, nire saioan sartzen ditu. 470 00:42:09,720 --> 00:42:15,140 Beraz zure erabiltzaile izena bilatuko dut nire saioan array eta hori txertatu nire datu-basean sartu nintzen 471 00:42:15,140 --> 00:42:17,580 benetan egin duten post honen erabiltzaile moduan. 472 00:42:17,580 --> 00:42:19,580 [Student] Eta hori zure cookie batean oinarritutako? 473 00:42:19,580 --> 00:42:24,690 [Rob] Bai. Cookiea erabiltzen du gora etortzeko gure eskaera hori egin duten erabiltzaile gisa. 474 00:42:24,690 --> 00:42:30,570 Atera da erabiltzaile ID saio horretatik aurrera, eta hori gero datu-basean sartzen du 475 00:42:30,570 --> 00:42:32,960 erabiltzaile ID hori erabilita. 476 00:42:32,960 --> 00:42:40,330 Bezalako botoi honetan - zer esan benetan egiten da - 477 00:42:40,330 --> 00:42:43,810 Ez dut hemen aurkituko du. Honez Ajax funtzio bat izango da 478 00:42:43,810 --> 00:42:46,780 Zer da Ajax funtzioa? 479 00:42:46,780 --> 00:42:55,500 Utzi aurkituko me out nire JavaScript zer den. 480 00:42:55,500 --> 00:42:59,710 CS50 proiektu bat pixka bat lehenago izan zen. 481 00:42:59,710 --> 00:43:02,880 Ezin dut gogoratzen zer den. 482 00:43:02,880 --> 00:43:12,530 Ajax funtzioa - Ajax funtzio guztiak egiten ari da Ajax eskaera bat egitean identifikazio honekin orri batera - 483 00:43:12,530 --> 00:43:15,810 ID 22453 batekin. 484 00:43:15,810 --> 00:43:20,180 Ez da, nahiz post-eskaera bat. Get eskaera bat eta horrek are errazago da. 485 00:43:20,180 --> 00:43:27,860 Zer URL da banekien bada - hau atsegin / izena = 22453 antzeko zerbait da - 486 00:43:27,860 --> 00:43:33,290 edo identifikazio = 22453? - 487 00:43:33,290 --> 00:43:40,290 beraz URL hau bisitatzen duten nahi izango. 488 00:43:40,290 --> 00:43:44,600 Zein ez litzateke gisa arazo bat askoz, baina oso erraza da begizta bat idazteko 489 00:43:44,600 --> 00:43:48,500 hau da, besterik gabe, URL honetan eta gehiagoko bisitatzeko berriro eta horregatik ikusten zoaz, 490 00:43:48,500 --> 00:43:51,180 Isawyouharvard gauzak milaka bidaltzeko. 491 00:43:51,180 --> 00:43:56,960 Eta CS50 oinarritutako Isawyouharvard mezuak izan ohi dituzte. 492 00:43:56,960 --> 00:44:01,200 Nola ez, gehien-gustatu aurkitu dut? 493 00:44:01,200 --> 00:44:03,720 Nahiko azkar ezabatuko joera dute, too. 494 00:44:03,720 --> 00:44:06,490 Hau ez da gehien gustatu. Hor dugu. 495 00:44:06,490 --> 00:44:13,400 Gehien gustatu orrialdean cheaters - hori nahiko honetan garran oraintxe. 496 00:44:13,400 --> 00:44:21,230 Oh wow. Jadanik dute ezabatu direnak edozein aurten bertan izan dira bertatik 497 00:44:21,230 --> 00:44:25,590 cheated on. Horiek ezabatu egin guztiei. 498 00:44:25,590 --> 00:44:28,680 Ez dira inoiz duten goi honetan lortzen post bat izango da. 499 00:44:28,680 --> 00:44:32,860 Ko hau, jakina zen cheated on on lortzeko gehien gustatu orrialdera. 500 00:44:36,570 --> 00:44:39,310 >> Galdera gehiago? 501 00:44:39,310 --> 00:44:46,050 [Ikaslea] Jakin behar dugu XHTML buruz? 502 00:44:46,050 --> 00:44:49,710 [Rob] Ia ezer ez. Besterik zer den. 503 00:44:49,710 --> 00:44:59,220 Da eta HTML XML duten izatearen arteko aldea oso antzekoa da itxuraz 504 00:44:59,220 --> 00:45:09,080 HTMLra HTML ezik besterik ez dugu etiketa multzo aurredefinitutako bat izan. 505 00:45:09,080 --> 00:45:15,380 Baina XML-rekin - XML ​​besterik formatu orokor bat non XML dokumentu bat egin ahal izateko bezalakoa da 506 00:45:15,380 --> 00:45:17,580 edozein dela helburu nahi zuretzat. 507 00:45:17,580 --> 00:45:25,950 Beraz, adibidez, nahiko banu ikastaroak egiteko XML bat eraikitzeko izan dut - 508 00:45:25,950 --> 00:45:28,860 eta benetan uste dut CS50 duten honetarako API bat du. 509 00:45:28,860 --> 00:45:31,590 Nire XML dokumentu izango litzateke - 510 00:45:31,590 --> 00:45:39,330 ikastaroak eta ikastaro amaieran ikastaro batzuk behar dut. 511 00:45:39,330 --> 00:45:48,920 Ikastaro bat izan nuen, eta izen berdinen CS50 izan zitekeen. 512 00:45:48,920 --> 00:45:58,080 Eta gero, nire amaiera ikastaroa eta ni barrutik jartzeko gertu dagoen hemen ikasleek, 513 00:45:58,080 --> 00:46:07,010 eta, ondoren, ikasleek barrutik ikasle batek bere izena da, edozein dela ere zerrenda bat daukat. 514 00:46:07,010 --> 00:46:10,180 Ikasleari amaituko dut eta abar. 515 00:46:10,180 --> 00:46:16,070 Gertatuko dut besterik XML dokumentu arbitrarioa batzuk eraiki dute, baina baliozko XML da. 516 00:46:16,070 --> 00:46:23,700 XML - guztia da egitura-mota hau eta gauza polita da - arrazoia, nahiz eta deitu dugun XML 517 00:46:23,700 --> 00:46:26,820 ez da gauza sort hori oso erraza da analizatu. 518 00:46:26,820 --> 00:46:32,580 Oso erraza da dokumentu hau hartu eta array bat egin daudelarik. 519 00:46:32,580 --> 00:46:39,370 Eta beraz XHTML lortzeko HTML baliozko XML izateko saiakera bat da. 520 00:46:39,370 --> 00:46:42,580 Dagoeneko hau nahiko HTML antzekoa. 521 00:46:42,580 --> 00:46:52,160 Desberdintasunak batzuk erakutsiko dira zaudenean sarrerako bezalako gauzak egiteko gai agian mota testu berdinen 522 00:46:52,160 --> 00:46:55,550 horrek lehenetsia da beraz, ez dut behar duten esateko. 523 00:46:55,550 --> 00:47:00,010 Desgaituta. 524 00:47:00,010 --> 00:47:05,160 >> Badira XHTML baliogabe hau osatzen duten 2 gauzak hemen. 525 00:47:05,160 --> 00:47:08,750 Lehenengo gauza da XML etiketa guztiak duten bukaera etiketa bat behar. 526 00:47:08,750 --> 00:47:13,040 Zein norabide barra da - beraz, sarrera-kasuan egin behar dut? 527 00:47:13,040 --> 00:47:15,060 Norabide horretan? Itxura txarrik. 528 00:47:15,060 --> 00:47:19,380 Beste norabide. 529 00:47:19,380 --> 00:47:21,960 Etiketa auto-itxiz. 530 00:47:21,960 --> 00:47:29,560 Bigarren gauza da XML-rekin horrelako gako bikote-mota horiek behar dituzu. 531 00:47:29,560 --> 00:47:32,130 Lotutako balio bat behar da. 532 00:47:32,130 --> 00:47:35,050 Beraz, nahiz eta bera ezgaitua adierazten zer nahi dut - 533 00:47:35,050 --> 00:47:37,110 sarrera hau desgaitu egin behar - 534 00:47:37,110 --> 00:47:39,110 duten XHTML baliogabea da. 535 00:47:39,110 --> 00:47:47,110 Zer benetan idatzi behar dut is disabled ezgaituta berdin. 536 00:47:47,110 --> 00:47:49,620 Orain baliozko XHTML da. 537 00:47:49,620 --> 00:47:54,850 Eta horien HTML eraldatzeko XML oinarritutako gauza moduko bat alde txiki horiek besterik ez dira. 538 00:47:54,850 --> 00:48:04,880 >> [Student] XML zure X propioen bidez bezala zabaltzen ingurukoa da guztiz bezalakoa zergatik da (inaudible) 539 00:48:04,880 --> 00:48:19,450 [Rob] of Gauza CSV bat bezala - CSV bat besterik baloratzen bereizita duzu - 540 00:48:19,450 --> 00:48:23,550 besterik kalkulu orri bat pentsatzea. CSV bat da, funtsean kalkulu orri bat. 541 00:48:23,550 --> 00:48:26,720 Agian zutabe daukazula eta errenkadak mordo bat duzula 542 00:48:26,720 --> 00:48:29,600 elkartua datuak zutabe horiekin baina hori da. 543 00:48:29,600 --> 00:48:38,310 XML da askoz ere gehiago polifazetikoa ahal duzun hori - datuak hierarkia arbitrarioa duzu. 544 00:48:38,310 --> 00:48:43,200 Dela barruan anitz ikasleak izan anitz ikastaroak izan nezakeen 545 00:48:43,200 --> 00:48:45,460 non zaila izango da kalkulu orri bat dela pentsatzea litzateke - 546 00:48:45,460 --> 00:48:51,010 kalkulu-orria besterik ez da bakar - CSV bereziki kalkulu-orri bakar bat besterik ez bezalakoa da - 547 00:48:51,010 --> 00:48:58,760 beraz, kalkulu-orri bakar CS50 guztiak, 51, eta 61 eta hauetan dagoen guztia beharrik 548 00:48:58,760 --> 00:49:03,230 Garai hartan zerikusia ikasleek, agian bilera aldiz eta gauza sort hori guztia. 549 00:49:03,230 --> 00:49:09,140 Beste gauza da, etiketan izen hori polita izen bat emateko elementu guztiak behar 550 00:49:09,140 --> 00:49:13,140 beraz CSV fitxategi bat irakurtzen saiatu eta analizatu, zer da benetan ikustea zaila izan daiteke. 551 00:49:13,140 --> 00:49:20,130 XML askoz ere gizakiek irakurtzeko erako beraz, horregatik bezala - etorri nork ez du pertsona batzuk 552 00:49:20,130 --> 00:49:26,380 benetan jakin zer CSV fitxategia da edo gustatzen ez da programatzailea edo zerbait - 553 00:49:26,380 --> 00:49:30,640 eman dezakezu txantiloi XML fitxategi bat bezala eta lerro jarraitu ahal izango dute, eta - 554 00:49:30,640 --> 00:49:33,590 oh, nire izena txertatzen hemen suposatzen dut. 555 00:49:33,590 --> 00:49:37,440 Askoz ere erabilgarria formatu bat da. 556 00:49:37,440 --> 00:49:42,440 CSV erabilera ugari ditu baina XML erabilpen ezberdinak ditu. 557 00:49:46,050 --> 00:49:49,680 >> Galdera gehiago? 558 00:49:49,680 --> 00:49:51,900 Beste galdera? 559 00:49:56,410 --> 00:50:00,520 [Ikaslea] aurreko galdetegi From - eskalatze bertikala eskalatzea horizontal versus. 560 00:50:00,520 --> 00:50:04,660 [Rob] Ez duzu behar duten jakin nahi du. Ez dut uste, nahiz eta eztabaidatu dugu. 561 00:50:04,660 --> 00:50:07,340 Dut asmatzen bakar-off iruzkin bat izan zen. 562 00:50:07,340 --> 00:50:12,660 Oh. Horizontal eskalatze bertikala versus ez da zerbait jakin behar duzu. 563 00:50:12,660 --> 00:50:18,570 Uste dut aldea besterik ez bezalakoa da - oh bai, erantzuna gakoa aldea esango du. 564 00:50:18,570 --> 00:50:26,030 Eskalatze bertikala besterik gustatzen zaio oh, nire ordenagailuaren gaizki egiten. Hobeago bat lortuko dut. 565 00:50:26,030 --> 00:50:29,150 Berriz eskalatzea horizontal da oh, nire ordenagailua gaizki egiten ari da - 566 00:50:29,150 --> 00:50:33,360 let me horietako 20 zeregin bera lan guztiei. 567 00:50:40,300 --> 00:50:45,520 >> [Student] Ezin dugu lotutako zerrenda ilarak egiteko modu baino gehiago joan. >> [Rob] Noski. 568 00:50:45,520 --> 00:50:50,000 Array bidea baino errazagoa da. 569 00:50:50,000 --> 00:50:53,140 Zerrenda lotuta ilarak egiteko modu. 570 00:50:53,140 --> 00:50:58,350 Lehenik eta behin, zer da gure lotutako zerrenda bat eta egitura itxura? 571 00:50:58,350 --> 00:51:17,060 [Ikaslea] egiten ari al gara for - yeah - >> [Rob] Egin Dezagun bere. 572 00:51:17,060 --> 00:51:30,000 Int val, gero eta egitura nodo * hurrengo; 573 00:51:30,000 --> 00:51:34,560 beraz, hemen zer dugu erabili dugu adibide honetarako. 574 00:51:34,560 --> 00:51:37,660 Dezagun idatzi benetan stuff honetan. 575 00:51:40,030 --> 00:51:49,600 Egin linked_list utzi. 576 00:51:51,750 --> 00:51:53,750 Gure egiturari - 577 00:52:05,360 --> 00:52:13,060 Ados. Orain gure ilara begira ditugu - 578 00:52:13,060 --> 00:52:16,090 utzi egin besterik en ilaran globala. 579 00:52:16,090 --> 00:52:23,130 Nodo * ilara izango da, eta adierazten du funtzio bat behar dugu. 580 00:52:23,130 --> 00:52:28,330 Uste dut gauza horiek ere egia edo gezurra overturn zitekeen -, utzi egin dela. 581 00:52:28,330 --> 00:52:38,690 Bool adierazten du - eta dequeueing ari gara - oh. Hmm. 582 00:52:38,690 --> 00:52:45,200 Int adierazten du - zer egin honekin dugu aurretik? 583 00:52:45,200 --> 00:52:54,340 Int adierazten eta daukagun bool enqueue eta baliabide batzuk egia Enqueue behar dugu. 584 00:52:54,340 --> 00:53:01,360 Egin enqueue lehen utzi. 585 00:53:01,360 --> 00:53:06,520 Gure ilara daukagu. Zerbait txertatzeko ilaran sartu nahi dugu. 586 00:53:06,520 --> 00:53:12,720 Zer da hori egiteko modurik onena? 587 00:53:12,720 --> 00:53:20,270 Hemen gure ilara gaur egun itxura hasteko batzuk erakuslea global dugu. 588 00:53:20,270 --> 00:53:24,910 Badira gure ilara da. 589 00:53:24,910 --> 00:53:30,350 Adierazten dugun lehen elementu hartuz suposatuz, 590 00:53:30,350 --> 00:53:36,570 non gaude gure nodo sartu, horrela ilarak dute hori behar bezala lan egin nahi du? 591 00:53:36,570 --> 00:53:43,440 [Ikaslea] oso amaieran. >> [Rob] Bai. Ilarak ustezko lehena izateko, lehena inprimatu. 592 00:53:43,440 --> 00:53:48,030 Horrek esan nahi du elementu berriak txertatuko baino gehiago behar da hemen. Ados. 593 00:53:48,030 --> 00:53:53,220 >> Kodea itzuli datozenak, 594 00:53:53,220 --> 00:53:59,760 horrek esan nahi izango dugu nahi gure ilara gorako begizta. 595 00:53:59,760 --> 00:54:10,210 Egin nodo * oraingoa = ilaran bequit oraingoa ez berdinak NULL bitartean. 596 00:54:10,210 --> 00:54:16,960 Egin nahi dut - eskubidea, Egin bereizita utzi. 597 00:54:16,960 --> 00:54:20,460 Lehenik eta behin, egungo = ilaran. 598 00:54:20,460 --> 00:54:24,660 Zer egiten dugu egungo hasten bada off NULL gisa? 599 00:54:24,660 --> 00:54:28,410 Egin dugu hau 2 modutan. Lehen modu honetan. 600 00:54:28,410 --> 00:54:31,450 Zer egiten dugu egungo NULL bada? 601 00:54:31,450 --> 00:54:34,850 Ilaran NULL bada baliokidea da hau? 602 00:54:38,550 --> 00:54:43,960 [Ikaslea] Honez faltsua itzuli egingo da. >> [Rob] faltsua itzuliko dugu? 603 00:54:43,960 --> 00:54:47,120 Zer da zerbait txertatu zerrenda huts bat sartu gaizki? 604 00:54:47,120 --> 00:54:49,080 [Ikaslea] Ezer ez da gaizki da. Barkatu. 605 00:54:49,080 --> 00:54:55,980 [Rob] Bai. Beraz, hemen desberdintasun bakarra da nire ilara global nire nodo berria bidaliko du. 606 00:54:57,840 --> 00:55:02,880 Eta gero nire ilara NULL bada egiaztatuz egin behar dut. 607 00:55:02,880 --> 00:55:05,960 Itzultzeko faltsua. 608 00:55:05,960 --> 00:55:20,910 Eta gero, ilaran val berdin i; hurrengo ilara NULL berdin; egia itzuliko. 609 00:55:20,910 --> 00:55:25,890 Ados. Pistola salto hementxe noa. 610 00:55:25,890 --> 00:55:29,570 Gogoratu zer egin genuen duten azken aldia 611 00:55:29,570 --> 00:55:35,660 non esan dugu askoz errazago nodo batera lan ** gauza sort honekin izan zen. 612 00:55:35,660 --> 00:55:43,880 Beraz, gaur egungo da eta ilara izango da, eta behera datozen hemen - 613 00:55:43,880 --> 00:55:53,010 bitartean oraingoa - bitartean * oraingoa NULL ez berdinak ez - 614 00:55:53,010 --> 00:55:58,230 beraz, utzi egin zidan besterik oraingoa - we'll honen inguruko eztabaida bigarren batean. 615 00:55:58,230 --> 00:56:00,860 Oraingo hurrengoa. Ados. 616 00:56:00,860 --> 00:56:12,910 Begira modu horretan, hau da baino gehiago errepikatzean nire erakusleak guztiak null erakuslea iritsi arte dut. 617 00:56:12,910 --> 00:56:17,710 Null erakuslea da erakuslea nire nodo berri batekin ordezkatu nahi dut izango. 618 00:56:17,710 --> 00:56:21,910 IPad bertsio begira - 619 00:56:21,910 --> 00:56:27,800 nire jatorrizko erakuslea eta lotutako zerrenda hutsik badago, ondoren oraingoa dago hemen seinalatu. 620 00:56:27,800 --> 00:56:29,630 Hau da null seinalatu egingo, 621 00:56:29,630 --> 00:56:34,440 beraz, hau erakuslea amaituko dut, beste nodo batzuk berria seinalatu mugitzen da. 622 00:56:34,440 --> 00:56:38,150 Berriz adibidea kasu honetan bada hemen 623 00:56:38,150 --> 00:56:42,720 messed dut apur bat - gero oraingoa da hemendik zeharkatuko du. 624 00:56:42,720 --> 00:56:50,700 Non egungo ustezko oraingoa hurrengo helbide edo. 625 00:56:50,700 --> 00:57:00,200 Zuk nahi dut? Oraingoa beraz, * egungo nodo bat ematen dit. 626 00:57:00,200 --> 00:57:04,440 Hurrengo hurrengo bat zeharkatzen. 627 00:57:04,440 --> 00:57:10,700 Une dut hemen apuntatzen naiz. 628 00:57:10,700 --> 00:57:13,720 Egin gorri utzi - beraz, gaur egun hemen apuntatzen naiz. 629 00:57:13,720 --> 00:57:19,710 Ondoren * uneko nodoaren honi erreferentzia egiteko va. 630 00:57:19,710 --> 00:57:25,080 Eta * oraingoa hurrengo erreferentziak nodo hau, baina ez da hori nahi dudana. 631 00:57:25,080 --> 00:57:27,700 Nodo hori erakuslea hau nahi dut. 632 00:57:27,700 --> 00:57:40,530 Beraz, nodo hau erakuslea duten ampersand da (* oraingoa) hurrengo. 633 00:57:47,660 --> 00:57:54,360 >> Puntu honetan denbora dut hori ordezkatu nahi dut nodo iritsi ofizialki. 634 00:57:54,360 --> 00:58:13,770 Utzi ordezkatu en ilarak horiek egungo guztia - eta orain egiten ari gara. 635 00:58:13,770 --> 00:58:21,760 Typos egon daitezke, baina ideia hori modu ordenatu honetan txertatze-ekin 636 00:58:21,760 --> 00:58:28,130 errazagoa da hori aldatu nahi dugu erakusleak batera lan 637 00:58:28,130 --> 00:58:32,780 ordez segimendua egiteko beharrik - ados, nire Irteeran NULL da? 638 00:58:32,780 --> 00:58:36,430 Oh da? Gero zerbait zehatza egin Irteeran nodo sortu behar dut 639 00:58:36,430 --> 00:58:40,310 bestela, batetik bestera joateko nahi dut hurrengo gauza seinalatu nahi dudana da NULL arte, 640 00:58:40,310 --> 00:58:46,740 eta, ondoren, ordezkatu dut - hurrengo gauza zer da - nire malloc nodo. 641 00:58:46,740 --> 00:58:50,740 Horren ordez, kasu horietan bereizteko beharrik, hemen dut bakarrik kasuan aurre egiteko 642 00:58:50,740 --> 00:58:54,990 zer erakuslea dela NULL dut jada ez NULL izan nahi da, 643 00:58:54,990 --> 00:59:01,820 eta horri esker, bizitza errazagoa horiek izan ezik guztiak izan behar du * oraingoa orain delako - 644 00:59:01,820 --> 00:59:05,460 [Ikaslea] oraindik dira nodo baten tamaina? 645 00:59:05,460 --> 00:59:10,480 [Rob] Bai. Oraindik ere, nodo bat naiz mallocing. 646 00:59:10,480 --> 00:59:12,980 [Ikaslea] Is nodo * baten tamaina izango du? 647 00:59:12,980 --> 00:59:20,990 [Rob] datozenak hemen atzera, kasua uste hau gure zerrenda lotuta badago. 648 00:59:28,330 --> 00:59:33,190 Tipo hau adierazi off NULL. 649 00:59:33,190 --> 00:59:36,950 Horren ondoren zergatik begizta, egungo hemen puntu 650 00:59:36,950 --> 00:59:41,510 hau erakuslea dela NULL delako. 651 00:59:41,510 --> 00:59:50,380 Orain erakuslea hau aldatzeko nodo berri bat seinalatu nahi dut. 652 00:59:50,380 --> 00:59:58,390 Nodo tamaina beraz malloc - lehen nodo berri duten malloc dut. 653 00:59:58,390 --> 01:00:11,070 Eta hori nodo * bat itzultzen eta orain erakuslea hau aldatzen ari da * oraingoa berdinen eraikitzeko 654 01:00:11,070 --> 01:00:15,780 nodo berri hau esleitu I. 655 01:00:15,780 --> 01:00:26,490 Beraz, egungo nodo bat bada **, ondoren * oraingoa da nodo bat izan nahi *, joan 656 01:00:26,490 --> 01:00:32,540 eta nodo tamaina zerbait dut mallocing naiz bada orduan hau erakuslea da itzuli nodo bat 657 01:00:32,540 --> 01:00:39,630 beraz, hau nodo * da - beraz, bi aldeetan behar bezala mota bera dute. 658 01:00:39,630 --> 01:00:46,610 Eta beraz, zer NULL esleitu besterik ez dut izan zen bada, itzultzeko false; 659 01:00:46,610 --> 01:00:54,750 bestela amaitzeko horiek ezartzeko zer izan nahi dut - horiek izan ezik parentesi behar 660 01:00:54,750 --> 01:00:57,730 hori ez delako gauzen ordena nola funtzionatzen. 661 01:00:57,730 --> 01:00:59,690 Duten bezala interpretatu ari zen parentesi gabe 662 01:00:59,690 --> 01:01:03,010 korronte-gezi-val duten erreferentzia kenduta. 663 01:01:03,010 --> 01:01:07,010 Ordez egungo erreferentzia kenduta eta horrek ekartzen dit nodo bat nahi dut. 664 01:01:07,010 --> 01:01:10,620 Gero nodo lotutako balioa eskuratu nahi dut. 665 01:01:10,620 --> 01:01:17,670 >> [Student] pentsatu dut geziak duten ekidin beharko duzu eta joan zuzenean balioa onartzen. 666 01:01:17,670 --> 01:01:22,640 [Rob] dute egin. Hori dut bada - demagun ilaran adibidea da. 667 01:01:22,640 --> 01:01:28,400 Naiz ilaran-gezi-val berdin i ilaran nodo bat delako * egin onartzen dut. 668 01:01:28,400 --> 01:01:39,160 Han polita bezalako korronte-jada gezi-val edo zerbait sintaxia batzuk balira 669 01:01:39,160 --> 01:01:42,540 horietatik 2 dereferences egin, orduan hau ondo funtzionatuko luke. 670 01:01:42,540 --> 01:01:44,790 [Student] Beraz gezi 1 erreferentzia kenduta bakarrik da. >> [Rob] Bai. 671 01:01:44,790 --> 01:01:53,590 Bestela hau idatzi izan dut gisa (** current.val). 672 01:01:53,590 --> 01:02:02,490 Besterik ere gustatzen zait ilara idatzi izan (* ilaran). Val gisa. 673 01:02:04,430 --> 01:02:09,250 Hargatik txertatzeko. Beno, hori ilaran ekarriko dut asmatzen. 674 01:02:09,250 --> 01:02:12,030 Adierazten da nabarmen laburragoa izango da. 675 01:02:12,030 --> 01:02:18,280 Dezagun jarri void hemen garbitasuna. 676 01:02:18,280 --> 01:02:22,820 Beraz, adierazten du. Zer elementu naiz dequeueing? 677 01:02:22,820 --> 01:02:24,820 [Ikaslea] Lehena? >> [Rob] Bai. 678 01:02:24,820 --> 01:02:32,880 My first one NULL bada - bueltan - ez dakit zer itzuli nahi dugu I - INT_MAX; 679 01:02:32,880 --> 01:02:37,580 eta orduan txeke bat egin behar duzu INT_MAX itzuli zen ikusteko. 680 01:02:37,580 --> 01:02:44,090 Duten gauza sort hori ezagutu inc du, bestela, nahi dugu - 681 01:02:44,090 --> 01:02:54,610 itzuli besterik ezin dugu ilara val? Da, zer egin nahi dugun hori? 682 01:02:54,610 --> 01:02:58,010 Adierazten du, halaber, inplizituki elementua kentzen ilaratik, 683 01:02:58,010 --> 01:03:10,840 beraz, demagun lehen - dezagun gure ilara lehen nodo seinalatu tmp bat lortzeko. 684 01:03:10,840 --> 01:03:15,510 Orain gure ilara aurrera puntua hurrengo gauza ilaran nahi dugu. 685 01:03:15,510 --> 01:03:21,450 Orain tmp ezker dugu. Tmp val gauza itzultzeko nahi dugun da. 686 01:03:21,450 --> 01:03:24,180 Beraz, val = tmp-> val; 687 01:03:24,180 --> 01:03:31,190 baina itzuliko gara aurretik tmp libratzeko behar dugu eta itzultzeko val. 688 01:03:31,190 --> 01:03:36,350 Eragiketak hemen ordena garrantzitsua da horretan tmp bat hartu behar dugu 689 01:03:36,350 --> 01:03:40,520 ilaran mugitzen dugu aurretik hurrengo elementua da. 690 01:03:40,520 --> 01:03:44,860 Balioa lortzeko tmp askatzea dugu aurretik behar dugu, 691 01:03:44,860 --> 01:03:48,710 eta, ondoren, val itzuli ahal izango dugu. 692 01:03:48,710 --> 01:03:50,680 >> [Student] Beharko ilaran ezarri dugu hurrengo ilara? 693 01:03:50,680 --> 01:03:57,800 [Rob] Bai. Begizta txarra zen sortzeko / ez litzateke hala ere libre uzten ondoren lan. 694 01:03:57,800 --> 01:03:59,900 Ilaran = ilara-> hurrengo. 695 01:03:59,900 --> 01:04:03,230 Ilaran aurrera hurrengo elementua sartu nahi dugu ez hurrengo elementua aurrera 696 01:04:03,230 --> 01:04:08,170 zer elementu Unean da. 697 01:04:08,170 --> 01:04:17,660 Pilak nabarmen izango litzateke - are errazagoa adierazten duten bezala da berdin 698 01:04:17,660 --> 01:04:20,190 pilaren aurrean off tiraka ari garelako. 699 01:04:20,190 --> 01:04:24,030 Amaiera ilara oso antzekoa izango litzateke non besterik nodo bat esleitu nahi dugu 700 01:04:24,030 --> 01:04:27,670 eta pila aurrean txertatzeko, beraz ere ez dugu ezer gorako begizta behar. 701 01:04:27,670 --> 01:04:31,420 Txertatu besterik ez dugu zuzenean aurrealdean. 702 01:04:42,500 --> 01:04:44,640 Pertsona orok on da? 703 01:04:44,640 --> 01:04:49,760 >> Ados. Galdera gehiago? 704 01:04:49,760 --> 01:04:56,570 [Student] Zer gauza handiak behar izaten dut gogoan berrienak hitzaldia? 705 01:04:56,570 --> 01:04:58,730 [Rob] berrienak Hitzaldia. 706 01:04:58,730 --> 01:05:01,620 Ez duzu behar edozein kode ezagutzeko. 707 01:05:01,620 --> 01:05:07,590 Globalak ideiak jakin behar duzu. 708 01:05:07,590 --> 01:05:11,650 Nate erdiak ez zuen inolako kode dute eta beraz diapositibak horiek konektatuta. 709 01:05:11,650 --> 01:05:15,220 Oraindik ez dute besterik begirada atsegin eta ideia nagusien dute. 710 01:05:15,220 --> 01:05:28,630 Nire erdia - lehen ezin duzu ezer fidatzen ideia orokorra ezagutzea. 711 01:05:28,630 --> 01:05:38,070 Izan ere, agian konpiladorea prozesua txarra izan daiteke bezala, 712 01:05:38,070 --> 01:05:40,870 baina ez du, nahiz eta axola iturburu kodea, itxura ona du. 713 01:05:40,870 --> 01:05:46,390 Konpiladoreak zehazki aldatu delako liteke iturburu kodea aldatzeko 714 01:05:46,390 --> 01:05:50,860  konpilatzean prozesuan. 715 01:05:50,860 --> 01:05:58,140 Bezala, aldi berean, - uste dut ideia nagusiak bezalakoak dira horiek. 716 01:05:59,560 --> 01:06:09,030 >> [Student] Ba aipatu duzu ez dugun behar Firesheep lotutako ezer jakin - 717 01:06:09,030 --> 01:06:13,110 edo ez dela jakin behar dugu? 718 01:06:13,110 --> 01:06:18,360 [Rob] Nate gauzak erdia, ezer Nate ukitu batekin - 719 01:06:18,360 --> 01:06:22,760 Firesheep, Wireshark bezala - ez ere uste dut Firesheep egin zuen xehetasunez. 720 01:06:22,760 --> 01:06:28,620 Halaber zenuen horrekin zerbait - zen Firesheep - azken astean? 721 01:06:28,620 --> 01:06:31,110 Ba ukitu duzula? 722 01:06:31,110 --> 01:06:34,060 [Ikaslea] Bai, uste dut agian dugu - >> [Rob] Bai. 723 01:06:34,060 --> 01:06:40,880 Ez gabiltza duzu Firesheep irteera emango ditu, eta esan hau interpretatzeko. 724 01:06:40,880 --> 01:06:44,960 Zer da Firesheep bezalako galdera bat izango litzateke - Besterik ez da behar du? 725 01:06:44,960 --> 01:06:47,290 Zer balio du? 726 01:06:47,290 --> 01:06:52,120 [Ikaslea] 4 bertsio Firefox edo zerbait, bakarrik lan uste dut. 727 01:06:52,120 --> 01:06:55,320 [Rob] Agian orain, hautsi egingo. 728 01:07:11,430 --> 01:07:14,070 Ez dut ideiarik ere. 729 01:07:14,070 --> 01:07:18,330 Ez dirudi eskuz ezgaituta izan behar da, 730 01:07:18,330 --> 01:07:21,210 baina agian ez du batera berrienak Firefox funtzionatzen. 731 01:07:21,210 --> 01:07:24,790 [Ikaslea] benetan saiatu naiz bateragarria izango litzatekeela esan delako instalatu. 732 01:07:24,790 --> 01:07:28,880 [Rob] Beraz, uste dut ezin du berarekin berrienak Firefox funtzionatzen. 733 01:07:28,880 --> 01:07:32,360 Baina ideia oraindik ere zer esan nahi zen erakutsiko du standak. 734 01:07:32,360 --> 01:07:39,430 Absurdu zenbat munduaren ez zen HTTPS in garai hartan bizi izan zen. 735 01:07:39,430 --> 01:07:43,820 Are gehiago, azken 2 urteetan, edozein dela ere, edo, oraindik ere, - ez dauden hobekuntza dramatikoa da 736 01:07:43,820 --> 01:07:47,210 HTTPS erabiltzen duten webgune zenbaki. 737 01:07:49,920 --> 01:07:52,580 >> [Student] baino gehiago joan HTTP behar dugu? 738 01:07:52,580 --> 01:07:58,050 [Rob] da protokoloa? >> [Student] gauza jakin behar ditugu batzuk. 739 01:07:58,050 --> 01:08:06,220 [Rob] Ondo da. Oinarrizko gauzak zure sare fitxa ikus dezakezu dena dira. 740 01:08:06,220 --> 01:08:12,160 When I orri bat eskatu - atzera datozen gauza nagusientzako goian. 741 01:08:12,160 --> 01:08:16,090 Ikusten duzu hemen eskaera dudala egin. 742 01:08:16,090 --> 01:08:19,220 Chrome dena formatua emateko nicely Gurekin gertatzen 743 01:08:19,220 --> 01:08:21,970 non eskaera URL hau izan zen, eskaera metodoa GET zen, 744 01:08:21,970 --> 01:08:24,800 eta egoera kodearen 200 OK zen. 745 01:08:24,800 --> 01:08:28,279 Kodea ikusi hit badut, zuzenago ikusten dut - 746 01:08:28,279 --> 01:08:35,680 eta hau da - erakutsiko genezake horiek bai, baina ez da zaila haien artean interpretatzeko. 747 01:08:35,680 --> 01:08:41,729 Hemen zuzeneko eskaera egin nuen da, beraz, horrek esan nahi du joan nahi dut 748 01:08:41,729 --> 01:08:48,160 apps.cs50.net/discuss/threads/inbox/all/HTTP/1.1. 749 01:08:48,160 --> 01:08:57,569 Eta protokoloa egiterako HTTP/1.1 zen hau da, ia - nik beti izango. 750 01:08:57,569 --> 01:09:01,490 Hemen baino gehiago GET erabiltzen dugu, beraz, hau ere izan liteke POST. 751 01:09:01,490 --> 01:09:04,660 Eta gero behera datozen - modu guztiak erantzun goiburu behera - iturri dela ikusi badugu, 752 01:09:04,660 --> 01:09:07,740 non 200 OK ikusiko dugu. 753 01:09:07,740 --> 01:09:11,069 Posible desberdinak status horien kodeak ezagutzen. 754 01:09:11,069 --> 01:09:15,520 Uste dut berrikuspena horiek pare bat esan nahi dugu, 755 01:09:15,520 --> 01:09:20,640 beraz, 403, 404 - amankomunean direnak mota horiek. 756 01:09:20,640 --> 01:09:26,810 Dela ideia nagusietako bat. 757 01:09:29,990 --> 01:09:35,120 HTTP eta HTTPS arteko aldea besterik enkriptatze hau da. 758 01:09:35,120 --> 01:09:42,319 >> [Student] zara egiten? >> [Rob] Baietz uste dut. Beno, bai. 759 01:09:42,319 --> 01:09:46,470 [Ikaslea] Egingo oso orokorrean hitz egin duzu enkriptatze nola obra buruz? 760 01:09:46,470 --> 01:09:49,920 Hitz egin dugu adibidez delako denean Huffman fitxategiak konprimitzea, 761 01:09:49,920 --> 01:09:54,890 nola erauzi benetan hash igorri delako fitxategia barruan badakizu 762 01:09:54,890 --> 01:09:56,950 beraz, nola enkriptatze-lana? 763 01:09:56,950 --> 01:10:00,830 Nola ez, informazioa nola enkriptatzen ez dute egia esan, bezeroari bidaltzen bada badakizu 764 01:10:00,830 --> 01:10:05,740 hemen gakoa - eta benetan har dezakezula gako horretatik aurrera -? 765 01:10:05,740 --> 01:10:07,740 Nola funtzionatzen du prozesu orokorrari? 766 01:10:07,740 --> 01:10:09,870 [Rob] enkriptatze prozesu orokorra - 767 01:10:09,870 --> 01:10:15,590 galdera oso zehatza bat egingo erantzun dut da. 768 01:10:15,590 --> 01:10:21,490 Ez dago gutxian - ondo, Tommy eta biok egindako laburra. 769 01:10:21,490 --> 01:10:26,060 Zoritxarrez 26 minutu bezalakoa da, beraz, ez da labur bat da. Luzea da. 770 01:10:26,060 --> 01:10:31,530 Baina gure labur RSA zen eta horrek horiek adibide bat besterik ez da, 771 01:10:31,530 --> 01:10:40,420 eta RSA hau orokorra HTTPS protokoloaren zati da. 772 01:10:40,420 --> 01:10:46,060 Ideia - RSA gako publikoaren kriptografia adibidea da, 773 01:10:46,060 --> 01:10:49,690 horrek esan nahi du 2 gakoak bereizi egin behar duzu. 774 01:10:49,690 --> 01:10:51,690 1 gako bat erabiltzen duzunean gauzak benetan enkriptatzeko, 775 01:10:51,690 --> 01:10:54,410 eta beste funtsezko erabiltzen duzun gauza desenkriptatzeko. 776 01:10:54,410 --> 01:10:58,360 Gauzak enkriptatzeko erabiltzen duzun gako hau ko duten publikoa da. 777 01:10:58,360 --> 01:11:03,500 Webgunera bidal daitezke enkriptatze gako hau. 778 01:11:03,500 --> 01:11:08,280 Bidaltzen duzun enkriptaketa giltza hori egin dute, eta zerbait bidaltzeko horiek nahi duzun 779 01:11:08,280 --> 01:11:13,550 Enkriptatze gako hori erabili duzu zure datu guztiak zifratu eta bidali zien. 780 01:11:13,550 --> 01:11:16,110 Beraz, gako pribatua duten bakarrak dira. 781 01:11:16,110 --> 01:11:22,630 Gako pribatua duten jakinez gero bihurtu ondoren edonork zure datuak deszifratzeko gai izango litzateke. 782 01:11:22,630 --> 01:11:27,980 Baina gako pribatu hori - eta horrek matematikoki gako publikoa lotuta dago, baina ezin duzu 783 01:11:27,980 --> 01:11:33,640 bat beste batetik irudikatu - horrela gako pribatua datuak desenkriptatzeko erabili ahal izango da. 784 01:11:33,640 --> 01:11:36,630 Gako pribatua duten bakarrak dira geroztik, 785 01:11:36,630 --> 01:11:38,920 duten datuak irakurri ahal bakarrak ari dira. 786 01:11:38,920 --> 01:11:44,170 Gako publikoa publiko Beraz, nahiz eta ez den 787 01:11:44,170 --> 01:11:47,660 Bera erabili dut - joaten denean Google.com edo dena nahi dut, 788 01:11:47,660 --> 01:11:50,010 dute agian bat baino gehiago, ez dakit - baina banoa Google.com nahi izanez gero, 789 01:11:50,010 --> 01:11:54,770 doa Google.com zuen, doa zuen Google.com-- 790 01:11:54,770 --> 01:11:59,250 denok gako publiko bera erabil dezakete ordea nahi dugu gure informazio propioa enkriptatzeko. 791 01:11:59,250 --> 01:12:04,010 Baina gurekin ez dira irudikatu ahal izango da - dira deszifratu ahal izango da 792 01:12:04,010 --> 01:12:09,940 gako publikoa ez beren informazio delako da deszifratzeko gai. 793 01:12:09,940 --> 01:12:13,050 Bakarra da enkriptatu ditzaten. 794 01:12:13,050 --> 01:12:23,250 Eta barre / math zehatza da - modulua operadore eta esponentzial eta stuff sorta bat bezala, 795 01:12:23,250 --> 01:12:28,890 da bakarrik lan egiten duten gako pribatua du, ahal duen gauza bakarra dela 796 01:12:28,890 --> 01:12:33,620 desenkriptatzeko gako en publiko enkriptatze stuff. 797 01:12:33,620 --> 01:12:38,020 Bai. Ikusi RSA xehetasun gehiago labur. 798 01:12:38,020 --> 01:12:41,880 [Ikaslea] Dela web orrian? 799 01:12:41,880 --> 01:12:46,210 [Rob] Bai, uste dut puntu honetan ere. Edo, gutxienez, YouTube da lotura bat izan zen argitaratua. 800 01:12:51,330 --> 01:12:57,190 Ikus dezagun. Film laburrak. Uste dut aste 2-zerikusia izan litzateke. Bai. RSA. 801 01:12:57,190 --> 01:13:03,780 Eta da - we're ez honetan play joan - 24 minutu. 802 01:13:03,780 --> 01:13:05,780 Luze bat da. 803 01:13:07,740 --> 01:13:09,740 >> Galdera gehiago? 804 01:13:09,740 --> 01:13:14,770 [Student] Ezin laburki hitz egin duzu bitmasks buruz? >> [Rob] Noski. 805 01:13:14,770 --> 01:13:23,090 Laburki, ideia besterik ez bezalakoa da - >> [Student] Zer duzu, Rob? 806 01:13:23,090 --> 01:13:32,760 [Rob] Bitmasks. Ideia da - utzi, besterik gabe esan batzuk ditugu - osoko zenbaki batzuk erabiliz we're - 807 01:13:32,760 --> 01:13:41,490 int x - beraz, hasteko off gara 0. 808 01:13:41,490 --> 01:13:47,900 Orain, osoko zenbaki hau 32 bit dituenez, edozein bit horietako 1 bakar irudikatzeko erabil daiteke 809 01:13:47,900 --> 01:13:50,600 FLAC zehatz bat. 810 01:13:50,600 --> 01:13:56,210 Hau da, non begiratzen baduzu sistema eragilearen kodeak at, hau erabiltzen dute leku osoko 811 01:13:56,210 --> 01:14:03,900 non agian top up nonbait dute hash-defini - 812 01:14:03,900 --> 01:14:09,020 Ikusi ditzagun adibide batzuk. 813 01:14:09,020 --> 01:14:22,720 Man-2-open --sistema irekia deia hemen ikusten duten bere argumentuak bat int banderak ahal izango dugu - 814 01:14:22,720 --> 01:14:29,120 zer argumentu hori dira banderak horietako batzuk espero da. 815 01:14:29,120 --> 01:14:33,030 Ikusiko dugu O_append, O_ASYNC, O_CLOEXEC, 816 01:14:33,030 --> 01:14:37,130 O_CREAT, eta abar. 817 01:14:37,130 --> 01:14:45,260 O_DIRECT. Banderak mota horiek dira nonbait hash definitutako. 818 01:14:45,260 --> 01:14:47,260 Eta denak dira zehazki 1 bit. 819 01:14:47,260 --> 01:14:57,600 Beraz, O_CREAT hash definitutako 1 bezala, ezker-shift, 4 izan daiteke (1 << 4). 820 01:14:57,600 --> 01:15:02,280 Betiere O_CREAT hori besterik ez izango da erabiltzen dut - hori izan da joan - 821 01:15:02,280 --> 01:15:09,350 binary 1, 0, 0, 0, eta 30-ish zeroen en aurretik. 822 01:15:09,350 --> 01:15:13,930 Bit bakarreko multzo bat besterik ez da, eta bit hori bandera hau adierazten du. 823 01:15:13,930 --> 01:15:18,160 Eta beraz, ez du beste Ez da izango 4 utzitako-desplaza joan. 824 01:15:18,160 --> 01:15:30,390 Gora ordezkatzen 32 zenbaki oso bakar batean banderak egiteko gai naiz - 825 01:15:30,390 --> 01:15:40,850 x = O_CREAT pixka jakintsua edo O_DIRECT. 826 01:15:40,850 --> 01:15:43,640 Besterik edozein banderak horietako 2 biltzen ari zaren. 827 01:15:43,640 --> 01:15:48,600 Orain x da ezarri 2 bit 2 bit dagozkien izan da joan 828 01:15:48,600 --> 01:15:53,490 O_CREAT eta O_DIRECT neurtzen. 829 01:15:53,490 --> 01:15:58,740 Bide horretan eta gero -, beraz, orduan x gainditu dugu irekita funtzioa sartu, 830 01:15:58,740 --> 01:16:02,950 eta premiei irekia zer banderak ziren benetan ezarri ikusteko. 831 01:16:02,950 --> 01:16:06,480 Beraz, hori non nik bezalako gauzak egin da joan 832 01:16:06,480 --> 01:16:19,340 if (x & O_CREAT) zerbait egin, 833 01:16:19,340 --> 01:16:27,110 edo bada (x & O_DIRECT) beste zerbait egin, 834 01:16:27,110 --> 01:16:30,300 eta, ondoren, ez dagoela ez dute ezarri dugu bandera batzuk izan daitezke - 835 01:16:30,300 --> 01:16:35,730 if (x & o_ - ez dut ez dakit zer beste banderak izan ziren - 836 01:16:35,730 --> 01:16:42,140 (X & O_RDONLY) - Baldintza jakin hori behar da, emango du. 837 01:16:42,140 --> 01:16:44,030 Edo kode-bloke hori ez da exekutatu egingo da, 838 01:16:44,030 --> 01:16:48,030 baina 2 hauek dira 2 banderak horiek ezarri ziren delako. 839 01:16:48,030 --> 01:16:57,400 Eta konturatu C, hori ez da 0 edozein balio egiazkoa da. 840 01:16:57,400 --> 01:17:05,020 Beraz, (x & O_CREAT) 0 edo O_CREAT izango da 841 01:17:05,020 --> 01:17:07,990 delako O_CREAT bakarrik bit set bakar bat du. 842 01:17:07,990 --> 01:17:12,800 Bit hori hurrengo ezartzen bada, orduan hau da O_CREAT itzuli egingo da - 843 01:17:12,800 --> 01:17:16,640 bitarra non apurtxo bat ezartzen da. 844 01:17:16,640 --> 01:17:23,400 Bada bit hori hurrengo ezarria ez badago, ondoren, 0 itzultzeko, eta kasu horretan badakigu bandera ez zen ezarri du. 845 01:17:23,400 --> 01:17:25,400 Hori da bitmasks nola erabiltzen duzun. 846 01:17:25,400 --> 01:17:29,050 Uste dut aurreko azterketa bat edo agian klase edo zerbait on - 847 01:17:29,050 --> 01:17:35,150 halaber bitmasks erabili dezakezu aldagai baten bitarra inprimatu. 848 01:17:35,150 --> 01:17:46,250 Beraz, erabili ahal izango dut - begizta - 1, ezker-shift, 0 - eta ondoren inprimatu x & duten bada - 849 01:17:46,250 --> 01:17:52,570 x & 1, ezker shift, 0 bada - ondoren, inprimatu a 0 edo 1. Edo inprimatu 1, bestela bat inprimatu 0 bat. 850 01:17:52,570 --> 01:18:00,620 Eta gero gainetik beste behin joaten naiz - bada x & 1, ezker-shift, 2 - ondoren, horrek esan nahi du bigarren bit 851 01:18:00,620 --> 01:18:04,450 aldagai ezarritakoan, beraz, 1 bestela bat inprimatu dut inprimatu dut 0 da. 852 01:18:04,450 --> 01:18:06,860 Eta uste dut benetan genuke hori egin delako alderantzizko ordenan nahi 853 01:18:06,860 --> 01:18:10,120 normalean ezkerraldean altuena ordena bit izan nahi al duzu 854 01:18:10,120 --> 01:18:24,510 eta eskuinaldean txikiena-ordena bit izan nahi du, beraz, seguruenik begizta 4 int i = 31 hit I 0 arte, 855 01:18:24,510 --> 01:18:32,320 gero ez duen baldintza zehatza - bada x & 1, ezker-shift, i; inprimatu 1, bestela 0. 856 01:18:32,320 --> 01:18:34,320 [Ikaslea] Eskerrik asko. 857 01:18:36,280 --> 01:18:38,550 >> [Rob] uste dut gara denbora daudelarik. 858 01:18:38,550 --> 01:18:42,840 Kanpo-denbora-segundo azken bi urtean galdera gehiago? 859 01:18:42,840 --> 01:18:47,710 Ondo da. Zorte on bihar. 860 01:18:47,710 --> 01:18:54,780 Honen azken atala non hurrengo astean aukerakoa izango da joan zen. 861 01:18:54,780 --> 01:19:03,770 Eman dut atzera ariketak eta haien gainean joan gaitezke eta, agian, beste gauza gehiago joan 862 01:19:03,770 --> 01:19:09,230 interesa, edo final zinen proiektu gauzak, etorkizun CS klaseak gauzak, edo - Ez dakit. 863 01:19:09,230 --> 01:19:12,070 Baina hau azken material betetako atala da. 864 01:19:12,070 --> 01:19:15,070 Bye! 865 01:19:15,070 --> 01:19:20,970 (Txalo) 866 01:19:22,250 --> 01:19:24,420 >> [CS50.TV]