1 00:00:00,000 --> 00:00:02,440 [Powered by Google Translate] [Aste 7] 2 00:00:02,440 --> 00:00:04,730 [David J. Malan - Harvard Unibertsitatea] 3 00:00:04,730 --> 00:00:07,490 [Hau CS50 da. - CS50.TV] 4 00:00:07,490 --> 00:00:12,280 Guztiak eskubidea. Ongi etorri berriro. Hau CS50 da, eta hau da 7 aste hasieran. 5 00:00:12,280 --> 00:00:14,690 Iragarkiak txiki pare bat: 6 00:00:14,690 --> 00:00:18,150 Pset5 egiten ari da gaur egun, edo laster izango da, 7 00:00:18,150 --> 00:00:21,590 eta utzi me esan, nahiko zintzotasunez, hau ez challenging artean gehiago izan ohi 8 00:00:21,590 --> 00:00:24,460 Ikastaro arazo multzo, eta, beraz, let me aipatu orain 9 00:00:24,460 --> 00:00:28,190 beraz, aste honetan inoiz baino gehiago, ez duzu itxaron, esan, asteazken gauean 10 00:00:28,190 --> 00:00:29,920 edo osteguna gaueko sartu murgiltze 11 00:00:29,920 --> 00:00:32,369 Hau da, behin betiko interesgarri bat pset bat. Dibertigarria dela uste dugu. 12 00:00:32,369 --> 00:00:36,110 Benetan lortu bada zuzena guztiz eta ondoren deiturikoak Big Kontseiluko erronka, 13 00:00:36,110 --> 00:00:39,830 aukera izango duzu bat AZKARTASUNAK dator ikastaroa langile batzuk 14 00:00:39,830 --> 00:00:41,620 eta zure ikaskideen batzuk. 15 00:00:41,620 --> 00:00:44,670 Zer da Big Kontseiluak behin zure spell-checker lan egiten duzu, 16 00:00:44,670 --> 00:00:48,860 joan cs50.net komando bat exekutatzen ari ondoren ahal izango duzu, 17 00:00:48,860 --> 00:00:52,430 guztiz aukera, eta, ondoren, zenbatekoa eta RAM zenbatekoa eta gehiago 18 00:00:52,430 --> 00:00:56,130 zure ezartzeko erabili duzu hemen ikusgai izango da ikastaroaren hasiera-orrian. 19 00:00:56,130 --> 00:00:59,740 Folks horiek hemen sorta oso bat nabarituko diren langile bezala zerrendatuta duzu 20 00:00:59,740 --> 00:01:04,220 asteburuan zehar aurrera, langileak uste fun bata bestearen outdo saiatuko litzateke. 21 00:01:04,220 --> 00:01:07,390 Beraz, konturatu helburua hemen hori ez da langileen outdo. 22 00:01:07,390 --> 00:01:09,790 Nahiz eta soilik hemen nago 13. 23 00:01:09,790 --> 00:01:13,790 Hutsa aukera, baina aukera bat da zein gutxi RAM 24 00:01:13,790 --> 00:01:16,790 eta nola batzuk CPU segundotan vis-a-vis zure ikaskideen batzuk erabili ahal izango dituzu. 25 00:01:16,790 --> 00:01:20,540 >> Eta hori Kevin Michael Schmid onartzen dut, 26 00:01:20,540 --> 00:01:23,750 Une honetan 1 zenbakia TFS, posizioa, 27 00:01:23,750 --> 00:01:28,120 hau da inplementazio bat deitzen dugun ez da posible 28 00:01:28,120 --> 00:01:32,700 eman zuela ia 0 RAM eta ia 0 seconds loading. 29 00:01:32,700 --> 00:01:35,670 Beraz, Kevin offline zaindu dugu. [Barreak] 30 00:01:35,670 --> 00:01:40,950 Badira zenbait trebetasun Kevin proba hori hemen jarriz. 31 00:01:40,950 --> 00:01:45,280 Ez genuke pentsatu genuen gauza bat ere orain CS50x egiten ari da aste bat, 32 00:01:45,280 --> 00:01:49,520 eta you guys askoz esperimentu honetan parte hartzen duten ikasleentzat dira. 33 00:01:49,520 --> 00:01:53,720 Eskatu dugu euren pset0 zati gisa, hain zuzen, era berean, Scratch proiektu bat aurkeztu 34 00:01:53,720 --> 00:01:58,280 horiek interes joko bat, artearen pieza interaktibo bat, animazio bat, edo antzeko - 35 00:01:58,280 --> 00:02:03,700 1 - 2 minutuko bideoa, nahi izanez gero, kaixo esaten munduko eta nor dira benetan. 36 00:02:03,700 --> 00:02:06,780 Nuke zurekin partekatu bideoak pare bat besterik ez dira aurkeztu, beraz, orain arte pentsatu nuen 37 00:02:06,780 --> 00:02:10,759 Gurekin, langileek ere, gutxienez, du benetan da zirraragarria 38 00:02:10,759 --> 00:02:14,220 eta inspiratzailea Folks horiek ikusi ahal izateko, mundu osoan zehar, mundu osoko herrialde 39 00:02:14,220 --> 00:02:18,160 findu, gauza guztiak, informatika Internet ikastaroa, 40 00:02:18,160 --> 00:02:20,410 ote den, nahi dute beren ikasketak jarraitu nahi duelako, 41 00:02:20,410 --> 00:02:22,300 euren ibilbidean norabide berri bat hartu nahi dute, 42 00:02:22,300 --> 00:02:24,390 beren ezagutza hutsuneak bete nahi dute, 43 00:02:24,390 --> 00:02:27,190 arrazoi bera duzu guys agian, hemen izan dira batzuk. 44 00:02:27,190 --> 00:02:31,090 >> Beraz, ematen dizut hemen bat adibidez ikaslea. Goratzeko bolumena izan besterik ez duzu pixka bat. 45 00:02:31,090 --> 00:02:35,520 Hemen eta da gure ikasle 1 minutu bidalketak bat. 46 00:02:35,520 --> 00:02:40,380 Kaixo, mundua. Ingeniaritza industrial hemen Malaga, Espainia ikaslea naiz. 47 00:02:40,380 --> 00:02:45,840 Ikastaro hau online hunkituta nago I love informatika delako, egin dut, 48 00:02:45,840 --> 00:02:48,880 eta benetan eskertzen dut lortu dut esploratzeko. 49 00:02:48,880 --> 00:02:51,940 Izan ere, bera duzu guys egin dut ikas daiteke 50 00:02:51,940 --> 00:02:57,040 baina Harvard Malaga nago izatearen ordez, nola awesome da hori? 51 00:02:57,040 --> 00:03:02,040 Beno, Fernando naiz, eta hau da CS50. Ikusi duzu guys. 52 00:03:02,040 --> 00:03:07,100 [Barreak] clip beste bereziki gustuko dugu, gentleman hau ez da hain sendoa English duzu. 53 00:03:07,100 --> 00:03:11,520 Zuen itzulitako makina da dirudienez, itzulpen beraiek pixka bat Inperfektua dira, beraz, 54 00:03:11,520 --> 00:03:15,790 baina hori gure gogokoenetako bat izan zen, beraz, urrun baita. 55 00:03:25,080 --> 00:03:29,980 [♪ ♪] 56 00:03:29,980 --> 00:03:32,370 Kaixo, mundua. [Japoniako hitz egiten] 57 00:03:32,370 --> 00:03:39,830 [I Japoniako agurtu nire ingelesa oso ezinda delako.] 58 00:03:39,830 --> 00:03:45,380 [I entregatu mezu Gifu hiria, Japonia. 59 00:03:45,380 --> 00:03:49,820 [I lehen aldiz ikaslea izan daiteke azken 20 urteetan, ikusi ahal izango da.] 60 00:03:49,820 --> 00:03:54,640 [Harvard Unibertsitateko oso eskertzen duten aukera eman dit hau eta edX naiz. 61 00:03:54,640 --> 00:04:01,510 [Golf gitarra bat da, eta nire gogoko gauza exekutatzen ari.] [Barreak] 62 00:04:01,510 --> 00:04:05,750 [♪ ♪] 63 00:04:05,750 --> 00:04:10,790 [Zergatik cs50x joateko nintzen saiatzen ari dela uste duzu.] 64 00:04:10,790 --> 00:04:14,990 [Harvard Unibertsitatea, nire irrika da.] 65 00:04:14,990 --> 00:04:19,740 [Bereziki naiz urrutiko presentzia Japonian bizi izan zen.] 66 00:04:19,740 --> 00:04:26,680 [Berehala edX adibidez. Existentziaren jakitun saiatu nahi nuen] 67 00:04:26,680 --> 00:04:32,500 [Ez Baietz uste duzu I. ikasteko adina ez] 68 00:04:32,500 --> 00:04:38,350 [Cs50 nire irrika da. Nire izena Kazu da, eta, hau da cs50. 69 00:04:38,350 --> 00:04:43,090 [♪ ♪] [txaloak eta txaloak] 70 00:04:43,090 --> 00:04:49,220 Gure gogoko Another aurkezteko hemen norbait izan da. 71 00:04:51,070 --> 00:04:55,380 [♪ ♪] [Malan] Google da Oraindik baduzu meme honekin ezezagunetan. 72 00:04:55,380 --> 00:05:01,480 >> Eta gero, azkenik, beste batzuk got posted beharbada saria irabazi adorable pare bat. 73 00:05:01,480 --> 00:05:06,820 [Ikasle] Aww! >> [Malan] entzun izan dugu. Hau laburra da, eta, beraz, entzun estuki. 74 00:05:08,580 --> 00:05:11,150 [Emakumezkoak hizlari] Zein da zure izena? >> Louie. 75 00:05:11,150 --> 00:05:16,120 [Emakumezkoak hizlari] Zer da hau? >> [Giggles] CS50. [Barreak] 76 00:05:16,120 --> 00:05:19,510 [Malan] bi zuen hartzen du, nahiz eta. 77 00:05:19,510 --> 00:05:22,240 Hemen, joan gara azken. 78 00:05:23,030 --> 00:05:26,980 Nire izena Louie da, eta hau da CS50. 79 00:05:26,980 --> 00:05:30,250 [Barreak] CS50x ondoren da. 80 00:05:30,250 --> 00:05:33,230 Eskerrik asko duten bitartean jarraituz batera etxean 81 00:05:33,230 --> 00:05:35,620 izan diren, beraz, orain arte partaking. 82 00:05:35,620 --> 00:05:39,510 Gaur egun, gure datu-egituren eztabaida amaituko dugu, 83 00:05:39,510 --> 00:05:41,160 gutxienez, oinarrizko batzuk, 84 00:05:41,160 --> 00:05:44,760 eta, ondoren, gure HTML eta web programazio buruzko elkarrizketa jarraituko dugu. 85 00:05:44,760 --> 00:05:48,520 Izan ere, zazpi aste batzuk gastatu dugu iraganeko programazioaren oinarriak begira 86 00:05:48,520 --> 00:05:50,450 algoritmoak, datu-egiturak, eta antzeko 87 00:05:50,450 --> 00:05:53,050 eta C, bizi duzu, beraz, orain arte, 88 00:05:53,050 --> 00:05:57,060 ez du zertan hizkuntza eskuratzeko 89 00:05:57,060 --> 00:05:59,090 ideia horietako batzuk martxan jarri ahal izateko. 90 00:05:59,090 --> 00:06:01,880 Eta, beraz, aste honetan eta datorren astean hasita, eta, ondoren, honako hau, 91 00:06:01,880 --> 00:06:07,110 azkenik trantsizioa egiteko gai gara C, oro har, nahiko behe-mailako hizkuntza gisa ezagutzen den, 92 00:06:07,110 --> 00:06:11,190 maila handiagoa, horiek PHP, JavaScript artean, eta antzeko gauzak, 93 00:06:11,190 --> 00:06:14,850 den marraztu dugu azken asteetan zehar ikasi dugun ikasgai berean gainean ikusiko dugu, 94 00:06:14,850 --> 00:06:19,430 baina aurkituko dituzu gauzak geratuko array eta hash taulak bezala eta bilaketa eta ordenatzeko 95 00:06:19,430 --> 00:06:23,370 bihurtu da beraz, askoz errazagoa da hizkuntza beraiek hasteko erabiltzen dugu 96 00:06:23,370 --> 00:06:25,290 indartsuagoa izango da. 97 00:06:25,290 --> 00:06:27,410 Baina, lehenik eta behin, zuhaitz-aplikazio bat. 98 00:06:27,410 --> 00:06:30,240 Oso ohikoa da egun hauetan, informazioa konprimitu behar. 99 00:06:30,240 --> 00:06:34,770 Zein testuinguruan informazio digital mota batzuk konprimitzeko nahi duzu? 100 00:06:37,190 --> 00:06:39,670 >> Bai. >> [Ikasleen] Web gainetik bidali behar duzu. 101 00:06:39,670 --> 00:06:41,450 Bai, Web gainean zerbait bidaltzeko nahi duzun. 102 00:06:41,450 --> 00:06:44,950 Big fitxategi berri bat deskargatu nahi duzun bada, norbaitek ezin hobea da, beste muturrean 103 00:06:44,950 --> 00:06:48,760 zip formatua edo horrelako zerbait konprimituta fitxategi hori erabiliz 104 00:06:48,760 --> 00:06:53,760 beraz, baliteke baino bestela transmititzen bit gutxiago ari bidaltzea. 105 00:06:53,760 --> 00:06:55,500 Beraz, nola ez informazioa konprimitu duzu? 106 00:06:55,500 --> 00:07:00,540 It guztiak irakiten behera dira baino default eskatzen bit gutxiago erabiliz. 107 00:07:00,540 --> 00:07:03,220 Baina hori gauza bitxi bat mota dela uste weeks 0 eta 1 itzuli delako. 108 00:07:03,220 --> 00:07:07,370 denean hitz egin dugu ASCII eta bitarra eta, bereziki, ASCII buruz hitz egin dugu 109 00:07:07,370 --> 00:07:10,690 8 bit erabiliz alfabetoaren letra irudikatzeko 110 00:07:10,690 --> 00:07:16,120 beraz, gutun A 65 by irudikatzen minuskula kopurua 97 da, 111 00:07:16,120 --> 00:07:21,210 eta, hala ere, 65 edo 97 ordezkatzen duzun, 7 edo 8 bit erabiltzen ari zarela. 112 00:07:21,210 --> 00:07:24,120 Baina harrapatzen ingeles alfabeto hizkiak batzuk daudela 113 00:07:24,120 --> 00:07:26,230 ez diren beste herri. 114 00:07:26,230 --> 00:07:31,600 Z ez da herri hori guztia, Q ez da herri hori guztia, baina A eta E super popular dira. 115 00:07:31,600 --> 00:07:37,280 Eta, hala ere, hizki hauek guztiak, berez mundu bit kopuru berdina erabiltzen du, 8. 116 00:07:37,280 --> 00:07:42,690 Beraz, ez luke izan smarter ordez letra bakoitzeko 8 bit erabiliz, 117 00:07:42,690 --> 00:07:47,440 nahiz eta gutxitan Q eta Z, adibidez, 118 00:07:47,440 --> 00:07:51,910 zer A eta E eta S eta letrak gehien erabiltzen dugu gutxiago bit 119 00:07:51,910 --> 00:07:55,000 eta gehiago erabiltzen da bit gutxiago popular letrak, 120 00:07:55,000 --> 00:07:57,770 ideia let komun kasuan optimizatzeko, 121 00:07:57,770 --> 00:08:01,160 informatika gaia zer gehien gertatuko optimizatzeko saiatzen da 122 00:08:01,160 --> 00:08:05,310 eta igarotzeko denbora gehiago pixka bat, pixka bat gehiago espazioa gauza, bai, agian gertatuko 123 00:08:05,310 --> 00:08:07,680 baina ez du zertan maiz. 124 00:08:07,680 --> 00:08:09,330 Beraz, dezagun adibide bat. 125 00:08:09,330 --> 00:08:12,610 >> Demagun nahi dugun informazioa kodetzeko nahiko modu eraginkorrean. 126 00:08:12,610 --> 00:08:15,090 Hazi dezakezu Morse kodea buruz zerbait apur bat jakitea, 127 00:08:15,090 --> 00:08:17,450 odds ez zenekien benetako kodea, 128 00:08:17,450 --> 00:08:21,750 baina gogoratzen da gutxienez puntuak eta marrak serie dezake. 129 00:08:21,750 --> 00:08:26,640 Adibidez, E - kodetze nahiko eraginkorra, eta iragarki gehien gutun 130 00:08:26,640 --> 00:08:28,980 erabiltzen soinua atera laburrena. 131 00:08:28,980 --> 00:08:31,740 Morse kodea bip-bip-bip-bip-bip-bip eta tonu eusten 132 00:08:31,740 --> 00:08:34,799 bai denbora edo denbora luzez epeak laburrak. 133 00:08:34,799 --> 00:08:40,330 E, puntua karakterearen bidez adierazten da, super labur beep, beep da, eta E. litzateke 134 00:08:40,330 --> 00:08:43,960 Aitzitik, T soinu bat luzeagoa izango litzateke, beep bezala [luzatzen soinu] 135 00:08:43,960 --> 00:08:45,710 eta hori T. litzateke 136 00:08:45,710 --> 00:08:48,840 Baina hori, oraindik ere nahiko laburra, ordea, izan ere, Z begiratzen baduzu, 137 00:08:48,840 --> 00:08:52,690 Z adierazteko beep, beep [longer soinu], beep, beep [laburragoa soinua] joan nahi duzun. 138 00:08:52,690 --> 00:08:55,360 Beraz, jada ez da hain arruntak delako. 139 00:08:55,360 --> 00:08:58,150 Baina Gotcha hemen, Morse kodea duten apur bat flawed 140 00:08:58,150 --> 00:09:00,610 ez da berehala decodable. 141 00:09:00,610 --> 00:09:07,350 Esate baterako, demagun alanbre beep amaieran batzuk entzuten duzula [laburrak], beep [luzera]. 142 00:09:07,350 --> 00:09:12,480 Zer mezua jaso dut? Puntu eta marratxo bat. Zer esan nahi du ordezkatzen dituzten? 143 00:09:12,480 --> 00:09:15,330 [Ikasleen] A. >> [Malan] Agian. 144 00:09:15,330 --> 00:09:18,270 Litekeena da ere E T. ondoren 145 00:09:18,270 --> 00:09:23,390 Beste era batera esanda, Morse kodea, leverages izkinan kasuan optimizatzeko printzipioa arren, 146 00:09:23,390 --> 00:09:26,250 ez du uzten bera berehalako decodability. 147 00:09:26,250 --> 00:09:29,850 Hau da, giza edo entzumen puntu horiek eta marratxorik jaso 148 00:09:29,850 --> 00:09:34,540 nolabait irudikatu non olatuen hizkien arteko 149 00:09:34,540 --> 00:09:39,660 ezagutzen ez baduzu, non-jauziak dira, nahastu delako A dakizukeela ET, edo alderantziz. 150 00:09:39,660 --> 00:09:43,880 >> Beraz, zer egin dezakezu? Morse kodea bakarrik ezin duzu letrak bakoitzaren artean eteten. 151 00:09:43,880 --> 00:09:47,660 Baina gelditzea gauzak bizkortzeko sortu osoa counter mota da. 152 00:09:47,660 --> 00:09:52,880 Beraz, zer ordez sortu ginen kode bat, non ez zen egoera hau txarra 153 00:09:52,880 --> 00:09:56,570 E aurrizki bat da, esate baterako, A 154 00:09:56,570 --> 00:10:00,020 beste era batera esanda, ziurtatu ereduak direla oraindik popular letrak labur genezake bada 155 00:10:00,020 --> 00:10:04,850 gutxiago popular letrak luzea da, baina ez da posible nahasmena? 156 00:10:04,850 --> 00:10:08,930 Huffman izena Gizon bat urte duela asmatu Huffman kodeketa izeneko eskema hau 157 00:10:08,930 --> 00:10:12,390 benetan leverages datu-egitura bat gastatu dugu, denbora pixka bat buruz hitz egiten 158 00:10:12,390 --> 00:10:16,560 iragan aste honetan, zuhaitzak, zuhaitz bitar zehazki - 159 00:10:16,560 --> 00:10:19,710 bitar zuhaitzaren esanahia du ez duela ez da 2 haur baino gehiago. 160 00:10:19,710 --> 00:10:22,720 Agian du ezker ume bat, agian, haur baten eskubidea, eta hori da. 161 00:10:22,720 --> 00:10:26,510 Beraz, eztabaida mesedetan demagun norbaitek mezu bat bidali nahi du 162 00:10:26,510 --> 00:10:31,270 itxura hau. Erabateko zentzugabekeria da, baina bezala osatzen da, Bs, Cs, Ds, eta Es. 163 00:10:31,270 --> 00:10:34,890 Eta benetan zenbatzen badituzu bezala, Bs, Cs, Ds, eta Es 164 00:10:34,890 --> 00:10:36,870 eta, ondoren, gutun kopuruaren arabera zatitzeko, 165 00:10:36,870 --> 00:10:42,710 txiki honetan taula hemen dio letrak% 45 Es dira,% 20 dira honela, 166 00:10:42,710 --> 00:10:45,010 % 10 Bs, eta abar. 167 00:10:45,010 --> 00:10:47,330 Beraz, beste era batera esanda, geure Aipatutako katea ez dagoela 168 00:10:47,330 --> 00:10:49,080 besterik ez da, batzuk bidali nahi duzun mezua. 169 00:10:49,080 --> 00:10:52,180 Zentzugabekeria izan gertatzen da, beraz, ahalik eta letra batzuk gisa erabili ahal izango dugu, 170 00:10:52,180 --> 00:10:55,220 baina, egia esan, kasu E geratzen gehien, 171 00:10:55,220 --> 00:11:01,450 eta B eta C dira popular, gutxienez, gutxienez alfabetoaren hizkiak 5 horiek-. 172 00:11:01,450 --> 00:11:04,040 Beraz, nola egin dezaket kodeketa bat datozen gara, 173 00:11:04,040 --> 00:11:08,430 kodeketa bitarra, 0 s eta 1s eredua gutun horietako bakoitzean 174 00:11:08,430 --> 00:11:14,820 E eredu bat laburra da, eta, agian, B eta C dira apur bat luzeagoa ereduak modu bat, hala nola, 175 00:11:14,820 --> 00:11:19,270 berriro ere, ideia gutxiago bit erabili nahi dugun denbora gehiena 176 00:11:19,270 --> 00:11:21,790 eta gehiago bit pixka bat behin bakarrik. 177 00:11:21,790 --> 00:11:26,070 Huffman kodeketa arabera, zuhaitz-baso bat sor dezakezu. 178 00:11:26,070 --> 00:11:31,190 Istorioa line bat sort hemen lan egiten duten zuhaitz eta baita horiek eraikitzeko prozesuan. 179 00:11:31,190 --> 00:11:32,420 Dezagun hasteko. 180 00:11:32,420 --> 00:11:36,140 >> Baso honekin hasteko, eta, beraz, hitz egiteko 5 zuhaitz proposatzen dut, 181 00:11:36,140 --> 00:11:38,260 eta horietako bakoitzak nahiko ergelak zuhaitz bat da. 182 00:11:38,260 --> 00:11:42,800 Zuhaitza da Nodo bakar bat, hemen gisa irudikatzen zirkulu batek osatzen dute. 183 00:11:42,800 --> 00:11:45,310 Beraz, gauza horietako bakoitzean C eta egitura bat izan daiteke 184 00:11:45,310 --> 00:11:50,200 eta C eta egitura barruan maiztasuna Aldaketa mugikor bat izan daiteke 185 00:11:50,200 --> 00:11:52,510 eta, ondoren, agian char letra ordezkatzen. 186 00:11:52,510 --> 00:11:56,470 Beraz, nodo horiek uste edozein C antzinako egitura gisa, baina, gaur egun, goi maila. 187 00:11:56,470 --> 00:12:01,230 5 zuhaitzak, soilik nodo bat bakarra bakoitzean baso bat da. 188 00:12:01,230 --> 00:12:06,830 Zer da Huffman proposatutako hasten dugu zuhaitz horiek konbinatu 189 00:12:06,830 --> 00:12:11,140 txikienaren maiztasuna zenbatzen zuhaitzak pixka bat handiagoak dituzten 190 00:12:11,140 --> 00:12:13,490 root berri nodo lotu. 191 00:12:13,490 --> 00:12:17,560 Beraz, letrak hemen artean, nabarituko erosotasunerako ordenatuko ditut ezkerretik eskuinera, 192 00:12:17,560 --> 00:12:21,420 hori ez da, nahiz eta erabat beharrezkoa da, eta aldez aurretik abisatu nodo txikiena 193 00:12:21,420 --> 00:12:23,930 Gaur egun,% 10 eta% 10. 194 00:12:23,930 --> 00:12:28,940 Beraz, Huffman proposatu duten 2 txikiena nodoak zuhaitz berri bat batu dugun 195 00:12:28,940 --> 00:12:34,450 guraso nodo berri bat sartzea, eta, ondoren, eman guraso hori ezker haur eta eskuineko ume bat 196 00:12:34,450 --> 00:12:37,720 non B arbitrarioan ezkerrera eta C arbitrarioki eskubidea. 197 00:12:37,720 --> 00:12:41,590 Eta gero Huffman gehiago proposatu dezagun hori orain ezker haurraren uste 198 00:12:41,590 --> 00:12:44,790 zuhaitz horietako bat, beti bezala ari 0 irudikatzen 199 00:12:44,790 --> 00:12:47,890 eta eskuineko seme-beti bezala 1. kopurua irudikatzen ari. 200 00:12:47,890 --> 00:12:50,680 >> Ez du axola irauli badituzu hainbeste denbora Oraindik duzun bezala koherentea. 201 00:12:50,680 --> 00:12:54,650 Beraz, gaur egun, lau baso honetan zuhaitz ditugu. 202 00:12:54,650 --> 00:12:58,050 Eta esango dizut, lau gaur egun delako, ezkerreko zuhaitza - 203 00:12:58,050 --> 00:13:00,570 eta ez da hainbeste hazten dela, modu honetan zentzua zuhaitz bat, 204 00:13:00,570 --> 00:13:05,170 familia zuhaitz bat non gaur egun 0,2 bi seme-alaben guraso sort bezala gehiago da 205 00:13:05,170 --> 00:13:07,930 nabarituko guraso horretan 0,2 marraztuko dugu. 206 00:13:07,930 --> 00:13:13,370 Gehitu dugu maiztasuna, bi seme-alaba ditu, eta guztira batura nodo berria eman. 207 00:13:13,370 --> 00:13:15,310 Beraz, gaur egun, errepikatu besterik ez dugu prozesu honetan. 208 00:13:15,310 --> 00:13:19,490 Bi nodo txikiena bilatu eta gero, zuhaitz berri bat sartu 209 00:13:19,490 --> 00:13:21,380 eta ondoren, errepikatu prozesua gehiago. 210 00:13:21,380 --> 00:13:26,390 Oraintxe gutxi hautagaiak,% 20,% 15, eta beste% 20 dugu. 211 00:13:26,390 --> 00:13:29,780 Kasu honetan, gorbata apurtu behar dugu. Egin ahal izango dugu arbitrarioki. 212 00:13:29,780 --> 00:13:31,540 Trinkoan besterik ez egin behar dugu. 213 00:13:31,540 --> 00:13:33,760 Kasu honetan, arbitrarioki dut ezkerreko batekin joan, 214 00:13:33,760 --> 00:13:39,880 eta batu, gaur egun,% 20 eta% 15,% 35 izeneko guraso berri bat emateko, 215 00:13:39,880 --> 00:13:46,310 horren ezkerreko seme-alabak 0, bere seme-alabak 1, eskuineko eta orain hiru basoko zuhaitzak dugu. 216 00:13:46,310 --> 00:13:47,960 Agian ikus dezakezu non honetan egingo da. 217 00:13:47,960 --> 00:13:51,150 Errepikatu dugu hau bada, pare bat aldiz, bakar bat zuhaitz handiagoa izan dugu, 218 00:13:51,150 --> 00:13:53,900 guztien horren ertz 0 s eta 1s etiketa. 219 00:13:53,900 --> 00:13:55,710 Egin dezagun berriro. 220 00:13:55,710 --> 00:14:02,600 % 35 zuhaitz horrek root da. % 20 eta% 45, eta, beraz,% 35 eta% 20 batu behar dugu. 221 00:14:02,600 --> 00:14:05,610 Orain Zuhaitz hau dugu hemen. Horiek gehitzen dugu elkarrekin,% 55 behar dugu. 222 00:14:05,610 --> 00:14:07,910 Gaur egun, bi basoko zuhaitzak besterik ez da. 223 00:14:07,910 --> 00:14:11,900 Hau azken aldiz bat egiten dugu, eta zorionez, matematikoki, maiztasun guztiak gehitu igo 224 00:14:11,900 --> 00:14:15,570 beharko dute geroztik dugulako kalkulatzen horiek lortzeko igo gehitzeko% 100. 225 00:14:15,570 --> 00:14:17,960 Eta zuhaitz bat behar dugu. 226 00:14:17,960 --> 00:14:20,580 Beraz, hau Huffman kodeketa zuhaitz bat da. 227 00:14:20,580 --> 00:14:24,400 Pixka bat hartu mota iritsi hitzez, baina errealitate bat da loop 228 00:14:24,400 --> 00:14:27,620 edo funtzioa errekurtsiboa, gauza hau eraiki ahal izango duzu up pretty azkar. 229 00:14:27,620 --> 00:14:32,440 Beraz, gaur egun berri bat nodo dugu, eta horiek barne nodo guztiak dira malloc'd 230 00:14:32,440 --> 00:14:34,690 ustez, bidean. 231 00:14:34,690 --> 00:14:38,650 Beraz, gaur egun% 100 zuhaitz honen goialdean dugu, baina orain konturatu bide bat dugu 232 00:14:38,650 --> 00:14:43,780 berri honen handi-handi-handi-aitona handi-handi-handi-biloba guztiak 233 00:14:43,780 --> 00:14:45,930 beheko aldean jarritako modu, hostoak. 234 00:14:45,930 --> 00:14:52,840 >> Zer da gaur egun ez dugu proposatzen gutun-E irudikatzeko, 235 00:14:52,840 --> 00:14:55,670 kopurua 1, besterik gabe, erabili egingo dugu. Zergatik? 236 00:14:55,670 --> 00:15:01,000 Zeharkatuko dugu zuhaitz hau root behin betiko E bezala ezagutzen hosto delako, 237 00:15:01,000 --> 00:15:06,050 bakar bat ertzean, eskuineko ertzetik jarraituko dugu, eta noski etiketatu goiko eskuineko 1. 238 00:15:06,050 --> 00:15:11,550 Beraz, inplikazioa hemen Huffman E binary kodeketa izango besterik ez da 1. 239 00:15:11,550 --> 00:15:14,490 Eta hori da pretty maldita eraginkorra. Ezin da benetan hori baino txikiagoa edozein. 240 00:15:14,490 --> 00:15:18,350 Por el contrario, A irudikatzen da, jarraitzen logika izanez gero, 241 00:15:18,350 --> 00:15:21,610 zer eredua bit ordez? 01. 242 00:15:21,610 --> 00:15:25,500 Beraz, A, erro hasiko dugu, eta utzi joaten gara, eta, ondoren, eskuinera joaten gara, 243 00:15:25,500 --> 00:15:28,580 horrek esan nahi du 0 jarraitu dugu, eta, ondoren, 1. 244 00:15:28,580 --> 00:15:32,810 Beraz, letra irudikatzeko izango dugu, A ereduarekin 0 eta 1. 245 00:15:32,810 --> 00:15:36,010 Eta orain konturatu dagoeneko badugu decodability berehalako propietate bat 246 00:15:36,010 --> 00:15:38,090 Morse kodea ez garela dute. 247 00:15:38,090 --> 00:15:42,840 Nahiz eta bi ereduak hauek nahiko laburrak dira - E 1 bit, 2 bit 248 00:15:42,840 --> 00:15:45,080 nabarituko dute ezin dela nahasi bat edo beste, 249 00:15:45,080 --> 00:15:54,870 ikusiko duzu 1 bada delako got E bat izan nahi du, ikusten baduzu, 0, 1 A. bat izan nahi du, jakina, lortu 250 00:15:54,870 --> 00:15:58,410 Era berean, zer da D? 001. 251 00:15:58,410 --> 00:16:01,440 Zer da C? 0001. 252 00:16:01,440 --> 00:16:05,320 Eta zer da B? 0000. 253 00:16:05,320 --> 00:16:09,550 Eta berriro ere, letrak buruz zaintzen dugu hostoak daudelako 254 00:16:09,550 --> 00:16:13,890 eta horietako bat ere ez middlemen mota root etatik hosto bidea, 255 00:16:13,890 --> 00:16:18,760 2 hizki kodeketen conflating arriskua ez da 256 00:16:18,760 --> 00:16:22,300 bit Zaindari hauek guztiak ez dira deterministak delako. 257 00:16:22,300 --> 00:16:25,280 0000 beti izango da B. izango 258 00:16:25,280 --> 00:16:29,480 Nodorik nonbait artean, beste gutun bat nahastu dezakezu. 259 00:16:29,480 --> 00:16:31,150 Beraz, zer inplikazio hemen? 260 00:16:31,150 --> 00:16:35,080 >> Gehien gutun - Kasu E hau - kodeketa laburrena ahaztuak, 261 00:16:35,080 --> 00:16:37,430 Du ahaztuak hurrengo laburrena kodeketa, 262 00:16:37,430 --> 00:16:41,390 eta B eta C, eta hori lortzeko-gutxienez popular joan ziren mota dagoeneko badugu bazekien 263 00:16:41,390 --> 00:16:45,390 maiztasuna% 10 bakoitzean, ahaztuak dute kodeketa luzeena. 264 00:16:45,390 --> 00:16:49,410 Nahi duzun, eta, beraz, horrek esan nahi du gaur egun den konprimituta mezu bat bidali nahi izanez gero 265 00:16:49,410 --> 00:16:51,950 Internet bidez edo posta elektroniko bat edo antzeko 266 00:16:51,950 --> 00:16:56,730 estandarra ASCII erabiliz ordez, Huffman kodetuak mezu bat bidali ahal izango duzu 267 00:16:56,730 --> 00:17:01,720 Horren bidez, nahi duzun hizkia E bidali nahi izanez gero, bakarra pixka bat bidaltzen duzu. 268 00:17:01,720 --> 00:17:05,680 A bidaltzeko nahi duzun bada, 2 bit, 01, 8 bit bidaltzeko beharrean bidaltzen dituzunean 269 00:17:05,680 --> 00:17:10,190 beste bat 8 ​​bit eta abarren ondoren, beste 8 bit jarraian. 270 00:17:10,190 --> 00:17:11,940 Baina ez Gotcha da hemen. 271 00:17:11,940 --> 00:17:17,079 Zuhaitz hau besterik ez eraikitzeko eta, ondoren, Alice etatik Bob bidaltzen hasteko ez da nahikoa 272 00:17:17,079 --> 00:17:20,010 laburragoa bit eredua, ASCII kate, 273 00:17:20,010 --> 00:17:23,140 Alice ere duelako Bob zer 274 00:17:23,140 --> 00:17:26,880 Bob da gai bere compressed mezua irakurri nahi izanez gero? 275 00:17:26,880 --> 00:17:30,770 [Inaudible ikaslearen erantzuna] >> Zer da hori? 276 00:17:30,770 --> 00:17:32,310 [Inaudible ikaslearen erantzuna] zer da zuhaitza Of >>. 277 00:17:32,310 --> 00:17:35,160 Edo are zehatzago esanda, zer kodeketen dira, 278 00:17:35,160 --> 00:17:39,010 batez ere, istorio horretan epaia dei bat egin dugu, puntu bat. 279 00:17:39,010 --> 00:17:43,640 Gogoan izan dugun arbitrarioki hautatzeko 2 20% nodoen artean? 280 00:17:43,640 --> 00:17:49,800 Beraz, ez da kasua, Bob, hartzaileak, besterik berreraikitzeko bere zuhaitz 281 00:17:49,800 --> 00:17:53,390 agian zuhaitza sortu du inoiz beraz, apur bat ezberdina izan Alice. 282 00:17:53,390 --> 00:17:56,670 Gainera, Bob ez dakite zer da jatorrizko mezua 283 00:17:56,670 --> 00:18:00,770 gauza bakarra, Alice zion bidaliz, jakina delako, compressed mezua da. 284 00:18:00,770 --> 00:18:05,900 >> Hau atsegin konpresio harrapatzen da, beraz, bai, Alice bit asko gorde dezake 285 00:18:05,900 --> 00:18:09,900 E 1 eta 01 bidaliz A, eta abar, 286 00:18:09,900 --> 00:18:15,180 baina ere Bob jakinarazten mapaketaren letrak eta bit arteko 287 00:18:15,180 --> 00:18:19,620 ahal izango dute, ez delako argi eta garbi fidatu on besterik ez ASCII gehiago ari gara ez bada ASCII erabiliz. 288 00:18:19,620 --> 00:18:22,200 Beraz, bi aukera zituen bidali zion zuhaitza nolabait 289 00:18:22,200 --> 00:18:26,600 idazteko, gorde bitar datuak edo horrelako zerbait 290 00:18:26,600 --> 00:18:30,280 edo, besterik gabe, bidali zion apur bat Cheat orria, Excel fitxategi bat, mapaketa erakusten dituen. 291 00:18:30,280 --> 00:18:36,480 Beraz, konpresio eraginkortasuna benetan bere gain hartzen ari zaren mezuak bidaltzeko 292 00:18:36,480 --> 00:18:40,230 nahiko handiak dira, gutxienez, ertainak, 293 00:18:40,230 --> 00:18:42,180 ari zaren super mezu labur bat bada bidaliz delako, 294 00:18:42,180 --> 00:18:45,390 besterik ez duzu nahi izanez gero, bidali mezua BAD, ortografia dugu hemen gertatzen da hitz bat, 295 00:18:45,390 --> 00:18:49,550 B-A-D, ziurrenik zaren bit gutxiago erabili behar da, 296 00:18:49,550 --> 00:18:53,130 baina harrapaketa ere baduzu Bob jakinarazten zer da zuhaitza 297 00:18:53,130 --> 00:18:57,530 edo zer diren kodeketen,, ziurrenik outweigh aurrezki guztiak ari zaren 298 00:18:57,530 --> 00:19:00,110 compressed gauza izatea hasteko. 299 00:19:00,110 --> 00:19:02,210 Beraz, benetan kasu saiatu baduzu konprimitzea 300 00:19:02,210 --> 00:19:05,330 zip edo fitxategi-formatu antzeko zerbait ere ezagutzen duzu agian 301 00:19:05,330 --> 00:19:07,780 pretty fitxategi txikiak, nahiz eta hutsik fitxategiak - 302 00:19:07,780 --> 00:19:10,930 batzuetan fitxategi horiek handiagoak eta ez txikiagoa izatea. 303 00:19:10,930 --> 00:19:14,320 Baina errealistan, bakarrik fitxategia txiki tamainak gertatzen den bezala, 304 00:19:14,320 --> 00:19:16,920 beraz, ez da gigabyte 2 gigabyte fitxategi bat egiteko; 305 00:19:16,920 --> 00:19:19,480 bytes edo, besterik gabe, bikote kilobyteko benetan ari gara hitz egiten. 306 00:19:19,480 --> 00:19:22,330 >> Zip bezalako programak batzuk dira smart nahikoa konturatzen, 307 00:19:22,330 --> 00:19:24,590 "Bit gehiago konprimitzeko pasatzeko ari zara." 308 00:19:24,590 --> 00:19:27,460 "Let traba ez dit konprimitzea guztietan". 309 00:19:27,460 --> 00:19:30,160 Beraz, hori guztia, modu batean, ondoren, testu formatuan konprimitzea da. 310 00:19:30,160 --> 00:19:32,300 Honen antzeko zerbait ezartzeko izan dugu C. 311 00:19:32,300 --> 00:19:35,370 Esate baterako, hona hemen nola nodo bat irudikatu genuke Zuhaitz hau 312 00:19:35,370 --> 00:19:39,320 non sinboloa char, frekuentzia balio mugikorreko dugu, 313 00:19:39,320 --> 00:19:42,250 dugu eta gure datuak beste egiturak, 2 erakusle gisa ikusten, 314 00:19:42,250 --> 00:19:47,080 Haurra, ezkerretik eskuinera 1 1, bai eta horietatik NULL izan daiteke, 315 00:19:47,080 --> 00:19:50,850 baina hala ez bada, aipatzen ezker haur eta eskuineko ume bat. 316 00:19:50,850 --> 00:19:55,130 Beraz, honen ondoren Huffman kodeketa da, eta modu bat da informazioa konprimitzeko buruz joan ahal izango duzu, 317 00:19:55,130 --> 00:19:57,880 eta, zalantzarik gabe, inplementatzeko erraza da bat 318 00:19:57,880 --> 00:20:00,830 , adibidez, azken astean datuen egitura testuinguruan, 319 00:20:00,830 --> 00:20:03,250 are gehiago algoritmo sofistikatuak arren existitzen 320 00:20:03,250 --> 00:20:08,220 are sofistikatuagoa zure datuak mutazio egin dezake. 321 00:20:08,220 --> 00:20:11,640 Edozein galdera ondoren, zuhaitzak, zuhaitz bitarrak, edo testu konpresio? 322 00:20:11,640 --> 00:20:15,590 [Ikasleak] anbiguotasun batzuk, 01 [inaudible] split bada bezala sartu, 323 00:20:15,590 --> 00:20:19,160 ondoren, 011 anbiguoa, eskubidea izango litzateke? 324 00:20:19,160 --> 00:20:22,730 [Inaudible] >> Ona galdera. Anbiguotasuna. 325 00:20:22,730 --> 00:20:25,940 Utzidazu laburtzeko hemen argazki hau aipatuz. 326 00:20:25,940 --> 00:20:29,650 Pertsonaiak konprimitzea ari zara, irudikapena delako, 327 00:20:29,650 --> 00:20:32,850 algoritmo honen definizioa beti hostoak geldituko dira, 328 00:20:32,850 --> 00:20:41,870 ez duzu nahi gabe erabili bit eredua bera letra Hainbat aurrizkia. 329 00:20:41,870 --> 00:20:46,740 Beraz, beste era batera esanda, kezkatuta buruz bazaude, soinuak, hala nola, anbiguotasun bat sortutako 330 00:20:46,740 --> 00:20:51,580 Horren bidez, 001, B edo C edo horrelako zerbait Irteeran Irteeran izan daiteke. 331 00:20:51,580 --> 00:20:56,780 Baina hori ez da kasua oharra delako alfabetoaren hizkiak guztiak kodetzean ari gara 332 00:20:56,780 --> 00:20:58,290 hostoak dira. 333 00:20:58,290 --> 00:21:01,910 >> Anbiguotasuna bakarrik sor daiteke, Morse kodea kasuan bezala, 334 00:21:01,910 --> 00:21:06,770 izanez gero, esate baterako, C zen nonbait erro B. bidetik 335 00:21:06,770 --> 00:21:12,290 [Ikasleak] Eskuin. Beraz, kasu horretan, diotenez, A 2 hostoak ditu. >> Esan A - Esan berriro. 336 00:21:12,290 --> 00:21:18,760 [Ikasleak] Say A 2 hostoak, F eta G, eta, ondoren, G - >> Ongi ditu. Baina ezin du. 337 00:21:18,760 --> 00:21:23,230 A ezin bera izan hosto F eta G letrak horiek delako F eta G 338 00:21:23,230 --> 00:21:27,560 uzten nonbait B ezkerrera edo E. eskubidea izango bere burua 339 00:21:27,560 --> 00:21:28,900 Beraz, definizioz, hostoak izan behar dute. 340 00:21:28,900 --> 00:21:32,940 Bestela, zehazki eskubidea bazaude, ez dugu konponduko arazoa Morse kodea duten aurpegiak. 341 00:21:32,940 --> 00:21:38,150 Ona galdera. Beste galdera? Guztiak eskubidea. 342 00:21:38,150 --> 00:21:42,050 Bit ideia hau dugu, izan out botere bihurtzen da guztiak batera ez dugu benetan erabiltzen 343 00:21:42,050 --> 00:21:44,200 0 s eta 1s horiek manipulatzeko zen. 344 00:21:44,200 --> 00:21:46,600 Honi buruz galdetu dugu arazo goiztiarrena multzo bat: 345 00:21:46,600 --> 00:21:52,340 hain zuzen ere, nola joan maiuskula edo minuskula alderantziz bihurtzeko duzu? 346 00:21:52,340 --> 00:21:55,460 Edo, zehazkiago, duten lehen psets bat eskatu 347 00:21:55,460 --> 00:22:01,090 zenbat bit ez dute benetan A vice bat edo alderantziz aldatzeko minuskula irauli? 348 00:22:01,090 --> 00:22:05,580 Hona hemen zer 65 eta 97 bitar en itxura berreskuratu azkar bat da. 349 00:22:05,580 --> 00:22:08,060 Eta nahiz eta galdera horrek sort zure memorian lausotuta 350 00:22:08,060 --> 00:22:11,290 berriro ere hemen ikusi ahal izango duzu, zenbat bit behar duten iraultzen dira 351 00:22:11,290 --> 00:22:15,810 hiriburua aldatzeko minuskula? Just bat. 352 00:22:15,810 --> 00:22:19,650 >> Kokapen bat, ezker bit hirugarren baino ez dituzte desberdinak. 353 00:22:19,650 --> 00:22:24,240 Batek 010, berriz, apur bat 011. 354 00:22:24,240 --> 00:22:26,250 Beraz, nolabait, egin ahal izango bit hori irauli behar dugu, 355 00:22:26,250 --> 00:22:29,410 eta, ondoren, kapitalizatu ahal izango dugu, eta letrak minuskula. 356 00:22:29,410 --> 00:22:32,720 Hau egin dugu, iraganean benetan erabiliz baldintza bada 357 00:22:32,720 --> 00:22:35,930 eta letra, kapitala eta kapital Z arteko bada egiaztatzen, 358 00:22:35,930 --> 00:22:41,480 ondoren, irteera bat bezala - a + 26 edo horrelako zerbait. 359 00:22:41,480 --> 00:22:46,130 Alfabetoaren hizkiak aritmetika aldaketa bat egin duzu ziurrenik. 360 00:22:46,130 --> 00:22:49,270 Baina, zer izan dugu besterik ez bada irauli duten single bit? 361 00:22:49,270 --> 00:22:59,080 Nola joan 01000001 eta 01100001 atsegin bat byte bit, eta, beraz, 8 bit merezi hartu al duzu? 362 00:22:59,080 --> 00:23:03,170 Izan duzu eredu horiek bit bada, nola joan daiteke horietako bat aldatzen ari gara? 363 00:23:03,170 --> 00:23:07,610 Zer horia aurkeztu badugu hemen, beste bit eredu hau? 364 00:23:07,610 --> 00:23:13,420 Egin dut kate hori osoa 0 s bada bat bit izan ezik aldatu nahi dut 365 00:23:13,420 --> 00:23:17,900 eta, ondoren, bitekin operadore gisa ezagutzen operadore berria aurkezteko I - 366 00:23:17,900 --> 00:23:21,210 Zentzu bit banakako funtzionatzen bitekin, 367 00:23:21,210 --> 00:23:25,360 ez byte bat osoa edo lau byte guztiak aldi berean. 368 00:23:25,360 --> 00:23:31,170 Barra bertikala han horia iradokitzen du zer kapitalaren ordezkaritza hartzen badugu 369 00:23:31,170 --> 00:23:37,060 eta bitekin OR bit sekuentzia horia? 370 00:23:37,060 --> 00:23:41,300 Beste era batera esanda, uste gure Scratch adierazpen boolearrak eztabaida eta gero C. 371 00:23:41,300 --> 00:23:47,520 >> Boolean bat egitea edo egia esan nahi izatea, bai Lehenik eta behin, egia izan 372 00:23:47,520 --> 00:23:50,700 edo bigarren gauza egia izan edo biek egia izan, 373 00:23:50,700 --> 00:23:53,270 eta ondoren irteerako emaitza bera ez da egia. 374 00:23:53,270 --> 00:24:00,230 Hemen kasu honetan, zer hartuko dugu 0 bada lortuko dugu "edo" ed 0? Gezurra edo gezurra? 375 00:24:00,230 --> 00:24:04,280 Oraindik da faltsua, eta, beraz, beraz, minuskulaz izaten jarraitzen du espero bezala. 376 00:24:04,280 --> 00:24:07,540 Zer da 1 edo 0 ordez egiten badugu? 377 00:24:07,540 --> 00:24:12,640 Honek orain 1 gelditzen da, baina zer da hemen gertatuko nabarituko. 378 00:24:12,640 --> 00:24:18,630 Kapital-A dugu eta jarraituko dugu "edo" bere banakako bit ari gara hemen egiten, 379 00:24:18,630 --> 00:24:25,180 0 edo horia bat ematen digu zer behera hemen? Honek ematen digu 1. 380 00:24:25,180 --> 00:24:35,120 Izan ere, demagun ez genekien zer gutxi bertsio maiuskulaz bat izan zen benetan. 381 00:24:35,120 --> 00:24:38,270 Goazen egin. Atzera mugitu me hemen. 382 00:24:38,270 --> 00:24:42,340 Egin dezagun berriro. 0 edo 0 ematen dit 0. 383 00:24:42,340 --> 00:24:45,020 1 edo 0 ematen dit 1. 384 00:24:45,020 --> 00:24:48,020 0 edo 1 ematen dit 1. 385 00:24:48,020 --> 00:24:52,880 0 edo 0 ematen dit 0. Hurrengoa da, hurrengo 0 0, hurrengo 0 da. 386 00:24:52,880 --> 00:24:55,660 1 edo 0 ematen dit 1. 387 00:24:55,660 --> 00:24:59,140 Eta, beraz, nahiz eta ez dugu aldez aurretik jakin zer minuskula bat izan zen, 388 00:24:59,140 --> 00:25:04,770 besterik ez "edo" A ing ditudan dugu hemen aurkezten horiz bit patroi hau, 389 00:25:04,770 --> 00:25:09,400 kapital minuskula dezakezu A bit hori iraultzeko. 390 00:25:09,400 --> 00:25:11,580 Hau erabili dugu adierazpen weeks ago: pixka bat biratu. 391 00:25:11,580 --> 00:25:13,710 Nola egin duzu benetan programazioaren dela? 392 00:25:13,710 --> 00:25:16,390 Zer ari den, oro har, maskara bat, bit-sekuentzia bat erabiltzen duzu, 393 00:25:16,390 --> 00:25:19,980 kasu honetan bakarrik, beraz, zenbaki hau itxura hemen gertatzen da, 394 00:25:19,980 --> 00:25:22,980 eta gero "edo" berri honetan C operadorea elkarrekin erabiliz, 395 00:25:22,980 --> 00:25:29,940 ez | |, bakar bat erabili behar dituzu | eta benetan nahi duzun erantzuna jasoko hemen zergatik delako? 396 00:25:29,940 --> 00:25:35,120 Hau da, leku, 1s, 2s leku, 4S, 8s, 16s, 32s. 397 00:25:35,120 --> 00:25:42,280 Beraz, izarrekin bihurtzen da kapital-gutun bat hartu duzu gero A eta bitekin OR osoko 32, 398 00:25:42,280 --> 00:25:47,520 osoko 32 delako, itxura bit gisa, itxura, 399 00:25:47,520 --> 00:25:50,860 horrek esan nahi du benetan nahi duzun bit irauli ahal izango duzu. 400 00:25:50,860 --> 00:25:52,630 Eta, era berean, eta kodea bilatuko dugu une bat besterik ez - 401 00:25:52,630 --> 00:25:54,210 demagun beste norabidean joan nahi dugu. 402 00:25:54,210 --> 00:25:58,210 >> Nola bat minuskulaz kapital A duzu? Zein bit aldatu behar da? 403 00:25:58,210 --> 00:25:59,820 Berdina da. 404 00:25:59,820 --> 00:26:03,970 Hirugarren bit aldatzen 1 eta 0 bat nahi dugu. 405 00:26:03,970 --> 00:26:06,310 Eta nola liteke hau egiten dugu? 406 00:26:06,310 --> 00:26:10,130 Nola desaktibatzeko dugu pixka bat? Zer bit eredua da off apur bat egingo dugu? 407 00:26:11,580 --> 00:26:14,070 Zer maskara invert ordenatzeko badugu? 408 00:26:14,070 --> 00:26:17,350 Aurretik, berriz, maskara hori osoa 0 s egin genuen 409 00:26:17,350 --> 00:26:19,930 bat bit izan ezik piztu nahi izan dugu, 410 00:26:19,930 --> 00:26:25,580 Une honetan bada, maskara 1s osoa egiten dugu nahi dugun bit izan ezik desaktibatzeko 411 00:26:25,580 --> 00:26:28,330 eta, ondoren, zer operadorea erabili? 412 00:26:28,330 --> 00:26:30,560 Zer dugu "eta" gauzak bada? Ikus dezagun begirada bat. 413 00:26:30,560 --> 00:26:34,880 Dugu hau bada irauli, demagun berriro 1s guztiak maskara bat sortzeko I 414 00:26:34,880 --> 00:26:37,650 bat bit desaktibatzeko nahi dut izan ezik 415 00:26:37,650 --> 00:26:43,860 eta, ondoren, baino "edo" goiko zenbakiak zenbakiak horia behera hemen zuri, 416 00:26:43,860 --> 00:26:46,940 I horren ordez "eta" gero elkarrekin? Bitekin bat deitzen da. 417 00:26:46,940 --> 00:26:49,450 Logikoa denez, Boolean bat gauza bera da. 418 00:26:49,450 --> 00:26:55,160 Honek ematen dit 0 & 1 0. Beraz, faltsuak eta egia faltsua da. 419 00:26:55,160 --> 00:26:58,160 True, eta egia da, egia da. 420 00:26:58,160 --> 00:27:04,020 Eta hemen da magikoa: Egia eta faltsua da gaur egun gezurra, beraz aktibatuta dugu off bit hori. 421 00:27:04,020 --> 00:27:06,560 Eta orain, gainerako istorioa samarra da erraza. 422 00:27:06,560 --> 00:27:11,970 Maskara gainerako 1s denez, ez du axola zer zenbakiak zuria dira. 423 00:27:11,970 --> 00:27:15,580 When you "eta" benetako zerbait, ez ari zaren bere balioa aldatu egingo da. 424 00:27:15,580 --> 00:27:20,200 Egia da, bada, jarraituko egia izango da. Faltsua bada, jarraituko faltsua izango da. 425 00:27:20,200 --> 00:27:23,190 >> Baina magia gertatzen da zerbait egia zen 426 00:27:23,190 --> 00:27:25,430 eta gero "eta" Faltsua. 427 00:27:25,430 --> 00:27:30,030 Bit hori desaktibatuz eragina dauka. 428 00:27:30,030 --> 00:27:31,980 Beraz, apur bat críptica dago. 429 00:27:31,980 --> 00:27:35,390 Dezagun benetan kodea batzuk begiratu, eta horrek are gehiago críptica agian benetan begiratu, 430 00:27:35,390 --> 00:27:38,220 baina dezagun begirada bat hemen tolower. 431 00:27:38,220 --> 00:27:45,880 Tolower at I begiratuz gero, kapital bat minuskula joan, 432 00:27:45,880 --> 00:27:47,730 ikus dezagun nola programa hau ezartzeko genuke-en. 433 00:27:47,730 --> 00:27:51,280 Hemen nagusia da, eta ez da komando-lerroko argumentu edozein hartzeko. 434 00:27:51,280 --> 00:27:55,980 Pertsonaia c deklaratzen dut, letra hori sartu idatzi 435 00:27:55,980 --> 00:28:00,690 Erabili ondoren I do ezagutzen loop besterik ez, berriz, ziurtatu erabiltzaileak behin betiko ematen dit kapital A 436 00:28:00,690 --> 00:28:05,010 edo B edo C. .. Z, eta, beraz, me ematen dute A eta Z. arteko zerbait 437 00:28:05,010 --> 00:28:08,580 Eta orain zer am egiten dut hemen? 438 00:28:08,580 --> 00:28:14,870 Naiz "edo" ing hau 0x20, baina hori benetan bera 439 00:28:14,870 --> 00:28:19,500 eta itzuli dugu honen une batean - 32. 440 00:28:19,500 --> 00:28:24,830 Beraz, berriro ere, 32 bit Hemen patroi hau. Zergatik ezagutzen dugu? 441 00:28:24,830 --> 00:28:26,320 Just uste astea: 0. 442 00:28:26,320 --> 00:28:31,010 1s leku, 2s leku, 4S, 8s, 16s, 32s leku da. 443 00:28:31,010 --> 00:28:33,470 Beraz, i zenbaki hau gertatzen da 32 izan behar du. 444 00:28:33,470 --> 00:28:40,570 Karakterra bezala gutun bat hartu ahal izango dut hemen, literalki kopurua 32 bitekin "edo" 445 00:28:40,570 --> 00:28:45,250 eta zer itzuli dut? Char horren bertsio minuskulaz. 446 00:28:45,250 --> 00:28:48,830 Duela une bat, nahiz eta, hau adierazi dut oinarrizko hainbat notazioan. 447 00:28:48,830 --> 00:28:51,370 Zer egin irudikatzeko? >> [Ikasleak] hamaseitarra. 448 00:28:51,370 --> 00:28:53,050 [Malan] hau gertatzen hamaseitarrean irudikatzeko. 449 00:28:53,050 --> 00:28:55,170 Ez hamaseitarra askoz guztiak buruz hitz egin dugu, 450 00:28:55,170 --> 00:28:57,330 baina benetan, komenigarria Horrelako kasuetan. 451 00:28:57,330 --> 00:29:01,730 >> Nahiz eta konplexuagoa begiratzen du, eta, nahiz eta 20 eta 32 bezala, itxura 452 00:29:01,730 --> 00:29:06,240 bihurtzen da hamaseitarra da, benetan super erosoa notazioa 453 00:29:06,240 --> 00:29:10,810 hamaseitarrean behin 0x ondoren digitu delako, eta hau ez du ezer esan nahi; 454 00:29:10,810 --> 00:29:13,960 hau besterik ez dio hemen, zenbaki hamaseitar bat dator giza konbentzio 455 00:29:13,960 --> 00:29:18,590 digituak horietako bakoitzean, 2 eta 0, bere burua irudikatzen daiteke 456 00:29:18,590 --> 00:29:20,800 zehazki 4 bit. 457 00:29:20,800 --> 00:29:27,840 Beraz, ez dugu hori izanez gero, utzi testu-editore bat ireki me hemen bitxi automatikoki osatu ' 458 00:29:27,840 --> 00:29:35,940 testu-editore apur bat egiten dugu hemen, zenbaki 0x20 esan nahi du, hemen da, 4 bit, hemen beste 4 bit. 459 00:29:35,940 --> 00:29:38,050 Egin dezagun eskuineneko 4 bit lehen. 460 00:29:38,050 --> 00:29:44,690 0 4 bit irudikatzen zer da? Super erraza da. Just 0 s guztiak. 461 00:29:44,690 --> 00:29:46,780 Beraz, 4 bit 0 s gisa. 462 00:29:46,780 --> 00:29:53,510 Nola 2 ordezkatzen duzu? Pixka bat izan genuen baita, baina 0100 da. 463 00:29:53,510 --> 00:29:57,310 Leku hau 1s da, beraz, hau 2s lekua da, eta, ondoren, ez du axola zer beste lekuak dira. 464 00:29:57,310 --> 00:30:00,610 Beste era batera esanda, hamaseitarrean esan 0x20 dezake, 465 00:30:00,610 --> 00:30:04,340 baina gero 2 zer da pentsatzen, eta nola irudikatzen binary 466 00:30:04,340 --> 00:30:07,130 0 da eta nola irudikatzen binary 467 00:30:07,130 --> 00:30:10,440 galdera horiei erantzun hau eta hau dira, hurrenez hurren. 468 00:30:10,440 --> 00:30:14,380 Beraz, 0x20 gertatzen 8 bit patroi hau irudikatzeko, 469 00:30:14,380 --> 00:30:16,880 hau da, hain zuzen ere, nahi dugun maskara. 470 00:30:16,880 --> 00:30:20,140 Oraingoz, beraz, hau da, ariketa bat besterik ez intelektuala, 471 00:30:20,140 --> 00:30:24,520 baina errealitatea kodea normalean da hau atsegin konstanteak idazteko 472 00:30:24,520 --> 00:30:28,360 hamaseitarrean ondoren, programatzailea nahiko erraz delako, 473 00:30:28,360 --> 00:30:32,560 nahiz eta, papera eta arkatza batzuk eskatzen du, irudikatu zer bit eredua dela 474 00:30:32,560 --> 00:30:35,960 ezin delako, besterik gabe adierazteko 0 s eta 1s normalean kodea. 475 00:30:35,960 --> 00:30:38,540 Ezin duzu joan 00010 eta abar. 476 00:30:38,540 --> 00:30:42,380 >> Hamartar edo hamaseitarra edo notazio zortzitarrean edo beste jaso behar duzu. 477 00:30:42,380 --> 00:30:47,540 Jende gehienak joera hamaseitarrean hautatzeko, besterik gabe, beraz, digitu bakoitzak 4 bit adierazten du 478 00:30:47,540 --> 00:30:49,320 eta azkar math hau egin ahal izango duzu. 479 00:30:49,320 --> 00:30:54,990 Eta, nire eskua olatuen dut toupper, hau da, ia-ia berdinak; ia berdina ikusten da. 480 00:30:54,990 --> 00:31:01,900 Toupper gertatzen ez edo operadorearen baizik guy hau eta df erabili. 481 00:31:01,900 --> 00:31:09,300 Zer esan nahi du df irudikatzeko? df? Edonork? >> [Ikasleak] 255. 482 00:31:09,300 --> 00:31:12,780 255? Ez 255. Hori ff izango litzateke. 483 00:31:12,780 --> 00:31:15,210 Ariketa gisa apur bat utziko dugu. 484 00:31:15,210 --> 00:31:23,460 Baina 0-tik joan, 1, 2, 3, 4, 5, 6, 7, 8, 9 eta, ondoren, 9 ondoren dator? 485 00:31:23,460 --> 00:31:26,510 Mota digituak hamartar out gaude, baina zer 9 ondoren dator hamaseitarrean? 486 00:31:26,510 --> 00:31:29,510 [Ikasleak] a. >> Beraz, a, b, c, d. 487 00:31:29,510 --> 00:31:33,470 Ez dago zer bit d benetan adierazten eredua irudikatu ahal izango duzu. 488 00:31:33,470 --> 00:31:38,850 Eta egiten dugu math, ikus azkenean atzera lortzean maskara hau berdina dugu. 489 00:31:38,850 --> 00:31:45,580 Hau,, f, 1s guztiak da, eta hau da d. Beraz, df maskara hori adierazten du. Guztiak eskubidea. 490 00:31:45,580 --> 00:31:50,980 Eta, azkenik, ez da gauza soinu super, super teknikoa egiteko, 491 00:31:50,980 --> 00:31:53,840 baina demagun ez du programa bat idatzi nahi izan dugu. 492 00:31:53,840 --> 00:31:58,960 Dezagun aurrera eta bitarra deitzen binary.c fitxategi batean programa bat da. 493 00:31:58,960 --> 00:32:02,050 Eta orain utzi bitarra exekutatu me eta me osoko zenbaki ez-negatiboa. 494 00:32:02,050 --> 00:32:03,960 Dezagun hasteko, erraza da, eta mota 0. 495 00:32:03,960 --> 00:32:09,010 Zenbaki oso bat bistaratzen du bere binary ordezkaritza duten programa bat da. 496 00:32:09,010 --> 00:32:13,470 Beraz, play Joko hau berriro idatzi besterik ez 1, 1 ordezkaritza 32-pixka bat behar dut. 497 00:32:13,470 --> 00:32:15,490 Ez dut hau berriro 2, lortu behar dut. 498 00:32:15,490 --> 00:32:19,310 Egin behar dut 7 bada, gutxi 1s behar dut amaieran, eta abar. 499 00:32:19,310 --> 00:32:22,740 Aipatu dut hau, bitekin operazioak bihurtzen da 500 00:32:22,740 --> 00:32:25,490 benetan egin dezakezu beste gauza baita. 501 00:32:25,490 --> 00:32:29,130 Maskarak horiek dinamikoki sor ditzakezu. 502 00:32:29,130 --> 00:32:32,800 Hartu adibide bat final bitekin operazioak parte begirada bat. 503 00:32:32,800 --> 00:32:35,490 Hona hemen, kodea lehen zatia da, eskatu erabiltzaileari zenbaki bat, 504 00:32:35,490 --> 00:32:38,130 eman eta, nire ez-negatiboak zenbaki oso bat behin eta berriro. 505 00:32:38,130 --> 00:32:39,780 Beraz, eskola zaharra stuff sort. 506 00:32:39,780 --> 00:32:41,980 Baina hemen, zerbait interesgarria mota da. 507 00:32:41,980 --> 00:32:44,910 >> Nola joan binary zenbaki bat inprimatzeko buruz I? 508 00:32:44,910 --> 00:32:48,970 Zer etatik zer I batetik bestera joateko? 509 00:32:48,970 --> 00:32:52,270 Int bat normalean tamaina, tresna gutxienez? >> [Ikasleak] 4. 510 00:32:52,270 --> 00:32:57,130 4 da. Beraz, 4 * 8 32 - 1 31 da. 511 00:32:57,130 --> 00:33:02,590 Beraz, bada 31 tik hasita zenbatu dut, adierazten, izarrekin bihurtzen da, 512 00:33:02,590 --> 00:33:07,630 besterik ez kontzeptualki, 31 bit edo altuena ordena apur bat, hemen tipo hau da, 513 00:33:07,630 --> 00:33:09,650 hau da, bit 0 izango da berriz. 514 00:33:09,650 --> 00:33:12,850 Beraz, hau da bit 01 ... bit 31. 515 00:33:12,850 --> 00:33:14,950 Beraz, kode hau zer egiten ari da? 516 00:33:14,950 --> 00:33:20,140 Iragarki hau loop, nahiz eta críptica badirudi, 31 behera 0 bit besterik ez da. Dela. 517 00:33:20,140 --> 00:33:24,530 Beraz, parte interesgarria gaur egun 5 lerro hauek hemen egon behar. 518 00:33:24,530 --> 00:33:28,110 Iragarki Ildo honetan izeneko maskara aldakorra naiz geratuko 519 00:33:28,110 --> 00:33:30,790 gure horia zenbakiak hauen istorioa koherentea izan. 520 00:33:30,790 --> 00:33:32,200 Eta gero, zer egiten ari da hau? 521 00:33:32,200 --> 00:33:35,720 Hau ez dugu ikusi aurretik, ziurrenik beste bitekin operadorea da. 522 00:33:35,720 --> 00:33:38,300 Ezkerreko shift operadorea da. 523 00:33:38,300 --> 00:33:40,060 Operadore honek. 524 00:33:40,060 --> 00:33:44,920 1 zenbakia da, eta egiten baduzu, shift, ezkerreko shift utzi i, 525 00:33:44,920 --> 00:33:49,260 zer, banakako 1 egiten du eraginik duela uste duzu? 526 00:33:49,260 --> 00:33:51,290 Literalki aldatzearen baino gehiago. 527 00:33:51,290 --> 00:33:57,540 Beraz, bada, 1 zenbakia da ezker eta hasten i hasieratzean 31, 528 00:33:57,540 --> 00:34:03,490 zer da hori egin? 1 zenbaki hau hartu eta filmea 31 lekuak hemen. 529 00:34:03,490 --> 00:34:06,210 Eta, jakina, ez da atzean digituak beste ez delako, 530 00:34:06,210 --> 00:34:10,350 horiek egingo lehenespenez 0 s ordeztuko da. 531 00:34:10,350 --> 00:34:15,120 Beraz, hasteko duzu kopurua 1, ikastaro honen itxura 532 00:34:15,120 --> 00:34:18,659 eta utzi marraztu me hemen erdian. 533 00:34:18,659 --> 00:34:22,139 Eta gero, mugitzeko gauzak ezkerrean, lasaia hau funtsean, modu honetan doa. 534 00:34:22,139 --> 00:34:24,659 Baina egiten duzun bezala hori bezain laster, 0 betetakoan sartu 535 00:34:24,659 --> 00:34:28,360 Filmea baduzu bigarren aldiz, horrela jartzen da, eta 0 beste betetakoan sartu 536 00:34:28,360 --> 00:34:31,000 >> Mugitzeko duzu berriro, eta, ondoren, beste betetakoan sartu 0 537 00:34:31,000 --> 00:34:37,900 Beraz, ez duzu gauza hau 1 << leku 31 i, azkenean maskara bat eskuratzerakoan 538 00:34:37,900 --> 00:34:42,550 32 karaktere luzea da, ezkerreko den 1. 539 00:34:42,550 --> 00:34:45,199 gainerako guztiak 0 dira. 540 00:34:45,199 --> 00:34:50,880 Eta bihurtzen da, bat alde batera utzita, zenbaki bat aldatzearen hau atsegin dute ezker 541 00:34:50,880 --> 00:34:53,530 baita coincidentally ere, eta, batzuetan, eroso, 542 00:34:53,530 --> 00:34:57,520 zer egiten zenbaki hori du eraginik? >> [Ikasleak] bikoiztea. 543 00:34:57,520 --> 00:35:00,980 Bikoiztuz zutabeak bakoitzean delako - leku 1s, 2s lekua, leku 4S, 544 00:35:00,980 --> 00:35:05,030 8s leku, 16s leku - they're bikoizketaren guztiak ezkerrera joan ahala. 545 00:35:05,030 --> 00:35:09,500 Edo, hobeto esanda, 1s filmea amaitzeko zenbakiaren balioa bikoiztu egingo duzun. 546 00:35:09,500 --> 00:35:12,070 Azkenean dezakezu digituak eraldaketa interesgarria egiten 547 00:35:12,070 --> 00:35:15,640 guztia modu honetan aldatzearen baino gehiago 2 eskumenak. 548 00:35:15,640 --> 00:35:17,150 Beraz, nola ez du lan? 549 00:35:17,150 --> 00:35:22,580 Hau maskara bat ematen dit, ondoren, 0 s guztiak, nahi dut, hain zuzen, leku 1 izan ezik, 550 00:35:22,580 --> 00:35:27,920 eta, ondoren, adierazpen hau, hau da, toupper.c lapurtutako, 551 00:35:27,920 --> 00:35:31,770 besterik ez da esaten zenbakia n erabiltzaileak idatzi, 552 00:35:31,770 --> 00:35:34,730 "Eta", maskara duten eta zer ari zaren iritsi? 553 00:35:34,730 --> 00:35:39,200 1 bat lortzeko 1 mozorro kokapena horretan ari zara, 554 00:35:39,200 --> 00:35:41,570 edo 0 bat lortu du, eta ez da ez bada ari zaren. 555 00:35:41,570 --> 00:35:44,370 Ez du, eta, beraz, programa honen eraginkortasunez begizta bat du, 556 00:35:44,370 --> 00:35:48,340 eta maskara bat sortzen da 1 baino gehiago, ondoren 1 hemen, eta hemen 1 557 00:35:48,340 --> 00:35:52,950 eta bitekin ETA trikimailu erabiltzen da erabiltzailearen sarrera hemen bit 1 esan nahi? 558 00:35:52,950 --> 00:35:59,220 >> Ba al dago erabiltzailearen sarrera hemen bit 1 bat? Eta, hala bada, literalki inprimatu 1, bestela inprimatu 0. 559 00:35:59,220 --> 00:36:03,780 Ari gara ints besterik ez delako 32 bits horregatik ari gara egiten ordez 8, 560 00:36:03,780 --> 00:36:06,900 baina zer sartu dugu gero bitekin honetan ETA, bitekin honetan OR da, 561 00:36:06,900 --> 00:36:10,450 eta hau ezkerreko shift operadorea, askotan ez dira oso lagungarria, 562 00:36:10,450 --> 00:36:12,230 baina ezin dira izarrekin bihurtzen da. 563 00:36:12,230 --> 00:36:16,560 Izan ere, baduzu Booleans array bat antzeko zerbait adierazteko 564 00:36:16,560 --> 00:36:21,260 egiazkoa edo faltsua irudikatzeko, demagun pista gorde nahi duzun ala ez 565 00:36:21,260 --> 00:36:24,630 300 ikasle betetako gela bat da, gaur egun, 566 00:36:24,630 --> 00:36:29,420 tamaina 300 motako array boolearra deklaratu ahal izango duzu, beraz, 300 bools lortuko duzu, 567 00:36:29,420 --> 00:36:33,090 eta bakoitzak ezar dezakezu norbaitek egia da hemen eta false bestela. 568 00:36:33,090 --> 00:36:37,550 Zergatik datuak egitura horretan ordezkaritza hori eraginkorra da? 569 00:36:39,370 --> 00:36:44,800 Zer da txarra buruzko diseinu horretan datu-egitura, 300 bools array? 570 00:36:46,190 --> 00:36:49,600 Zer boolearra da, hain zuzen ere, kanpaia azpian? 571 00:36:49,600 --> 00:36:52,310 Hau ere, zerbait ezagutzen ez izatea da. 572 00:36:52,310 --> 00:36:53,720 Bool ez dago out bihurtzen da. 573 00:36:53,720 --> 00:36:56,620 Gogoratu sortu sort dugu cs50.h fitxategia 574 00:36:56,620 --> 00:36:58,630 berez estandarra boolearra. 575 00:36:58,630 --> 00:37:00,930 C da mota muda, nahiz eta, orduan boolearra. 576 00:37:00,930 --> 00:37:04,880 8 bit erabiltzen ditu boolearra bakoitza irudikatzeko, erabat wasteful da 577 00:37:04,880 --> 00:37:09,040 jakina, zenbat bit delako boolearra irudikatu behar duzu? Just 1. 578 00:37:09,040 --> 00:37:13,190 Beraz, izarrekin bihurtzen da gaur egun bitekin operadore gaitasuna baduzu 579 00:37:13,190 --> 00:37:17,760 banakako nahiz char batean bit, bakar bat ere byte manipulatzeko, 580 00:37:17,760 --> 00:37:21,380 zerbait ergelak irudikatzeko memoria murriztu out bihurtzen da 581 00:37:21,380 --> 00:37:25,490 8 faktore datuak asistentzia hori styled egitura bezala. 582 00:37:25,490 --> 00:37:29,820 Zortzi bit erabiltzen egia edo gezurra irudikatzeko ordez, literalki bat erabili ahal izango duzu. 583 00:37:29,820 --> 00:37:34,500 klasean zortzi ikasle bakoitzeko byte bakar bat erabiliz 584 00:37:34,500 --> 00:37:41,990 0 eta 1 bit banakako behe-mailako trikimailuak mota hauek erabiliz desegiteko. 585 00:37:43,850 --> 00:37:49,460 Benetan energia amaiera bat jarri. Ba al dago bitekin eragiketak buruzko edozein galdera? 586 00:37:49,460 --> 00:37:52,710 >> Bai. >> [Ikasleak] esklusiboa edo operadorearen Ba al dago? 587 00:37:52,710 --> 00:37:56,440 Bai. Esklusibo edo operadore honen itxura, ^, azenarioa sinboloa da, 588 00:37:56,440 --> 00:38:02,070 den lehenengo gauza bakarra edo bigarren gauza bat 1 izan daiteke irteera 1 esan nahi du. 589 00:38:02,070 --> 00:38:07,750 Ez dago bat ere ez, ~, 1 edo alderantziz baita 0 inbertsiorako aukera emango dizu. 590 00:38:07,750 --> 00:38:11,600 Eta han ere shift operadorea izateko eskubidea, >> bat dugu ikusi kontrakoa da. 591 00:38:11,600 --> 00:38:13,850 Guztiak eskubidea. Dezagun gauzak orain goi mailako. 592 00:38:13,850 --> 00:38:16,770 Testu buruz hitz egiten hasi ginen, eta, ondoren, konprimitzeko 593 00:38:16,770 --> 00:38:19,650 eta bit gutxiago zenbakiak testua adierazten du; 594 00:38:19,650 --> 00:38:22,890 nola hasi ahal izango dugu gauzak manipulatzeko bitekin maila apur bat hitz egin dugu. 595 00:38:22,890 --> 00:38:26,640 Dezagun mapan handiago atzera 10.000 oinak ordezkaritza 596 00:38:26,640 --> 00:38:29,250 grafikoak bezalako gauza konplexuak. 597 00:38:29,250 --> 00:38:32,950 Hemen, Alemaniako Ez dugu, hemen, Frantzia bat behar dugu. 598 00:38:32,950 --> 00:38:36,350 Horiek ezagutu dezakezu fitxategi-formatu liteke irudikatzen - GIFs, adibidez. 599 00:38:36,350 --> 00:38:40,030 Duzun inoiz bada. Gif bueltarik, Web, irudi bat ikusi 600 00:38:40,030 --> 00:38:43,000 grafiko bat trukatzeko formatua. 601 00:38:43,000 --> 00:38:47,530 Hauek bi banderak hemen sort uzten dute konpresio 602 00:38:47,530 --> 00:38:52,050 zer arrazoia, agian, begi bistakoak? >> [Inaudible ikaslearen erantzuna] 603 00:38:52,050 --> 00:38:53,440 Errepikapenaren asko, ezta? 604 00:38:53,440 --> 00:38:57,270 Alemaniako Ez bidaltzeko, hau uste irudi bat pantailan 605 00:38:57,270 --> 00:38:59,030 kopiak zure Scratch egunetan. 606 00:38:59,030 --> 00:39:02,380 Gogoratzen ez dagoela irudi bat osatzen duten banakako pixel edo puntuak dezakezu. 607 00:39:02,380 --> 00:39:06,650 >> Puntu beltzez eta puntu beltzez errenkada osoa beste errenkada oso bat. 608 00:39:06,650 --> 00:39:10,110 Puntu beltzez ilara benetan dugu bada, handitutako ikus zezakeen sorta bat da, 609 00:39:10,110 --> 00:39:13,370 askoz hastean handitutako Rob aurpegia Photoshop. 610 00:39:13,370 --> 00:39:15,500 Sakonago eta sakonago eta sakonago irudi sartu bezain laster lortu dugu, 611 00:39:15,500 --> 00:39:19,990 pixelation ikusita, kasu horretan, bere begi konposatu lauki guztiak hasi duzu. 612 00:39:19,990 --> 00:39:24,130 Same aurre hemen. Apur bat nahiko dugu handitutako bada, banakako puntu ikusi nahi duzu. 613 00:39:24,130 --> 00:39:27,110 Beno, hau da, bit hondakin mota da. 614 00:39:27,110 --> 00:39:32,120 Ez da hirugarren bat beltza da bada, eta hirugarren bandera horia da eta abar, 615 00:39:32,120 --> 00:39:34,860 zergatik ezin dugu nolabait konprimitu Ez hau? 616 00:39:34,860 --> 00:39:39,560 Eta are gehiago, Frantziako bandera konprimituta patroia izan du, nahiz eta pixka bat desberdina da. 617 00:39:39,560 --> 00:39:44,120 Bihurtzen da GIF fitxategi-formatua galerarik gabeko konpresio-formatua da, 618 00:39:44,120 --> 00:39:48,420 horrek esan nahi du, Alemaniako Ez bezala irudi bat hartu ahal izango duzu hemen. 619 00:39:48,420 --> 00:39:53,540 bota dezake bere bit asko kalitate uko egin gabe. 620 00:39:53,540 --> 00:39:55,340 JPEGs antzeko zerbait kontrastea da, 621 00:39:55,340 --> 00:39:57,050 gurekin gehienak ziur aski ezagunak. 622 00:39:57,050 --> 00:39:59,000 Facebook argazkiak eta Flickr argazkiak eta antzekoak 623 00:39:59,000 --> 00:40:02,200 dira ia beti JPEGs gisa gorde kargatutako direnean 624 00:40:02,200 --> 00:40:08,100 galeradun - formatua, horren bidez bota nahi duzu bit JPEGs baina galeradun 625 00:40:08,100 --> 00:40:10,430 baina bota ere zuri kalitatea. 626 00:40:10,430 --> 00:40:13,890 Eta beraz konprimitzea argazkiak Photoshop edo horiek igo Facebook 627 00:40:13,890 --> 00:40:15,580 edo benetan crappy telefonoa hartu, 628 00:40:15,580 --> 00:40:19,510 argazki hasten oso splotchy eta pixelated lortu badakizu, 629 00:40:19,510 --> 00:40:22,290 eta hori ari baita ordenagailua edo telefono bidez konprimituta 630 00:40:22,290 --> 00:40:24,550 literalki informazioa bota. 631 00:40:24,550 --> 00:40:28,500 Baina harrigarria da GIF bit gutxiago erabili ahal izango da, lehenespenez might baino 632 00:40:28,500 --> 00:40:30,750 Informazio edozein galdu gabe. 633 00:40:30,750 --> 00:40:32,410 >> Eta ez, funtsean, beraz, honela. 634 00:40:32,410 --> 00:40:38,740 Beharrean BMP bat bezala fitxategi batean denda baino ez litzateke izango, beltza, beltza, beltza, beltza triple RGB, 635 00:40:38,740 --> 00:40:42,570 beltza, beltza, beltza, beltza, beltza, beltza, beltza, beltza eta abar, 636 00:40:42,570 --> 00:40:45,640 baizik eta, GIF formatua, esan du "Black" 637 00:40:45,640 --> 00:40:48,330 eta, ondoren, "100 aldiz errepikatu", edo horrelako zerbait. 638 00:40:48,330 --> 00:40:52,280 "Black, errepikatu hau 100 aldiz, beltza, 100 aldiz errepikatu ..." 639 00:40:52,280 --> 00:40:54,530 "Yellow, hau 100 aldiz errepikatu." 640 00:40:54,530 --> 00:40:57,200 Eta, beraz, gogoratzen da, funtsean, ezkerreko pixel 641 00:40:57,200 --> 00:41:02,160 eta, ondoren, kodetzen nolabait pixel hori behin eta berriro errepikatzen den ideia. 642 00:41:02,160 --> 00:41:06,110 Beraz GIFs ondoren konprimitu dira edozein informazioren galdu gabe. 643 00:41:06,110 --> 00:41:09,510 Baina, asmatzen algoritmoa GIFs erabiltzen bada, 644 00:41:09,510 --> 00:41:13,180 banderak horiek, nahiz eta tamaina berdin-berdina begiratzen dute, 645 00:41:13,180 --> 00:41:19,620 txikiagoa izango da, disko gogorrean gordetzen GIF gisa? >> [Ikasleen] Alemanian. 646 00:41:19,620 --> 00:41:21,660 Alemania da txikiagoa izan behar du? Zergatik? 647 00:41:21,660 --> 00:41:26,620 [Ikasleak] errepikatu duzulako asko, aldiz horizontalki 648 00:41:26,620 --> 00:41:29,010 eta, ondoren, beste errepikatu duzu. >> Zehazki. 649 00:41:29,010 --> 00:41:32,020 Asmatu duten pertsonen GIF mota horretako zerbait arbitrarioki erabaki delako 650 00:41:32,020 --> 00:41:36,040 errepikapen leveraged egingo da, horizontalki eta ez labaintzen. 651 00:41:36,040 --> 00:41:40,900 Asko errepikapen gehiago labaintzen hemen Alemaniako bandera, Frantziako bandera baino. 652 00:41:40,900 --> 00:41:44,430 Beraz, bada benetan ireki dugu, nire disko gogorrean karpeta GIFs hauek ditu, 653 00:41:44,430 --> 00:41:51,920 benetan ikus dezakezu German Ez hemen 2 kilobyteko dela, eta frantziar bat da, 4 kilobyteko. 654 00:41:51,920 --> 00:41:54,080 Gertatzen da kasualitatea bat izan da bi aldiz beste, 655 00:41:54,080 --> 00:41:57,960 baina, hain zuzen ere Frantziako bandera kasuan askoz handiagoa da. 656 00:41:57,960 --> 00:42:01,250 >> Nahiz eta hemen grafikoak buruz ari gara hitz egiten, ideia berdinak aplikatzen 657 00:42:01,250 --> 00:42:05,150 banderak, baina apur bat konplexuagoak dira irudiak ez bezalako gauzak. 658 00:42:05,150 --> 00:42:08,170 Sagar bat hartu duzun irudi bat bada, segur aski ez bikoizketa asko dago, 659 00:42:08,170 --> 00:42:11,040 beraz, nolabait izan dugu gogoratu default background urdina da 660 00:42:11,040 --> 00:42:13,230 eta ez, eskuineko irudi gisa iradokitzen du, 661 00:42:13,230 --> 00:42:16,830 argazki hau bakar pixel bakoitzaren kolorea gogoratzeko. 662 00:42:16,830 --> 00:42:21,060 Beraz, bit bota ahal izango dugu kanpoan, informazioa galdu gabe. 663 00:42:21,060 --> 00:42:23,340 Sagar oraindik itxura besterik ez bera. 664 00:42:23,340 --> 00:42:27,510 Hemen adibide honetan, ikus movie batean gertatzen denaren beharko duzu. 665 00:42:27,510 --> 00:42:31,970 Hauek ordezkatzen zahar-eskola film kopuru horren bidez hor goiko irudia 666 00:42:31,970 --> 00:42:36,900 etxe bat iraganeko gidatzeko Itsasondo eta zuhaitz bat behar duzu. 667 00:42:36,900 --> 00:42:42,130 Eta van gidatzen iragana da ezkerretik eskuinera, zer, jakina, ez da aldatzen? 668 00:42:42,130 --> 00:42:45,320 La casa ez dago inora, eta zuhaitza ez dago inora. 669 00:42:45,320 --> 00:42:47,700 Gauza bakarra mugitzen kasu honetan van da. 670 00:42:47,700 --> 00:42:51,650 Beraz, Aldaketarik ez Aurrekariak iradokitzen du, zer filmak egin dezakezu 671 00:42:51,650 --> 00:42:56,530 da, era berean, bakarrik bota fotogramen arteko aldatzen ez duten informazioa. 672 00:42:56,530 --> 00:42:58,900 Hau da, oro har, interframe konpresio bezala ezagutzen 673 00:42:58,900 --> 00:43:02,120 Horren bidez, fotograma honetan itxura ia berdina bada, hau da, 674 00:43:02,120 --> 00:43:05,390 dezagun ez traba diskoan berdina informazioa edozein gordetzeko 675 00:43:05,390 --> 00:43:09,250 fotograma horiek tarteko, utzi bakarrik erabili gako markoak noizbehinka 676 00:43:09,250 --> 00:43:13,420 benetan little behatu informazio hori redundantly bezala egiaztatu gorde. 677 00:43:13,420 --> 00:43:18,620 >> Por el contrario, konprimitzeko bideo hurbilketa beste Adibide honetan bigarren eta txikiagoa da, 678 00:43:18,620 --> 00:43:23,970 baizik eta denda baino 30 markoak, zergatik ez gorde besterik ez duzu 15 fotograma bigarren ordez? 679 00:43:23,970 --> 00:43:27,070 Beharrean, primeran, primeran nagusiak mota movie baino, 680 00:43:27,070 --> 00:43:30,060 begiratu du pixka bat, pixka bat zaharra eskola bezala stuttering izan daiteke, 681 00:43:30,060 --> 00:43:37,190 baina eragina garbia urrun gutxiago bit baliteke baino bestela beharrezkoa izango da erabili ahal izango dute. 682 00:43:37,190 --> 00:43:39,240 Beraz, non ez gero utzi digute? 683 00:43:39,240 --> 00:43:41,700 Hori izan zen pixka bat alde batera utzita, non bestela konpresio joan zaitezke. 684 00:43:41,700 --> 00:43:45,140 Horri buruzko informazio gehiago nahi izanez gero, klase baten CS175 hemen bezala. 685 00:43:45,140 --> 00:43:46,990 Hona hemen video barruan beste adibide bat da. 686 00:43:46,990 --> 00:43:49,190 Bee mugitzen gauza bakarra bada, 687 00:43:49,190 --> 00:43:51,790 benetan bota dezakezu informazio horiek erdiko fotograma 688 00:43:51,790 --> 00:43:55,260 lore eta zerua eta hostoak ez dira aldatzen ari delako. 689 00:43:55,260 --> 00:43:57,960 Baina gaur egun kontuan hartu azken gauza bakarra. 690 00:43:57,960 --> 00:44:03,890 C hurrengo 5 minutu utziko dugu betirako atzean hitzaldia? Bai. Ez en psets, nahiz eta. 691 00:44:03,890 --> 00:44:10,210 Azken C buruzko istorioa, eta, ondoren, oso sexy stuff dugu 692 00:44:10,210 --> 00:44:13,870 HTML eta Web eta woo-Hoo parte hartuko dute. Guztiak eskubidea. 693 00:44:13,870 --> 00:44:16,050 Hemen goaz. Hori motibazioa. 694 00:44:16,050 --> 00:44:20,020 Bihurtzen da denbora hau izan dugu programa Clang exekutatu dugu idazteko. 695 00:44:20,020 --> 00:44:23,890 Eta Clang, esan dugu lehen astean nahiko askoz geroztik, iturburu-kodea hartu 696 00:44:23,890 --> 00:44:25,740 bihurtzen du eta objektu-kode sartu. 697 00:44:25,740 --> 00:44:28,540 C hartzen du eta 0 s eta 1s bihurtzen. 698 00:44:28,540 --> 00:44:32,150 Mota horretako dut izan duzu aste batzuk etzanda nahiko bezain erraza ez delako. 699 00:44:32,150 --> 00:44:36,750 >> Ez dago askoz gehiago kanpaia azpian Clang bezalako programa bat exekutatzen baduzu. 700 00:44:36,750 --> 00:44:39,560 Izan ere, programa bat konpilatzeko prozesua benetan laburbildu 701 00:44:39,560 --> 00:44:42,210 Rob Konpilatzaileak bideo gogoratzen dezakezu gisa, 702 00:44:42,210 --> 00:44:47,580 4 urrats hauek ditu: pre-prozesatzeko, berez konpilatzean, muntaia, eta lotzen ditu. 703 00:44:47,580 --> 00:44:51,950 Baina klasea dugu, eta munduko pertsona normalean urrats hauek guztiak laburbiltzen 704 00:44:51,950 --> 00:44:54,410 bezala ". konpilatzean" 705 00:44:54,410 --> 00:44:58,070 Baina, iturri hau atsegin kodea badugu hasten, gogoratzen, hau da, agian, errazena C programa 706 00:44:58,070 --> 00:45:03,530 idatzi dugu, beraz, orain arte, gogoratzen denean konpilatu hau atsegin bilatzen bueltarik. 707 00:45:03,530 --> 00:45:07,310 Baina ez da benetan tarteko urrats bat, eta urrats horiek honela daude. 708 00:45:07,310 --> 00:45:10,750 Lehenengo gauza hau da hau, eta gure programa gehienak oso goian, 709 00:45:10,750 --> 00:45:13,550 # Include 710 00:45:13,550 --> 00:45:17,210 Zer esan nahi du # Gurekin besteak beste, ez? 711 00:45:17,210 --> 00:45:24,150 Pretty askoz kopiak eta pastak stdio.h edukiak nire fitxategi beraz, zergatik? 712 00:45:24,150 --> 00:45:27,220 Zergatik zaintzeko stdio.h edukiak dut? Zer dago interesa? 713 00:45:27,220 --> 00:45:32,310 Printf adierazpena, bere prototipoa, beraz, konpilatzailea eta, ondoren, badaki zer esan nahi dut 714 00:45:32,310 --> 00:45:34,900 Funtzio hau aipatu dut printf. 715 00:45:34,900 --> 00:45:39,390 Beraz, urratsa 1 konpilatzean da pre-prozesatzeko, zeinaren Clang bezalako programa bat 716 00:45:39,390 --> 00:45:43,450 edo helper-programa Clang duten dator zure kodea top irakurtzen behean, 717 00:45:43,450 --> 00:45:47,740 Ezkerretik eskuinera, eta edozein unetan # sinbolo bat ikusten include bezalako gako-hitza eta ondoren, 718 00:45:47,740 --> 00:45:53,980 eragiketa egiten da, zure fitxategi stdio.h kasu honetan kopiatzeko eta itsasteko. 719 00:45:53,980 --> 00:45:55,510 Urratsa 1. 720 00:45:55,510 --> 00:45:59,620 Ondoren kopia erraldoia, lan itsatsi gertatu delako C fitxategia askoz handiagoa behar duzu. 721 00:45:59,620 --> 00:46:01,710 >> Step 2 konpilatzen da. 722 00:46:01,710 --> 00:46:04,880 Baina bihurtzen da konpilatzean iturri kodea duten itxura hau hartzen du 723 00:46:04,880 --> 00:46:08,160 bihurtzen da, zerbait itxura hau, 724 00:46:08,160 --> 00:46:12,560 ezagutzen dutenentzat deitzen da? >> [Ikasleak] Batzar Nagusia. >> Batzar hizkuntza. 725 00:46:12,560 --> 00:46:16,700 Hau da, benetan zerbait hartzen baduzu CS61 murgiltzea duzu xehetasun gehiago. 726 00:46:16,700 --> 00:46:22,380 Hau besterik ez da itxi ahal duzun bezala 0 s eta 1s zeure burua idatziz 727 00:46:22,380 --> 00:46:25,850 baina oraindik modu bat, gutxienez, zentzu pixka bat egiten du, hala nola, gauzak idatziz. 728 00:46:25,850 --> 00:46:30,760 Hauek makina argibideak dira, eta joan behera bada funtzio nagusia hemen 729 00:46:30,760 --> 00:46:35,470 nabarituko ez dagoela push Instrukzio hau da, mugitu instrukzioa, agindua kendu 730 00:46:35,470 --> 00:46:38,550 Instrukzio deitu, eta abar. 731 00:46:38,550 --> 00:46:42,930 Ordenagailua Intel barruan entzuten baduzu, 732 00:46:42,930 --> 00:46:46,180 duzu zure Mac edo PC Intel CPU bat, zer esan nahi du horrek? 733 00:46:46,180 --> 00:46:51,200 CPU A Intel zenbait argibideak ulertzeko bezalako enpresen eraiki dator. 734 00:46:51,200 --> 00:46:55,770 Ez daki zer swap bezala funtzio edo nagusiak per se dute, 735 00:46:55,770 --> 00:47:00,060 baina ez dakit zer Oso baxua-maila argibideak bezala gehitu dute ez, kendu, bultza, 736 00:47:00,060 --> 00:47:02,430 mugitzeko, deitu, eta abar dira. 737 00:47:02,430 --> 00:47:06,170 C kodea konpilatu muntaia hizkuntza 738 00:47:06,170 --> 00:47:11,820 zure oso lagungarri begira kodea itxura zerbait bihurtu da, 739 00:47:11,820 --> 00:47:21,670 literalki mugitzen byte edo 4 byte PUZaren unitate txikiak, hala nola inguruan. 740 00:47:21,670 --> 00:47:26,820 Baina, azkenik, Clang da, zure programa ordezkaritza hori hartzeko prest 741 00:47:26,820 --> 00:47:30,940 0 s eta, 1s, orduan, urrats izeneko muntaia gertatzen sartu, 742 00:47:30,940 --> 00:47:33,850 eta hau guztia berriro begi baten keinu gertatzen da Clang exekutatzen ari da. 743 00:47:33,850 --> 00:47:39,300 Hemen hasiko gara, hau bezalako fitxategi bat irteerak, eta, ondoren, 0 s eta 1s horiek bihurtzen du. 744 00:47:39,300 --> 00:47:42,000 Eta atzera uneren batean, eta egia esan, ekintza hau ikusteko nahi duzun bada, 745 00:47:42,000 --> 00:47:48,220 - hello1.c-hau da, programak oso lehen begiratu dugu I joan bada 746 00:47:48,220 --> 00:47:53,710 normalean hau konpilatu genuke Clang hello1.c eta gurekin luke a.out. 747 00:47:53,710 --> 00:47:59,890 Kontrastea bada eman ordez-S Ez, zer lortuko da hello1.s 748 00:47:59,890 --> 00:48:02,750 eta benetan ikusiko dituzu muntaketa hizkuntza. 749 00:48:02,750 --> 00:48:05,750 >> Joan beharko duzu, hau oso labur programa egiten ari naiz, baina itzuli bada Scramble 750 00:48:05,750 --> 00:48:08,740 edo Berreskuratu edo idatzi duzun edozein programa eta jakin-mina besterik ez out 751 00:48:08,740 --> 00:48:13,240 nahi, zer itxura da benetan, hala nola zer, benetan ari PUZaren elikatzen ikusteko 752 00:48:13,240 --> 00:48:15,700 dela-S Ez erabili ahal izango duzu Clang. 753 00:48:15,700 --> 00:48:17,770 Baina orduan, azkenik, ez da oraindik Gotcha bat. 754 00:48:17,770 --> 00:48:21,810 Hona hemen, 0 s eta 1s ordezkatzen dituzten nire kaixo, mundu ezartzeko. 755 00:48:21,810 --> 00:48:25,530 Baina beste norbaitek nire programa funtzioa erabiltzen dut. 756 00:48:25,530 --> 00:48:28,710 Beraz, nahiz eta prozesua izan hello.c hartzen dut, 757 00:48:28,710 --> 00:48:34,280 muntaia kodea konpilatuta du, eta, ondoren, 0 s eta 1s sartu muntatu du, 758 00:48:34,280 --> 00:48:37,460 bakarra 0 s eta 1s diren une honetan outputted 759 00:48:37,460 --> 00:48:40,270 direnak nire kodea emaitza dira. 760 00:48:40,270 --> 00:48:44,400 Baina nork idatzi printf pertsona, bere kodea konpilatu dute, duela 20 urte 761 00:48:44,400 --> 00:48:47,000 eta instalatu nonbait tresnaren 762 00:48:47,000 --> 00:48:51,610 beraz, nolabait, bere 0 s eta nire 0 s eta 1s 1s batu, 763 00:48:51,610 --> 00:48:56,160 eta hori konpilatzean 4. urratsa eta behin betiko estekatzeko gisa ezaguna, dizkigu. 764 00:48:56,160 --> 00:48:58,680 Beraz, ezkerraldean zehatza irudi bera dugu, orain arte bezala: 765 00:48:58,680 --> 00:49:02,580 hello.c bihurtzen muntaia kodea 0 s bihurtzen da eta 1s. 766 00:49:02,580 --> 00:49:05,960 Baina gogoratzen I / O liburutegi estandarrak erabiltzen dut nire kodea, 767 00:49:05,960 --> 00:49:10,350 eta horrek esan nahi du nonbait ordenagailuan izeneko fitxategi bat stdio.c 768 00:49:10,350 --> 00:49:13,980 edo, gutxienez, konpilatu haren delako norbait duela urte batzuk 769 00:49:13,980 --> 00:49:18,530 konpilatu stdio.c muntaia kodea sartu eta gero, 0 s eta 1s sorta osoa. 770 00:49:18,530 --> 00:49:21,130 Hau da, zer estatiko bat edo liburutegi dinamiko bat bezala ezagutzen. 771 00:49:21,130 --> 00:49:23,350 Fitxategi batzuk nonbait eserita aparatuaren da. 772 00:49:23,350 --> 00:49:28,710 >> Baina, azkenik, nire 0 s eta 1s hartu behar dut eta pertsona 0 s eta 1s 773 00:49:28,710 --> 00:49:32,760 eta, nolabait, lotu elkarrekin, literalki 0 s horiek konbinatzeko eta 1s 774 00:49:32,760 --> 00:49:37,900 a.out edo hello1 edo edozein izeneko fitxategi bakar bat sartu nire programa izeneko I 775 00:49:37,900 --> 00:49:43,320 beraz, azken emaitza 1s eta 0 s nire programa konposatzen. 776 00:49:43,320 --> 00:49:45,660 Une honetan seihilekoan hori guztia daramat Clang erabiliz Beraz 777 00:49:45,660 --> 00:49:48,750 eta, are gehiago duela gutxi egin exekutatzen ordena Clang exekutatu, 778 00:49:48,750 --> 00:49:53,580 urrats hauek guztiak dira sort gertatzen ari den eta berehala-, baina oso nahita. 779 00:49:53,580 --> 00:49:57,830 Eta horrela jarraitu informatika, hain zuzen CS61 780 00:49:57,830 --> 00:50:00,850 honetan egingo jarraituko back zuritu ez off geruza da 781 00:50:00,850 --> 00:50:06,980 eraginkortasun, segurtasun inplikazio, eta horiek maila txikiagoa xehetasunak bezala buruz hitz egiten. 782 00:50:06,980 --> 00:50:09,220 Baina hori, C eta atzean utzi dugu. 783 00:50:09,220 --> 00:50:11,420 Dezagun aurrera eta 5 minutuko gure break hartu gaur egun, 784 00:50:11,420 --> 00:50:14,190 eta noiz itzuli gara: Internet. 785 00:50:17,280 --> 00:50:19,170 Guztiak eskubidea. Itzuli gara. 786 00:50:19,170 --> 00:50:23,590 Orain hasiko gara gure itxura ez bakarrik HTML, izan ere, ikusiko duzu gisa, 787 00:50:23,590 --> 00:50:26,050 HTML bera da, benetan pretty simple 788 00:50:26,050 --> 00:50:29,270 baina benetan web programazioa, oro har, gehiago, oro har, sarean, 789 00:50:29,270 --> 00:50:31,770 eta nola teknologia hauek guztiak confluyen 790 00:50:31,770 --> 00:50:35,400 Internet askoz ere sofistikatuagoa programak sortzeko atop ahal izateko 791 00:50:35,400 --> 00:50:38,690 beraz, orain arte baino izan gara gai horiek zuri-beltza eta leihoak. 792 00:50:38,690 --> 00:50:42,140 Izan ere, puntu hau seihilekoan, nahiz eta nahiko denbora gutxiago pasatzeko egingo dugu 793 00:50:42,140 --> 00:50:46,200 PHP, HTML, CSS, JavaScript, SQL eta gehiago, 794 00:50:46,200 --> 00:50:48,480 ikasle gehienek do amaieran sortu diren web-oinarritutako proiektuak behin betiko egiten 795 00:50:48,480 --> 00:50:51,230 ikusiko dituzu, hondoa delako C duzu 796 00:50:51,230 --> 00:50:54,450 oso goi-mailako hizkuntza horietan dagokio. 797 00:50:54,450 --> 00:50:56,800 >> Eta hasten zara pentsatzen zure proiektua behin betiko, 798 00:50:56,800 --> 00:50:59,940 Izan ere, askoz Arazoa Ezarri 0 bezala, non zinen animatu 799 00:50:59,940 --> 00:51:02,160 gehienak interes ezer egin behar duzu Scratch, 800 00:51:02,160 --> 00:51:05,790 azken proiektua da zure aukera zure newfound ezagutza eta adituentzat C 801 00:51:05,790 --> 00:51:09,850 edo PHP edo JavaScript edo spin bat nahi 802 00:51:09,850 --> 00:51:12,330 eta zure munduko software pieza sortu. 803 00:51:12,330 --> 00:51:17,770 Eta hazia, ideiak, badakigu hemen duzu buru daiteke, projects.cs50.net. 804 00:51:17,770 --> 00:51:21,800 Urtero, irakasle eta langileen ideiak eta ikasle talde solicit dugu campus 805 00:51:21,800 --> 00:51:27,330 besterik gabe, gauza interesgarri ordenagailuak erabiliz konpondu behar da, bere ideiak aurkeztu 806 00:51:27,330 --> 00:51:29,860 webgune, software erabiliz. 807 00:51:29,860 --> 00:51:32,360 Beraz, bada, zeure ideia bat etortzen ari zaren borrokan, 808 00:51:32,360 --> 00:51:35,790 baliabide guztiak ideiak mugitzeko dago aurten eta azken. 809 00:51:35,790 --> 00:51:39,990 Primeran ados que ha sido aurre egin baino lehen proiektu bat aurre egiteko da. 810 00:51:39,990 --> 00:51:44,540 Garbitegia egoera ikusteko campus apps asko ikusi dugu, 811 00:51:44,540 --> 00:51:47,000 jantokia menu nabigatzeko apps asko, 812 00:51:47,000 --> 00:51:49,540 ikastaro-katalogoa eta bezala nabigatzeko apps asko. 813 00:51:49,540 --> 00:51:53,680 Eta, hain zuzen ere, etorkizuneko hitzaldi eta mintegiak, etorkizunean, 814 00:51:53,680 --> 00:51:57,750 aurkezten izango dugu, publikoki eskuragarri APIak batzuk, bai eta merkatuan eskuragarri dauden 815 00:51:57,750 --> 00:52:02,520 eta hemen eskuragarri CS50 campusean beraz, datuak sartu behar duzu 816 00:52:02,520 --> 00:52:04,910 eta ondoren egin daiteke interesgarria gauzak. 817 00:52:04,910 --> 00:52:09,380 Beraz, proiektu azken egun batzuk zehaztapena askatzen dugu, 818 00:52:09,380 --> 00:52:12,990 baina orain, jakin bakarkako lan egin daiteke edo bat edo bi lagunekin 819 00:52:12,990 --> 00:52:16,010 zuretzat edozein proiektu. 820 00:52:16,010 --> 00:52:18,080 Internet. 821 00:52:18,080 --> 00:52:22,300 Aurrera duzu eta zure ordenagailu eramangarria tira, joan facebook.com lehenengo aldiz, 822 00:52:22,300 --> 00:52:27,020 Duela gutxi ez balitz sartu eta sakatu Sartu. Zer gertatzen da zehazki? 823 00:52:27,020 --> 00:52:30,150 >> Sartu hit duzu zure ordenagailuan, urrats sorta oso bat 824 00:52:30,150 --> 00:52:32,600 magikoki gertatzen sort hasteko. 825 00:52:32,600 --> 00:52:35,960 Beraz, hemen duzu, ezkerrean Facebook bezalako web zerbitzari hemen eskuineko 826 00:52:35,960 --> 00:52:42,500 eta, nolabait, HTTP, Hypertext Transfer Protocol izeneko hizkuntza hau erabiltzen ari zara. 827 00:52:42,500 --> 00:52:46,770 HTTP ez da programazio-lengoaia bat. Protokolo bat baino gehiago da. 828 00:52:46,770 --> 00:52:52,310 Web nabigatzaile eta web zerbitzariak erabiltzen duten intercommunicating konbentzio multzo bat da. 829 00:52:52,310 --> 00:52:54,360 Eta zer esan nahi hau honela da. 830 00:52:54,360 --> 00:52:56,790 Much mundu errealean bezala, konbentzio hauek ditugu 831 00:52:56,790 --> 00:53:00,140 non lehen aldiz giza batzuk betetzen bada, axola ez baduzu me humoring hemen, 832 00:53:00,140 --> 00:53:03,980 Etorri liteke, esan, "Kaixo, nire izena da David." >> Hi, David. Nire izena Sammy da. 833 00:53:03,980 --> 00:53:05,770 "Hi, David. Nire izena Sammy da." 834 00:53:05,770 --> 00:53:08,310 Beraz, gaur egun besterik ez dugu giza silly protokoloaren sort honetan diharduten 835 00:53:08,310 --> 00:53:12,200 protokoloa abian dut, Sammy erantzun du, 836 00:53:12,200 --> 00:53:15,060 astintzea dugu eskuak, eta transakzio osoa da. 837 00:53:15,060 --> 00:53:18,260 HTTP izpiritua oso antzekoa da. 838 00:53:18,260 --> 00:53:23,350 Zure web nabigatzailearen eskaerak www.facebook.com 839 00:53:23,350 --> 00:53:27,020 zer zure nabigatzailean benetan egiten ari da bere eskua zabalduz, eta, beraz, hitz egiten, 840 00:53:27,020 --> 00:53:29,960 zerbitzariak eta mezu bat bidaltzeko. 841 00:53:29,960 --> 00:53:34,220 Eta mezu hori da normalean get antzeko zerbait zer lortu nahi duzu? 842 00:53:34,220 --> 00:53:38,740 get me home page, URL baten amaieran single barra bidez adierazten da normalean. 843 00:53:38,740 --> 00:53:43,790 Eta besterik ez, beraz, badakizu zer hizkuntza hitz egiten dut, nire nabigatzailea am esango 844 00:53:43,790 --> 00:53:46,930 I HTTP 1.1 bertsioa naiz hitz egiten, 845 00:53:46,930 --> 00:53:51,980 Eta, gainera, neurri ona, esango dut joan ostalari home page nahi dut 846 00:53:51,980 --> 00:53:54,120 facebook.com da. 847 00:53:54,120 --> 00:53:57,730 Normalean, web nabigatzailea, duzu unbeknownst, giza 848 00:53:57,730 --> 00:54:03,350 Mezu hau bidaltzen Internet zehar www.facebook.com idatzi besterik ez duzu, 849 00:54:03,350 --> 00:54:05,370 >> Sartu, eta zure nabigatzailean. 850 00:54:05,370 --> 00:54:07,300 Eta zer ez Facebook erantzuteko? 851 00:54:07,300 --> 00:54:12,540 Erantzuten batzuk begira antzeko xehetasunak críptica baina askoz ere gehiago da. 852 00:54:12,540 --> 00:54:14,310 Dezagun aurrera me Facebook etxeko orria hemen. 853 00:54:14,310 --> 00:54:17,480 Pantaila gurekin gehienak seguruenik inoiz egonaldia denbora guztia hasi baduzu, 854 00:54:17,480 --> 00:54:19,830 da, baina hau, hain zuzen ere, bere etxeko orria. 855 00:54:19,830 --> 00:54:24,150 Egiten dugu hau bada Chrome, nabarituko duzula tira testuinguru menuak txiki horiek. 856 00:54:24,150 --> 00:54:26,980 Chrome erabiliz, Mac OS, Windows, Linux, edo antzeko ala ez, 857 00:54:26,980 --> 00:54:31,840 kontrola egin klik edo klik egin saguaren ezkerreko botoiarekin bada, normalean dezakezu tira menua honen itxura 858 00:54:31,840 --> 00:54:35,870 non aukera batzuk zain, eta horietatik bat View Page Source da. 859 00:54:35,870 --> 00:54:39,920 Ere egin dezakezu gauza horiek normalean View menu joan eta inguruan poking. 860 00:54:39,920 --> 00:54:42,750 Esate baterako, hemen ikusi pean, Garatzaile gauza bera da. 861 00:54:42,750 --> 00:54:45,780 Aurretik joan eta begiratu View Page Source noa. 862 00:54:45,780 --> 00:54:50,800 Zer ikusiko duzu HTML Mark idatzi du facebook.com irudikatu nahi da. 863 00:54:50,800 --> 00:54:55,910 Gaizki osoa da hemen, baina hori apur bat gehiago zentzuzkoa luzea aurretik dugu. 864 00:54:55,910 --> 00:54:59,840 Baina hemen eredu batzuk daude. Behera joan me hau atsegin stuff. 865 00:54:59,840 --> 00:55:05,730 Gogor hau da, giza-, irakurri, baina konturatu ez dagoela da parentesi artean angeluarekin patroi hau 866 00:55:05,730 --> 00:55:10,360 aukera, keywords balio bezala, zenbait quoted kateak bezala, gako-hitzak. 867 00:55:10,360 --> 00:55:15,660 Hau da, non, sinatu zuten denbora oso lehen, zehaztu zein den zure jaiotza urtea da. 868 00:55:15,660 --> 00:55:19,020 Hemen jaiotza urte menua goitibeherako hori nolabait kodetuta 869 00:55:19,020 --> 00:55:23,870 HTML, Hipertestua Markatzeko Lengoaia izeneko hizkuntza honetan. 870 00:55:23,870 --> 00:55:27,730 Beste era batera esanda, zure nabigatzailean web-orri bat eskatzen denean, 871 00:55:27,730 --> 00:55:30,610 HTTP izeneko hitzarmen hau hitz egiten da. 872 00:55:30,610 --> 00:55:35,170 Baina, zer ez facebook.com eskaera horri erantzuteko? 873 00:55:35,170 --> 00:55:38,260 >> Erantzuten batzuk mezuak críptica horiek, une batean ikusi dugu. 874 00:55:38,260 --> 00:55:43,760 Baina bere erantzuna HTML, Hipertestua Markatzeko Lengoaia da. 875 00:55:43,760 --> 00:55:47,170 Hori da benetako hizkuntza, web orri bat idatzi. 876 00:55:47,170 --> 00:55:52,030 Eta zer da web nabigatzaile baten benetan ez gero, hau da, zerbait itxura hau jaso ondoren. 877 00:55:52,030 --> 00:55:57,120 irakurtzen du, goitik behera, ezkerretik eskuinera, eta edonoiz angeluarekin parentesi artean horietako bat ikusten da 878 00:55:57,120 --> 00:56:03,370 aukera bezala keyword ondoren, hizkuntza modu egokian markup hori erakusten du. 879 00:56:03,370 --> 00:56:06,820 Kasu honetan, urte goitibeherako menu erakutsi litzateke. 880 00:56:06,820 --> 00:56:09,240 Baina, berriro ere, hau begiratzen osoa nahaspila da. 881 00:56:09,240 --> 00:56:16,630 Hau ez da Facebook garatzaileei adierazten 5 0 delako estiloa, esaterako. 882 00:56:16,630 --> 00:56:20,190 Kodea idazten duten gehienek delako hori, hain zuzen ere, idatzizko beautifully 883 00:56:20,190 --> 00:56:22,450 ondo, nicely koska, eta antzekoak, 884 00:56:22,450 --> 00:56:26,080 baina ikastaro makinak, ordenagailuak, nabigatzaile benetan ez eman maldita 885 00:56:26,080 --> 00:56:27,890 Zure kodea ez da ongi-styled. 886 00:56:27,890 --> 00:56:33,100 Eta, hain zuzen ere, guztiz wasteful tab tekla garai horiek guztiak 887 00:56:33,100 --> 00:56:37,650 eta iruzkinak jarri guztietan zure kodea zehar eta benetan aldakorra izen deskriptibo aukeratzeko 888 00:56:37,650 --> 00:56:42,340 nabigatzailea bada, ez du axola, egunaren amaieran guztiak egiten ari zarenean bytes alferrik galtzen da. 889 00:56:42,340 --> 00:56:46,660 >> Beraz, izarrekin bihurtzen da zer gehienak webgune egin da, nahiz eta iturburu kodea: facebook.com, 890 00:56:46,660 --> 00:56:49,550 cs50.net eta beste webgune horiek guztiak Interneten 891 00:56:49,550 --> 00:56:53,730 ohi dira ongi idatzi eta ongi iruzkindu eta nicely koska eta atsegin, 892 00:56:53,730 --> 00:56:59,270 normalean web Internet gainean jarri aurretik, kodea minified 893 00:56:59,270 --> 00:57:02,970 Horren bidez, HTML eta CSS zerbait laster ikusi dugu - 894 00:57:02,970 --> 00:57:05,960 JavaScript kodea laster ikusi dugu konprimiturik dago, 895 00:57:05,960 --> 00:57:09,250 Horren bidez, izen luze aldakorra bihurtu X eta Y eta Z, 896 00:57:09,250 --> 00:57:13,900 eta zuriuneak hori guztia begiratu beraz irakurgarria que hace guztiak bota 897 00:57:13,900 --> 00:57:17,700 Modu honetan uste baduzu, Facebook milioi orri bat lortzen delako egun bat hits 898 00:57:17,700 --> 00:57:21,670 horrelako zerbait crazy - beraz, zer programatzailea anal izan nahi izanez gero 899 00:57:21,670 --> 00:57:26,660 sakatu zuriune-barra extra denbora bat, besterik gabe, kode lerro bat koskatzeko inoiz beraz, askoz gehiago? 900 00:57:26,660 --> 00:57:29,500 Zer inplikazioa Facebook bada mantentzen zuriunez 901 00:57:29,500 --> 00:57:32,880 Byte guztiak atzera bidaltzen dute jendea Interneten? 902 00:57:32,880 --> 00:57:36,400 Zuriune-barra sakatuz behin ematen dizu zure koadernoan byte extra bat. 903 00:57:36,400 --> 00:57:39,730 Eta milioi pertsonak ez bada, ondoren, jarraitu hasierako orria deskargatzeko egun horretan, 904 00:57:39,730 --> 00:57:42,060 zenbat datu gehiago transmititzen dute Internet bidez? 905 00:57:42,060 --> 00:57:45,200 Pisuzko arrazoirik gabe gigabyte. 906 00:57:45,200 --> 00:57:48,510 Eta eman, webgune asko ez da eskalagarria gai bat, hala nola, 907 00:57:48,510 --> 00:57:51,030 baina, Facebook, Google, gehien webgune batzuk 908 00:57:51,030 --> 00:57:54,860 pizgarri handia da ekonomikoki zure kodea gaizki itxura 909 00:57:54,860 --> 00:57:58,980 beraz, ahalik eta bytes batzuk gisa ari zara gero konprimitzea gain erabiliz 910 00:57:58,980 --> 00:58:01,500 zip antzeko zerbait erabiliz, izeneko algoritmo bat gzip, 911 00:58:01,500 --> 00:58:04,250 nabigatzailea ez automatikoki. Baina hori awful. 912 00:58:04,250 --> 00:58:08,060 Ez dugu inoiz ezer beste pertsona webgune buruz ikasten eta nola, web orriak diseinatzeko 913 00:58:08,060 --> 00:58:09,680 dugu begiratu hau atsegin dute. 914 00:58:09,680 --> 00:58:13,620 >> Beraz, zorionez, Chrome eta IE eta Firefox bezalako nabigatzaile egun hauetan 915 00:58:13,620 --> 00:58:16,450 normalean-in eraikitako developer tresnak dakartzate. 916 00:58:16,450 --> 00:58:21,730 Izan ere, joan I behera hemen Inspect Element edo Ikusi Garatzailearen joaten naiz, 917 00:58:21,730 --> 00:58:25,220 eta garapen tresnak esplizituki, 918 00:58:25,220 --> 00:58:27,640 nire pantailaren behealdeko leiho hau azalduko da. 919 00:58:27,640 --> 00:58:31,230 Pixka bat beldurra da lehenengo fitxak ezezagunetan asko direlako, hemen, 920 00:58:31,230 --> 00:58:34,510 baina Elements klik eginez gero bidea beheko ezkerreko 921 00:58:34,510 --> 00:58:38,810 Chrome da, jakina, pretty smart. Kode hau guztia interpretatzen daki. 922 00:58:38,810 --> 00:58:42,320 Eta beraz, zer Chrome ez da garbitzen Facebook HTML guztiak. 923 00:58:42,320 --> 00:58:45,680 Nahiz eta ez zuriuneak ez dago, ez dago ez dago koska, 924 00:58:45,680 --> 00:58:51,120 gaur egun nabarituko web orrian nabigatzeko gehiago hierarkikoki has daiteke. 925 00:58:51,120 --> 00:58:56,910 Bihurtzen da HTML5 izeneko hizkuntza batean idatzitako web orrialde bakoitzean behar duen honekin hasteko, 926 00:58:56,910 --> 00:59:03,980 DOCTYPE deklarazio hori, eta, beraz, hitz egiten: 927 00:59:03,980 --> 00:59:07,840 Argi eta gris, ez dago mota da, baina kode-lerro oso fitxategi honetako lehen, 928 00:59:07,840 --> 00:59:12,080 eta nabigatzailea kontatzen du, "Hey, hemen HTML5 batzuk dator. Hona hemen web orri bat dator." 929 00:59:12,080 --> 00:59:18,490 Haratago irekita lehen parentesia gertatzen da hori, parentesia HTML tag irekia izango da, 930 00:59:18,490 --> 00:59:22,320 eta, ondoren, sakonago I murgiltze - geziak hauek guztiz zentzugabeak dira; 931 00:59:22,320 --> 00:59:25,140 dira aurkezpen-en mesedetan, haiek ez dira benetan fitxategia 932 00:59:25,140 --> 00:59:30,300 nabarituko dela Facebook HTML etiketa barruan, irekia parentesirik batekin hasten da ezer 933 00:59:30,300 --> 00:59:32,910 eta, ondoren, hitz bat izeneko etiketa bat. 934 00:59:32,910 --> 00:59:38,610 Beraz, HTML etiketa baten barruan itxuraz Burua tag tag eta gorputz. 935 00:59:38,610 --> 00:59:41,930 Burua tag Inside Facebook nahaspila osoa 936 00:59:41,930 --> 00:59:45,620 dute marketing eta publizitate metadatuak eta beste gauza asko bat delako. 937 00:59:45,620 --> 00:59:50,600 >> Baina joan gara behera, behera, behera, behera, ikus dezagun non dagoen. Hemen da. 938 00:59:50,600 --> 00:59:52,210 Hau da, gutxienez, zertxobait ezagutzen. 939 00:59:52,210 --> 00:59:55,990 Facebook etxeko orria izenburua, fitxa al duzu inoiz bada, begiratu zure titulu-barra, 940 00:59:55,990 --> 00:59:59,060 Welcome to Facebook - saioa, Erregistratu edo gehiago ikasi. 941 00:59:59,060 --> 01:00:01,110 Hori da, zer ikusi nahi duzun Chrome titulu-barra, 942 01:00:01,110 --> 01:00:03,100 eta hori nola kode irudikatzen. 943 01:00:03,100 --> 01:00:08,090 Alde batetara utzi dugu beste guztia buruan bada, web orri bat ausartuko gorputza dira, 944 01:00:08,090 --> 01:00:10,940 eta bihurtzen da, Facebook-en kodea duten itxura konplexuagoa 945 01:00:10,940 --> 01:00:14,540 gauza gehienak baino, hasieran idazten dugu besterik ez delako eraiki dira urteetan zehar, 946 01:00:14,540 --> 01:00:17,260 baina ez dago script tags asko, JavaScript kodea, 947 01:00:17,260 --> 01:00:18,870 horri esker, web oso interaktiboa: 948 01:00:18,870 --> 01:00:22,330 berehala JavaScript bezalako hizkuntza egoera-eguneratzeak ikusteko. 949 01:00:22,330 --> 01:00:25,270 Bada zerbait izeneko div bat, orri baten banaketa bat da. 950 01:00:25,270 --> 01:00:27,940 Baina zehatz-mehatz hori baino lehen iritsi, utzi zooma saiatu en 951 01:00:27,940 --> 01:00:31,920 eta Facebook 1.0 bertsio bat errazagoa begiratu, eta, beraz, hitz egiten. 952 01:00:31,920 --> 01:00:34,740 Hona hemen web orrialdeak, kaixo mundua da. 953 01:00:34,740 --> 01:00:37,370 DOCTYPE deklarazioa dela uste du, oso goian 954 01:00:37,370 --> 01:00:40,280 hau da, pixka bat beste guztia. 955 01:00:40,280 --> 01:00:46,130 Besterik ez, web orri bat idatzi dugu 01:00:48,880 eta zerbait HTML iruzkinak izeneko ezik. 957 01:00:48,880 --> 01:00:53,000 Baina gehienetan, web orri batean dena irekia bracket, keyword, parentesia itxi da. 958 01:00:53,000 --> 01:00:56,220 >> Kasu honetan, web orriak ahalik eta errazena ikusi ahal izango duzu. 959 01:00:56,220 --> 01:01:00,260 HTML tag burua tag bat dauka, eta tag gorputz bat dauka, 960 01:01:00,260 --> 01:01:04,580 baina ez hasi eta gelditu tags nozioa. 961 01:01:04,580 --> 01:01:11,360 HTML tag hasierako itxi da, hau da, etiketa edo tag amaiera da. 962 01:01:11,360 --> 01:01:15,400 Iragarki aurkakoen zentzu ordenatu Oraindik dutela close tag edo amaiera tag 963 01:01:15,400 --> 01:01:20,030 du hau aurrera barra beraren barruan. 964 01:01:20,030 --> 01:01:23,540 Bien bitartean, buru irekia dago tag hemen eta itxi burua tag hemen. 965 01:01:23,540 --> 01:01:26,880 >> Irekia dago, izenburua eta itxi title tag hemen. 966 01:01:26,880 --> 01:01:29,850 Izan ere, izenburua jarri ditudan lerro bat, guztiz arbitrarioa. 967 01:01:29,850 --> 01:01:33,760 Begiratu nicely egokitzen atsegin lerro bat besterik ez da, beraz, ez dut traba Sartu pare bat aldiz sakatuz. 968 01:01:33,760 --> 01:01:38,200 Bien bitartean, gorputz nuen koska besterik ez inoiz hain argi izan behar du. 969 01:01:38,200 --> 01:01:41,050 Oharra HTML pretty muda hizkuntza da. 970 01:01:41,050 --> 01:01:43,410 Izan ere, ez ziren eguneko WYSIWYG editoreak aurretik 971 01:01:43,410 --> 01:01:46,770 eta Microsoft Word non esan dezakezu "bold honetan, letra etzanez honetan," 972 01:01:46,770 --> 01:01:50,850 benetan, little komandoak saiakera idatzi nahi duzun Duela 20 + urte 973 01:01:50,850 --> 01:01:55,740 Horren bidez, esan nahi duzu, "Hasi testu hau idatzi. Gelditu testu hau idatzi." 974 01:01:55,740 --> 01:01:59,010 "Hasi testua letra etzanez hau egiteko. Gelditu testua letra etzanez hau." 975 01:01:59,010 --> 01:02:01,850 >> Hori zer da HTML edo markup edozein hizkuntza. 976 01:02:01,850 --> 01:02:05,530 Lehenengo Etiketa honek dioenez, "Hey, nabigatzailea. Hona hemen HTML batzuk dator." 977 01:02:05,530 --> 01:02:09,880 Hurrengo tag dio, "Hey, nabigatzailea. Hemen burua, nire web orriaren goiburua dator." 978 01:02:09,880 --> 01:02:11,650 "Hey, nabigatzailea. Izenburua dator." 979 01:02:11,650 --> 01:02:15,880 Eta gero, hemen baino gehiago, "Hey, nabigatzailea Hori da. Izenburua da" 980 01:02:15,880 --> 01:02:20,000 Beraz, hau da, nabigatzaileak badaki nola jada ez erakutsi pertsonaiak kaixo baino gehiago, munduko 981 01:02:20,000 --> 01:02:21,860 title bar. 982 01:02:21,860 --> 01:02:23,640 Bien bitartean, hau dio: "Hori da. Burua" 983 01:02:23,640 --> 01:02:28,340 Honek dioenez, "Hemen gorputza dator Hemen da benetako organoa da." - Literalki, hitzak kaixo, mundua. 984 01:02:28,340 --> 01:02:33,190 Eta hau dio hemen, "Hori da gorputza. Hori da, HTML kodea." 985 01:02:33,190 --> 01:02:34,640 Beraz, nabigatzaileak dira pretty muda. 986 01:02:34,640 --> 01:02:39,920 Stuff hau goitik behera, ezkerretik eskuinera irakurri besterik ez dute, eta ez zehazki zer kontatu egin dira. 987 01:02:39,920 --> 01:02:41,860 Dezagun benetan egiten little hemen adibide bat. 988 01:02:41,860 --> 01:02:46,240 Ireki me programak errazena nire Mac hemen, hain zuzen TextEdit. 989 01:02:46,240 --> 01:02:48,220 Windows On Notepad.exe erabili ahal izango duzu. 990 01:02:48,220 --> 01:02:50,520 Baina hau da, web orriak egiten hasteko behar duzun guztia. 991 01:02:50,520 --> 01:02:53,730 Aurretik joan eta kopiatu eta itsatsi kode hau fitxategi horretan txertatu dut. 992 01:02:53,730 --> 01:02:57,210 Aurretik joan eta nire mahaigainean gorde noa, 993 01:02:57,210 --> 01:03:01,220 eta hau gorde hello.html gisa noa, 994 01:03:01,220 --> 01:03:03,840 eta, gaur egun, fitxategi izeneko hello.html. 995 01:03:03,840 --> 01:03:05,690 Hemen da nire mahaigainean. 996 01:03:05,690 --> 01:03:11,130 Nabigatzaile batean me joan eta fitxategia arrastatu nabigatzailean. 997 01:03:11,130 --> 01:03:14,060 Eta voila, hona hemen nire lehen web orria da. 998 01:03:14,060 --> 01:03:17,340 Oharra fitxan izenburua dela kaixo, mundua, title tag bakoitzeko 999 01:03:17,340 --> 01:03:20,040 eta aldez aurretik abisatu kaixo, munduko gorputza da nire web orrian, 1000 01:03:20,040 --> 01:03:22,190 eta woo-Hoo, naiz Interneten. 1001 01:03:22,190 --> 01:03:24,700 >> Ez nago benetan, eskuinera, fitxategi hau ez dagoelako Interneten. 1002 01:03:24,700 --> 01:03:28,330 Gertatzen da, nire bide jakin disko gogor lokalean. 1003 01:03:28,330 --> 01:03:32,720 Baina ideia berdina da. Guztiak behar dugu, web zerbitzariak zein igo da. 1004 01:03:32,720 --> 01:03:37,410 Baina lehenengo dezagun benetan aurkeztu apur bat gehiago konplexutasuna eta apur bat gehiago stylization. 1005 01:03:37,410 --> 01:03:39,890 Sinple bat, aspergarria bada, web orrialdea da. 1006 01:03:39,890 --> 01:03:41,990 Tags erabili ahal izango dugu beste mota daude out bihurtzen da. 1007 01:03:41,990 --> 01:03:45,530 Esate baterako, horia hemen sartu dut Etiketa berriak 2. 1008 01:03:45,530 --> 01:03:49,630 Ez dugu play askoz gaur egun horiek, baina nabarituko link etiketa 1009 01:03:49,630 --> 01:03:52,520 nolabait esateko, beste guztia itxura from desberdina da. 1010 01:03:52,520 --> 01:03:55,370 Link etiketa hartzen du zer deitzen dira atributuak 1011 01:03:55,370 --> 01:03:59,770 eta atributu bat etiketa baten portaera aldatzen duen zerbait da. 1012 01:03:59,770 --> 01:04:03,840 Kasu honetan, izenak, esteka hau ez da aukerarik onena, bere mota ere zentzugabeak, 1013 01:04:03,840 --> 01:04:11,590 , baina esteka tag hau dio, funtsean, izeneko fitxategia styles.css nire web orriaren barruan, besteak beste. 1014 01:04:11,590 --> 01:04:15,400 Antzeko hau C # include direktiba dela pentsa dezakezu. 1015 01:04:15,400 --> 01:04:19,650 Styles.css da guztiz, beste hizkuntza bat aipatuz egingo dugu, gaur ez jolasteko, 1016 01:04:19,650 --> 01:04:23,790 baina estetika da: letra-tamainak, koloreak, betegarria, koska, marjinak, 1017 01:04:23,790 --> 01:04:26,040 eta estetika mota horren xehetasun guztiak. 1018 01:04:26,040 --> 01:04:28,820 Bien bitartean, script etiketa funtzionalki antzekoa da, 1019 01:04:28,820 --> 01:04:33,140 baizik include CSS, hizkuntza horretan baino, beste hizkuntza bat, JavaScript ditu. 1020 01:04:33,140 --> 01:04:37,810 Beraz, beste era batera esanda, 2 tags hauekin azkenean egingo dut nire web-orria idatzi ahal izango 1021 01:04:37,810 --> 01:04:41,490 baina, aldi berean, kode tira I edo beste norbaitek idatzi du 1022 01:04:41,490 --> 01:04:44,350 ahal izateko beste pertsona sorbalda gainean zutik, diseinu ona landu ahal izango dugu, 1023 01:04:44,350 --> 01:04:46,120 kodea komuna out factoring. 1024 01:04:46,120 --> 01:04:49,090 Nik got bada, 10 hainbat web orriak, horrek esan nahi du, nire estetikaren batzuk 1025 01:04:49,090 --> 01:04:52,490 factored out izan daiteke, askoz #, besteak beste, fitxategi ezberdin batean bezala. 1026 01:04:52,490 --> 01:04:54,420 Beraz, hor ari gara. 1027 01:04:54,420 --> 01:04:57,180 Baina dezagun benetan lehen zerbait gehiago fitxategi hau interesgarria. 1028 01:04:57,180 --> 01:05:01,110 >> Berriz ere, hori besterik ez da TextEdit. Ez nago teknikoki Interneten oraindik, baina iritsi dugu. 1029 01:05:01,110 --> 01:05:04,910 Kaixo, mundua apur bat bolder baino bat egin nahiko nuke. 1030 01:05:04,910 --> 01:05:10,890 Beraz, kaixo, dezagun arbitrarioki esan lodia. 1031 01:05:10,890 --> 01:05:15,910 Berriz ere, istorioa berbera da: kaixo, koma, hau bold egiten hasi, 1032 01:05:15,910 --> 01:05:19,730 ondoren, mundu lortzen bold inprimatuta, eta horrek esan nahi du gelditzeko hau inprimatzeko letra lodiz. 1033 01:05:19,730 --> 01:05:24,020 Dezagun aurrera me eta nire fitxategia gorde, itzuli Chrome, ikusi hobe dezakegu dut handiagotzeko, 1034 01:05:24,020 --> 01:05:27,870 eta berritu, eta hori da gaur egun mundu letra lodiz ikusiko duzu. 1035 01:05:27,870 --> 01:05:31,810 Web hiperestekak buruz da, eta, beraz dezagun aurrera, eta hau egin: 1036 01:05:31,810 --> 01:05:38,550 my favorite web da, demagun, youtube.com. 1037 01:05:38,550 --> 01:05:43,810 Save, birkargatu. Ongi da. Ez da gaur egun, web hideousness gain arazo pare bat. 1038 01:05:43,810 --> 01:05:47,310 1, nahiko ziur Sartu hit dut hemen nago. Eta egin nuen. 1039 01:05:47,310 --> 01:05:51,590 Hit ez bakarrik I Sartu, koska ere dut, zer egin dugu estiloa buruz predikatzen praktikatzeko, 1040 01:05:51,590 --> 01:05:54,930 baina nire da eskubidea mundu hurrengo. 1041 01:05:54,930 --> 01:05:58,410 Beraz, zergatik da hau? Nabigatzaileak bakarrik zer egin horiek kontatzeko. 1042 01:05:58,410 --> 01:06:04,010 Ez dut kontatu nabigatzailea, "Break lerroak hona. Txertatu paragrafo apurtu hemen." 1043 01:06:04,010 --> 01:06:07,820 Nabigatzaile Beraz, ez du axola hit I Return 30 aldiz, 1044 01:06:07,820 --> 01:06:10,820 Oraindik nire eskubidea jarri ondoan munduko joan. 1045 01:06:10,820 --> 01:06:15,930 Zer da hemen egin behar izan dut antzeko zerbait esan
line break bat txertatzeko. 1046 01:06:15,930 --> 01:06:17,940 >> Eta, benetan, line break gauza bitxi bat antzeko zerbait da 1047 01:06:17,940 --> 01:06:21,650 ezin delako benetan beste lerro mugitzen hasi, eta, ondoren, zerbait 1048 01:06:21,650 --> 01:06:25,380 eta, ondoren, linea berri bat mugitzen uzteko. Eragiketa atomiko mota da. 1049 01:06:25,380 --> 01:06:28,140 Egin duzu, bai edo ez. Sartu hit duzu, edo ez duzu. 1050 01:06:28,140 --> 01:06:33,390 Beraz br etiketa desberdin bat pixka bat da, eta, beraz, irekia bi ordenatzeko eta ixteko behar dut 1051 01:06:33,390 --> 01:06:35,230 guztiak aldi berean. 1052 01:06:35,230 --> 01:06:37,500 Horretarako sintaxia da. 1053 01:06:37,500 --> 01:06:41,760 Teknikoki, honen antzeko zerbait egin ahal izango duzu HTML bertsio batzuk, 1054 01:06:41,760 --> 01:06:45,600 baina hau besterik ez da ergela, ez dago arrazoirik hasteko eta gelditzeko zerbait delako 1055 01:06:45,600 --> 01:06:48,420 dezakezu izanez gero dena aldi berean. 1056 01:06:48,420 --> 01:06:52,310 Konturatzen HTML5 hori ez da zorrozki behar barrarik hau, 1057 01:06:52,310 --> 01:06:55,410 beraz, testuliburuak eta online baliabide ez duten da ikusi ahal izango duzu, 1058 01:06:55,410 --> 01:06:59,780 baina neurri ona dezagun simetria dut horrela ikusten dugu orain arte landu. 1059 01:06:59,780 --> 01:07:02,870 Horrek esan nahi du, tag dela ireki eta itxi. 1060 01:07:02,870 --> 01:07:05,220 Beraz, gaur egun utzi nire fitxategia gorde nazazu, itzuli hemen. 1061 01:07:05,220 --> 01:07:10,240 Ongi da, eta, beraz, hobeto begiratzeko, badakit Web ezik, hasten da mota klik 1062 01:07:10,240 --> 01:07:13,610 eta, oraindik, youtube hemen ez dirudi ezer eramaten. 1063 01:07:13,610 --> 01:07:17,560 Hau da, nahiz eta itxura esteka bat bezalakoa delako, nabigatzailea ez daki hori per se, 1064 01:07:17,560 --> 01:07:20,670 beraz nabigatzailea kontatu nahi izan dut, hau lotura bat da. 1065 01:07:20,670 --> 01:07:22,620 >> Horretarako anchor etiketa bat erabili: 1066 01:07:22,620 --> 01:07:26,770 01:07:35,900 = "Http://www.youtube.com"> 1068 01:07:35,900 --> 01:07:38,490 eta utzi hau mugitzeko linea berri bat besterik ez, beraz, apur bat gehiago irakurgarria da, 1069 01:07:38,490 --> 01:07:40,060 eta letra tamaina txikitu dut. 1070 01:07:40,060 --> 01:07:43,890 Am oraindik egin dut? N º dikotomia hau izango da. 1071 01:07:43,890 --> 01:07:46,760 Etiketa honek, aingura tag, atributu bat hartu du, hain zuzen ere, 1072 01:07:46,760 --> 01:07:52,900 bere portaera aldatzen du, eta atributu horren balioa da itxuraz YouTube URL-a. 1073 01:07:52,900 --> 01:07:56,380 Baina konturatu dikotomia baizik URL ari zaren, 1074 01:07:56,380 --> 01:08:01,020 horrek ez du esan nahi hitza azpimarratuz zarela eta lotura bat egiten du. 1075 01:08:01,020 --> 01:08:03,960 Izan ere, honen antzeko zerbait izan daiteke. 1076 01:08:03,960 --> 01:08:10,870 Beraz gelditzeko hitz hau itxi aingura tag erabiliz hiperesteka bat egiteko esan behar dut. 1077 01:08:10,870 --> 01:08:12,650 Ohartu ez dut egiten. 1078 01:08:12,650 --> 01:08:15,890 1, hau litzateke guztion denbora galtze bat izan eta ez da beharrezkoa. 1079 01:08:15,890 --> 01:08:19,290 >> Etiketa bat ixteko, aipatu besterik ez duzu etiketaren izena berriro. 1080 01:08:19,290 --> 01:08:21,800 Ez duzu aipatu atributuak edozein. 1081 01:08:21,800 --> 01:08:26,189 Hargatik gorde, atzera bueltatu. Ados, voila, orain urdin eta hiperestekak da. 1082 01:08:26,189 --> 01:08:29,430 Sakatu dut bada, benetan ez dut YouTube joan. 1083 01:08:29,430 --> 01:08:32,529 Beraz, nahiz eta nire web orria ez da Internet bidez, gutxienez, HTML da, 1084 01:08:32,529 --> 01:08:37,930 eta utzi Internet harrapatzeko bada, benetan genuke, azkenean, hemen youtube.com at. 1085 01:08:37,930 --> 01:08:40,670 Eta joan naiz eta hemen nire web orrian. Baina jakinarazteko. 1086 01:08:40,670 --> 01:08:43,120 Phishing eraso bat spam edo ahaztuak duzun inoiz bada, 1087 01:08:43,120 --> 01:08:45,850 gaur egun, bost minutu besterik ez da gauza bera egiteko gaitasuna duzu. 1088 01:08:45,850 --> 01:08:50,920 Hemen joan gara eta zer www.badguy.com antzeko zerbait 1089 01:08:50,920 --> 01:08:59,319 edo dena delakoa sketchy webgunea da, eta, ondoren, esan zure PayPal kontuan egiaztatu dezakezu. 1090 01:08:59,319 --> 01:09:04,840 [Barreak] Eta orain, hau da badguy.com, ez dut egin klik joan 1091 01:09:04,840 --> 01:09:08,000 ez daukat ideia non doan delako. [Barreak] 1092 01:09:08,000 --> 01:09:10,859 >> Baina orain, benetan, azkenean, han gaitasuna. 1093 01:09:10,859 --> 01:09:12,640 Beraz, benetan ari gara azalera urratu hasita. 1094 01:09:12,640 --> 01:09:15,830 Ez gara berez programazioa markup language idazten ari gara. 1095 01:09:15,830 --> 01:09:18,569 Baina ahalik eta azkarren biribildu dugu gure hiztegia HTML, 1096 01:09:18,569 --> 01:09:21,520 PHP, benetako programazio hizkuntza bat aurkezten dugu. 1097 01:09:21,520 --> 01:09:26,859 HTML automatikoki sortzeko aukera emango du, sortzeko CSS automatikoki, 1098 01:09:26,859 --> 01:09:29,430 Asteazkena dezakegu hasteko ezartzea, esan, 1099 01:09:29,430 --> 01:09:31,700 gure bilatzailea eta gehiago. 1100 01:09:31,700 --> 01:09:34,770 Baina egun pare bat gehiago. Ikusiko dugu orduan. 1101 01:09:34,870 --> 01:09:39,000 >> [CS50.TV]