ANDI Peng: Ne jemi gati nëpër të gjitha psets. Në fakt, ne jemi përmes shumicës nga psets më të vështira. Pra, ne jemi të vërtetë vetëm duke shkuar për të llojit të fllad nëpërmjet dy javëve të ardhshme. Ne jemi duke shkuar për të filluar duke folur për tonë Projektet e fundit, ngjarjet vijnë deri në javët e ardhshme. Dhe jeta do të jetë një meze. Pra, jo shumë sot. Shpresojmë, në fakt do të fllad përmes rendin e ditës për sot, dhe pastaj të jetë nga këtu me disa kohë për të këmbimit. Gjithashtu, dua të kërkoj falje për shkak të mungesës së karamele sot. Unë nuk e di pse. Por, në javën e shpie deri Halloween, unë do të harroj karamele. Kështu që unë jam në të vërtetë vetëm një e madhe zhgënjim për ju tani. Sepse unë fjalë për fjalë kujtoj karamele për çdo klasë të vetme, por Halloween. Por javën e ardhshme, unë do të sjell dyfishojë sasinë e karamele për të bërë për atë, të gjithë për ju. Ajo do të jetë i madh. Pra, unë kam një çift të njoftimeve në lidhje me disa caktimin. Unë kam disa çështje caktimin. Pastaj ne jemi duke shkuar për të lëvizur për të flasim për atë që quhet chmod. Ne jemi duke shkuar për të folur për shpejt TCP / IP HTTP. Dhe pastaj ne jemi duke shkuar për kodin tonë Faqja e internetit e vet duke përdorur HTML dhe CSS. Dhe atëherë unë do të vërtetë të lënë ndoshta si 20 minuta për të folur për pset6. Sepse pset6 është në fakt një shumë e sende që ne kemi parë tashmë më parë, por kam kërkuar për të rifreskuar disa nga këto koncepte si dhe të mësojnë funksionet e një çift të reja. Ftohtë. Pra, para së gjithash, mirëpritur mbrapa nga pushimi. Unë shpresoj se ju jeni pushim ishte e këndshme. A do të keni të bëni për pushim? Audienca: Shkoi në Nju Jork. ANDI Peng: Ju shkoi në Nju Jork? Unë mendoj se gjysmë shkollën tonë shkoi në Nju Jork. Kjo është e gjitha e drejtë. Kam kaluar shumicën e pushimit tim i ulur në Netflixing shtrat. Dhe kjo ishte një kohë e mirë. Por ne jemi tani përsëri, përsëri në seancë, përsëri në ritëm të gjëra. Ne kemi një pset shkak këtë të premte në mesditë. Unë mendoj se ju keni tashmë kap quiz tuaj, vërtet? Pra, dikush tjetër që ka Nuk kishte kuize e tyre, ju lutemi të vijnë dhe për të marrë kuize tuaj nga unë, në fund të seksionit. Ose gjurmuar më poshtë në kampus. Unë do të keni atë me mua diku. Projekti ynë i fundit propozim para gjithashtu. Pra, për ata prej nesh që nuk kanë marrë kjo klasë para, guri i qoshes i CS50 është shumë kulmoi në këtë projekt i madh që studentët të propozojë. Dhe para-propozim, vetëm një ide të përgjithshme të asaj që dikush mund të dëshironi të bëni për të e tyre projekt, kjo ide është për shkak hënë, tjetër të hënën në mesditë. Pra shumë e shumë, David unë mendoj se do të flasim më shumë për këtë në leksionin në qoftë se ai nuk ka tashmë. Dhe ka një faqe të ngurta në faqen tonë të shpjeguar të gjitha kërkesat e projektit. Por në thelb, marr çdo temë që ju keni qenë i interesuar në gjatë gjithë kohës tuaj këtu në SHC, qoftë ajo të jetë lojrave apo Dizajni ose video të apo ndonjë gjë. Dhe ju mund të vërtetë lloji i tani aplikoni disa nga mësimet që ne kemi mësuar këtu në CS50-- hi, welcome-- të pretty much kryerjen e një projekt përfundimtar të zgjedhjes suaj. E gjithë kjo e hënë për shkak është vetëm një njoftim të shkurtër nëpërmjet e-mail për mua, një dënim të shpejtë, si, hej, Andi, Unë jam i interesuar me të vërtetë në projektimin një lojë që e bën këtë për iOS. Ftohtë. Just let me inicialet tuaj të shkurtër Idetë për projektet tuaj përfundimtar. Dhe ne do të flasim me nëse janë apo jo që është në fakt një ide e mirë apo jo, në qoftë se kjo është një ide e realizueshme apo jo. Por vetëm para-propozimi i është të hënën e ardhshme për shkak. pset6, web-- jonë e bukur që është e gabuar. Pset7? pset6? Është pset6, e drejtë? pset6, web server ynë, është për shkak Të premten në mesditë me ditën vonë. Orari i punës të rifillojë normalisht nga e hëna të enjten ora 8:00 deri në ora 11:00 këtë javë. Unë mendoj Commons për e tri net ardhshme. Ftohtë. Para se ne kishim në material, bën askujt keni ndonjë pyetje, shaka, tregime? Çfarë ke bërë për pushim vjeshtë? Audienca: Çfarë të bëj? ANDI Peng: Tashmë kjo është moshave më parë në fakt. Christabel shkoi në Nju Jork. Kam qëndruar këtu dhe Netflixed. Audienca: Oh, po unë kam qenë këtu. ANDI Peng: Oh, OK. Audienca: Nuk mbaj mend çfarë konkretisht. ANDI Peng: Kjo është në rregull. Audienca: Netflixing ndoshta. ANDI Peng: Netflixing. Po, kjo është një kohë e mirë. NE RREGULL. Në rregull. Çdo pyetje para ne hidhen në materialin? Gjithashtu, ne do të përpiqemi të shpejtuar përmes seksion sot, jo shumë për të mbuluar. Dhe shpresojmë se, ne do të merrni këtu pak herët. Na vjen keq për jo karamele, gjithashtu. Unë jam një zhgënjim, sidomos gjatë Halloween. Në rregull. Ftohtë. Pra, ne jemi duke shkuar për të filluar duke folur për një argument command line quajtur chmod. chmod, të gjitha ajo është është vetëm një sistem Unix thirrje kryer nga vija e komandës për të ndryshuar lejet fotografi. Kështu për shembull, ne kemi të gjithë hasur në një faqe si kjo ndoshta diku në jetëgjatësinë tonë për të qenë një internet përdorues, ku web server ynë ka na ka dhënë gabimin e ndaluar. Ju nuk keni leje për të hyrë, yadda, yadda, yadda, në këtë server. E gjithë kjo vërtetë do të thotë është se lejet që janë bashkangjitur në çfarëdo Faqja që ishin duke u përpjekur për të hyrë nuk kanë qenë të hapura për ju. Pra shumë e shumë, chmod është mënyra në të cilën ne mund të modifikoj ato lejet e sistemit për të dhënë të gjithë, përdoruesit, grupi, bota, ose ndonjë Kombinimi i atyre qasje të disa dosjeve, directories, çdo gjë me të vërtetë, çdo lloj i sistemit për një sistem operativ. Pra, nëse ndonjë prej djem kanë kompjutera Nëse ju mendoni si në vijim së bashku me mua sot, plotësisht të ndjehen të lirë për vetëm lloji gjëra në. Nëse jo, ju vetëm mund të rri. Kështu që unë jam duke shkuar për të tërhequr në fakt deri terminal time tani. Pra, komanda për të drejtuar chmod, ose të paktën vetëm tek lista lejet e juaj skedar directory, është vetëm ls-l. Siç mund ta shikoni, një bandë e gjëra pops up shumica e të cilave është e rëndësishme për ne në anën e majtë të dorës së këtu. Ju djema shihni një bandë e rs, WS, 1 /. Po. Këto janë në thelb vetëm Të gjitha lejet e fotografi për të shpjeguar se çfarë directories caktuara dhe dosjet brenda sistemit tuaj të kenë. Pra, le të kthehemi në pika pushtet këtu. Pra, përveç emrat e file si ju djema mund të shihni në të djathtë, ne jemi duke kërkuar për të parë në thelb vetëm kolona në të majtë. Pra, përveç të vetëm emrat e file, ne mund të shihni lejet e dosjeve, tyre Grupi pronari, emri i grupit, data se dosja i fundit modifikuar, e të tjera. Ju mund të shihni shumë gjëra duke përdorur chmod. Pra, mënyra se si ne lexojmë chmod është se letra e parë që ne shumë e shumë të injorojmë përsa i përket lejeve të leximit. Letra e parë vetëm na tregon se çfarë lloji i sistemit që ne jemi të hyrë. d, në këtë rast, eshte nje dosje apo directory. Pra, ne e dimë se aktualisht hapësira e punës time Seksioni i shtatë ishte një drejtori. Dhe pastaj ju shihni tre triads, në thelb vetëm tre grupe të tre karaktere. Dhe ju mund të mendoni secili si një grimë. Kështu që ju vetëm duhet tre grupe të tre bit, bit nëntë në total. Ju trajtoni ato në grupe nga tre. Kështu grupi i parë i tre është gjithmonë lejet tande. Grupi juaj i dytë i tre është gjithmonë lejet tuaja të grupit. Dhe vendosur tuaj treti i treve është gjithmonë si në botë, e kudo leje. Kështu që unë mendoj lehtë Pyetje për të kërkuar është ajo që është dallimi në mes të shfrytëzuesit dhe grupit. Dallimi kryesor në mes të shfrytëzuesit dhe grupit është se një përdorues është vetëm ju personalisht qasjen çfarëdo qoftë ajo është e drejtë tani. Një grup mund të jetë në qoftë se ju keni të shumëfishta përdorues në një kompjuter, për shembull. Të gjithë prej tyre mund të trajtohet si një grup. Dhe pastaj bota është vetëm bota, të gjithë. Pra, ne mund të shohim më vonë se si ne mund të modifikojë ato në leje të ndryshme. Pra shumë e shumë, ne jemi do të përqëndrohet ende në pjesën në të majtë, ku për directory CS50 shohim drwx, ku r thjesht do të thotë se është i lexueshëm. W thjesht do të thotë se është e shkruajtshme. Dhe pastaj x vetëm do të thotë se është i ekzekutueshëm. Ju do të mendoni se kjo lloj e nuk ka kuptim. Ajo duhet të jetë e. Por x fakt lloj i punon pak më të mirë, sepse ju mund të mbani mend atë më mirë. Kështu tri lloje të gjërave që ju mund të bëni, ju ose mund të lexoni një skedar, ju mund të keni leje për të shkruar një fotografi, ose ju mund të keni leje për të ekzekutuar një fotografi. Dhe kështu mënyra që ne në fakt përfaqësojnë ato në copa është numrat 4, 2 dhe 1. Pra, çdo gjë që është e lexueshme është përfaqësuar nga numri i 4. Çdo gjë që është e shkruajtshme përfaqësohet nga 2. Dhe çdo gjë që është e ekzekutueshme përfaqësuar nga 1. Pra, në këtë kuptim, ne gjithashtu mund të përfaqësojnë këto numbers-- hi, të mirëpritur, në një mënyrë të ndryshme. Më vjen keq. Para se të gjithë, unë jam duke shkuar për kërkoj falje në emër të të gjithëve hyjnë në klasën tani. Kam harruar karamele sot. Më vjen keq unë jam një dështim këtë javë e Halloween. Unë do të sjell dyfishin e parave karamele herën tjetër për të bërë për të. Por megjithate, sorry në lidhje me atë vajzë, më vjen keq. Pra, mënyra se si ne mund të vërtetë të dhëna në komandën tonë argumenti është që ne mund të bëni chmod lejet Slash grup, ku grupi është vetëm çfarëdo grup ne jemi duke u përpjekur për të ndryshuar. Dhe lejet janë çdo gjë që ne duam të shtoni në të. Kështu për shembull, plus shton lejet, dhe zbres merr leje. Dhe llojet e grupit të kemi tonë një për të gjithë, u për përdoruesit, G për grupet, ose o për të tjerët. Kjo është një abstrakt pak tani. Por ne do të shkoj për disa shembuj vetëm për të demonstruar këtë të shpejtë të vërtetë. Gjithkush e mirë për këtë rrëshqitje, kështu që unë mund të lëvizin në? Ftohtë. Kështu për shembull, rwx. Para se të flasim për atë që ai përfaqëson, para së gjithash, çfarë do të thotë rwx? Nëse ju shihni se kjo sigurtë Dosja ka lejet e rwx, çfarë ka që do të thotë person mund të jetë në gjendje të bëjë? Audienca: Lexo, shkruaj dhe ekzekutuar. ANDI Peng: Po, pikërisht. Ju mund të lexoni dhe të shkruani ekzekutuar. Për shkak të tre të atyre Karakteret janë të pranishëm. Pra, nëse ne do të shkojmë përpara dhe të flasim në lidhje me këtë në aspektin e copa, rwx gjithashtu mund të përfaqësohen si 700. Sepse si ju mund të shihni në ndonjë lloj leje fotografi directory, ka tre triads. Në këtë rast, vetëm e parë treshe ka asgjë atje. Pra, në këtë rast, r është 4, w është 2, dhe x eshte 1. Në qoftë se ju shtoni ato së bashku, është 7. Dhe kështu që nëse ju konvertojë ajo për binare, është 700. Sepse 7 është treshe e parë. 0, nuk ka asgjë të pranishëm në treshe të dytë. Dhe pastaj nuk ka asgjë të pranishme në Triada e tretë, kështu që kjo është një tjetër 0. Pra, në të njëjtin kuptim, një bandë e triads mund të përfaqësohet vetëm në copa, vetëm në binar si. Pra, 700 do të thotë të njëjtën gjë e saktë si rwx ------ përsa i përket lejeve. Gjithkush qartë për këtë? Ftohtë. Dhe kështu chmod 111 do të japë që lejet në dosjen? Ju jap djema një çift sekonda për të kthyer këtë. Mos harroni, i pari treshe është për përdoruesit. Treshe dytë është për grupin. Dhe treshe e tretë është për të gjithë. Dhe kështu chmod 111 do të japë të cilat llojin e lejeve dhe kujt? Merrni disa sekonda për të mendoni rreth saj dhe të vijnë përsëri. Po. Audienca: Pra, të gjithë mund ta ekzekutuar atë. ANDI Peng: Po, pikërisht. Audienca: Por askush nuk mund të lexojnë ose të shkruajnë. ANDI Peng Dhe të ndjehen të lirë për të shpjeguar të gjithëve si keni ardhur në këtë përfundim. Audienca: E pra, për përdoruesit, grup, dhe bota, kjo është e gjitha 1, e cila është kodi për ekzekutues. ANDI Peng: Po, pikërisht. Pra 1, në këtë rast, të gjithë ne e dimë është se kjo është kodi i ekzekutueshëm. Sepse leximi është 4. Shkrimi është 2. Dhe ekzekutues është 1. Pra, është e të tre triads janë 1, që do të thotë se në botë, për përdoruesit, dhe grupit, ata janë të gjithë të ekzekutueshme. Gjithkush mirë me atë? NE RREGULL. Dhe kështu mënyra e dytë që ne mund të vërtetë shkruaj kjo është edhe ju mund vetëm të bëjë chmod një x plus. një do të thotë të gjitha ose të gjithë. Plus do të thotë duke i dhënë leje për të. Dhe pastaj x thotë ekzekutueshme. Pra, ka dy komandat janë në fakt identike. Pra, nëse ju doni të drejtuar kjo në terminalin tuaj, ju bëni chmod 111, emri i Lista juaj ose dosja juaj. Ose ju mund të bëni chmod një plus x, emrin e dosjen tuaj directory. E njëjta gjë, vetëm një mënyrë e lehtë, ndoshta, për disa për të përfaqësuar ose ndryshim lejet fotografi. Çdo njëri në rregull me chmod para se të shkojë në? Ftohtë. Pra, tani ne jemi duke shkuar për të kryesuar në një disa slides e koncepteve abstrakte shumë që unë jam shumë e shumë do të fllad përmes. Dhe kjo është krejtësisht në rregull në qoftë se ju nuk e kuptojnë çdo gjë. Edhe tani, unë ende nuk e bëj të vërtetë kuptojnë çdo gjë plotësisht. Por kjo është më shumë për të marrë Niveli i të kuptuarit të lartë e si disa nga këto gjëra të punojnë. Pra, ne jemi duke shkuar për të folur shpejt për TCP / IP, e cila është vetëm Transmission Control Protokolli çaj Internet Protocol. Kujtojnë nga leksion, David, që ai të mësojë se shembulli ku ai do të kalojë shënimet në një zarf deri në si në krye të sallës së leksionit? Pra, në auditorin e shkollës ligji David demonstruar në thelb si TCP / IP punon në ndjenja që të gjithë atë është është një mjet për të siguruar që të dhënat është dorëzuar nëpër një server ose në interneti. Kështu në shembullin e zarfit dhe mesazhi, përdorues në fund mund të shihni se, oh, unë e nevojshme për marrin katër pako të informacionit. Por, unë në fakt mori vetëm tre. Kjo do të thotë unë duhet të jenë të humbur një të tillë. Dhe një nuk është dorëzuar. Dhe kështu TCP / IP në internet, përmes kompjuterit tuaj dhe server, e bën të njëjtën gjë e saktë. Gjithë kjo nuk është të përcaktojë një korniza në të cilën një të dhënat e humbur pako mund të duroj dhe të marrë. Ashtu si në internet kur ju jeni duke u përpjekur për të hyrë në fotografi në internet ose të dërgoni fotografi një shoku apo të shikoni në web shfletues, mijëra e mijëra e miliarda dhe miliarda i bytes informacion janë transferuar në Millisekonda. Dhe kjo është me të vërtetë, me të vërtetë konfuze. Dhe kjo është me të vërtetë e vështirë për të të vërtetë e di se çfarë është dërguar dhe çfarë nuk është dërguar. Dhe kështu TCP / IP vetëm specifikon një kornizë koheziv në të cilin web tuaj shfletuesi dhe serveri juaj mund të lloj të komunikojnë me njëri-tjetrin, vetëm sigurohuni që pako janë të gjithë këtu dhe asgjë e humbur dhe të gjitha të dhënat që ju kërkohen është në të vërtetë shfaqur si duhet. Gjithkush OK në vetëm se shumë Niveli i lartë i shkurtër kuptoni? Ftohtë. Pra, atëherë ne jemi duke shkuar për të lëvizur në duke folur për HTTP, e cila është vetëm Hypertext Transfer Protocol. HTTP, të gjitha ajo është është çdo gjë që ndonjë faqe ose skedar është në disponim në web faqen tuaj, serveri kthen një HTTP Kodi status në përgjigje në kërkesën duke u siguruar se ose, oh, kjo kërkesë shkuan përmes. Dhe çdo gjë është shfaqur si duhet. Ose, oh, jo, 404. Dicka shkoi keq. Oh, unë nuk mund të shfaqin. Të gjitha ajo është se çdo gjë që është e ju jeni duke u përpjekur për të hyrë, përdorin si përdorues është duke u përpjekur për të hyrë, në internet-- vetëm duke u siguruar që ju të keni sukses ose arrihen çfarëdo qoftë ajo ishte apo jo arrihen me sukses çfarëdo qoftë ajo ishte. Dhe kështu statusin HTTP Kodi sapo ju ofron një mjet për të qenë në gjendje të dimë nëse apo jo ajo ishte e suksesshme apo jo. Kështu për shembull, një kërkesë shembull. Ju mund të shihni këtu është e zakonisht zakonisht katër rreshta. Ne kemi një HTTP GET 1.1, e cila është vetëm kërkesa metoda URL, protokolli version, emri fushë, dhe vlera fushë. Pra, nuk ka nevojë për të krejtësisht të mësuar përmendësh diçka këtu. Vetëm lloji i njoh nga afër veten me se si këto duken. Në këtë shembull, kërkesa metoda URL është vetëm çfarëdo kërkesë ju jeni dërguar në server. Si, hej, server, unë me të vërtetë dua të Qasje yadda, yadda, yadda, HTTP faqe. Versioni protokoll është vetëm çfarëdo version host tuaj ose serveri juaj është përdorur për të marrë informacion. Emri fushë është faqen e internetit ose URL që ju jeni duke u përpjekur për të hyrë, në këtë rast, www.apple.com. Dhe vlera fushë është vetëm në mënyrë tipike emrin, vlerën. Dhe kjo mund të jetë çdo lloj kombinimi e shkronja ose numra ose çfarëdo. Pra, një kërkesë tipike, kështu çfarë kompjuteri juaj në fakt dërgon në server që thotë, hej, ju e dini se çfarë kam nevojë për këtë shfaqet, kjo është lloj i kërkesës se ata në fakt të marrë. Një reagim shembull i asaj që server do të dërgojë tek ju do të jetë shumë e shumë të njëjtën gjë, përveçse me një kod statusit në krye. Pra 200, 2 0 0 është gjithmonë kodi statusit për OK. Si, OK, kjo kërkesë shkuan përmes. Ju keni qenë në gjendje për të hyrë në çdo gjë të saktë. Jeta eshte e mire. Jeta është e mirë. Çdo gjë është krejtësisht e mirë. Dhe kështu kjo vetëm tregon shfletuesit tuaj dhe serveri juaj, hej, çdo gjë është e mirë. I kam të gjitha informatat që kam nevojë. Ftohtë. Por problemi është ndonjëherë probleme të dalë kur ju have-- zgjasë unë mendoj Kam folur për kopje identike. Ju keni përgjigjet më të mira. Kështu për shembull, 404 është Page Not Found. Ju ndonjëherë keni një qasje të ndaluara. Ju keni të tjera të ndryshme Kodet e statusit që Jam i sigurt që ju keni parë të gjithë kur ju jeni duke u përpjekur për të bërë kërkime në internet. Dhe shfletuesi yt, të jep , nuk ka, nuk mund të hyni. Dhe ju jeni si, mirë, mut. Pra, vetëm shumë e shumë, nuk ka disa kode statusit mjaft të zakonshme. Ndoshta njoh nga afër veten me të cilat ato janë. Një funniest që Unë mendoj se unë kam dëgjuar ndonjëherë of-- në qoftë se ju ndodh që të kërkoni gjithë ata në internet, për disa arsye nuk ka në fakt një kod status i vërtetë quajtur 418 Unë jam një ibrik çaji. Unë googled ku Origjina e kësaj është nga. Dhe me sa duket një Fools prill " Ditë një çift dekada më parë, dikush menduar se do të qeshur për të krijuar një kod të ri të statusit të quajtur 418 Unë jam një ibrik çaji. Legjitime, emri i kësaj Kodi quhet unë jam një ibrik çaji. Unë harroj atë faqe ju duhet të shkoni në fakt e bëjnë këtë shfaqje. Por me sa duket, ju mund të vërtetë të marrë një kod statusin e unë jam një ibrik çaji disi përmes bërë diçka. Pra, ka me qindra dhe qindra e kodeve statusit. Disa prej tyre të bëjë më shumë ndjenjë se të tjerët. Por shumë e shumë vetëm njoh nga afër veten me ato më të zakonshmet. Trupi i kërkuar njësia ekonomike është shkurtër dhe i shëndoshë, me sa duket. Pra, ndonjëherë ka më shumë Gabimet e frikshme se unë jam një ibrik çaji. Por kjo është ajo që unë mendoj ju lloj shprese për të goditur. Por unë nuk mendoj se ju do. Gjithkush e mirë për statusin vetëm kodet, kërkesat, proceset, duke e bërë i sigurt informacioni është dorëzuar siç duhet? Pra, tani ne jemi duke shkuar për tranzicion në një pjesë të fun të seksionit sot, ku ne flasim pak për HTML. HTML, të gjitha ajo është HyperText Gjuha markup. Është vetëm gjuha standarde ju përdorni për të krijuar të gjitha web faqe në internet. Pra, çdo web faqe, çfarë është preferuar web faqen tuaj? Çfarë është tuaj të preferuar web faqe? Audienca: [padëgjueshme]. ANDI Peng: Na vjen keq? Audienca: Tumblr. ANDI Peng: Tumblr. Pra, Tumblr është shkruar në HTML. Dhe kështu që ne do të vërtetë të shkojnë nëpër dhe luajnë rreth me disa nga këto gjëra me vone. Pretty much çdo gjë ju duhet të mësojnë, të dini, për të shkruar HTML ju mund ndoshta vetëm Google në internet. HTML, kjo nuk është një program si C ku ju mund të krijojë dhe të bëjë variablave gjëra të ftohtë me të. Është shumë e thjesht, oh, kjo është se si unë duam që gjërat të paraqiten në faqen time. Dhe unë jam vetëm duke shkuar për ta vënë atë në. Dhe kjo do të stilit atë. Pra HTML, në një kuptim, kjo është vetëm si një formatimin ose template gjuhë. Kjo është një shumë më e lehtë. Kjo është një shumë më e lehtë për të mësuar, shumë më e lehtë për të shkruar në se programimit tuaj tipike gjuha, shumë e lehtë, shumë përdorues të arritshme dhe miqësore. Pra, ne jemi të vërtetë do të luajë rreth, shkruani vetë faqet tona sot. Por, para se të fillojmë, unë vetëm dua të shkoni mbi disa praktika të mira të shkurtra. Sepse HTML është e tillë një i lehtë gjuhë dhe sepse edhe në qoftë se ju bëni disa gjëra të gabuar, kjo nganjëherë nuk mund të vëreni, ne duam të sigurohemi që ne jemi në fakt respektimi praktikat tona më të mira për të siguruar që gjëra që mund të shkojnë rreth, por nuk janë gjithmonë do të mos shkojnë drejtë sigurohuni që ata janë të minimizohet. Pra shumë e shumë, sigurohuni mbylljes të gjithë tags tuaj tuaj kur ju jeni me shkrim në HTML. Nëse ju jeni duke hapur një trup, sigurohuni që ju jeni mbylljen e saj me një trup diku. Ju dëshironi të bëni të sigurtë që tuaj web faqe validates duke përdorur atë që quhet W3 Validator. Ju mund vetëm google atë në internet, dhe ka një lidhje me të. Dhe pastaj ju doni të HTML veçantë, e cila është gjuha juaj markup nga stilin tuaj, e cila është gjuha CSS që Davidi tregoi se ne jemi gjithashtu do të luajë një grimë me leksion. Ftohtë. Pra, çdo kohë që ju doni të drejtuar HTML në aplikim CS50, ne jemi duke shkuar për të drejtuar një Programi i quajtur Apache, të cilat të gjitha ajo është vetëm një ndërtuar në web server që të gjithë në CS50 ka qasje në. Ne e quajmë atë apache50 vetëm për shkak se ne si për të thirrur çdo gjë 50 në CS50. Kështu që mënyra që ju filloni CS50 web server është nga shtypja në komandën tuaj Linja apache50 fillojë dot. Dhe në qoftë se ju doni që të përfundojë atë në çdo kohë, ju nuk apache50 fund nuk dot. Dhe ju vetëm hit Enter. Dhe kjo duhet të shkon deri këtu shpejti. Yup. Kështu që unë jam vetëm do të shpejt të shkojnë mbi një shembull i një faqe të vërtetë të shkurtër web. Dhe ne jemi duke shkuar për të shpenzuar si 10, 15 minuta duke luajtur rreth shkrimit faqet tona të internetit. NE RREGULL. Pra, këtu në IDE-- mund të shihni se të gjithë? Jo ne te vertete. Këtu, unë do të zoom në. Unë kam marrë vetëm këtë template të shkurtër këtu me asgjë të vërtetë në të. Ne jemi vetëm duke shkuar për të shpejt të shkruar një program HTML në të cilën ne vetëm thonë hello në botë. Pra, e njëjta gjë si në C, tani ne jemi vetëm duke shkuar për të bërë atë në HTML. A ka dikush duan të vërtetë vetëm provoni duke i dhënë mua gjëja e parë që do të keni për të vënë në një dokument HTML? Po. Audienca: Kllapa, [e padëgjueshme]. ANDI Peng: Po. Pra, diçka që është shumë unike për HTML që ne zakonisht tradicionalisht mos hasin në komandën e tjera gjuhë programimi e nivelit linjë është se ne fakt për të specifikojë llojin e skedarit se kjo do të jetë në majë të kodit tonë. Pra, në këtë instance-- unë mendoj kjo është komanda e drejtë, e drejtë? Yup. Në krye, ju vetëm dëshironi që të përfshijë zhurmë html DOCTYPE në kllapa vetëm të tregoni kompjuterin tuaj, hej, kujdes. Dhe dokument HTML po vjen. Dhe pastaj si duam të nisem dosjen tonë? Në qoftë se ne vetëm dua të them hello, kanë një faqe web që thotë se përshëndetje për botën, si do të shkojnë për ndërtimin e kësaj? Në fakt, le të kthehet në Google. Dhe ne fakt mund ta bëjë këtë. Yup. Atje shkojmë. Pra HTML. Siç mund ta shikoni, shfletuesi im është në fakt automatikisht styling kjo për mua. E njëjta gjë si në C, kur ju krijimin e një mbajtëse të hapur kaçurrel, shfletuesi juaj automatikisht shton në një mbajtëse të ngushtë kaçurrel. Për fat të mirë, IDE jonë i pëlqen të e bëjnë këtë për ne si. Deri tani ne mund të lloj tipi fillimi i një tag, dhe ajo do të gjithmonë të na tregoni për të mos harroni të shkruani fundin e tag. Unë mendoj se kjo duhet të kapitalizohen. Dhe pastaj ne të dëshironi të shtoni, gjithmonë, një kokë në të cilën është titulli. Ne vetëm duam të thirrur ndoshta kjo përshëndetje, dhe pastaj trupi. Dhe ju shkoni atje. Kjo është në fakt dokumenti ynë HTML. Pra, mënyra se si çdo dokument HTML është vetëquajtur gjithmonë in-- njëjtën gjë me zbrazëti int main. Ju gjithmonë dëshironi të keni HTML një etiketë të hapur dhe të ngushtë në krye dhe në fund të kodit tuaj. Ju dëshironi që të ketë një kokë brenda të e cila përmban titullin, vetëm çfarëdo do të shfaqur tab e web tuaj faqe, dhe pastaj a body brenda së cilës në fakt do të shfaq përmbajtjen e çdo gjë që ju doni të bëni. Pra, nëse ju të kërkuar për të vërtetë të drejtuar kjo, unë jam duke shkuar për të zoom nga mbrapa. Ju në fakt mund të filloni apache50 fillojë dot. Ftohtë. Dhe në mënyrë që ju mund të shihni, tani kjo lidhje ka popped up. Ajo thotë se faqja e juaj është tani në dispozicion në disa linkun e mëposhtëm. Pra, të gjitha IDE ynë ka done-- jo IDE, sorry-- vërtet, IDE jonë ka bërë është të krijojë një web Lidhje mbi të cilat të gjitha faqet tona të internetit mund të arrihen në server. Pra, le të marrin një vështrim këtu. Le të klikoni mbi këtë, shkoni në hello.html. Dhe ju shihni një shumë të thjeshtë faqe web për botë Hello. NE RREGULL. Ne jemi të vërtetë duke shkuar për të vetëm kanë everyone-- Po, çfarë është lart? Audienca: Unë kam një pyetje themelore. ANDI Peng: Yup. Audienca: Si mund të ruani dosja juaj si një HTML? ANDI Peng: Po. Pra, nëse unë për të krijuar një skedë të re, në qoftë se unë bëj New File, Untittle, në qoftë se unë bëj, section.html, bum, kjo është e gjitha unë duhet të bëni. Audienca: [padëgjueshme]? ANDI Peng: Jo. Audienca: [padëgjueshme]. ANDI Peng: Jo. Audienca: [padëgjueshme]. ANDI Peng: Po. Pretty much, zgjerimi në skedari që është brenda IDE tuaj, që tregon kompjuter, që tregon shfletuesit, hej, kujdes. Kjo do të jetë kod shkruar në këtë gjuhë. Kështu për shembull, në Microsoft Fjalë, çfarë bëni të gjitha dokumentet e Word të përfundojë me zgjerimin, çfarë? .doc ose docx, e drejtë? E gjithë kjo nuk është specifikon të tuaj sistemit operativ, hej, ju keni marrë një dokument Word vjen deri. Të hapur atë me Word. E njëjta gjë me PDF. Ajo e di, oh, kam nevojë për për të hapur këtë skedë me Adobe Reader ose Adobe Acrobat. Dhe kështu extensions veprojë të njëjtën mënyrë si në kompjuterin tuaj. Nëse ju specifikoni faqen tuaj kod të quajtur HTML, atëherë ajo e di, oh, ju keni marrë kodin HTML. Unë jam duke shkuar për të trajtuar atë si kod HTML. Pra, kjo është super i zgjuar në këtë kuptim. Kështu që të gjithë, le të marrin si 10 minuta dhe vetëm të krijojë vet faqet tona. Le të shtoni në gjëra të bukur. Ndjehen të lirë për të thënë çdo gjë që ju dëshironi. Unë vetëm dua të bëni të sigurtë që serverat gjithëve do të vrapojnë në mënyrë korrekte para se ju të lirë në pset. Sepse në qoftë se serverat tuaj nuk do të kandidojë për pset, që do të jetë me të vërtetë, me të vërtetë keq. Unë jam vetëm duke shkuar për të noton përreth dhe të parë se çfarë është duke punuar për të gjithë. Si po shkon? Audienca: Unë sapo u kthye në kompjuterin tim. ANDI Peng: Kjo është në rregull. Audienca: [padëgjueshme]. ANDI Peng: Vetëm IDE tuaj. Po. Audienca: [padëgjueshme]. ANDI Peng: Është në rregull. Audienca: [padëgjueshme]. ANDI Peng: Totally fine. Është e të gjithë qasjen web server OK e tyre? Po apache50 running në rregull? Unë mendoj se në disa prej pjesët e tjera, ne ka pasur çështje me jo njerëzit duke qenë në gjendje për të hyrë në server. Po. Kështu që ju vetëm të drejtuar apache50 Hapësira filloni periudhën hapësirë. Audienca: [padëgjueshme]. ANDI Peng: Yup. Mirë? Audienca: [padëgjueshme]. ANDI Peng: Oh, OK. Pra, ju jeni duke menduar të ketë një hapësirë. Pra apache50-- Audienca: kam bërë. ANDI Peng: hapësirë ​​--start. Audienca: Oh, hapësirë ​​dot. ANDI Peng: Yup, hapësirë ​​dot. Nuk ju shkoni. Prandaj, nëse keni një faqe HTML krijuar, atëherë ju mund të shkoni vetëm direkt te lidhjes se përcakton. Dhe ju duhet të jetë në gjendje për të hyrë në të. Gjithkush qenë në gjendje të hyni në faqet e tyre web në rregull? Audienca: [padëgjueshme]. ANDI Peng: Oh, kjo është në rregull. Audienca: [padëgjueshme]. ANDI Peng: Po. Unë mendoj se ju në fakt mund të hapur ajo brenda shfletuesit tuaj, shfletuesit dhe jo vetëm shfletuesi juaj IDE. Po, unë mendoj se në qoftë se ju të kopjoni dhe ngjisni atë. Audienca: Dhe pastaj si nuk kemi kthejnë atë? [Padëgjueshme] ANDI Peng: Po, ju bëni apache50 ndaluar me asnjë periudhë. Yup. Audienca: [padëgjueshme]. ANDI Peng: Me asnjë periudhë. Po. Atje shkojmë. Yup. Ne jemi duke krijuar faqet tona të internetit. Audienca: Oh, cool. ANDI Peng: Po. Audienca: Unë kam një pyetje. Pra apache 50-- ANDI Peng: 50, po. Audienca: [padëgjueshme]. ANDI Peng: Çfarë? Kjo është e çuditshme. Shih, se ishte lloj i çështjes që po ndodhte para. NE RREGULL. Shih më pas seksion. Sepse ne jemi të pasur disa çështjet me server. Dhe ju doni të bëni i sigurt se serveri juaj është drejtimin para fillimit të pset. Sepse ju jeni do të duhet atë. Po. A ka dikush tjetër që nuk ka qenë gjendje për të marrë serverin e tyre për të filluar? Për ata prej jush që doni të shtoni Stili shtesë për faqet tuaja web, ne fakt mund të bëjmë çfarë Davidi veproi pikërisht në leksion, si dhe, i cili është të krijojë një stil shtesë fletë, e cila është një dot CSS, Cascading Style Sheet dhe në fakt vetëm të shtoni atë në. Kështu për shembull, unë kam krijuar vetëm shumë e shumë pothuajse njëjtë e saktë Davidi e bëri në leksion. Ju mund të pretty much vetëm të bëjë trupin. Ju keni çfarë quhen tags në të cilën ju mund të aplikoni për të IDE çfarëdo seksion ju doni brenda tuaj aktual në faqe HTML. Pra, trupi i faqes, ju mund të bëjë qendrën align tekst. Dhe pastaj unë do krijues një tag quajtur i lartë brenda nga të cilat unë dua këto gjëra të ndodhë, të caktojë një madhësi më të madhe pixel për font. Unë dua font peshë të jenë të guximshëm. Dhe unë dua ngjyra të të jetë blu, vetëm arbitrare Vlerat që unë vendosur për të zgjedhur. Unë mund të krijojë një tjetër tag quajtur e mesme. Font size, e bëjnë atë një pak më të vogël. Dhe pastaj unë mund të krijojë një tjetër tag quajtur poshtme ku unë dua font size të jetë edhe më i vogël ende. Dhe kështu shumë e shumë kjo është vetëm shembull e kodit burim apo burim fletë stili kjo është shumë e lehtë për të vetëm të Google. Nëse ju them, oh, unë dua font tim të pjerrëta dhe të gjelbër të errët, ju mund ndoshta të Google, dhe atëherë ai do t'ju tregojë tags ose ID e duhura për të krijuar. Dhe kështu që mënyra që ju do të vërtetë të lloj i kanë këtë në një dokument HTML ose të përdorë kjo është e gjitha që ju keni për të bërë këtu është në krye të shtoni një link në fletë stil. Kështu që ju mund vetëm të lidhë është e barabartë href çfarëdo emri i fletë tuaj stil është. Dhe pastaj marrëdhënia është një fletë stil. Pra, brenda çdo dokument HTML, për sa kohë sa ju të përfshijë këtë fletë dot CSS, ju duhet të jetë në gjendje për të hyrë në dhe kanë pronat atje. Kështu për shembull, këtu unë kam vetëm të krijojë një shembull tjetër web faqe. Kjo është mirëpritur me nenin CS50 Marteve prej 2:00 deri 3:30 me mua. Dhe pastaj unë kam shtuar një imazh të bukur që ne potencialisht duhet të jetë në gjendje për të parë. Pra, nëse ju merrni një vështrim këtu, në qoftë se ju shkoni në style.html, kemi krijuar një faqe web me kittens. Sepse kotele janë awesome. Pra, duke shtuar një imazh është vetëm img linkun SRC. Pretty much, nëse ka çdo lloj funksion ju doni të shtoni në tuaj website-- kështu që le të themi, ju doni të shtoni një menu ose një bar kërkimit apo si një image-- vetëm Google si për të bërë këtë. Dhe ju vetëm pllum në atë format. Vetëm dhe ju mund të pretty shumë vetëm të shtoni atë në. Është e vërtetë, të vërtetë e lehtë. Ne jemi duke krijuar tonat web faqet tani. Në qoftë se ju doni to-- Audienca: [padëgjueshme] ANDI Peng: Na vjen keq? Audienca: [padëgjueshme]. ANDI Peng: Oh, The div është vetëm një ndarje thënë mua se, oh, unë kam një seksion të caktuar të quajtur mesme në të cilën unë jam duke aplikuar tag im CSS, dhe pastaj Ndarja e mia të tjera me pjesën e poshtme. Kjo është e gjitha ajo është thënë ju. Për shkak se ajo është e mirë për të mbajtur gjëra i zoti në mënyrë që, në mënyrë që programi e di se si saktësisht për të kandiduar. Dhe mendoj se unë mund të kopjoni ngjisni këtë në shfletuesin tim aktual, si dhe. Ajo duhet të jetë mirë. Po. Yay. Pra, nëse të gjithë do të vetëm Provoni të krijuar një web faqe, ne do të marrin edhe dy deri tre minuta. Unë vetëm dua të sigurohemi serverat gjithëve janë duke dhe të gjithë ka një ide se si ta bëjnë këtë. Nëse ju djema doni të marrë nga kompjuterat tuaj. Ende nuk punon? Audienca: Unë jam vetëm [e padëgjueshme]. ANDI Peng: Ndoshta provoni të rinovuar 50 si edhe. Po. Audienca: [padëgjueshme]. ANDI Peng: Po. Kështu që mënyra që ju filloni një të ri web server në IDE është vetëm bëjnë apache50 hapësirë ​​fillimit hapësirë ​​dot. Unë vetëm të kërkuar për të siguruar serverat gjithëve të vrapojnë në rregull. Audienca: Këtu, në terminal? ANDI Peng: Po. Audienca: [padëgjueshme]. ANDI Peng: Apache. Në fakt, unë mendoj se ju jeni running diçka tashmë. Po, ju jeni në të vërtetë drejtimin e një server të ndryshëm. Po, ju jeni të mirë. Për sa kohë që është duke punuar, ju jeni OK. Audienca: OK. ANDI Peng: Ka dy mënyra për të kandiduar serverat. Pra, për sa kohë që një nga mënyrat e është duke punuar, kjo është e gjitha e drejtë. Ne do të marrë një minutë vetëm për të lloj të përfundojë prek mbarimit të çfarëdo Web faqe ju djema kërkuar për të bërë. Është duke punuar të gjithë nga rruga? Serverat gjithëve janë konkurrojnë përveç për atë tuajën? Ne do të kuptoj se nga. Dhe HTML mjaft e thjeshtë. Kështu që unë mendoj se ne jemi të gjithë të mirë. Po. Unë do të kthehem. Audienca: [padëgjueshme]. ANDI Peng: OK. Audienca: Pra, kjo është vetëm filloi të ngarkesës deri. ANDI Peng: Nuk shqetësohet. Pra HTML, nuk ka kod burim që do të jetë online pas seksion. Gjithashtu, Davidi ka një tërësi bandë online, si dhe. Vetëm lloj i shikoj atë për shikoni se si janë shkruar faqet HTML. Është mjaft e lehtë. Çdo gjë që ju nuk e dini, ju shumë shumë vetëm Google dhe ju jeni të mirë. Unë vetëm dua të bëni të sigurtë që serverat tuaj të vrapojnë. Audienca: A ka të bëjë kjo shpesh? ANDI Peng: Kjo nuk ka ndodhur me mua. Unë nuk e di se mund edhe të prehem. Audienca: [padëgjueshme]. ANDI Peng: Unë mendoj everyone-- imi nuk ka hibernated më parë. Dhe unë nuk e di pse. Është e pazakontë. Audienca: [padëgjueshme]. ANDI Peng: është e juaja hibernating? Audienca: [padëgjueshme]. ANDI Peng: Po. Audienca: Është në rregull. Pra, një herë është e hapur. ANDI Peng: OK. Ne do të merremi me disa server Çështjet pas seksion. Ju duhet të jetë mirë. Edhe pse, ju doni të bëni të sigurtë që ju merrni ato zgjidhen para se të të lënë. Sepse në qoftë se serveri juaj të jo rrjedhshëm, atëherë ju jeni nuk do të jetë në gjendje të bëjë të pset, si çdo pjesë të pset. Pra, ju doni të bëni të sigurtë se kjo është duke punuar. Ftohtë. Në rregull. Thuaj kittens lamtumirë. Kam kaluar një kohë të gjatë në kërkim të që foto kotele për të vënë në. Pra, anyways. Audienca: [padëgjueshme]. ANDI Peng: Na vjen keq? Audienca: [padëgjueshme]. ANDI Peng: Unë mendoj se është në faqen e internetit. Ashtu si spekulim? Audienca: [padëgjueshme]. Unë mendoj se është vetëm spekulim internet në javën e shtatë. Unë mendoj se është quajtur pset6, edhe edhe pse ne jemi në javën e shtatë, e cila është një informatikë pak. Audienca: Por, unë do të thotë në qoftë se ju dëshironi të shikoni at-- nëse ju dua të tërheq lart versionin tonë të web site nga Sever tonë? Pra, si server.c është pset, e drejtë? Nëse ju doni të shikoni në këtë, si se si ajo kontrollon jashtë? ANDI Peng: Oh, kështu që në fakt pset, të gjithë ne jemi duke bërë këtu është implementing-- këtu, Unë do të shkoj për këtë kohë të shkurtër. Pra, për të gjithë që është vetëm gotten në seksion, ju djema jeni në fat. Ka shumë pak material që në fakt mbulojnë sot. Unë jam vetëm duke shkuar për të shpenzuar ardhshëm 20 minuta duke shkuar mbi pset ndihmë. Sepse ka disa dobishme funksionet që do të ndihmojë jetën tuaj. Dhe shpresojmë se, ne do të jetë jashtë e këtu në si 20 minuta. NE RREGULL. Pra pset7 është e gabuar. Edhe pse ne jemi në javën e shtatë, është e vërtetë pset6. Unë do të ndryshojë atë. Të gjithë ne jemi duke bërë në pset6 është krijimi i një web server. Kjo tingëllon super e frikshme. Dhe sidomos për ata prej jush të cilët kanë tashmë shikuar në kodin e shpërndarjes, ka një shumë të kodit, një shumë të kodit. Por është krejtësisht në rregull. Sepse ranor mortajë pjesë e vërtetë të krijimit të server është bërë nga ne. Të gjithë ju jeni duke pyetur të vërtetë për të bërë në këtë pset është vetëm për të bërë disa manipulime string në dosjen e I / O. Kjo është në fakt si mjaft e thjeshtë. Pra, kur ju së pari të shkarkoni that-- që këtu është fakt tashmë shkarkuar pset dhe të marrë një sy? Në rregull. Po. Ka si 500 rreshta të kodit se ju jeni do të jetë si, cfare po ndodh? Dhe kjo është krejtësisht në rregull. Sigurohuni që ju të shikojnë ecin-throughs. Sepse Davidi and-- unë nuk e di. Unë nuk mendoj se është Zamyla-së, këtë një të tillë. Por, unë mendoj se disa të tjera Walk-throughs janë mjaft të të dobishme në aspektin e vetëm lënë ju e dini çfarë po ndodh në brendësi të kodit tuaj. Dhe kjo është krejtësisht në rregull. Sepse të katër funksionet që ju jeni kërkohet për të zbatuar ketë në fakt zero të bëjë me server aktuale. Të gjithë ata duhet të bëni është vetëm parsing strings ndryshme, kërkuar nëpër vargjet, për të bërë gjëra që janë duke bërë atë që ata janë menduar të jetë bërë. Pra, për këtë qëllim, ka disa funksione shumë, shumë të dobishme, sidomos për string manipulim, se ne duhet të gjithë shkoni mbi që unë mendova se do të jetë shumë i dobishëm për ju djema për të mësuar para se të pset. Dhe ata janë që përmban të gjithë në bibliotekën tuaj string. Ka ndoshta më e dobishme funksionet Unë nuk kam përfshirë këtu, sepse unë kurrë ose përdorin ato ose ndoshta unë thjesht nuk e di se ata ekzistojnë. Ndjehen të lirë për shikim nëpërmjet student.h. Për shkak se nuk do të jetë shumë e funksioneve që janë shumë të dobishme. Pra, gjashtë që unë e përdor më së shumti në tim pset kur unë isha duke bërë atë këtë javë të fundit ishin strtok, strchr, strrcher, strstr, strcasecmp dhe strcpy. Dhe kështu dy të fundit mund të duket goxha e njohur për shumicën prej jush. Rast Str krahasoni, gjithë kjo nuk është të krahasohen strings për të kontrolluar ato për barazi, duke përfshirë edhe rastin. Dhe strcpy vetëm kopje një varg në një tampon. Dhe kështu ata të dy duhet të duket shumë të njohura për ju djema në këtë pikë. Sepse ne kemi përdorur atyre një shumë, sidomos për psets fundit. Por katër i pari ndoshta ju nuk e keni parë deri më tani. Por unë jam duke shkuar për të vetëm të ecin nëpër to. Sepse ata do të bëjnë jetën tuaj me të vërtetë, të vërtetë e lehtë nuk for-- lehtë, por shumë më e lehtë për këtë pset ardhshme. NE RREGULL. Pra, char * strtok, ky është funksioni përkufizim për këtë funksion përmbante brenda string, bibliotekë h. Nëse jeni duke dhënë një kontribut të char * string, e cila është vetëm një varg, ose një char konstante * deliminator, delim për të shkurtër, gjithë kjo e bën po i shkel të mëdha string në një seri të asaj që ne e quajmë argumentet ndarë nga një vlerë të caktuar. Pra, në një kuptim, në qoftë se unë do të jap ju section.7.php, kjo është një varg. Kështu që do të jetë në qoftë se unë do të kaloj në këtë si rr tim, char * str im, nëse deliminator ime ishte dot, e gjithë kjo do të bëni është të kërkoni përmes vargut. Dhe për herë të parë ajo e sheh një pikë, ajo vetëm do të kthehej në treguesin në shenjë e fundit gjetur në vargun e para kjo. Pra, kjo do të shkojë drejtë këtu. Dhe kjo vetëm do të më jepni 7.php. Dhe në qoftë se unë ishin për të thirrur funksionojë një më shumë kohë, ai do të më jepni vetëm Php. Dhe kështu gjithë ky funksion është duke bërë është thyer string madhe në vargjet më të vogla në varësi në atë që ju po kërkoni. Dhe kështu për shembull, në Look up funksion tuaj në qoftë se ju dëshironi të shikoni në çfarë karaktere të caktuara të ndodhë ose në qoftë se pika ndodh ose zgjerime të ndodhë, Ky funksion do të jetë mjaft e dobishme. Po. Nuk shqetësohet. Kjo do të gjithë be-- vërtet, çfarë është lart? Audienca: Pra, në rreshtin e parë, në qoftë se ne kemi qenë duke përdorur këtë shembull, çfarë do të futur në atë? ANDI Peng: Po. Ju do të thërrasë vetëm një strtok delim string presje. Dhe varg është e barabartë me section.7.php. Dhe pastaj ju jeni delim mund të jetë e barabartë me vetëm dot. Audienca: OK. ANDI Peng: Po. Ashtu si kjo. Të gjitha këto funksione janë mjaft i ngjashëm kur shkojmë nëpërmjet tyre. Ata thjesht bëjnë gjëra paksa të ndryshme. Por ata të gjithë do të bërë jetën tuaj shumë më të lehtë. Funksioni i dytë, kjo dikujt si super, super, super të rëndësishme, është the-- mbajnë deri. Oops. Kërkimet Strchr për të parë occurrence-- fakt, po. Strchr është funksioni që Unë patjetër sapo kaloi. Kështu që injorojnë atë që kam thënë për funksionin e parë. Ajo që quhet në fakt strchr. Pra, çfarë do të ndodhi këtu është nëse ju janë dhënë një varg në një char C, ajo vetëm do t'i jepte ju çfarëdo që është. Po. Pra, mendoni për atë si rr, e cila është një varg, dhe Chr si char. Pra, të gjithë ju jeni duke u përpjekur për të bërë është kërkimi për ku një char është brenda një varg. Dhe kështu kërkimet për të parë ndodhja e karakterit c në rr string. Audienca: [padëgjueshme]. ANDI Peng: Yup. Dhe pastaj në qoftë se ajo nuk ka gjetur ajo, ajo do të kthehet NULL. Pra, diçka që do të jetë shumë e dobishme për ju djema në bërë pset në qoftë se, të themi, ju jeni duke kërkuar për një extension si një docx për një fjalë dokument ose një .pdf për një dokument PDF, ju mund të lloj të përdorin atë për të kërkuar për çdo gjë që është pas çdo herë që shoh një pikë, e drejtë? Dhe kështu shumë e shumë, në qoftë se ju drejtuar atë nëpërmjet funksionit, nëse ajo kthehet NULL, atëherë ju e dini se ajo nuk e gjeni atë dot, që do të thotë kjo në mënyrë të qartë nuk është një zgjerim i vlefshëm skedar. Ose në qoftë se ajo kthehet diçka, atëherë ju e dini ajo do të kthehet çfarëdo të në fakt pas zgjerimit. Pra, ata që kishin fillova duke kërkuar nëpërmjet lookup dhe analizimi, ky funksion e do të jetë super i dobishëm. Pra, ne jemi të vërtetë do për të demonstruar përdorur këtë. Pse nuk ju djema Provo me shkrim një Funksioni bool dënim char * s që vetëm jep true nëse s është një Fjalia dhe të rreme ndryshe. Pra aluzion, ju do të jeni të ngjarë të përdorin strchr. Ose ju kërko vetëm në string për një karakter të caktuar. Dhe kështu në një fjali, ajo që ndan një dënim nga një jo-dënimit, çfarë karakter specifik? Audienca: Një hapësirë. ANDI Peng: Një hapësirë, e drejtë? Dhe kështu ajo që nuk kemi siguri do të doni të bëni në kuadër të këtij funksioni këtu? Audienca: [padëgjueshme]. ANDI Peng: Ne jemi duke shkuar për të duan të strchr string për paraqitjen e hapësirës. Sepse në qoftë se ajo kthehet diçka, atëherë ne e dimë se ky duhet të jetë një dënim. Kjo do të thotë se ne duhet të kanë një hapësirë ​​në këtë varg. Nëse nuk ka hapësirë, atëherë ne e dimë që, hej, mendoj se nuk është një string. Kjo është ndoshta vetëm një fjalë të vërtetë e gjatë. Kështu që unë do të ju jap djema një çift minuta për të shkruar këtë funksion. Po. Audienca: A ju merrni ky string nga përdoruesit? ANDI Peng: Po. Pra, kjo është vetëm një funksion. Pra, imagjinoni brenda funksionit tuaj kryesor ju tashmë have-- le të shkojnë këtu. NE RREGULL. Kështu që unë kam shkruar këtë program ku Unë kam funksion time kryesore ku Unë e kam krijuar vetëm dy vargjet. I pari është Hi, emri im është Andi-- qartë, një fjali. Një im i dytë është vetëm Andi, në mënyrë të qartë nuk dënimin. Dhe kështu që unë jam duke dyja këto vargjet përmes këtij funksioni. Unë dua që ju djema për të shkruar dënim të ftohtë. Dhe unë jam ruajtur këto vlera, dhe pastaj vetëm shtypjen e tyre jashtë. Pra, mendoj se përdoruesi është do të kalojë në një varg. Dhe pastaj ju do të jeni në thelb të kuptoj se në qoftë se kjo është një fjali apo jo dhe kthehen vërtetë apo e rreme në përputhje me rrethanat. Nëse ju djema doni të jepni një thumbs up ose kokat lart, dremitje kokën, është dikush është gati për të filluar ky, që do të jetë mirë. Ndoshta si 30 sekonda më shumë? Në rregull. Le të shohim nëse ju mund të përpiquni shkruar këtë funksion. Kështu pseudo coding-- unë jam vetëm do të lloj i ecin nëpër këtë të drejtë tani. Pretty much, ne e dimë se funksion që ne duhet të përdorim. Ne jemi duke shkuar për të thirrur atë funksion në string tonë dhe kërkimi për një hapësirë. Nëse ajo kthehet diçka, atëherë ne duhet të e di se, në mënyrë të qartë, kjo është një dënim. Sepse nuk ka hapësira. Atëherë ne do të kthehen vërtetë. Tjetër, ne do të kthehen rreme. A ka dikush doni të jepni mua vija e parë e kodit se ne jemi të vërtetë do për të përdorur për të shkruar këtë? Është e vërtetë e vështirë linjë e kodit si. Po. Audienca: Nëse strtok s-- ANDI Peng: Vetëm strchr. Audienca: [ndërhynte ZËRA] hapësira nuk është e barabartë me null. ANDI Peng: Best. Saktësisht e drejtë. Gjithkush kuptojnë se vijën e parë? Ne jemi duke shkuar për të thirrur strstr, i cili është një funksion që kontrollon string s për char e hapësirës. Dhe në qoftë se e gjen atë, ajo do të kthehen një tregues për atë se ku është. Në qoftë se nuk e gjejnë atë, ajo do të kthehet NULL. Pra, në qoftë se ajo kthehet ndonjë gjë tjetër se NULL, atëherë ne e dimë se është gjetur një hapësirë. A ka kjo kuptim? Ftohtë. Në rregull. Pra, në qoftë se ne e dimë se ka gjetur një hapësirë, çfarë duam të bëjmë? Audienca: Kthimi i vërtetë. ANDI Peng: Yup. Kthehu vërtetë. Dhe pastaj, dikush duan të përfundojë deri funksionin për mua? Po. Tjetër, vetëm si kjo. Dhe provoni hartimin kjo. Yup. Pra, si ju djema mund të shohim nga rezultatet, mos harroni Booleans në C shprehen gjithmonë në binar. 1 është e vërtetë. 0 është e rreme. Nëse ne do të drejtuar këtë funksion në vargun e një, e cila është Hi, emri im është Andi-- në mënyrë të qartë, një sentence-- rezultati printohen në 1 e cila është e vërtetë. Një të dytë, që është vetëm një fjalë, rezultojnë printohet 0, e cila është e rreme. Gjithkush lloj qartë se si ky funksion është shkruar? Po. Audienca: A mund të gjithashtu të bëjë, në vend të nuk ka të barabartë jo, është e barabartë është e barabartë me 0, që është e barabartë me? ANDI Peng: Jo. Sepse strchr është një funksion. Unë jam duke shkuar për të mbështetur për këtë. Pra, çfarë është lloji kthimi e funksionit tonë strchr? Audienca: Oh, OK. Ose NULL. ANDI Peng: Po. Kjo është një * char që tregon se çdo gjë që ky funksion do të kthehen, ajo do të jetë një tregues. Ose tregues do të jetë duke treguar ku është e gjeti atë, ose ajo do të kthehet një tregues për null. Në secilin rrethanë, ajo do për t'u kthyer një tregues për diçka. Dhe kështu që nëse ju do të vë shenjën e barazimit kjo është e barabartë, e barabartë, 0, ju jeni do të merrni një gabim kompilimit. Për shkak se ajo do të kthehet një akrep. Dhe ju jeni duke shkuar për të përpiqen për të krahasoni një tregues për një numër të plotë. Dhe kompjuteri nuk është e do të pëlqen kjo. Po, pikërisht. Ftohtë. Gjithkush mirë? Dhe së dyti, ne jemi duke shkuar për të shkuar mbi një funksion të quajtur strstr. Nuk shqetësohet nëse këto Funksionet janë konfuze ju. Ata janë konfuze mua. Si e tillë, ju djema mund të ketë parë, ata të gjithë të tingëllojë si shumë e shumë të njëjtën gjë. Vetëm kur ju jeni të hutuar, tërheq lart bibliotekën string. Dhe ju djema mund të lloj përmes të cilit të cilën. Pra strstr, gjithçka që nuk është kërkimet një varg për një varg të tërë të tjera. Pra, ku strchr vetëm kërkimet për një karakter të vetëm, kërkimet strstr për një varg të tërë. Kështu që unë të kërkuar për të parë në, unë nuk bëj e di, Hi, emri im është Andi. Dhe emri mikun tim të mirë është edhe Andi. Në qoftë se unë të kërkuar për të kërkuar në këtë dënimi për të gjithë fjalën e Andi, gjilpërë ime do të kishte qenë çdo gjë që ju po kërkoni. Dhe kashtë juaj është çfarëdo ju jeni duke kërkuar për atë në. Pra, nëse ju jeni në kërkim të një fjalë të veçanta brenda një fjali, se fjala do të jetë gjilpërë tuaj. Dhe pastaj fjalia vetë do të jetë kashtë tuaj. Dhe kështu që vetëm kërkon dukuri e parë e gjilpërës string në kashtë string. Ajo kthen treguesin në ndodhja e parë. Me përjashtim, kujtohet në këtë rast, kjo është dukuri e parë e tërë vargut që ju jeni në kërkim për, jo vetëm një karakter. Dhe kështu kjo është pothuajse e njëjta gjë si funksion ne vetëm e bëri, vetëm me pak më shumë specifika. Sepse ju jeni në kërkim për më shumë se vetëm një karakter. Dhe përdorimi është i njëjtë e saktë si ajo që ne vetëm e bëri. Gjithkush në rregull me këtë? NE RREGULL. E fundit ne jemi duke shkuar për të shkuar mbi është strrchr, e cila nuk është ngatërrohet me strstr ose me strchr. strrchr ka një r shtesë në atje. Të jenë të kujdesshëm kur ju jeni të shtypni. Ju mund të gjeni veten duke përfshirë një r shtesë apo jo duke përfshirë një r, dhe pastaj funksioni juaj nuk u do të punojë. Dhe ju jeni do të jetë i hutuar. Të jenë të kujdesshëm që ju jeni drejtshkrimi të gjitha këto funksione të drejtë. Pra strrchr është i saktë njëjta gjë si strchr përveç se kërkimet për të mos e parë ndodhja e një karakter të veçantë, por ndodhja e fundit. Dhe kështu, në këtë kuptim, është pothuajse e njëjtë e saktë. Por në vend të lëvizin përpara në një varg, ju do të jeni të lëvizin prapa në një varg. Njëjtën gjë e saktë, ju jeni vetëm kërkim në një mënyrë të ndryshme. Dhe kështu që kjo mund të jetë super, super të dobishme për lookup tuaj funksion, i pari funksion në pset tuaj. Le të pretendojë se kemi nevojë për të shkruar një Funksioni i pavlefshëm zgjerimit në të cilën ne kalojë një char * konstante emër file, vetëm një varg, një emër file, që merr në këtë emër dhe printime jashtë vazhdimin e këtë dosje. Kështu për shembull, në qoftë se unë do të të kalojë në vargun e pset7.zip, ajo do të shtypura nga vetëm zgjerimi, e cila është zip. Dhe kjo do të punojë për çdo lloj i zgjerimit, docx për Word ose pdf për një PDF paraqesë ose skedarit si më poshtë për një skedar HTML. Pretty much, shkruani një funksion që mund ta bëjë këtë. Unë në fakt jam duke shkuar për të kaloni mbi IDE. Nuk është load-- atje ne do të shkojmë. Pra, të gjitha unë kam bërë këtu është krijoi një * char, një varg të parë, quajtur pset7.zip. Unë jam duke shkuar për të zmadhuar. Unë kam krijuar një varg të dytë quajtur finalpaper.docx. Dhe shkruani një funksion që kur thirrje do të vetëm të shtypura nga emrin e file extensions. Ndoshta të marrë disa minuta për të menduar rreth asaj se si ju jeni duke shkuar për të bërë këtë. Pak më sfiduese se ai i fundit, por përdorimi është pothuajse saktësisht të njëjtë. Po. Kështu shkruajnë një funksion të quajtur zgjerim se, në qoftë se unë ju jap emrin e një file, në qoftë se unë do të ju jap pset7.zip-- I dua që ju të shtypura nga vetëm Zip. Nëse unë jap ju pëlqen finalpaper.docx, vetëm të shtypura jashtë docx, vetëm zgjerimi i çfarëdo dosjes. Kjo në fakt vetëm merr dy rreshta të kodit. Pra, të përpiqen për të parë nëse ju ndoshta mund ta bëjë atë në atë. Në fakt, ajo vetëm merr një linjë të kodit. Por dy linja është ndoshta më standarde. Çfarë funksioni janë ne ndoshta do të doni të telefononi? Audienca: strrchr. ANDI Peng: strrchr, e drejtë. Sepse ne jemi duke kërkuar nga e majta e djathtë. Unë nuk ju jap djema një shembull si kjo, por në qoftë se unë ju dha një shembull si www.apple.com dhe unë vetëm të kërkuar Com, ajo do të jetë një shembull i ku ju doni të telefononi instancën e fundit e periudhës dhe jo i parë, të drejtë? Nëse keni qenë strchr telefonatë, atë do të ju kemi dhënë apple.com. Në qoftë se ju e quajti strrchr, atë do të ju kanë dhënë com. Dhe kështu të jenë të kujdesshëm në të cilën ways-- në shembullin tim, ju ndoshta mund të mund të ketë vetëm shkruar atë duke përdorur strchr, pasi që ka vetëm një pikë. Por në raste të tjera, që nuk mund të jetë rasti. Dhe kështu që gjithmonë të përpiqet për të hartuar kodin tuaj të mirë, kështu që that-- vërtet? Audienca: Pra, në shembull ju vetëm tha: kur ju bëni strrchr se do ju jap .com apo vetëm të vijnë? ANDI Peng: Do ju jap com. Audienca: OK. ANDI Peng: Po. Ajo tregon ku e gjeti atë. Po. 30 sekonda ndoshta? Po. Gjithkush e mirë ose ndoshta pak më shumë kohë? Shfaqje e duarve? Trego të krerëve? Ftohtë. Çdokush duan të më jepni parë linjë e kodit për këtë program? Audienca: [padëgjueshme]. ANDI Peng: Pra, para së gjithash, le ndoshta thyer këtë poshtë. Pra, çfarë është lloji kthimi i strrchr? Le të kthehemi. strrchr, çfarë është lloji kthimi? Audienca: Char * ANDI Peng: Kjo është një char *, e drejtë? Që do të thotë se ju jeni me siguri do të dëshironi të krijoni një * char llojit e dyqan sa herë që është e të kthehej në, e drejtë? Sepse në qoftë se ju e quani strrchr funksion, ajo do të ju jap një tregues për kudo që ajo gjeti atë periudhë të fundit, e drejtë? Por ju jeni do të duan të ruajtur atë diku, apo jo? Dhe kështu që si mund të kodit kjo në programin tonë? Audienca: Ju bëni char * [e padëgjueshme]. ANDI Peng: Po. Audienca: [padëgjueshme]. ANDI Peng: strrchr. Po. Oh, humbi një r atje. Audienca: File name [e padëgjueshme]. Çfarë është ajo? Oh, kjo është vetëm s. ANDI Peng: Oh, kjo është vetëm s. Yup, sorry. Gabimi im. Shembujt nuk korespondon. Audienca: Dhe pastaj dot. ANDI Peng: Yup. Të jenë të kujdesshëm kur ju djema are-- këtu, më lejoni të zoom. Atje shkojmë. Të jenë të kujdesshëm kur ju djema janë të shtypur, sidomos kur ju jeni duke bërë vetëm një char. Është e vërtetë e lehtë për të aksidentalisht vetëm të bëjë kuotat e dyfishtë e jo vetëm. Kjo nuk do të funksionojë. Përpiluesi juaj do të ankohen. Dhe funksioni juaj është thjesht nuk do të kandidojë. Dhe kështu që të jenë të kujdesshëm kur të ju jeni duke bërë gjëra me gërma që është e citate të vetme. Dhe kështu e bën këtë linjë të Kodi kuptim për të gjithë? Ne jemi duke krijuar një tregues char *. Sepse kthimet strrchr diçka e tipit pointer. Dhe kështu që ne jemi duke shkuar për të thirrur strchr mbi s, që është string, file emrin, se ne jemi duke kaluar në. Dhe ne jemi duke kërkuar për të fundit rast i një periudhe të, i cili është vetëm të japin kuotën e vetme dot kuotë të vetme. Po. Audienca: Kur e bëjmë ne përdorim kuotat e dyfishtë dhe kur nuk kemi përdorim kuotat e vetme? ANDI Peng: Po. Kuotat Pra dyfishtë janë gjithmonë përdoret kur ju kanë një varg prej më shumë se vetëm një. Pra, nëse ju jeni duke bërë strstr, e cila është një që të kërko një varg për varg, ju do ta kalojë atë në thonjëza dyshe. Por çdo herë është vetëm një karakter të vetëm, ju doni të bëni citate të vetme. Kjo është një gjë e mirë për të mbajtur në mendje. Pra, tani që ne kemi tonë akrep, çfarë bëjmë ne me të? Unë jam duke kërkuar për të ju djema shtypjen atë, e drejtë? Pra, [e padëgjueshme], ju doni të jepni linjë e kodit? Audienca: printf-- ANDI Peng: Po. Audienca: --you nevojë për një mbajtës vend. ANDI Peng: Yup. Audienca: Print mbajtës vend. Unë nuk e di se çfarë vendi mbajtës është vetëm pikë ndaj saj. NE RREGULL. Le të kaloni se tani për tani pas. Audienca: Dhe pastaj comma-- ANDI Peng: Pointer, e drejtë? Audienca: Pointer, Yup. ANDI Peng: Pra, lloj i një pyetje mashtrim, ka të bëjë me pointers dhe vargjet se ne kemi biseduar lloj lidhje tashmë. Çfarë lloj i mbajtësit vend bëjmë ne nevojë për një tregues për një char *? Audienca: [padëgjueshme]. ANDI Peng: Po. Është më e lehtë se sa ju djema mendoni se është. Audienca: String? ANDI Peng: Kjo është vetëm një varg, saktësisht. Sepse kujtohet strings të vërtetë nuk ekzistojnë. Një char * është i saktë njëjta gjë si një varg. Dhe kështu që me të vërtetë kjo është ajo që s duhet të ketë qenë përdorur të gjithë së bashku. NE RREGULL. Le të shohim nëse ne mund të provoni drejtimin e kësaj. Le të bëjmë një zgjatje make. Ftohtë. Ju djema shikoni se si kam kaluar në psset7.zip dhe finalpaper.docx, dhe vetëm ajo kopje nga zip dhe docx? Ka kuptim? Ok kështu që unë mendoj në sy tuaj funksion në pset tuaj ju jeni do të jetë i pyetur nëse string ka një fund të caktuar, ju duhet të jepni një kod të caktuar gabimi. Dhe kështu kjo do të jetë goxha e tmerrshme. Sepse në qoftë se ju mund të kuptoj se çfarë extension është, atëherë ju mund të krahasoni se extension për të parë nëse ajo përputhet deri me një shtrirje të caktuar. Dhe pastaj ju mund të kthehen një mesazh gabimi, e drejtë? Po. Audienca: Pra, ne nuk e bëjmë duhet të shtoni 1 apo ndonjë gjë? Tregues do të shkojë në the-- ANDI Peng: Jo. Audienca: --point pas saj. ANDI Peng: Po. Ajo tregon pikërisht për ku dukuri ishte. Kështu për shembull këtu, ne jemi kërkim për periudhën. Kështu ajo do të kthehet një tregues për periudhën. Dhe atëherë ajo do të shtypura jashtë duke filluar në periudhën. Pra, ju nuk keni nevojë të shtoni 1. Edhe pse, kjo është krejtësisht në rregull për të, në qoftë se ju jeni ndonjëherë të pasigurt, për të vetëm lloji i provuar se veten. Të ndërtuar një program mostër. Test it out veten dhe shohim se ku është e shtypje. Kjo nuk është edhe një rrugë e keqe për të bërë atë. Ftohtë. Dhe kjo është shumë e shumë të gjithë Unë kisha për ju djema sot. Ne e bëmë një shumë gjëra pset sot. Pra, kur në dyshim, si Unë i thashë, gjithmonë të kërkoni biblioteka string për këtë pset. Nuk do të jetë një shumë e funksion në atje që mund të jenë të dobishme. Disa mund të mos jenë të dobishme. Unë vërtetë nuk e di. Wade nëpërmjet saj, nuk ka një bandë e tërë e tyre. strstr, strchr, strrchr janë super, super e dobishme, si edhe të strcpys dhe strcasecmps se ne kemi përdorur tashmë. Është vetëm shumë të messing rreth me vargjet, përcaktimin nëse ata janë të barabartë, duke marrë sende nga vargjet, dhe qenë në gjendje për të hapur dosjet saktë. Kjo është një shumë e skedar I / O. pset nuk është me të vërtetë aq keq. Ju jeni duke shkuar për të marrë një shikoni në atë, ta shkarkuar atë, dhe të shohin një bandë e tërë e kodit. Nuk shqetësohet, kodin ju në fakt shkruaj nuk është e keqe në të gjitha. Nëse dikush ka probleme me tyre server, vijnë të më shihni më pas seksion. Kërkoj falje edhe një herë për të mos duke sjellë karamele për Halloween. Unë nuk e di se çfarë ishte e gabuar me mua. Por ne do të kemi të dyfishtë karamele herën tjetër. Dhe fat të mirë në pset tuaj këtë javë. Yup.