1 00:00:00,000 --> 00:00:02,270 >> [Iritzia: Quiz 1] 2 00:00:02,270 --> 00:00:04,620 [Ali Nahm, Oreoluwa Barbarinsa, Lucas Freitas, Rob Bowden] [Harvardeko Unibertsitateko] 3 00:00:04,620 --> 00:00:07,660 [Hau CS50.] [CS50.TV] 4 00:00:07,660 --> 00:00:11,610 [Lucas Freitas] denek Ongi. Hau galdetegi 1 berrikuspena da. 5 00:00:11,610 --> 00:00:15,040 Just ezespen bat bezala, hau da, - esan nahi dut, ez gabiltza estaltzeko saiatu joan 6 00:00:15,040 --> 00:00:17,770 materiala ahalik, baina ez du horrek esan nahi, 7 00:00:17,770 --> 00:00:20,780 duten daiteke galdetegi 1 izan gauza guztiak estaltzeko goaz. 8 00:00:20,780 --> 00:00:25,270 Beraz, ziurtatu ere hitzaldia begirada bat, atal, ahal duzun guztia hartu duzu. 9 00:00:25,270 --> 00:00:28,240 Galdetegi 1 da asteazkenean, hurrengo asteazkenean izango da. 10 00:00:28,240 --> 00:00:33,800 Beraz, ziurtatu ikastera. Honez, izan nahiko askoz, lehen galdetegi bezala joan 11 00:00:33,800 --> 00:00:36,390 bere formatua dagokienez, baina, seguruenik, askoz ere zailagoa izango da. 12 00:00:36,390 --> 00:00:39,600 Gutxienez, iaz 50 hartu nuen, askoz zailagoa izan zen pentsatu nuen. 13 00:00:39,600 --> 00:00:42,410 Beraz, asko ikasi. 14 00:00:42,410 --> 00:00:45,190 >> Naiz datuen egitura estaltzeko joan eta Huffman kodeketa. 15 00:00:45,190 --> 00:00:47,910 Hau jende asko uste da konplexua zerbait da, 16 00:00:47,910 --> 00:00:51,930 baina naiz ahalik eta erraza izan dadin saiatuko da. 17 00:00:51,930 --> 00:00:56,330 Lehenik eta behin, zer you guys galdetegi 1 jakin nahi dugu, nahi 18 00:00:56,330 --> 00:01:00,970 Datu-egitura hori ez dut gaur egingo bakoitzaren deskribapen kontzeptuala ulertzen. 19 00:01:00,970 --> 00:01:03,960 Horrek esan nahi du ez duzula izatea benetan 20 00:01:03,960 --> 00:01:07,020 hash taula bat ezartzea zure quiz 1. 21 00:01:07,020 --> 00:01:10,250 Ez dugu nahi hash taula oso bat martxan jarri ahal duzu; agian saiatuko gara 22 00:01:10,250 --> 00:01:13,090 funtzio batzuk martxan jarri ahal duzu egiteko, 23 00:01:13,090 --> 00:01:16,940 eragiketa ohikoena, baina ez gabiltza, dena martxan jarri ahal duzu egin behar. 24 00:01:16,940 --> 00:01:21,010 Beraz, garrantzitsua da datu-egitura bakoitzaren atzean kontzeptua ulertzen duzu 25 00:01:21,010 --> 00:01:23,510 eta, gainera zarela C kode gai, 26 00:01:23,510 --> 00:01:27,880 besterik ez da datu-egitura bakoitzeko dute eragiketak ohikoena. 27 00:01:27,880 --> 00:01:30,090 Eta, gainera, erakusleak eta structs berrikusi ahal izatea, 28 00:01:30,090 --> 00:01:33,470 asko agertzen direlako datuen egitura hauetan. 29 00:01:33,470 --> 00:01:37,380 >> Lehenik, lotuta zerrendak. Lotuta zerrendak, egia esan, oso arrayak antzekoa, 30 00:01:37,380 --> 00:01:39,930 baina lotuta zerrenda eta array baten arteko aldea, 31 00:01:39,930 --> 00:01:45,160 lehenik eta behin, da lotutako zerrenda bat duten tamaina oso malgu bat du, 32 00:01:45,160 --> 00:01:50,060 bitartean matrizeren bai aukeratu array tamaina oso handi bat behar duzu, 33 00:01:50,060 --> 00:01:53,710 beraz ari zarela zure datu guztiak gordetzeko array horretan gai izango badakizu, 34 00:01:53,710 --> 00:01:59,370 edo malloc erabiltzeko array luzera malgua izan behar duzu. 35 00:01:59,370 --> 00:02:03,680 Lotuta zerrendak oso erraza da elementu gehiago besterik ez, 36 00:02:03,680 --> 00:02:07,210 elementu gehiago jarri lotuta zerrendan edo elementuak kendu. 37 00:02:07,210 --> 00:02:09,370 Eta egia esan, ez baduzu nahi lotutako zerrenda ordenatuko, 38 00:02:09,370 --> 00:02:13,950 bilatu eta etengabeko denbora elementuak kendu ahal izango duzu, 39 00:02:13,950 --> 00:02:16,800 beraz, O (1) Denbora, beraz, oso komenigarria da. 40 00:02:16,800 --> 00:02:20,660 Besterik ez duzu zaindua beti gogoratu malloc eta dohainik izango da nodo, 41 00:02:20,660 --> 00:02:25,510 ez baduzu, memoria filtrazioak izan duzu besterik ez delako. 42 00:02:25,510 --> 00:02:31,480 Hain lotuta zerrendak - nodo baten definizioa, zer dugu bertan bezalakoa da. 43 00:02:31,480 --> 00:02:35,110 Jarri dut int n, baina nahi duzun edozein datuak gorde ahal izango duzu. 44 00:02:35,110 --> 00:02:37,280 Beraz, kate bat gorde nahi baduzu, fina da. 45 00:02:37,280 --> 00:02:41,690 Egitura gisa gorde nahi baduzu, fina da, bikoitza izango dute, nahi duzuna. 46 00:02:41,690 --> 00:02:44,630 Jarri besterik ez dut int n adibide hemen. 47 00:02:44,630 --> 00:02:46,800 Eta hurrengo nodo erakuslea izan duzu. 48 00:02:46,800 --> 00:02:51,940 Beraz, funtsean, lotuta zerrenda datu batzuk ditu, eta, ondoren, adierazi du hurrengo nodo da. 49 00:02:51,940 --> 00:02:56,710 Lotuta zerrendan azken elementua bada, NULL seinalatu egingo. 50 00:02:56,710 --> 00:02:59,060 Beraz, hau lotuta zerrenda adibide bat da. 51 00:02:59,250 --> 00:03:05,960 >> Ados, beraz, gaur egun ikus dezagun zer egin behar dugu lotutako zerrenda bateko elementu bat txertatu nahi badut. 52 00:03:05,960 --> 00:03:08,810 Lehenik, funtzio txertatze egingo mota void izango 53 00:03:08,810 --> 00:03:11,350 ez dudalako nahi ezer itzultzeko. 54 00:03:11,350 --> 00:03:14,200 Eta ez dut int bat argumentu gisa hartu behar da, 55 00:03:14,200 --> 00:03:17,090 zer sartu nahi dut jakin nahi dudalako. 56 00:03:17,090 --> 00:03:21,840 Beraz, zer egin behar dut lehenengo gauza? Beno, newnode on malloc beharko nuke, 57 00:03:21,840 --> 00:03:24,240 beraz, lehenengo lerroa da. 58 00:03:24,240 --> 00:03:27,580 Besterik ez dut nodo berri bat sortzeko naiz lotuta zerrenda batean jarri. 59 00:03:27,580 --> 00:03:32,360 Beraz, zer egin dezaket? Beno, badakigu gure zerrendak lotuta inplementazioak in 60 00:03:32,360 --> 00:03:38,180 klasean, beti jartzen dugu burua aldagai global bat bezala. 61 00:03:38,180 --> 00:03:41,800 Beraz, zer egin dezakegu buruan aldatzeko. 62 00:03:41,800 --> 00:03:44,300 Nuen egin ahal nodo berri honen buru berria izango da, 63 00:03:44,300 --> 00:03:46,670 eta nik aurreko burua seinalatu. 64 00:03:46,670 --> 00:03:50,390 Nola egin dezaket hori egin dugu? Lehenengo gauza egin behar dut 65 00:03:50,390 --> 00:03:54,770 da 'n' balioari nodo berri batean aldatzea, 66 00:03:54,770 --> 00:03:57,530 zein izan zen funtzioa ari ematean. 67 00:03:57,530 --> 00:04:01,050 Ondoren newnode hurrengoa da burua izango da. 68 00:04:01,050 --> 00:04:05,800 Burua newnode egingo da. Beraz nahiko erraza da. 69 00:04:05,800 --> 00:04:10,090 Nodo bat ezabatzeko, egin dezakegun bezala - 70 00:04:10,090 --> 00:04:14,790 Hori egin izan dugun modu batean esateko, 71 00:04:14,790 --> 00:04:18,160 ados, ezabatu nahi badut, adibidez, 3, 72 00:04:18,160 --> 00:04:24,850 zer egin izan dut besterik ez da aurreko nodo seinalatu 73 00:04:24,850 --> 00:04:27,580 3 hurrengo nodoari. 74 00:04:27,580 --> 00:04:29,400 Beraz, besterik ez dut egingo lukeen horrelako zerbait. 75 00:04:29,400 --> 00:04:33,400 Baina zer gertatzen da hori egiten arazoa? 76 00:04:33,400 --> 00:04:37,400 Memoria leak behar dut, beraz ez dut 3 zenbakia sarbidea dute jada. 77 00:04:37,400 --> 00:04:42,480 Duten arazoa da, ez naiz duten nodo askatzeko gai izango. 78 00:04:42,480 --> 00:04:45,360 Memoria leak eta (ulertezina) me gorroto joan izan naiz. 79 00:04:45,360 --> 00:04:49,370 Beraz ordez hori egiteko, ziurrenik izan behar dut aldi baterako erakuslea. 80 00:04:49,370 --> 00:04:53,210 Beraz temp jarri dut. Da hori ezabatu nahi dut nodo seinalatu. 81 00:04:53,210 --> 00:04:58,170 Eta, ondoren, aurreko nodes mugitu ahal izango dut puntu hurrengo nodo 82 00:04:58,170 --> 00:05:00,390 duten ezabatu nahi dut nodoaren. 83 00:05:00,390 --> 00:05:02,730 Eta, azkenik, erakuslea askatzeko ahal izango dut. 84 00:05:02,730 --> 00:05:07,480 Ez erakuslea duten bertan sortu dut libratzeko behar dut? 85 00:05:07,480 --> 00:05:09,560 Nik ez dut nahi, besterik ez delako - 86 00:05:09,560 --> 00:05:13,430 diferentzia da nodo hori malloc erabiliz sortu zen, 87 00:05:13,430 --> 00:05:17,280 beraz, zeure da, hau besterik NULL pila switch gisa izendatu zuten bitartean. 88 00:05:17,280 --> 00:05:20,000 Beraz, ez dut hura libratzeko. 89 00:05:20,000 --> 00:05:22,030 >> Ados. Beraz, gaur egungo eztabaida pilak buruz utzi. 90 00:05:22,030 --> 00:05:24,680 Pilak nahiko erraza. 91 00:05:24,680 --> 00:05:29,540 Pilak eta ilarak egin genuen klasean besterik array erabiliz, 92 00:05:29,540 --> 00:05:32,820 baina ezaguna izan behar duzu - kontuan izan 93 00:05:32,820 --> 00:05:40,740 halaber, pilak egin dezakezu duten lotutako zerrendak erabiliz, baita ilarak ere. 94 00:05:40,740 --> 00:05:44,460 Beraz, array bat duzunean, zer pila bat izango litzateke? 95 00:05:44,460 --> 00:05:46,810 Pila bat, lehenik, tamaina izan beharko dute. 96 00:05:46,810 --> 00:05:49,950 Zer pila oraintxe duzu duten tamaina da gordetzeko aukera izango duzu. 97 00:05:49,950 --> 00:05:52,980 Eta, gainera, array bat izango litzateke, zenbaki-kasu honetan, 98 00:05:52,980 --> 00:05:55,120 baina nahi izanez gero, array bat izan daiteke 99 00:05:55,120 --> 00:06:00,380 kateak, eta egitura array bat, gorde nahi duzun ezer. 100 00:06:00,380 --> 00:06:03,240 Pila buruz: pila bat eta lotutako zerrenda baten arteko aldea 101 00:06:03,240 --> 00:06:08,590 dela pila zela pila jarri azken elementu sarbidea besterik ez duzu. 102 00:06:08,590 --> 00:06:11,770 Deitzen da azkena, lehena inprimatu. 103 00:06:11,770 --> 00:06:15,090 Just like erretiluak pila bat behar duzu, 104 00:06:15,090 --> 00:06:17,670 pila gainean erretilu bat jarri bada, 105 00:06:17,670 --> 00:06:22,670 erretilu lehen kendu behar duzu, beste erretilu eskuratu ahal izateko. 106 00:06:22,670 --> 00:06:26,310 Pilak gauza bera da. 107 00:06:26,310 --> 00:06:31,220 Beraz, adibidez, gehitu elementu bat pila bat nahi badut, zer egin behar dut? 108 00:06:31,220 --> 00:06:34,070 Honez Push izenekoa, eta nahiko erraza da. 109 00:06:34,070 --> 00:06:37,130 Lehenengo gauza egin behar duzun txeke bada pila tamaina 110 00:06:37,130 --> 00:06:40,150 ez da handiagoa edo pila ahalmen berdina. 111 00:06:40,150 --> 00:06:45,810 Duzu dagoeneko gaitasun osoa izanez gero, ezin duzu beste ezer gehitu delako. 112 00:06:45,810 --> 00:06:51,140 Eta orduan ez bada, besterik ez duzu elementu gehitzeko pila egiteko. 113 00:06:51,140 --> 00:06:54,530 Eta, azkenik, Kontatzailea tamaina. Beraz nahiko erraza da. 114 00:06:54,530 --> 00:06:57,140 Beraz, 2 zenbakia gehitu besterik ez dut. 115 00:06:57,140 --> 00:07:00,350 Eta pop nahi badut, horrek esan nahi du kendu nahi duten I 116 00:07:00,350 --> 00:07:03,870 gehitu zen eta elementu balioa itzuliko azken elementua, 117 00:07:03,870 --> 00:07:09,180 lehenik eta behin egiaztatu behar dut dela pila ez dago hutsik. 118 00:07:09,180 --> 00:07:11,510 Delako hutsa bada, ezin dut ezer itzultzeko. 119 00:07:11,510 --> 00:07:14,820 Kasu horretan, -1 bueltatzen naiz. 120 00:07:14,820 --> 00:07:18,960 Bestela, nik zehaztutako tamaina decrement joan nintzen, 121 00:07:18,960 --> 00:07:22,510 eta zenbakiak (s.size) itzultzeko. 122 00:07:22,510 --> 00:07:27,230 Zergatik tamaina decrement dut eta gero itzuli s.size? 123 00:07:27,230 --> 00:07:30,930 Ez da kasu honetan, zehaztutako tamaina 4 ditu, izan ere, 124 00:07:30,930 --> 00:07:33,810 eta laugarren elementua itzuli nahi dut, ezta? 125 00:07:33,810 --> 00:07:36,030 Baina zer laugarren elementua indizea da? Hiru. 126 00:07:36,030 --> 00:07:44,510 Geroztik ez dut neurria - 3 izango da, besterik ez dut s.numbers itzul daiteke (s.size) 127 00:07:44,510 --> 00:07:48,410 3 delako. Beraz indizea besterik ez da. 128 00:07:48,410 --> 00:07:50,380 >> Orain ilarak. Ilarak nahiko askoz gauza bera dira. 129 00:07:50,380 --> 00:07:54,950 Alde bakarra da hori ere azken batean izatea, lehen izarrekin, 130 00:07:54,950 --> 00:07:57,480 erregistratu egin behar duzu, lehena inprimatu. 131 00:07:57,480 --> 00:07:59,460 Duzu kontzertu bat joan zain ari seguruenik bada, 132 00:07:59,460 --> 00:08:04,260 ez duzu zoriontsu izan ordez ilara batean pila bat izan baduzu. 133 00:08:04,260 --> 00:08:07,730 Etorri azken pertsona izatea kontzertu sartzeko lehen pertsona izango litzateke. 134 00:08:07,730 --> 00:08:09,760 Seguruenik ez zoriontsu izan. 135 00:08:09,760 --> 00:08:15,020 Ilaran, lortu zuen lehen pertsona ateratzeko lehen pertsona ere bada. 136 00:08:15,020 --> 00:08:18,720 Beraz ilara baten definizioan, array tamaina izateaz gain, 137 00:08:18,720 --> 00:08:23,360 izan ere burua, eta horrek pila buru den indizea da izan. 138 00:08:23,360 --> 00:08:29,000 Beraz, lehen elementu oraintxe. 139 00:08:29,000 --> 00:08:32,710 Enqueue pilak bultzada gauza bera da. 140 00:08:32,710 --> 00:08:34,980 Oso inozoa balitz, litzateke, besterik gabe, esan duzu, 141 00:08:34,980 --> 00:08:39,289 ondo, besterik egin ezin dut zehatz-mehatz gauza bera bultza egin izan dudan bezala. 142 00:08:39,289 --> 00:08:44,030 Dut besterik check ezin da ahalmena haratago bada. 143 00:08:44,030 --> 00:08:48,760 Bada, faltsua itzuliko dut, bestela besterik ez dut esportatu balio berria 144 00:08:48,760 --> 00:08:50,630 eta ondoren Kontatzailea tamaina. 145 00:08:50,630 --> 00:08:52,750 Baina zergatik da hau gaizki? 146 00:08:52,750 --> 00:08:55,010 Ikus dezagun adibide hau utzi. 147 00:08:55,010 --> 00:08:57,020 Stuff sorta bat Enqueue saiatzen ari naiz, 148 00:08:57,020 --> 00:08:58,390 eta ondoren, naiz adierazten du eta Enqueue joan. 149 00:08:58,390 --> 00:09:00,550 Han komandoak asko da, baina oso erraza da. 150 00:09:00,550 --> 00:09:04,790 Enqueue 5, beraz, gehitu 5 noa, eta, ondoren, 7, 151 00:09:04,790 --> 00:09:09,310 1, 4, 6, eta gero zerbait adierazten nahi dut, 152 00:09:09,310 --> 00:09:12,000 horrek esan nahi naiz duten I lehen elementu kendu egingo. 153 00:09:12,000 --> 00:09:14,640 Naiz, beraz 3 zenbakia kendu egingo da, ezta? 154 00:09:14,640 --> 00:09:17,320 Lehenengo elementua. Ados. 155 00:09:17,320 --> 00:09:21,450 Orain beste zerbait Enqueue saiatzen naiz, bada, zer gertatuko da? 156 00:09:21,450 --> 00:09:24,290 Nire ezarpenaren arabera, 157 00:09:24,290 --> 00:09:31,040 I zen hurrengo zenbakia jarri indizea q.size batean joan. 158 00:09:31,040 --> 00:09:35,140 Kasu honetan, tamaina 8 da, 159 00:09:35,140 --> 00:09:38,640 beraz indizea 8 azken posizioan hementxe izango da. 160 00:09:38,640 --> 00:09:43,900 1 Enqueue hementxe saiatzen naiz bada, azken posizioa gainidatziz nuke 161 00:09:43,900 --> 00:09:45,870 1 zenbakia, hau da, erabat okerra da. 162 00:09:45,870 --> 00:09:49,870 Zer egin nahi dut inguruan biltzea eta lehenengo postua joan. 163 00:09:49,870 --> 00:09:52,870 Agian besterik ez litzateke esan duzu, bai, besterik ez dut berriro egiaztatu 164 00:09:52,870 --> 00:09:55,600 dut benetan jarri daiteke zerbait bada ez. 165 00:09:55,600 --> 00:09:58,560 Ez bada, esan nion, besterik gabe, oh, gaitasun osoa berria 166 00:09:58,560 --> 00:10:02,010 da, benetan ahalmena - 1, eta ezin jarri elementu bat han. 167 00:10:02,010 --> 00:10:06,150 Baina zer da arazoa? Arazoa da I adierazten dena besterik ez bada hementxe 168 00:10:06,150 --> 00:10:08,240 eta, ondoren, beste zerbait gehitzen saiatzen naiz, besterik ez litzateke esango, 169 00:10:08,240 --> 00:10:11,210 bai, izan ziren gaitasun osoa, eta 0 da at duzu. 170 00:10:11,210 --> 00:10:13,620 Beraz, zure ilaran desagertuko da. 171 00:10:13,620 --> 00:10:16,990 Inguruan biltzeko behar duzu, eta inguruan biltzeko modu bat 172 00:10:16,990 --> 00:10:22,040 duzula psets ameslari eta beste ikasitako mutil mod erabiltzen zen. 173 00:10:22,040 --> 00:10:29,090 Probatu dezakezu etxean ulertzen zergatik q.size + q.head egin nahi duzun 174 00:10:29,090 --> 00:10:31,080 mod edukiera, baina hementxe begiratu ezkero, 175 00:10:31,080 --> 00:10:34,760 lan egiten dela ikusi ahal izango dugu. 176 00:10:34,760 --> 00:10:37,760 Beraz, azken adibidean, q.size 8 zen 177 00:10:37,760 --> 00:10:47,590 eta buru 1 izan zen, jarrera hori array-hemen zelako. 178 00:10:47,590 --> 00:10:51,970 Beraz, 8 + 1, 9 izango da. Mod edukiera 9 0 izango litzateke. 179 00:10:51,970 --> 00:10:56,640 Indizea, eta 0 irtengo litzateke. Egingo eskuineko posizioa izango dugu. 180 00:10:56,640 --> 00:10:59,750 Eta ondoren saiatu ilaran etxean. 181 00:10:59,750 --> 00:11:04,950 Gauza garrantzitsu batzuk: saiatu pila bat eta ilara arteko desberdintasuna ulertzeko. 182 00:11:04,950 --> 00:11:11,620 Etxean, saiatu oso enqueue, adierazten du, bultza eta pop ezartzeko ohitzeko. 183 00:11:11,620 --> 00:11:16,560 Eta, gainera, ulertzen horietako bakoitzean denean erabili nahi duzun. 184 00:11:16,560 --> 00:11:22,830 >> Hargatik erlaxatu Pokemons mordo bat 10 segundo. 185 00:11:22,830 --> 00:11:26,080 Eta orain, goazen datuen egitura itzuli. 186 00:11:26,080 --> 00:11:29,770 Hash taulak. Jende asko hash taulak beldur ziren. 187 00:11:29,770 --> 00:11:33,650 arazo ezarri 6a Spell Checker. 188 00:11:33,650 --> 00:11:35,980 Mahaiak eta saiatzen hash, jende asko lortu horietako beldur. 189 00:11:35,980 --> 00:11:38,540 Beraz, ulertzen gogor ari dira uste dute. Bai? 190 00:11:38,540 --> 00:11:41,490 [Rob Bowden] Arazoa multzo 5. >> Arazoa ezarri 5, bai. Rob esker. 191 00:11:41,490 --> 00:11:43,370 Bai. Sei Huff n 'Puff, bai zen. 192 00:11:43,370 --> 00:11:49,340 Arazo multzo 5 zen Spell Checker, eta bai hash taula bat edo saiatu bat erabili behar izan duzu. 193 00:11:49,340 --> 00:11:55,360 Jende asko pentsatu super ulertzen gogor zirela, baina nahiko erraza benetan dute. 194 00:11:55,360 --> 00:12:01,290 Zer hash taula bat da, funtsean? Hash taula bat lotuta zerrendak array bat da. 195 00:12:01,290 --> 00:12:06,730 Array eta hash taula bat arteko desberdintasun bakarra 196 00:12:06,730 --> 00:12:09,730 dela hash taula hash funtzio bat, zerbait behar duzu. 197 00:12:09,730 --> 00:12:12,080 Zer da hash funtzio bat? 198 00:12:12,080 --> 00:12:13,970 Ez dakit asko guys hemen irakurri ahal izango bada. 199 00:12:13,970 --> 00:12:16,090 Honek hash taula baten adibidea da. 200 00:12:16,090 --> 00:12:19,220 Beraz, 31 elementu array bat duzula ikusi ahal izango duzu. 201 00:12:19,220 --> 00:12:22,440 Eta zer egiten du hash taula batean hash funtzio bat izan da 202 00:12:22,440 --> 00:12:26,660 hori gako bat itzuli behar du, bakoitzaren indizea izanik int. 203 00:12:26,660 --> 00:12:31,740 Bada, adibidez, B. Harrison aukeratu nahi badut, 204 00:12:31,740 --> 00:12:34,190 B. Harrison jarri nuke nire hash funtzioetan, 205 00:12:34,190 --> 00:12:36,960 eta hash funtzioa 24 itzuliko litzateke. 206 00:12:36,960 --> 00:12:40,930 Beraz jakin B. Harrison gordetzeko 24 nahi duten I dut. 207 00:12:40,930 --> 00:12:46,580 Beraz, hori besterik array bat edukitzea eta hash taula bat izatea arteko aldea. 208 00:12:46,580 --> 00:12:48,740 Hash taula hori esango funtzio bat izango duzu 209 00:12:48,740 --> 00:12:54,740 non gorde nahi dituzun datuak gordetzeko. 210 00:12:54,740 --> 00:12:57,040 Hash funtzioa, hash funtzio bat bilatu nahi baduzu 211 00:12:57,040 --> 00:13:00,600 duten deterministak eta ondo banatzen da. 212 00:13:00,600 --> 00:13:07,810 Hemen ikusten duzun bezala, datu hori nahi denda nuen asko zela benetan 19 ikusten duzu 213 00:13:07,810 --> 00:13:12,470 ordez 31 eta 30 eta 29, eta bertan ziren guztiak doan erabiliz. 214 00:13:12,470 --> 00:13:16,920 Beraz, hori erabiltzen dut hash funtzioa ez zen oso ondo banatuak. 215 00:13:16,920 --> 00:13:20,710 Noiz ondo banatu esaten dugu, izan nahi dugula esan nahi du, 216 00:13:20,710 --> 00:13:26,520 gutxi gorabehera, gutxienez, 1 edo 2 bakoitzeko - 217 00:13:26,520 --> 00:13:32,190 bezala, 1 edo 2 aldea arrayetako indize bakoitzerako. 218 00:13:32,190 --> 00:13:43,950 , Izan da gutxi gorabehera, lotutako zerrenda bakoitzeko elementu kopurua berdina array nahi duzun. 219 00:13:43,950 --> 00:13:48,600 Eta erraza da baliogarria da hash taulan badago, hash taulak gisa ikusteko egiaztatzeko. 220 00:13:48,600 --> 00:13:51,770 >> Ondoren zuhaitzak. Hau zuhaitza da. 221 00:13:51,770 --> 00:13:56,400 Informatikako zuhaitzak hankaz gora jarri dira arrazoi batzuk. 222 00:13:56,400 --> 00:14:00,150 Beraz hementxe zuhaitzaren erroa eta ondoren hostoak duzu. 223 00:14:00,150 --> 00:14:05,630 Besterik gabe, jakin behar duzu, guraso eta seme-alabak nomenklatura. 224 00:14:05,630 --> 00:14:12,880 Nodo bakoitzak bere seme-alabek, diren guraso azpitik dauden nodoak ditu. 225 00:14:12,880 --> 00:14:19,660 Beraz, adibidez, 2 da guraso izateko 3 eta beste seme-alaba izateko eskubidea Hara joan, 226 00:14:19,660 --> 00:14:25,290 3 ari denean 1 guraso eta hor daude beste haur izango. 227 00:14:25,290 --> 00:14:29,990 Eta 1, 3 seme-alaba izan nahi du hala gertatzen, eta. 228 00:14:29,990 --> 00:14:34,610 Zerbait askoz interesgarriagoa, binary bilaketa zuhaitz bat deitzen dugu, 229 00:14:34,610 --> 00:14:39,040 bertan, nodo bat eskuinaldean balio guztiak 230 00:14:39,040 --> 00:14:41,660 eskuinaldetik, - ari-eskubidea izango eskuinera hemen, 231 00:14:41,660 --> 00:14:46,780 daude erro elementu baino handiagoa izango. 232 00:14:46,780 --> 00:14:49,780 Beraz, 5 zenbakia badut hemen, eskuinera egiten duen elementu guztiak 233 00:14:49,780 --> 00:14:51,940 dira 5 baino handiagoa izango da, eta ezker aldean 234 00:14:51,940 --> 00:14:56,770 elementu guztiak dira 5 baino txikiagoa izango. 235 00:14:56,770 --> 00:14:58,780 Zergatik da erabilgarria? 236 00:14:58,780 --> 00:15:01,660 Beno, 7 zenbakia hemen badago begiratu nahi badut, adibidez, 237 00:15:01,660 --> 00:15:05,960 5 eta I joan besterik ez lehen eta ikustera noa, 5 baino 7 handiagoa edo gutxiago? 238 00:15:05,960 --> 00:15:09,540 Handiagoa da, beraz, zuhaitz eskuinean egon behar joan ezagutzen dut. 239 00:15:09,540 --> 00:15:13,980 Beraz, gauzak askoz gutxiago begiratzen ditut. 240 00:15:13,980 --> 00:15:19,520 Bitar bilaketa zuhaitza, nodoan ezartzeko, besterik ez dut datuak izan behar du, 241 00:15:19,520 --> 00:15:21,750 beraz int n; dituzu izan ere kate bat izan 242 00:15:21,750 --> 00:15:23,630 edo ezer egin nahi duzu. 243 00:15:23,630 --> 00:15:28,100 Nahikoa duzu kontuz ibili zer den definitzeko on handiagoa izan behar du, zer gutxiago. 244 00:15:28,100 --> 00:15:30,390 Beraz, kateak izan duzu, adibidez, zehaztu ahal izango duzu 245 00:15:30,390 --> 00:15:34,690 eskubideari buruz gauza horiek guztiak dira, luzera handiagoa izan da, 246 00:15:34,690 --> 00:15:40,940 ezkerrean dira luzerak txikiagoa izan du, beraz, benetan sortu behar duzu. 247 00:15:40,940 --> 00:15:44,930 >> Nola egin dezaket udako ordutegian aurkituko ezartzeko dut? 248 00:15:44,930 --> 00:15:47,840 Egin behar dugu lehen gauza da check erro NULL bada. 249 00:15:47,840 --> 00:15:50,920 NULL izanez gero, hori gauza ez da hor esan nahi du 250 00:15:50,920 --> 00:15:53,330 duzulako ez ere zuhaitz bat, eskubidea dute? 251 00:15:53,330 --> 00:15:55,790 Beraz, faltsua itzuliko dut. 252 00:15:55,790 --> 00:15:58,740 Bestela, naiz kopurua handiagoa bada egiaztatu dut joan 253 00:15:58,740 --> 00:16:01,720 erroan balioa baino. 254 00:16:01,720 --> 00:16:04,250 Elementu aurkitzeko eskuinetik saiatu noa 255 00:16:04,250 --> 00:16:08,590 Zuhaitzaren. 256 00:16:08,590 --> 00:16:11,310 Duten errekurtsibitate naiz Hemen ikusten duzun. 257 00:16:11,310 --> 00:16:14,150 Eta gero, gutxiago izanez gero, naiz ezkerrera begiratu egingo dut. 258 00:16:14,150 --> 00:16:18,330 Eta, azkenik, bestela, ez da gutxiago edo handiagoa ez bada, 259 00:16:18,330 --> 00:16:20,660 esan nahi du balioa bera dela. 260 00:16:20,660 --> 00:16:23,010 Beraz itzuliko dut egia. 261 00:16:23,010 --> 00:16:26,360 Hemen ikusi ahal izango duzu erabili duten, bada, badut. 262 00:16:26,360 --> 00:16:30,820 Eta gogoratu, galdetegi 0, arazo bat zuela, bada, bada izan genuen, 263 00:16:30,820 --> 00:16:32,780 eta ziren ustezko eraginkortasunik eza aurkitzeko, 264 00:16:32,780 --> 00:16:35,180 eta eraginkortasunik eza zen erabili dituzula. 265 00:16:35,180 --> 00:16:39,060 Zuk erabili behar dute, bada ez bada, bestela bada, eta bestela. 266 00:16:39,060 --> 00:16:44,240 Beraz, behar beste erabiltzen dut bada eta, bestela, gero eta bestela hemen? 267 00:16:44,240 --> 00:16:46,200 Norbaitek - bai? 268 00:16:46,200 --> 00:16:51,140 [Ikaslea mintzo, inaudible] 269 00:16:51,140 --> 00:16:53,480 Hori da perfektua. Beraz, berak esaten du ez duela axola, 270 00:16:53,480 --> 00:16:55,930 besterik ez delako eraginkortasunik eza izan dugu aurretik 271 00:16:55,930 --> 00:16:59,550 zela, zeren baldintza batzuk pozik zen agian, bada, 272 00:16:59,550 --> 00:17:03,570 beraz, ekintza bat egin duzu, baina gero zuk ziren, beste baldintza guztiak ikusteko. 273 00:17:03,570 --> 00:17:06,319 Baina kasu honetan, berehala itzuliko da, beraz, ez du axola. 274 00:17:06,319 --> 00:17:09,220 Beraz, ez duzu, bestela, erabili nahi izanez gero. 275 00:17:09,220 --> 00:17:11,740 >> Eta azkenik, Hitz egin dezagun saiatzen buruz, 276 00:17:11,740 --> 00:17:13,800 Horrek guztion gogokoena da. 277 00:17:13,800 --> 00:17:15,980 Saiatu bat array zuhaitza da. 278 00:17:15,980 --> 00:17:20,369 Oso azkarra da balioak aurkitu, baina memoria asko erabiltzen du. 279 00:17:20,369 --> 00:17:22,530 Eta ohi da hitz iragazteko, beraz duzunean 280 00:17:22,530 --> 00:17:27,920 , martxan jarri ahal izateko, adibidez, ez dakit, telefono zerbitzua telefonoan liburu bat bezala nahi 281 00:17:27,920 --> 00:17:30,440 eta B idazteko gai izan nahi duzu 282 00:17:30,440 --> 00:17:32,510 eta besterik ez duten B. pertsonen izenak 283 00:17:32,510 --> 00:17:37,960 Oso erraza da hori ezartzeko saiatu bat erabiliz, adibidez. 284 00:17:37,960 --> 00:17:39,820 Nola ez nodo bat definitzen duzunean saiatu batean? 285 00:17:39,820 --> 00:17:43,910 Besterik ez duzu hori is_word egingo bool bat izan. 286 00:17:43,910 --> 00:17:48,660 Duten adierazten nodo horren aurretik pertsonaia guztiek erabiltzen duten, 287 00:17:48,660 --> 00:17:51,920 Hitz bat osatzeko gai zinen, 288 00:17:51,920 --> 00:17:57,230 eta gero erakusleak array bat nodo duzu. 289 00:17:57,230 --> 00:18:03,120 Daiteke guraso nodo array bat, beraz nodo * array dugula ikusiko duzu? Bai? 290 00:18:03,120 --> 00:18:06,050 Beraz, ikus dezagun nola egingo duten lan. Spell check baterako, 291 00:18:06,050 --> 00:18:08,230 27 elementu array bat daukagu, 292 00:18:08,230 --> 00:18:12,150 letra guztiak gehi apostrofeari dugulako. 293 00:18:12,150 --> 00:18:17,800 Hemen aurretik besterik ez naiz 2 erabili joan taula gainean idazteko gai izan nahi dudalako. 294 00:18:17,800 --> 00:18:20,230 Ados. Beraz, hau saiatu bat adibide bat da. 295 00:18:20,230 --> 00:18:25,600 Nuen lehen nodo definitu besterik ez bada, 2 elementu array bat izan dut 296 00:18:25,600 --> 00:18:29,290 duten 2 NULL erakusleak dira, beraz jarri besterik ez dut 'a' eta 'b'. 297 00:18:29,290 --> 00:18:32,430 Eta ez dut bool bat is_word dioen izan. 298 00:18:32,430 --> 00:18:34,420 Honez lehenengoa faltsua izango, 299 00:18:34,420 --> 00:18:37,370 besterik gabe, delako hori baino lehen ez duzu edozein karaktere izan. 300 00:18:37,370 --> 00:18:40,900 Beraz, hitz bat hutsik ez da hitz bat. Beraz, faltsua da. 301 00:18:40,900 --> 00:18:46,320 'A' gehitzeko hiztegi hau nahi badut, zer egingo zenuke egin behar dut? 302 00:18:46,320 --> 00:18:49,760 Besterik ez dut izango litzateke, 'a' nodo berria malloc, 303 00:18:49,760 --> 00:18:54,630 eta, ondoren, bere hitza gehitu egia izateko. 304 00:18:54,630 --> 00:19:00,180 Beraz, adierazten du besterik ez duela izana 'a' da egia izango. Zentzurik? 305 00:19:00,180 --> 00:19:04,120 Ondoren, 'ba' gehitu nahi badut, egingo daukat malloc 1era 'b' egiteko, 306 00:19:04,120 --> 00:19:07,550 eta ondoren, naiz konfiguratzeko boolearra faltsua da joan, 307 00:19:07,550 --> 00:19:10,160 delako 'b', berez, ez da hitz bat. 308 00:19:10,160 --> 00:19:13,010 Ondoren, naiz beste 'a' para 'ba' bat, beraz malloc joan, 309 00:19:13,010 --> 00:19:16,290 eta ondoren, naiz konfiguratzeko egia den hitz bat da joan. 310 00:19:16,290 --> 00:19:18,950 Delako 'ba' hitza da. 311 00:19:18,950 --> 00:19:21,910 Eta gero, kontsultatu nahi badut bada 'b' hiztegi honetan, 312 00:19:21,910 --> 00:19:26,730 Besterik ez dut lehena, 'b' joan daiteke. Behera joan nintzen, eta begiratu hitza da egiten dut, eta gezurra esaten du. 313 00:19:26,730 --> 00:19:30,110 Beraz, ez da hitz bakar bat ere. 'Ba' begiratu nahi badut, 314 00:19:30,110 --> 00:19:38,010 Joaten naiz lehena, 'b', eta orduan 'a' joan, eta egia ikusten dut, beraz, hitz bat da. Zentzurik? 315 00:19:38,010 --> 00:19:41,950 Jende asko ezagutu saiatzen nahastu. Ez? 316 00:19:41,950 --> 00:19:44,740 >> Azkenik, Huffman kodeketa. Huffman kodeketa oso erabilgarria da 317 00:19:44,740 --> 00:19:47,550 memoria aurrezteko eta testu fitxategiak konprimitu, 318 00:19:47,550 --> 00:19:52,270 'a' eta 'e' erabiliz gero, adibidez asko aldiz besterik ez delako, 319 00:19:52,270 --> 00:19:57,710 Zure dokumentuak, baina ez dakit zuk guys askoz gisa erabiltzen bada 'q' edo 'z'. 320 00:19:57,710 --> 00:20:02,040 Pertsonaia bakoitza byte 1 besterik ez izatea, 321 00:20:02,040 --> 00:20:08,520 bakoitza - ASCII taulan dugu 256 karaktere ez da oso optimoa, 322 00:20:08,520 --> 00:20:11,410 askoz gehiago erabiltzen duzun karaktere batzuk ez dira besterik ez delako, 323 00:20:11,410 --> 00:20:15,180 beraz, ziurrenik memoria gutxiago erabili behar duzu dutenentzat. 324 00:20:15,180 --> 00:20:17,560 Nola ez Huffman kodeketa erabiltzen dut? 325 00:20:17,560 --> 00:20:20,010 Huffman zuhaitz bat egin behar dugu. 326 00:20:20,010 --> 00:20:23,370  Huffman zuhaitz batek nodoak ditu 327 00:20:23,370 --> 00:20:27,760 duen hori, adibidez, 'a', 'b', 'c', letra izango da sinbolo bat dute, 328 00:20:27,760 --> 00:20:32,990 edozein dela ere, gutuna behar duzu, hitza testuan agertzen den maiztasuna da maiztasuna, 329 00:20:32,990 --> 00:20:36,280 Huffman zuhaitza sortzeko zinen, 330 00:20:36,280 --> 00:20:41,800 eta, ondoren, hori Huffman zuhaitz ezkerraldean seinalatu nodo 331 00:20:41,800 --> 00:20:47,210 eta hori izateko eskubidea seinalatu beste nodo. Beraz ekin bezala, zuhaitz bat. 332 00:20:47,210 --> 00:20:49,440 Nola ez Huffman zuhaitz bat eraikitzeko duzu? 333 00:20:49,440 --> 00:20:54,020 Duten maiztasun txikiena izan du 2 nodoak hautatzeko ari zara. 334 00:20:54,020 --> 00:20:56,490 Gorbata bat baduzu zauden 2 nodoak hautatzeko joan 335 00:20:56,490 --> 00:20:59,870 duten ASCII balioak txikiena baita. 336 00:20:59,870 --> 00:21:02,420 Orduan goazen zuhaitz berria sortzeko 2 nodo horiek irten 337 00:21:02,420 --> 00:21:08,030 hori guraso nodo batean frekuentzia batera izan dute joan. 338 00:21:08,030 --> 00:21:13,240 Eta orduan goazen baso batetik 2 haur kentzeko joan 339 00:21:13,240 --> 00:21:15,570 eta horien ordez guraso batekin. 340 00:21:15,570 --> 00:21:18,930 Eta ari zaren errepikatu besterik ez duzu 1 zuhaitz arte basoan joan. 341 00:21:18,930 --> 00:21:23,840 Beraz, ikus dezagun Huffman zuhaitz bat nola egin nahi duzun ZAMYLA da. 342 00:21:23,840 --> 00:21:29,220 Hemen ikusi ahal izango duzu letrak guztiek dutela maiztasun 1 'A' izan ezik, hau maiztasuna 2 ditu. 343 00:21:29,220 --> 00:21:34,090 Beraz, letra guztiak jarri dut ASCII balioa eta maiztasun-ordenaren arabera nodo sortu dut. 344 00:21:34,090 --> 00:21:40,090 Beraz, lehen zuhaitza sortu nahi badut, egingo 'L' eta 'M' izan da. 345 00:21:40,090 --> 00:21:43,100 Beraz, hemen da. Bikotea maiztasuna 2 izango da 346 00:21:43,100 --> 00:21:49,470 da 1 + 1 delako, gero hurrengo 2 maiztasun txikiena duen 'Y' eta 'Z' dira. 347 00:21:49,470 --> 00:21:53,180 Eta, ondoren, horiek guztiak izan dut izatea - of 2 maiztasun bat. 348 00:21:53,180 --> 00:22:00,470 Beraz, zeintzuk dira duten txikiena ASCII hurrengo bat balio izan direnak? 349 00:22:00,470 --> 00:22:04,830 'A' eta 'L'. Beraz nodo berria sortu dut, 350 00:22:04,830 --> 00:22:09,930 eta, azkenik, 4 eta 2, beraz, 2 da, ezker aldean izango da. 351 00:22:09,930 --> 00:22:12,430 Eta hau Huffman zuhaitza da. 352 00:22:12,430 --> 00:22:16,060 Testua idatzi nahi dut, ondoren, bada, 353 00:22:16,060 --> 00:22:24,440 bezalako bitarra testu bihurtzeko, Huffman zuhaitza erabiliz oso erraza da. 354 00:22:24,440 --> 00:22:30,220 Adibidez, ezkerretara mugitzen ari dela 0 eta eskuinera mugitzen da esaten badut da 1 bat, 355 00:22:30,220 --> 00:22:32,410 Zer da hori irudikatu joan? 356 00:22:32,410 --> 00:22:35,530 Hain atsegin 1, 1, beraz, eskubidea, right, 357 00:22:35,530 --> 00:22:40,370 eta 0, beraz, utzi ondoren, L izango litzateke, eta, ondoren, 1, 0, 0. 358 00:22:40,370 --> 00:22:43,950 Beraz, 1, 0, beraz, besterik gabe, 1, 0, 'A'. 359 00:22:43,950 --> 00:22:47,540 Eta, ondoren, 0, 1, beraz, 'Z'. 360 00:22:47,540 --> 00:22:52,170 Eta, ondoren, 1, 0, 0 - no. 361 00:22:52,170 --> 00:22:56,780 0, 0 'Y' beraz Lazy izango da,. 362 00:22:56,780 --> 00:23:06,060 Beraz, hori da dena niretzat, Rob baino gehiago hartu du. 363 00:23:06,060 --> 00:23:08,400 >> [Rob Bowden] Beraz, aste 7 stuff. 364 00:23:08,400 --> 00:23:11,390 Asko lortu dugu baino gehiago benetan azkar joan. 365 00:23:11,390 --> 00:23:13,430 Operadore bitekin, bufferraren gainezkatzea, 366 00:23:13,430 --> 00:23:16,760 CS50 liburutegia, ondoren, HTML, HTTP, CSS. 367 00:23:16,760 --> 00:23:20,990 Guztietan 15 eta 20 minutu bezalakoa. 368 00:23:20,990 --> 00:23:24,330 Operadore bitekin. Badira 6 horietako jakin behar duzula dira. 369 00:23:24,330 --> 00:23:31,200 Bitekin eta, bitekin edo, XOR, ezker shift, eskuineko txanda, eta ez. 370 00:23:31,200 --> 00:23:35,420 Eskuinera mugitzeko, eta ez duzu apenas hitzaldia ikusi batere. 371 00:23:35,420 --> 00:23:40,480 Pasatuko dugu azkar hemen joan, baina oso ona da horiek 6 existitzen direla jakin. 372 00:23:40,480 --> 00:23:45,070 Gogoratu bitekin operadore noiz egin nahi duzu 3 + 4 bezalakoak dira. 373 00:23:45,070 --> 00:23:49,420 Ez zara 3 eta 4 bitarraren aurre. 374 00:23:49,420 --> 00:23:56,550 Bitekin operadore honekin benetan banakako 3 eta 4 zenbakien bit aurre. 375 00:23:56,550 --> 00:23:59,120 >> Beraz, lehena dela esango dugu bitekin ez da, 376 00:23:59,120 --> 00:24:02,340 eta guztiak du bit guztiak irauli. 377 00:24:02,340 --> 00:24:05,500 Beraz, hemen, zuk C hau idazten ari bazara, ez zenuke idatziko da 378 00:24:05,500 --> 00:24:09,380 ~ 11011 edo dena delakoa bezala, idatzi nahi duzun ~ 4 gustatzen, 379 00:24:09,380 --> 00:24:12,970 eta ondoren, 4 errepresentazio bitarra irauliko luke. 380 00:24:12,970 --> 00:24:24,800 Beraz, hemen, ~ zenbaki bitar batzuk 1101101 da zehazki irauli guztiak 1 en 0-ren eta 1-ren joan 0 guztiak en. 381 00:24:24,800 --> 00:24:27,600 Hor esan dudan bezala, maiz hori erabiltzea, 382 00:24:27,600 --> 00:24:30,830 eta bertan ikusiko dugu pixka batean, da etorri zenbaki batzuekin nahi dugun bezala 383 00:24:30,830 --> 00:24:35,460 non bit guztiak dira 1, horietako bat izan ezik. 384 00:24:35,460 --> 00:24:38,560 Beraz, errazagoa izan ohi da zenbaki adierazteko 385 00:24:38,560 --> 00:24:40,630 non bit bakar hori besterik ezartzen da, 386 00:24:40,630 --> 00:24:44,650 eta, ondoren, ~ da, beraz, beste bit guztietan dago ezarrita bat izan ezik har. 387 00:24:44,650 --> 00:24:50,300 Beraz, zer ari gara gehiago erabili pixka bat joan. 388 00:24:50,300 --> 00:24:58,220 >> Bit mailako edo. Hona hemen 2 Zenbaki bitarra, eta 2 zenbaki horiek 389 00:24:58,220 --> 00:25:00,780 nahiko ordezkari, posible guztiak adierazten baitute 390 00:25:00,780 --> 00:25:07,290 operatu behar izan duzu bit konbinazio. 391 00:25:07,290 --> 00:25:13,540 Hemen, denean bit bakoitzean or'd dut, besterik ez gabiltza zuzen behera konparatu egingo. 392 00:25:13,540 --> 00:25:15,410 Beraz, ezkerreko aldean dugu 1 eta 1 da. 393 00:25:15,410 --> 00:25:20,510 When I bitekin | dutenek, zer naiz iritsi naiz? Bat. 394 00:25:20,510 --> 00:25:25,320 Ondoren bitekin | 0 eta 1 da niri emateko? Bat. 395 00:25:25,320 --> 00:25:27,840 Bitekin 1 eta 0 da gauza bera, bat izango da. 396 00:25:27,840 --> 00:25:31,880 Bitekin 0 | 0 da eman zidan 0 joatea. 397 00:25:31,880 --> 00:25:37,300 0 kasua | beraz, kasu bakarra non lortu dut 0 0 dago. 398 00:25:37,300 --> 00:25:40,020 Eta hori dezakezu uste besterik ez zure ors logikoa bezala. 399 00:25:40,020 --> 00:25:44,830 Beraz, 1 egia gisa eta 0 faltsua gisa uste baduzu, gauza bera aplikatzen da hemen. 400 00:25:44,830 --> 00:25:50,040 Beraz, egia edo egia egia da, egia edo gezurra da egia. 401 00:25:50,040 --> 00:25:57,150 Faltsua edo egiazko egia da; faltsua edo gezurra dela benetan faltsua gauza bakarra da. 402 00:25:57,150 --> 00:26:00,100 Hona hemen adibide dela jakin behar duzu 403 00:26:00,100 --> 00:26:05,160 denean operadore bitekin erabiltzen dira adibide nahiko ona gisa. 404 00:26:05,160 --> 00:26:08,660 Hemen dugu edo capital 'A' Ox20 bada, 405 00:26:08,660 --> 00:26:11,830 eta horiek bilatuko dugu bigarren bat, zerbait lortuko dugu. 406 00:26:11,830 --> 00:26:16,020 Eta badugu edo minuskula 'a' Ox20 batera, zerbait lortuko dugu. 407 00:26:16,020 --> 00:26:26,750 Hargatik tira ASCII taula. 408 00:26:26,750 --> 00:26:34,000 Ados. Hemen ikusten dugu 'A' dela - 409 00:26:34,000 --> 00:26:36,920 hemen dugu 'A' hamartar 65 da. 410 00:26:36,920 --> 00:26:45,120 Baina hamaseitar, hau da Ox41 ekin dut joan. 411 00:26:45,120 --> 00:26:48,280 Nahiko ziur ikusi genuen klasean. Uste dut ikusi genuen klasean 412 00:26:48,280 --> 00:26:52,730 nahiko erraza izango dela gehitu hamaseitar etatik bitar bihurtzea. 413 00:26:52,730 --> 00:26:55,280 Beraz, hemen, 4 jarri bitar sartu nahi badut, 414 00:26:55,280 --> 00:26:59,550 hori besterik ez 0100 izango da. 415 00:26:59,550 --> 00:27:03,620 Honek 1-ren lekua, 2-ren lekua, 4 lekua dago, beraz, hau da, 4. 416 00:27:03,620 --> 00:27:08,550 Ondoren zatitu ahal dut 1 bitarra, hau da, 0001 izango da sartu. 417 00:27:08,550 --> 00:27:14,280 Eta, beraz, hau 'A' binary ordezkaritza izango da. 418 00:27:14,280 --> 00:27:22,720 Minuskula 'a', nik orain Ox61 izango da hartu, 419 00:27:22,720 --> 00:27:27,050 Bertan, hauek splitting bere bitar sartu, beraz 6 bat - 420 00:27:27,050 --> 00:27:37,830 Egin izan da benetan utzi - dago borragoma no? Borragoma. 421 00:27:37,830 --> 00:27:48,220 Ox61. Beraz splitting 6 bitar sartu da 0 + 4 + 2 + 0 izango da. 422 00:27:48,220 --> 00:27:54,610 Eta zatiketa, 1 da 0001 izango da. 423 00:27:54,610 --> 00:27:56,520 2 hauen arteko aldea begira, 424 00:27:56,520 --> 00:28:04,250 ikusiko dugu minuskulaz eta a capital 'A' arteko alde bakarra da bit bakar hau da. 425 00:28:04,250 --> 00:28:11,810 Beraz, hemen itzultzea - ​​ados. 426 00:28:11,810 --> 00:28:15,920 Itzultzea hemen, begiratzen dugu bit Ox20 zer da bada, 427 00:28:15,920 --> 00:28:22,210 beraz splitting Ox20 bere bitar sartu, 428 00:28:22,210 --> 00:28:27,310 0010, 0000 da. 429 00:28:27,310 --> 00:28:33,470 Ox20, hori ezartzen duen bit bakarrik pixka honekin ari garela arduratzen da, 430 00:28:33,470 --> 00:28:38,210 kapitala eta minuskulaz 'a' artean aldatzeko ere. 431 00:28:38,210 --> 00:28:47,610 Badut edo 'A', ko hau, 'A' da, 432 00:28:47,610 --> 00:28:50,580 I edo 'A' Ox20 bada, 433 00:28:50,580 --> 00:28:53,490 zer naiz iritsi naiz? 434 00:28:53,490 --> 00:28:58,960 [Ikaslea, inaudible] >> minuskula 'a' du, pixka hau irauli 1 bat egingo delako. 435 00:28:58,960 --> 00:29:04,170 Eta badut edo 'a' Ox20 batera, zer naiz iritsi naiz? 436 00:29:04,170 --> 00:29:08,780 Minuskula bat, delako besterik oring 'a' Ox20 batera, 437 00:29:08,780 --> 00:29:14,580 Besterik ez naiz egon oring pixka bakar hau 1 bat joan; dagoeneko 1 bat, beraz, ez du axola. 438 00:29:14,580 --> 00:29:17,960 Beraz, 'a' eta 'a' lortzen dugu. 439 00:29:17,960 --> 00:29:24,820 >> Bit mailako eta. Berriz ere, pentsa dezakegu gure zeuden logikoa eta gisa. 440 00:29:24,820 --> 00:29:28,180 Ezkerreko aldean egia eta egia dugu. 441 00:29:28,180 --> 00:29:31,160 Honez egia izango da, eta, kasu guztietan, 442 00:29:31,160 --> 00:29:36,270 faltsuak eta egia edo egia eta faltsua, edo gezurra eta gezurra, 443 00:29:36,270 --> 00:29:38,550 Gauza horiek ez dira egia. 444 00:29:38,550 --> 00:29:44,170 Beraz, 1000 zer amaituko dugu lortzean da. 445 00:29:44,170 --> 00:29:48,830 Beraz, orain, hemen, hemen non trusty bitekin erabili dut ez, 446 00:29:48,830 --> 00:29:52,230 non Ox20 izan genuen. 447 00:29:52,230 --> 00:29:54,350 Beraz, hau Ox20 da. 448 00:29:54,350 --> 00:29:59,570 Orain zer egin nahi nuen, bitekin Ox20 of ~. 449 00:29:59,570 --> 00:30:03,600 Hori bit guztiak irauli egingo. 450 00:30:03,600 --> 00:30:09,330 Beraz daukat 1101, 1111. 451 00:30:09,330 --> 00:30:18,940 Eta beraz 'A' ~ Ox20 da niri emateko zer going anded? 452 00:30:18,940 --> 00:30:22,430 Benetan behar dugu pentsatu soilik pixka bat hau da, 453 00:30:22,430 --> 00:30:26,020 geroztik, bit horiek guztiak dira 1 izanez gero, 454 00:30:26,020 --> 00:30:29,000 orduan ari gara lortzeko zehazki zer 'A' izan zen joan, 455 00:30:29,000 --> 00:30:31,260 izan ezik, ziurrenik, zer bit hau da. 456 00:30:31,260 --> 00:30:34,460 Delako 1 bat izanez gero, gaur egun 0 bat ezarri du, 457 00:30:34,460 --> 00:30:39,810 edozein dela ere, hau da, hau da, 0 izango da batera anded delako. 458 00:30:39,810 --> 00:30:43,280 Beraz, zer 'A' da eta ~ Ox20 niri emateko? 459 00:30:43,280 --> 00:30:48,200 [Ikasleak erantzun, inaudible] >> Eta zer 'a' eta da - 'A' da. 460 00:30:48,200 --> 00:30:52,170 Eta zer da eta ~ Ox20 'a' me emateko joan? 461 00:30:52,170 --> 00:30:56,720 'A.' Hau da gaur egun delako 1 a. 462 00:30:56,720 --> 00:30:59,570 0 honekin Anding dago egiteko 0 bat da joan, 463 00:30:59,570 --> 00:31:02,530 eta orain ari gara 'A' bat lortzeko joan. 464 00:31:02,530 --> 00:31:06,600 >> Biak dira 'A' eta mota honetako azken baina ez gutxienez, 465 00:31:06,600 --> 00:31:10,830 XOR dugu. Da oso bezala edo, 466 00:31:10,830 --> 00:31:14,400 ezik esklusiboki esan nahi du, edo. 467 00:31:14,400 --> 00:31:18,420 Honek zer pentsatu ohi duzun bezala edo mundu errealean bezala. 468 00:31:18,420 --> 00:31:23,190 Horretarako bai 'x' edo 'y', baina ez biak. 469 00:31:23,190 --> 00:31:28,700 Hemen 1 ^ 1 da 0 izango da. 470 00:31:28,700 --> 00:31:33,650 Egia delako, hau da - ez du lan eta baita logikoa egia eta faltsua 471 00:31:33,650 --> 00:31:37,150 bitekin & eta edo egiten duten bezala, 472 00:31:37,150 --> 00:31:40,100 baina egia ^ egia faltsua da. 473 00:31:40,100 --> 00:31:44,810 Bakarra egia itzuli nahi dugu, bada, horietako bat bakarrik da egia delako. 474 00:31:44,810 --> 00:31:50,950 Beraz, 1 ^ 1 0 da. Zer 0 ^ 1 buruz? 475 00:31:50,950 --> 00:31:56,010 Da 1. 1 ^ 0 1 da, 0 ^ 0 da 0. 476 00:31:56,010 --> 00:32:03,890 Beraz, edozein egoeratan, 0 bitekin zerbait 0 da 0 izango da. 477 00:32:03,890 --> 00:32:10,270 1 bitekin zerbait 0 edo 0 bitekin 1, 478 00:32:10,270 --> 00:32:14,660 da bada | edo ^, izango da izango 1 bat, eta da eta bada 0 izango da. 479 00:32:14,660 --> 00:32:20,850 Eta kasu bakarra non 1 bitekin 1 ez da 1 edo esklusiboa da. 480 00:32:20,850 --> 00:32:24,580 Hori da 0110. 481 00:32:24,580 --> 00:32:36,520 Beraz, hemen, orain, XOR erabiliz - beraz 20 ean itzuli gara. 482 00:32:36,520 --> 00:32:43,480 'A' ^ Ox20 2 bit horiek alderatzen ari gara. 483 00:32:43,480 --> 00:32:50,020 Beraz, a 1 ^ 0 da niri emateko zer gertatzen da? Bakar batek. 484 00:32:50,020 --> 00:32:58,430 'A' ^ Ox20 niri emateko? Minuskula bat. 485 00:32:58,430 --> 00:33:04,010 'A' ^ Ox20 niri emateko? Kapitala A. 486 00:33:04,010 --> 00:33:09,310 Delako edozein dela hori egiten, Ox20 batera XORing honetan 487 00:33:09,310 --> 00:33:15,380 eraginkortasunez edozein dela bit hau da biratu. 488 00:33:15,380 --> 00:33:21,240 Hau da 0 bat bada, orain, 1 bat bihurtu da. 489 00:33:21,240 --> 00:33:26,160 Hau da 1 bat geroztik, 1 ^ 1 0 da. 490 00:33:26,160 --> 00:33:33,280 Beraz, gure 'a' 'A' bihurtu da, eta gure 'A' du 'a' bihurtu. 491 00:33:33,280 --> 00:33:36,910 Beraz XOR badaezpada biratu modu benetan erosoa da. 492 00:33:36,910 --> 00:33:39,960 Baino gehiago batetik bestera joateko hizki multzo bat besterik nahi ez duzun 493 00:33:39,960 --> 00:33:44,330 eta Ordezko pertsonaia bakarra behin kasuan, 494 00:33:44,330 --> 00:33:50,680 duzu besterik XOR Ox20 dena. 495 00:33:50,680 --> 00:33:55,220 >> Orain shift utzi dugu. Utzi txanda besterik ez da egingo, funtsean, 496 00:33:55,220 --> 00:34:01,250 bultza zenbakiak guztiak, sartu edo ezkerretara, eta sartu 0 en horien atzean. 497 00:34:01,250 --> 00:34:05,550 Beraz, hemen 00001101 dugu. 498 00:34:05,550 --> 00:34:08,560 3 0 hamarkadaren bultza eskuinetik egindako goaz, 499 00:34:08,560 --> 00:34:13,580 eta 01101000 lortuko dugu. 500 00:34:13,580 --> 00:34:16,380 Nonbinary dagokionez, 501 00:34:16,380 --> 00:34:24,699 duten hori benetan 13 ezker-desplaza 3 rekin, eta horrek ematen digu 104 aurre ikusiko dugu. 502 00:34:24,699 --> 00:34:32,530 Beraz ezker aldatzearen, hemen ikusten dugu, x << y da, funtsean, x * 2 ^ y. 503 00:34:32,530 --> 00:34:40,139 13 * 2 ^ 3, 2 ^ 3 8 da, beraz 13 * 8 104 da. 504 00:34:40,139 --> 00:34:45,679 Orokorrean bitarra, nola digitu bakoitzak, besterik ez duzu uste 505 00:34:45,679 --> 00:34:49,530 hasten bada, eskuinetik egindako dugu, 1 lekua, ondoren, 2 en lekua, orduan 4 en tokia da. 506 00:34:49,530 --> 00:34:51,330 Beraz eskuinetik egindako 0 hamarkadaren bultzaka, 507 00:34:51,330 --> 00:34:55,080 besterik ez duten 4 en bildu diren euren 8 en place gauzak ari gara bultzaka, 508 00:34:55,080 --> 00:34:57,920 eta 8 en bildu diren euren 16 en place gauzak. 509 00:34:57,920 --> 00:35:01,280 Txanda bakoitzean besterik 2 eta biderkatzen. Bai? 510 00:35:01,280 --> 00:35:05,210 [Student] Zer gertatzen desplazatzen bada 5 egin duzu? 511 00:35:05,210 --> 00:35:10,790 [Bowden] desplazatzen baduzu 5 gehitu besterik ez duzu galduko digituak litzateke. 512 00:35:10,790 --> 00:35:15,410 Ezinbestean, gauza bera da. Bezala, zenbaki oso bit 32 besterik ez dira, 513 00:35:15,410 --> 00:35:20,750 beraz, 2 zenbaki benetan big gehitu baduzu, ez bakarrik ez da zenbaki oso bat sartzen. 514 00:35:20,750 --> 00:35:23,660 Beraz, gauza bera hemen da. Desplazatzen baduzu 5, 515 00:35:23,660 --> 00:35:25,650 bat besterik ez dugu galduko luke. 516 00:35:25,650 --> 00:35:28,820 Eta horrek zer esan nahi dut mota da ", gutxi gorabehera," 517 00:35:28,820 --> 00:35:37,470 non urrunegi filmea baduzu, bit galtzen duzu. 518 00:35:37,470 --> 00:35:39,830 >> Eskuin shift kontrakoa izango da, 519 00:35:39,830 --> 00:35:43,090 non ari gara 0-ren shove amaieran off joan, 520 00:35:43,090 --> 00:35:48,400 eta gure helburuetarako, 0-ren ezker hegaletik bete. 521 00:35:48,400 --> 00:35:52,910 Beraz, hau egiten, ari, funtsean, zer dagoeneko egin genuen alderantzizkoa dugu. 522 00:35:52,910 --> 00:35:57,780 Eta hiru 0 en eskubideari buruzko besterik erori off duten ikusiko dugu, 523 00:35:57,780 --> 00:36:02,020 eta 1101 eskuinera modu guztiak bultzatu ditugu. 524 00:36:02,020 --> 00:36:08,380 Hau da, 104 >> 3, hau da, modu eraginkorrean, x / 2 ^ y. 525 00:36:08,380 --> 00:36:11,200 Beraz, orain, hemen, antzeko ideia bat da. 526 00:36:11,200 --> 00:36:18,720 Zergatik ari da gutxi gorabehera x / 2 ^ y, eta ez benetan x / 2 ^ y? 527 00:36:18,720 --> 00:36:22,240 Ez nuen 4 desplazatzen bada, I galdu zukeen 1 bat delako. 528 00:36:22,240 --> 00:36:25,950 Funtsean, zer uste duzu, besterik gabe, zatiketa osoa uste oro har. 529 00:36:25,950 --> 00:36:31,070 Beraz, atsegin 5/2 2 da. Ez da 2.5. 530 00:36:31,070 --> 00:36:35,000 Ideia bera hemen da. Denean 2 eta zatitzen dugu, 531 00:36:35,000 --> 00:36:39,910 bit bakoitiak gal dezakegu bidean. 532 00:36:39,910 --> 00:36:43,870 Beraz, gaur egun - hori da bitekin da. Hori da jakin behar duzun guztia. 533 00:36:43,870 --> 00:36:46,340 Gogoratu erabilera kasuetan ikusi dugu klasean, 534 00:36:46,340 --> 00:36:49,340 bezala pixka maskara bitekin operadore erabilgarria da, 535 00:36:49,340 --> 00:36:53,220 edo horiek erabili duzun bit maskarak. 536 00:36:53,220 --> 00:36:58,620 Letra larriak eta minuskulak, bihurketa adibide nahiko prototypical bat da. 537 00:36:58,620 --> 00:37:01,640 >> Ados, beraz buffer gainezkatzea erasoak. 538 00:37:01,640 --> 00:37:05,110 Edozeinek gogoratzen funtzio honekin zer zen oker? 539 00:37:05,110 --> 00:37:10,140 Ohartu 12 byte array bat, 12 karakteretan, deklaratu dugu 540 00:37:10,140 --> 00:37:18,510 eta, ondoren, gure 12 chars kate bar osoa buffer sartu kopiatu dugu. 541 00:37:18,510 --> 00:37:25,080 Beraz, zein da arazoa? 542 00:37:25,080 --> 00:37:32,270 Zenbaki magiko 12 nahiko askoz berehala pop behar bezala - zergatik 12? 543 00:37:32,270 --> 00:37:35,050 Bar gertatzen 12 karaktere baino gehiago izan behar du zer bada? 544 00:37:35,050 --> 00:37:41,200 Zer bar pertsonaiak milioika bada? 545 00:37:41,200 --> 00:37:46,010 Hemen arazoa memcpy da. Bar nahikoa luzea bada, 546 00:37:46,010 --> 00:37:50,330 aski izango da erabat - 'c', 'c' ez du axola pertsonaiak 12 bakarrik izan zela; 547 00:37:50,330 --> 00:37:53,280 'C' ez du axola ez dela egokitzen byte duten askok. 548 00:37:53,280 --> 00:37:58,250 Izango da, besterik gabe, erabat gainidatzi char, 12 byte da dugun esleitu, 549 00:37:58,250 --> 00:38:01,830 eta memoria iragan guztia ez duela benetan buffer horretan sartzen 550 00:38:01,830 --> 00:38:06,520 edozein dela kate-barra da. 551 00:38:06,520 --> 00:38:09,780 Beraz, hau izan da irudian ikusi klasean dugu 552 00:38:09,780 --> 00:38:12,220 non gure pila hazi behar dugu. 553 00:38:12,220 --> 00:38:16,040 Irudiok erabili behar duzu edo lortu haiekin ezagutzen berriro. 554 00:38:16,040 --> 00:38:21,260 Dute gure pila hazi dugu, memoria helbideak 0 hasi goialdean 555 00:38:21,260 --> 00:38:26,270 eta hazten behera 4 mila milioi gustatzen behealdean. 556 00:38:26,270 --> 00:38:28,820 Gure array 'c' dugu nonbait memoria, 557 00:38:28,820 --> 00:38:32,260 ondoren, gure erakuslea eskubidea, azpian taberna dugu, 558 00:38:32,260 --> 00:38:38,720 eta ondoren gordetako hau marko gure itzulera helbidea erakuslea eta gure guraso errutina en pila ditugu. 559 00:38:38,720 --> 00:38:40,800 Gogoratu zer bueltan helbidea da? 560 00:38:40,800 --> 00:38:45,360 Da nagusia funtzioa foo bat deitzen denean, funtzio barra bat deitzen da, 561 00:38:45,360 --> 00:38:48,100 ezinbestean, barra itzultzen. 562 00:38:48,100 --> 00:38:52,610 Beraz, barra itzulerak, dela atzera egingo foo duten deitzen jakin behar dute. 563 00:38:52,610 --> 00:39:01,360 Beraz, itzulera helbidea izan du ez duela funtzioaren helbidera, funtzioak itzuliko da. 564 00:39:01,360 --> 00:39:05,830 Arrazoia hori da bufferraren gainezkatzea hegaletatik garrantzitsua, zeren erosoan, da 565 00:39:05,830 --> 00:39:09,580 hacker gustatzen bueltan helbide hori aldatzeko. 566 00:39:09,580 --> 00:39:14,950 Ordez foo atzera egingo du, naiz hacker nahi lekuan itzuli dit itzuli egingo naiz. 567 00:39:14,950 --> 00:39:17,760 Eta, era erosoan, hacker maiz nahi non atzera joan nahi 568 00:39:17,760 --> 00:39:22,400 Buffer hori, hasieran izan genuen hasiera da. 569 00:39:22,400 --> 00:39:26,170 Oharra Beraz, berriro ere, Little Indian. 570 00:39:26,170 --> 00:39:28,490 Aparatuaren Indian sistema Little baten adibidea da, 571 00:39:28,490 --> 00:39:34,140 beraz, zenbaki oso bat edo erakuslea alderantziz byte batera gordetzen da. 572 00:39:34,140 --> 00:39:38,980 Beraz, hemen ikusten dugu - da hau? Bai. 573 00:39:38,980 --> 00:39:45,660 Ox80, OxC0, Ox35, OxO8 ikusiko dugu. 574 00:39:45,660 --> 00:39:48,250 Gogoratu zifra hamaseitarrak soilik? 575 00:39:48,250 --> 00:39:50,640 Ez dugu alderantzizko Little Indian zenbakien hamaseitarra 576 00:39:50,640 --> 00:39:56,110 2 digitu hamaseitar egin duelako gora byte bakar bat, eta byte buelta dugu. 577 00:39:56,110 --> 00:40:00,300 Horregatik ez dugu gordetzeko, nahi, 80530CO8. 578 00:40:00,300 --> 00:40:07,520 , Gorde dugu horren ordez, 2 digitu bikote bakoitzaren, eskuinetik hasita. 579 00:40:07,520 --> 00:40:10,880 Helbide hori Irteeran helbidea aipatzen 580 00:40:10,880 --> 00:40:15,190 gure buffer benetan nahi izan dugu sartu kopiatu Lehenik eta behin neurtzen. 581 00:40:15,190 --> 00:40:19,230 Arrazoia hori erabilgarria da, izan ere, zer bada erasotzaile 582 00:40:19,230 --> 00:40:24,100 gertatu ordez, hori besterik kate bat izatea 583 00:40:24,100 --> 00:40:27,060 bezalako kate Kalterik bat, bere izena edo horrelako zerbait, 584 00:40:27,060 --> 00:40:33,900 zer bada, horren ordez, kate zirela kode arbitrarioa batzuk besterik 585 00:40:33,900 --> 00:40:38,610 duten edozein dela ere egin nahi izan zuten? 586 00:40:38,610 --> 00:40:45,630 Beraz, ezin izan - Ezin dut edozein cool kodea uste. 587 00:40:45,630 --> 00:40:47,780 Ezer izan zitekeen, baina. Edozein negargarria kodea. 588 00:40:47,780 --> 00:40:51,440 Nahi badute, izan besterik ez dute seg matxurak at zerbait, baina hori pointless litzateke. 589 00:40:51,440 --> 00:40:54,950 Normalean ez dute zure sistema aldatu egin. 590 00:40:54,950 --> 00:40:59,930 >> Ados. CS50 liburutegia. 591 00:40:59,930 --> 00:41:04,800 Hau da, funtsean, GetInt, getString, funtzio horiek guztiak zuk ematen dugu. 592 00:41:04,800 --> 00:41:10,630 Beraz, char * katea dugu, eta hori abstrakzioa dela kanpoan nintzen dugu 593 00:41:10,630 --> 00:41:12,450 seihilekoan uneren batean. 594 00:41:12,450 --> 00:41:18,220 Gogoratu kate bat besterik karaktere array bat da. 595 00:41:18,220 --> 00:41:23,240 Hortaz, hona hemen labur getString bertsio bat ikusiko dugu. 596 00:41:23,240 --> 00:41:25,920 Atzera begiratu behar duzu it at nola benetan da inplementatu gogoratzeko. 597 00:41:25,920 --> 00:41:30,950 Giltza xehetasunak dira, konturatu pertsonaia bakar batean lortuko dugu aldi berean 598 00:41:30,950 --> 00:41:34,570 , hau da, besterik gabe idazten teklatua gu bezala estandarretik. 599 00:41:34,570 --> 00:41:37,890 Beraz, denbora batean pertsonaia bakar bat, eta pertsonaiak gehiegi lortuko badugu, 600 00:41:37,890 --> 00:41:40,580 beraz, n + 1-ahalmena baino handiagoa bada, 601 00:41:40,580 --> 00:41:44,140 ondoren, gure buffer ahalmena handitu behar dugu. 602 00:41:44,140 --> 00:41:47,780 Hortaz, hona hemen gure buffer tamaina bikoiztu ari gara. 603 00:41:47,780 --> 00:41:51,840 Eta hori mantentzen joan; pertsonaia sartu dugu gure buffer sartu 604 00:41:51,840 --> 00:41:56,220 line edo fitxategiaren edo dena amaiera berri bat jasotzen dugun arte, 605 00:41:56,220 --> 00:41:59,380 eta kasu horretan, katea eta ondoren benetako getString egiten ari gara 606 00:41:59,380 --> 00:42:05,120 memoria hori estutu, bezalako memoria gehiegi esleitu badugu itzuliko da eta txikitu pixka bat. 607 00:42:05,120 --> 00:42:08,830 Beraz, ez dugu erakusten duten, baina ideia nagusia da 608 00:42:08,830 --> 00:42:11,960 den pertsonaia bakar batean irakurtzeko denbora bat dauka. 609 00:42:11,960 --> 00:42:17,140 Ezin da besterik gauza oso bat irakurri aldi berean, 610 00:42:17,140 --> 00:42:19,550 bere buffer tamaina jakin bat baino ez delako. 611 00:42:19,550 --> 00:42:26,590 Beraz, katea da buffer txertatzeko saiatuko dela handiegia bada, orduan gainezkatzea litzateke. 612 00:42:26,590 --> 00:42:28,940 Beraz, hemen gerta ez dugu hori bakarrik pertsonaia bakar batean irakurriz 613 00:42:28,940 --> 00:42:33,750 denbora batean eta gero eta betiere behar dugu. 614 00:42:33,750 --> 00:42:40,270 Beraz GetInt eta beste CS50 liburutegi funtzioen joera getString erabiltzeko 615 00:42:40,270 --> 00:42:42,310 beren inplementazioak ere. 616 00:42:42,310 --> 00:42:45,370 Beraz, azpimarratu du gauza garrantzitsu dut hemen. 617 00:42:45,370 --> 00:42:49,460 GetString deiak kate bat lortzeko. 618 00:42:49,460 --> 00:42:51,710 GetString huts bada memoria itzultzeko, 619 00:42:51,710 --> 00:42:54,270 gogoratu getString duten zerbait mallocs, beraz, betiere getString deitu 620 00:42:54,270 --> 00:42:57,820 behar ez (ulertezina) katea duzula got askatzea duzu. 621 00:42:57,820 --> 00:43:02,870 Beraz, hemen, zerbait malloc huts egin bada, INT_MAX itzultzeko besterik ez dugu bandera bat bezala, 622 00:43:02,870 --> 00:43:05,650 hey, zenbaki oso bat lortzeko gai ez ginen benetan. 623 00:43:05,650 --> 00:43:10,830 Edozein dela ere itzuliko dizut ez ikusi behar duzu, edo 624 00:43:10,830 --> 00:43:15,540 ez behar duzu tratatzeko honek baliozko sarrera gisa. 625 00:43:15,540 --> 00:43:21,360 Azkenik, ez dela arrakasta suposatuz, sscanf erabiltzen dugu bandera berezi batekin, 626 00:43:21,360 --> 00:43:23,820 horrek esan nahi du, lehen zenbaki oso bat dator, 627 00:43:23,820 --> 00:43:26,770 ondoren, edozein karaktere dator osoko zenbaki hori ondoren. 628 00:43:26,770 --> 00:43:29,070 Beraz nabarituko 1 berdintasuna nahi dugu. 629 00:43:29,070 --> 00:43:32,940 Beraz sscanf itzultzen zenbat partidatan arrakastaz egin bada? 630 00:43:32,940 --> 00:43:37,010 1 itzuliko da zenbaki oso bat arrakastaz parekatzen bada, 631 00:43:37,010 --> 00:43:40,890 0 itzuliko da, ez da zenbaki oso bat badatoz, eta 2 itzuliko da 632 00:43:40,890 --> 00:43:45,920 hura parekatzen bada osoko zenbakia pertsonaia batzuk jarraian. 633 00:43:45,920 --> 00:43:49,780 Beraz nabarituko baina 1 ezer etortzeko badugu berriz saiatu gara. 634 00:43:49,780 --> 00:43:55,230 Beraz sartu badugu 1, 2, 3, C, edo 1, 2, 3, X, 635 00:43:55,230 --> 00:43:57,400 ondoren, 1, 2, 3 litzateke osokoa gordetzen ezagutu, 636 00:43:57,400 --> 00:43:59,620 X litzateke pertsonaiaren gordetzen ezagutu, 637 00:43:59,620 --> 00:44:06,410 2 itzuli sscanf litzateke, eta berriz saiatu genuke, zenbaki oso bat bakarrik dugu nahi duelako. 638 00:44:06,410 --> 00:44:09,810 >> Azkar HTML, HTTP, CSS bidez putz. 639 00:44:09,810 --> 00:44:15,340 Hipertestua Markatzeko Lengoaia egitura eta semantika web da. 640 00:44:15,340 --> 00:44:19,960 Hemen hitzaldia adibidea non XHTML etiketa behar dugu. 641 00:44:19,960 --> 00:44:22,110 Burua tags, tags gorputza, dugu 642 00:44:22,110 --> 00:44:27,770 tags hutsik non dugu benetan ez hasteko eta ixteko etiketa dute adibide dugu, 643 00:44:27,770 --> 00:44:30,820 besterik ez dugu esteka eta irudi. 644 00:44:30,820 --> 00:44:38,480 Ez ixtea irudia etiketa da, ez dago etiketa bakar bat besterik etiketarekin egin behar dena accomplishes hori da. 645 00:44:38,480 --> 00:44:41,950 Lotura adibide bat da; ikusiko dugu nola lotzen CSS behar duzu, 646 00:44:41,950 --> 00:44:45,910 gidoia nola lotzen kanpoko JavaScript bat nahi duzu adibide bat da. 647 00:44:45,910 --> 00:44:53,100 Nahiko erraza da, eta gogoratu, HTML ez da programazio-lengoaia bat. 648 00:44:53,100 --> 00:44:58,250 Hemen, gogoratu formulario bat nola definituko zenuke edo gutxienez hau zer egingo zenuke? 649 00:44:58,250 --> 00:45:01,740 Formulario bat horrelako ekintza bat eta metodo bat dauka. 650 00:45:01,740 --> 00:45:06,210 Metodo bertan soilik inoiz ikusi duzu GET eta POST dira. 651 00:45:06,210 --> 00:45:09,040 Beraz GET bertsio non gauza erabat URL jarri da. 652 00:45:09,040 --> 00:45:11,680 POST da, non ez da URL jarri. 653 00:45:11,680 --> 00:45:18,520 Horren ordez, formularioan edozein datu gehiago HTTP eskaeran ezkutuko dago sartuta. 654 00:45:18,520 --> 00:45:22,390 Beraz, hemen, ekintza definitzen non HTTP eskaera doa. 655 00:45:22,390 --> 00:45:27,490 Non egingo da google.com / bilatu da. 656 00:45:27,490 --> 00:45:32,890 Metodoa. Gogoratu GET eta POST arteko desberdintasunak, 657 00:45:32,890 --> 00:45:37,200 eta, besterik gabe, esan adibide gisa, laster marka zerbait nahi izanez gero. 658 00:45:37,200 --> 00:45:40,660 Inoiz izango duzu POST URL baten laster-marka egiteko 659 00:45:40,660 --> 00:45:44,970 Datu hori ez delako URL sartuta. 660 00:45:44,970 --> 00:45:49,790 >> HTTP, orain, Hipertestua transferitzeko protokoloa da. 661 00:45:49,790 --> 00:45:54,080 The Hipertestua transferitzeko protokoloa, transferitu da espero zenuke 662 00:45:54,080 --> 00:45:57,710 Hipertestua Markatzeko Lengoaia, eta gertatzen. 663 00:45:57,710 --> 00:46:00,170 Baina webean aurkituko duzu edozein irudiak helarazi ere, 664 00:46:00,170 --> 00:46:05,400 Egiten duzun edozein deskarga HTTP eskaera bat bezala hasi. 665 00:46:05,400 --> 00:46:10,350 Beraz HTTP World Wide Web hizkuntzan besterik ez da. 666 00:46:10,350 --> 00:46:15,610 Eta hemen HTTP eskaera bat mota hau aitortu behar dituzu. 667 00:46:15,610 --> 00:46:19,300 Hemen HTTP/1.1 aldean besterik esaten duen bertsioa da 668 00:46:19,300 --> 00:46:21,570 protokoloa erabiltzen dut. 669 00:46:21,570 --> 00:46:25,770 Honez nahiko askoz beti HTTP/1.1 izan nahi duzu ikusiko gisa joan,. 670 00:46:25,770 --> 00:46:30,110 Ondoren ikusiko dugu hori GET zen, alternatiba POST izanik, zuk ikusi. 671 00:46:30,110 --> 00:46:40,790 Eta hori bisitatzeko nintzen saiatzen URL zen www.google.com/search?q = blah, blah, blah. 672 00:46:40,790 --> 00:46:44,240 Beraz, gogoratu hau, galdera-marka q = blah blah blah, 673 00:46:44,240 --> 00:46:49,040 stuff hori inprimaki bat aurkeztu moduko da. 674 00:46:49,040 --> 00:46:51,830 Erantzun zidan agian itzultzeko, hau izango litzateke. 675 00:46:51,830 --> 00:46:54,050 Berriz ere, protokoloa, eta hori dela izango hasita, 676 00:46:54,050 --> 00:46:59,190 Estatus kodearen jarraian. Hemen 200 OK da. 677 00:46:59,190 --> 00:47:05,060 Eta, azkenik, web orri hori benetan galdetu nion jarraitu egingo da. 678 00:47:05,060 --> 00:47:08,210 Ahalik eta egoera kode agian ikusten, eta horietako zenbait, jakin behar duzu. 679 00:47:08,210 --> 00:47:12,770 200 Ados ziurrenik lehenago ikusi duzu. 680 00:47:12,770 --> 00:47:17,830 403 Forbidden, 404 ez da aurkitu, 500 Zerbitzariaren barne errorea 681 00:47:17,830 --> 00:47:22,140 ohi da joan zaren web orri bat bada, eta zerbait hautsi edo beren PHP kodea kraskatzen, 682 00:47:22,140 --> 00:47:24,930 aparatuaren berriz dugula handi laranja kaxa 683 00:47:24,930 --> 00:47:27,830 datorren eta dio, bezala, zerbait gaizki dago, kode honek ez du funtzionatzen 684 00:47:27,830 --> 00:47:30,380 edo funtzio hau en txarra. 685 00:47:30,380 --> 00:47:33,230 Normalean webgune ez nahi zer funtzio dira benetan txarra jakitea duzu, 686 00:47:33,230 --> 00:47:37,880 beraz, horren ordez egingo dute, besterik gabe emango dizu 500 Barneko zerbitzari Akatsak. 687 00:47:37,880 --> 00:47:43,050 >> TCP / IP 1 geruza HTTP pean. 688 00:47:43,050 --> 00:47:47,550 Gogoratu ez dagoela World Wide Web kanpo Internet da. 689 00:47:47,550 --> 00:47:52,270 Bezalako bat online joko ez duen HTTP bidez joan play izanez gero, 690 00:47:52,270 --> 00:47:55,740 nik ezberdin baten bidez joan - eta oraindik ere, Internet erabiliz, 691 00:47:55,740 --> 00:47:58,900 baina ez du erabili HTTP. 692 00:47:58,900 --> 00:48:02,470 HTTP protokoloaren adibide bat besterik ez TCP / IP gainean eraiki da. 693 00:48:02,470 --> 00:48:07,820 Literalki IP Internet Protokoloa esan nahi du. 694 00:48:07,820 --> 00:48:11,500 Ordenagailu bakoitzean IP helbide bat dauka; 4 digituko gauza horiek dira 695 00:48:11,500 --> 00:48:16,510 192.168.2.1, edo dena delakoa bezala, hau lokal bat izan ohi da. 696 00:48:16,510 --> 00:48:23,390 Baina hori IP helbide baten eredua da. 697 00:48:23,390 --> 00:48:29,060 Beraz, DNS, Domain Name Zerbitzua, 698 00:48:29,060 --> 00:48:33,410 zer google.com bezalako gauzak itzultzen benetako IP helbide bat hori da. 699 00:48:33,410 --> 00:48:37,700 Beraz, idazten duzun IP helbide hori bada URL bat sartu, 700 00:48:37,700 --> 00:48:40,850 duzula ekarriko luke Googlek, baina gauza horiek ez gogoratzeko joera duzu. 701 00:48:40,850 --> 00:48:45,470 Gogoratzeko google.com ordez ohi duzu. 702 00:48:45,470 --> 00:48:51,560 Azken gauza ditugun portu, non honek TCP IP zati da. 703 00:48:51,560 --> 00:48:54,880 TCP gehiago ez. Pentsatu, bezala, zure web nabigatzailea exekutatzen duzu. 704 00:48:54,880 --> 00:48:58,670 Agian email aplikazioa martxan batzuk duzu? 705 00:48:58,670 --> 00:49:02,150 agian interneteko korrika erabiltzen duen beste programa batzuk duzu. 706 00:49:02,150 --> 00:49:05,090 Interneterako sarbidea behar duten guztiak, 707 00:49:05,090 --> 00:49:08,100 baina zure ordenagailua bakarrik 1 WiFi txartela edo dena delakoa du. 708 00:49:08,100 --> 00:49:10,780 Beraz portuak modu horretan sortu zatitu gai gara dira 709 00:49:10,780 --> 00:49:13,550 nola aplikazio horiek Interneten erabiltzeko gai dira. 710 00:49:13,550 --> 00:49:17,230 Aplikazio bakoitzeko 1 ataka zehatz dela entzun ahal nau, 711 00:49:17,230 --> 00:49:19,670 eta lehenetsita, HTTP 80 ataka erabiltzen du. 712 00:49:19,670 --> 00:49:22,410 Email Zerbitzu batzuk erabili 25. 713 00:49:22,410 --> 00:49:24,490 Behe-zenbakituta direnak joera gordeak zailak. 714 00:49:24,490 --> 00:49:29,270 Duzu goi-zenbakituta daudenak lortzeko zeuk gai izan ohi dira. 715 00:49:29,270 --> 00:49:32,010 >> CSS, Kaskadako Estilo Orriak. 716 00:49:32,010 --> 00:49:36,030 Dugu estilo web CSS orriak, HTML batera. 717 00:49:36,030 --> 00:49:38,440 3 leku zure CSS jarri ahal izango duzu. 718 00:49:38,440 --> 00:49:46,300 Inline izan daiteke, estiloa tags artean, edo erabat aparteko fitxategi batean eta orduan lotuta sartu 719 00:49:46,300 --> 00:49:48,470 Eta hemen besterik CSS adibidea da. 720 00:49:48,470 --> 00:49:50,450 Patroi hau aitortu behar duzu, 721 00:49:50,450 --> 00:49:54,310 non lehenengo adibidea gorputza etiketa da betetzen ari gara, 722 00:49:54,310 --> 00:49:56,680 eta hemen gorputza etiketa zentrotzat ari gara. 723 00:49:56,680 --> 00:50:00,420 Bigarren adibidea, zera betetzen ari gara 724 00:50:00,420 --> 00:50:04,740 izena Oina, eta estilo batzuk aplikatuz ari gara horretan. 725 00:50:04,740 --> 00:50:07,310 Nabarituko ID Oina ezkerrera testua lerrokatzen du, 726 00:50:07,310 --> 00:50:09,840 gorputza testua lerrokatzen zentro berriz. 727 00:50:09,840 --> 00:50:13,180 Oina gorputz barruan dago. 728 00:50:13,180 --> 00:50:16,470 Izango da, horren ordez, testu-lerrokatu ezkerrera, gorputza dio Testu-lerrokatzea zentro nahiz. 729 00:50:16,470 --> 00:50:18,880 Honek kaskada zati osoa da. 730 00:50:18,880 --> 00:50:22,110 Izan dezakezu - estilo zehatz dezakezu eta gorputzaz 731 00:50:22,110 --> 00:50:25,320 eta ondoren gorputzean gauzak estilo zehatzagoak zehaztu dezakezu, 732 00:50:25,320 --> 00:50:28,160 eta gauzak lan espero duzun bezala. 733 00:50:28,160 --> 00:50:34,420 CSS bereziak zehatzagoa hartzeko lehentasuna. 734 00:50:34,420 --> 00:50:46,140 Nik uste dut, hori da. 735 00:50:46,140 --> 00:50:49,260 >> [Ali Nahm] Kaixo guztioi. Besterik ezin izan dut zure arreta bada. 736 00:50:49,260 --> 00:50:53,990 Ali naiz, eta oso azkar PHP eta SQL bidez joan naiz. 737 00:50:53,990 --> 00:51:00,310 Beraz, hasiko dugu. PHP laburra da PHP: Hypertext Preprocessor. 738 00:51:00,310 --> 00:51:03,730 Eta duzun guztia jakin behar du, zerbitzariaren aldeko scripting hizkuntza bat da, 739 00:51:03,730 --> 00:51:06,800 eta erabili dugu atzera webgune amaieran, 740 00:51:06,800 --> 00:51:12,540 eta kalkuluak, eta atzean-eszenak zatian asko nola egiten du. 741 00:51:12,540 --> 00:51:17,510 Sintaxia. Ez da C, harridura, ezustekoa gustatzen. 742 00:51:17,510 --> 00:51:22,060 Ezin dut aurretik mugitu - beti hemen, zuk ikusi ahal izan bada ere, hasi behar du egiten. 743 00:51:22,060 --> 00:51:31,340 Giltza mota berriak behar duzun ikusi ahal izango duzu eta, ondoren, aldi berean,? Php behar duzu. 744 00:51:31,340 --> 00:51:35,780 Hori da beti nola zure PHP testua, zure PHP kodea enkoadratzearekin duzu. 745 00:51:35,780 --> 00:51:39,180 Beraz, ezin besterik C, non motatako jarri duzu lehen bezala izango. 746 00:51:39,180 --> 00:51:42,290 Beti inguratu behar duzu. 747 00:51:42,290 --> 00:51:47,610 Eta orain, sintaxia garrantzitsua da aldagai guztiak horretara $ pertsonaiaren batekin hasi behar. 748 00:51:47,610 --> 00:51:49,490 Egin behar denean horiek definitzeko zaren behar duzu; egin behar duzun 749 00:51:49,490 --> 00:51:51,860 denean duzu haiei geroago aipatuz ari. 750 00:51:51,860 --> 00:51:56,510 Beti behar duzu $ duten. Zure lagunik onena da, nahiko askoz. 751 00:51:56,510 --> 00:52:01,690 Ez duzu - C ez bezala, ez duzu zer nolako motako aldagaia da jarri. 752 00:52:01,690 --> 00:52:04,940 Beraz $ behar egiten duzun bitartean, ez duzu jarri, nahi, 753 00:52:04,940 --> 00:52:09,470 int x edo kate y, etcétera, etcétera. 754 00:52:09,470 --> 00:52:11,490 Beraz, aldea txikia izan da. 755 00:52:11,490 --> 00:52:15,590 Honen ondorioz, PHP duten ahulki mota bat da esan nahi du. 756 00:52:15,590 --> 00:52:19,310 PHP ahulki mota hizkuntza bat da, eta da ha ahula idatzi aldagaiak. 757 00:52:19,310 --> 00:52:24,020 Bestela esanda, horrek esan nahi du mota aldagai mota desberdinak artean alda dezakezu. 758 00:52:24,020 --> 00:52:27,230 Int bat bezala zure zenbakia 1 gorde ahal izango duzu, 759 00:52:27,230 --> 00:52:29,650 gorde dezakezu Kate gisa, eta gorde ahal izango duzu mugikor bat bezala, 760 00:52:29,650 --> 00:52:33,550 eta guztiek zenbaki hori 1 izango da. 761 00:52:33,550 --> 00:52:36,080 Duzu gorde ari nahiz eta modu desberdinetan, 762 00:52:36,080 --> 00:52:39,120 oraindik da - mota aldakorreko oraindik ere, azken batean eusten dira. 763 00:52:39,120 --> 00:52:41,540 Beraz, hemen begiratuz gero, gogoratzen duzu pset 7tik bada, 764 00:52:41,540 --> 00:52:43,500 zuetako askok honekin gaiak ziurrenik izan zuen. 765 00:52:43,500 --> 00:52:47,280 Bi berdin ikurrekin, 3 zeinu berdina, 4 zeinuak berdinak. 766 00:52:47,280 --> 00:52:49,990 Ongi da, ez dago 4 zeinuak berdinak, baina badaude 2 eta 3. 767 00:52:49,990 --> 00:52:53,320 2 zeinuak berdinak erabiltzen dituzun balioak ikusteko. 768 00:52:53,320 --> 00:52:55,830 Mota guztietan ez egiaztatu ahal. 769 00:52:55,830 --> 00:52:58,770 Beraz duzun lehen adibidea ikusi ahal izango balitz, 770 00:52:58,770 --> 00:53:02,210 Num_int == num_string daukat. 771 00:53:02,210 --> 00:53:06,710 Beraz, zure int eta zure kate dira, bai, teknikoki, 1, 772 00:53:06,710 --> 00:53:10,790 baina mota ezberdinak daudela. Baina bikoitza berdinak, oraindik pasatzen dugu. 773 00:53:10,790 --> 00:53:15,510 Hala ere, berdinen hirukoitza, balio baita Mota ezberdinen egiaztatzen du. 774 00:53:15,510 --> 00:53:18,760 Horrek esan nahi du, ez da hori bigarren kasu horretan pasatzen hemen, 775 00:53:18,760 --> 00:53:22,350 non 3 zeinuak berdinak erabiltzen ari zaren ordez. 776 00:53:22,350 --> 00:53:26,590 Beraz, diferentzia handi bat hori guztia duzu orain erakutsi dute behar da. 777 00:53:26,590 --> 00:53:31,570 >> String lotuz beste gauza indartsua daiteke PHP erabili nahi duzun. 778 00:53:31,570 --> 00:53:34,080 Funtsean da erabilgarri dot idazkera hori besterik ez, 779 00:53:34,080 --> 00:53:36,230 eta hori elkarrekin kateak nola lotu dezakezu. 780 00:53:36,230 --> 00:53:40,800 Beraz Cat badaukazu eta Dog duzu, eta 2 kateak elkarrekin jarri nahi baduzu, 781 00:53:40,800 --> 00:53:44,080 aldian erabili ahal izango duzu, eta hori, nola funtzionatzen duen mota. 782 00:53:44,080 --> 00:53:46,660 Besterik ere jarri ahal izango duzu horiek bata bestearen ondoan, 783 00:53:46,660 --> 00:53:49,030 Hemen ikusi dezakezu bezala, beheko adibidean, 784 00:53:49,030 --> 00:53:51,610 non katea 1, espazio katea 2 echo dut. 785 00:53:51,610 --> 00:53:56,930 PHP horiek esaterako ordezkatzeko jakingo. 786 00:53:56,930 --> 00:53:59,780 Arrayak. Orain, PHP, han 2 array mota desberdinak daude. 787 00:53:59,780 --> 00:54:03,180 Arrayak erregularra izan dezakezu, eta, gainera, elkartze-array izan dezakezu, 788 00:54:03,180 --> 00:54:06,040 eta ari gara oraintxe horien bitartez joango gara. 789 00:54:06,040 --> 00:54:08,280 Arrayak erregularra besterik hau C daude, 790 00:54:08,280 --> 00:54:11,240 eta, beraz, hori zenbatuta daude indizeek duzu. 791 00:54:11,240 --> 00:54:13,160 Oraintxe ari gara bat sortzen joatea eta jar - 792 00:54:13,160 --> 00:54:15,500 beraz, hau da array huts bat nola sortu genuen, gero goazela 793 00:54:15,500 --> 00:54:17,310 indize 0 zenbakia jarri. 794 00:54:17,310 --> 00:54:19,200 Zenbakiaren 6, 6 balioa jarri goaz. 795 00:54:19,200 --> 00:54:21,500 Ikusi ahal izango duzu, behealdean hemen. 796 00:54:21,500 --> 00:54:24,240 Where's - 1 zenbakia indizea at gabiltza balioa zenbaki 4 jarri nahi dut, 797 00:54:24,240 --> 00:54:26,720 eta beraz, ikusi ahal izango dituzu, ez da 6 bat, ez da 4 bat, 798 00:54:26,720 --> 00:54:29,160 eta ondoren dugu gauzak inprimatzeko ari baita, 799 00:54:29,160 --> 00:54:33,550 denean saiatzen gara eta indize 0 zenbakian gordetako balioa inprimatu, 800 00:54:33,550 --> 00:54:36,900 Orduz balioa ikusiko dugu ari inprimatutako 6. Cool? 801 00:54:36,900 --> 00:54:40,160 Beraz, zuretzat arrayak erregularra da. 802 00:54:40,160 --> 00:54:42,750 Beste modu duzun gauza ere gehi ditzakezu arrayak erregularra orain 803 00:54:42,750 --> 00:54:44,780 da besterik erantsi dituzu amaieran. 804 00:54:44,780 --> 00:54:47,240 Horrek esan nahi du ez duzula izan indize espezifikoak zehazteko. 805 00:54:47,240 --> 00:54:51,000 Zenbakia ikusi ahal izango dituzu, eta ondoren, kortxete artean ez dago indizea zehaztu. 806 00:54:51,000 --> 00:54:56,270 Eta ezagutzeko aukera izango da - PHP besterik gehitu zerrendari, hurrengo free Leku amaierara arte jakingo. 807 00:54:56,270 --> 00:54:59,190 Beraz, ikusi ahal izango duzu 1 eskuineko han 0 Leku hartan, 808 00:54:59,190 --> 00:55:02,690 2 bertan joan zen lehen spot at. 809 00:55:02,690 --> 00:55:04,690 3 doa - han gehitzen da, baita. 810 00:55:04,690 --> 00:55:06,720 Beraz, mota horretako zentzua. Zu besterik etengabe gehituz, 811 00:55:06,720 --> 00:55:09,360 eta orduan, zenbaki 1 indizea echoing ari gara, 812 00:55:09,360 --> 00:55:13,080 2 balioa inprimatu egingo du. 813 00:55:13,080 --> 00:55:16,800 >> Ondoren duten elkartze-array dira array dugu. 814 00:55:16,800 --> 00:55:19,370 Elkartze-array ordez, zenbaki-indizeak izatea, 815 00:55:19,370 --> 00:55:23,630 zer egiten da, hau da kate dira indizeek dute. 816 00:55:23,630 --> 00:55:25,670 , Ikusten duzun ordez - I-zenbakia indize horiek guztiak kendu egin, 817 00:55:25,670 --> 00:55:32,140 eta orain gakoa1, gakoa2, key3 da, eta Oraindik komatxo dute kate guztiak Oraindik dutela adierazteko. 818 00:55:32,140 --> 00:55:34,470 Beraz, hau adibide bat izan dezakegu. 819 00:55:34,470 --> 00:55:38,790 Horren adibide da tf dugula, eta hori indizearen izena da. 820 00:55:38,790 --> 00:55:42,030 Jarri "Ali" izen gisa, indizearen aldean, kaloria jan goaz, 821 00:55:42,030 --> 00:55:47,640 int une honetan jarri ahal izango dugu ordez kate baten, 822 00:55:47,640 --> 00:55:52,240 eta orduan indizea gustuko at, array oso bat jarri ahal izango dugu barruan. 823 00:55:52,240 --> 00:55:55,490 Beraz, hau da, mota horretako - antzeko nola izan genuen kontzeptu bat da 824 00:55:55,490 --> 00:55:58,930 Zenbaki indizeak, baina orain indizeek inguruan aldatzeko aukera izango dugu 825 00:55:58,930 --> 00:56:03,890 horiek kate gisa ordez. 826 00:56:03,890 --> 00:56:06,070 Zuk ere egin dezakezu, besterik ez da indibidualki egiten, gainera, 827 00:56:06,070 --> 00:56:09,400 hori guztia egin dezakezu pusketa batean. Beraz, array horren tf duten ikusi ahal izango duzu, 828 00:56:09,400 --> 00:56:13,350 eta, ondoren, horiek guztiak ezarri dugu erraldoi kortxetea multzo batean. 829 00:56:13,350 --> 00:56:15,220 Beraz, gauzak azkartzeko. 830 00:56:15,220 --> 00:56:19,730 Aukera estilistiko bat gehiago ez baino da. 831 00:56:19,730 --> 00:56:21,550 Horrez gain, begiztak. 832 00:56:21,550 --> 00:56:26,020 C honen antzeko lan egiten duten begiztak dugu. 833 00:56:26,020 --> 00:56:29,690 Gure array izan genuen, eta zerrendaren amaieran joan zen indizea 0tik dugu, 834 00:56:29,690 --> 00:56:31,740 eta dena inprimatu dugu, ezta? 835 00:56:31,740 --> 00:56:33,880 Arazoa da, elkartze-array ezik, 836 00:56:33,880 --> 00:56:36,610 ez dugu zertan zenbaki-indize horiek ezagutzen 837 00:56:36,610 --> 00:56:39,610 orain katea indizeak dugulako. 838 00:56:39,610 --> 00:56:44,800 Orain foreach begiztak, eta horrek, berriz ere, zuk espero pset 7 erabiltzen erabili dugu. 839 00:56:44,800 --> 00:56:48,930 Foreach begiztak besterik jakingo zerrendako zati bakoitzean bakarra. 840 00:56:48,930 --> 00:56:52,450 Eta ez du zehazki zenbakizko indizea duzula jakitea. 841 00:56:52,450 --> 00:56:56,490 Beraz foreach sintaxia duzu, beraz foreach da, array jarri duzu. 842 00:56:56,490 --> 00:57:00,430 Beraz, nire array pset deitzen da, eta, ondoren, bezain hitza, 843 00:57:00,430 --> 00:57:04,530 eta ondoren, tokiko tenporala aldagai hau erabili zarela jarri duzu 844 00:57:04,530 --> 00:57:10,690 besterik ez da hori zehatz eutsi egingo gauza zehatz baterako - 845 00:57:10,690 --> 00:57:14,770 instantzia bat edo array-atal bat. 846 00:57:14,770 --> 00:57:18,350 Pset num 1 ospatuko da, eta gero, agian, zenbakia 6 antolatzen ditu, 847 00:57:18,350 --> 00:57:20,410 eta ondoren, 2 zenbakia mantendu egingo da. 848 00:57:20,410 --> 00:57:26,630 Baina bermatuta behar balio bakar bakoitza array da bidez joan. 849 00:57:26,630 --> 00:57:30,530 Funtzio erabilgarria duten PHP ezagutu behar dira eska- 850 00:57:30,530 --> 00:57:35,880 beraz, ziurtatu egiten duten zenbait fitxategiak barne zaren, echo, irteera, hutsik. 851 00:57:35,880 --> 00:57:40,490 Gomendatzen dut begiratuz pset 7 eta funtzio horiek begiratu. 852 00:57:40,490 --> 00:57:42,810 Agian horiek jakin behar duzu, 853 00:57:42,810 --> 00:57:47,060 beraz, behin betiko jakingo nuke zer, zehazki, horiek guztiak egiten ari. 854 00:57:47,060 --> 00:57:50,080 >> Eta orain ari gara benetan azkar esparrua bidez joango gara. 855 00:57:50,080 --> 00:57:53,490 Esparrua, PHP funky gauza baten antzeko zerbait da, C ez bezala, 856 00:57:53,490 --> 00:57:56,170 eta beraz ari gara azkar horren bidez joango gara. 857 00:57:56,170 --> 00:57:58,930 Beraz, demagun hasteko gezi han daukagu ​​hartan dugu. 858 00:57:58,930 --> 00:58:02,900 Eta ari gara $ i batekin hasiko dugu. Beraz, aldagai 'i' da 0 izango da, 859 00:58:02,900 --> 00:58:06,730 eta ari gara inprimatzeko kutxa zuri handi horretan mantentzeko han pasa. 860 00:58:06,730 --> 00:58:09,220 Ra i0 batekin hasiko dugu, eta gero ari gara da echo joan. 861 00:58:09,220 --> 00:58:12,670 Beraz, 0 ez dago. 862 00:58:12,670 --> 00:58:15,210 Eta gero ari gara Kontatzailea begizta egiteko by going, 863 00:58:15,210 --> 00:58:17,810 eta ondoren, balioa 1 izango da. 864 00:58:17,810 --> 00:58:20,070 Bat 3 baino txikiagoa da, beraz, pasatzen duten bidez loop joan, 865 00:58:20,070 --> 00:58:23,230 eta, ondoren, ari gara berriro inprimatuta ikusteko. 866 00:58:23,230 --> 00:58:25,520 Berriro handitzeko 2 goaz, 867 00:58:25,520 --> 00:58:29,860 eta 2 3 baino gutxiago da, beraz, gainditu egingo loop, eta inprimatu egingo da 2. 868 00:58:29,860 --> 00:58:35,100 Orduan ohartu dituzu duten 3 ez da 3 baino gutxiago, beraz dugu apurtzen kanpo begizta. 869 00:58:35,100 --> 00:58:40,050 Beraz, gaur egun irten dugu, eta gero ari gara aFunction sartu joango gara. 870 00:58:40,050 --> 00:58:45,010 Ados. Beraz, aldagai hau sortu dugu, kontuan izan behar duzu, 871 00:58:45,010 --> 00:58:48,270 'i' aldagaia, ez da lokalean scoped. 872 00:58:48,270 --> 00:58:50,280 Horrek esan nahi du ez dela begizta tokiko, 873 00:58:50,280 --> 00:58:58,060 eta aldagai hori ezin dugu oraindik ere, sartzeko eta aldatu ondoren, eta oraindik ere izango da eraginkorra izan. 874 00:58:58,060 --> 00:59:02,160 Beraz, gaur egun joan behar funtzioa sartu bada, ikusiko duzu, baita ere 'i' aldagaia erabiltzen dugula, 875 00:59:02,160 --> 00:59:05,320 eta ari gara handitzeko 'i' + + joan. 876 00:59:05,320 --> 00:59:09,410 Uste duzu litzateke, hasiera batean, oinarritutako C on, hori 'i' aldagaia kopia bat da. 877 00:59:09,410 --> 00:59:12,830 Erabat ezberdinak gauza bat da, hau da zuzena. 878 00:59:12,830 --> 00:59:16,560 Beraz, noiz, inprimatzen dizugu gabiltza inprimatu 'i' + +, hau da inprimatu joan 4 dela, 879 00:59:16,560 --> 00:59:19,640 Sentitzen - eta orduan ari gara joan. 880 00:59:19,640 --> 00:59:22,030 Ondoren gaude funtzio hori amaitzeko, 881 00:59:22,030 --> 00:59:24,820 eta ari gara non gezi hori da oraintxe bertan izango. 882 00:59:24,820 --> 00:59:29,190 Horrek esan nahi du, ondoren, ordea, funtzioaren 'i' balioa aldatu arren, 883 00:59:29,190 --> 00:59:32,620 ez zuen funtzioa kanpo aldatu, 884 00:59:32,620 --> 00:59:35,060 funtzioa aparteko esparrua duelako. 885 00:59:35,060 --> 00:59:38,960 Horrek esan nahi dugunean echo 'i', ez du funtzioa esparrua aldatu, 886 00:59:38,960 --> 00:59:43,660 eta, beraz, ondoren ari gara 3 inprimatu berriro egingo. 887 00:59:43,660 --> 00:59:47,520 PHP esparrua buruzko gauza ezberdinak C. baino 888 00:59:47,520 --> 00:59:51,130 >> Orain PHP eta HTML. 889 00:59:51,130 --> 00:59:53,510 PHP web orriak dinamikoak egiteko erabiltzen da. 890 00:59:53,510 --> 00:59:58,660 Mota da gauza desberdinak egiten. 891 00:59:58,660 --> 01:00:02,090 Ezberdinak HTML bertatik dugu. 892 01:00:02,090 --> 01:00:05,230 HTML, beti besterik ez dugu gauza bera estatikoan, Rob nola erakutsi bezala, 893 01:00:05,230 --> 01:00:09,370 PHP, berriz, gauzak aldatu ahal izango duzu oinarritutako nor erabiltzailea da on. 894 01:00:09,370 --> 01:00:11,830 Beraz daukat hau bada, dut, "Ez zaude gisa saioa hasita -" eta, ondoren, izena, 895 01:00:11,830 --> 01:00:14,420 eta izena aldatu ahal izango dut. Beraz, oraintxe izenaren Joseph da, 896 01:00:14,420 --> 01:00:18,880 eta "niri buruz," ditu baina gero nik ere izena aldatu daiteke Tommy izan. 897 01:00:18,880 --> 01:00:21,700 Eta hori beste gauza bat izango litzateke. 898 01:00:21,700 --> 01:00:23,840 Beraz, orduan ere dugu berari buruz gauza desberdinak alda dezake, 899 01:00:23,840 --> 01:00:27,070 eta eduki ezberdinak erakusteko oinarritutako izenaren gainean egingo da. 900 01:00:27,070 --> 01:00:31,430 Beraz PHP motatako alda dezake zer gertatzen ari den webgunean. 901 01:00:31,430 --> 01:00:33,540 Bera hemen. Oraindik ere, kontuan eduki desberdina dutela, 902 01:00:33,540 --> 01:00:38,870 zaren teknikoki oraindik ere web orri bera sartzean nahiz eta azalean. 903 01:00:38,870 --> 01:00:43,450 HTML sortuz. Badira hau egin ahal izango duzu 2 modu ezberdinetan. 904 01:00:43,450 --> 01:00:48,980 Beraz dugu orain eskuineko bidez egingo joan. Lehen bidea da, izan al duzu - Bai, barkatu. 905 01:00:48,980 --> 01:00:51,150 Beraz, besterik ez duzu zure erregularra loop PHP, 906 01:00:51,150 --> 01:00:56,270 eta ondoren PHP echo duzu eta ateratzen echo duzu HTML. 907 01:00:56,270 --> 01:00:58,720 Rob zer erakutsi duzu HTML script erabiliz 908 01:00:58,720 --> 01:01:04,030 eta ondoren erabiliz PHP inprimatu besterik inprimatu web orrira. 909 01:01:04,030 --> 01:01:09,520 Modu alternatiboa da egin balitz bezala bereizteko duzun PHP eta HTML. 910 01:01:09,520 --> 01:01:11,940 Beraz, loop hasten PHP-lerro bat izan dezakezu, 911 01:01:11,940 --> 01:01:16,020 Orduz HTML lerroa izan dezakezu aparteko gauza bat, 912 01:01:16,020 --> 01:01:19,700 eta, ondoren, begizta amaitzen duzunean, berriro ere, PHP batekin. 913 01:01:19,700 --> 01:01:21,800 Beraz, mota horretako banantzen it out. 914 01:01:21,800 --> 01:01:24,020 Ezkerreko aldean, dezakezu duzula guztiak - 915 01:01:24,020 --> 01:01:26,360 PHP zatia 1 besterik ez da. 916 01:01:26,360 --> 01:01:28,510 Eskuinean dagoen ikusi ahal izango duzu PHP-lerro bat duzula, 917 01:01:28,510 --> 01:01:32,540 HTML lerro bat behar duzu, eta PHP-lerro bat behar duzu berriro. 918 01:01:32,540 --> 01:01:36,870 Beraz banantzen zer egiten ari dira sartu. 919 01:01:36,870 --> 01:01:39,330 Eta kontutan izan dituzu bai modu horretan, horietako bai, 920 01:01:39,330 --> 01:01:41,980 oraindik ere kanpo irudia inprimatu, irudia, irudia, 921 01:01:41,980 --> 01:01:44,540 beraz HTML hori oraindik den modu berean inprimatutako. 922 01:01:44,540 --> 01:01:49,870 Eta gero, oraindik duzu ikusteko 3 irudiak erakutsi zure web orrian. 923 01:01:49,870 --> 01:01:52,820 Beraz 2 gauza bera egiteko modu desberdina da. 924 01:01:52,820 --> 01:01:55,060 >> Orain inprimakiak eta eskaerak behar dugu. Rob erakutsi duzuen bezala, 925 01:01:55,060 --> 01:01:59,400 daude HTML forma, eta besterik egingo dugu honen bidez brisa. 926 01:01:59,400 --> 01:02:02,040 Ekintza bat daukazula eta metodo bat behar duzu, eta zure ekintza 927 01:02:02,040 --> 01:02:04,350 motatako erakusten dizu non zauden bidal joan, eta metodoa da ala 928 01:02:04,350 --> 01:02:06,960 Da GET edo POST bat izango da joan. 929 01:02:06,960 --> 01:02:11,220 Eta GET eskaera bat, Rob esan bezala, esan nahi du zarela jarri formulario bat joan 930 01:02:11,220 --> 01:02:15,760 eta URL gisa ikusiko duzu, berriz POST eskaera bat ez duzu URL bat ikusten. 931 01:02:15,760 --> 01:02:17,840 Beraz, aldea txikia izan da. 932 01:02:17,840 --> 01:02:19,950 Hala ere, gauza bat, antzeko gauza bat da 933 01:02:19,950 --> 01:02:22,560 da POST eta GET dira berdin ziurra. 934 01:02:22,560 --> 01:02:26,430 Baietz uste dezakezu hori besterik ez delako ez duzu ikusteko URL batean, 935 01:02:26,430 --> 01:02:28,790 horrek esan nahi du POST da seguruagoa, 936 01:02:28,790 --> 01:02:34,420 baina oraindik dezakezu ikusten cookieak hori bidaltzen ari zaren informazioa hemen. 937 01:02:34,420 --> 01:02:38,260 Beraz, ez duela uste bat edo beste inguru. 938 01:02:38,260 --> 01:02:42,160 Kontutan Beste gauza bat ere ere sekzio aldagai duzu. 939 01:02:42,160 --> 01:02:45,850 Erabiltzen Zaudete hau pset 7 zure erabiltzaile IDa informazioa lortzeko. 940 01:02:45,850 --> 01:02:48,550 Zer gertatu zen hori array elkartze hau erabil dezakezu, 941 01:02:48,550 --> 01:02:53,310 the $ _saioa, eta ondoren Oraindik gauza desberdinak sartzeko gai 942 01:02:53,310 --> 01:02:57,720 eta orrietan zehar hainbat gauza gordetzeko. 943 01:02:57,720 --> 01:03:00,750 >> Azken gauza da SQL kontsulta-lengoaia egituratu, dugula, 944 01:03:00,750 --> 01:03:04,360 eta honen programazio hizkuntza bat datu-baseak kudeatzeko. 945 01:03:04,360 --> 01:03:08,220 Zer, zehazki, datu baseak dira? Taulen bilduma ari dira, 946 01:03:08,220 --> 01:03:10,630 eta mahai bakoitzean objektu mota antzekoa izan daiteke. 947 01:03:10,630 --> 01:03:14,990 Beraz erabiltzaile taula bat izan dugu zure finantzak pset batean. 948 01:03:14,990 --> 01:03:20,610 Eta zertarako balio zuten? Betirako informazio gordetzeko modu bat delako. 949 01:03:20,610 --> 01:03:22,840 Gauzak segimendua eta gauzak kudeatzeko modu bat da 950 01:03:22,840 --> 01:03:25,890 eta benetan ikusten orriak desberdinak eta mantenduz pistan. 951 01:03:25,890 --> 01:03:29,930 Berriz, besterik ez duzu gordetzen bada une berehalako bat hartan 952 01:03:29,930 --> 01:03:33,720 eta, ondoren, geroago erabili, ezingo duzu gorde duzun ezer erabili. 953 01:03:33,720 --> 01:03:37,660 SQL komandoak erabiltzen dugun 4 gauza handiak ditugu. 954 01:03:37,660 --> 01:03:40,190 Hautatu, sartu, ezabatu eta eguneratu dugu. 955 01:03:40,190 --> 01:03:42,880 Horiek benetan garrantzitsua zuretzat mutil zure galdetegi ezagutzen dira. 956 01:03:42,880 --> 01:03:45,990 >> Egingo azkar joan gara gainetik oraintxe aukeratu. 957 01:03:45,990 --> 01:03:48,540 Funtsean, errenkada hautatzen ari zaren datu-base batetik. 958 01:03:48,540 --> 01:03:52,400 Beraz, baduzu hementxe - 959 01:03:52,400 --> 01:03:56,740 2 gauza desberdin hauek ditugu, eta klaseak taulako hautatu nahi dugu 960 01:03:56,740 --> 01:04:01,480 non awesome - non awesome zutabean balioa 1 da. 961 01:04:01,480 --> 01:04:04,460 Beraz, hemen ikusi ahal izango duzu, 2 klasearen izen gauza horiek ditugu, 962 01:04:04,460 --> 01:04:08,490 CS50 eta Stat110, eta klase identifikazioak eta leloa dugu. 963 01:04:08,490 --> 01:04:13,150 Beraz, informazio hori guztia hautatu nahi dugu. 964 01:04:13,150 --> 01:04:17,480 Gero, hemen ikusi ahal izango duzu nik motatako awesome zutabe hori biltzen duten, 965 01:04:17,480 --> 01:04:25,170 non gauza guztiak 1 dira, eta, ondoren, klase izena, klase izena eta lelo hori jaso ahal izango ditu. 966 01:04:25,170 --> 01:04:28,100 Zer egin nahi duzu hau kodean? PHP erabili ahal izango duzu. 967 01:04:28,100 --> 01:04:33,830 Beraz, mota horretako nola PHP eta SQL elkarren artean erlazionatuta daude da. 968 01:04:33,830 --> 01:04:38,130 Orain gure kodea behar dugu, eta gure kontsulta funtzioa erabili goaz 969 01:04:38,130 --> 01:04:41,370 egin dugu pset 7 bezala, eta SQL kontsulta exekutatu goaz. 970 01:04:41,370 --> 01:04:43,870 Ondoren gaude behar du - 971 01:04:43,870 --> 01:04:46,280 beti izan dugu ilara en hirukoitza berdina faltsua izanez gero begiratu. 972 01:04:46,280 --> 01:04:49,010 Beraz, berriro ere, mota eta balioa egiaztatu nahi baduzu, 973 01:04:49,010 --> 01:04:53,880 eta, ondoren, lan egiten ez badu, orduan, barkatu, ohikoa den bezala, pset 7 urtean egin genuen bezala nahi duzu. 974 01:04:53,880 --> 01:04:55,870 Bestela, begizta handy horiekin guztia bidez nahi duzun 975 01:04:55,870 --> 01:04:59,410 foreach begiztak joan besterik ez dugu gainetik. 976 01:04:59,410 --> 01:05:01,280 Bidez begizta ari gara orain, eta nik iraganean egin dugun, 977 01:05:01,280 --> 01:05:05,080 Demagun gure kontsulta hori igaro, orain gure foreach begizta dugu. 978 01:05:05,080 --> 01:05:11,050 Eta lehenengo lerroan du, beraz, hemen errenkadan da, hementxe; Boxed da. 979 01:05:11,050 --> 01:05:14,010 Honez dela ahaztuak informazio guztia inprimatzeko. 980 01:05:14,010 --> 01:05:18,070 Beraz, inprimatu behealdean joan "Wanna Argibide HTML?" 981 01:05:18,070 --> 01:05:23,370 Ondoren, hurrengo errenkadan joan eta bukatu loop lehenengoa delako,, 982 01:05:23,370 --> 01:05:26,510 eta beraz, ondoren, da bigarren lerroan inprimatu egingo, 983 01:05:26,510 --> 01:05:32,120 hau da STAT110 izango, Momentos guztian bilatu. 984 01:05:32,120 --> 01:05:34,290 >> One azken gauza SQL urrakortasu da. 985 01:05:34,290 --> 01:05:37,300 Badakit David honetan ukitu hitzaldia pixka bat. 986 01:05:37,300 --> 01:05:40,730 Hau geroago irakurri ahal izango duzu. Benetan dibertigarria da. 987 01:05:40,730 --> 01:05:45,320 SQL Injection delikatua gauza mota bat da. 988 01:05:45,320 --> 01:05:49,890 Demagun makila besterik ez duzu duten aldagai horiek eskuineko zure kontsulta sartu, 989 01:05:49,890 --> 01:05:52,290 lehen lerroan ikus dezakezun bezala. 990 01:05:52,290 --> 01:05:54,520 Hain fina dirudi, ezta? Zu besterik erabiltzaile izena jarriz 991 01:05:54,520 --> 01:05:58,820 eta zure SQL kontsulta pasahitza, eta ontziratu off eta edozein dela zure datuak taulan da nahi duzun. 992 01:05:58,820 --> 01:06:01,450 Hori nahiko erraza dela dirudi. Beraz, aukera ematen esan norbait jartzen da, 993 01:06:01,450 --> 01:06:04,910 pasahitza, edo honen testua hementxe - 994 01:06:04,910 --> 01:06:06,780 benetan behar koadro gorri egon. 995 01:06:06,780 --> 01:06:11,920 Beraz, demagun pasahitza jarri dutela sartu - zer dute sartu. 996 01:06:11,920 --> 01:06:16,520 Beraz jarriz ari dira OR "1" = 1. 997 01:06:16,520 --> 01:06:20,880 Pasahitza silly bat behar-mota. 998 01:06:20,880 --> 01:06:25,070 Orain utzi ordezkatu Besterik ez, eta kontutan izan beharko duzu SQL kontsulta horretan, gaur egun, 999 01:06:25,070 --> 01:06:29,090 ebaluatzen beti egia da, zuk kontuan izan duelako izango dela 1000 01:06:29,090 --> 01:06:32,240 SQL kontsulta dezakezu informazio hori guztia hautatu 1001 01:06:32,240 --> 01:06:35,420 edo, besterik izan dezakezu 1 = 1. 1002 01:06:35,420 --> 01:06:41,030 Beraz, beti egia ebaluatzeko. 1003 01:06:41,030 --> 01:06:46,610 Hori ez da benetan lanera joan, horrek esan nahi du hacker zure sistema apurtu daitekeelako. 1004 01:06:46,610 --> 01:06:49,300 Honen konponbidea da JDB Sistema erabiltzen duzula, 1005 01:06:49,300 --> 01:06:51,360 horrek esan nahi du galdera ikurrak erabili behar duzula, 1006 01:06:51,360 --> 01:06:53,350 hau da, zer duzu pset 7 erabilitako mutilak, 1007 01:06:53,350 --> 01:06:57,620 non zauden, galdera-marka bat erabiltzea non zerbait jarri nahi duzun tokira joan, 1008 01:06:57,620 --> 01:07:01,430 eta orduan goazen koma bat izan da, eta, ondoren, gero duzu, 1009 01:07:01,430 --> 01:07:07,610 Zure katea ondoren, nahi duzun ezberdinak aldagai zure galdera marka sartu ordezkatu. 1010 01:07:07,610 --> 01:07:10,330 Beraz, kontuan izan duzu hemen, orain galdera marka gorri horiek daukat. 1011 01:07:10,330 --> 01:07:15,420 Orduan, nire kateak ondoren aldagai jarri dut haiek ordezkatzeko ordena horretan gero ezagutzen dut, beraz. 1012 01:07:15,420 --> 01:07:18,470 Hori izango da ziur norbait ez bada hau atsegin, 1013 01:07:18,470 --> 01:07:24,050 eta egoera edo 1 = 1 dute, hori ziurtatu egingo du, 1014 01:07:24,050 --> 01:07:30,490 atzeko muturrean, ziurtatu ez da benetan SQL kontsulta apurtzen duten. 1015 01:07:30,490 --> 01:07:33,660 Ados, beraz, hori da nahiko asko, PHP eta SQL zurrunbilo handi bat. 1016 01:07:33,660 --> 01:07:41,520 Zuetako guztiei zorte onena, eta orain arte Ore 1017 01:07:41,520 --> 01:07:44,270 >> [Oreoluwatomiwa Babarinsa] Ongi guztiontzat. Denbora baino gehiago joan JavaScript batzuk 1018 01:07:44,270 --> 01:07:48,840 eta beste gauza batzuk oso azkar beraz, ez dugu eduki duzu gaur gauean. 1019 01:07:48,840 --> 01:07:56,930 Ikusteko Javascript-a. Bai. Ikusteko Javascript-a cool gauza baten antzeko zerbait da, purportedly. 1020 01:07:56,930 --> 01:07:59,090 Gauzak benetan behar duzu Javascript buruz jakin, Sort bezala 1021 01:07:59,090 --> 01:08:03,810 Bezeroaren aldeko zer da zure web app joan behar egiten bukaeran. 1022 01:08:03,810 --> 01:08:08,280 Gauza batzuk duzu besterik nahi ez zaintzeko denbora guztian zerbitzari aldean ez dago. 1023 01:08:08,280 --> 01:08:12,880 Apur interakzio guztiak, gauza bat nabarmenduz, zerbait desagertu egiten. 1024 01:08:12,880 --> 01:08:15,340 Benetan nahi ez zure zerbitzari hitz egin duten denbora guztian izan. 1025 01:08:15,340 --> 01:08:18,069 Eta hori batzuk ez da ere posible zerbitzari aldean egin. 1026 01:08:18,069 --> 01:08:21,899 Horregatik JavaScript antzeko zerbait behar dugu. 1027 01:08:21,899 --> 01:08:24,359 JavaScript buruz cool gauza: dinamikoki dago idatzitako. 1028 01:08:24,359 --> 01:08:27,149 Horrek esan nahi du zure programa horrek ez du jakin behar 1029 01:08:27,149 --> 01:08:30,970 zer, zehazki, aldagai noiz idatzi duzula. 1030 01:08:30,970 --> 01:08:34,510 Hura besterik ez da sort irudikatu da exekutatzen ari den bezala. 1031 01:08:34,510 --> 01:08:37,520 Hori buruz cool dira beste gauza: da kizkur giltza hizkuntza bat da, 1032 01:08:37,520 --> 01:08:41,359 horrek esan nahi du sintaxia C eta PHP antzekoa da. 1033 01:08:41,359 --> 01:08:47,050 Ez duzu askoz rework egin denean JavaScript ikasten ari zaren. 1034 01:08:47,050 --> 01:08:49,180 Hemen JavaScripten apur bat behar dugu. 1035 01:08:49,180 --> 01:08:52,560 Hementxe gauza interesgarria da, begiratzen baduzu ere, 1036 01:08:52,560 --> 01:08:56,330 Ikusteko Javascript-a apur bat izan genuen bertan burua etiketa batean. 1037 01:08:56,330 --> 01:08:59,479 Zer da ez da, funtsean, besterik gabe, besteak JavaScript fitxategi bat. 1038 01:08:59,479 --> 01:09:02,260 Hau modu batean Javascript sar ditzakezu zure programan sartu da. 1039 01:09:02,260 --> 01:09:06,910 Ondoren, bigarren pixka da, benetan inline JavaScript batzuk, 1040 01:09:06,910 --> 01:09:10,790 Oso inline estilo bat CSSrekin antzekoa, 1041 01:09:10,790 --> 01:09:16,180 eta zu besterik kodea batzuk idazten duzunean oso azkar han. 1042 01:09:16,180 --> 01:09:18,120 JavaScript arrayak ditu. 1043 01:09:18,120 --> 01:09:20,850 Besterik gabe, beste modu datuak inguruan mantentzeko, oso erabilgarria. 1044 01:09:20,850 --> 01:09:25,180 Oso polita eta erraza sintaxia. 1045 01:09:25,180 --> 01:09:29,870 Kortxete erabili duzun guztia sartzeko eta dena mantentzeko elkarrekin. 1046 01:09:29,870 --> 01:09:35,020 Ezer ez da gehiegi konplexua. 1047 01:09:35,020 --> 01:09:38,630 JavaScript eta script hizkuntzak orokorrean buruz cool gauza 1048 01:09:38,630 --> 01:09:40,920 da ez duzula izan array tamainak kezkatu. 1049 01:09:40,920 --> 01:09:43,880 Besterik array.length erabili dezakezu eta segimendua, 1050 01:09:43,880 --> 01:09:46,960 eta, gainera, array hazten edo txikitu behar duzun bezala dezake. 1051 01:09:46,960 --> 01:09:49,279 Beraz, ez duzu ere edozein moduko kezkatu behar duzun, 1052 01:09:49,279 --> 01:09:57,050 oh ez, gauza gehiago, edo horrelako ezer esleitu behar dut. 1053 01:09:57,050 --> 01:10:00,090 >> Cool gauza Hemen da JavaScript objektuak izeneko zerbait du. 1054 01:10:00,090 --> 01:10:04,800 Objektuetara bideratutako hizkuntza bat da, beraz zer du da, funtsean, 1055 01:10:04,800 --> 01:10:10,100 zuretzat modu bat talde datuen elkarrekin, zertxobait egiturari baten antzekoa, 1056 01:10:10,100 --> 01:10:17,280 baina egitura bat bezala edo elkartze-array sintaxia batean sartu ahal izango duzu. 1057 01:10:17,280 --> 01:10:22,520 Nahiko erraza da eta zer egin dezakezu taldearen datuak bildu da 1058 01:10:22,520 --> 01:10:24,810 hori da gaiaren inguruko informazio mordo bat bada. 1059 01:10:24,810 --> 01:10:26,850 Auto bat azaldu behar duzu gauza guztiak delako, 1060 01:10:26,850 --> 01:10:29,050 ez duzu behar du izan leku desberdinetan sorta batean. 1061 01:10:29,050 --> 01:10:35,300 Duzu besterik itsasten daiteke 1 JavaScript objektu sartu. 1062 01:10:35,300 --> 01:10:39,090 Seguruenik ezagutzen duzun bezala, errepikatzean aspergarriak egiten horietakoa da. 1063 01:10:39,090 --> 01:10:43,810 Egin besterik ez duzu gainetik bat baino gehiago berriro. Objektu guztietan hitz autoan behar duzu, 1064 01:10:43,810 --> 01:10:47,340 edo elementu guztietan zehar joan-zerrenda bat edo horrelako zerbait behar duzu. 1065 01:10:47,340 --> 01:10:51,770 Beraz JavaScript ditu, PHP, foreach sintaxia antzekoa. 1066 01:10:51,770 --> 01:10:54,590 Kasu honetan, bat da begizta batean. 1067 01:10:54,590 --> 01:10:57,300 Hau erabili ahal izateko objektuak bakarrik nahi duzun. 1068 01:10:57,300 --> 01:11:01,030 Hau erabiltzen baduzu arrayak gertatzen diren arazo batzuk daude. 1069 01:11:01,030 --> 01:11:03,750 Oro har, gauza horietako bat da, ordea, eta hori oso baliagarria, 1070 01:11:03,750 --> 01:11:06,590 gardenki asko desagerrarazi duzulako 1071 01:11:06,590 --> 01:11:10,270 ez duzulako izan tira guztia zure objektu batean, zuk zeuk. 1072 01:11:10,270 --> 01:11:12,300 Ez duzu gako-izen guztiak gogoratzeko. 1073 01:11:12,300 --> 01:11:18,270 Sort besterik lortuko duzu berriro sintaxia honetan. 1074 01:11:18,270 --> 01:11:21,500 Honetan, batera, besterik gogoratu nahi duzun 1075 01:11:21,500 --> 01:11:27,180 duten gakoak guztiak atzera ari zaren lortzean, taula hash oso antzeko modu batean. 1076 01:11:27,180 --> 01:11:30,880 Gogoratu baduzu horretatik aurrera, duzunean kate batean jartzea litzateke zerbait lor ditzaketen duzu 1077 01:11:30,880 --> 01:11:33,840 duten elkartuak berarekin balioa izango du. 1078 01:11:33,840 --> 01:11:36,360 Zer honekin egin dezakezu esan dezakezu, eskubidea, 1079 01:11:36,360 --> 01:11:42,120 Jarri auto batean dut, eta Ferrari bat deitu nuen. 1080 01:11:42,120 --> 01:11:45,290 Beraz, katea Ferrari jarri dezakezu beranduago, eta hori lortu ahal izango duzu. 1081 01:11:45,290 --> 01:11:50,000 Eta hori egin dezakezu begizta batean, begizta batean ari. 1082 01:11:50,000 --> 01:11:53,320 Beraz, besterik gabe objektuak buruz. Gogoratu behar duzu honetatik funtsezko gauza 1083 01:11:53,320 --> 01:12:00,340 dela sintaxia bezalako objektu eta egitura erabili ahal izango dituzu, betiere, nahi hauekin duzu, 1084 01:12:00,340 --> 01:12:04,590 zer kate gisa erabili zure joatea ez da baliozko izena aldakorra bada izan ezik. 1085 01:12:04,590 --> 01:12:07,650 Beraz begiratzen baduzu ez dagoela at, espazio gako dugu. 1086 01:12:07,650 --> 01:12:12,500 Beno, object.key jarri zinen, espazioa, batera, espazioa, espazio, 1087 01:12:12,500 --> 01:12:15,320 hori besterik ez luke zentzurik sintaktikoki. 1088 01:12:15,320 --> 01:12:22,730 Beraz, zuk bakarrik egin dezakezu parentesi sintaxia moduko honekin. 1089 01:12:22,730 --> 01:12:26,520 >> Gainera, Javascript Oso esparrua-jakintsua PHP da. 1090 01:12:26,520 --> 01:12:29,050 2 esparrua aurre egiteko bitarteko duzu. 1091 01:12:29,050 --> 01:12:31,960 Ezin duzu var dute aldagai baten aurrean, 1092 01:12:31,960 --> 01:12:34,060 eta bakarrik esan nahi du, hau da, globala. 1093 01:12:34,060 --> 01:12:37,050 Duen edozein lekutatik ikusi ahal izango duzu. Hau jarri adierazpen bat izanez gero izan ziren, nahiz eta, 1094 01:12:37,050 --> 01:12:42,430 edonon zure kodea, bestela, puntu horretatik aurrera aldagai hori ikusi du. 1095 01:12:42,430 --> 01:12:46,730 Beste gauza bat, nahiz eta, var duena da, edozein funtzio sartu Oraindik duzun mugatzen da 1096 01:12:46,730 --> 01:12:48,870 Oraindik ez bazara funtzio batean, ondo, globala da. 1097 01:12:48,870 --> 01:12:53,900 Baina zuri funtzio bat bada funtzio horren barruan bakarrik ikusten da. 1098 01:12:53,900 --> 01:12:56,420 Ez dut adibide bat, baina, bai. Ez da gauza horiek bat non 1099 01:12:56,420 --> 01:12:59,900 kudeatu ahal izango duzu zer aldagai global izan nahi duzun, 1100 01:12:59,900 --> 01:13:03,810 zer tokiko izan nahi duzun, baina agian ez duzu hau kontuz aldagaiak, 1101 01:13:03,810 --> 01:13:06,890 ez duzulako alea kontrol fina C egin duzun mota izan, 1102 01:13:06,890 --> 01:13:15,820 non zerbait da batean izendatu bada loop, nik nahi duten egonaldia loop joan. 1103 01:13:15,820 --> 01:13:18,790 Gauza benetan JavaScript erabiliz arduratzen gara Web orrietan manipulatuz, ezta? 1104 01:13:18,790 --> 01:13:21,800 Esan nahi dut, horregatik egiten ari gara. 1105 01:13:21,800 --> 01:13:23,840 >>, Hori DOM izeneko zerbait erabili dugu egiteko. 1106 01:13:23,840 --> 01:13:25,850 Dokumentutik Objektu Modelo. 1107 01:13:25,850 --> 01:13:29,430 Funtsean, zer egiten da zure HTML guztiak hartzen du 1108 01:13:29,430 --> 01:13:34,110 eta eredu da, bata bestearen barruan habiaratuta objektu sorta bat sartu. 1109 01:13:34,110 --> 01:13:37,080 Hasten zara, honen antzeko zerbait dirudi. 1110 01:13:37,080 --> 01:13:44,770 Duzu, eskubidea dute on niretzat, kodea mordo bat dago out Sort - 1111 01:13:44,770 --> 01:13:46,640 Oso zaila da manipulatu behar genuke uste duzu, 1112 01:13:46,640 --> 01:13:48,700 duzu behar analizatzean litzaidake delako testu-sorta baten bidez 1113 01:13:48,700 --> 01:13:52,080 eta gain pieza gauza izatea. Eta zer ez dute behar bezala formateatua izan zen bada? 1114 01:13:52,080 --> 01:13:54,880 Txarra gauzak gertatuko litzateke. 1115 01:13:54,880 --> 01:13:58,140 Beraz JavaScript atenditzen honen zuretzat, eta datu-egitura polit bat lortuko duzu, 1116 01:13:58,140 --> 01:14:01,390 nire ezkerretara, non dokumentu bat besterik ez duzu bat bezala, 1117 01:14:01,390 --> 01:14:03,530 eta hori barrutik HTML, zerbait behar duzu, 1118 01:14:03,530 --> 01:14:05,600 eta hori barruan buru bat eta gorputz bat behar duzu, 1119 01:14:05,600 --> 01:14:08,420 eta burua barruan titulu bat behar duzu, etcétera, etcétera, etcétera. 1120 01:14:08,420 --> 01:14:11,810 Hau web orri bat manipulatuz, beraz, besterik ez da errazten du, 1121 01:14:11,810 --> 01:14:14,190 oh, besterik gabe, objektu hau hitz egin nahi dut. 1122 01:14:14,190 --> 01:14:21,340 Sort zeuk egin duzu beste objektu zurekin hitz egingo litzateke oso antzeko modu bat. 1123 01:14:21,340 --> 01:14:25,980 Esan dudan bezala, DOM guztian dokumentuaren objektu da. 1124 01:14:25,980 --> 01:14:29,290 Edo, besterik gabe, leku bat da eta, ondoren, bere baitan joan daiteke gauzak aurkitzea, 1125 01:14:29,290 --> 01:14:33,880 eta egin dezakezu - hori egiten, han estilo zaharra da, 1126 01:14:33,880 --> 01:14:38,130 non egiten duzu document.getElementById, eta, ondoren, izena, 1127 01:14:38,130 --> 01:14:42,420 eta seguruenik esan ahal bezala, hau oso unwieldy lortzen pixka bat ondoren. 1128 01:14:42,420 --> 01:14:44,480 Beraz, ziurrenik zuk ez nahi horretarako. Horregatik behar dugu 1129 01:14:44,480 --> 01:14:48,760 hurrengo gauza buruz hitz egiteko, honen ondoren goaz. 1130 01:14:48,760 --> 01:14:52,510 Hemen funtsezko gauza da, hori guztia, elementu horiek guztiak duzu, ezta? 1131 01:14:52,510 --> 01:14:56,400 Beraz, agian nuen zerbait denean orriaren karga kolorea alda daiteke. 1132 01:14:56,400 --> 01:14:58,380 Beraz, zer? Zer gertatuko da erabiltzaileari zerbait klik egiten bada? 1133 01:14:58,380 --> 01:15:00,540 Zerbait interesgarria egin behar da zerbait egin klik nahi dut. 1134 01:15:00,540 --> 01:15:02,600 Horregatik ekitaldiak dugu. 1135 01:15:02,600 --> 01:15:05,330 Dezakezu, funtsean, aurkitu zure DOM edozein elementu, 1136 01:15:05,330 --> 01:15:08,560 eta gero esan, beno. Hau kargatzen denean edo norbait clicks da, 1137 01:15:08,560 --> 01:15:11,410 edo direnean sagua haren gainean, egin ezazu zerbait. 1138 01:15:11,410 --> 01:15:15,330 Eta zer behar duzun, duzu kudeatzeko hau zuretzat funtzioak. 1139 01:15:15,330 --> 01:15:17,980 Funtzio horiek gertaera kudeatzaileen dira. 1140 01:15:17,980 --> 01:15:20,440 Zer they're - esaten modu fancy bat besterik ez da, 1141 01:15:20,440 --> 01:15:23,500 funtzio honetan bakarrik exekutatzen da gertaera hau gertatzen da. 1142 01:15:23,500 --> 01:15:28,070 Beraz, hori gertatzen da gertaera heldulekuak. 1143 01:15:28,070 --> 01:15:30,810 Hau da, nola arautuko zenuke gertaera kudeatzailea bat. 1144 01:15:30,810 --> 01:15:34,750 Botoi batzuk izan nuen, eta bertan sakatzen duzunean, lehertzen. 1145 01:15:34,750 --> 01:15:40,560 Beraz, ez sakatu botoia. 1146 01:15:40,560 --> 01:15:42,910 Hau da hurbiltzeko modu bat da, ezta? 1147 01:15:42,910 --> 01:15:46,430 Button etiketa bat behar duzu, eta klik on katea dioen duzu, 1148 01:15:46,430 --> 01:15:50,460 oh, bide batez, eztanda gauza hau egiten dut niretzat. 1149 01:15:50,460 --> 01:15:53,990 Bestela, besterik gabe botoi erregular bat egin besterik ez duzu bezala. 1150 01:15:53,990 --> 01:15:56,550 Zuk ere egin dezakezu beste modu bat, 1151 01:15:56,550 --> 01:16:02,770 DOM elementu grabbing, baina gorde egingo dugu duten jQuery buruz hitz egin dugu ondoren. 1152 01:16:02,770 --> 01:16:07,580 >> JQuery: liburutegi bat duten gurutze-nabigatzailea da. 1153 01:16:07,580 --> 01:16:09,580 Erabili ahal izango duzu nahiko askoz ezer in. 1154 01:16:09,580 --> 01:16:12,090 Eta lan tresna asko ematen besterik ez duzu. 1155 01:16:12,090 --> 01:16:15,850 JavaScript delako, indartsua, berriz, ez dauka behar duzun tresna guztiak 1156 01:16:15,850 --> 01:16:20,550 koadroan web app bat benetan aurre daudelarik baliteke egin nahi duzun. 1157 01:16:20,550 --> 01:16:24,650 Beraz, gauza asko sinplifikatzen da, funtzio asko ematen dizu 1158 01:16:24,650 --> 01:16:28,760 duzula normalean zeuk berriro idazteko, eta gehiago baino gehiago eta gehiagoko izan koadroan. 1159 01:16:28,760 --> 01:16:31,600 Eta besterik egiten gauza oso erraza. 1160 01:16:31,600 --> 01:16:35,780 Izan ere selectors, eta azkenean hartu duzu elementu horiek guztiak 1161 01:16:35,780 --> 01:16:42,800 Zure DOM askoz ere, besterik gabe, horren ordez funtzio deialdi oso luze hauetan erabili beharrik. 1162 01:16:42,800 --> 01:16:46,630 Selectors hauetan gehiago. Duzu, izan han dute, dizute esan 1163 01:16:46,630 --> 01:16:49,800 Elementu bat lortu du izena nahi dut "rock". 1164 01:16:49,800 --> 01:16:56,450 Beno, jQuery in, da bakarrik $ eta ondoren duten libera bat du kate bat, eta ondoren da "rock". 1165 01:16:56,450 --> 01:17:01,960 Oso erraza eta JavaScript arazo horri aurre egiteko modu tradizionalak baino askoz azkarragoa da. 1166 01:17:01,960 --> 01:17:06,120 Eta klaseak eta elementu motak antzeko gauzak egin behar duzu. 1167 01:17:06,120 --> 01:17:08,140 jQuery da - cool ezaugarri bat da ordenatzeko konprimitu duzu 1168 01:17:08,140 --> 01:17:14,350 Zure DOM buruzko zure zalantzak behera oso, oso azkar. 1169 01:17:14,350 --> 01:17:18,980 Orain i abiadura itzuli gara, eta hau da, jQuery gertaera bat nola kudeatu nahi duzun. 1170 01:17:18,980 --> 01:17:23,090 Beraz, zer hemen goaz, esaten ari gara guztiak ondo. Script etiketa bat dut, ezta? 1171 01:17:23,090 --> 01:17:25,400 Beraz inline honek JavaScript behar dut. 1172 01:17:25,400 --> 01:17:27,750 Zer egin behar dugu, ari gara guztiak ondo esan du,. 1173 01:17:27,750 --> 01:17:30,860 Noiz dokumentua prest, eta horrek esan nahi dokumentua da kargatu, da 1174 01:17:30,860 --> 01:17:34,660 joateko funtzio hori ditugu, eta, esateko eskubidea guztiak goaz, 1175 01:17:34,660 --> 01:17:37,060 funtzio hori benetan beste zerbait egiten. 1176 01:17:37,060 --> 01:17:42,320 Funtsean esaten, eskubidea, get me IDarekin elementua "myid." 1177 01:17:42,320 --> 01:17:47,960 Eta ondoren ematen dioten bertan sakatzen duzunean exekutatzen funtzioa handler hau. 1178 01:17:47,960 --> 01:17:49,820 Funtsean, hau ez da, dio, eskubidea. 1179 01:17:49,820 --> 01:17:52,630 Orria berriz kargatzen da, beraz, aurkituko elementu honen noa, 1180 01:17:52,630 --> 01:17:56,420 eman gertaera kudeatzaile hau, eta, batez ere ezartzen du gora zure orrian zuretzat. 1181 01:17:56,420 --> 01:18:00,520 Eta hau da, nola i abiadura pentsatu nahi duzu. 1182 01:18:00,520 --> 01:18:06,310 Pentsatu nahi besterik ez duzu, eskubidea, zerbait gertatzen denean, zer gertatuko nahi dut? 1183 01:18:06,310 --> 01:18:10,520 Ez duzu pentsatu nahi, ados, ziur gauza honen hitzaldiak egiteko gauza hau behar dut, 1184 01:18:10,520 --> 01:18:14,660 gauza hau blah blah blah, gauza hitz egiteko ekitaldiak dagokionez besterik nahi ez duelako. 1185 01:18:14,660 --> 01:18:17,650 Hau gertatzen denean, hau gertatzen. Hau gertatzen denean, hori gertatzen. 1186 01:18:17,650 --> 01:18:20,240 Eta gauzak beste gauza batzuk eragin bada, handia da. 1187 01:18:20,240 --> 01:18:22,150 Baina ez duzu nahi, eta saiatu egin konplikatuak kodea 1188 01:18:22,150 --> 01:18:24,130 non gauza anitz eragiteko ari zaren aldi berean, 1189 01:18:24,130 --> 01:18:28,860 besterik ez zaren zeure burua emateko buruhauste bat joan delako. 1190 01:18:28,860 --> 01:18:32,340 >> Guztiak eskubidea. Orain lor dezakegu gure orri ekitaldiak kudeatzeko, 1191 01:18:32,340 --> 01:18:35,640 baina demagun nire erabiltzaileari botoi bat sakatzen. 1192 01:18:35,640 --> 01:18:38,040 Zer eskaera bidaltzeko zerbitzaria itzuli nahi badut, 1193 01:18:38,040 --> 01:18:41,100 baina ez dut nahi orria berriz kargatzea eragingo du, orri berri bat birkargatu delako beharrik 1194 01:18:41,100 --> 01:18:44,390 aldi bakoitzean bakarra lortzen nafarrera mota, eta zergatik behar dut 1195 01:18:44,390 --> 01:18:47,430 berriro behera tira goiburua eta orri-oina, berriro ere, 1196 01:18:47,430 --> 01:18:49,670 eta orriaren elementu guztiak berriro 1197 01:18:49,670 --> 01:18:53,180 besterik agurra edo denbora freskatzeko? 1198 01:18:53,180 --> 01:18:55,290 Beraz, horregatik Ajax antzeko zerbait daukagu. 1199 01:18:55,290 --> 01:18:59,150 Hemen zer egin dezakegun Ajax duena esan dezake, dugun eskubidea, 1200 01:18:59,150 --> 01:19:01,290 Datu batzuk bidaltzeko zerbitzariari nahi dut, 1201 01:19:01,290 --> 01:19:04,010 eta erantzun bat lortzeko back beraz dut nire orrialdera egunera dezake nahi dut, 1202 01:19:04,010 --> 01:19:12,120 edo agian soilik zenbait kalkulu algoritmikoak ez duela zertan ezer erakutsi erabiltzaileari egin. 1203 01:19:12,120 --> 01:19:15,500 Zer egin behar duzu? Beno, hitz egin behar duzu URL bat behar duzu. 1204 01:19:15,500 --> 01:19:18,650 Zure zerbitzariak ezin besterik magikoki entzuteko in ezerezetik. 1205 01:19:18,650 --> 01:19:21,960 Toki jakin batean datu hau bidaltzen ari zaren izan behar duzu. 1206 01:19:21,960 --> 01:19:26,240 Eta, gainera, bidaltzeko datu batzuk behar duzu, edo agian dataless kontsultaren bat da. 1207 01:19:26,240 --> 01:19:31,380 Zerbitzariari ping atzera eta esan nahi besterik ez duzu, beno, bizirik, edo horrelako zerbait naiz. 1208 01:19:31,380 --> 01:19:35,150 Eta, ondoren, funtsean arrakasta maneiatzen funtzio bat nahi duzun. 1209 01:19:35,150 --> 01:19:38,250 Demagun informazio batzuk atzera zure zerbitzaritik duzu, 1210 01:19:38,250 --> 01:19:42,960 eta euren orrialdean erabiltzailearen izenburua aldatu nahi duzu. 1211 01:19:42,960 --> 01:19:44,930 Beraz, informazioa lortzeko itzuli nahi duzun, 1212 01:19:44,930 --> 01:19:48,860 eta hori bultza nahi duzun pantailara. 1213 01:19:48,860 --> 01:19:51,170 Zer gertatzen da, orrialde bat prest dago, 1214 01:19:51,170 --> 01:19:56,500 batean klik funtzioa sortzen duzunean botoi hau da ongietorri deitzen da. 1215 01:19:56,500 --> 01:19:58,810 Zer hau ondoren egiten da, botoi horrek bultzatu denean, 1216 01:19:58,810 --> 01:20:03,700 ra greetings.php hitz egin duzu, POST eskaera bat egin duzu, 1217 01:20:03,700 --> 01:20:07,290 eta, esaten duzu beno, get me zure orritik zerbait. 1218 01:20:07,290 --> 01:20:09,890 Ez duzu benetan behar duguna deskribatzeko, baina greetings.php, 1219 01:20:09,890 --> 01:20:12,480 dezagun, besterik gabe esan, espalda "kaixo mundua". 1220 01:20:12,480 --> 01:20:15,650 Beraz, atzera lortuko dugu "kaixo mundua", honetan eta honen arrakasta on, 1221 01:20:15,650 --> 01:20:20,730 suposatuz ezer ez doa oker, gero joan besterik ez dugu xede leku honetara 1222 01:20:20,730 --> 01:20:25,720 zehaztu dugu eta hori makila besterik ez dugu erantzuna bertan. 1223 01:20:25,720 --> 01:20:31,560 Eta hau Ajax kontsulta bat ezartzeko oso modu sinple bat da. 1224 01:20:31,560 --> 01:20:34,340 >> Oso azkar, Rob Sort aipatu hau dagoeneko, 1225 01:20:34,340 --> 01:20:37,170 gauzak gaizki joan daiteke, gauza txarrak gerta daiteke, 1226 01:20:37,170 --> 01:20:42,660 beraz, zeure burua ezagut HTTP erantzun kodeak hauekin nahi duzun. 1227 01:20:42,660 --> 01:20:46,030 Zer horiek ez dira besterik ez dira, hala nola, 200, dena ongi joan zen. 1228 01:20:46,030 --> 01:20:48,670 Beste zerbait, gauza txarrak gertatu. 1229 01:20:48,670 --> 01:20:50,790 Da, oro har, hura gogoratu nahi duzun gauza. 1230 01:20:50,790 --> 01:20:53,440 Baina polita da horiek guztiak ezagutzeko. 1231 01:20:53,440 --> 01:20:55,970 Eta, azkenik, behin hori guztia bidez joan gara, 1232 01:20:55,970 --> 01:20:58,680 oso azkar hitz egiteko diseinu buruz behar dugu, 1233 01:20:58,680 --> 01:21:00,620 eta, ondoren, utzi duzun guztia utzi ahal izango dugu. 1234 01:21:00,620 --> 01:21:03,410 Diseinua. Gogoratu nahi duzun gauza. 1235 01:21:03,410 --> 01:21:06,950 Galdetu zeure buruari galdera hauek: Nor egon hau erabiltzen dituzu? 1236 01:21:06,950 --> 01:21:09,580 Zer egingo dute batez erabiliko duzu? Zer nire erabiltzaile buruzko zaintzeko? 1237 01:21:09,580 --> 01:21:11,750 Zer ez arduratu dira? 1238 01:21:11,750 --> 01:21:14,500 Duzu besterik nahi ez aplikazio bat egiteko eta utzi hazten, besterik ez da 1239 01:21:14,500 --> 01:21:18,270 eta erraldoi honek, kontsumitzen gauza ezin duzula nahiz eta amaitzeko bihurtu. 1240 01:21:18,270 --> 01:21:23,900 Helburuak eta planak eta gauza diskretuak Helbidera nahi duzu nahi duzun. 1241 01:21:23,900 --> 01:21:29,000 Egin ezazu effortless. Horrek guztiak ez dio, funtsean, 1242 01:21:29,000 --> 01:21:34,950 erabiltzaileari hura erabiltzeko erraza da egiten: ez egin ezazu testuaren blob erraldoi bat da diapositiba honetan bezala, egia esan. 1243 01:21:34,950 --> 01:21:38,020 Nahi duzun zerbait non oso erraza da norbait joateko izango da 1244 01:21:38,020 --> 01:21:40,800 eta egin, zer egin nahi dute. 1245 01:21:40,800 --> 01:21:42,920 Ez duzu nahi 5 orrialdeetan nabigatzen behar horiek 1246 01:21:42,920 --> 01:21:45,460 zure zure webgunean funtzioa prime lortzeko. 1247 01:21:45,460 --> 01:21:49,290 Google 5 orriak izan bada aurretik nahiz zezakeen zerbait bilatu, 1248 01:21:49,290 --> 01:21:53,080 inork ez du erabiliko luke. 1249 01:21:53,080 --> 01:21:55,890 Eta azkenik, paper prototipoa, foku talde. 1250 01:21:55,890 --> 01:21:59,220 Diseinu ona eta azterketa praktika. 1251 01:21:59,220 --> 01:22:00,730 Zuretzat lan egiten dela uste duzu besterik ez delako, 1252 01:22:00,730 --> 01:22:04,860 ez du esan nahi inork pentsatzen funtzionatzen duen. 1253 01:22:04,860 --> 01:22:14,490 Baina bai, hori da. 1254 01:22:14,490 --> 01:22:17,490 [CS50.TV]