[Powered by Google Translate] [Vika 7]
[David J. Malan - Harvard University]
[Þetta er CS50. - CS50.TV]
Allt í lagi. Velkominn aftur. Þetta er CS50, og þetta er upphaf viku 7.
A par af litlum tilkynninga:
Pset5 er nú í gangi eða fljótlega skal,
og láta mig segja, alveg heiðarlega, þetta er yfirleitt að vera á meðal meira krefjandi
setur vandamál námskeiðið, svo láta mig nefna þetta núna
svo að í þessari viku meira en nokkru sinni fyrr að gera að bíða ekki þangað til, segjum, miðvikudagur nótt
eða fimmtudagskvöld að kafa inn
Þetta er örugglega áhugavert pset. Við teljum að það er gaman.
Ef þú færð í raun það fullkomlega rétt og geta þá mótmælt svokallaða Big Board,
þú munt hafa tækifæri til að passa wits með nokkrum starfsmanna Námskeiðið er
og sumir af bekkjarfélögum þínum.
Hvaða The Big Stjórnin er er þegar þú ert með stafa-afgreiðslumaður vinna þína,
þú munt vera fær um að fara cs50.net eftir að keyra skipun,
eingöngu kjósa í, og þá tíma og magn af vinnsluminni og fleira
sem þú hefur notað í framkvæmd mun vera sýnd hér á heimasíðu námskeiðið er.
Þú munt taka eftir því að í heild búnt af þessum fólkinu hér eru skráð sem starfsfólk
síðan um helgina, starfsfólk hélt að það væri gaman að reyna að outdo hvert annað.
Svo grein fyrir því að markmiðið hér er ekki verið að outdo starfsfólk.
Jafnvel ég er bara hérna á númer 13.
Eingöngu kjósa í, en það er óákveðinn greinir í ensku tækifæri til að sjá hversu lítið RAM
og hversu fáir CPU sekúndur þú getur notað gagnvart-a-gagnvart sumum bekkjarfélögum þínum.
>> Og ég ætla að viðurkenna að Kevin Michael Schmid,
nú í númer 1 stöðu sem einn af TFS,
þetta er framkvæmd sem við köllum ekki hægt
í ljósi þess að hann er með næstum 0 RAM og næstum 0 sekúndur fyrir fermingu.
Þannig að við munum sjá um Kevin offline. [Hlátur]
Það eru ákveðin færni sem Kevin er að setja til að prófa hér.
Eitt af því sem við héldum að við myndum gera er líka nú CS50x er vika í gangi,
og þú krakkar eru eins mikill hluti af þessari tilraun eins og þessir nemendur eru.
Við höfum beðið þá sem hluta af pset0 þeirra, sem var álíka að senda inn Scratch verkefni
áhuga á þeim - leikur, gagnvirkt listaverk, hreyfimynd, eða eins og -
a 1 - til 2-mínútna vídeó, ef þeir vilja, segja halló við umheiminn og hver þeir eru í raun.
Ég hélt ég myndi deila með þér bara nokkra myndbönd sem hafa verið lögð svona langt
því fyrir okkur á starfsfólki amk, virkilega það hefur verið spennandi
og hvetjandi að sjá þessar fólkinu frá öllum heimshornum - löndum um allan heim -
stilla í, af öllu, að vísindi tölvunámskeið á Netinu,
hvort sem það er vegna þess að þeir vilja til að halda áfram eigin námi,
þeir vilja til að taka störf sín í nýja átt,
þeir vilja til að fylla í eyður í eigin vitund,
Svo sumir af sömu ástæðum sem þið kannski hafa verið hér.
>> Svo ég gefa þér eitt slíkt nemandi hér. Þú getur hækkað hljóðstyrk bara svolítið.
Hér er einn af 1-mínútu skráningar nemenda okkar.
Halló, heimur. Ég er nemandi í iðnaðarverkfræði hér í Malaga á Spáni.
Ég er ánægð með þetta online auðvitað vegna þess að ég elska tölvunarfræði, ég virkilega,
og ég þakka sannarlega að ég fá að skoða hann.
Og sú staðreynd að ég get lært það sama öllum ykkur að gera
en í stað þess að vera í Harvard ég í Malaga, Hversu hræðilegur er þessi?
Jæja, ég Fernando, og þetta er CS50. Sjá ykkur.
[Hlátur] Annað myndband við eins sérstaklega, þú munt komast að því að enska Þessi heiðursmaður er ekki svo sterk.
Það lítur út eins og hann hafði það vél þýða, svo þýðingarnar sjálfar eru aðeins ófullkomin,
en þetta var einn af uppáhalds okkar svona langt eins og heilbrigður.
[♪ ♪]
Halló, heimur. [Að tala á japönsku]
[Ég verð að fagna í japönsku því enska mín er mjög óáreiðanlegar.]
[Ég gef skilaboð til þín frá borginni Gifu, Japan.]
[Ég get verið nemandi í fyrsta skipti í 20 ár, eins og sjá má.]
[Ég er mjög þakklát Harvard University sem gaf mér þetta tækifæri og EDX.]
[Golf er gítar og uppáhalds hlutur minn í gangi.] [Hlátur]
[♪ ♪]
[Af hverju heldur þú að ég var að reyna að sækja cs50x.]
[Harvard University, það er þrá mín.]
[Sérstaklega ef ég er fjarlæg nærvera bjó í Japan.]
[Ég vildi reyna strax kunnugt um tilvist slíks EDX þegar.]
[Finnst þér svo þú þarft ekki tengjast aldri læra I.]
[Cs50 er þrá mín. Mitt nafn er Kazu, og þetta er cs50.]
[♪ ♪] [lófaklapp og uppörvandi]
Annar uppáhalds okkar var þessi uppgjöf hér frá einhverjum.
[♪ ♪] [Malan] Google það ef þú ert ókunnur með þessu meme.
>> Og svo loks, a par af öðrum sem fékk staða að kannski vinna yndislega verðlaun.
[Nemendur] Aww! >> [Malan] Við verðum að hlusta. Þetta er stutt, svo hlusta náið.
[Kvenkyns ræðumaður] Hvað er nafn þitt? >> Louie.
[Kvenkyns ræðumaður] Hvað er þetta? >> [Hlær] CS50. [Hlátur]
[Malan] Hann gerði tvö tekur þó.
Hér förum við, síðasta.
Mitt nafn er Louie, og þetta er CS50.
[Hlátur] Þetta þá er CS50x.
Þakka þér að allir þeir af þér á meðan eftirfarandi eftir heima
sem hafa verið partaking svona langt.
Í dag, gera við umræðu um uppbyggingu gagna,
að minnsta kosti sumir af the grundvallaratriði,
og þá erum við áfram samræðum okkar um HTML og vefur forritun.
Reyndar höfum við eytt síðustu sumir sjö vikur að horfa á grundvallaratriði forritun -
reiknirit, gögn uppbygging, og þess háttar -
og C, eins og þú gætir hafa upplifað svona langt,
er ekki endilega mest aðgengileg á tungumálum
sem á að framkvæma eitthvað af þeim hugmyndum.
Og svo byrja í þessari viku og í næstu viku og þá á,
Við munum að lokum vera fær um að umskipti úr C, sem er almennt þekktur eins og a sæmilega lágmark-láréttur flötur tungumál,
að það hærra stig, þar á meðal PHP, JavaScript, og þess háttar,
sem við munum sjá draga á sama lærdóm sem við höfum lært á undanförnum vikum,
en þú munt komast að því að lýsa hlutum eins og fylki og kjötkássa borð og leita og flokka
orðið svo miklu auðveldara vegna þess að tungumál sjálfir munum byrja að nota
mun verða öflugri.
En fyrst umsókn trjáa.
Það er mjög algeng þessa dagana að þurfa að þjappa upplýsingum.
Í hvaða samhengi myndir þú vilja að þjappa einhvers konar stafrænna upplýsinga?
>> Já. >> [Nemandi] Þegar þú þarft að senda það á vefnum.
Já, þegar þú vilt að senda eitthvað á vefnum.
Ef þú vilt að sækja stóra skrá, er það tilvalið ef einhver á hinum enda
hefur þjappað að skrá með því að nota zip sniði eða eitthvað svoleiðis
þannig að þú ert að senda færri bita gæti á annan hátt en að senda.
Svo hvernig þjappa þér upplýsingar?
Það snýst allt um að nota færri bita en krafist er sjálfgefið.
En þetta er eins konar forvitinn hlutur vegna þess að hugsa til baka til viku 0 og 1
þegar við ræddum um ASCII og tvöfaldur og við ræddum um ASCII einkum
sem nota 8 bita til að tákna bókstafina
þannig að bréf A er táknað með 65, lágstafir a er fjöldi 97,
og þó þú tákna 65 eða 97, þú ert að nota 7 eða 8 bita.
En afla er að það eru sumir bókstafir í enska stafrófinu
sem eru ekki eins vinsæl eins og aðrir.
Z er ekki allt sem vinsæll, Q er ekki allt sem vinsæll, en A og E eru frábær vinsæl.
Og enn fyrir öllum þessum bréfum, sjálfgefið að heimurinn notar sama fjölda bita, bara 8.
Svo myndi það ekki hafa verið betri ef í stað þess að nota 8 bita fyrir hvert bréf,
jafnvel sjaldan notaður eins og Q og Z,
Hvað ef við notuðum færri bita fyrir A og E og S og vinsælustu bréfum
og nota fleiri bita fyrir minna vinsæll stafi,
Hugmyndin er bjartsýni skulum fyrir sameiginlegum ræða,
sem er þema í tölvunarfræði að reyna að hagræða hvað er að fara að gerast sem mest
og eyða smá meiri tíma, aðeins meira pláss á það að já, gæti gerst
en ekki endilega eins og oft.
Svo skulum taka dæmi.
>> Segjum að við viljum að umrita upplýsingar nokkuð duglegur.
Þú gætir hafa vaxið upp að vita a lítill eitthvað um Morse kóða,
og líkurnar eru þú ekki vita the raunverulegur númerið,
en þú gætir muna að það er að minnsta kosti þetta röð punkta og strika.
Þetta er nokkuð duglegur kóðun, og eftir því að vinsælasti bréf - til dæmis, E -
notar stystu píp.
Morse kóða er allur óður í beep-beep-beep-beep-beep-píp og halda tónum
annaðhvort til skamms tíma eða lengri tíma.
E, sem táknuð með punkti, er frábær stutt píp, bara píp, og það myndi tákna E.
Með því móti, T væri lengri píp, eins og píp [lengir hljóð]
og það myndi tákna T.
En það er samt frekar stutt þar, hins vegar ef þú lítur á Z,
að tjá Z þú myndir fara píp, píp [lengur hljóð], píp, píp [styttri hljóð].
Svo er það lengur því það er ekki eins algeng.
En Gotcha hér er að Morse kóða er dálítið gölluð
á að það er ekki strax decodable.
Fyrir dæmi, ráð fyrir að þú heyrir um einhvern enda vír pípa [stutt], píp [lengi].
Hvaða skilaboð fékk ég bara? A punktur og bandstrik. Hvað þýðir að tákna?
[Nemandi] A. >> [Malan] Kannski.
Það gæti líka verið E eftir T.
Með öðrum orðum, Morse kóða, en það notar þessa reglu að hámarka horn að ræða,
það þýðir ekki lána sig til strax decodability.
Það er, manna sem heyra eða taka þessa punkta og bandstrik
að einhvern veginn reikna út þar sem brot eru á milli bókstafa,
vegna þess að ef þú veist ekki hvar þær brotnar eru, gætir þú rugla í ET eða öfugt.
>> Og hvað gætir þú gert? Í Morse kóða sem þú getur bara hlé á milli hvert bréf.
En hlé er góður á borðið til alls benda á hraðakstur það upp.
Og hvað ef í staðinn að við komum upp með kóða þar var þetta ekki slæmt ástand
þar sem E er forskeyti, til dæmis, að A -
í öðrum orðum, ef við gætum að tryggja að mynstur eru enn stutt á vinsæll bréf
lengi fyrir minna vinsæll stafi, en það er ekki mögulegt rugl?
Maður að nafni Huffman árum fundið þetta kerfi kallast Huffman kóðun
sem notar í raun einn af gögn uppbygging sem við höfum eytt smá tíma í að tala um
þessa vikuna, sem á tré, tvöfaldur tré sérstaklega -
tré tvöfaldur sem þýðir að það hefur ekki fleiri en 2 börn.
Það hefur kannski vinstri barn, kannski rétt barn, og það er það.
Svo býst bara fyrir sakir umræðu sem einhver vill senda skilaboð
sem lítur svona út. Það er heill bull, en það er samsett úr As, Bs, Cs, Ds og Es.
Og ef þú telur raunverulega upp allt í eins, Bs, Cs, Ds og Es
og svo deila með heildarfjölda bréfa,
þetta litla graf hér segir að 45% af bréfum eru Es, 20% eru eins,
10% Bs, og svo framvegis.
Svo í öðrum orðum gert ráð fyrir að vitnað band þarna
er bara einhver skilaboð sem þú vilt senda.
Það gerist að vera bull bara svo við getum notað og nokkrum bréfum og mögulegt er,
en það er örugglega raunin að E er vinsæll,
og B og C eru síst vinsæll, amk af þessum 5 bókstöfum.
Og hvernig getum við farið um að koma upp með kóðun,
tvöfaldur kóðun mynstur 0s og 1s fyrir hvert af þessum bréfum
þannig að E er stutt mynstur og kannski B og C eru örlítið lengri mynstur,
aftur, er hugmyndin sú að við viljum að nota færri bita af the tími
og fleiri bitar aðeins einu sinni í a á meðan.
Samkvæmt Huffman kóðun, getur þú búið til skóg af trjám.
Það er tegund af sögu línu hér sem felur í sér tré og einnig því ferli að byggja þá upp.
Við skulum byrja.
>> Ég leggja til að þú byrjar með þessum skógi, svo að segja, af 5 tré,
hvert sem er ansi heimskur tré.
Trénu er samanstendur af aðeins einum hnút, sem fulltrúa hér með hring.
Svo hvert af þessum hlutum gæti verið C struct
og inni í C strúktúr gæti verið fljóta hönd tíðni telja
og þá kannski bleikju alþingismaður bréf.
Svo hugsa um þessi hnúður sem bara allir gamla C struct en nú, meiri.
Þetta er skógur af 5 tré, hver um sem aðeins hafa einn hnút.
Hvað Huffman tillaga er að við byrjum að sameina þau tré
sem hafa minnstu tíðni gildir í örlítið stærri tré
með því að tengja þá með nýja rót hnút.
Svo meðal bréf hér, eftir að fyrir þægindi sem ég hef raðað þeim frá vinstri til hægri,
þó það er ekki nauðsynlegt, og eftir því að minnstu hnúður
eru nú um 10% og 10%.
Svo Huffman lagt til að við sameinast þeim 2 minnstu hnútar í nýtt tré
með því að kynna nýja foreldri hnút og þá gefa það foreldri vinstri barn og rétt barn
þar sem B er geðþótta vinstri og C er geðþótta rétt.
Og þá Huffman lagt frekar að við skulum nú bara hugsa um vinstri barnsins
í einni af þessum trjám alltaf eins og að vera fulltrúi 0
og rétt barnið alltaf eins og að vera fulltrúi númer 1.
>> Það skiptir ekki máli ef þú flettir þeim svo lengi sem þú ert samkvæmur.
Svo nú höfum við fjögur tré í þessum skógi.
Og ég segi fjögur því nú tré til vinstri -
og það er ekki svo mikið tré í þeim skilningi að það vex með þessum hætti,
það er meira eins og fjölskyldu tré þar sem nú er 0,2 konar foreldri tveggja barna -
eftir því að í því foreldri sem við höfum dregið 0.2.
Við höfum bætt við tíðni telja af tveimur börnum og gefið nýja hnút heildarfjárhæð.
Svo nú erum við að endurtaka bara þessa aðferð.
Finnið tvær minnstu hnúta og þá ganga þær í nýtt tré
og þá endurtaka ferlið frekar.
Núna höfum við nokkrar frambjóðendur, 20%, 15%, og 20%.
Í þessu tilviki höfum við að brjóta jafntefli. Við getum gert það geðþótta.
Við ættum bara að gera það stöðugt.
Í þessu tilfelli, ég geðþótta fara með einn á vinstri,
og ég sameinast nú 20% og 15% til að gefa mér nýtt foreldri sem heitir 35%,
sem vinstri barn er 0, sem rétt barn er 1, og nú höfum við bara þrjú tré í skóginum.
Þú getur kannski séð hvar þetta er að fara.
Ef við endurtaka þetta par oftar, við erum að fara að hafa bara eina stærri tré,
öll sem kantar eru merktar með 0s og 1s.
Við skulum gera það aftur.
35% er rót trés er. 20% og 45%, þannig að við erum að fara að sameina 35% og 20%.
Nú höfum við þetta tré hér. Við bætum þá saman, höfum við 55%.
Nú er það aðeins tvö tré í skóginum.
Við gerum þetta eina síðasta tíma, og vonandi stærðfræðilega allar tíðnir bæta upp
vegna þess að þeir ættu við síðan reiknað þá frá the fá-fara að bæta allt að 100%.
Og nú höfum við eitt tré.
Svo er þetta Huffman kóðun tré.
Það tók svona nokkurn tíma að fá það munnlega, en raunin er með for lykkju
eða með endurkvæma virka, getur þú byggja þennan grip upp ansi hratt.
Svo nú höfum við einn nýjan hnút, og öll þessi innri hnútar hafa verið malloc'd,
væntanlega, á leiðinni.
Svo nú efst í þessu tré sem við höfum 100%, en nú eftir að við höfum leið
frá þessu nýja frábær-mikill-mikill-afa í öllum mikill-mikill-barnabarnabörn
alla leið í botn, að öll leyfi.
>> Það sem við ætlum að gera núna er að leggja til að til að tákna stafinn E,
við munum einfaldlega nota númer 1. Hvers vegna?
Vegna þess að ef við fara yfir þetta tré frá síðasta rót niður að blaða þekktur sem E,
fylgjumst bara eitt brún, rétt röð, og það er merkt auðvitað efst til hægri 1.
Svo óbeint hér Huffman var sú kóðun E í tvöfaldur skal bara vera 1.
Og það er ansi fjandinn duglegur. Get í raun ekki fá allir minni en það.
Með því móti A er að fara að eiga fulltrúa, ef þú fylgja rökfræði,
með hvaða mynstur bita í staðinn? 01.
Svo til að fá að, byrjum við á rót og við förum eftir og þá erum við að fara til hægri,
sem þýðir að við fylgt 0 og þá 1.
Svo skulum við tákna stafinn A með mynstri 0 og 1.
Og nú eftir að við höfum nú þegar eign strax decodability
að við vissum ekki í Morse kóða.
Jafnvel þótt bæði þessi mynstur eru nokkuð stutt - E er 1 hluti, A er 2 bits -
taka eftir því að þeir geta ekki að rugla eitt eða annað,
því ef þú sérð 1 það er got að vera E, ef þú sérð 0 þá 1 það er greinilega fengið að vera A.
Á sama hátt, hvað er D? 001.
Hvað er C? 0001.
Og hvað er B? 0000.
Og aftur, af því að öll bréf sem við þykir vænt um eru í leyfi
og ekkert af þeim eru eins konar milliliður í leið frá rót til blaða,
það er engin hætta á conflating mismunandi encodings 2 bréf '
vegna þess að allar þessar Bitamynstur eru deterministic.
0000 mun alltaf vera B.
Það er enginn hnútur einhverstaðar á milli að þú gætir ruglað eitt bréf fyrir aðra.
Svo er það óbeint hér?
>> Vinsælasta bréf - í þessu tilfelli E - hefur fengið stystu kóðun,
A hefur fengið næsta stystu kóðun,
og B og C, sem við vissum nú þegar frá the fá-fara voru tegundum óvinsælasta
á 10% tíðni hvern, þeir hafa fengið lengstu kóðun.
Og svo er það þetta þýðir nú að ef þú vilt senda skilaboð sem er þjappað
á netinu eða í tölvupósti eða þess háttar,
frekar en að nota stöðluðu ASCII, geturðu sent Huffman dulmáli skilaboð
þannig ef þú vilt senda bréf E, senda þér bara einn hluti.
Ef þú vilt senda A, senda þér 2 bita, 01, í stað þess að senda 8 bita
eftir aðra 8 bita og síðan aðra 8 bita og svo framvegis.
En það er Gotcha hér.
Það er ekki nóg að bara byggja þetta tré og byrja að senda frá Alice í Bob
styttri hluti mynstur, band frá ASCII,
því Alice er einnig að upplýsa Bob af því
ef Bob er að fara að vera fær um að lesa þjappað skilaboð hennar?
[Inaudible nemandi svar] >> Hvað er það?
[Inaudible nemandi svar] >> um hvaða tré er.
Eða jafnvel meira sérstaklega, hvað þá encodings eru
sérstaklega þar sem á þessari sögu við gert dómur símtal á einum stað.
Mundu að við þurftum að velja eftir geðþótta milli 2 mismunandi 20% hnúta?
Svo það er ekki raunin að Bob, viðtakanda, getur bara endurgera tré á eigin
því kannski að hann muni búa til tré alltaf svo örlítið öðruvísi Alice.
Þar að auki, Bob er ekki einu sinni vita hvað upprunalega skeytið er
því það eina sem Alice er að senda honum, að sjálfsögðu, er þjappað skilaboð.
>> Svo grípa með samþjöppun eins og þetta er það, já, Alice er að vista allt fullt af bitum
með því að senda 1 fyrir e og 01 fyrir A og svo framvegis,
en hún hefur einnig að upplýsa Bob hvað kortlagning er á milli bókstafa og bitum
vegna þess að þeir geta ekki skýrt að treysta á bara ASCII lengur ef við erum ekki að nota ASCII.
Svo hún getur annað hvort sent honum tré einhvern veginn -
skrifa það niður, geyma það eins og tvöfaldur gögn eða eitthvað svoleiðis -
eða bara senda honum smá svindl blaði, Excel skrá, sem sýnir kortlagning.
Þannig er gert ráð fyrir virkni samþjöppun raun að skilaboðin sem þú ert að senda
eru nokkuð stór, amk meðalstór,
því ef þú ert að senda frábær stutt skilaboð,
Ef þú vilt bara að senda skilaboðin BAD, sem gerist að vera orð sem við getum stafa hér,
B-A-D, þú ert líklega að fara að nota færri bita,
en aflinn er ef þú ert líka að upplýsa Bob hvað tré er
eða hvað þessir encodings ert, ætlar þú að fara að sennilega meiri öllum þeim sparnaði
að hafa þjappaðar hluti til að byrja með.
Svo það getur raunverulega vera raunin að ef þú ert að reyna þjappa
jafnvel með eitthvað eins og zip eða skrá snið sem þú gætir kannast við -
frekar litlar skrár, jafnvel tóm skrá -
stundum þá skrár gætu fengið stærri og ekki minni.
En raunhæft, það gerist aðeins fyrir litlum stærðum skrá,
svo það er ekki að fara að gera a gígabæti skrá vera 2 gígabæta,
við erum í raun að tala bæti eða bara nokkrar kílóbæti.
>> Sum forrit eins og zip ert sviði nógur til að átta sig á því,
"Þú ert að fara að eyða fleiri bita þjappa þessu."
"Láttu mig ekki trufla þjappa það fyrir þig á öllum."
Svo er þetta bara ein leið þá að þjappa texta sniði.
Við gætum framkvæma eitthvað svona í C.
Fyrir dæmi, hér er hvernig við gætum táknað hnút í tré
þar sem við erum með bleikju fyrir tákn, fljótandi gildi um tíðni,
og eins og við höfum séð með öðrum gögnum okkar mannvirki, 2 punkta,
1 til vinstri barn, 1 til hægri, hvort sem hægt er að NULL,
en ef ekki, vísar það til vinstri barns og rétt barns.
Þannig er þetta þá Huffman kóðun, og það er ein leið sem þú getur farið um að þjappa upplýsingum,
og það er vissulega einn af the auðvelt að framkvæma
í samhengi, segjum gagnauppbyggingu síðustu viku,
þó jafnvel flóknari reiknirit til
sem getur gert jafnvel flóknari stökkbreytta gögnunum.
Einhverjar spurningar þá á tré, tvöfaldur tré eða þjöppun texta?
[Nemandi] Er einhver tvíræðni, eins og ef [inaudible] skipt í 01,
þá 011 væri óljós, ekki satt?
[Inaudible] >> Góð spurning. Tvíræðni.
Leyfðu mér að draga saman með því að vísa í þessa mynd hér.
Þar sem stafir sem þú ert að þjappa, Á móti af,
samkvæmt skilgreiningu þessa reiknirit alltaf vera blöðin,
þú munt aldrei tilviljun nota sama mynstur bita fyrir forskeyti margra bréfum.
Svo í öðrum orðum, þú ert áhyggjur af, það hljómar eins og að tvíræðni vegna
þar 001 gæti verið að byrja á B eða upphaf C eða eitthvað svoleiðis.
En það getur ekki verið að ræða því tilkynnt að allar stafina í stafrófinu við erum kóðun
eru í leyfi.
>> Tvíræðni getur aðeins komið upp, eins og í tilviki Morse kóða,
Ef, til dæmis, C var einhversstaðar götunni frá rót til B.
[Nemandi] Rétt. Svo í því tilfelli, segjum A hefur 2 lauf. >> Segja hefur - Segðu það aftur.
[Nemandi] segja er 2 lauf, F og G, og þá G - >> Okay. En það er ekki hægt.
A mundi ekki hafa leyfi F og G vegna þess að þeir stafina F og G
myndi sjálf vera fer einhvers staðar vinstra megin við B eða rétt E.
Svo samkvæmt skilgreiningu, verða þeir að vera fer.
Annars, þú ert nákvæmlega rétt, höfum við ekki leyst vandamál sem Morse kóða andlit.
Góð spurning. Aðrar spurningar? Allt í lagi.
Þessi hugmynd af bitum, snýr það út að við höfum haft völd alla tíð að við höfum í raun ekki notað
þegar hún kom að notfæra þessar 0s og 1s.
Við spurði um þetta á einn af elstu vandamál setur:
nefnilega hvernig þú fara óður í að breyta hástafi í lágstafi eða öfugt?
Eða, meira concretely, einn af þeim fyrstu psets spurði
hversu margir bitar þú þarft í raun að fletta til að breyta til lágstafir í eða öfugt?
Hér er a fljótur áminning um hvað 65 og 97 líta út í tvöfaldur.
Og jafnvel þótt þessi spurning hefur konar dofna í minni þínu,
þú getur séð aftur hér að hversu margir bitar þurfa að vera hreifi
til að breyta hlutafé A til lágstafir a? Bara einn.
>> Þau eru mismunandi aðeins á einum stað, þriðji hluti frá vinstri.
Í A hefur 010, lítill sem er 011.
Svo einhvern veginn, við þurfum bara að vera fær um að fletta að hluti,
og við getum þá í nyt eða lágstöfum.
Við höfum gert þetta í fortíðinni með því að í raun að nota ef aðstæður
og athuga hvort bréfið er á milli fjármuna og fjármagns z,
þá framleiðsla eins og A - A + 26 eða eitthvað svoleiðis.
Þú varst líklega stærðfræði breyting á bókstöfum.
En hvað ef við hefðum bara selbiti að einn hluti?
Hvernig þú fara óður í að taka heilan bæti um bita, svo 8 bits eins 01000001 og 01100001?
Ef þú hefðir þá mynstur bita, hvernig getum við farið að breyta bara einn af þeim?
Hvað ef við kynna í gult hér þetta önnur mynstur bita?
Ef ég gera allt gula 0s band nema einn bita sem ég vil breyta
og þá vil ég kynna nýjan rekstraraðila þekktur sem Bita rekstraraðila -
Bita í þeim skilningi að það starfar á einstökum bitum,
ekki á heilt bæti eða fjórum Bytes allt í einu.
Þetta lóðrétt barnum þarna í gulum bendir til þess að hvað ef við tökum framsetning Capital
og Bita eða það með gulu röð bita?
Með öðrum orðum, hugsa aftur til umræðu um Boolean tjáning í grunni og þá í C.
>> Aðgerð Boolean eða þýðir það að vera satt, annaðhvort það fyrsta sem þarf að vera satt
eða annað sem þarf að vera satt eða þeir báðir hafa til að vera satt,
og þá er Útkoman sig satt.
Í þessu tilfelli hér, hvað fáum við ef við tökum 0 "eða" Ed með 0? False eða rangar?
Það er samt rangt, svo lágstafir a er eins og búast mætti.
Hvað ef í stað þess að við gerum 1 eða 0?
Þetta er nú 1, en taka eftir hvað er að fara að gerast hér.
Ef við byrjum með Capital og við höldum áfram að "eða" einstaka bita þess sem við erum að gera hér,
0 eða gulu einn gefur okkur hvað hérna? Þetta gefur okkur 1.
Í raun, gera ráð fyrir að við vissum ekki hvað hástafi útgáfa af lítið sem í raun var.
Við skulum fara að gera þetta. Leyfðu mér að færa þetta aftur hérna.
Við skulum gera þetta aftur. 0 eða 0 gefur mér 0.
1 eða 0 gefur mér 1.
0 eða 1 gefur mér 1.
0 eða 0 gefur mér 0. Næsta einn er 0, sá næsti er 0, sá næsti er 0.
1 eða 0 gefur mér 1.
Og svo jafnvel þótt við vitum ekki fyrirfram hvað lágstafir a var,
einfaldlega með því að "eða" ing A með þessu mynstri bita sem við höfum kynnt hér í gulum,
þú getur lágstafir höfuðborg A með því að snúa því aðeins.
Við notuðum þetta tjáning vikum: ósvífni svolítið.
Hvernig heldur þú að gera í raun það kerfisbundið?
Þú notar það sem er almennt kallað grímu, a röð af bitum,
að í þessu tilfelli bara gerist svo að líta út eins og þessi tala hér,
og þá "eða" það með því að nota saman þetta nýja C rekstraraðila,
ekki | |, þú notar einn | og þú vilt í raun að fá þetta svar hér því hvers vegna?
Þetta er 1s stað, 2s stað, 4S, 8s, 16s, 32s.
Svo kemur í ljós að ef þú tekur fjármagn bréf A og Bita eða það með tölunnar 32,
vegna tölunnar 32, þegar þú horfir á það eins og bita, lítur svona út,
sem þýðir að þú getur selbiti hluti sem þú vilt í raun og veru.
Og álíka - og við munum líta á kóðann á aðeins augnablik -
ráð við viljum fara í aðra átt.
>> Hvernig ferð þú frá lágstafir A til Capital? Hvaða hluti þarf að breyta?
Það er sama einn.
Við viljum breyta því þriðja hluti frá 1 til á 0.
Og hvernig gætum við farið að gera þetta?
Hvernig snúa við á svolítið? Með hvaða mynstur bita gætum við slökkt svolítið?
Hvað ef við konar hvolfa grímu?
En áður, gerði við allt gult gríma 0s
nema einn hluti sem við vildum að kveikja á
hvað ef þetta sinn, gerum við allt gríma 1s nema hluti sem við viljum að slökkva
og þá nota það sem rekstraraðila?
Hvað ef við "og" hluti? Við skulum taka a líta.
Ef við flettir nú þetta, gera ráð fyrir að aftur ég að búa til grímu sem er allt 1s
nema einn hluti sem ég vil að slökkva á
og þá frekar en "eða" hvíta tölur upp efst með gulu tölur hérna,
hvað ef ég í staðinn "og" þeim saman? Það er kallað Bita og.
Rökrétt er það sama eins og Boolean og.
Þetta gefur mér 0 og 1 er 0. Svo rangar og satt er ósatt.
Satt og satt er satt.
Og hér er galdur: satt og ósatt er nú rangt, þannig að við höfum slökkt að hluti.
Og nú er restin af sögunni nokkuð einfalt.
Þar sem restin af hulið er 1s, það skiptir ekki máli hvað tölurnar eru í hvítu.
Þegar þú "og" eitthvað með satt, þú ert ekki að fara að breyta gildi þess.
Ef það er satt, verður það að vera satt. Ef það var rangt, það mun vera rangt.
>> En galdur gerist þegar þú tekur eitthvað sem var satt
og þú þá "og" það með rangt.
Þetta hefur þau áhrif að slökkva að hluti.
Svo lítið þar dulinn.
Við skulum í raun líta á einhverjum kóða, sem gætu í raun líta jafnvel meira dulinn,
en við skulum kíkja hér á tolower.
Ef ég lít á tolower, fara úr höfuðborginni A til lágstafir a,
við skulum sjá hvernig við gætum framkvæma þessa áætlun.
Hér er aðal, og það er ekki að taka neina stjórn-lína rök.
Ég lýsa karakter c fyrir bréfinu, sem notandinn er að fara að slá inn
Ég nota þá þekki gera á meðan lykkja til að bara vera viss um að notandinn ákveðið gefur mér Capital
eða B eða C. .. Z, þannig að þeir gefa mér eitthvað á milli A og Z.
Og nú hvað er ég að gera hér?
Ég er "eða" ing þetta með 0x20, en það er í raun það sama og -
og við munum koma aftur til þetta í smá stund - 32.
Svo aftur, 32 er þetta mynstur bita hér. Hvers vegna vitum við þetta?
Bara hugsa til baka að viku 0.
Þetta er 1s stað, 2s stað, 4S, 8s, 16s, 32s stað.
Svo gerist þetta gult númer að vera 32.
Ég get þá tekið bréf eins og bleikju hér, Bita "eða" það með bókstaflega fjölda 32,
og hvað fæ ég til baka? Lágstafir útgáfu af bleikju.
A augnabliki síðan, þó, lýst ég þetta í öðru grunn merki.
Hvað gerði það tákna? >> [Nemandi] Sextánskt.
[Malan] Þetta gerist til að tákna Sextánskt.
Við höfum ekki talað um sextánskur allt það mikið,
en það er í raun auðvelt í málum eins og þessu.
>> Jafnvel þó að það lítur flóknari og jafnvel þó að það lítur út eins og 20 og ekki 32,
það kemur í ljós að sextánskur er í raun frábær þægilegur aðferðin
vegna þess að í sextánskur hvert stafa eftir 0x - og þetta þýðir ekki neitt,
þetta er bara mannleg venju sem segir hér kemur sextánskur númer -
hver af þessum tölustöfum, 2 og þá 0, getur sig vera fulltrúa
með nákvæmlega 4 bita.
Þannig að ef við gerum þetta, láta mig opna texti ritstjóri hér - undarlegt autocompleteoff -
ef við gerum smá texta ritstjóri hér, fjölda 0x20 þýðir hér er 4 bita, hér er önnur 4 bita.
Við skulum gera rightmost 4 bita fyrst.
0 þegar fulltrúa með 4 bitum er það? Super auðvelt. Bara allt 0s.
Svo 4 bita og 0s.
Hvernig lýsir þú 2? Það hefur verið smá stund síðan við gerðum þetta, en það er 0100.
Þannig að þetta er 1s staður, þetta er 2s stað, og þá skiptir ekki máli hvað öðrum stöðum eru.
Með öðrum orðum, í sextánskur þú gætir sagt 0x20,
en ef þér finnst þá um hvað er 2 og hvernig er það fulltrúa í tvöfaldur,
hvað er 0 og hvernig er það fulltrúa í tvöfaldur,
svör við þessum spurningum eru þetta og þetta, í sömu röð.
Svo gerist 0x20 til að tákna þetta mynstur af 8 bitum,
sem er einmitt gríma sem við vildum.
Svo er þetta í augnablikinu bara andlega æfa,
en raunin er í númerið og það er yfirleitt algengara að skrifa fasta eins og þetta
í sextánskur því þá forritari getur tiltölulega auðveldlega,
jafnvel ef það þurfa sumir pappír og blýant, reikna út hvað þessi mynstur bita er
vegna þess að þú getur ekki bara tjáð 0s og 1s yfirleitt í kóða.
Þú getur ekki farið 00.010 og svo framvegis.
>> Þú þarft að velja aukastafi eða sextánskur eða octal eða öðrum rithætti.
Flestir hafa tilhneigingu til að velja Sextánskt einfaldlega þannig að hver stafa táknar 4 bita
og þú getur gert þetta stutta stærðfræði.
Og ég mun veifa hendi minni á toupper, sem er nánast það sama og það lítur nánast eins.
Toupper gerist að nota eða rekstraraðila heldur þessi strákur og DF.
Hvað er DF tákna? DF? Einhver? >> [Nemandi] 255.
255? Ekki 255. Það væri FF.
Við munum fara þetta einn eins og a lítill æfa.
En ef þú ferð frá 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 og þá hvað kemur eftir 9?
Við erum eins konar út af aukastaf tölustöfum, en sextánskur hvað kemur eftir 9?
[Nemandi] a. >> Svo a, b, c, d.
Þú getur fundið út þaðan hvaða mynstur bita D raunverulega býr.
Og ef við að gera stærðfræði, munum við sjá að gríma þú endar að komast aftur er eins og þetta.
Þetta er f, allt 1s, og þetta er d. Svo táknar DF ​​sem grímu. Allt í lagi.
Og loks, ekki til að gera hlutina hljóð Super, frábær tækni,
en býst við vildum að skrifa forrit sem gerir þetta.
Leyfðu mér að fara á undan og gera tvöfaldur, sem er forrit í skrá sem kallast binary.c.
Og nú láta mig hlaupa tvöfaldur og gefa mér ekki neikvæð heiltala.
Við skulum byrja auðvelt og tegund í 0.
Þetta er nú forrit sem prentar út heiltölu fulltrúa tvöfaldur þess.
Svo ef ég spila þennan leik aftur og tegund í aðeins 1, ætti ég að fá 32-bita framsetning 1.
Ef ég geri þetta aftur með 2, ætti ég að fá það.
Ef ég 7, ætti ég að fá nokkrar 1s lok og svo framvegis.
Það kemur í ljós að ég nefni þetta vegna þess að með Bita aðgerðir
þú getur raunverulega að gera eitt annað hlutur eins og heilbrigður.
Hægt er að búa til þessar grímur virk.
Taka a líta á þetta einn endanlega dæmi felur Bita aðgerðir.
Hér er fyrsti hluti af kóða, hvetja notandann til fjölda,
og það krefst þess að þú gefa mér ekki neikvæð heiltala.
Svo er þessi tegund af gamla skólanum efni.
En hér er eitthvað sem er svona áhugavert.
>> Hvernig get ég farið um prentun númer í tvöfaldur?
Ég iterate fyrst frá hvað við það?
Hvað er stærð á INT venjulega, að minnsta kosti í tækið? >> [Nemandi] 4.
Það er 4. Svo er 4 * 8 32-1 er 31.
Svo ef ég er farin að telja frá 31, sem sýnir, að það kemur í ljós,
bara eðli er 31 bita eða hæsta til hluti, sem er þessi gaur hérna,
en þetta er að fara að vera hluti 0.
Svo er þetta hluti 01 ... bita 31.
Svo hvað er þetta númer að gera?
Takið þetta til lykkju, þó að það lítur dulinn, er bara iterating úr 31 niður í 0. Það er það.
Svo áhugaverður hluti er að vera í þessum 5 línur hér.
Takið eftir að í þessari línu sem ég er að lýsa breytilega heitir gríma
að vera í samræmi við sögu okkar af þessum gulu tölum.
Og svo hvað er þetta að gera?
Þetta er annar Bita rekstraraðila sem við höfum ekki séð áður, líklega.
Það er vinstri Shift rekstraraðila.
Þessi stjórnandi er þetta.
Hér er númer 1, og ef þú gerir i vinstri vakt, vinstri vakt
Hvað heldur þú að hafi þau áhrif að gera til að einstök 1?
Bókstaflega breytast það yfir.
Svo ef númer 1 er það sem þú ert til vinstri og þú byrja á því að virkja i til 31,
hvað er að fara að gera? Það er að fara að taka þetta númer 1 og breyting það 31 stöðum hérna.
Og vegna þess að það er augljóslega engin önnur tölustafir á bak við það,
þá mun sjálfgefið að skipt 0s.
Svo þú munt byrja út með númer 1, sem að sjálfsögðu lítur út eins og þetta -
og láta mig draga það yfir hér í miðju.
Og þá eins og þú skiptir það til vinstri, þessi strákur fer í raun með þessum hætti.
En um leið og þú gerir það, fær 0 fyllt inn
Ef þú skiptir það í annað sinn, það fer þessa leið og annar 0 verður fyllt inn
>> Þú færa það aftur og þá annar 0 verður fyllt inn
Svo ef þú gerir þetta hlutur af 1 << i 31 stöðum, enda þú upp fá grímu
sem er 32 stafir að lengd, er leftmost einn sem er 1,
öllum öðrum sem eru í 0.
Og það kemur í ljós, eins og innskot, breytast númer til vinstri eins og þetta
einnig tilviljun, og stundum þægilegur,
hefur áhrif til að gera hvað ég á að þessi tala? >> [Nemandi] Tvöföldun það.
Tvöföldun það vegna þess að hver dálka - það 1s stað, 2s stað, 4S stað,
8s stað, 16s stað - they're öll tvöföldun eins og þú fara til vinstri.
Eða frekar, þegar þú færa 1s þú ert að fara að enda tvöföldun gildi fjölda.
Þú getur endað að gera áhugaverða umbreytingu af tölustöfum
með því að færa allt yfir á þennan hátt með völd í 2.
Svo hvernig virkar þetta?
Þetta gefur þá mér grímu sem er allt 0s nema fyrir 1 í nákvæmlega stað sem ég vil það,
og þá er þetta tjáning, sem er stolið úr toupper.c,
er einfaldlega að segja að taka númer N sem notandinn slegið inn,
"Og" það með því að maska, og hvað ætlar þú að fá?
Þú ert að fara að fá 1 ef það er 1 í þessi gríma stað,
eða þú ert að fara að fá 0 ef það er ekki.
Og svo allt þetta program er í raun það hefur lykkju,
og það skapar maska ​​með 1 hérna, þá 1 hérna, þá 1 hérna,
og það notar þetta Bita og bragð að segja er það 1 hluti á inntak notanda hér?
>> Er 1 hluti á inntak notanda hér? Og ef svo er, bókstaflega prentað 1, annars prenta 0.
Við erum að gera þetta með ints bara vegna þess að það er þess vegna sem við erum að gera 32 bita í stað 8,
en það sem við höfum kynnt þá er þetta Bita og þetta Bita OR,
og þetta VINSTRI SHIFT rekstraraðila, sem eru ekki oft hræðilega gagnlegt,
en það kemur í ljós að þeir geta verið.
Í staðreynd, ef þú varst að tákna eitthvað eins fjölda Booleans
bara til að tákna satt eða ósatt, ráð fyrir að þú vildir að halda utan um hvort
herbergi fullt af 300 nemenda er til staðar,
þú gætir lýst fjölda stærð 300 af gerðinni bool þannig að þú færð 300 bools,
og þú getur stillt hvort að sanna ef einhver er hér og ósönn annars.
Hvers vegna er þessi framsetning á að gögn uppbygging óhagkvæmt?
Hvað er slæmt um hönnun að gögn uppbygging, fylki af 300 bools?
Hvað er bool, í raun, undir hetta?
Þetta líka, er eitthvað sem gæti ekki verið kunnugt.
Það kemur í ljós að það er ekki bool.
Mundu við bjuggum tegund af að með cs50.h skrá,
sem sjálft nær staðall bool.
C er góður af heimsk, þó, þegar það kemur að bool.
Það notar 8 bita til að tákna hvert bool, sem er alveg eyðslusamur
því augljóslega, hversu margir bitar sem þú þarft til að tákna a bool? Bara 1.
Svo kemur í ljós að ef þú hefur nú getu með Bita rekstraraðila
að vinna einstaka bita jafnvel í bleikju, jafnvel í einu bæti,
það kemur í ljós að þú getur dregið úr minni sem þarf til að tákna eitthvað heimskulegt
eins og þessi aðsókn stíll gögn uppbygging með stuðlinum 8.
Stað þess að nota átta bita til að tákna satt eða ósatt, getur þú bókstaflega að nota einn
með því að nota eitt bæti fyrir hverja átta nemendur í bekknum
og skipta frá 0 til 1 einstökum bitum því að nota þessar tegundir af lágmark-láréttur flötur bragðarefur.
Það raunverulega binda enda á orku. Eru einhverjar spurningar um Bita aðgerðir?
>> Já. >> [Nemandi] Er eingöngu eða rekstraraðila?
Já. Það er eingöngu eða rekstraraðili sem lítur svona út, ^, sem gulrót tákn,
sem þýðir aðeins það fyrsta eða annað sem getur verið 1 að framleiðsla á að vera 1.
Það er líka ekki, ~, sem mun leyfa þér að snúa á 0 til 1 eða öfugt eins og heilbrigður.
Og það er líka rétt breyting rekstraraðila, >>, sem er andstæða þeirri sem við sáum.
Allt í lagi. Við skulum taka það nú á hærra stigi.
Við byrjuðum á því að tala um texta og síðan þjappa það
og fulltrúar textann með færri fjölda bita;
við ræddum aðeins um hvernig við getum byrjað að notfæra hluti á Bita stigi.
Við skulum súmma nú aftur upp 10.000 fet að framsetning
um flóknari hluti eins og grafík.
Hér höfum við fána í Þýskalandi, hér höfum við eitt í Frakklandi.
Þetta gæti verið fulltrúa í skrá snið sem þú gætir vita - Hreyfimyndir, til dæmis.
Ef þú hefur einhvern tíma séð mynd á vefnum sem endar á. GIF,
þetta er grafík skipti sniði.
Þessir tveir fánar hér konar lána sig til að þjöppun
fyrir hvað kannski augljós ástæða? >> [Inaudible nemandi svar]
There er a einhver fjöldi af endurtekningu, ekki satt?
Til að senda fána Þýskalands, hugsa um þetta eins og að vera mynd á skjánum
Til baka í daga Scratch þínum.
Þú gætir muna að það er einstök dílar eða punktar sem lýsa annaðhvort semja mynd.
>> There er a heild röð af svörtum punktum og öðru öllu röð svörtum punktum.
Það er fullt af línum um svartra punkta sem við gátum séð ef við aðdregna í raun,
mikið eins og þegar við aðdregna í á andlit Rob í Photoshop.
Um leið og við komum dýpra og dýpra og dýpra inn í myndina,
þú byrjaðir að sjá pixelation, allar ferninga sem samanstendur auga hans í þessu máli.
Sami samningur hér. Ef við aðdregna í heilmikill hluti, myndir þú sjá einstaka punktar.
Jæja, þetta er eins konar sóun á bita.
Ef þriðjungur fána er svartur og þriðjungur fána er gulur og svo framvegis,
hvers vegna getum við ekki þjappa einhvern veginn þennan fána?
Og jafnvel franska fána gæti þjappað þótt mynstur er svolítið öðruvísi.
Það kemur í ljós á GIF skrá snið er lossless samþjöppun snið,
sem þýðir að þú getur tekið mynd eins og þýska fánanum hér
þú getur kastað í burtu mikið af bitum sínum án þess að fórna gæðum.
Þetta er í mótsögn við eitthvað eins og JPEG,
sem flest okkar eru líklega kunnugt.
Facebook myndir og Flickr myndir og þess háttar
eru nánast alltaf vistaðar sem JPEG þegar þeir eru hlaðið,
en JPEG er lossy - lossy - format þar sem þú henda bita
en þú kastar líka burt gæði.
Og svo ef þú þjappa myndum með Photoshop eða hlaða þeim upp á Facebook
eða taka þau á mjög vitleysa síma,
þú veist að myndin byrjar að fá mjög splotchy og Pixelated,
og það er vegna þess að það er verið þjöppuð af tölvunni eða síma
við bókstaflega henda upplýsingar í burtu.
En GIF er ótrúlegt á að það er hægt að nota færri bita en það gæti sjálfgefið
án þess að tapa öllum upplýsingum.
>> Og það er í raun svo sem hér segir.
Frekar en að geyma í skrá eins BMP myndi að RGB þrefaldur fyrir svart, svart, svart, svart,
svartur, svart, svart, svart, svart, svart, svart, svart og svo framvegis,
Þvert á GIF snið er að fara að segja, "Black"
og þá, "endurtaka þetta 100 sinnum," eða eitthvað svoleiðis.
"Black, endurtaka þetta 100 sinnum, svartur, endurtaka þetta 100 sinnum ..."
"Gulur, endurtaka þetta 100 sinnum."
Og svo man það, í raun, að leftmost pixla
og þá umbreytir einhvern veginn hugmyndin um að endurtaka að pixla aftur og aftur.
Svo GIF geta þá þjappa sig án þess að tapa öllum upplýsingum.
En ef þú hefðir að giska, ef það er reiknirit sem Hreyfimyndir notkun,
hver af þessum fánar, jafnvel þótt þeir líta nákvæmlega eins í stærð,
er að fara að vera lítill þegar vistað á diski sem GIF? >> [Nemandi] Þýskaland.
Þýskaland er að fara að vera minni? Hvers vegna?
[Nemendur] Þar sem þú endurtaka það margir, margir sinnum lárétt
og þá endurtaka í annað sinn. >> Einmitt.
Vegna þess að fólkið sem fann upp GIF bara konar ákveðið geðþótta
að endurtekning verði skuldsett lárétt og ekki láréttum.
There er a einhver fjöldi fleiri endurtekning láréttum hér í þýska fánanum en í franska fána.
Þannig að ef við opnum í raun upp möppu á harða diskinum mínum sem hefur þessar GIF,
þú getur raunverulega séð að þýska fána hér er 2 kílóbæti og franska einn er 4 kílóbæti.
Það gerist að vera tilviljun, að einn er tvöfalt annað,
en það er í raun að ræða að franski fáninn er miklu stærri.
>> Jafnvel þó að við erum að tala hér um grafík, sömu hugmyndir geta sótt um að
ekki hluti eins og fánar en myndirnar sem eru aðeins flóknari.
Ef þú tekur mynd af epli, vafalaust er það a einhver fjöldi af tvíverknað þar,
þannig að við gætum einhvern veginn muna að vanræksla bakgrunnur er blár
og ekki, eins og hægri myndin gefur til kynna,
verður að muna lit hvert einasta pixla í þessu mynd.
Þannig að við getum kastað bita burtu þar án þess að missa upplýsingar.
The epli lítur samt bara það sama.
Í þessu dæmi hér, gætir þú séð hvað gerist í myndinni.
Þessir fulltrúar gamla skólanum kvikmynd hjóla þar í efstu myndinni þar
þú ert með húsbíla aka framhjá húsi og tré.
Og eins að Van rekur fortíð frá vinstri til hægri, það er augljóslega ekki að breytast?
Húsið er ekki að fara einhvers staðar, og tré er ekki að fara neitt.
Það eina sem er að flytja er van í þessu tilfelli.
Svo eins Bakgrunnur Óbreytt bendir, hvað er hægt að gera í bíó
er álíka henda bara í burtu upplýsingum sem ekki breyta á milli ramma.
Þetta er almennt þekktur sem interframe samþjöppun
þannig ef þetta ramma lítur nánast eins og this einn,
skulum nennir ekki að geyma á disk eitthvað af sömu upplýsingum
á þessum millistig ramma, við skulum bara nota takka ramma einu sinni í a á meðan
að geyma í raun þær upplýsingar redundantly eins lítið geðheilbrigði athuga.
>> Með því móti, annar aðferð til að þrýsta vídeó er í öðru og lægra td hér,
þar frekar en geyma 30 rammar, hví ekki að geyma bara 15 ramma á sekúndu í staðinn?
Frekar en bíómynd konar flýtur fallega, fullkomlega,
Það getur litið út eins og það er stam smá, smá gamla skólanum,
en nettó áhrif verða að nota mun færri bita en annars gætu verið nauðsynleg.
Svo hvar er þetta leyfi þá okkur?
Það var svolítið til hliðar því hvar annað sem þú getur farið með samþjöppun.
Frekari upplýsingar um að taka bekknum eins og CS175 hér.
Hér er annað dæmi í vídeó.
Ef flugan er eina færa,
getur þú virkilega henda upplýsingum í þeim miðjum ramma
vegna þess að blóm og himinn og fer ekki að breytast.
En við skulum nú íhuga Einn síðastur hlutur.
Á næstu 5 mínútum við miðl bak eilífu í fyrirlestri? Já. Ekki í psets, þó.
Síðasta saga um C og þá fáum við mjög sexy efni
þátttöku HTML og Vefur og Woo-Hoo. Allt í lagi.
Hér förum. Það er hvatning.
Það kemur í ljós allt þetta þegar við höfum verið að skrifa forrit sem við keyra Clang.
Og Clang, við höfum sagt frá því í fyrstu viku nánast, tekur kóðann
og breytir það inn kóðann mótmæla.
Það tekur C og breytir það inn 0s og 1s.
Ég hef svona verið að ljúga að þér í nokkrar vikur vegna þess að það er ekki alveg eins einfalt eins og þessi.
>> There er a einhver fjöldi fleiri að fara á undir hetta þegar þú keyrir forrit eins Clang.
Í raun er hægt að vinna að setja saman áætlun í raun að lýsa,
eins og þú might muna úr vídeó Rob er á þýðendur,
í þessum 4 skrefum: Pre-vinnslu, samantekt sig, samsetningu, og tengja.
En við í bekknum og flestir í heiminum draga yfirleitt öllum þessum skrefum
eins og bara "að setja saman."
En ef við byrjum með frumkóða svona, muna þetta er kannski einfaldasta C program
við höfum skrifað hingað til, muna að þegar saman það endar útlit eins og þetta.
En það er í raun millistig skref, og þau skref eru sem hér segir.
Fyrst er það þessi hlutur á the mjög toppur af þessu og flest af áætlunum okkar,
# Include
Hvað er # include gera fyrir okkur?
Það Nánast eintök og deig innihald stdio.h í skrá mínum sem svo hvers vegna?
Hvers vegna ekki sama ég um innihald stdio.h? Hvað er þarna af áhuga?
Printf er yfirlýsing, frumgerð þess, þannig að þýðandinn þá veit hvað ég meina
þegar ég nefni þetta virka printf.
Svo lið 1 í samantekt er pre-vinnslu, þar sem forrit eins Clang
eða einhver hjálpar forrit sem Clang koma með les kóða efst til botn,
vinstri til hægri, og hvenær sem það sér # tákn á eftir leitarorð eins og meðal annars,
það virkar þá aðgerð, afrita og líma í þessu tilfelli stdio.h í skránni þinni.
Það er skref 1.
Síðan sem þú ert miklu stærri C skrá því af the gríðarstór afrita, líma starf sem er bara gerðist.
>> Skref 2 nú er að setja saman.
En það reynist að setja saman tekur kóðann sem lítur svona út
og snýr það inn í eitthvað sem lítur út eins og þetta,
sem fyrir þá sem þekkja er kallað? >> [Nemandi] þing. >> Smalamál.
Þetta er í raun eitthvað ef þú tekur CS61 þú kafa inn í fleiri smáatriði.
Þetta er bara um eins nálægt og þú getur fengið að skrifa 0s og 1s sjálfur
en skrifa hluti á þann hátt að enn gerir að minnsta kosti lítill hluti af skilningi.
Þetta eru vél leiðbeiningar, og ef við skruna niður til the aðalæð virka hér,
eftir að það er þetta ýta kennslu, færa kennslu, draga kennslu,
kalla kennslu, og svo framvegis.
Þegar þú heyrir um að tölvan þín hefur Intel Inside,
þú ert með Intel örgjörva í Mac eða PC, hvað þýðir það?
A CPU kemur byggð af fyrirtækjum eins og Intel skilja ákveðnar leiðbeiningar.
Þeir hafa ekki hugmynd um hvaða aðgerðir eins skipti eru eða helstu eru í sjálfu sér,
en þeir vita hvað mjög lágmark-láréttur flötur leiðbeiningar eins og að bæta við, draga frá, ýta,
færa, hringja, og svo framvegis eru.
Svo þegar þú saman C kóða inn í tungumáli samkoma,
mjög notandi vingjarnlegur-útlit kóða er breytt í eitthvað sem lítur út eins og þetta,
sem hreyfist bókstaflega bæti eða 4 Bytes kring í svo litlum einingum í og ​​út af the CPU.
En að lokum, þegar Clang er tilbúinn að taka þetta framsetning forritinu
í 0s og 1s, þá gerist skref heitir samsetningu,
og aftur allt gerist í blikka af óákveðinn greinir í ensku auga þegar í gangi Clang.
Við byrjum hér, það framleiðsla skrá eins og þetta, og þá breytir það því að þessum 0s og 1s.
Og ef þú vilt fara til baka á einhverjum tímapunkti og í raun sjá þetta í aðgerð,
ef ég fer inn í hello1.c--þetta er eitt af fyrstu verkefnum við leit á -
Venjulega við myndu þýða þetta með hello1.c Clang og þetta myndi gefa okkur a.out.
Ef hins að gefa í staðinn það að-S fána, hvað þú munt fá er hello1.s
og þú munt í raun að sjá samsetningu tungumál.
>> Ég ætla að gera þetta í mjög stutt, en ef þú ferð aftur að Scramble
eða endurheimta eða hvaða forrit sem þú hefur skrifað og bara út af forvitni
langar að sjá hvað það lítur út í raun eins og, hvað er í raun verið gefið út í CPU,
þú getur notað að-S fána með Clang.
En svo loks, það er enn einn Gotcha.
Hér eru 0s og 1s sem tákna framkvæmd minn hello, world.
En ég nota virka einhver annar í áætlun mína.
Svo jafnvel þótt ferlið hafi verið ég að taka hello.c,
það gerist unnin í samkoma kóða, og þá fær saman í 0s og 1s,
eina 0s og 1s sem outputted á þessum tímapunkti
eru þau sem stafa af kóða mitt.
En sá sem skrifaði printf, saman þeir númerið sitt 20 árum
og það er nú sett upp einhvers staðar á tækinu,
þannig að við höfum einhvern veginn að sameina hans eða hennar 0s og 1s með 0s minn og 1s,
og það kemur okkur til 4 og síðasta skrefi samantekt, þekktur sem tengja.
Svo á vinstri hönd hlið við höfum nákvæmlega sömu mynd og áður:
hello.c verður samkoma kóða verður 0s og 1s.
En muna að ég notaði venjulegt i / O bókasafn í númerið mitt,
og það þýðir að einhvers staðar á tölvunni það er skrá sem heitir stdio.c
eða að minnsta kosti saman útgáfa vegna þess að einhver nokkur ár síðan
saman stdio.c inn kóða samkoma og a heild búnt af 0s og 1s.
Þetta er það sem er þekktur sem truflanir eða dynamic bókasafn.
Það er einhver skrá situr einhvers staðar í tækinu.
>> En loks, ég verð að taka 0s mína og 1S og sá maður er 0s og 1s
og einhvern veginn tengja þá saman, sameina bókstaflega þá 0s og 1s
í einni skrá sem heitir a.out eða hello1 eða hvað ég kallaði program minn
þannig að niðurstaðan hefur allt 1s og 0s sem ætti að semja áætlun mína.
Svo allan þennan tíma þessari önn þegar þú hefur verið að nota Clang
og jafnvel fleiri nýlega keyra gera til að hlaupa Clang,
allar þessar ráðstafanir hafa verið að gerast svona samstundis, en mjög vísvitandi.
Og svo ef þú heldur áfram á í tölvunarfræði, þ.e. CS61,
þetta er lag sem þú munt halda áfram að afhýða aftur burt það
að tala um hagkvæmni, öryggi afleiðingar, og eins af þessum lægri upplýsingar.
En með það, við erum að fara að fara C eftir.
Við skulum fara á undan og taka 5-mínútna hlé okkar núna,
og þegar við komum aftur: Internetið.
Allt í lagi. Við erum aftur.
Nú erum við að byrja að líta okkar ekki bara í HTML því, eins og þú munt sjá,
HTML sjálft er í raun frekar einfalt
en í raun á forritun vefur almennt, net almennt,
og hvernig öll þessi tækni koma saman
til að leyfa okkur að búa til miklu flóknari forrit topp Netinu
en svona langt við höfum getað í þessum svörtu og hvítu glugga.
Reyndar, á þessum tímapunkti í önn þrátt fyrir að við munum eyða tiltölulega minni tíma
á PHP, HTML, CSS, JavaScript, SQL og fleira,
flestir nemendur gera á endanum að gera lokaverkefni sem eru vefur-undirstaða
því eins og þú munt sjá, bakgrunnur sem þú hefur nú í C
er mjög mikið við þessar hærri stigi tungumálum.
>> Og eins og þú byrjar að hugsa um lokaverkefnið þitt,
sem, eins og Set Vandamál 0, hvar varst þú hvött
að gera flest allt af áhuga á þér í grunni,
sem lokaverkefni er tækifæri til að taka nýfundinni þekkingu þína og kunnátta með C
eða PHP eða JavaScript eða eins út fyrir a snúningur
og búa til mjög eiga stykki af hugbúnaður fyrir the veröld til sjá.
Og niðjum þú með hugmyndir, ég veit að þú getur höfuð hér, projects.cs50.net.
Á hverju ári, fara fram við hugmyndir frá kennara og starfsfólk og nemandi hópa á háskólasvæðinu
bara til að senda inn hugmyndir sínar á áhugaverða hluti sem hægt væri að leysa með tölvur,
nota vefsíður með hugbúnaði.
Svo ef þú ert í erfiðleikum með að koma upp með óákveðinn greinir í ensku hugmynd af þinn eiga,
fyrir alla muni að fletta í gegnum hugmyndir þar frá þessu ári og síðasta.
Það er fullkomlega í lagi að takast á verkefni sem hefur tekist áður.
Við höfum séð mörg forrit til að sjá stöðu þvottinn á háskólasvæðinu,
margir apps fyrir siglingar í stofu borðstofu valmyndinni
margir apps fyrir siglingar kennsluskrá og þess háttar.
Og reyndar í framtíðinni fyrirlestri og í framtíðinni námskeiðum,
Við munum kynna þér að einhverju aðgengilegar API, bæði auglýsing í boði
og hér í boði frá CS50 á háskólasvæðinu þannig að þú hefur aðgang að gögnum
og getur þá gera áhugaverða hluti með það.
Svo meira á lokaverkefnum í nokkra daga þegar við gefa út texta,
en nú, ég veit að þú getur unnið sóló eða með einum eða tveimur vinum
á flestum hvaða verkefni þú hefur áhuga á.
The Internet.
Þú ferð á undan og draga úr fartölvu, þú ferð facebook.com í fyrsta sinn,
hafa ekki innskráður nýlega, og ýttu á Enter. Hvað gerist nákvæmlega?
>> Þegar þú högg inn á tölvunni þinni, allt fullt af skrefum
byrja konar dularfullur gerast.
Svo er þú hér á vinstri, vefur framreiðslumaður eins og Facebook hér til hægri,
og einhvern veginn að þú ert að nota þetta tungumál kallast HTTP, Hypertext Transfer Protocol.
HTTP er ekki forritunarmál. Það er meira um siðareglur.
Það er sett á samninga sem vefur flettitæki og vefur framreiðslumaður nota þegar intercommunicating.
Og hvað þýðir þetta er sem hér segir.
Margt eins og í hinum raunverulega heimi, höfum við þessar samninga
þar sem ef þú hittir einhverja manneskju í fyrsta sinn, Ef þú dont 'hugur humoring mig hér,
Ég gæti komið upp til þín, segja: "Hæ, ég heiti Davíð." >> Hæ, David. Ég heiti Sammy.
"Hæ, David. Heiti Sammy."
Svo nú höfum við bara þátt í þessari tegund af vitleysu manna siðareglur
þar sem ég hef frumkvæði að siðareglur, Sammy hefur brugðist,
við höfum hrista hendur, og viðskiptin er lokið.
HTTP er mjög svipuð í anda.
Þegar vefur flettitæki beiðnir www.facebook.com,
hvaða vafra er í raun að gera er nær hendinni, svo að segja,
við miðlara og það er að senda það skilaboð.
Og skilaboðin eru oftast eitthvað eins og að fá - hvað viltu fá? -
fá mig á heimasíðuna, sem er yfirleitt táknað með einu skástriki í lok vefslóð.
Og bara svo þú vitir hvað tungumál sem ég er að tala, ég er að vafra að fara að segja þér
sem ég er að tala HTTP útgáfa 1,1,
Og einnig fyrir gott mál, ætla ég að segja þér að vélin sem ég vil á heimasíðu
er facebook.com.
Venjulega, a vefur flettitæki, unbeknownst þér, manna,
sendir þessi skilaboð yfir internetið þegar þú slærð einfaldlega www.facebook.com,
>> Sláðu inn í vafrann þinn.
Og hvað er Facebook bregðast við?
Það svarar með einhverjum svipuð-útlit dulinn upplýsingar en einnig margt fleira.
Leyfðu mér að fara á undan á heimasíðu Facebook hér.
Þetta er skjár sem flest okkar sennilega aldrei sjá hvort þú vera skráður í allan tímann,
en þetta er örugglega heimasíða þeirra.
Ef við gerum það í Króm, eftir að þú getur draga upp þessa litlu valmyndir samhengi.
Using Chrome, hvort sem er á Mac OS, Windows, Linux, eða þess háttar,
ef þú stjórna smella eða vinstri smell, getur þú yfirleitt draga upp valmynd sem lítur svona út,
þar nokkrir möguleikar bíða, einn sem er View Page Source.
Þú getur líka yfirleitt fá að þessum hlutum með því að fara í View valmyndinni og poking í kring.
Til dæmis, hér undir View, Hönnuður er sama.
Ég ætla að fara á undan og horfa á View Page Source.
Það sem þú munt sjá er HTML sem Mark hefur skrifað til að tákna facebook.com.
Það er heill óreiðu hér, en við munum sjá að þetta gerir lítið meira vit fyrir löngu.
En það eru sumir mynstur hér. Leyfðu mér að fletta niður til að efni eins og þetta.
Þetta er erfitt fyrir manneskju að lesa, en taka eftir því að það er þetta mynstur af horn sviga
með leitarorðum eins og valkostur, leitarorð eins og gildi, sumir vitnað strengi.
Þetta er þar, þegar þú skráðir þig í fyrsta sinn, tilgreint hvaða fæðingarár er.
Að falla-dúnn matseðill ár fæðingu er einhvern veginn kóðuð hér
í þessu máli sem heitir HTML, Hypertext Markup Language.
Með öðrum orðum, þegar vafrinn þinn óskar eftir vefsíðu,
það talar þessa venju sem heitir HTTP.
En hvað þýðir facebook.com bregðast við þeirri beiðni með?
>> Það bregst við sumum þessara dulinn skilaboð, eins og við munum sjá í smá stund.
En af viðbrögðum þess er í formi HTML, Hypertext Markup Language.
Það er í raun tungumál þar sem vefsíða er skrifuð.
Og hvað vefur flettitæki raunverulega hjartarskinn þá, að fenginni eitthvað sem lítur út eins og þetta,
les það toppur til botn, vinstri til hægri, og hvenær sem það sér einn af þessum horn sviga
fylgt eftir með leitarorð eins og valkostur, sýnir það að ívafsmálið viðeigandi hátt.
Í þessu tilfelli, myndi það sýna a falla-dúnn matseðill á árum.
En aftur, þetta er heill óreiðu til að líta á.
Þetta er ekki vegna þess að Facebook verktaki farmskrá 0 til 5 fyrir stíl, til dæmis.
Þetta er vegna þess að flest af þeim kóða sem þeir skrifa er í raun skrifað fallega,
vel athugasemd, fallega grafin, og eins,
en vélar sjálfsögðu tölvur, vafra virkilega gefa ekki fjandinn
hvort númerið er vel stíll.
Og í raun er það alveg sóun að högg á Tab-takkann öllum þeim sinnum
og til að setja athugasemdir allt um númerið þitt og velja mjög lýsandi breytu nöfn
því ef vafrinn er ekki sama, það eina sem þú ert að gera í lok dagsins er eyðileggjandi bæti.
>> Svo kemur í ljós það sem flestir vefsíður gera er þó kóðinn fyrir facebook.com,
fyrir cs50.net og allar þessar aðrar vefsíður á Internetinu
eru yfirleitt vel skrifuð og vel sagði og fallega indented og eins,
yfirleitt áður en vefsvæðið er sett á Netið er númerinu minified,
þar sem HTML og CSS - eitthvað annað sem við munum fljótlega sjá -
JavaScript kóða við munum fljótlega sjá er þjappað,
þar lengi breytu nöfn verða X og Y og Z,
og öll þessi bil sem gerir allt líta svo læsileg er allt hent,
því ef þú hugsar um það með þessum hætti, Facebook fær milljarð síðu hits á dag -
eitthvað brjálaður eins og þessi - svo hvað ef forritarinn bara til að vera anal
högg the bar rúm einn auka tíma bara til að draga einhverja línu af kóða alltaf svo miklu meira?
Hvað er óbeint ef Facebook varðveitir að stafabil
í öllum bæti þeir senda til baka til fólks á Netinu?
Hitting á bil bar þegar gefur þér auka bæti í skránni þinni.
Og ef milljarðar manna halda áfram þá til að sækja heimasíðu um daginn,
hversu mikið fleiri gögn hefur þú send yfir Internetið?
A Gígabæti fyrir neitun góður ástæða.
Og veitt, fyrir a einhver fjöldi af websites er ekki svo stigstærð mál,
en Facebook, fyrir Google, fyrir sumir af the vinsæll vefsíður
Það er mikill hvati fé til að gera númerið þitt útlit eins og óreiðu
þannig að þú ert að nota sem fáir bytes sem hægt er til viðbótar við þá þjappa það
að nota eitthvað eins og zip, reiknirit sem kallast gzip,
að vafrinn virkar fyrir þig sjálfkrafa. En þetta er hræðilegt.
Við munum aldrei læra neitt um vefsíður annarra og hvernig á að hanna vefsíður
Ef við verðum að líta á það svona.
>> Svo sem betur fer, vafra eins Króm og IE og Firefox þessa dagana
yfirleitt koma með innbyggður-í verktaki verkfæri.
Í staðreynd, ef ég fer niður að skoða þátt eða ef ég fer að skoða, verktaki,
og fara í Developer Tools sérstaklega,
Þessi gluggi neðst á skjánum mínum birtist nú upp.
Það er svolítið erfið í fyrstu vegna þess að það er mikið af framandi flipa hér,
en ef ég smelli á þætti alla leið neðst til vinstri,
Chrome er augljóslega mjög klár. Það veit hvernig á að túlka alla þessa kóða.
Og svo hvað Króm gerir það hreinsar upp öll HTML Facebook.
Jafnvel þó að það er ekki bil þarna, það er ekki inndrátt þar,
nú eftir að ég er að byrja að sigla þessa vefsíðu allt meira hierarchically.
Það kemur í ljós að sérhver vefur blaðsíða skrifuð á tungumáli sem kallast HTML5 ætti að byrja á þessu,
þetta DOCTYPE yfirlýsingu, svo að segja: <! DOCTYPE html>
Það er góður af ljós og grár þar, en það er mjög fyrstur lína af kóða í þessari skrá,
og það segir bara vafrann, "Hey, hér kemur smá HTML5. Hér kemur á vefsíðu."
Fyrsta opna krappi umfram það verður að vera þessi hlutur, opið krappi HTML tag,
og svo ef ég kafa í dýpri - þessar örvar eru alveg tilgangslaust;
þeir eru bara fyrir sakir kynningu, eru þeir í raun ekki á skrá -
taka eftir því að inni í HTML tag Facebook, nokkuð sem byrjar með opnum krappi
og síðan hefur orðið er kallað merki.
Svo er inni í HTML tag greinilega höfuð merki og líkami tag.
Inni í höfði tag er nú allt sóðaskapur á Facebook
vegna þess að þeir hafa a einhver fjöldi af lýsigögn og aðra hluti fyrir markaðssetningu og auglýsingar.
>> En ef við skruna niður, niður, niður, niður, við skulum sjá hvar það er. Hér er það.
Þessi er að minnsta kosti nokkuð kunnuglegt.
Titillinn á heimasíðu Facebook, ef þú lítur alltaf á flipann í bar titill þinn,
er velkomið að Facebook - Log In, Nýskráning eða Læra meira.
Það er það sem þú vilt sjá í titilstika Króm ',
og það er hvernig það er fulltrúa í kóða.
Ef við hunsa allt annað í höfuðið, eru flest hugaður af vefsíðu í líkamanum,
og það kemur í ljós að númerið Facebook er að fara að líta flóknari
en flestir sem við munum skrifa í upphafi bara vegna þess að það hefur verið byggt upp á undanförnum árum,
en það er allt fullt af tags handrit, JavaScript kóða,
sem gerir website mjög gagnvirk:
sjá stöðuuppfærslur samstundis nota tungumál eins og JavaScript.
Það er eitthvað sem kallast div, sem er deild á síðunni.
En áður en við komum til að smáatriðum, skulum reyna að minnka
og líta á einfaldari útgáfu af Facebook 1,0, svo að segja.
Hér er halló, heimur af vefsíðum.
Það hefur að DOCTYPE yfirlýsingu á mjög efst
sem er svolítið öðruvísi en allt annað.
Ekkert annað við að skrifa á vefsíðu er að fara að byrja með <! nema þessi lína þar
og nema um eitthvað sem kallast athugasemdir í HTML.
En að mestu leyti, allt í a vefur blaðsíða er opinn krappi, leitarorð, loka krappi.
>> Í þessu tilviki getur þú séð einföldustu vefsíðum mögulegt.
HTML merki inniheldur höfuð tag og það inniheldur líkami tag,
en taka eftir því að það er þetta hugmynd að byrja og stöðva merki.
Þetta er að byrja tag fyrir HTML, þetta er loka merki eða enda merkinu.
Takið eftir að þeir eru eins konar andstæðum í þeim skilningi að loka merki eða lokamerkinu
hefur þetta rista fram inni í sjálfu sér.
Á sama tíma, það er opið höfuð merki hér og náinn höfuð merki hér.
>> Það er opinn titill og náinn titill tag hér.
Sú staðreynd að ég hef sett titil á einni línu, eingöngu handahófskennt.
Það virtist eins og það myndi passa vel á eina línu, svo ég gerði ekki nennir hitting inn í nokkur skipti.
Á sama tíma, undirlið líkaminn ég gerði bara að vera alltaf svo skýr.
Takið eftir því að HTML er mjög heimsk tungumál.
Í staðreynd, aftur í dag fyrir voru WYSIWYG ritstjórar
og Microsoft Word þar sem þú getur sagt: "Gerðu þetta feitletrað, Gerðu þessa skáletrun,"
þú vildi raunverulega slá litla stjórn á ritgerðum 20 + árum
þannig að þú myndir segja, "Byrja að gera þetta Textinn feitletraðar. Hættu að þessi texti feitletraðar."
"Byrja að gera þennan texta skáletrun. Hættu að þessum texta skáletrun."
>> Það er það sem HTML eða Markup Language er.
Þetta fyrsta merki segir "Hey, vafrinn. Hér kemur smá HTML-kóða."
Næsta merki segir "Hey, vafrinn. Hér kemur höfuð, haus vefsíðu mína."
"Hey, vafrinn. Hér kemur titilinn."
Og svo hérna, "Hey, vafrinn. Það er það um titilinn."
Svo er þetta hvernig vafrinn veit að ekki lengur sýna fleiri stafi en halló, heimur
í titli bar.
Á sama tíma, það segir: "Þetta er það fyrir höfuð."
Þetta segir, "Hér kemur líkamanum Hér er í raun líkami." - Bókstaflega, orðin halló, heimur.
Og þetta segir hér: "Það er það fyrir líkamann. Það er það fyrir HTML."
Svo vafrar eru nokkuð heimsk.
Þeir lesa bara þetta dót efst til botn, vinstri til hægri, og gera nákvæmlega það sem þeim er sagt að gera.
Við skulum í raun gera smá dæmi hérna.
Leyfðu mér að opna einföldustu forrit á Mac minn hér, þ.e. TextEdit.
Á Windows þú getur notað Notepad.exe.
En þetta er allt sem þú þarft til að byrja að gera vefsíður.
Ég ætla að fara á undan og bara að afrita og líma þennan kóða inn í þessa skrá.
Ég ætla að fara á undan og vista hana á skjáborðinu mínu,
og ég ætla að vista þetta sem hello.html,
og nú skrá heitir hello.html.
Hér er það á skjáborðið.
Leyfðu mér að fara nú inn í vafrann og draga skrána inn í vafrann.
Og voila, hér er mjög fyrstu vefsíðuna mína.
Takið eftir því að titillinn á flipanum er halló, heimur sem á titli tag,
Athugið að halló, heimur er líkami vefsíðu mína,
og Woo-Hoo, ég er á netinu.
>> Ég er ekki í raun, ekki satt, vegna þess að þessi skrá er ekki á netinu.
Það gerist að vera á harða diskinn á viðkomandi braut.
En hugmyndin er sú sama. Allt sem við þurfum nú er vefur framreiðslumaður sem á að senda það.
En fyrst skulum raunverulega kynna aðeins meiri flókið og aðeins meiri stylization.
Þetta er einfalt, ef leiðinlegt, vefur blaðsíða.
Það kemur í ljós að það eru aðrar gerðir af merkjunum sem við getum notað.
Til dæmis hér í gulu Ég hef kynnt 2 nýjar merkingar.
Við munum ekki spila mikið með þessum í dag, en eftir að tengja merki
einhvern veginn lítur öðruvísi frá öðrum.
The hlekkur Tag tekur það sem kallast eiginleika,
og eiginleiki er eitthvað sem breytir hegðun merki.
Í þessu tilfelli er þetta ekki besti kosturinn af nöfnum, hlekkur, því það er góður af tilgangslaust,
en þennan tengil merki segir í raun, fela í sér skrá sem kallast styles.css innan vefsíðu mína.
Þú getur hugsað þetta eins og hliðstætt er C # include tilskipun.
Styles.css vísar til mismunandi tungumál með öllu að við munum ekki spila við í dag,
en það er fyrir fagurfræði: letur, liti, padding, skerðing, álagningu,
og öll þessi tegund af fagurfræði smáatriðum.
Á sama tíma, handritið tag er virkni svipuð,
heldur en fela CSS, sem tungumál, nær það annað tungumál, JavaScript.
Svo í öðrum orðum, með þessum 2 merkjum sem ég mun að lokum vera fær um að skrifa eigin vefsíðu mína
en einnig draga í kóða sem ég eða einhver annar hefur skrifað
svo að við getum staðið á herðum annarra, getum við æfa góða hönnun,
Factoring út sameiginlega kóða.
Ef ég hef fengið 10 mismunandi vefsíðum, þetta þýðir að sum af fagurfræði mínum
getur verið þáttur út, líkt og # include, í sérstakri skrá.
Þannig að við erum að fá þarna.
En við skulum í raun fyrst að gera eitthvað meira áhugavert með þessari skrá.
>> Aftur, þetta er bara TextEdit. Ég er ekki tæknilega á Netinu enn, en við munum fá það.
Mig langar að gera Hello, world örlítið djarfari en það er.
Svo halló, skulum geðþótta segja fyrir feitletrun.
Aftur, er sagan sú sama: Halló, komma, byrja að gera þetta feitletrað,
þá heimurinn fær prentuð í feitletrað, og þetta þýðir að hætta prentun þetta í feitletrað.
Leyfðu mér að fara á undan og vista þessa skrá mína, fara aftur í Chrome, ég stækka bara svo við getum séð það betra,
og endurhlaða, og þú munt sjá að heimurinn er nú feitletraður.
The Web er allt um tengla, þannig að við skulum fara á undan og gera þetta:
Uppáhalds vefsíðan mín er, við skulum segja, youtube.com.
Vista, endurhlaða. Allt í lagi. There 'a par vandamál nú auk hideousness af the website.
1, ég er nokkuð viss um að ég lenti inn hér. Og ég gerði.
Ég ekki bara högg inn, ég grafin líka, að æfa það sem við höfum verið að predika um stíl,
en minn er rétt við hliðina á heiminum.
Svo hvers vegna er þetta? Vafrar gera aðeins það sem þú segir þeim að gera.
Ég hef ekki sagt að vafra, "Break línur hér. Settu málsgrein brot hér."
Svo vafra, það skiptir ekki máli ef ég lenti aftur 30 sinnum,
það er samt að fara að setja rétt minn við hliðina á heiminum.
Það sem ég hef í raun að gera hér er að segja eitthvað eins og br, setja línu brot.
>> Og í raun, línu brot er góður af furðulegur hlutur
vegna þess að þú getur í raun ekki byrjað að færa til annarra, þá gera eitthvað,
og þá hættir að flytja í nýja línu. Það er góður af lotukerfinu aðgerð.
Þú gera annað hvort það eða þú hefur ekki. Þú högg inn eða þú hefur ekki.
Svo er BR a lítill hluti af a mismunandi merki, og svo að ég þarf að raða í bæði opna og loka því
allt í einu.
The setningafræði fyrir það er þetta.
Tæknilega, gætir þú gert eitthvað svona í sumum útgáfum af HTML,
en þetta er bara heimskulegt því að það er engin ástæða til þess að byrja og stöðva eitthvað
ef þú getur í staðinn að gera það allt í einu.
Gera sér grein fyrir að HTML5 ekki stranglega krafist þessa rista,
svo þú verður að sjá kennslubækur og online auðlindir sem ekki hafa það,
en gott mál skulum æfa samhverfu sem við höfum séð hingað til.
Þetta þýðir að merki er bæði opnað og lokað.
Svo nú láta mig spara skrána mína, fara til baka hér.
Jæja, svo það er að byrja að líta betur út, nema á vefnum sem ég veit að er góður af smella,
og enn æska hér virðist ekki leiða til neitt.
Það er vegna þess að jafnvel þó að það lítur út eins og a hlekkur, vafrinn ekki vita að í sjálfu sér,
svo ég verð að segja vafra sem er tengill.
>> Leiðin til að gera þetta er að nota akkeri tag:
<A href fyrir há tilvísun, sem er af gamla skólanum að segja tengil,
= "Http://www.youtube.com">
og láta mig færa þetta til nýja línu bara svo það er aðeins meira læsileg,
og ég ætla að skreppa leturstærð.
Er ég að gera enn? Nei Það er að fara að vera svona dichotomy.
Þetta merki, akkeri tag, hefur örugglega tekið eiginleika,
sem breytir hegðun þess og gildi þess eiginleika er greinilega URL YouTube.
En eftir á slag er að bara vegna þess að það er URL sem þú ert að fara til,
það þýðir ekki að að vera orðið sem þú ert að undirstrika og gera tengil.
Frekar, það getur verið eitthvað eins og this.
Þannig að ég verð að segja að hætta að gera þetta orð stikla því að nota loka akkeri merkinu.
Tilkynning Ég er ekki að gera þetta.
1, þetta myndi bara vera tímasóun allra og það er ekki nauðsynlegt.
>> Til að loka á merki, minnst þú aðeins nafn á tag aftur.
Þú nefnir ekkert af eiginleikum.
Svo skulum spara að fara til baka. Jæja, voila, nú er það blátt og vefslóðartengdar.
Ef ég smelli á það, ég reyndar að fara á YouTube.
Svo jafnvel þótt vefsíða mín er ekki á netinu, það er að minnsta kosti HTML,
og ef við láta Internet veiða upp, myndum við í raun á endanum hér á youtube.com.
Og ég get farið aftur og hér er vefsíðan mín. En eftir þetta.
Ef þú hefur einhvern tíma fengið ruslpóst eða phishing árás,
nú hefur þú möguleika eftir aðeins fimm mínútur til að gera slíkt hið sama.
Við getum farið hér og gera eitthvað eins www.badguy.com
eða hvað er sketchy website, og þá er hægt að segja að staðfesta PayPal reikninginn þinn.
[Hlátur] Og nú er þetta að fara að fara til badguy.com, sem ég ætla ekki að fara að smella á
vegna þess að ég hef ekki hugmynd um hvar það leiðir. [Hlátur]
>> En við höfum nú getu til raunverulega endað þar.
Þannig að við erum í raun bara að byrja að klóra í yfirborðið.
Við erum ekki að forritun í sjálfu, við erum að skrifa Markup Language.
En um leið og við umferð út orðaforða okkar í HTML,
munum við kynna PHP, raunveruleg forritun tungumál
sem mun gera okkur kleift að búa til HTML sjálfkrafa mynda CSS sjálfkrafa,
svo að við getum byrjað á miðvikudaginn til að framkvæma, segja,
eigin leitarvél okkar og fleira.
En meira um það í nokkra daga. Við sjáumst þá.
>> [CS50.TV]