[Adolygiad: Cwis 1] [Ali Nahm, Oreoluwa Barbarinsa, Lucas Freitas, Rob Bowden] [Prifysgol Harvard] [Mae hyn yn CS50.] [CS50.TV] [Lucas Freitas] Croeso i bawb. Mae hyn yn cael ei adolygu ar gyfer cwis 1. Yn union fel ymwadiad, mae hyn yn - yr wyf yn golygu, rydym yn mynd i geisio i dalu cymaint o ddeunydd â phosibl, ond nid yw hynny'n golygu bod rydym yn mynd i dalu am yr holl bethau a all fod mewn cwis 1. Felly gwnewch yn siŵr eich bod hefyd yn edrych ar darlith, adrannau, mae popeth yr ydych yn gallu. Cwis 1 yn mynd i fod ar ddydd Mercher, ddydd Mercher nesaf. Felly, gofalwch eich bod yn astudio. Mae'n mynd i fod, 'n bert lawer, fel y cwis cyntaf ynghylch ei fformat, ond mae'n debyg ei fod yn mynd i fod yn llawer anoddach. O leiaf, y llynedd pan gymerais 50, yr wyf yn meddwl ei fod yn llawer anoddach. Felly, yn astudio llawer. Rydw i'n mynd i dalu am strwythurau data a Huffman codio. Mae hyn yn rhywbeth y mae llawer o bobl yn meddwl yn gymhleth, ond rwy'n mynd i geisio ei gwneud mor hawdd â phosibl. Yn gyntaf oll, yr hyn yr ydym am i chi guys i wybod am cwis 1 yw deall y disgrifiadau cysyniadol pob un o'r strwythurau data fy mod i'n mynd i gyflwyno. Mae hynny'n golygu nad oes rhaid i chi mewn gwirionedd gweithredu tabl hash yn eich cwis 1. Nid ydym am i chi i weithredu tabl hash cyfan; efallai byddwn yn ceisio i wneud i chi weithredu rhai swyddogaethau, gweithrediadau mwyaf cyffredin, ond nid ydym yn mynd i wneud i chi roi popeth. Felly mae'n bwysig eich bod yn deall y cysyniad y tu ôl i bob strwythur data a hefyd eich bod yn gallu i cod yn C, dim ond y gweithrediadau mwyaf cyffredin sydd ganddynt ar gyfer pob strwythur data. Ac hefyd yn gallu adolygu awgrymiadau a structs, oherwydd eu bod yn ymddangos llawer yn y strwythurau data. Yn gyntaf, rhestrau cysylltiedig. Rhestrau cysylltiedig mewn gwirionedd yn debyg iawn i araeau, ond mae'r gwahaniaeth rhwng restr cysylltiedig ac amrywiaeth, yn gyntaf oll, yw bod rhestr cysylltiedig Mae maint hyblyg iawn, tra yn rhaid i chi naill ai ddewis maint mawr iawn ar gyfer yr amrywiaeth mewn rhesi, fel eich bod yn gwybod eich bod yn mynd i fod yn gallu storio eich holl ddata yn y casgliad, neu rhaid i chi ddefnyddio'r malloc i gael hyd hyblyg o amrywiaeth. Mewn rhestrau cysylltiedig mae'n hawdd iawn i ddim ond cael mwy o elfennau, rhoi mwy o elfennau yn y rhestr gysylltiedig neu ddileu elfennau. Ac mewn gwirionedd, os nad ydych am i'r rhestr gysylltiedig i'w didoli, gallwch chwilio a chael gwared ar elfennau mewn amser yn gyson, felly O (1) amser, felly mae'n gyfleus iawn. Mae'n rhaid i chi fod yn nodau ofalus bob amser yn cofio i malloc ac yn rhydd, dim ond oherwydd os nad ydych yn gwneud hynny, bydd gennych yn gollwng cof. Rhestrau Felly cysylltiedig - y diffiniad o nod yn union fel yr hyn sydd gennym iawn yno. Yr wyf yn rhoi int n, ond gallwch storio unrhyw ddata rydych ei eisiau. Felly, os ydych am i storio llinyn, mae'n iawn. Os ydych am storio strwythur, mae'n iawn, dwbl, beth bynnag y dymunwch. Fi jyst rhoi int n ar gyfer yr enghreifftiau yma. Ac mae gennych pwyntydd i'r nod nesaf. Felly, yn y bôn, rhestr cysylltiedig Mae rhywfaint o ddata, ac yna mae'n tynnu sylw at y nod nesaf. Os yw'n elfen olaf yn y rhestr gysylltiedig, mae'n mynd i bwyntio at NULL. Felly, mae hyn yn enghraifft o restr cysylltiedig. Iawn, felly nawr gadewch i ni weld beth y dylem ei wneud os wyf i am osod yn elfen yn rhestr cysylltiedig. Yn gyntaf, bydd swyddogaeth mewnosoder fod o fath ddi-rym oherwydd nid wyf am ddychwelyd unrhyw beth. Ac yr wyf i'n mynd i gymryd int fel dadl, oherwydd yr wyf am wybod yr hyn yr wyf i am osod. Felly beth yw'r peth cyntaf y dylwn ei wneud? Wel, dylwn malloc ar newnode, felly mae hynny'n y llinell gyntaf. Im 'jyst yn creu nod newydd i roi mewn rhestr gysylltiedig. Felly, beth allaf ei wneud? Wel, rydym yn gwybod bod yn ein gweithrediadau rhestrau cysylltiedig yn y dosbarth, rydym bob amser yn rhoi y pen fel newidyn byd-eang. Felly, yr hyn y gallwn ei wneud yw newid y pen. Gallaf wneud hyn yn nod newydd fydd y pennaeth newydd, ac mae'n mynd i dynnu sylw at y pennaeth blaenorol. Sut allwn ni wneud hynny? Y peth cyntaf yn rhaid i mi ei wneud yn newid y 'n' yn y nod newydd i werthfawrogi, a basiwyd i'r swyddogaeth. Yna newnode nesaf yn mynd i fod y pennaeth. Mae'r pennaeth yn mynd i gael ei newnode. Felly, mae'n eithaf syml. Ar gyfer dileu nod, gallwn wneud hi fel - Un ffordd y gallem wneud hynny yw, iawn, os oeddwn i eisiau dileu, er enghraifft, 3, hyn y gallwn ei wneud yw dim ond tynnu sylw y nod blaenorol at y nod nesaf o 3. Felly, byddwn yn unig yn ei wneud rhywbeth fel 'na. Ond beth yw'r broblem gyda wneud hynny? Mae gen i gollwng cof, felly nid oes gennyf fynediad i'r rhif 3 anymore. Y broblem gyda hynny yw nad wyf ddim yn mynd i fod yn gallu rhad ac am ddim y nod. Rydw i'n mynd i gael gollwng cof a (annealladwy) yn mynd i casineb i mi. Felly, yn hytrach na gwneud hynny, mae'n debyg y dylwn gael pwyntydd dros dro. Felly, yr wyf yn rhoi dros dro. Mae'n mynd i dynnu sylw at y nod yr wyf am ei dileu. Ac yna gallaf symud y nodau blaenorol i bwynt i'r nod nesaf y nod yr wyf am ei dileu. Ac yn olaf, gallaf ddim y pwyntydd. A oes rhaid i mi ryddhau'r pwyntydd fy mod yn creu iawn yno? Nid oes gennyf i, dim ond oherwydd - y gwahaniaeth yw bod nod hwn yn cael ei greu gan ddefnyddio malloc, felly mae'n yn y domen, tra bod yr un yma yn unig oedd yn datgan fel switsh NULL yn y pentwr. Felly, nid oes rhaid i mi ei ryddhau iddo. Iawn. Felly nawr gadewch i ni siarad am staciau. Pentyrrau yn eithaf syml. Fe wnaethom corn a'r ciwiau yn y dosbarth yn unig gan ddefnyddio araeau, ond dylech fod yn gyfarwydd - dim ond fod yn ymwybodol y gallwch hefyd wneud pentyrrau mewn ciwiau gan ddefnyddio rhestrau cysylltiedig hefyd. Felly, os oes gennych amrywiaeth hyn, beth fyddai'r pentwr? Mae stac, yn gyntaf, bydd yn rhaid i gael maint. Mae'n rhaid i chi storio beth yw maint y pentwr sydd gennych ar hyn o bryd. A hefyd byddai gennych amrywiaeth, yn yr achos hwn o rifau, ond os ydych yn dymuno, gall fod yn amrywiaeth o linynnau, amrywiaeth o strwythur, unrhyw beth yr ydych am ei storio. Am y pentwr: Y gwahaniaeth rhwng pentwr a rhestr cysylltiedig yw bod yn y pentwr yn unig yn cael mynediad at yr elfen olaf y ei roi yn y pentwr i chi. Mae'n cael ei alw ddiwethaf i mewn, cyntaf allan. Yn union fel chi gael pentwr o hambyrddau, os byddwch yn rhoi hambwrdd ar ben y pentwr, rhaid i chi gael gwared ar y hambwrdd cyntaf i gael mynediad i'r hambyrddau eraill. Mae yr un peth gyda chyrn. Felly, os ydw i eisiau, er enghraifft, yn ychwanegu elfen i stac, beth ddylwn i ei wneud? Mae'n cael ei alw gwthio, ac mae'n eithaf syml. Y peth cyntaf yn rhaid i chi ei wneud yw gwirio os yw maint y pentwr Nid yw mwy neu gyfartal i gynhwysedd y pentwr. Oherwydd os ydych eisoes ar gapasiti llawn, ni allwch ychwanegu unrhyw beth arall. Ac yna os nad yw, dim ond rhaid i chi ychwanegu'r elfen i'r pentwr. Ac yn olaf, cynyddiad maint. Felly, mae'n eithaf syml. Felly, Fi jyst ychwanegwch y rhif 2. Ac os ydw i eisiau i pop, sy'n golygu fy mod am gael gwared yr elfen olaf a ychwanegwyd ac yn dychwelyd y gwerth yr elfen, y peth cyntaf rhaid i mi wirio yw nad yw'r pentwr yn wag. Oherwydd os yw'n wag, ni allaf ddychwelyd unrhyw beth. Yn yr achos hwnnw, rwy'n dychwelyd -1. Fel arall, dw i'n mynd i lleihau a maint y fanyleb, a dychwelyd rhifau (s.size). Pam wnes i lleihau a maint ac yna'n dychwelyd s.size? Mae'n oherwydd, yn yr achos hwn, mae'r fanyleb wedi maint 4, ac yr wyf am ddychwelyd y bedwaredd elfen, dde? Ond beth yw'r mynegai y pedwerydd elfen? Tri. Ers i mi ddim maint - yn mynd i fod yn 3, a gaf fi ddychwelyd s.numbers (s.size) am ei fod yn 3. Felly, dim ond y mynegai. Nawr ciwiau. Ciwiau yn 'n bert lawer yr un peth. Yr unig wahaniaeth yw bod yn hytrach na chael ddiwethaf i mewn, cyntaf allan, gennych cyntaf i mewn, cyntaf allan. Mae'n debyg os ydych yn aros i fynd i gyngerdd, ni fyddech yn hapus os ydych wedi cael pentwr yn hytrach na ciw. Byddai bod y person olaf i ddod fydd y person cyntaf i fynd i mewn i'r cyngerdd. Mae'n debyg na fyddai yn hapus. Yn y ciw, y person cyntaf i fynd i mewn hefyd yw'r person cyntaf i fynd allan. Felly, yn y diffiniad o ciw, ar wahân i gael y maint yn yr arae, rhaid i chi hefyd gael y pen, sef y mynegai i'r pennaeth y pentwr. Felly, yr elfen gyntaf ar hyn o bryd. Enqueue yr un peth â gwthio ar gyfer pentyrrau. Os oeddech yn naïf iawn, byddai 'ch jyst yn dweud, dda, gall Fi jyst gwneud yn union yr un peth â wnes i ar gyfer gwthio. Gall Fi jyst wirio os nad yw'n y tu hwnt i'r capasiti. Os ydyw, yr wyf yn dychwelyd ffug, fel arall gall Fi jyst allforio y gwerth newydd ac yna cynyddiad maint. Ond pam mae hyn yn anghywir? Gadewch i ni weld yr enghraifft hon. Im 'yn ceisio i enqueue bagad o bethau, ac yna yr wyf i'n mynd i dequeue a enqueue. Mae yna lawer o orchmynion, ond mae'n syml iawn. Rydw i'n mynd i enqueue 5, felly ychwanegu 5, ac yna 7, 1, 4, 6, ac yna yr wyf am dequeue rhywbeth, sy'n golygu fy mod i'n mynd i gael gwared ar yr elfen gyntaf. Felly, yr wyf i'n mynd i gael gwared ar y rhif 3, dde? Yr elfen gyntaf. Iawn. Nawr, os wyf yn ceisio enqueue rywbeth arall, yr hyn sy'n mynd i ddigwydd? Yn ôl fy rhoi ar waith, Yr oeddwn yn mynd i roi y rhif nesaf yn y q.size mynegai. Yn yr achos hwn, mae maint yw 8, felly bydd y mynegai 8 fod yn iawn yma yn y swydd ddiwethaf. Os byddaf yn ceisio enqueue 1 i'r dde yma, byddwn yn trosysgrifo y swydd ddiwethaf at y rhif 1, sydd yn hollol anghywir. Yr hyn yr wyf am ei wneud yw lapio o amgylch ac yn mynd i'r swydd gyntaf. Efallai y byddech yn dweud, yn dda, dim ond rhaid i mi wirio os gall Fi 'n weithredol yn rhoi rhywbeth yno. Os nad yw, Fi jyst dweud, oh, y gallu llawn newydd mewn gwirionedd capasiti - 1, ac ni allwch roi elfen yno. Ond beth yw'r broblem? Y broblem yw, os Fi jyst dequeue popeth yn iawn yma ac yna yr wyf yn ceisio ychwanegu rhywbeth arall, byddai'n dim ond dweud, yn dda, byddwch yn yn llawn, sydd yn 0. Felly eich ciw wedi mynd. Mae'n rhaid i chi lapio o gwmpas, ac yn ffordd o lapio o gwmpas chi guys a ddysgwyd mewn psets gweledigaethol ac eraill a oedd yn defnyddio mod. Gallwch roi cynnig arni yn y cartref i ddeall pam y byddech yn ei wneud q.size + q.head capasiti mod, ond os ydych yn edrych yn iawn yma, gallwn weld ei fod yn gweithio. Felly, yn yr enghraifft olaf, q.size yn 8 ac mae'r pennaeth yn 1, oherwydd ei fod yn y sefyllfa hon yma o'r rhesi. Felly, bydd yn 8 + 1, 9. Byddai gallu Mod 9 fod yn 0. Byddai'n mynd at y mynegai 0. Byddwn yn yn y safle cywir. Ac yna rhowch gynnig ar y ciw yn y cartref. Rhai pethau pwysig: ceisio deall y gwahaniaeth rhwng pentwr a ciw. Yn y cartref, ceisiwch gael gyfarwydd iawn â gweithredu enqueue, dequeue, gwthio a pop. A hefyd yn deall pryd y byddech yn defnyddio pob un ohonynt. Felly, gadewch i ni ymlacio am 10 eiliad gyda chriw o pokemons. Ac yn awr gadewch i ni fynd yn ôl at strwythurau data. Hash tablau. Mae llawer o bobl yn ofnus o dablau hash. mewn datrys gosod 6, Gwirydd Sillafu. Tablau a cheisiau Hash, mae llawer o bobl yn cael ofn ohonynt. Maen nhw'n meddwl eu bod nhw mor anodd ei ddeall. Yeah? [Rob Bowden] Problem set 5. Problem set 5, yeah. Diolch Rob. Yeah. Chwech oedd Huff n 'pwff, yeah. Problem set 5 oedd Sillafu Checker, ac roedd yn rhaid i chi ddefnyddio naill ai tabl hash neu gais. Mae llawer o bobl yn meddwl eu bod yn super anodd deall, ond maen nhw'n mewn gwirionedd yn eithaf syml. Beth yw tabl hash, yn y bôn? Mae tabl hash yn amrywiaeth o restrau cysylltiedig. Yr unig wahaniaeth rhwng amrywiaeth a bwrdd hash yw bod yn y tabl hash gennych rywbeth a elwir yn swyddogaeth hash. Beth yw swyddogaeth hash? Nid wyf yn gwybod os gallwch chi guys ddarllen yma. Mae hyn yn enghraifft o dabl hash. Fel y gallwch weld bod gennych amrywiaeth gyda 31 elfen. A beth ydym yn ei wneud mewn tabl hash yn swyddogaeth hash sy'n mynd i gyfieithu allweddol, pob un int at fynegai. Os, er enghraifft, os wyf am i ddewis ar gyfer B. Harrison, Byddwn yn rhoi B. Harrison yn fy swyddogaethau hash, a byddai'r swyddogaeth hash yn dychwelyd 24. Felly, yr wyf yn gwybod fy mod am i storio B. Harrison yn 24. Felly, dyna'r gwahaniaeth rhwng dim ond ar ôl amrywiaeth a chael tabl hash. Yn y tabl hash bydd gennych swyddogaeth sydd yn mynd i ddweud wrthych ble i storio'r data yr ydych am ei storio. Ar gyfer y swyddogaeth hash, yr ydych am chwilio am swyddogaeth hash sy'n penderfynedig a dosbarthwyd dda. Fel y gallwch weld yma, byddwch yn gweld bod llawer o'r data yr oeddwn am ei siop oedd mewn gwirionedd yn 19 yn hytrach na defnyddio 31 a 30 a 29, a oedd i gyd am ddim. Felly, nid yw'r swyddogaeth hash a ddefnyddiais yn dosbarthu yn dda iawn. Pan fyddwn yn dweud dosbarthu dda, mae'n golygu ein bod am eu cael, yn fras, o leiaf 1 neu 2 ar gyfer pob un o'r - fel, gwahaniaeth o 1 neu 2 ar gyfer pob un o'r mynegai yn yr arae. Ydych chi am gael, yn fras, yr un nifer o elfennau ym mhob rhestr gysylltiedig yn y rhesi. Ac mae'n hawdd i wirio os yw'n ddilys yn y tabl hash, gweld fel tablau hash. Yna coed. Mae hyn yn goeden. Coed mewn gwyddoniaeth gyfrifiadurol yn wyneb i waered am ryw reswm. Felly, i'r dde yma mae gennych y wraidd y goeden ac yna y dail. Dylech jyst yn gwybod y gyfundrefn enwau ar gyfer rhieni a'r plentyn. Mae gan bob nod ei blant, sef y nodau sydd yn is na'r rhiant. Felly, er enghraifft, 2 yn mynd i fod yn rhiant am 3 ac ar gyfer y plentyn arall yn iawn yno, tra bod 3 yn mynd i fod yn rhiant ar gyfer 1 a plant eraill sydd yno. Ac mae 1 yn mynd i fod yn blentyn 3, ac yn y blaen. Mae gennym rywbeth llawer mwy diddorol, a elwir coeden chwiliad deuaidd, lle mae'r holl werthoedd ar y dde o'r nod yn mynd i fod ar y dde, dde yma - ar y dde, yn mynd i fod yn fwy na'r elfen yn y gwraidd. Felly os wyf yn cael y rhif 5 dde yma, holl elfennau ar y dde yn mynd i fod yn fwy na 5, ac ar y chwith holl elfennau yn mynd i fod yn llai na 5. Pam mae hyn yn ddefnyddiol? Wel, os wyf am i wirio a yw'r rhif 7 yma, er enghraifft, Fi jyst yn mynd i 5 yn gyntaf ac rwy'n mynd i weld, yn 7 mwy neu lai na 5? Mae'n fwy, felly yr wyf yn gwybod ei fod yn mynd i gael i fod ar y dde o'r goeden. Felly, yr wyf yn cael llawer llai bethau i edrych ar. Wrth weithredu coeden chwiliad deuaidd, y nod, Im 'jyst yn mynd i gael i gael data, felly int n; gallech hefyd gael llinyn neu unrhyw beth rydych ei eisiau. Dim ond rhaid i chi fod yn ofalus ar ddiffinio beth yn fwy, beth yw llai. Felly, os ydych wedi cael llinynnau, er enghraifft, gallech ddiffinio bod yr holl bethau y rhai ar y dde yn mynd i gael hyd mwy o faint, y chwith yn mynd i gael hyd is, felly mae'n wirioneddol i fyny i chi. Sut y gallaf ddod o hyd i weithredu BST? Y peth cyntaf y byddwch yn rhaid i ni ei wneud yw gwirio a yw'r gwraidd yn NULL. Os yw'n NULL, mae'n golygu nad yw'r peth yno oherwydd nad ydych yn hyd yn oed gael coeden, dde? Felly, yr wyf yn dychwelyd ffug. Fel arall, dw i'n mynd i wirio a yw'r rhif yn fwy na gwerth yn y gwraidd. Rydw i'n mynd i geisio dod o hyd i'r elfen ar y dde y goeden. Byddwch yn gweld fy mod yn defnyddio recursion yma. Ac yna os yw'n llai, dw i'n mynd i edrych ar y chwith. Ac yn olaf, fel arall, os nad yw'n llai neu beidio fwy, mae'n golygu ei fod yn werth ei hun. Felly, Fi jyst yn dychwelyd yn wir. Gallwch weld yma fy mod yn defnyddio os, os, os. A chofiwch, yn y cwis 0, cawsom broblem a oedd os, os, os, ac yr ydych i fod i ddod o hyd i'r aneffeithlonrwydd, ac yr aneffeithlonrwydd oedd eich bod defnyddio os. Dylech fod wedi defnyddio os, arall os, arall os, ac arall. Felly, ddylwn i ddefnyddio arall os a arall os a arall yma? A oes unrhyw un - yeah? [Siarad Myfyrwyr, anhyglyw] Mae hynny'n berffaith. Felly, mae hi'n dweud nad yw o bwys, dim ond oherwydd yr aneffeithlonrwydd a oedd gennym o'r blaen oedd hynny oherwydd, efallai os bydd rhai cyflwr yn fodlon, felly yr ydych wedi perfformio gweithred, ond yna rydych yn mynd i wirio pob un o'r amodau eraill. Ond yn yr achos hwn, mae'n dychwelyd ar unwaith, felly does dim ots. Felly, nid oes rhaid i chi ddefnyddio arall os. Ac yn olaf, gadewch i ni siarad am gais, sydd yn ffefryn pawb. Mae cais yn goeden o araeau. Mae'n gyflym iawn i chwilio am werthoedd, ond mae'n defnyddio llawer o gof. Ac mae'n fel arfer i hidlo geiriau, felly pan fyddwch yn yn awyddus i weithredu, er enghraifft, nid wyf yn gwybod, fel llyfr ffôn yn eich ffôn a ydych am fod yn gallu teipio B a dim ond enwau pobl sydd ag B. Mae'n hawdd iawn i weithredu bod defnyddio cais, er enghraifft. Sut ydych chi'n diffinio nod mewn cais? Os oes gen ti i gael bool sydd yn mynd i gael ei is_word. Sy'n cynrychioli bod defnyddio'r holl gymeriadau cyn y nod, oeddech yn gallu ffurfio geiriau, ac yna byddwch yn cael amrywiaeth o awgrymiadau i nodau. Allwch chi weld bod gennym amrywiaeth o nodau rhiant, felly nod * amrywiaeth? Yeah? Felly, gadewch i ni weld sut y bydd hynny'n gweithio. Ar gyfer y sillafydd, mae gennym amrywiaeth o 27 elfen, oherwydd ein bod yn cael yr holl lythyrau yn ogystal â'r collnod. Cyn yma Im 'jyst yn mynd i ddefnyddio 2 oherwydd yr wyf am i fod yn gallu ysgrifennu ar y bwrdd. Iawn. Felly, mae hyn yn enghraifft o gais. Os Fi jyst yn diffinio y nod cyntaf, byddaf yn cael amrywiaeth o 2 elfen sy'n 2 awgrymiadau i NULL, felly yr wyf yn jyst rhoi 'a' a 'b'. Ac yr wyf i'n mynd i gael bool sy'n dweud is_word. Mae'n mynd i fod yn ffug am yr un cyntaf, dim ond oherwydd, cyn hynny nad oes gennych unrhyw gymeriadau. Felly nid yw gair gwag yn air. Felly mae'n ffug. Os ydw i eisiau ychwanegu 'a' i geiriadur hwn, beth fyddai'n rhaid i mi ei wneud? Fyddai dim ond rhaid i mi malloc yn nod newydd ar gyfer 'a', ac yna ychwanegu ei air i gwir. Felly, 'i jyst yn cynrychioli bod cael' a 'yn mynd i fod yn wir. Yn gwneud synnwyr? Yna, os ydw i eisiau ychwanegu 'ba', bydd yn rhaid i mi malloc 1 ar gyfer 'b', ac yna yr wyf i'n mynd i osod y boolean i ffug, oherwydd nid 'b' ei ben ei hun yn air. Yna mi i'n mynd i malloc un arall ar gyfer 'a', felly 'ba', ac yna yr wyf i'n mynd i sefydlu ei air i gwir. Gan fod 'ba' yn air. Ac yna os wyf am weld os 'b' yn y geiriadur hwn, Gall Fi jyst yn mynd i'r un cyntaf, 'b'. Yr wyf yn mynd i lawr, ac yr wyf yn edrych arno yw gair, ac y mae'n dweud ffug. Felly, nid yw'n air. Os ydw i eisiau i wirio 'ba', Rwy'n mynd i yr un cyntaf, 'b', ac yna ewch i 'a', ac yr wyf yn gweld yn wir, felly mae'n gair. Yn gwneud synnwyr? Mae llawer o bobl yn cael eu drysu gan geisiau. Nac oes? Yn olaf, Huffman codio. Huffman codio yn ddefnyddiol iawn i arbed cof a chywasgu ffeiliau testun, dim ond oherwydd bod llawer o weithiau ydych yn defnyddio 'a' a 'e', ​​er enghraifft, yn eich dogfennau, ond nid wyf yn gwybod os ydych yn guys yn defnyddio 'q' neu 'z' cymaint. Mae cael dim ond 1 beit ar gyfer pob un cymeriad, pob un - nid yw'r 256 cymeriadau sydd gennym yn y tabl ASCII yn optimaidd iawn, dim ond oherwydd bod rhai cymeriadau eich bod yn defnyddio llawer mwy, felly mae'n debyg y dylech ddefnyddio llai o gof ar gyfer y rhai. Sut ydw i'n defnyddio Huffman codio? Mae'n rhaid i ni wneud coeden Huffman.  Mae gan coeden Huffman nodau sydd â symbol sydd yn mynd i fod yn debyg i, 'a', 'b', 'c', y llythyr, beth bynnag lythyr gennych, amledd dyna'r mor aml y mae'r gair yn ymddangos yn y testun, eich bod yn creu y goeden Huffman ar gyfer, ac yna nod sy'n mynd i dynnu sylw i'r chwith y goeden Huffman a nod arall sy'n mynd i dynnu sylw at y dde. Felly, yn union fel coeden. Sut ydych chi'n adeiladu coeden Huffman? Rydych yn mynd i ddewis y 2 nodau sydd â'r amleddau isaf. Os oes gennych tei ydych yn mynd i ddewis y 2 nodau sydd â gwerthoedd ASCII isaf hefyd. Yna rydych chi'n mynd i greu coeden newydd allan o'r rheiny 2 nodau sy'n mynd i gael y amlder cyfun yn y rhiant nod. Ac yna rydych chi'n mynd i gael gwared ar y 2 blentyn o'r goedwig ac yn eu disodli gyda'r rhiant. A ydych yn mynd i ailadrodd hynny nes dim ond rhaid i chi 1 goeden yn y goedwig. Felly, gadewch i ni weld sut y byddech yn gwneud coeden Huffman i ZAMYLA. Gallwch weld yma bod yr holl lythyrau yn cael amlder 1 ac eithrio 'A', sydd â amlder 2. Felly, yr wyf yn creu nodau ar gyfer yr holl lythyrau yr wyf yn rhoi yn nhrefn eu gwerth ASCII a pha mor aml. Felly, os wyf am i greu'r goeden gyntaf, bydd yn cael ei gyda 'L' a 'M'. Felly mae'n yma. Bydd amlder y pâr fod yn 2 oherwydd ei fod yn 1 + 1, yna bydd y 2 nesaf gyda'r amleddau isaf yw 'Y' a 'Z'. Ac yna gennyf yr holl ohonynt yn - cael amledd o 2. Felly, pa rai yw'r rhai sydd â'r gwerth ASCII isaf ar gyfer yr un nesaf? 'A' a 'L'. Felly, yr wyf yn creu y nod newydd, ac yn olaf, mae'n 4 a 2, felly 2 yn mynd i fod ar y chwith. Ac mae hyn yn goeden Huffman. Yna, os wyf am i ysgrifennu rhai testun, fel yn deuaidd i drosi i destun, gan ddefnyddio'r goeden Huffman yn hawdd iawn. Er enghraifft, os wyf yn dweud bod symud i'r chwith yn 0 a symud i'r dde yn 1, Beth yw bod yn mynd i gynrychioli? Felly fel 1, 1, felly i'r dde, ar y dde, ac yna byddai 0, gadawodd felly byddwch L, ac yna 1, 0, 0. Felly 1, 0, felly dim ond 1, 0, 'A'. Ac yna 0, 1, felly 'Z'. Ac yna 1, 0, 0 - dim. 0, 0 Bydd yn 'Y', felly Lazy. Felly dyna i gyd i mi, Rob mynd i gymryd drosodd. [Rob Bowden] Felly, wythnos 7 stwff. Rydym wedi cael llawer i fynd dros yn gyflym iawn. Gweithredwyr bitwise, gorlif byffer, Llyfrgell CS50, yna HTML, HTTP, CSS. Pawb i mewn fel 15 i 20 munud. Gweithredwyr bitwise. Mae yna 6 ohonynt y mae angen ichi ei wybod. Bitwise ac, bitwise neu, XOR, chwith sifft, newid cywir, ac nid. Hawl symud ac nad ydych prin yn gweld yn y ddarlith o gwbl. Byddwn yn mynd dros yn gyflym yma, ond mae'n dda gwybod bod y rhain yw'r 6 sy'n bodoli. Cofiwch bod gweithredwyr bitwise yn debyg pan fyddwch yn gwneud 3 + 4. Nid ydych yn delio â'r deuaidd o 3 a 4. Gyda gweithredwyr bitwise ydych mewn gwirionedd yn delio â'r darnau unigol y rhifau 3 a 4. Felly, yr un cyntaf y byddwn yn ei ddweud yw bitwise peidio, ac mae pob mae'n ei wneud yw troi holl ddarnau. Felly yma, os ydych yn ysgrifennu hyn yn C, fyddech chi ddim yn ysgrifennu fel ~ 11011 neu beth bynnag, byddech yn ysgrifennu hoffi ~ 4, ac yna byddai'n troi cynrychiolaeth deuaidd 4. Felly dyma, ~ o rai rhif deuaidd 1101101 yn mynd i troi yn union bob 1 i 0 ac mae pob 0 i 1 yn. Fel yr wyf yn dweud yno, mae'r defnydd mynych o hyn, a byddwn yn ei weld yn ychydig, yn debyg ein bod yn awyddus i ddod o hyd i ryw nifer lle yr holl ddarnau yw 1, ac eithrio ar gyfer un ohonynt. Felly mae'n fel arfer yn haws mynegi nifer lle dim ond bod un ychydig wedi ei osod, ac yna cymerwch y ~ ohono, felly pob darn arall wedi ei osod ar wahân i bod un. Felly, dyna beth rydym yn mynd i ddefnyddio mwy mewn tipyn. Bitwise neu. Dyma 2 rhifau deuaidd, ac mae'r rhifau 2 yn eithaf cynrychioliadol, gan eu bod yn cynrychioli pob posibl Gallai cyfuniad o ddarnau angen i chi weithredu ar. Yma, pan fyddaf yn or'd bob bit, rydym yn jyst yn mynd i gymharu yn syth i lawr. Felly, ar yr ochr chwith mae gennym 1 a 1. Pan fyddaf yn bitwise | hynny, beth ydw i'n mynd i gael? Un. Yna bitwise | 0 ac 1 yn mynd i roi i mi? Un. Bitwise 1 a 0 yn mynd i fod yr un peth, un. Bitwise 0 | 0 yn mynd i roi i mi 0. Felly, yr unig achos lle i gael 0 yn y 0 | 0 achos. A allwch chi feddwl am hynny yn union fel eich ORS rhesymegol. Felly, os ydych yn meddwl am 1 mor wir a 0 yn ffug, yr un peth yn berthnasol yma. Felly, yn wir neu yn wir yn wir, gwir neu gau yn wir. Ffug neu yn wir yn wir, ffug neu ffug yw'r unig beth sy'n ffug mewn gwirionedd. Dyma enghraifft y dylech wybod fel enghraifft 'n bert da o bryd gweithredwyr bitwise yn cael eu defnyddio. Yma os ydym neu gyfalaf 'A' gyda Ox20, a byddwn yn edrych ar y rhain yn ail, rydym yn cael rhywbeth. Ac os ydym neu llythrennau bach 'a' gyda Ox20, rydym yn cael rhywbeth. Felly, gadewch i ni tynnu i fyny tabl ASCII. Iawn. Yma rydym yn gweld bod 'A' yw - yma rydym yn cael 'A' yn 65 degol. Ond byddaf yn mynd â hecsadegol, sydd yn Ox41. Pretty sicrhau ein bod yn ei weld yn y dosbarth. Rwy'n credu ein bod yn ei weld yn y dosbarth ei bod yn eithaf hawdd i drosi o hecsadegol i deuaidd. Felly yma, os wyf am roi 4 yn deuaidd, mae hynny'n jyst yn mynd i fod yn 0100. Mae hyn yn 1 yn lle, lle 2, lle 4, felly mae hwn yn 4. Yna gallaf rhannu 1 i deuaidd, sydd yn mynd i fod yn 0001. Ac felly mae hyn yn mynd i fod yn gynrychiolaeth o 'A' mewn deuaidd. Cymryd llythrennau bach 'a', mae'n awr yn mynd i fod yn Ox61, lle, rannu'r rhain i fyny i mewn ei deuaidd, felly 6 - Gadewch i ni mewn gwirionedd yn gwneud hynny - a oes unrhyw rhwbiwr? Rhwbiwr. Ox61. Felly, rhannu 6 i deuaidd yn mynd i fod yn 0 + 4 + 2 + 0. A hollti 1 yn mynd i fod 0001. O edrych ar y gwahaniaeth rhwng y 2, rydym yn gweld bod yr unig wahaniaeth rhwng llythrennau bach a chyfalaf 'A' yw hwn ychydig yn sengl. Felly, yn dod yn ôl ato yma - iawn. Dod yn ôl ato yma, os ydym yn edrych ar yr hyn y darn Ox20 yw, felly hollti Ox20 yn ei deuaidd, yn 0010, 0000. Ox20, yr unig darn sy'n cael ei osod yn bit hon yr ydym yn ymwneud â, gyda newid rhwng cyfalaf a llythrennau bach 'a'. Os byddaf neu 'A', sef yr un yma, 'A', os byddaf neu 'A' gyda Ox20, beth ydw i'n mynd i gael? [Myfyrwyr, anhyglyw] llythrennau bach 'a', gan ei fod yn mynd i troi ychydig hwn i 1. Ac os byddaf neu 'a' gyda Ox20, beth ydw i'n mynd i gael? Llythrennau bach yn, oherwydd dim ond oring 'a' gyda Ox20, Im 'jyst yn mynd i fod yn oring hwn ychydig yn unigol i 1; mae'n eisoes yn 1, felly does dim ots. Felly, rydym yn cael 'a' a 'a'. Bitwise a. Unwaith eto, gallwn feddwl am hyn fel ein cyfatebol rhesymegol a. Ar yr ochr chwith mae gennym wir ac yn wir. Mae'n mynd i fod yn wir, ac ar gyfer pob un o'r achosion, ffug a gwir neu yn wir a ffug, neu ffug a ffug, un o'r pethau hynny yn wir. Felly, yr hyn yr ydym yn y pen draw yn cael yn 1000. Felly nawr, dyma, dyma lle yr wyf wedi defnyddio'r bitwise trusty peidio, lle cawsom Ox20. Felly mae hyn yn Ox20. Nawr yr hyn yr wyf am ei wneud, bitwise ~ o Ox20. Sy'n mynd i troi holl ddarnau. Felly, yr wyf wedi 1101, 1111. Ac felly 'A' anded gyda ~ Ox20 yn mynd i roi i mi beth? Yr unig bit mae gwir angen i ni feddwl amdano yw hwn, ers hynny, os yw pob un y darnau hyn yn cael eu gosod i 1, yna rydym yn mynd i gael yn union beth 'A' oedd, ac eithrio ar gyfer, o bosibl, beth bit yw hyn. Oherwydd os oedd yn 1, erbyn hyn mae'n mynd i gael eu gosod i 0, oherwydd beth bynnag yw hyn, anded â hyn yn mynd i fod yn 0. Felly beth yw 'A' & ~ Ox20 yn mynd i roi i mi? [Myfyrwyr yn ateb, anhyglyw] A beth yw 'a' a - mae'n 'A'. A beth yw '' & ~ Ox20 yn mynd i roi i mi? 'A.' Oherwydd bod hyn yn hyn o bryd 1. Anding â hyn 0 yn mynd i wneud yn 0, ac yn awr rydym yn mynd i gael 'A'. Mae'r ddau yn 'A,' ac yn olaf ond nid yn lleiaf o'r math hwn, rydym wedi XOR. Mae'n debyg iawn neu, ac eithrio ei fod yn golygu yn gyfan gwbl neu. Mae hyn yn debyg yr hyn yr ydych fel arfer yn meddwl amdano fel neu yn y byd go iawn. Felly rydych yn ei wneud naill ai 'x' neu 'y', ond nid y ddau. Yma 1 ^ 1 yn mynd i fod yn 0. Oherwydd yn wir, mae hyn yn - nid yw'n gweithio cystal â'r gwir rhesymegol a gau fel bitwise ac a neu ei wneud, ond yn wir ^ yn wir yn ffug. Gan mai dim ond yn awyddus i ddychwelyd yn wir os mai dim ond un ohonynt yn wir. Felly, 1 ^ 1 yw 0. Beth am 0 ^ 1? Yw 1. 1 ^ 0 yw 1, 0 ^ 0 yw 0. Felly, o dan yr holl amgylchiadau, 0 bitwise rhywbeth 0 yn mynd i fod yn 0. 1 bitwise rhywbeth 0 neu 0 bitwise 1, os yw'n | neu ^, fe fydd yn 1, ac os yw'n & bydd yn cael ei 0. A'r unig achos lle nad yw 1 bitwise 1 yw 1 yn unig neu gyda. Dyna 0110. Felly yma nawr, gan ddefnyddio XOR - felly rydym yn ôl yn 20. 'A' ^ Ox20 yn y 2 darnau rydym yn cymharu. Felly 1 ^ 0 yn mynd i roi i mi beth? Mae un. 'A' ^ Ox20 yn mynd i roi i mi? Lythrennau bach a. 'A' ^ Ox20 yn mynd i roi i mi? Cyfalaf A. Oherwydd beth bynnag mae hyn yn ei wneud, XORing hwn gyda Ox20 yn flipping effeithiol beth bynnag bit yw hyn. Os yw hyn yn 0, mae'n awr yn mynd i fod yn 1. Gan fod hwn yn 1, 1 ^ 1 yw 0. Felly mae ein 'a' wedi dod yn 'A', ac mae ein 'A' wedi dod 'a'. Felly XOR yn ffordd gyfleus iawn o ddim ond flipping yr achos. Rydych yn unig yn awyddus i ailadrodd dros gyfres o lythyrau ac yn ail achos pob un gymeriad, 'ch jyst XOR popeth gyda Ox20. Nawr rydym wedi gadael sifft. Sifft Chwith yn unig yn mynd i, yn y bôn, gwthio pob un o'r rhifau i mewn i, neu ar y chwith, a rhowch 0 yn y tu ôl iddynt. Felly dyma ni wedi 00,001,101. Rydym yn mynd i wthio 3 0 yn o'r dde, ac rydym yn cael 01,101,000. Mewn termau nonbinary, rydym yn gweld bod hynny wedi wir yn delio 13 gyda 3-symud chwith, sy'n rhoi i ni 104. Felly chwith symudol, rydym yn gweld yma, x << y yn y bôn x * 2 ^ y. 13 * 2 ^ 3, 2 ^ 3 yw 8, felly 13 * 8 yw 104. Os ydych yn unig yn meddwl am deuaidd yn gyffredinol, sut y mae pob digid, os byddwn yn dechrau o'r dde, 'i' y 1 yn lle, yna lle y 2, yna lle y 4. Felly, gan wthio mewn 0 oddi ar y dde, ni jyst yn gwthio pethau a oedd ar waith y 4 at le y 8, a phethau a oedd ar waith yr 8 i le y 16. Pob sifft yn unig yn lluosi gyda 2. Yeah? [Myfyrwyr] Beth sy'n digwydd os ydych yn symud gan 5? [Bowden] Os ydych yn symud gan 5 y byddech yn unig yn colli digid. Yn anochel, mae'n yr un peth. Fel, cyfanrifau dim ond 32 darnau yn, felly os ydych yn ychwanegu 2 gyfanrifau mawr iawn, 'i jyst yn cyd-fynd mewn gyfanrif. Felly, mae'n yr un peth yma. Os ydych yn symud o 5, byddem yn unig yn colli bod un. A dyna fath o hyn yr wyf yn ei olygu wrth "yn fras," lle os ydych yn symud yn rhy bell, byddwch yn colli darnau. Sifft Hawl yn mynd i fod y gwrthwyneb, lle rydym yn mynd i gwthio 0 yn oddi ar y diwedd, ac ar gyfer ein dibenion, llenwch 0 oddi ar y chwith. Felly wneud hyn, rydym yn y bôn bacio hyn yr oeddem wedi'i wneud eisoes. Ac rydym yn gweld bod y tri 0 ar y dde yn union wedi gostwng i ffwrdd, ac rydym wedi gwthio y 1101 yr ​​holl ffordd ar y dde. Mae hyn yn ei wneud 104 3, sef, i bob pwrpas, x / 2 ^ y. Felly nawr, dyma, mae'n syniad tebyg. Pam ei fod dim ond yn fras x / 2 ^ y, ac nid mewn gwirionedd x / 2 ^ y? Oherwydd os wyf wedi symud gan 4, byddwn wedi colli 1. Yn y bôn, yr hyn yr ydych yn meddwl am, dim ond meddwl am is-adran cyfanrif yn gyffredinol. Felly, fel 5/2 yw 2. Dyw hi ddim yn 2.5. Mae yr un syniad yma. Pan fyddwn yn rhannu â 2, gallwn golli darnau rhyfedd ar hyd y ffordd. Felly nawr - dyna ni am bitwise. Dyna i gyd angen i chi wybod. Cofiwch yr achosion defnydd a welsom yn y dosbarth, fel bit mwgwd yn ddefnyddiol ar gyfer gweithredwyr bitwise, neu os ydych yn eu defnyddio ar gyfer mygydau bit. Prif lythrennau a llythrennau bach, addasiadau yn enghraifft eithaf prototypical. Iawn, felly byffer ymosodiadau gorlifo. Unrhyw un yn cofio beth oedd o'i le gyda swyddogaeth hwn? Rhybudd rydym yn datgan amrywiaeth o 12 bytes, 12 chars, ac yna rydym yn copïo i mewn i'n byffer o 12 chars y bar llinyn cyfan. Felly beth yw'r broblem yma? Dylai'r rhif hud 12 pop allan 'n bert lawer yn union fel - pam 12? Beth os bar yn digwydd i fod yn fwy na 12 cymeriadau? Beth os yw bar miliynau o gymeriadau? Yma, mae'r mater hwn yn memcpy. Os bar yn ddigon hir, bydd dim ond yn gyfan gwbl - 'c', 'c' ddim yn poeni mai dim ond 12 nod; Nid 'c' ddim yn poeni na all fod yn addas bod llawer o bytes. Bydd 'I jyst yn llwyr ysgrifennu dros torgoch, y 12 bytes rydym wedi dyrannu ar ei gyfer, a phopeth yn y gorffennol mewn cof nad yw'n mewn gwirionedd yn perthyn i'r byffer gyda beth bynnag y bar llinyn yn. Felly, dyma oedd y darlun a welsom yn y dosbarth lle mae gennym ein pentwr tyfu i fyny. Dylech gael ei ddefnyddio i luniau hyn neu gael gyfarwydd â nhw eto. Rydym wedi ein pentwr tyfu i fyny, cyfeiriadau cof yn dechrau ar 0 ar y brig ac yn tyfu i lawr i yn hoffi 4000000000 ar y gwaelod. Rydym wedi ein 'c' amrywiaeth rhywle yn y cof, yna rydym wedi ein pwyntydd i wahardd dde oddi tano, ac yna rydym yn cael y pwyntydd ffrâm cadw yn ein cyfeiriad dychwelyd a simnai ein rhiant rheolaidd yn. Cofiwch yr hyn y mae'r cyfeiriad dychwelyd y mae? Ond pryd prif galw yn foo swyddogaeth, yn galw bar swyddogaeth, yn anochel, bar ffurflenni. Felly, pan fydd yn dychwelyd bar, mae angen iddynt wybod ei fod yn mynd yn ôl i'r foo a oedd yn galw ei. Felly mae'r cyfeiriad dychwelyd yw cyfeiriad y swyddogaeth y mae'n rhaid iddi ddychwelyd i pan fydd y ffurflenni swyddogaeth. Y rheswm sy'n bwysig ar gyfer ymosodiadau gorlif byffer oherwydd, yn gyfleus, hacwyr yn hoffi i newid y cyfeiriad dychwelyd. Yn hytrach na mynd yn ôl i'r foo, yr wyf i'n mynd i fynd yn ôl i ble bynnag y haciwr eisiau i mi fynd yn ôl i'r. Ac, yn gyfleus, pan fydd y haciwr yn aml yn awyddus i fynd yn ôl at yn cychwyn y byffer yr ydym wreiddiol oedd. Felly sylwi, unwaith eto, Little Indiaidd. Mae'r peiriant yn enghraifft o system Indiaidd Little, felly mae cyfanrif neu pwyntydd yn cael ei storio gyda bytes wrthdroi. Felly, yma rydym yn gweld - a yw hyn? Yeah. Rydym yn gweld Ox80, OxC0, Ox35, OxO8. Cofiwch y digidau hecsadegol? Nid ydym yn gwrthdroi'r y digidau hecsadegol yn Little Indiaidd, oherwydd 2 ddigid hecsadegol yn ffurfio beit sengl, ac yr ydym yn gwrthdroi'r bytes. Dyna pam nad ydym yn storio, fel, 80530CO8. Rydym yn storio, yn lle hynny, mae pob pâr o 2 ddigid, gan ddechrau o'r dde. Y cyfeiriad hwnnw yn cyfeirio at y cyfeiriad y dechrau ein byffer yr ydym mewn gwirionedd yn awyddus i gopïo i mewn yn y lle cyntaf. Y rheswm y yn ddefnyddiol oherwydd, beth os yr ymosodwr ddigwyddodd i, yn hytrach na gorfod llinyn a oedd yn unig llinyn ddiniwed o fel, eu henw neu rywbeth, beth os, yn hytrach, y llinyn oedd rhai cod mympwyol a wnaeth beth bynnag y maent am iddo wneud? Felly, maent yn gallai - ni allaf feddwl am unrhyw god oer. Gallai fod yn unrhyw beth, er. Unrhyw god drychinebus. Os ydynt yn dymuno, gallent dim ond gwneud rhywbeth ar ddiffygion seg, ond byddai hynny'n ddibwrpas. Maent fel arfer yn ei wneud i darnia eich system. Iawn. Llyfrgell CS50. Mae hyn yn, yn y bôn, getInt, getString, holl swyddogaethau y rhai a ddarperir gennym ar eich cyfer. Felly, rydym wedi * llinyn torgoch, a dyna'r tynnu ein bod yn chwythu i ffwrdd ar ryw adeg yn ystod y semester. Cofiwch fod llinyn yn unig yw amrywiaeth o gymeriadau. Felly, yma rydym yn gweld fersiwn talfyredig o'r getString. Dylech edrych yn ôl arno i gofio sut y caiff ei rhoi ar waith mewn gwirionedd. Manylion allweddol yw, sylwi rydym yn cael mewn cymeriad un ar y tro o safon i mewn, sydd yn union fel ni teipio ar y bysellfwrdd. Felly cymeriad un ar y tro, ac os ydym yn cael gormod o gymeriadau, felly os n + 1 yn fwy na gallu, yna mae angen i gynyddu gallu ein byffer. Felly dyma ni yn dyblu maint ein byffer. A bod yn cadw mynd, rydym mewnosoder y cymeriad yn ein byffer nes i ni dderbyn linell neu ar ddiwedd y ffeil neu beth bynnag newydd, ac os felly, yr ydym yn ei wneud gyda'r llinyn yn ac yna'r getString go iawn crebachu cof, fel pe baem dyrannu gormod o gof bydd yn mynd yn ôl ac yn crebachu ychydig. Felly, nid ydym yn dangos bod, ond y prif syniad yw mae'n rhaid iddo ddarllen mewn cymeriad un ar y tro. Ni ellir ei ddarllen ar y cyfan beth ar unwaith, oherwydd bod eu clustogi yn unig o faint penodol. Felly, os yw'r llinyn y mae'n ceisio mewnosod i mewn i byffer yn rhy fawr, yna byddai'n gorlifo. Felly, yma rydym yn atal hynny dim ond darllen yn gymeriad unigol ar y tro ac yn tyfu pryd bynnag y mae angen i ni. Felly getInt a'r swyddogaethau eraill y llyfrgell CS50 tueddu i ddefnyddio getString yn eu gweithrediadau. Felly, yr wyf sylw at y pethau pwysig yma. Mae'n galw getString i gael llinyn. Os getString methu â dychwelyd cof, cofiwch fod getString mallocs rhywbeth, felly pryd bynnag y byddwch yn galw getString ni ddylech (annealladwy) rhad ac am ddim y llinyn y cawsoch. Felly yma, os yw'n methu â malloc rhywbeth, byddwn yn dychwelyd INT_MAX fel dim ond baner hynny, hey, nid oeddem yn mewn gwirionedd yn gallu cael yn gyfanrif. Dylech anwybyddu beth bynnag yr wyf yn dychwelyd i chi, neu ni ddylech drin hyn fel mewnbwn dilys. Yn olaf, gan dybio bod yn llwyddo, rydym yn defnyddio sscanf â'r baner arbennig, sy'n golygu, yn gyntaf yn cyd-fynd yn gyfanrif, Yna cyfateb i unrhyw rai ond y cyfanrif. Felly sylwi ein am iddo hafal i 1. Ffurflenni Felly sscanf faint o gemau os caiff ei wneud yn llwyddiannus? Bydd yn dychwelyd 1 os yn llwyddiannus yn cyfateb yn gyfanrif, bydd yn dychwelyd 0 os nad oedd yn cyd-fynd cyfanrif, a bydd yn dychwelyd 2 os yw'n cyfateb cyfanrif dilyn gan rai cymeriad. Felly sylwi ein ailgeisio os ydym yn cyd-fynd unrhyw beth ond 1. Felly, os ydym yn mynd 1, 2, 3, C, neu 1, 2, 3, X, Yna, 1, 2, 3 yn cael ei storio yn y cyfanrif, Byddai X yn cael ei storio yn y cymeriad, Byddai sscanf yn dychwelyd 2, a byddem yn ceisio eto, gan mai dim ond eisiau gyfanrif. Chwythu gyflym drwy HTML, HTTP, CSS. HyperText Markup Language yw'r strwythur a semanteg y we. Dyma enghraifft o ddarlith lle mae gennym tagiau HTML. Mae gennym tagiau pen, tagiau corff, mae gennym enghreifftiau o dagiau gwag lle nad ydym mewn gwirionedd yn cael dechrau a thag agos, rydym yn unig yn cael cyswllt a delwedd. Nid oes tag delwedd cau; mae dim ond tag sengl sy'n accomplishes popeth mae angen i'r tag i'w wneud. Mae'r cyswllt yn enghraifft, byddwn yn gweld sut yr ydych yn cysylltu â CSS, y sgript yn enghraifft o sut yr ydych yn cysylltu â JavaScript allanol. Mae'n eithaf syml, a chofiwch, nid HTML yn iaith raglennu. Yma, cofiwch sut y byddech yn diffinio ffurflen neu o leiaf beth fyddai hyn yn ei wneud? Ffurflen o'r fath yn gweithredu a dull. Mae'r dulliau y byddwch yn dim ond byth yn gweld yn GET a POST. Felly GET yw'r fersiwn lle mae'r peth yn cael ei roi yn y URL. SWYDD yw lle nad yw'n cael ei roi yn y URL. Yn lle hynny, unrhyw ddata oddi wrth y ffurflen yn cael ei fewnosod yn fwy cudd yn y cais HTTP. Felly dyma, yn diffinio camau pan fo'r cais HTTP yn mynd. Ble mae'n mynd yn google.com / chwilio. Dull. Cofiwch y gwahaniaethau rhwng GET a POST, ac, yr un yn dweud fel enghraifft, os ydych am nod tudalen rhywbeth. Fyddwch chi byth yn gallu nod tudalen URL SWYDD oherwydd nad yw'r data yn cael ei gynnwys yn yr URL. HTTP, yn awr, yw Protocol Trosglwyddo HyperText. Mae'r Protocol Trosglwyddo HyperText, byddech yn disgwyl iddo drosglwyddo Iaith Markup HyperText, ac mae'n ei wneud. Ond mae hefyd yn trosglwyddo unrhyw ddelweddau chi ddod o hyd ar y We, unrhyw downloads a wnewch yn dechrau fel cais HTTP. Felly HTTP yn unig yw iaith y We Fyd Eang. A dyma mae angen i chi gydnabod y math hwn o gais HTTP. Yma HTTP/1.1 ar yr ochr yn unig yn dweud bod yn y fersiwn y protocol rwy'n ei ddefnyddio. Mae 'n bert lawer bob amser yn mynd i fod yn HTTP/1.1, fel y byddwch yn ei weld. Yna, rydym yn gweld bod hyn yn GET, y dewis arall oedd POST, y gallech eu gweld. Ac mae'r URL yr oeddwn yn ceisio ymweld oedd www.google.com/search?q = blah, blah, blah. Felly cofiwch fod hyn, mae'r cwestiwn marc q = blah blah blah, yw'r math o bethau sy'n cael ei gyflwyno gan ffurflen. Byddai'r ymateb gallai dychwelyd i mi edrych rhywbeth fel hyn. Unwaith eto, gan ddechrau gyda'r protocol, sydd yn mynd i fod yn hynny, wedi'i ddilyn gan y cod statws. Yma, mae'n 200 OK. Ac yn olaf, bydd y dudalen we sy'n Fi 'n weithredol yn gofyn am eu dilyn. Mae'r cod statws posibl y gallech weld, a dylech yn gwybod nifer ohonynt. 200 OK mae'n debyg eich bod wedi ei weld o'r blaen. 403 Forbidden, 404 Not Found, Gwall 500 Gweinydd Mewnol fel arfer os byddwch yn mynd i wefan a rhywbeth yn torri neu eu damweiniau cod PHP, tra yn y peiriant hwnnw gennym blwch oren mawr sy'n dod i fyny ac yn dweud, fel, rhywbeth yn anghywir, nid y cod hwn yn gweithio neu swyddogaeth hon yn ddrwg. Fel arfer nid gwefannau ddim eisiau i chi wybod pa swyddogaethau yn ddrwg mewn gwirionedd, felly yn lle byddant yn unig yn rhoi 500 gwallau Gweinydd Mewnol chi. TCP / IP yw 1 haen o dan HTTP. Cofiwch fod y Rhyngrwyd y tu allan i'r We Fyd Eang. Fel os ydych yn chwarae gêm ar-lein nad yw'n mynd drwy HTTP, ei fod yn mynd drwy wahanol - mae'n dal i ddefnyddio'r Rhyngrwyd, ond nid yw'n defnyddio HTTP. HTTP yn un enghraifft o brotocol a adeiladwyd ar TCP / IP. IP llythrennol yn golygu Protocol Rhyngrwyd. Mae gan bob cyfrifiadur cyfeiriad IP, maent yn y rhai pethau 4-digid fel 192.168.2.1, neu beth bynnag, sy'n tueddu i fod yn un lleol. Ond mae hynny'n patrwm o gyfeiriad IP. Felly, y DNS, y Gwasanaeth Enw Parth, dyna beth trosi pethau fel google.com i gyfeiriad IP gwirioneddol. Felly, os ydych yn teipio y cyfeiriad IP i mewn i URL, a fyddai'n dod â chi i Google, ond ydych yn tueddu i beidio â chofio pethau hynny. Yr ydych yn tueddu i gofio google.com yn lle hynny. Y peth olaf sydd gennym yw porthladdoedd, lle mae hyn yn rhan TCP IP. TCP yn gwneud mwy. Meddyliwch am, fel, mae gennych eich rhedeg porwr gwe. Efallai bod gennych rai rhedeg rhaglen e-bost; efallai eich bod yn cael rhywfaint o raglen arall sy'n defnyddio'r rhedeg Rhyngrwyd. Maent i gyd angen mynediad i'r Rhyngrwyd, ond dim ond 1 cerdyn WiFi neu beth bynnag gan eich cyfrifiadur. Felly porthladdoedd yw'r ffordd yr ydym yn bod yn gallu rhannu i fyny sut y ceisiadau hyn yn gallu defnyddio'r Rhyngrwyd. Mae pob cais yn cael 1 porthladd penodol y gall wrando ar, ac at ball, HTTP yn defnyddio porthladd 80. Mae rhai gwasanaethau e-bost yn defnyddio 25. Mae'r rhai rhifo isel yn tueddu i gael ei gadw. Fel arfer, byddwch yn gallu cael rhai uwch rhifo ar gyfer eich hun. CSS, Taflenni Arddull Rhaeadrol. Tudalennau gwe Rydym steil gyda CSS, nid gyda HTML. Mae yna 3 leoedd y gallwch roi eich CSS. Gall fod yn inline, rhwng tagiau arddull, neu mewn ffeil yn gyfan gwbl ar wahân, ac yna cysylltu i mewn A dyma yn unig yw enghraifft o CSS. Dylech gydnabod patrwm hwn, lle mae'r enghraifft gyntaf yw ein bod yn cyfateb y tag corff, ac yma rydym yn ganoli y tag corff. Yr ail enghraifft, rydym yn cyfateb y peth gyda footer adnabod, ac yr ydym yn gwneud cais rhai arddulliau i hynny. Sylwch fod ID footer testun-Alinio i'r chwith, tra canolfan gorff testun-Alinio. Footer yn y tu mewn i'r corff. Fe fydd, yn lle hynny, testun-alinio i'r chwith, er bod y corff yn dweud canolfan testun-alinio. Mae hyn yn gyfan ran rhaeadru ohono. Gallwch gael - gallwch nodi arddulliau ar gyfer y corff, ac yna pethau yn y corff gallwch nodi arddulliau mwy penodol, ac mae pethau'n gweithio wrth i chi ei ddisgwyl. Manylebwyr CSS mwy penodol yn cael blaenoriaeth. Yr wyf yn meddwl dyna ni. [Ali Nahm] Helo bawb. Os caf fi gael eich sylw. Rwy'n Ali ac rwy'n mynd i fynd drwy PHP a SQL yn gyflym iawn. Felly, gallwn ddechrau. PHP yn fyr ar gyfer PHP: Hypertext Preprocessor. Ac fel y dylai chi i gyd yn gwybod, mae'n iaith sgriptio ochr y gweinydd, ac yr ydym yn ei ddefnyddio ar gyfer y pen-ôl o wefannau, a sut y mae'n gwneud llawer o'r cyfrifiannau, y rhan y tu ôl llenni. Chystrawen. Dyw hi ddim yn hoffi C, syndod, syndod. Mae bob amser wedi i ddechrau gyda'r, os gallwch weld, y - ni allaf symud ymlaen. Gallwch weld eich bod angen y mathau newydd o bresys ac yna byddwch hefyd angen php?. Dyna bob amser sut mae'n rhaid i chi lunio eich testun PHP, eich cod PHP. Felly, ni all fod yn unig fod yn debyg i C, lle rydych yn fath o rhoi ar y tro cyntaf. Mae angen i chi bob amser o'i amgylch. Ac yn awr, y prif gystrawen yw bod angen i holl newidynnau i ddechrau gyda'r $ cymeriad. Angen i chi ei wneud pan fyddwch yn eu diffinio, mae angen i chi ei wneud pan fyddwch yn cyfeirio at atynt yn nes ymlaen. Rydych chi bob amser angen bod $. Eich ffrind gorau newydd, 'n bert lawer. Na wnewch chi - yn wahanol i C, nid oes angen i chi roi pa fath o fath amrywiol ydyw. Felly, wrth i chi mae angen y $, nid oes angen i chi roi, fel, int x neu linyn y, etcetera, etcetera. Felly, ychydig o wahaniaeth. O ganlyniad i hyn, mae'n golygu bod PHP yn fath yn wan. PHP yn iaith fath yn wan, ac mae wedi teipio newidynnau wan. Mewn geiriau eraill, mae hynny'n golygu eich bod yn gallu newid rhwng gwahanol fathau o fathau amrywiol. Gallwch storio eich rhif 1 fel int, gallwch chi ei storio fel llinyn, a gallwch ei storio fel fflôt, a bydd y cyfan yn y rhif 1. Hyd yn oed er eich bod yn storio mewn gwahanol ffurfiau, mae'n dal i fod - y mathau amrywiol yn dal i gynnal yn y diwedd. Felly, os ydych yn edrych yma, os ydych yn cofio o pset 7, llawer ohonoch yn ôl pob tebyg cael problemau gyda hyn. Ddau arwydd cyfartal, 3 arwyddion cyfartal, 4 arwydd cyfartal. Iawn, nid oes unrhyw 4 arwydd cyfartal, ond mae 2 a 3. Byddwch yn defnyddio 2 arwydd cyfartal i edrych ar y gwerthoedd. Gall edrych ar draws math. Felly, os gallwch weld yn yr enghraifft gyntaf, Mae gen i num_string == num_int. Felly eich int a'ch llinyn ill dau, yn dechnegol, 1, ond maent yn fathau gwahanol. Ond ar gyfer hafal dwbl, bydd yn dal i basio. Fodd bynnag, ar gyfer y hafal triphlyg, mae'n gwirio gwerth yn ogystal â'r gwahanol fathau. Mae hynny'n golygu nad yw ei fod yn mynd i basio yn yr ail achos yma, lle rydych yn defnyddio 3 arwyddion cyfartal yn lle hynny. Felly dyna wahaniaeth o bwys y dylai pob un ohonoch wedi dangos nawr. String Concatenation yn beth pwerus arall gallwch eu defnyddio yn PHP. Mae'n bôn yn unig mae hyn 'n hylaw dot nodiant, a dyna sut y gallwch rhwymo llinynnau at ei gilydd. Felly os oes gennych Cat a bod gennych Cŵn, a'ch bod am roi'r 2 llinynnau at ei gilydd, gallwch ddefnyddio'r cyfnod, a dyna fath o sut mae'n gweithio. Gallwch hefyd dim ond eu gosod nesaf at ei gilydd, fel y gwelwch yma yn yr enghraifft gwaelod, lle rwyf wedi adleisio llinyn 1, lle llinyn 2. Bydd PHP yn gwybod i gymryd eu lle fel y cyfryw. Araeau. Yn awr, yn PHP, mae 2 o wahanol fathau o araeau. Gallwch gael araeau rheolaidd, a gallwch hefyd gael araeau cysylltiadol, ac rydym yn mynd i fynd drwyddynt ar hyn o bryd. Araeau yn rheolaidd yn unig mae hyn yn C, ac felly mae gennych mynegeion sy'n cael eu rhifo. Ar hyn o bryd rydym yn jyst yn mynd i greu un a rhowch - felly dyma sut yr ydym yn creu amrywiaeth wag, yna rydym yn mynd i rhoi yn y mynegrif 0. Rydym yn mynd i roi'r rhif 6, mae'r gwerth 6. Gallwch ei weld ar y gwaelod yma. Where's - yn y mynegai rhif 1 rydym yn mynd i roi gwerth rhif 4, ac fel y gallwch weld mae 'na 6, mae' na 4, ac yna fel ein bod yn argraffu pethau, pan fyddwn yn ceisio ac argraffu'r gwerth storio yn mynegai rhif 0, Yna, byddwn yn gweld y gwerth 6 gael ei hargraffu. Cool? Felly dyna araeau rheolaidd i chi. Ffordd arall y gallwch chi hefyd ychwanegu pethau at araeau rheolaidd bellach yw y gallwch chi yn unig yn eu atodi ar y diwedd. Mae hynny'n golygu nad oes rhaid i chi nodi'r mynegai benodol. Gallwch weld nifer, ac yna yn y cromfachau sgwâr nad oes mynegai penodol. A bydd yn gwybod - bydd PHP yn gwybod i ddim ond ychwanegu at ddiwedd y rhestr, y fan a'r lle am ddim nesaf. Fel y gallwch weld y 1 iawn yno ar y 0 fan a'r lle, aeth y 2 iawn yno yn y fan a'r lle cyntaf. Y 3 yn mynd - yn cael ei ychwanegu yno hefyd. Felly y math hwnnw o yn gwneud synnwyr. Rydych yn unig yn gyson ychwanegu, ac yna pan rydym yn adleisio y mynegai rhif 1, bydd yn argraffu'r gwerth 2. Yna, mae gennym araeau sy'n araeau cysylltiadol. Araeau cysylltiadol, yn hytrach na gorfod mynegeion rhifiadol, hyn y maent yn ei wneud yw, mae ganddynt mynegeion sydd gan linyn. Gallwch weld, yn hytrach na - yr wyf yn cael gwared o'r holl fynegeion nifer hynny, ac yn awr mae'n key1, key2, key3, ac maen nhw'n mewn dyfynodau dwbl i ddynodi eu bod nhw i gyd llinynnau. Felly, gallwn gael enghraifft o hyn. Mae enghraifft o hyn yw ein bod yn cael y tf, a dyna'r enw mynegai. Rydym yn mynd i roi "Ali" fel yr enw, yn y mynegai, calorïau bwyta, gallwn roi int y tro hwn yn hytrach na llinyn, ac yna ar bobl fel mynegai, gallwn roi amrywiaeth cyfan tu mewn iddo. Felly, mae hyn yn fath o - mae'n gysyniad debyg i'r ffordd yr ydym wedi mynegeion gyda rhifau, ond erbyn hyn gallwn newid y mynegeion o gwmpas eu cael fel llinynnau yn lle hynny. Gallwch hefyd wneud hyn, ar wahân dim ond gwneud yn unigol, gallwch chi wneud y cyfan mewn un darn. Felly, gallwch weld bod tf yr amrywiaeth, ac yna rydym i gyd a osodwyd yn un set braced sgwâr mawr. Fel y gall gyflymu pethau. Mae'n fwy o ddewis arddull na pheidio. Mae gennym hefyd dolenni. Yn C gennym ddolenni sy'n gweithio fel hyn. Cawsom ein amrywiaeth, ac rydym yn mynd o fynegai 0 i ddiwedd y rhestr, ac rydym yn argraffu cyfan, dde? Heblaw y broblem yw, ar gyfer araeau cysylltiadol, Nid ydym o reidrwydd yn gwybod mynegeion rhifiadol hynny oherwydd erbyn hyn mae gennym y llinyn mynegeion. Nawr rydym yn defnyddio dolenni foreach, sydd, unwaith eto, yr ydych yn ei ddefnyddio, gobeithio, yn pset 7. Bydd dolenni foreach jyst yn gwybod pob un rhan o'r rhestr. Ac nid oes rhaid iddo wybod yn union y mynegai rhifiadol sydd gennych. Felly, rydych yn cael y gystrawen foreach, felly mae'n foreach, rydych yn rhoi'r amrywiaeth. Felly, galw fy amrywiaeth yn pset, ac yna fel, y gair fel, ac yna byddwch yn rhoi hyn newidyn dros dro lleol eich bod yn mynd i ddefnyddio yn unig ar gyfer y peth penodol sy'n mynd i gynnal y penodol - un achos neu un adran o'r rhesi. Bydd NUM Pset dal 1, ac yna efallai y bydd yn dal y rhif 6, ac yna bydd yn dal y rhif 2. Ond mae'n sicr o fynd drwy bob gwerth unigol sydd yn y casgliad. Swyddogaethau defnyddiol y dylech wybod yn PHP yw'r angen, er mwyn gwneud yn siwr eich bod yn cynnwys rhai ffeiliau, adlais, allanfa, yn wag. Fi 'n dal argymell i chi edrych ar pset 7 ac edrych ar y swyddogaethau hynny. Efallai y bydd rhaid i chi ei wybod hynny, felly byddwn yn bendant yn gwybod beth, yn union, y rhai i gyd yn gwneud. Ac yn awr rydym yn mynd i fynd drwy gwmpas yn gyflym iawn. Yn cwmpas, PHP yn fath o beth ffynci, yn wahanol i C, ac felly rydym yn jyst yn mynd i fynd drwy'r yn gyflym. Felly, gadewch i ni ddweud ein bod yn dechrau ar y saeth sydd gennym yno. Ac rydym yn mynd i ddechrau gyda $ i. Felly, y newidyn 'i' yn mynd i fod yn 0, ac rydym yn jyst yn mynd i gadw ei argraffu yn y blwch mawr gwyn dros yno. Rydym yn mynd i ddechrau I0, ac yna rydym yn mynd i adleisio hynny. Felly mae y 0. Ac yna rydym yn mynd i hicyn iddo gan yr ar gyfer ddolen, ac yna mae'n mynd i fod yn werth 1. Mae un yn llai na 3, felly mae'n mynd i basio drwy hynny ar gyfer ddolen, ac yna rydym yn mynd i weld ei hargraffu eto. Rydym yn mynd i gynyddiad eto i 2, a 2 yn llai na 3, felly bydd yn llwyddo yn y ar gyfer ddolen, a bydd yn argraffu'r 2. Yna byddwch yn nodi nad yw 3 yn llai na 3, felly byddwn yn torri allan o'r am ddolen. Felly nawr rydym wedi dod ohonynt, ac yna rydym yn mynd i fynd i mewn i aFunction. Iawn. Felly, rhaid i chi nodi bod newidyn hwn ein bod wedi creu, 'i' amrywiol, nid yw'n cwmpasu yn lleol. Mae hynny'n golygu nad yw'n lleol i'r ddolen, a bod y newidyn gallwn barhau i gael gafael ar ac yn newid ar ôl hynny, a bydd yn dal i fod yn effeithiol. Felly, os byddwch yn mynd i mewn i'r swyddogaeth yn awr, byddwch yn gweld ein bod hefyd yn defnyddio'r 'i' amrywiol, ac rydym yn mynd i gynyddiad 'i' + +. Byddech yn meddwl, ar y dechrau, yn seiliedig ar C, mai dyna copi o'r 'i' amrywiol. Mae'n beth hollol wahanol, sydd yn gywir. Felly, pan fyddwn yn argraffu, rydym yn mynd i 'i' + + argraffu, sydd yn mynd i argraffu bod 4, ac yna rydym yn mynd i - mae'n ddrwg gennyf. Yna, rydym yn mynd i gorffen y tu allan swyddogaeth honno, ac rydym yn mynd i fod yn lle y saeth yn iawn yn awr. Mae hynny'n golygu bod hynny, fodd bynnag, er bod y swyddogaeth newid y gwerth o 'i', Nid oedd yn newid y tu allan i'r swyddogaeth, oherwydd bod y swyddogaeth yn cael gwmpas ar wahân. Mae hynny'n golygu bod pan fyddwn yn adleisio 'i', nid yw wedi newid yn ystod y cwmpas y swyddogaeth, ac felly, yna rydym yn mynd i argraffu 3 eto. Mae gwahanol bethau am gwmpas yn PHP nag yn C. Nawr yn PHP a HTML. PHP yn cael ei ddefnyddio i wneud tudalennau gwe deinamig. Mae'n fath o yn gwneud pethau gwahanol. Mae gennym yn wahanol i HTML. Gyda HTML, yr ydym bob amser yn unig yn cael yr un peth sefydlog, fel sut Dangosodd Rob, tra bod PHP, gallwch newid pethau yn seiliedig ar bwy y defnyddiwr yn. Felly, os oes gen i hyn, yr wyf wedi, "Rydych wedi mewngofnodi fel -" ac yna yr enw, a gallaf newid yr enw. Felly, ar hyn o bryd yr enw yn Joseph, ac mae wedi y "am i mi," ond yna gallaf hefyd newid yr enw i gael Tommy. A byddai hynny'n beth gwahanol. Felly, yna gallwn hefyd newid pethau gwahanol amdano, a bydd yn dangos cynnwys wahanol yn seiliedig ar yr enw. Felly gall PHP math o newid yr hyn sy'n mynd ymlaen yn eich gwefan. Un peth yma. Still, yn nodi eu bod wedi cynnwys gwahanol, hyd yn oed er eich bod yn dechnegol yn dal i gael mynediad at yr un dudalen ar y we ar yr wyneb. Cynhyrchu HTML. Mae yna 2 ffordd wahanol y gallwch wneud hyn. Felly, byddwn yn mynd drwy hynny ar hyn o bryd. Y ffordd gyntaf yw, mae gennych - yeah, mae'n ddrwg gennyf. Felly, os oes gen ti dy rheolaidd ar gyfer dolen yn PHP, ac yna rydych yn adleisio'r yn PHP ac rydych yn adleisio allan HTML. Gan ddefnyddio'r hyn Rob yn dangos i chi o HTML sgript ac yna defnyddio'r print PHP i ychydig hargraffu at y dudalen we. Y ffordd arall yw i wneud hynny fel pe baech yn gwahanu allan PHP a HTML. Felly, gallwch gael llinell o PHP sy'n dechrau ar y ddolen ar gyfer, yna gallwch gael y llinell y HTML mewn beth ar wahân, ac yna yr ydych yn dod i ben y ddolen, unwaith eto, gyda PHP. Felly, mae'n fath o wahanu allan. Ar yr ochr chwith, gallwch fod gennych yr holl - dim ond 1 darn o PHP. Ar y dde gallwch weld bod gennych linell o PHP, mae gennych linell o HTML, ac mae gennych linell o PHP eto. Felly, wahanu allan i'r hyn maen nhw'n ei wneud. A byddwch yn sylwi bod naill ffordd neu'r llall, ar gyfer naill ai un ohonynt, maent yn dal i argraffu'r ddelwedd, y llun, y ddelwedd, fel bod HTML yn dal yn cael ei argraffu yn yr un ffordd. Ac yna byddwch yn dal i weld y 3 delwedd arddangos i fyny ar eich gwefan. Felly mae'n 2 ffordd wahanol o wneud yr un peth. Nawr mae gennym ffurflenni a cheisiadau. Fel Rob yn dangos i chi, mae yn fathau o HTML, a byddwn yn jyst awel drwy hyn. Mae gennych gweithredu a bod gennych ddull, ac mae eich camau gweithredu fath o yn dangos i chi ble rydych chi'n mynd i anfon, a dull yw a mae'n mynd i fod yn GET neu SWYDD. A chais GET, fel y dywedodd Rob, yn golygu eich bod yn mynd i roi mewn ffurf a byddwch yn ei weld fel URL, tra bod cais SWYDD ni fyddwch yn gweld mewn URL. Felly, ychydig o wahaniaeth. Fodd bynnag, un peth mae hynny'n beth tebyg yw bod POST ac GET yr un mor ansicr. Felly, efallai y byddwch yn meddwl bod dim ond oherwydd nad ydych yn gweld yn y URL, mae hynny'n golygu y swydd yn fwy diogel, ond gallwch dal i weld yn eich cwcis yn y wybodaeth eich bod yn ei anfon. Felly, peidiwch â meddwl bod tua un neu'r llall. Peth arall i'w nodi yw eich bod hefyd yn cael adran newidynnau. Rydych yn guys defnyddio hyn yn pset 7 i gael eich gwybodaeth adnabod defnyddiwr. Beth ddigwyddodd oedd y gallwch ddefnyddio hwn array cysylltiadol, y $ _SESSION, ac yna rydych chi'n gallu cael mynediad at bethau gwahanol a storio pethau gwahanol ar draws y tudalennau. Peth diwethaf yw bod gennym SQL, Strwythuredig Ymholiad Iaith, ac mae hyn yn iaith raglennu i reoli cronfeydd data. Beth, yn union, yn cael eu cronfeydd data? Maent yn gasgliadau o dablau, a gall pob tabl wedi mathau tebyg o wrthrychau. Felly cawsom tabl o ddefnyddwyr yn eich pset cyllid. A pham y maent yn ddefnyddiol? Oherwydd ei fod yn ffordd o gadw gwybodaeth yn barhaol. Mae'n ffordd o olrhain pethau a rheoli pethau ac mewn gwirionedd yn gweld ar wahanol dudalennau a chadw trac. Tra os ydych yn unig yn ei storio ar y un eiliad ar unwaith ac yna'i ddefnyddio yn ddiweddarach, ni fyddwch yn gallu cael mynediad i unrhyw beth yr ydych bod wedi achub. Mae gennym 4 prif bethau rydym yn eu defnyddio ar gyfer gorchmynion SQL. Rydym wedi dewis, mewnosod, dileu, a diweddaru. Mae'r rhai yn wirioneddol bwysig i chi guys i wybod am eich cwis. Byddwn yn mynd dros gyflym dewiswch ar hyn o bryd. Yn y bôn, eich bod yn dewis rhesi o gronfa ddata. Felly, os oes gennych, yma - gennym y 2 beth gwahanol, ac rydym am i ddewis o'r tabl dosbarthiadau lle anhygoel - ble yn y golofn anhygoel yw'r gwerth yn 1. Fel y gallwch weld yma, mae gennym y 2 pethau enw'r dosbarth, CS50 a Stat110, ac mae gennym y IDs dosbarth a'r slogan. Felly, rydym am i ddewis yr holl o'r wybodaeth honno. Yna, gallwch weld yma ei fod yn fath o tynnu sylw yn y golofn honno anhygoel, lle mae'r holl bethau yw 1, ac yna mae ganddo'r ID dosbarth, enw a slogan y gall ddewis dosbarth. Sut yn union ydych chi'n gwneud hyn yn y cod? Rhaid i chi ddefnyddio PHP. Felly dyna sut fath o PHP a SQL yn perthyn i'w gilydd. Nawr rydym wedi, ein cod ac rydym yn mynd i ddefnyddio ein swyddogaeth ymholiad fel y gwnaethom yn pset 7, ac rydym yn mynd i redeg yr ymholiad SQL. Yna, rydym yn mynd i gael - rydym bob amser wedi i gadarnhau a oes rhes yn triphlyg gyfartal os ffug. Felly eto, yr ydych am i edrych ar y math a gwerth, ac yna, os na fydd yn gweithio, yna rydych eisiau ymddiheuro, fel arfer, fel y gwnaethom yn pset 7. Fel arall, yr ydych am ddolen drwy bopeth gyda rhai 'n hylaw foreach dolenni ein bod ychydig aeth drosodd. Rydym yn awr yn bod yn dolennu trwy ac rydym wedi gwneud yn y gorffennol, gadewch i ni gymryd yn ganiataol bod ein ymholiad basio, erbyn hyn rydym wedi ein dolen foreach. A'r rhes cyntaf ganddo, felly dyma y rhes, ar y dde yma, mae'n mewn bocs. Mae'n mynd i argraffu'r holl wybodaeth ei fod yn gotten. Felly, mae'n mynd i argraffu ar y gwaelod "Eisiau Dysgwch HTML?" Yna, mae'n mynd i fynd i'r rhes nesaf, oherwydd ei fod yn cwblhau y cyntaf ar gyfer ddolen, ac felly, yna mae'n mynd i argraffu'r ail linell ohono, sydd yn mynd i fod yn STAT110, Dod o hyd i holl Moments. Un peth olaf ar SQL yn agored i niwed. Yr wyf yn adnabod David crybwyll hyn ychydig yn y ddarlith. Gallwch ddarllen hyn yn ddiweddarach. Mae'n wirioneddol ddoniol. SQL Chwistrellu yn fath o beth anodd. Gadewch i ni ddweud eich bod yn unig yn cadw newidynnau hynny dde i mewn i'ch ymholiad, fel y gallwch weld yn y llinell gyntaf. Felly, mae'n ymddangos yn iawn, dde? Rydych yn dim ond rhoi yn enw'r defnyddiwr a chyfrinair er mwyn eich ymholiad SQL, a ydych am i long i ffwrdd ac yn cael beth bynnag sydd yn eich tabl data. Mae hynny'n ymddangos yn eithaf syml. Felly, yn gadael i ddweud rhywun yn rhoi i mewn, ar gyfer y cyfrinair, NEU hwn destun iawn yma - Dylai gwirionedd fod yn y blwch coch. Felly, gadewch i ni yn dweud eu bod yn rhoi hynny cyfrinair yn - dyna beth maent yn mynd i mewn. Felly, eu bod yn rhoi NEU "1" = 1. Fath o gyfrinair wirion i gael. Nawr, gadewch i ni gymryd ei le i mewn, a byddwch yn sylwi bod yn y SQL query yn awr, mae'n gwerthuso bob amser yn wir, oherwydd byddwch yn nodi bod allwch chi ymholiad SQL ddewis yr holl wybodaeth hon neu gallwch jyst wedi 1 = 1. Felly, bob amser yn mynd i werthuso i gwir. Dyw hynny ddim yn mynd i weithio mewn gwirionedd, gan fod hynny'n golygu y gall y haciwr dorri i mewn i'ch system. Yr ateb i hyn yw bod yn rhaid i chi ddefnyddio'r system PDO, sy'n golygu bod rhaid i chi ddefnyddio marciau cwestiwn, sef yr hyn yr ydych guys a ddefnyddir mewn pset 7, ble rydych chi'n mynd i ddefnyddio marc cwestiwn yn lle ble rydych am roi rhywbeth, ac yna rydych yn mynd i gael coma, ac yna byddwch yn cael wedyn, ar ôl eich llinyn, y gwahanol newidynnau yr ydych am i gymryd lle yn eich marc cwestiwn. Felly, byddwch yn nodi yma bod yn awr yr wyf yn cael hyn farciau cwestiwn coch. Yna, yr wyf yn rhoi y newidynnau ar ôl fy llinynnau felly rwy'n gwybod i gymryd eu lle yn y drefn honno wedyn. Bydd hynny'n sicrhau, os bydd rhywun yn gwneud fel hyn, ac mae ganddynt y neu 1 = 1 sefyllfa, a fydd yn gwneud yn siŵr, yn y pen-ôl, gwnewch yn siŵr na fydd yn mewn gwirionedd yn torri'r ymholiad SQL. Iawn, felly dyna 'n bert lawer iddo, corwynt o PHP a SQL. Pob lwc i chi i gyd, ac yn awr i Ore [Oreoluwatomiwa Babarinsa] pawb Iawn. Amser i fynd dros rai JavaScript a rhai pethau eraill yn gyflym iawn, felly nid ydym yn dal i fyny i chi heno. JavaScript. Ie. JavaScript yn fath o beth oer, honni. Y pethau mae angen i chi wybod am JavaScript, mae'n fath o fel yr-ochr cleientiaid diwedd hyn y mae eich app ar y we yn mynd i gael ei wneud. Mae rhai pethau yr ydych nid yn unig yn dymuno cymryd gofalu am yr holl amser ar y ochr y gweinydd. Mae pob un o'r rhyngweithiadau bach, yn tynnu sylw at un peth, gan wneud rhywbeth yn diflannu. Rydych yn wir ddim eisiau cael i siarad â'ch gweinydd drwy'r amser ar gyfer hynny. Ac nid yw rhai o hynny hyd yn oed yn bosibl i'w wneud ar y ochr y gweinydd. Mae hyn yn pam y mae angen rhywbeth fel JavaScript. Pethau cŵl am JavaScript: Mae'n cael ei teipio ddynamig. Beth mae hyn yn ei olygu yw nad oes angen eich rhaglen i wybod beth, yn union, y newidynnau yn pan fyddwch yn ysgrifennu allan. Bydd yn jyst fath o ffigwr allan gan ei fod yn rhedeg. Pethau eraill sy'n cŵl am ei: Mae'n LandLine iaith Brace cyrliog, sy'n golygu bod y gystrawen yn debyg i C a PHP. Nid oes rhaid i chi wneud llawer ailweithio pan fyddwch yn JavaScript dysgu. Yma, mae gennym ychydig o JavaScript. Peth diddorol yma yw, os ydych yn edrych ar y sefyllfa, mae gennym ychydig o JavaScript iawn yno yn y tag pen. Beth yw mae yn y bôn yn unig yn cynnwys ffeil JavaScript. Mae hwn yn un ffordd y gallwch gynnwys JavaScript yn eich rhaglen. Yna yr ail ychydig bach mewn gwirionedd rhai JavaScript unol, debyg iawn i arddull unol ag CSS, a ydych ond yn ysgrifennu rhai cod yn gyflym iawn yno. Mae JavaScript araeau. Dim ond ffordd arall o gadw data o gwmpas, yn ddefnyddiol iawn. Cystrawen neis iawn ac yn hawdd. Rydych yn defnyddio cromfachau sgwâr i gael mynediad at bopeth a cadw popeth gyda'i gilydd. Nid oes dim yn rhy gymhleth. Y peth cŵl am JavaScript a ieithoedd sgriptio yn gyffredinol yw nad oes rhaid i chi boeni am faint arae. Gallwch jyst arfer array.length a chadw golwg ohono, a gall hefyd yr amrywiaeth dyfu neu leihau gan fod angen i chi. Felly nid oes angen i chi hyd yn oed i chi boeni am unrhyw fath o, oh na, mae angen i mi i ddyrannu mwy o bethau, neu unrhyw beth fel 'na. Y peth oera yma yw bod JavaScript rywbeth o'r enw gwrthrychau. Mae'n iaith gwrthrych-ganolog, felly beth y mae wedi, yn ei hanfod, ffordd i chi grwpio data gyda'i gilydd, braidd yn debyg i strwythur, ond gallwch gael mynediad iddo fel strwythur neu mewn cystrawen amrywiaeth cysylltiadol. Mae'n eithaf syml a beth allwch chi ei wneud â hyn yn ddata y grŵp at ei gilydd os oes gennych criw o ddata sy'n cael ei gysylltiedig. Oherwydd ei fod yn yr holl bethau sydd angen i chi ddisgrifio car, Nid oes angen i chi gael mewn criw o wahanol leoedd. Alli jyst gadw i mewn 1 gwrthrych yn JavaScript. Fel y gwyddoch mae'n debyg, bwysleisio'r yw un o dasgau diflas hynny. Rydych yn unig yn ei wneud dros ar ôl tro. Mae angen i chi siarad â phob gwrthrych yn y car, neu os oes angen i chi fynd drwy bob eitem mewn rhestr neu rywbeth fel 'na. Felly JavaScript wedi, yn debyg i PHP, cystrawen foreach. Yn yr achos hwn, mae'n ar ei gyfer yn ddolen. Ydych eisiau ei ddefnyddio dim ond ar wrthrychau. Mae rhai problemau sy'n digwydd os ydych yn defnyddio hyn ar araeau. Yn gyffredinol yn un o'r pethau hynny, fodd bynnag, bod yn ddefnyddiol iawn, oherwydd eich bod yn dileu llawer o gostau cyffredinol oherwydd nad oes rhaid i chi dynnu i fyny popeth yn eich gwrthrych eich pen eich hun. Nid oes rhaid i chi gofio holl enwau allweddol. Rydych yn unig fath o cael yn ôl mewn cystrawen hwn. Yn hyn, gyda i, 'ch jyst eisiau cofio eich bod yn mynd yn ôl yr holl allweddi, mewn ffordd debyg iawn i hash bwrdd. Os ydych yn cofio o hynny, pan fyddai eich rhoi mewn llinyn gallech gael rhywbeth allan fyddai'n cael gwerth sy'n gysylltiedig ag ef. Beth allwch chi ei wneud gyda hyn yw y gallwch ddweud, yn iawn, Rwy'n rhoi mewn car, ac yr wyf yn galw ei fod yn Ferrari. Felly, gallwch chi roi yn y llinyn Ferrari eto yn nes ymlaen, a gallwch gael hynny. A gallwch wneud hynny mewn cylch, gyda'r cyfer yn ddolen. Felly, dim ond mwy am wrthrychau. Y peth allweddol o hyn mae angen i chi gofio yw y gallwch ddefnyddio'r strwythur gwrthrych fel cystrawen pryd bynnag y dymunwch gyda'r rhain, ac eithrio os beth yw eich mynd i ddefnyddio fel llinyn nid yw'n enw newidyn dilys. Felly, os ydych yn edrych ar hynny yno, mae gennym allweddol gyda bylchau. Wel, os ydych yn rhoi object.key, gofod, gyda, gofod, mannau, na fyddai dim ond yn gwneud synnwyr syntactically. Felly, dim ond yn gallu wneud hynny â'r math hwn o gystrawen braced. Hefyd, JavaScript yn iawn gwmpas-ddoeth i PHP. Mae gennych 2 ffordd o fynd i'r afael gwmpas. Ni allwch gael y var o flaen newidyn, ac mai dim ond yn golygu hyn yn fyd-eang. Gallwch ei weld o unrhyw le. Hyd yn oed pe baech yn rhoi hyn mewn os datganiad, yn unrhyw le arall yn eich cod ar ôl y pwynt hwnnw gallech weld bod amrywiol. Beth arall, fodd bynnag, yw, yr var, mae'n gyfyngedig i ba bynnag swyddogaeth yr ydych ynddi Os nad ydych chi mewn swyddogaeth, yn dda, mae'n fyd-eang. Ond os ydych mewn swyddogaeth dim ond yn weladwy o fewn y swyddogaeth honno. Nid oes gennyf enghraifft, ond, ie. Mae'n un o'r pethau hynny lle gallwch reoli pa newidynnau ydych am fod yn fyd-eang, pa newidynnau ydych am fod yn lleol, ond mae angen i chi fod yn ofalus am hyn, oherwydd nad oes gennych y math o reolaeth graen mân i chi ei wneud yn C, lle os oes rhywbeth yn cael ei datgan mewn i ddolen, mae'n mynd i aros yn un ar gyfer ddolen. Y peth yr ydym mewn gwirionedd yn poeni am ddefnyddio JavaScript amdano yn trin tudalennau gwe, dde? Yr wyf yn golygu, dyna pam ein bod yn gwneud hyn. Er mwyn gwneud hynny, rydym yn defnyddio rhywbeth a elwir yn DOM. Mae'r Model Gwrthrych Dogfennau. Yn y bôn, yr hyn y mae'n ei wneud yw y mae'n ei gymryd eich holl HTML a modelau allan i griw o wrthrychau sy'n cael eu nythu o fewn gilydd. Byddwch yn dechrau allan gyda rhywbeth fel hyn. Mae gennych, ar y dde i mi, criw o cod allan yna sy'n fath o - Byddech yn meddwl y byddwn fod yn anodd iawn i drin, oherwydd byddech yn dosrannu drwy criw o destun a gorfod ddarn ar wahân pethau. A beth os na chafodd ei fformatio yn gywir? Byddai pethau drwg yn digwydd. Felly JavaScript yn gofalu am hyn i chi, a byddwch yn cael strwythur data 'n glws, fel yr un ar fy chwith, lle byddwch yn unig gael dogfen, ac y tu mewn eich bod yn cael rhywbeth o'r enw HTML, ac y tu mewn eich bod yn cael pen a chorff, ac y tu mewn i'r pen gennych deitl, etcetera, etcetera, etcetera. Mae hyn yn symleiddio trin dudalen we fel ei fod yn gyfiawn, oh, Fi jyst eisiau siarad â gwrthrych hwn. Math o ffordd debyg iawn y byddech yn siarad â gwrthrych arall i chi ei wneud eich hun. Fel y dywedais, yr holl DOM yn y gwrthrych ddogfen. Naill ai dim ond un lle ac yna gallwch fynd ynddo i ddarganfod pethau, a gallwch wneud hynny - mae hyn yn yr hen ddull o wneud hynny, i fyny yno, lle rydych chi'n gwneud document.getElementById, ac yna yr enw, ac fel y mae'n debyg y gallwch ddweud, mae hyn yn mynd yn anhylaw iawn ar ôl ychydig. Felly, mae'n debyg nad ydych am wneud hynny. Dyna pam yr ydym wedi y peth nesaf rydym yn mynd i siarad am ar ôl hyn. Y peth allweddol yma yw bod, yn iawn, mae gennych yr holl elfennau hyn, dde? Felly efallai y gallaf newid y lliw o rywbeth pan fydd y llwythi dudalen. Felly beth? Beth os bydd fy defnyddiwr yn clicio rhywbeth? Rwyf am iddo wneud rhywbeth diddorol pan fyddant yn clicio rhywbeth. Dyna pam yr ydym wedi digwyddiadau. Gallwch, yn y bôn, dod o hyd i unrhyw elfen yn eich DOM, ac wedyn yn dweud, hey. Pan fydd hyn yn llwythi neu rywun yn clicio arno, neu pan fyddant llygoden drosto, gwneud rhywbeth ag ef. A beth sydd gennych yw, mae gennych swyddogaethau sy'n ymdrin â hyn ar eich rhan. Mae'r swyddogaethau hyn yn drinwyr digwyddiad. Pa they're - dim ond ffordd ffansi o ddweud, swyddogaeth hon dim ond yn cael ei gyflawni pan fydd y digwyddiad hwn yn digwydd. Felly mae'n ymdrin â'r digwyddiad sy'n digwydd. Mae hyn yn sut y byddech yn gosod allan trafodwr digwyddiad. Mae gennyf rai botwm, a phan fyddwch yn clicio, mae'n ffrwydro. Felly peidiwch â cliciwch y botwm. Mae hyn yn un ffordd o fynd ati, dde? Mae gennych tag botwm, ac ar cliciwch gennych llinyn sy'n dweud, oh, gan y ffordd, yr wyf yn gwneud hyn beth ffrwydro i mi. Fel arall, mae'n union fel botwm rheolaidd yr ydych newydd eu gwneud. Gallwch hefyd wneud hyn mewn ffordd arall, drwy gydio yn y elfen DOM, ond byddwn yn eithrio bod ar ôl i ni siarad am jQuery. JQuery: Mae'n llyfrgell sy'n traws-porwr. Gallwch ei ddefnyddio yn 'n bert lawer unrhyw beth. Ac 'i jyst yn rhoi llawer o offer i weithio gyda chi. Oherwydd JavaScript, tra pwerus, nid oes gan yr holl offer ei angen arnoch allan o'r bocs i wir fynd i'r afael â app ar y we efallai y byddwch am ei wneud. Felly mae'n symleiddio llawer o bethau, yn rhoi llawer o swyddogaethau yr ydych yn allan o'r bocs y byddai'n rhaid i chi fel arfer i ysgrifennu eich hun, drosodd a drosodd a throsodd. Ac yn union yn gwneud pethau syml iawn. Mae gennych hefyd detholwyr, sy'n gadael i chi gymryd yr holl elfennau hynny gan eich DOM yn llawer mwy syml, yn hytrach na gorfod defnyddio'r rhain alwadau swyddogaeth hir iawn. Mwy am dewiswyr hyn. Gennych, i fyny yno yr ydych wedi, gadewch i ni ddweud Rwyf am i gael elfen gyda'r ID "graig." Wel, yn jQuery, dim ond $ ac yna linyn sydd â bunt, ac yna "graig." Mae'n syml iawn ac yn llawer cyflymach na'r ffordd draddodiadol JavaScript o fynd i'r afael â'r broblem hon. A bod gennych bethau tebyg ar gyfer dosbarthiadau a mathau elfen. jQuery yw - un o nodweddion oer yw y gallwch chi math o cywasgu i lawr eich ymholiadau ar eich DOM iawn, yn gyflym iawn. Nawr rydym yn ôl i drafod y digwyddiad, a dyma sut y byddech chi'n trin un digwyddiad yn jQuery. Felly, beth ydym yn mynd yma yw ein bod yn ei ddweud, yn iawn. Mae gen i tag sgript, dde? Felly, yr wyf wedi inline hwn JavaScript. Yr hyn yr ydym yn mynd i wneud yw ein bod yn mynd i ddweud, yn iawn. Pan fydd y ddogfen yn barod, sy'n golygu bod y ddogfen wedi cael ei lwytho, yr ydym yn mynd i fynd i mewn i swyddogaeth honno, ac rydym yn mynd i ddweud, yn iawn, mewn gwirionedd yn y swyddogaeth hon ei gwneud rhywbeth arall. Yn y bôn mae'n ei ddweud, yn iawn, mynd i mi yr elfen gyda'r ID "myid." Ac yna rhoi hyn yn trin swyddogaeth sy'n executes pan fyddwch yn clicio arno. Yn y bôn beth mae hyn yn ei wneud, mae'n dweud, iawn. Mae'r dudalen ei lwytho, felly dw i'n mynd i mewn, dod o hyd i elfen hon, rhowch y triniwr y digwyddiad, ac yn y bôn yn sefydlu eich tudalen i chi. A dyma sut yr ydych am i feddwl am drin digwyddiad. 'Ch jyst angen i feddwl am, yn iawn, pan fydd rhywbeth yn digwydd, beth ddylwn i ei weld yn digwydd? Nid ydych am i feddwl am, iawn, mae angen i mi wneud yn siwr sgyrsiau peth hwn i y peth hyn, y peth hyn blah blah blah, oherwydd eich bod dim ond eisiau siarad peth o ran digwyddiadau. Pan fydd hyn yn digwydd, bydd hyn yn digwydd. Pan fydd hyn yn digwydd, mae hynny'n digwydd. Ac os yw pethau'n sbarduno pethau eraill, mae hynny'n wych. Ond nad ydych am i geisio gwneud cod gymhleth lle rydych chi'n sbarduno pethau lluosog ar yr un pryd, oherwydd eich bod yn jyst yn mynd i roi cur pen eich hun. Pob hawl. Nawr gallwn gael ein tudalen i ymdrin â digwyddiadau, ond gadewch i ni yn dweud fy defnyddiwr yn clicio botwm. Beth os ydw i eisiau anfon y cais yn ôl i'r gweinydd, ond nid wyf am i ail-lwytho y dudalen, gan fod cael i ail-lwytho tudalen newydd bob tro yn cael fath o ddiflas, a pham y mae angen i mi i dynnu i lawr y pennawd eto, i mewn na'r troedyn unwaith eto, a holl elfennau y dudalen eto dim ond er mwyn adfywio'r cyfarchiad na'r amser? Felly dyna pam ein bod wedi rhywbeth fel Ajax. Beth allwn ni ei wneud yma gyda Ajax yn gallwn ddweud, yn iawn, Yr wyf am anfon rhywfaint o ddata at 'r gweinyddwr, ac yr wyf am i gael ymateb yn ôl fel y gallaf ddiweddaru fy nhudalen, neu efallai dim ond gwneud rhywfaint o gyfrifiad algorithmig nad yw hynny o reidrwydd yn dangos unrhyw beth i'r defnyddiwr. Beth sydd angen i chi wneud hyn? Wel, mae angen URL mae angen i chi siarad â nhw. Ni all eich gweinydd yn unig hudol gwrando i mewn o unman. Mae angen i chi gael lle penodol yr ydych yn anfon data hwn i. Ac rydych hefyd angen rhywfaint o ddata i anfon, neu efallai ei fod yn ymholiad dataless. 'Ch jyst angen i ping yn ôl i'r gweinydd a dweud, hey, rwy'n yn fyw, neu rywbeth fel' na. Ac yna yr ydych am swyddogaeth sydd yn y bôn yn ymdrin â llwyddiant. Lets 'ddeud i chi gael rhywfaint o wybodaeth yn ôl gan eich gweinydd, a ydych am newid teitl y defnyddiwr ar eu tudalen. Felly, byddech yn cael y wybodaeth yn ôl, ac a fyddech yn gwthio hynny i'r sgrin. Beth fydd yn digwydd yw, pan fydd y dudalen yn barod, chi'n creu ar swyddogaeth cliciwch ar gyfer y botwm yma a elwir yn cyfarchwr. Beth mae hyn wedyn yn ei wneud yw, pan fydd y botwm yn gwthio, chi siarad â greetings.php, byddwch yn gwneud cais POST, ac yr ydych yn dweud, hey, yn cael rhywbeth oddi wrth eich tudalen mi. Nid oes gwir angen i ni ddisgrifio hynny, ond greetings.php, gadewch i ni ddweud, yn rhoi yn ôl "helo byd." Felly, rydym yn mynd yn ôl y "helo byd," ac ar lwyddiant hyn, gan dybio dim byd yn mynd o'i le, yna rydym yn unig yn mynd i'r lle hwn targed ein bod yn benodol ac rydym yn unig yn cadw yr ymateb mewn 'na. Ac mae hyn yn ffordd syml iawn o sefydlu ymholiad Ajax. Yn gyflym iawn, Rob fath o crybwyll hyn eisoes, gall pethau fynd o chwith, gall pethau drwg yn digwydd, felly rydych am i chi eich hun yn gyfarwydd â chodau ymateb HTTP hyn. Beth yw'r rhain yn unig, fel, 200, aeth popeth yn iawn. Rhywbeth arall, digwyddodd pethau drwg. Mae'n gyffredinol, y peth rydych eisiau cofio. Ond mae'n braf gwybod pob un o'r rhain. Ac yn olaf, ar ôl i ni wedi mynd drwy hynny i gyd, mae angen i ni siarad yn gyflym iawn am ddylunio, ac yna gallwn adael i chi i gyd yn gadael. Dylunio. Pethau rydych am ei gofio. Gofynnwch i chi'ch hun y cwestiynau hyn: Pwy fydd yn defnyddio'r hyn? Beth fyddant yn ei ddefnyddio ar gyfer? Beth mae fy defnyddwyr yn poeni am? Yr hyn nad ydynt yn poeni am? Rydych nid yn unig yn dymuno gwneud app a gadael 'i jyst yn tyfu ac yn dod yn cawr hwn, yn cymryd llawer o pob peth na allwch chi hyd yn oed yn gorffen. Ydych am gael nodau a chynlluniau a phethau ar wahân ydych am fynd i'r afael. Ei gwneud yn ddiymdrech. Mae hyn i gyd yn dweud, yn y bôn, yn ei gwneud yn hawdd i'r defnyddiwr ei defnyddio; peidiwch â gwneud yn blob mawr o destun fel y sleid hon yw, mewn gwirionedd. Rydych yn unig am iddo fod yn rhywbeth lle mae'n hawdd iawn i rywun fynd i mewn a gwneud yr hyn y maent am ei wneud. Nid ydych am iddynt gael i lywio 5 tudalen i gyrraedd eich prif swyddogaeth eich safle. Os Google Roedd 5 tudalen cyn i chi hyd yn oed yn chwilio rhywbeth, fyddai unrhyw un yn ei ddefnyddio. Ac yn olaf, prototeip papur, grŵp ffocws. Wedi dylunio da ac arferion profi. Dim ond oherwydd eich bod yn credu ei fod yn gweithio i chi, Nid yw hynny'n golygu unrhyw un arall yn meddwl ei fod yn gweithio. Ond ie, dyna ni. [CS50.TV]