ANDI Peng: Mes esame beveik per visus psets. Tiesą sakant, mes per dauguma iš sunkiausių psets. Taigi mes iš tikrųjų tik ketina rūšies vėjas per ateinančius porą savaičių. Mes ketiname pradėti kalbėti apie mūsų galutiniai projektai, renginiai artėja per ateinančius keletą savaičių. Ir gyvenimas bus vėjas. Taigi ne per daug šiandien. Tikimės, kad bus iš tikrųjų vėjas per šios dienos darbotvarkę, ir tada iš čia su tam tikru laiko atsarginėms. Be to, aš noriu atsiprašyti dėl saldainių trūksta šiandien. Aš nežinau, kodėl. Bet per savaitę veda Helovinas, aš norėčiau pamiršti saldainiai. Taigi, aš iš tikrųjų tik didžioji nusivylimas jumis dabar. Nes aš tiesiog prisiminti saldainiai už kiekvieną klasę, tačiau Helovinas. Bet kitą savaitę, atvesiu dvigubai saldainiai sumą atsigriebti už tai, visa tai už jus. Tai bus puikus. Taigi turiu pora pranešimų dėl tam tikrų planavimas. Turiu keletą planavimo klausimus. Tada mes ketiname pereiti į kalbėti apie tai, kas vadinama CHMOD. Mes ketiname kalbėti apie greitai TCP / IP HTTP. Ir tada mes ketiname kodą Mūsų savo interneto svetainę naudojant HTML ir CSS. Ir tada aš iš tikrųjų palikti gal kaip 20 minučių kalbėti apie pset6. Kadangi pset6 iš tiesų yra daug dalykų, kad mes jau matėme anksčiau, bet aš norėjau atnaujinti kai kurie iš šių sąvokų taip pat išmokyti pora naujų funkcijų. Saunus. Taigi, visų pirma, Sveiki sugrįžę iš pertraukos. Aš tikiuosi, kad jūs esate pertraukos buvo malonus. Ar jūs padaryti pertrauką? Auditorija: Nuėjo į Niujorką. ANDI Peng: Jūs patekote į Niujorką? Manau pusę mūsų mokyklą išvyko į Niujorką. Viskas gerai. Aš praleido didžiąją dalį savo pertraukos Sėdimas lovoje Netflixing. Ir tai buvo geras laikas. Bet dabar mes esame atgal, atgal sesija, atgal į dalykų sūpynės. Mes turime pset tinkamai šį penktadienį vidurdienį. Manau, kad jūs jau ve pakėlė savo viktoriną, Yeah? Taigi visiems kitiems, kurie turi neturėjo savo viktorinos, Prašome ateiti ir gauti savo viktorinos nuo manęs ties skyriaus pabaigoje. Arba sekti mane miesteliu. Aš turiu ją su manimi kažkur. Mūsų galutinis projektas anksto pasiūlymą taip pat. Taigi tiems iš mūsų, kurie niekada ėmėsi Į šią klasę anksčiau, CS50 Capstone yra labai daug pasiekė kulminaciją tai Grand projektas, kad studentai pasiūlyti. Ir iš anksto pasiūlymas tik bendra idėja ką vienas gali norėti daryti jų Projektas, kad idėja yra dėl Pirmadienis, kitą pirmadienį vidurdienį. Taigi gana daug, Davidas Manau bus daugiau kalbėti apie tai paskaitą jei jis dar nėra. Ir ten kietas puslapis mūsų svetainėje, paaiškinanti visi projekto reikalavimus. Bet iš esmės, pasiimti bet kokią temą, kad jūs domėjausi visą savo laiką čia ne CS, ar tai būtų žaidimų arba projektavimo ar vaizdo arba nieko. Ir jūs galite tikrai natūra dabar taikyti kai kurias pamokas kad mes sužinojome čia CS50-- Sveiki, welcome-- į gana daug atlikti galutinis projektas savo pasirinkimą. Visa tai yra dėl pirmadienis tik trumpas Blurb elektroniniu paštu man greitai sakinys, kaip, ei, Ieva, Aš tikrai domina projektavimas žaidimas, kuris daro tai už iOS. Saunus. Tiesiog leiskite man savo trumpą pradinį idėjos jūsų galutinių projektų. Ir mes kalbame per ar ne kad iš tikrųjų yra gera idėja, ar ne, jei tai įmanoma idėja, ar ne. Bet tik iš anksto pasiūlymas yra dėl kitą pirmadienį. pset6, mūsų miela web--, kad yra negerai. Pset7? pset6? Tai pset6, tiesa? pset6, mūsų serverio, yra dėl Penktadienį vidurdienį su vėlyvojo dieną. Darbo valandos vėl normaliai nuo pirmadienio iki ketvirtadienio 8:00 iki 11:00 Šią savaitę. Manau Commons už ateinantys tris naktis. Saunus. Prieš mes turėjome į medžiagą, ar kas turite klausimų, anekdotai, istorijas? Ką daryti rudenį pertraukos? Auditorija: Ką man daryti? ANDI Peng: Jau tai amžių prieš iš tikrųjų. Christabel išvyko į Niujorką. Aš pasilikau čia ir Netflixed. Auditorija: O, taip buvau čia. ANDI Peng: O, gerai. Auditorija: nepamenu ką konkrečiai. ANDI Peng: Tai gerai. Auditorija: Netflixing tikriausiai. ANDI Peng: Netflixing. Taip, tai geras laikas. GERAI. Gerai. Bet prieš klausimai mes peršokti į medžiagą? Be to, mes ketiname pabandyti greitį šiandien skyriuje, ne per daug padengti. Ir tikiuosi, mes susisieksime čia šiek tiek per anksti. Atsiprašome už ne saldainiai, taip pat. Aš nusivylimas, ypač per Helovinas. Gerai. Saunus. Taigi mes ketiname pradėti kalbėti apie komandinės eilutės argumentas vadinamas chmod. chmod, visa tai yra tik Unix sistemos skambinti atliekami iš komandinės eilutės pakeisti failo teises. Taigi, pavyzdžiui, mes visi susidūrė puslapį kaip tai tikriausiai kažkada Mūsų gyvenimo trukmė yra interneto vartotojas, kur mūsų interneto serveris davė mums Uždraustasis klaidą. Jūs neturite leidimo prieiti, yadda, yadda, yadda, šiame serveryje. Visa tai iš tikrųjų reiškia yra tai, kad leidimai kurie buvo pritvirtinti prie bet kokio Puslapis, į kurį patekti nebuvo atvertos jums. Taigi gana daug, chmod yra kokiu būdu mes galime pakeisti tuos leidimus sistemos suteikti visiems, vartotojas, grupė, ar pasaulio, arba bet koks derinys iš tų naudotis tam tikrų failų, Katalogai, nieko tikrai, bet sistemos Rūšiuoti pagal operacinė sistema. Taigi, jei kuri nors vaikinai Kompiuteriai, jei manote, kaip po kartu su manimi šiandien, visiškai nedvejodami tiesiog įveskite dalykus vietą. Jei ne, galite tiesiog hang out. Taigi, aš ruošiuosi iš tikrųjų traukti iki mano terminalo dabar. Taigi komanda paleisti chmod, arba bent jau tik į sąrašą leidimų, jūsų failų katalogas, yra tik LS-L. Kaip matote, krūva Daiktai iššoka iš kurių dauguma Svarbu mumis kairėje pusėje čia. Vaikinai pamatyti RS, WS 1 / krūva. Taip. Tie, kurie iš esmės tik visi failų leidimus paaiškinti, kas tam tikrų katalogų ir failus per savo sistemą turi. Taigi grįžkime prie maitinimo taškas čia. Taigi, be failų pavadinimus kaip jus vaikinai galite pamatyti dešinėje, mes ieškome pamatyti esmės tik kairėje skiltyje. Taigi, be to, tik failų vardai, mes galite pamatyti failų leidimus, jų savininkas, grupės pavadinimas, data kad failas paskutinį kartą buvo modifikuoti, ir taip toliau. Jūs galite pamatyti keletą dalykų, naudojant chmod daug. Taigi taip, kad mes skaitome chmod yra tai, kad pirmoji raidė mes gana daug ignoruoti kalbant apie skaitymo teises. Pirmoji raidė tiesiog pasakoja mums, ką tipo sistemos mes gauti. d, šiuo atveju, yra aplanko ar katalogo. Taigi mes žinome, kad šiuo metu mano darbo sritis septintajame skirsnyje buvo katalogas. Ir tada jūs pamatysite tris trigarsių, iš esmės tik trys trijų simbolių. Ir jūs galite galvoti kiekvienas kaip šiek tiek. Taigi jums tereikia tris rinkinius trys bitai, devyni bitai iš viso. Jūs gydyti juos į grupes po tris. Taigi, pirmoji grupė trijų yra visada jūsų naudotojo teises. Jūsų Antroji grupė iš trijų yra visada jūsų grupė leidimus. Ir jūsų Trečioji iš trijų visada yra kaip pasaulyje, kad visur leidimus. Taigi, manau, lengvai klausimas yra, kas yra tarp vartotojo ir grupės skirtumas. Pagrindinis skirtumas tarp vartotojo ir grupės yra tai, kad vartotojas yra tik jums asmeniškai susipažinimo kokia ji yra dabar. Grupė gali būti, jei turite kelis vartotojai viename kompiuteryje, pavyzdžiui,. Visi iš jų gali būti laikomas grupe. Ir tada pasaulis tiesiog pasaulis, visi. Taigi matome vėliau kaip mes galime keisti tie į skirtingas teises. Taigi gana daug, mes ketina dar dėmesio ant kairėje, kur dalis direktorijos CS50 matome drwx, kur R reiškia tiesiog tai skaitoma. W reiškia tiesiog tai rašyti. Ir tada tiesiog x tai reiškia, kad vykdomąjį. Jūs manote, kad tai rūšies nuo neturi prasmės. Ji turėtų būti E. Bet iš tikrųjų x rūšies veikia šiek tiek geriau, nes jūs galite prisiminti ją geriau. Taigi trys tipai dalykų, kuriuos gali padaryti, galite skaityti failą, Jūs galite turėti leidimą parašyti failą arba galite turėti leidimą vykdyti failą. Ir taip taip, kad mes iš tikrųjų atstovauti tiems, bitais yra skaičiai 4, 2 ir 1. Taigi nieko tai skaitoma yra atstovaujama 4 numeriu. Viskas, kas yra įrašomas atstovauja 2. Ir nieko, kad vykdomąjį kaip pavaizduota 1. Taigi šia prasme, mes taip pat gali atstovauti šiuos numbers-- Sveiki, sveikiname, kitokiu būdu. Atsiprašau. Prieš visiems, aš ruošiuosi atsiprašau vardu visiems patekti į klasę dabar. Aš pamiršau saldainiai šiandien. Aš atsiprašau Aš nesėkmė Šis Helovinas savaitę. Atvesiu dvigubai sumą saldainiai kitą kartą padaryti už jį. Bet anyways, atsiprašau Apie tai vaikinai, atsiprašau. Taigi taip, kad mes iš tikrųjų galite įvesti mūsų komanda argumentas yra tai, mes gali padaryti chmod grupė velniop teises, kur grupė yra tik whatever Grupė mes bandome pakeisti. Ir leidimai ką nori įtraukti į jį. Taigi, pavyzdžiui, plius prideda teises, ir atimties atima teises. Ir grupės tipai mes turime A visiems, u vartotojų, g, grupių, arba o kitiems. Tai šiek tiek abstraktus dabar. Bet mes eiti per keletą pavyzdžių tiesiog parodyti šį nekilnojamąjį greitai. Kiekvienas geras apie tai Pristatymas, kad galėčiau judėti? Saunus. Taigi, pavyzdžiui, rwx. Prieš mes kalbame apie tai, ką ji atstovauja, Pirmiausia ką rwx reiškia? Jei matote, kad tai tikra failas turi leidimus rwx, Ką tai reiškia asmuo gali būti suteikta galimybė tai padaryti? Auditorija: Skaityti, rašyti ir vykdyti. ANDI Peng: Taip, tiksliai. Galite skaityti rašyti ir vykdyti. Nes visi šie trys simbolių yra. Taigi, jei mes einame į priekį ir aptarimas Apie tai kalbant apie bitus, rwx taip pat gali būti atstovaujama kaip 700. Kadangi, kaip jūs galite pamatyti, bet Rūšiuoti failų katalogas leidimo, ten trys trigarsių. Šiuo atveju, tik pirmasis triada yra nieko ten. Taigi, šiuo atveju, r yra 4, w yra 2, ir x yra 1. Jei norite pridėti tiems, kartu, tai 7. Ir todėl, jei jums konvertuoti tai dviejų komponentų, tai 700. Kadangi 7 yra pirmasis Trijskanis. 0, nieko dabar antroje triadoje. Ir ten nieko esančių trečioji triada, kad kita 0. Taigi, ta pačia prasme, iš triads krūva gali būti atstovaujama tik bitai, tiesiog į dvejetainius taip pat. Taigi 700 reiškia tą patį, ką ir rwx ------ kalbant apie leidimų. Kiekvienas aišku, kad? Saunus. Ir taip CHMOD 111 duos kurios teises į failą? Padovanoti jus vaikinai pora sekundžių tai konvertuoti. Atminkite, kad pirmas triada yra vartotojui. Antrasis Trijskanis yra grupę. Ir trečia triada yra visiems. Ir taip CHMOD 111 duos, kuri tipo leidimus ir kam? Skirkite keletą sekundžių apie tai galvoti ir grįžti. Taip. Auditorija: Taigi kiekvienas gali jį vykdyti. ANDI Peng: Yup, tiksliai. Auditorija: Bet niekas negali skaityti arba rašyti. ANDI Peng: Ir nedvejodami paaiškinti visiems kaip atėjote į šią išvadą. Auditorija: Na, vartotojui, grupė, ir pasaulis, tai visi 1, kuri yra už vykdomąjį kodą. ANDI Peng: Taip, tiksliai. Taigi, 1, šiuo atveju, visi žinome yra kad yra vykdomąjį kodą. Kadangi skaitymas yra 4. Rašymas yra 2. Ir vykdomąjį yra 1. Taigi yra visos trys trigarsių yra 1, tai tai reiškia, kad į pasaulyje, naudotojui, ir grupės, jie visi vykdomąjį. Kiekvienas geras su tuo? GERAI. Ir taip Antrasis būdas , kad mes galime iš tikrųjų rašyti tai taip pat galite gali tiesiog padaryti chmod pliusas x. priemonė visų ar visiems. Plius reiškia duoti leidimus. Ir tada x reiškia vykdomąjį. Taigi ten dvi komandas iš tikrųjų yra identiški. Taigi, jei norite paleisti Tai jūsų terminale, jūs chmod 111, pavadinimą Jūsų katalogo ar jūsų failas. Arba jūs galite padaryti chmod pliuso x, Pavadinimas savo kataloge failą. Tas pats, tik lengvesnis būdas, galbūt, kai atstovauti ar pakeisti failų leidimus. Kiekvienas Gerai su chmod kol mes pereiti? Saunus. Taigi dabar mes ketiname galva į "A Keletas skaidrės labai abstraktaus kad aš gana daug ketina vėjas per. Ir tai visiškai gerai, jei jūs nesuprantu viską. Net ir dabar, aš vis dar nelabai viską supranta visiškai. Bet tai daugiau gauti aukščiausio lygio supratimas kaip kai kurie iš šių daiktų dirbti. Taigi mes ketiname kalbėti greitai apie TCP / IP, kuris yra tik Perdavimo valdymo Protokolas velniop interneto protokolas. Prisiminkite, iš paskaitos Davidas, ar jis išmokys jus pavyzdys, kur jis nori perduoti kad voke pastabos iki patinka paskaitų salėje iš viršaus? Taigi, teisės mokyklos auditorijoje Davidas parodė iš esmės kaip TCP / IP darbai ta prasme, kad visi ją yra yra užtikrinti, kad duomenys priemonės buvo pristatyta visoje serveryje arba internete. Taigi, pagal voko Pavyzdžiui ir pranešimas, pabaigoje vartotojas gali pamatyti, kad, oi, man reikia gauna keturis paketus informacijos. Bet aš iš tikrųjų gavo tik tris. Tai reiškia, kad aš turiu būti trūksta vieno. Ir vienas nebuvo pristatytas. Ir taip TCP / IP internete, per kompiuterio ir serverio, daro tą patį dalyką. Visa tai daro, yra Nurodant sistema, kuria prarastas duomenys paketai gali būti piktintis ir gavo. Kaip internete, kai bandote pasiekti failus internete ir siųsti failus savo draugui ar pažvelgti internete naršyklėse tūkstančiai ir tūkstančiai milijardų milijardus ir baitų informacijos pervedamos vienam milisekundės. Ir tai tikrai, tikrai paini. Ir tai tikrai sunku iš tikrųjų žino, kas buvo išsiųstas ir ko nebuvo išsiųstas. Ir taip TCP / IP nurodo tik darni sistema kuriame jūsų interneto naršyklė ir jūsų serveris gali rūšies bendrauti viena su kita, tiesiog įsitikinkite, kad paketai yra visi čia ir nieko Lost ir visi duomenys, kuriuos prašoma iš tikrųjų rodyti tinkamai. Kiekvienas Gerai tik, kad labai Trumpa aukšto lygio suprasti? Saunus. Taigi mes ketiname pereiti į kalbame apie HTTP, kuris yra tik Hiperteksto perdavimo protokolas. HTTP, visa tai yra tai, ką bet puslapis arba failas atvertas į savo svetainę, serveris grąžina HTTP statusas kodas atsakant į prašymą užtikrinti, kad arba, oi, šis prašymas išgyveno. Ir viskas rodyti tinkamai. Arba, oi, ne, 404. Kažkas negerai. Ech, man negali rodyti. Visa tai yra tai, kad bet kokia Jūs bandote prieiti, naudoti kaip vartotojas bando prisijungti, ant internet-- tik todėl, kad kad jūs arba turi sėkmingai atvertas kokia ji buvo ar ne sėkmingai atvertas kokia ji buvo. Ir taip HTTP statusas kodas tiesiog suteikia jums iš galėtų žinoti, ar priemonė ar ne jis buvo sėkmingas, ar ne. Taigi, pavyzdžiui, pavyzdys prašymas. Jūs galite pamatyti čia tai paprastai paprastai keturių eilučių. Mes turime GET HTTP 1.1, kuri yra tik prašymas metodas URL protokolas versija, lauko pavadinimas, ir lauko reikšmę. Todėl nereikia, kad visiškai įsiminti nieko čia. Tiesiog rūšies susipažinti Būk su tuo, kaip jie atrodo. Šiame pavyzdyje, prašymas metodas URL yra tik kokia prašymas jūs siunčiate serverį. Kaip, ei, serveris, aš tikrai noriu prieiga yadda, yadda, yadda HTTP puslapis. Protokolas versija yra tik whatever versija jūsų serveris ar jūsų serveris naudoja prieigą prie informacijos. Lauko pavadinimas yra svetainė arba URL, kurį bandote pasiekti, Šiuo atveju, www.apple.com. Ir lauke vertė yra tiesiog paprastai pavadinimą, vertę. Ir ji gali būti bet kuris iš derinio rūšiuoti iš raidžių arba skaičių ar whatever. Taigi tipiškas prašymas, todėl ką jūsų kompiuteris iš tikrųjų siunčia į serverį, kuris sako, ei, jūs žinote, ką aš turiu tai rodomas, tai toks rūšies užklausą kad jie iš tikrųjų gauna. Pavyzdys atsakas ką serveris būtų išsiųsti jums būtų beveik tas pats dalykas, išskyrus atvejį, kai būsenos kodas viršuje. Taigi, 200, 2 0 0 visada yra būsenos kodas OK. Kaip, Gerai, šis prašymas išgyveno. Jūs galėjome pasiekti viskas teisingai. Gyvenimas yra geras. Gyvenimas yra gerai. Viskas yra visiškai gera. Ir taip tai tik pasakoja savo naršyklę ir Jūsų serveris, ei, viskas gerai. Aš turiu visą informaciją man reikia. Saunus. Bet problema yra kartais problemų sugalvoti kai have-- trukti Manau Aš kalbėjau apie dublikatų. Jūs turite mažiau gerų atsiliepimų. Taigi, pavyzdžiui, 404 yra puslapis nerastas. Jūs kartais turi draudžiama naudotis. Jūs turite įvairių kitų būsena kodai, kad aš kad jūs visi matė, kai esate bando daryti tyrimus internete. Ir jūsų naršyklė suteikia jums The, ne, negali prieiti. Ir jūs, kaip gerai, šūdas. Taigi tik gana daug, ten keletas gana dažni būsena kodai. Gal susipažintumėte su kuria tie jie yra. Juokingas vienas, kad Manau, kad kada nors girdėjote of-- jei atsitiktų ieškoti juos visus internete, dėl tam tikrų priežasčių nėra iš tikrųjų reali padėtis kodas vadinamas 418 Aš arbatinukas. Aš googled kur kilmė tai buvo iš. Ir, matyt, vienas Melagių diena " Dienos pora dešimtmečių senumo, nors maniau, kad būtų linksmas sukurti naują būsenos kodą, vadinamą 418 Aš arbatinukas. Teisėtai, kad šis pavadinimas kodas vadinama aš arbatinukas. Aš pamirštu kokį puslapį, turite eiti iš tikrųjų padaryti šį ekraną. Bet, matyt, jūs iš tikrųjų galite gauti būsenos kodas Aš virdulys kažkaip per daro kažką. Taigi ten šimtai ir šimtai būsenos kodų. Kai kurie iš jų padaryti daugiau jausmas, nei kiti. Tačiau gana daug tik susipažinti Būk su labiausiai paplitusios. Prašoma subjektas kūnas trumpas ir Apkūnus, matyt. Taigi kartais yra daugiau bauginantis klaidų nei aš arbatinukas. Bet tai yra vienas, kad aš manau, Jūs rūšies tikiuosi, kad pasiektų. Bet aš nemanau, kad jūs. Kiekvienas gerai tik būseną kodai, prašymai, procesai, todėl įsitikinkite informacija yra pateikta tinkamai? Taigi dabar mes ketiname perėjimo į ir įdomus dalis skyriuje Šiandien kur mes kalbėti šiek tiek apie HTML. HTML, visa tai yra hiperteksto Markup Language. Tai tiesiog standartinis kalba Ar naudojatės sukurti visą tinklą puslapiai internete. Taigi nors interneto puslapis, kas jūsų mėgstamiausia interneto puslapis? Koks jūsų mėgstamiausias interneto puslapis? Auditorija: [nesigirdi]. ANDI Peng: Atsiprašome? Auditorija: Tumblr. ANDI Peng: Tumblr. Taigi Tumblr yra parašyta HTML. Ir todėl mes iš tikrųjų eiti per ir žaisti aplink su kai kuriais iš šių dalykų vėliau. Beveik viską, ką reikia mokytis, pažinti, rašyti HTML jūs tikriausiai galite tiesiog "Google" internete. HTML, tai ne kaip C programa kur Jūs galite kurti kintamuosius ir daryti cool viskas su juo. Tai daugiau tik, oi, tai kaip aš nori dalykų, kuriuos ant mano svetainėje. Ir aš tik ketina įdėti jį į. Ir tai vyksta stiliaus ją. Taigi HTML, tam tikra prasme, tai kaip formatavimo ar šablono kalba. Tai daug lengviau. Tai daug lengviau mokytis, daug lengviau rašyti nei jūsų tipiškų programavimo kalba, labai lengva, labai patogus.Jie prieinama ir draugiškas. Taigi mes iš tikrųjų ketiname žaisti aplink, rašyti mūsų pačių puslapių šiandien. Bet prieš pradedant darbą, aš tik noriu eiti per keletą trumpų geriausią praktiką. Kadangi HTML yra toks lengvas Kalba ir nes net jei jūs pora dalykų negerai, kartais gali nepastebėti, mes norime įsitikinti, kad mes iš tikrųjų, jeigu laikysitės mūsų gerąja patirtimi įsitikinti, kad viskas, kad gali būti vyksta aplink, bet ne visada vyksta ne eiti tiesiai įsitikinkite, kad jie kuo mažiau. Taigi gana daug, įsitikinkite, Jūsų uždaryti visas savo žodžius kai rašote HTML. Jei atidarant " kūnas, įsitikinkite, kad esate uždarymo jį su kūno kažkur. Jūs norite įsitikinti, kad jūsų interneto puslapis patvirtina naudojant kas vadinama W3 Vertintojas. Jūs galite tiesiog "Google", kad internete, ir ten yra nuoroda į jį. Ir tada jūs norite atskiras HTML, kuris Jūsų žymėjimo kalba iš savo stilių, kuris yra CSS kalba, kad Dovydas parodė, kad mes taip pat žaisti šiek tiek su paskaita. Saunus. Taigi bet kuriuo metu norite paleisti HTML ant CS50 prietaiso, mes ketiname paleisti programa, vadinama Apache, kurie visi yra tiesiog pastatytas Web serveris, kad kiekvienas CS50 turi prieigą prie. Mes jį vadiname apache50 tik todėl, kad mes norėčiau vadinti viską 50, CS50. Taigi taip, kad jums pradėti CS50 internete serveris yra įvesdami savo komandą linija apache50 pradėti tašką. Ir jei jūs norite jį baigti bet kuriuo laikas, jūs apache50 baigiasi ne taškas. Ir jūs tiesiog paspauskite Enter. Ir tai turėtų būti klasifikuojami čia netrukus. Taip. Taigi, aš tik ketina greitai pereiti per AN tikrai trumpas tinklalapio pavyzdys. Ir mes ketiname išleisti kaip 10, 15 minučių žaisti aplink raštu mūsų pačių tinklalapius. GERAI. Taigi čia IDE-- gali kiekvienas pamatysite, kad? Ne visai. Čia, aš priartinti. Aš ką tik gavo šią trumpą formą čia nieko iš tikrųjų jį. Užtenka tik vyksta greitai rašyti HTML programą, kurioje mes tiesiog pasakyti labas pasaulyje. Taigi tas pats kaip C, o dabar mes tik ketina tai padaryti HTML. Ar kas nors nori iš tikrųjų tik pabandykite duoti man pirmas dalykas, kurį turės įdėti į HTML dokumentą? Taip. Auditorija: Į skliausteliuose [nesigirdi]. ANDI Peng: Yep. Taigi kažkas, kad labai unikalus HTML, kad mes paprastai tradiciškai nereikia susidurti kitose komandą linija lygio programavimo kalbos tai, kad mes iš tikrųjų nurodyti failo tipą kad tai bus ne mūsų kodu viršuje. Taigi šiuo instance-- Manau tai teisingas komandą, tiesa? Taip. Viršuje, jūs tiesiog norite įtraukti Bang DOCTYPE HTML skliausteliuose tik pasakyti savo kompiuterį, ei, atkreipti dėmesį. Ir HTML dokumentas ateina. Ir tada, kaip mes norime pradėti nuo mūsų failą? Jei mes tiesiog noriu pasakyti labas, turiu interneto puslapis, kuris sako labas pasaulyje Kaip mes einame apie pastato tai? Tiesą sakant, tegul kreipiasi į "Google". Ir mes iš tikrųjų galite tai padaryti. Taip. Čia mes eiti. Taigi HTML. Kaip matote, mano naršyklė yra iš tikrųjų automatiškai stiliaus tai man. Tas pats kaip C, kai jums sukurti atvirą garbanotas petnešomis, Jūsų naršyklė automatiškai priduria, glaudžiai garbanotais petnešomis. Laimei, mūsų IDE mėgsta tai padaryti už mus taip pat. Taigi, dabar mes galime rūšies tipas iš žymos pradžia, ir tai vyksta visada pasakykite mums prisiminti įrašykite žyma pabaigą. Manau, kad tai turi būti kapitalizuojamos. Ir tada mes norime pridėti, visada, galvos, kurioje yra pavadinimas. Mes tik norime gal skambinti tai labas, ir tada organizmas. Ir ten jūs einate. Tai iš tikrųjų yra mūsų HTML dokumentas. Taigi taip, kad bet koks dokumentas HTML visada stiliaus in-- tą patį su int main tuštumos. Jūs visada norite turėti HTML atvirą ir glaudų žymą viršuje ir apačioje savo kodą. Jūs norite turėti viduje galvą kurioje yra pavadinimas, tiesiog kokia ketina parodyti savo interneto skirtuką puslapis, ir tada, kurio viduje kūno bus iš tikrųjų rodyti turinį apie ką jūs norite daryti. Taigi, jei norite, kad iš tikrųjų paleisti tai, aš ruošiuosi padidinti atgal. Jūs iš tikrųjų galite pradėti apache50 pradėti tašką. Saunus. Ir taip, jūs galite pamatyti, o dabar ši nuoroda jau popped up. Ji sako jūsų svetainė yra dabar galima tam tikru žemiau esančią nuorodą. Taigi, visi mūsų IDE turi done-- ne IDE, sorry-- taip, Mūsų IDE nuveikė yra sukurti interneto nurodo, nuo kurių visi mūsų interneto puslapiuose gali būti atvertas serveryje. Taigi leiskite pažvelgti čia. Leiskite paspausti ant to, eiti į hello.html. Ir jūs matote labai paprasta interneto puslapis hello world. GERAI. Mes iš tikrųjų ketiname tiesiog turi everyone-- Taip, kas atsitiko? AUDITORIJA: Turiu pagrindinį klausimą. ANDI Peng: Yup. Auditorija: Kaip jums sutaupyti Jūsų failas kaip HTML? ANDI Peng: Taip. Taigi, jei aš buvo sukurti naują failą, jei aš naujas failas, Untittle, jei aš, section.html, strėlės, tai viskas, ką turiu daryti. Auditorija: [nesigirdi]? ANDI Peng: Ne Auditorija: [nesigirdi]. ANDI Peng: Ne Auditorija: [nesigirdi]. ANDI Peng: Taip. Gana daug, dėl pratęsimo failas, kuris yra viduje jūsų IDE, kad pasakoja kompiuterį, kad pasakoja naršyklė, ei, atkreipti dėmesį. Tai bus kodas parašyta šia kalba. Taigi, pavyzdžiui, Microsoft Žodis, ką visi Word "dokumentus baigtis, kokie pratęsimo? .doc ar .docx, tiesa? Visa tai daro, yra nenurodo operacinę sistemą, ei, jūs turite Word dokumentą artėja. Atidarykite jį su Word. Tas pats su PDF. Ji žino, oi, man reikia atverti šį failą Adobe Reader "arba" Adobe Acrobat. Ir taip plėtiniai eksploatuoti taip pat, kaip jūsų kompiuteryje. Jei nurodysite savo puslapio kodą būti pavadintas HTML, tai žino, Oh, jūs turite HTML kodą. Aš ruošiuosi laikyti jį kaip HTML kodą. Taigi tai super protingas šia prasme. Taigi kiekvienas, galime imtis, pavyzdžiui, 10 minučių ir tiesiog kurti savo interneto svetaines. Pridėkime gražioje dalykų. Jauskitės laisvai sakyti, ką nori. Aš tik noriu įsitikinti, kad kiekvieno žmogaus serveriai veikia tinkamai kol mes nemokamai jums į pset. Nes jei savo serveriuose nereikia paleisti už pset, kad bus tikrai, tikrai neblogai. Aš tik ketina plaukti aplink ir pamatyti, ką kiekvienas manimi dirba. Kaip einasi? Auditorija: Aš tiesiog pasuko į savo kompiuterį. ANDI Peng: Tai gerai. Auditorija: [nesigirdi]. ANDI Peng: Tiesiog jūsų IDE. Taip. Auditorija: [nesigirdi]. ANDI Peng: Tai gerai. Auditorija: [nesigirdi]. ANDI Peng: Visiškai puikiai. Ar kiekvienas susipažinimo jų žiniatinklio serveris gerai? Ar apache50 veikia gerai? Manau, kai kiti skyriai, mes turėjo problemų su žmonėmis ne kad galėtų prisijungti prie serverio. Taip. Taigi jūs tiesiog paleisti apache50 erdvė pradėti kosmoso laikotarpį. Auditorija: [nesigirdi]. ANDI Peng: Yup. Geras? Auditorija: [nesigirdi]. ANDI Peng: O, gerai. Taigi jums turėtų turėti erdvę. Taigi apache50-- Auditorija: aš padariau. ANDI Peng: --start vietos. AUDITORIJA: O, erdvė taškas. ANDI Peng: Yup, erdvė taškas. Na štai. Taigi, jei turite HTML puslapis, sukurta, tada galite tiesiog eiti tiesiai į nuorodą, kad ji nurodoma. Ir jums turėtų būti suteikta galimybė prieiti prie jo. Kiekvienas galėjo prieiti prie jų tinklalapius gerai? Auditorija: [nesigirdi]. ANDI Peng: O, kad viskas OK. Auditorija: [nesigirdi]. ANDI Peng: Taip. Manau, kad jūs iš tikrųjų galite atidaryti jis per savo naršyklė, naršyklės ir ne tik jūsų IDE naršyklėje. Taip, manau, kad jei jūs nukopijuokite ir įklijuokite jį. Auditorija: Ir tada kaip mes jį išjungti? [Nesigirdi] ANDI Peng: Taip, jūs apache50 sustabdyti be laikotarpį. Taip. Auditorija: [nesigirdi]. ANDI Peng: Su jokiu laikotarpiu. Taip. Čia mes eiti. Taip. Mes sukurti mūsų pačių tinklalapius. AUDITORIJA: Oi, kietas. ANDI Peng: Taip. Auditorija: Turiu klausimą. Taigi Apache 50-- ANDI Peng: 50, taip. Auditorija: [nesigirdi]. ANDI Peng: Kas? Tai keista. Matai, buvo natūra klausimu kad vyksta anksčiau. GERAI. Žiūrėti mane po skyriuje. Kadangi mes turime kai problemos su serveriu. Ir jūs norite įsitikinti, Įsitikinkite, kad jūsų serveris yra veikia prieš pradedant pset. Kadangi jūs ketinate reikia. Taip. Ar yra kas nors, kad nebuvo galėtų gauti savo serveryje pradėti? Tiems iš jūsų, kurie nori pridėti Papildoma stilius į savo interneto puslapius, mes iš tikrųjų gali daryti ką Davidas padarė paskaitos, taip pat, kuris yra sukurti papildomą stilius lakštas, kuris yra dot CSS, Kaskadiniai Stilius lapas ir iš tikrųjų tiesiog pridėkite jį. Taigi, pavyzdžiui, aš ką tik sukūrėte gana daug beveik tą patį vieną Davidas padarė paskaitą. Jūs galite labai daug tiesiog padaryti kūną. Jūs turite tai, kas vadinama žymeles, kurios galite kreiptis į IDE nepriklausomai skyrių norite per savo Tikrasis HTML puslapyje. Taigi Puslapio organizmas, jums gali padaryti teksto lygiavimą centrą. Ir tada aš kūrybingi žymę, pavadintą "Top viduje kurių aš noriu šiuos dalykus atsitiktų, priskirti didesnį pikselių dydį už šriftu. Noriu šrifto svoris bus paryškinti. Ir aš noriu spalvos būti mėlynos, tiesiog savavališkai vertybės, aš nusprendžiau pasirinkti. Galiu sukurti kitą žymę, pavadintą "vidurinė. Šrifto dydis, kad ji šiek tiek mažesnis. Ir tada aš galiu sukurti kitą žymą vadinamas dugnas, kur aš noriu šrifto dydį bus dar mažesnis dar. Ir taip gana daug, tai tik pavyzdys šaltinio kodas arba kodo stilių kad tai labai lengva tiesiog "Google". Jei sakai, kad, oi, aš noriu, kad mano šriftą turi būti rašomi kursyvu ir tamsiai žalia, jūs tikriausiai galite "Google", ir tada ji pasakys atitinkamos tegai ID sukurti. Ir taip, kaip tai darytumėte tikrųjų rūšies turi tai HTML dokumento arba naudoti tai viskas, ką turite padaryti čia yra bent galvos pridėti nuorodą į stiliaus lapo. Taigi jūs galite tiesiog susieti href dydžiu neprilygstami nepriklausomai pavadinimas savo stilių yra. Ir tada santykiai yra stilių. Taigi, per bet kurį HTML dokumento, kaip ilgai, kaip jūs įtraukti šią dot CSS lapą, jums turėtų būti suteikta galimybė naudotis ir turi savybes ten. Taigi, pavyzdžiui, čia aš tik sukurti dar vienas pavyzdys tinklalapį. Tai sveikintina, kad CS50 skyriuje Antradieniais nuo 2:00 iki 3:30 su manimi. Ir tada aš pridėjo puikus vaizdas, kad mes potencialiai turėtų galėti pamatyti. Taigi, jei jūs pažvelgti čia jei jūs einate į style.html, mes sukūrėme interneto puslapį su kačiukais. Kadangi kačiukas yra nuostabus. Taigi pridedant vaizdas yra tik img src nuorodą. Gana daug, jei ten bet funkcija Rūšiuoti norite įtraukti į savo website-- taip tarkim, norite pridėti meniu arba paieškos juostą arba panašiose image-- tik "Google", kaip tai padaryti. Ir jūs tiesiog pop toje formatu. Ir jūs galite tik gana daug tiesiog pridėkite jį. Tai tikrai, tikrai lengva. Mes esame sukurti mūsų pačių tinklalapius dabar. Jeigu nori-- Auditorija: [nesigirdi] ANDI Peng: Atsiprašome? Auditorija: [nesigirdi]. ANDI Peng: Oi, DIV yra tik padalinys pasakojo, kad, oi, aš turiu tam skyriuje vadinamas viduryje, kurioje aš taikant Mano CSS žyma, tada kiti mano pasidalijimas su dugno. Tai viskas, tai sakau. Kadangi tai malonu laikyti dalykų tvarkingas, siekiant, todėl programa žino, kaip tiksliai paleisti. Ir manau, galite kopijuoti įklijuokite šį kodą į mano tikrąjį naršyklėje taip pat. Tai turėtų būti bauda. Taip. Valio. Taigi, jei visi nori tik pabandyti kurti tinklalapį, mes priimsime dar dvi ar tris minutes. Aš tik noriu įsitikinti, kiekvieno žmogaus serveriai veikia ir kiekvienas turi idėja, kaip tai padaryti. Jei vaikinai nori imti savo kompiuterius. Vis dar neveikia? Auditorija: Aš tiesiog [nesigirdi]. ANDI Peng: Gal pabandykite atnaujinti 50 taip pat. Taip. Auditorija: [nesigirdi]. ANDI Peng: Taip. Taigi taip, kad pradėdami naują Web serveris IDE yra tik padaryti apache50 vietos starto kosmoso tašką. Aš tik norėjau įsitikinti, kiekvieno žmogaus serveriai veikia gerai. Auditorija: Čia, terminalo? ANDI Peng: Taip. Auditorija: [nesigirdi]. ANDI Peng: Apache. Tiesą sakant, aš manau, kad jūs esate veikia kažką jau. Taip, jūs iš tikrųjų veikia kitą serverį. Taip, jūs gerai. Tol, kol, kad manimi dirbti, esate Gerai. Auditorija: Gerai. ANDI Peng: Yra du būdų, kaip paleisti serverį. Taigi, kaip ilgai, kaip vieną iš būdų dirba, tai viskas gerai. Mes priimsime kitą minutę tiesiog rūšies baigti apdailos paliečia ką interneto puslapyje vaikinai norėjo padaryti. Ar kiekvienas dirba beje? Kiekvieno serveriai veikia be už tavo? Mes išsiaiškinti, kad iš. Ir HTML gana paprasta. Taigi, manau, mes visi gerai. Taip. Aš sugrįšiu. Auditorija: [nesigirdi]. ANDI Peng: Gerai. Auditorija: Taigi tai tik pradėjo įkelti. ANDI Peng: Jokių rūpesčių. Taigi HTML, ten kodo, kad bus internete po skyriuje. Be to, Dovydas visumą krūva internete, taip pat. Tiesiog rūšies žvilgsnis per jį pamatyti, kaip yra parašyta HTML puslapius. Tai gana paprasta. Viskas, ką jūs nežinote, jūs gana daug tik "Google", ir jūs gerai. Aš tik noriu įsitikinti, kad Jūsų serveriai veikia. Auditorija: Ar tai tai padaryti dažnai? ANDI Peng: Jis niekada atsitiko su manimi. Aš nežinojau, kad net galėtų žiemoti. Auditorija: [nesigirdi]. ANDI Peng: Manau everyone-- mano niekada hibernated anksčiau. Ir aš nežinau, kodėl. Tai keista. Auditorija: [nesigirdi]. ANDI Peng: Ar jūsų žiemojančių? Auditorija: [nesigirdi]. ANDI Peng: Taip. Auditorija: Tai gerai. Taigi, kai jis atidarytas. ANDI Peng: Gerai. Mes kovoti su kai serveris klausimai po skyriuje. Jums turėtų būti bauda. Nors, jūs norite įsitikinti, kad jūs gauti jas išspręsti prieš išvykdami. Nes jei jūsų serverio neveikia, tada jūs nesiruošia galėtų daryti pset, kaip ir bet kuris iš pset dalis. Taigi jūs norite įsitikinti, kad manimi dirbti. Saunus. Gerai. Atsisveikinkite kačiukai. Aš praleido daug laiko ieško kad kačiukas nuotrauka įdėti. Taigi, anyways. Auditorija: [nesigirdi]. ANDI Peng: Atsiprašome? Auditorija: [nesigirdi]. ANDI Peng: manau, kad tai svetainėje. Patinka spec? Auditorija: [nesigirdi]. Manau, spec yra tik Prisijungę septyniose savaitę. Manau, kad tai vadinama pset6, net nors mes apie savaitę septyni, kurie yra šiek tiek kompiuterija. Auditorija: Bet aš turiu galvoje, jei jums nori atrodyti at-- jei jus nori atsigriebti mūsų versiją Svetainėje iš mūsų Sever? Taigi, kaip server.c yra pset, tiesa? Jei norite pažvelgti į tai, patinka, kaip ji patikrina atlikti? ANDI Peng: O, taip, iš tikrųjų pset, visi mes darome čia implementing-- čia Aš eisiu per šį trumpai. Taigi visiems, kad tiesiog Dotarłeś skyriuje, jums vaikinai yra laimė. Yra labai mažai medžiagos kad iš tikrųjų apima ir šiandien. Aš tiesiog ketinate praleisti kitą 20 minučių vyksta per pset padėti. Nes ten kai Naudinga funkcijos, kurios padės jūsų gyvenime. Ir tikiuosi, mes būsime iš iš čia, kaip 20 minučių. GERAI. Taigi pset7 yra negerai. Nors mes apie savaitę septyni, tai tikrai pset6. Aš tai pakeisti. Visa, ką mes darome pset6 yra sukurti žiniatinklio serverio. Tai skamba super baisu. Ir ypač tiems, iš jūsų, kurie jau pažvelgė į paskirstymo kodas, ten kodo daug, daug kodo daug. Bet yra visiškai Gerai. Kadangi Kasdieniai Gritty dalis iš tikrųjų sukurti serveris yra padaryta mūsų. Visi jūs tikrai paprašė daryti šioje pset tiesiog padaryti kai styginių manipuliacijos į failą I / O. Tai tikrai kaip gana paprasta. Taigi, kai jūs pirmą kartą parsisiųsti that--, kuris čia iš tiesų jau atsisiuntė pset ir ėmėsi ieškoti? Gerai. Taip. Yra kaip 500 eilučių kodo kad jūs ketinate būti kaip, kas vyksta? Ir tai visiškai gerai. Įsitikinkite, kad jums žiūrėti vaikščioti throughs. Nes Dovydas and-- aš nežinau. Nemanau, kad tai Zamyla s, tai vienas. Bet manau, kad kai kurie kiti vaikščioti throughs yra gana naudinga požiūriu tiesiog leidžia jums žinoti, kas vyksta viduje jūsų kodu. Ir tai visiškai gerai. Kadangi keturias funkcijas, kad jūs prašoma įgyvendinti turi iš tikrųjų nulis daryti su faktine serveryje. Viskas, ką jie turi padaryti, tai tiesiog analizuojant skirtingas eilutes, ieškoti per stygas, įsitikinti, kas daro ką jie turėtų daryti. Taigi, tuo tikslu, yra kai labai, labai naudingų funkcijų, ypač eilutę manipuliacijos, kad mes visi eiti per, kad aš maniau, kad aš būti labai naudinga jums vaikinai išmokti prieš bandant iš pset. Ir jie visi esančius per savo string.h bibliotekoje. Tikriausiai daugiau naudingos funkcijos Aš ne įtraukiamas čia, nes aš arba niekada jomis naudotis arba gal aš tiesiog nežinau, jie egzistuoja. Nesivaržykite žvilgsnio per student.h. Nes ten bus daug funkcijų, kad yra labai naudinga. Taigi šešių, kad aš naudoju daugumoje mano pset kai aš darau tai praeitą savaitę buvo strtok, strchr, strrcher, strstr, strcasecmp ir strcpy. Ir taip paskutiniai du gali atrodyti gana susipažinę su dauguma iš jūsų. Str atveju lyginti, visa tai daro, yra palyginti įsipareigojimų patikrinti juos lygybės, įskaitant atvejį. Ir strcpy tik kopijos viena eilutė į buferį. Ir taip tie du turėtų atrodyti labai susipažinęs su jumis vaikinai šiuo klausimu. Nes mes juos naudojo daug, ypač per pastaruosius psets. Bet pirmas keturias galbūt jūs dar nematėte iki šiol. Bet aš ruošiuosi tiesiog vaikščioti per juos. Kadangi jie ketina padaryti jūsų gyvenimą tikrai, tikrai lengva for-- nėra lengva, bet daug lengviau šį artėjančius pset. GERAI. Taigi char * strtok, tai yra funkcija apibrėžimas šiai funkcijai pateikta per styginių, h bibliotekoje. Jei būtų suteikta iš char įvesties * eilutė, kuri yra tik eilutė, arba pastovus char * deliminator, riboklio trumpam, visa tai daro yra kad kuo didesnis Styga į ką mes vadiname serijos žetonai atskirti tam tikrą vertę. Taigi, tam tikra prasme, jei aš būčiau parašęs Jūs section.7.php, tai yra eilutė. Taigi, kad būtų, jei aš buvo perduoti Šiame, kaip mano g, mano char * g, jei mano deliminator buvo taškas, visa tai būtų padaryti, tai ieškoti per eilutę. Ir pirmą kartą ji mato tašką, ji būtų tiesiog grįžti į žymeklis iki paskutinės priežasties rasti į prieš tai eilutę. Taigi būtų eiti čia. Ir tai tik duok man 7.php. Ir jei aš būčiau paskambinti veikti dar kartą, jis man duotų tik .php. Ir taip visa tai funkcija veikia skaidyti į didesnį eilutę į mažesnius stygos, priklausomai apie tai, ką jūs ieškote. Ir taip pavyzdžiui, savo išvaizdą iki funkcija jei norite pažvelgti, kas tam tikrų simbolių atsieiti arba jei taškai atsitikti ar papildymai taip atsitiktų, Ši funkcija būtų gana naudinga. Taip. Nesijaudink. Tai visi be-- Taip, kas atsitiko? Auditorija: Taigi pirmoje eilutėje, jei mes buvome naudojant šį pavyzdį, ką mes įterpti į tai? ANDI Peng: Taip. Jūs tiesiog skambinti strtok styginių kablelis riboklio. Ir styginių yra lygus section.7.php. Ir tada jūs riboklio gali būti lygus tik taškas. Auditorija: Gerai. ANDI Peng: Taip. Va taip va. Visos šios funkcijos yra gana panašūs, kai mes einame per juos. Jie tiesiog padaryti šiek tiek skirtingus dalykus. Bet jie visi ketina padaryti jūsų gyvenimą daug paprasčiau. Antroji funkcija, tai vienas lyg Super, super, super svarbu, yra the-- telpa. Oi. Strchr ieško pirmas occurrence-- tikrųjų, taip. Strchr yra funkcija, kuri Aš tikrai tiesiog perėjo. Taigi ignoruoti tai, ką pasakiau pirmą funkcija. Tai iš tikrųjų vadinamas strchr. Taigi, kas būtų čia atsitiko, jei Jums buvo suteikta A char c eilutę, tai tiesiog duoti Jūs ką, kad buvo. Taip. Taigi manau, apie tai, kaip g, o yra eilutė, ir Chr kaip char. Taigi, visi jūs bandote padaryti, tai paieška o kur char yra per eilutę. Ir todėl jis ieško pirmas atsiradimo pobūdžio C styginių g. Auditorija: [nesigirdi]. ANDI Peng: Yup. Ir tada, jei jis nerado jis, ji ketina grįžti NULL. Taigi kažkas, kad tai bus labai naudinga jums vaikinai daro pset jei, tarkim, jūs ieškote plėtinys kaip dėl Word .docx dokumentas arba už PDF dokumentą .pdf, galite rūšies naudoti jį ieškoti dėl kokios yra po kiekvieną kartą jūs matote tašką, tiesa? Ir taip gana daug, jei jums paleisti, kad per funkciją, jei ji grąžina NULL, tada jūs žinote, kad tai neradote taškų, o tai reiškia, tai aiškiai yra neteisingas failo plėtinys. Arba, jei jis grįžta kažkas, tuomet jūs žinote, jis ketina grįžti visada kas realiai po pratęsimo. Taigi tie, kurie turėjo pradėjo ieškoti per paieškos ir išanalizuoti, tai funkcijos bus super naudinga. Taigi mes iš tikrųjų ketiname siekiant įrodyti, naudojant tai. Kodėl vaikinai pasistenkite parašyti funkcija bool sakinys char * s, kad tiesiog grąžina true, jei S yra sakinys ir false kitaip. Taigi užuomina, kad jūs ketinate kad tikriausiai naudoti strchr. Arba jūs tiesiog paiešką eilutė už tam tikrą požymį. Ir taip sakinyje, kas skiria bausmę iš ne sakinio, kas specifika? Auditorija: tarpą. ANDI Peng: Erdvė, tiesa? Ir taip, tai ką mes tikriausiai noriu padaryti per šią funkciją čia? Auditorija: [nesigirdi]. ANDI Peng: Mes ketiname norite strchr eilutė už erdvės išvaizdą. Nes jei jis grįžta kažką, tada mes žinome, kad tai turi būti sakinys. Tai reiškia, kad mes turime turėti šioje eilutėje erdvę. Jei nėra vietos, tada mes žinome, kad, ei, manau, kad jis nėra eilutė. Tai tikriausiai tik tikrai ilgai žodis. Taigi, aš duosiu jums, vaikinai pora minučių rašyti šią funkciją. Taip. Auditorija: Ar jums Ši eilutė iš vartotojas? ANDI Peng: Taip. Taigi tai yra tik funkcija. Taigi įsivaizduokite viduje savo pagrindinės funkcijos Jūs jau have-- eikime čia. GERAI. Taigi, aš parašiau šioje programoje, kai Turiu pagrindinį funkcija, kurioje Aš ką tik sukūrėte dvi eilutes. Pirmasis Sveiki, mano vardas yra Andi-- aiškiai, sakinys. Mano antrasis yra tiesiog Ieva, tikrai nėra bausmė. Ir taip Bėgu tiek tų įsipareigojimų per šią funkciją. Noriu vaikinai rašyti šalto bausmę. Ir aš saugoti tas vertybes, ir tada tiesiog spausdinti juos. Taigi manau, kad vartotojas yra ketina pereiti į eilutę. Ir tada jūs ketinate iš esmės išsiaiškinti, ar tai sakinys, ar ne ir grąžina true arba false pakeisti. Jei vaikinai nori duoti thumbs up ar Vadovauja, galvos linktelėjimas, yra kas nors yra pasirengęs pradėti Tai, kad būčiau gera. Gal kaip 30 sek? Gerai. Leiskite pamatyti, jei jūs galite pabandyti rašyti šią funkciją. Taigi pseudo coding-- aš tik ketina rūšies pėsčiomis per šią teisę dabar. Gana daug, mes žinome, funkcija, kad reikia naudoti. Mes ketiname skambinti, kad funkcija Mūsų styginių ir paieška erdvėje. Jei jis grįžta kažką, tada mes turime žinau, kad, be abejo, tai yra sakinys. Nes ten erdves. Tada mes ketiname grįžti tiesa. Kita, mes ketiname grįžti klaidinga. Ar kas nors nori duoti man pirmoji eilutė kodo kad mes iš tikrųjų ketiname naudoti rašyti tai? Tai tikrai sunkiausia linija kodą, taip pat. Taip. Auditorija: Jei strtok s-- ANDI Peng: Tiesiog strchr. Auditorija: [Tarpines BALSAS] vietos nėra lygus nuliui. ANDI Peng: cool. Visiškai teisus. Kiekvienas suprantame, kad pirmą eilutę? Mes ketiname skambinti strstr, kuri yra funkcija, kuri ieško eilutė s erdvės char. Ir jei ji nustato, ji ketina grįžti žymeklį ten, kur tai yra. Jei jis nemano, kad, jis ketina grįžti NULL. Taigi, jei jis grįžta nieko, išskyrus NULL, tada mes žinome, jis rado vietą. Ar tai prasminga? Saunus. Gerai. Taigi, jei mes žinome, jis rado Erdvė, ką norime daryti? Auditorija: Grįžti tiesa. ANDI Peng: Yup. Grįžti tiesa. Ir tada, kažkas nori baigti funkciją už mane? Taip. Kita, kaip kad. Ir pabandykite sudarant tai. Taip. Taigi, kaip jūs vaikinai galite pamatyti iš išėjimai, nepamirškite loginę C visada išreikštas dvejetainiu. 1 tiesa. 0 yra klaidinga. Jei mes buvome paleisti šią funkcija eilutę vieną, kuris yra Labas, mano vardas Andi-- Aišku, sentence-- rezultatas išspausdinti iki 1, kuris yra tiesa. Antrasis, kuri yra tik žodis, į rezultatus atspausdinti iki 0, kuri yra klaidinga. Kiekvienas aišku rūšies, kaip Ši funkcija buvo parašyta? Taip. Auditorija: Ar mes taip pat padaryti, vietoj to, nėra lygi ne, lygus lygus 0, taip, kad jis yra lygus? ANDI Peng: Ne Kadangi strchr yra funkcija. Aš ruošiuosi grįžti į šį. Taigi, kas yra grįžimas tipas Mūsų strchr funkcija? AUDITORIJA: O, gerai. Arba NULL. ANDI Peng: Taip. Tai char *, kad man sako, kad nepriklausomai nuo Ši funkcija ketina grįžti, tai bus rodyklė. Bet žymeklis bus nukreipta į kur jis nustatė, kad jis, ar jis ketina grįžti rodyklė NULL. Bet aplinkybė, jis ketina grįžti žymiklį į kažką. Ir todėl, jei jums buvo prilyginti tai lygu, lygu, 0, jūs ketinate gauti kompiliavimo klaida. Nes ji ketina grįžti rodyklę. Ir jūs ketinate bandyti palyginkite žymiklį į sveikojo skaičiaus. Ir kompiuteris nėra ketina tai patinka. Taip, tiksliai. Saunus. Kiekvienas geras? Ir, antra, mes ketiname eiti per funkcija vadinama strstr. Nesijaudinkite, jei šios funkcijos yra paini jums. Jie painioja mane. Kaip, pavyzdžiui, vaikinai galėjo matyti, visi jie skamba beveik tas pats. Tiesiog, kai esate supainioti, atsigriebti string.h biblioteką. Ir vaikinai galite rūšiuoti per kurį One kuri. Taigi strstr, visi, kad daro, yra paieškos už visą kiti styginiai eilutė. Taigi, kur strchr tik paieškos už vieną požymį, strstr ieško visą eilutę. Taigi norėjau pažvelgti į, aš ne žinau, Sveiki, mano vardas yra Ieva. Ir mano geriausias draugas pavadinimas taip pat yra Andi. Jei aš norėjau ieškoti šio bausmė už visą žodį Ieva, mano adata būtų buvę ką jūs ieškote. Ir jūsų kaugė yra whatever Jūs ieškote už jį. Taigi, jei jūs ieškote specifinis žodis per sakinyje šis žodis bus jūsų adata. Ir tada pats sakinys bus jūsų kaugė. Ir taip jis tiesiog ieško pirmasis pasireiškimas styginių adata į styginių šieno kupetoje. Ji grąžina rodyklę į pirmą atsiradimo. Išskyrus, nepamirškite šiuo atveju, tai pirmasis pasireiškimas visą eilutę kad jūs ieškote Nes ne tik simbolis. Ir todėl tai yra beveik tas pats, kaip funkcijos mes tiesiog padarė, tiesiog su šiek tiek daugiau specifiškumas. Kadangi jūs ieškote daugiau nei vieną simbolį. Ir naudojimas yra lygiai toks pats kaip vienas, kad mes tiesiog padarė. Kiekvienas gerai su tai? GERAI. Paskutinis vienas mes ketiname eiti per yra strrchr, kuris yra ne painiojama su strstr arba strchr. strrchr turi papildomą R ten. Būkite atsargūs, kai jūs įvedėte. Jums gali rasti sau įskaitant extra R arba nenurodyti r, ir tada jūsų funkcija yra gautas nesiruošia dirbti. Ir jūs ketinate būti supainioti. Būkite atsargūs, kad jūs rašybos Visos šios funkcijos į dešinę. Taigi strrchr yra tiksli tas pats, kaip strchr išskyrus tai ieško ne pirmas pasireiškimas konkretaus požymio, o paskutinis įvykis. Ir taip, ta prasme, tai beveik tą patį. Bet vietoj juda perduoti į eilutę, jūs ketinate būti juda atgal į eilutę. Tiksli pats dalykas, jūs tiesiog ieškoti kitokia tvarka. Ir taip, tai gali būti super, Super naudinga jūsų paieškos funkcija, pirmasis funkcija savo pset. Tarkime, kad mums reikia parašyti funkcija void pratęsimo, kurioje mes praeiti pastovus char * failo pavadinimą, tik virvutė, failo pavadinimą, kad mano, kad pavadinimas ir spaudinių dėmesį į šio failo plėtinys. Taigi, pavyzdžiui, jei aš buvo pereiti į pset7.zip eilutę, jis ketina išspausdinti tik pratęsimas, kuris yra .zip. Ir tai būtų dirbti bet pratęsimo rūšiuoti, .docx Word ar .pdf už PDF byla arba .html už HTML failą. Gana daug, parašyti funkcija, kuri gali tai padaryti. Aš iš tiesų vyksta perjungti į IDE. Tai nėra load-- ten einame. Taigi viskas, ką aš padariau čia sukūrė char *, pirmą eilutę, vadinamas pset7.zip. Aš ruošiuosi priartinti. Aš sukūriau antrą eilutę vadinamas finalpaper.docx. Ir parašyti man funkciją, kad kai vadinamas ketina tiesiog atsispausdinti failo pavadinimas plėtinius. Gal užtrukti keletą minučių galvoti apie tai, kaip jūs ketinate tai padaryti. Šiek tiek sunkiau nei paskutinis, bet naudojimas yra beveik visiškai toks pat. Taip. Taigi parašyti funkcija vadinama pratęsimo , kad jei aš jums pavadinimą failą, jei aš buvo suteikti jums pset7.zip-- I noriu jums spausdinti tik .zip. Jei duodu jums patinka finalpaper.docx, tiesiog atsispausdinti .docx, tik bet kokio failo plėtinys. Tai iš tiesų tik trunka dvi eilutes kodo. Taigi pabandykite pamatyti, jei jūs gali gal tai padaryti, kad. Tiesą sakant, tai tik užima vieną eilutę kodo. Tačiau dvi linijos yra tikriausiai daugiau standartą. Kokią funkciją mes tikriausiai ketinate norite skambinti? Auditorija: strrchr. ANDI Peng: strrchr, tiesa. Kadangi mes ieškome iš kairės į dešinę. Aš ne duoti jums vaikinai tokia kaip pavyzdys, bet jei tau daviau pavyzdį, kaip www.apple.com ir aš tiesiog norėjau Com, tai būčiau kur pavyzdys norite skambinti paskutinėje instancijoje laikotarpio ir ne pirmas, teisę? Jei buvo skambučių strchr, ją tai jau davė jums apple.com. Jei vadinama strrchr, ją būtų suteikęs jums Com. Ir todėl būkite atsargūs, dėl kurių ways-- mano Pavyzdžiui, Jūs turbūt galėtų galėtų turėti tiesiog parašyta naudojant jį strchr, nes yra tik vienas taškas. Tačiau kitais atvejais, kad gali būti ne tas atvejis. Ir taip visada stengiamės sukurti Jūsų kodas gerai, kad that-- Yeah? Auditorija: Taigi, pavyzdys ką tik sakė, kai jūs strrchr jis būtų suteikti jums Com arba tiesiog ateiti? ANDI Peng: Tai suteiks jums Com. Auditorija: Gerai. ANDI Peng: Taip. Ji atkreipia dėmesį į kai ji radau. Taip. Gal 30 sekundžių? Taip. Kiekvienas geras ar gal šiek tiek daugiau laiko? Rodyti rankų? Rodyti vadovų? Saunus. Kiekvienas nori duoti man pirmas eilutę kodo šiai programai? Auditorija: [nesigirdi]. ANDI Peng: Taigi visų pirma, tegul gal padalyti. Taigi, kas yra grįžimas tipo strrchr? Grįžkime. strrchr, kas yra grįžimas tipas? Auditorija: char * ANDI Peng: Tai char *, tiesa? Tai reiškia, kad jūs tikriausiai ketina nori sukurti kitą char * natūra iš parduotuvės, kai tai grįžti į, tiesa? Nes jei jūs vadinate funkcija strrchr, jis ketina duoti jums žymeklį į kur jis nustatė, kad paskutinį laikotarpį, tiesa? Bet jūs ketinate norite laikyti, kad kažkur, tiesa? Ir taip, kaip mes kodą tai į mūsų programą? Auditorija: Jūs darote char * [nesigirdi]. ANDI Peng: Yep. Auditorija: [nesigirdi]. ANDI Peng: strrchr. Taip. Oi, praleidau r ten. Auditorija: Failo pavadinimas [nesigirdi]. Kas tai? Oi, tai tik Š. ANDI Peng: Oi, tai tik Š. Yup, atsiprašau. Mano kaltė. Pavyzdžiai neatitiko. Auditorija: Ir tada dot. ANDI Peng: Yup. Būkite atsargūs, kai jūs vaikinai are-- čia, leiskite man padidinti. Čia mes eiti. Būkite atsargūs, kai jūs vaikinai renkate ypač kai, darote tik char. Tai tikrai lengva netyčia tik daryti dvigubas kabutes, o ne vieną. Tai neveiks. Jūsų sudarytojas ketina skųstis. Ir jūsų funkcija tiesiog nesiruošia paleisti. Ir todėl būkite atsargūs, kai darai dalykus su simbolių, kad tai Viengubomis kabutėmis. Ir taip daro šią eilutę kodas prasmės visiems? Mes sukurti char * žymeklį. Kadangi strrchr grąža kažkas tipo rodyklę. Ir taip mes ketiname skambinti strchr su s, kuri yra seka, failas pavadinimą, kad mes einančios. Ir mes ieškome paskutinis pavyzdys laikotarpiui, kuris yra tik vieno citata dot vieną citatą. Taip. Auditorija: Kai mes naudojame kabutes o kai mes naudojame kabutes? ANDI Peng: Taip. Taigi kabutes yra visada naudojamas, kai jūs turėti daugiau negu tik vienas eilutę. Taigi, jei jūs darote strstr, kuris yra vienas, kad jūs ieškoti eilutę eilutę, jus būtų perduoti jį kabutes. Bet kuriuo metu jį tiesiog vieną simbolį, norite padaryti Viengubomis kabutėmis. Tai geras dalykas, reikia nepamiršti. Taigi dabar, kad mes turime žymeklis, ką mes darome su juo? Aš prašau jus vaikinai spausdinti jį, tiesa? Taigi [nesigirdi], norite duok man kodo eilutę? Auditorija: printf-- ANDI Peng: Taip. Auditorija: --you reikia turėtojas. ANDI Peng: Yup. Auditorija: Spausdinti turėtojas. Aš nežinau, kas vyksta turėtojas yra, bet taško iki jo. GERAI. Leiskite praleisti, kad dabar tada. Auditorija: Ir tada comma-- ANDI Peng: pointer, tiesa? Auditorija: pointer, yup. ANDI Peng: Taigi rūšies triukas klausimas, turi daryti su rodyklėmis ir styginiams kad mes rūšies kalbėjo apie jau. Kokią vietą užimantis padaryti mes reikia pateikti pasiūlymą dėl char * rodyklė? Auditorija: [nesigirdi]. ANDI Peng: Taip. Tai lengviau, nei jūs manote tai. Auditorija: Styginių? ANDI Peng: Tai tiesiog seka, tiksliai. Nes prisimenu eilutes ne tikrai egzistuoja. Char * yra tiksli Tas pats kaip eilutę. Ir taip tikrai tai ai yra tai, ką turėjo būti naudojami visi kartu. GERAI. Leiskite pamatyti, jei mes galime pabandyti tai. Leiskite daryti makiažą pratęsimo. Saunus. Vaikinai pamatyti, kaip aš išlaikė į psset7.zip ir finalpaper.docx, ir ji tiesiog spausdina .zip ir .docx? Logiška? Gerai, kad aš manau, kad jūsų ieškoti funkcija jūsų pset esate bus paprašyta, jei eilutė turi tam tikrą pabaigą, jūs turite duoti tam tikrą klaidos kodą. Ir taip, tai bus gana baisu. Nes jei galite išsiaiškinti , ką išplėtimas, tada jūs galite palyginti, kad pratęsimas pamatyti, jei ji atitinka iki su tam tikru pratęsimą. Ir tada jūs galite grįžti klaidos pranešimas, tiesa? Taip. Auditorija: Taigi, mes do not turi pridėti 1 arba nieko? Rodyklė eis į the-- ANDI Peng: Nope. Auditorija: --point po jo. ANDI Peng: Taip. Ji nurodo tiksliai kur įvykis buvo. Taigi, pavyzdžiui čia, mes ieškant laikotarpį. Taigi jis ketina grįžti rodyklė laikotarpiui. Ir tada jis ketina spausdinti iš pradedant tuo laikotarpiu. Taigi jums nereikia pridėti 1. Nors tai visiškai baudą, jei esate kada nors abejojate, tiesiog natūra nuo išbandyti jį sau. Sukurkite mėginio programą. Išbandyti jį sau ir pamatyti, kur tai spauda. Tai taip pat nėra blogas būdas tai padaryti. Saunus. Ir tai beveik viskas, Turėjau jums vaikinai šiandien. Mes padarėme daug pset daug dalykų šiandien. Taigi, kai kyla abejonių, kaip Sakiau, visada ieškoti string.h biblioteka šį pset. Ten bus daug funkcija ten, kad gali būti naudinga. Kai kurie gali būti ne naudinga. Aš tikrai nežino. Wade per ją, ten visa krūva iš jų. strstr, strchr, strrchr yra super, super naudinga, taip pat kad strcpys ir strcasecmps kad mes jau naudojamas. Tai tiesiog daug Messing aplink su įsipareigojimų, nustatyti, ar jie lygūs, gauti stuff iš stygos, ir kad galėtų teisingai atidaryti failus. Tai iš failo I / O daug. pset tikrai nėra taip blogai. Jūs ketinate imtis pažvelgti tai, atsisiųsti, ir pamatyti visa krūva kodą. Nesijaudinkite, kodas Jums iš tikrųjų rašyti nėra bad at all. Jei kas nors turi problemų su serveris, ateiti pamatyti mane po skyriuje. Apologize vėl ne pareikšti saldainiai Helovinas. Aš nežinau, kas buvo negerai su manimi. Bet mes turėsime dvigubai CANDY kitą kartą. Ir geros kloties jūsų pset šią savaitę. Taip.