[Muzikos grojimo] ANDI Peng: Tai CS50 ir kviečiame sekcijos dvi savaites. Tai iš tikrųjų, o savaitę du mūsų class-- Tiesą sakant, pirmą savaitę mes turėjome skyrių. Rodyti rankų, kiek jums visiems atvyko į super skyriuje praėjusią savaitę? Gerai, kad viskas OK. Tai gerai. Kaip daugelis iš jūsų stebėjo Super skyriuje praėjusią savaitę? GERAI. Ir vaikinai padarė gerai apie problemą nustatyti vieną? Taigi, aš ruošiuosi jį priimti, kad mes turime iš tiesų protingų vaikų krūva šioje klasėje ir dalykų bus gerai. GERAI. Taigi first-- Pirma, mes tik ketina trumpai eiti per šios dienos darbotvarkę. Mes kalbame apie kursų logistika. Daug iš jūsų tikriausiai turite klausimų dėl kaip viskas paleisti šį kursą. Mes juos atsakyti. Mes ketiname trumpai eiti per kilpomis atveju kas nors iš jūsų vaikinai praleido super skyrių. Mes kalbame apie ASCII žemėlapių. Mes kalbame apie masyvų, funkcijos, komandinės eilutės argumentai. Ir pagaliau, ką jūs vaikinai tikriausiai visi tikrai noriu būti čia, norėdami sužinoti apie, Jūsų pset2. Mes turime keletą naudingų gudrybių ir patarimai, kaip tai padaryti. GERAI. Be to, antra, mes turime daug saldainių čia. Kiekvienas, kuris sako, kad patinka saldainiai, tiesiog ateiti čia. Grab kai. Turiu krūva. Mes turime biure toną. Nemanau tikrai norite valgyti saldainių visą dieną. Vaikinai turėtų valgyti visi saldainiai, nes aš atnešė čia jums vaikinai. Tiesiog valgyti saldainių. Ten bus saldainiai kiekvieną skyrių. Taigi, pirmiausia, kas aš esu? Mano vardas Ieva Peng. Esu galva TA iš CS50 čia Jeilio. Ir be to, kad aš taip pat be-- jei kas nors būtų like-- savo veiklos bičiulių, jūsų peties išsiverkti ant. Jei prieš jūsų pset anketa Due naktį, jūs neturite idėjos, kas vyksta, trenk man. Mes užuojautą kartu, et cetera. Tiesiog žinau, kad aš esu čia, kaip šaltinis jums kaip fronto liniją padėti jums vaikinai išsiaiškinti, kaip spręsti problemas CS50 ir už jos ribų. Mano elektroninio pašto yra andi.peng@yale.edu. Aš taip pat siunčiame individą paštu su mano telefono numeriu jame kad ne kiekvienas dėl Internetas gali matyti mano telefono numerį. Nedvejodami skambinkite man bet kuriuo metu. Rimtai, mano telefonas yra dažniausiai pritvirtintos prie mano rankos. Aš negali atsakyti per porą minučių. Aš negali atsakyti per kelias valandas. Bet galiu jums garantuoti, jei Jums e-mail man, jei jūs vadinate mane tekstas man, aš atsakyti per 24 valandas. Dažnai, aš atsakyti prieš kad dėl suprantu kad kiekvienas gavo kai kurias problemas, ir jūs norite, kad jūsų atsakymus reikia atsakyti labai greitai. Tačiau, jei Jūs skambinate man 30 minučių prieš kad gabalas, kad yra dėl ketvirtadienis night-- būti kaip Andi, padėk man, Aš ne started-- Aš gali suteikti Jums, kad peties verkti ant. Bet tai gali būti laikas galvoti apie Kaip tai padaryti, kad kitą kartą. GERAI. Oi. Kaip man grįžti? Čia mes eiti. Taigi šiuo metu mes turime tonų paramos visiems. Be to, tik skyriai čia, kurį kiekvieną savaitę gauti praleisti 90 nuostabių minučių su manimi, mes taip pat turime darbo valandomis. Kaip daugelis iš jūsų vaikinai jau buvęs darbo valandomis pagalbos? Didysis. Tai tikrai gera matyti, nes mes turime daugiau nei 45 darbuotojų etatus ir CAS darbuotojus apmokyti šį kursą, kad esate čia padėti jums vaikinai su savo psets. Pirmadieniais jie vyksta kryklė Klasės 17 Hill House čia Jeilio. Antradieniais ir ketvirtadieniais, jie vyko Visuotinis. 8:00 iki 11:00 Beveik kiekvienas šiokiadieniais. Užeik, išeiti. Bet problema ne problem-- tik Nagi, ir tada mes padėsime jums su tai. Antra, be to, darbo valandų ir skyriai, taip pat turime šortai. Ar kas nors kada nors matė poros šortai ar Walkthroughs į video svetainėje? GERAI. Taigi jie tikrai, tikrai naudinga. Mūsų mielas Harvardo gamyba komanda per ten toje mokykloje į šiaurę, jie nufilmavo ir pagamintas Šie neįtikėtinai Walkthrough video. Jie paims jus žingsnis po žingsnio per kaip eiti apie problemos sprendimo. Dažnai, jei jūs painioti apie paprasta sąvoka, vienaskaitos koncepcija, Pažiūrėk, nes mes tikriausiai ant jo trumpo kažkur mūsų svetainėje. Ir tai paprastai puikus šaltinis ieškoti, kai jūs pirmą kartą neteko apie tai, kaip elgtis su problemų. Trečia, mes taip pat turime study50 ir reference50. Taigi studijuoti 50 ant svetainėje yra tik nuoroda. Tai, manau, study.cs50.net ar kažkas panašaus. Tiesiog Google ją. Turime daug paruoštų skaidrių. Turime daug šortai ir walkthroughs-- dalykai visi surinkti labai gražus ir tvarkingas jums vaikinai visų naršyti, matyti jokių sąvokas kad esate supainioti apie tai. Tai tikriausiai būčiau padengtos per ten study50. Reference50-- panašūs. Mes turime įvairių užrašų daug lengvai prieinama jūsų dispozicijoje. Ir galiausiai, turime tai, kas vadinamas CS50 Aptarkite, kurioje forumas, jei prieš naktį jūs darote savo problemas, tarkim, turite klausimų. Prisijungti prie CS50 Aptarti. Paskelbkite savo klausimą. Ir tada vienas iš hundreds-- galbūt, thousands-- bendraamžių pradėdami vartoti šį klasę internete bus prisijungti. O gal kas nors gali gauti Jūsų atsakymas prieš TA gali. Tai iš esmės tik Prisijungę Forumas kad mes visi galime naudoti aptarti mūsų problemas. Tai kieta. GERAI. Taigi problema rinkiniai. Mes apie teisę į storio problema nustatyti du. Daugelis iš mūsų jau kovojo per problema nustatyti vieną. Mes jau žinome, kad galbūt laukia už paskutinę naktį padaryti savo pset nėra protingiausias dalykas daryti CS50. Patarimai ir patarimai esmės dėl sėkmė yra perskaityti visą spec. Kaip daugelis iš jūsų jau skaityti už pset 2 spec? GERAI. Štai kietas suma. Žinau, kad jūs vaikinai tikriausiai pripažinta dabar Specifikacijos tikrai ilgai. Jie tikrai, tikrai ilgai. Tai tikrai sunku skaityti kiekvieną eilutę tos atidžiai pažodžiui. Jūs norite tiesiog nugriebti, kur jis jums pasakys kažką daryti. Galiu jums garantuoti, nedaryk to. Jei tai padarysite, jūs tikriausiai ketinate praleisti kažkur kai ji pasakys kaip pradėti problemą ar jis jums pasakys, ką pavadinimas jūsų problema ar jis jums pasakys, tai tikriausiai geriausias būdas pradėti daryti savo problemą. Ir tada jums bus prarasta. Kai bandote skaityti savo spec įpusėjus, Dėl svarbių daug informacija--, kad nesate bus galima tikrai gauti. Taigi perskaityti visą spec. Pabandykite perskaityti visą spec Prieš skaitydami skyrių, nes tada, kai mes kalbėti apie pset, mes visi galime turėti idėją kas vyksta. Antra, tai yra koncepcija kad aš norėčiau nuoroda daug visą kursą semestrą. Bet iš esmės, susitikti su mumis pusiaukelėje, tiesa? Man, kaip savo TA ir Jason kaip žinoma vadybininkas ir Scaz kaip jūsų profesorius David kaip savo profesoriaus ir visi kiti mieli struktūra Šiame kurse padėjėjai šioje course-- mes padarysime viską užtikrinti, kad jums yra nustatyti iki pavyks šį kursą. Mes surengs skyrių. Mes bus surengti darbo valandomis. Mes atsakysime į jūsų telefoną ragina atsakyti į jūsų laiškus, padaryti viską, ką galime padaryti tikrai bus atsakyta į jūsų klausimus. Tačiau padėti mums pernelyg. Susitikti su mumis pusiaukelėje. Jei atvykote į darbo valandų nėra įžengęs į skyrių, o ne pamatęs paskaitas, neturinčią idėja, kas vyksta, bus kaip, padėk man. Aš ruošiuosi būti, pavyzdžiui, gerai, aš atsiprašau. Ji gali būti laiko skolinti kad peties verkti ant, nes aš nesu tikras ką aš galiu padaryti, siekiant padėti jums jei jūs neturite pabandyti bent jau padėti Būk šiek tiek pradžioje. Susitikti su mumis pusiaukelėje. Žinote, prašome atvykti pasirengęs atsakyti ir gauti pasiruošęs užsiimti medžiagos. Jis daro ką tiek daug lengviau visiems dalyviams. Taip, tai gana daug. Rūšiavimas. Tad mokymo programą, tai gana nuodugniai apie tai, kaip mes pažymį. Bet iš esmės, suskirstymas į tai 50% savo klasės bus psets, kurie yra puikus, nes tai kur jūs išleidžiate didžioji dauguma savo kursą laiko. Viktorinos 40%, ir jūsų galutinis projektas bus 10%. Bus du viktorinos visoje semestro kursą. Manau, kad laikas ir datos yra Taip pat įtrauktos į mokymo programas. Taip, kad mes būti klasifikavimo savo psets yra tai, kad mes turime iš esmės keturi vertybės, kurias priskiriate kiekvieno lygio. Mes turime vertę taikymo srities, teisingumą, dizainas, ir stilius. Taigi, kaip matote, kad tipo mūsų apskaičiavimo formulė psets. Trys mes suteikiame labiausiai svoris teisingumą, nes akivaizdu, savo treneriu turėtų būti išbandyti tuos atvejus, kad mes norime, kad ji išbandyti. Jūs vaikinai visi check50 jūsų dispozicijoje. Tai labai naudinga funkcija kad vaikinai gali visi įkelti savo kodą į mūsų serverius, kur mes patikrinsime tai už jus. Ir jūs mačiau tuos frowny veidai, smiley veidus. Jie tikrai, tikrai naudinga. Prašome būti ne studentas, kuris norėtų bando hardcode visose jiems atsakymus. Aš tikrai mačiau pset kur kas matė visus check50 vertybes ir jie tiesiog sunku koduojami in-- jei šis skaičius, spausdinti šį numerį. Jei šio skaičiaus, išspausdinti šio skaičiaus. Negalima daryti. Nors techniškai check50 yra teisinga, Jūsų būdas spręsti problema yra neteisingas. Taigi tiesiog naudokite check50 taupiai. Bet taip pat įsitikinkite, kad jūs suprasti, kaip ji veikimą, Programa veikia be to, check50, nes mes negalime išbandyti kiekvienas įmanoma atvejis check50. Mes išbandysite keletą iš jų. Dizainas iš esmės, kaip gerai suprojektuoti jūsų kodas? Jei esate kopija-klijavimas kelių eilučių kodo daug, daug kartų. Gal jūs neturite pakankamai geriausias dizainas kodą. Gal atėjo laikas pridėti, kad kilpa. Iš esmės, čia tai tiesiog visi apie bando padaryti savo kodą, bando parašyti savo kodą, efektyviai įmanoma, kad jūsų programa veikia kaip galima greičiau. Galiausiai, mes turime stilių. Taigi stilius rūšies savavališkas, subjektyvus terminas. Aš žinau, mes oficialiai turi stilius 50 vadovas CS50, kur jis jums pasakys, oi, jus turėtų turėti erdvę čia. Turėtumėte rūšies formatu Jūsų kodas šiuo būdu. Turėtumėte pavadinti dalykus šiuo būdu. I do not really care, per se, kaip pasirinkti stiliaus savo kodą, kaip ilgai, kaip jūs likti nuoseklūs. Pavyzdžiui, jei norite palikite tarpą po jūsų keturių Prieš savo keturių kilpa, tiesiog padaryti, kad kiekvieną kartą. Negalima rūšies tai padaryti. Nereikia daryti kitus kartus. Jei jums patinka išlaikyti garbanotas petnešos erdvėje tam tikru būdu tiesiog visada daryti, kad taip. Negalima rūšies padaryti jį kažkur čia ir kažkur ne ten. Kai mes klasifikavimo, tai tikrai sunku jei aš neįsivaizduoju, kaip jūs formatavimą savo kodą, viskas yra trenktas ir iš vietos. Jei jūs tiesiog laikyti jį nuosekliai, tai daug lengviau man, kaip didesnis gebėti skaityti savo kodą. Tai daug lengviau jums, kaip studentas gebėti ieškoti per savo kodą ir pamatyti, kas yra negerai su tai velniop, kodėl ten klausimus. Stilius yra vienas iš paprasčiausių dalykų vaikinai gali padaryti, norint gauti visą balų. Iš esmės, jei jūs tiesiog rūpi, jei mokate penkias minutes dėmesio į savo kodą kiekvieną savaitę, jūs turėtumėte būti gauti visą stilių taškų. Galiausiai, mes turime tai, kas vadinama taikymo sritį daugiklis. Scope-- Žinau, kad tai didelis žodis, ypač šios klasės. Bet apimtis, visa tai reiškia yra, kad jūs bandote į geriausias savo gebėjimą psets. Jei įjungsite trijose iš Jūsų keturias problemas ir net ne bandymu paskutinis, jūs tikriausiai ketina prarasti taškų sritį. Net jei jūs tiesiog pradėkite problemą, padaryti viską, kad vaikščioti per ją. Net jei jis neveikia, įjunkite jį, nes tai rodo ir rodo mums, kad jūs bandote, kad bandėte problemą rinkinys Kiek jūsų gebėjimą. Ir tada mes galime suteikti jums pilnas taškai taikymo sritį. Taikymo sritis taip pat yra labai svarbus, kai mes kalbėti apie mažiausią pset rezultatą lašas. Taigi per kurso semestras, vaikinai turi devynis psets. Ir mes iš tikrųjų bus nuleisti mažiausia rezultatas iš tų devynių, bet tik jei turite pilna apimtimi taškų. Taigi, jei įjungsite neišsamiai pset, Deja, mes negalime mėtyti, kad vienas, nes savo taikymo sritį Taškai nebuvo baigtas. Taigi, net jei jūs turite baisu savaitę kur jūs miršta ir jūs esate serga ar jūsų šuo miršta, jūsų katė miršta, ir jūs perkrautas namų, tiesiog bandyti pset. Ar ji geriausia jūsų gebėjimą. Jei jis neveikia, tai nesvarbu. Tiesiog įjunkite jį. Bent mes galime suteikti Jūs nurodo už pastangas. A pastangų šioje klasėje. Tuo mažiausiai mažiausią rezultatą sumažėjusios pastangų. Taigi taip. Tai gana daug. Ar kas nors turite klausimų taip kas, kaip mes pažymio klasės? Arba bet kuris iš šių? Bet tai taip far-- sekcijos, biuro valandas? Saunus. GERAI. Taigi, šis objektas yra, kad joks iš tikrųjų mėgsta kalbėti apie. Nemanau, tikrai norėčiau apie tai kalbėti. Vaikinai nelabai nori išgirsti man kalbėti apie tai. Bet deja, mes visi turi apie tai kalbėti. Davidas praleido 20 minučių per paskaitą apie tai kalbėti. Ir kad yra objektas Akademinio sąžiningumo. Taigi mes visi čia tikriausiai parašyta esė kažkada mūsų Jeilio karjerą. Mes tikriausiai Dotarłeś kalbėti, kur mes buvo pasakyta, kad ne plagijuoti mūsų esė, nes darbas yra ne mūsų. Computer Science, mes turime tos pačios rūšies koncepcija. Visi darbai, kad jūs pateikiate, visi kodas, rašote turėtų būti kodas, kuris jums parašyta. Neturėtų būti kodą, kad jūs nukopijuoti iš kažkur kitur. Neturėtų būti kodas, kuris Jūs googled ir plopped į ir jūs tikrai nežino, ar ji veikia. Jūs rūšies turėti prasmę ką jis daro, bet tikrai ne. Jei abejojate, iš esmės, tai tiesiog būti protingas. Mūsų mokymo programą, turime visai sąrašas dalykų matome, kaip pagrįstai palyginti nėra pagrįstas. Pavyzdžiui, pagrįsta yra jums ir jūsų draugas aptarti, kas geriausias būdas eiti apie logiškai sprendžiant problemą. Tai gana protinga. Kas būtų nepagrįsta yra, jei jūs vaikinai gavo kartu, atspausdintas tą patį kodą, ir įjungtas į tą patį kodą. Tai ne protinga. Tas pats, tipo esė. Jei norite diskutuoti su savo draugu, ei, Tai yra tai, ką aš noriu rašyti. Tai yra žingsniai Noriu imtis parašyti apie tai, puikus. Tai puiku. Prašome bendradarbiauti viena su kita. Jei vaikinai pradėti rašyti tą patį, įjungti toje pačioje esė, tai mažiau Gerai. Taigi, kai kyla abejonių, tiesiog nereikia daryti. Čia mes CS50, turime scenarijų kad paleisti automatizuoti išbandyti ne tik savo kodą teisingumą, bet ir savo kodą unikalumą. Taigi prašome ne pateikti mums padėtyje turintys perduoti savo bylą EXCOMM. Prašome tiesiog visiems, tegul tik kad ši nuostabi patirtis. Kiekvienas mokosi geriau, mes visi esame laimingesni, ir mes visi nustatyti iki pavyks šį kursą. Kažkas, kad labai Unikalus apie šios klasės kad aš manau, kad kiekvienas tikrai turėtų atkreipti dėmesį į tai, kad mes turime kas vadinama apgailestauju sąlyga mūsų mokymo programas. Taigi, iš esmės, per 72 valandas, jei manote, kad padarei kažką Jūs nesate tikras, buvo reikia, prašome atvykti pas mus. Pažadame, kad per 72 valandas mes rankena bylą patys nesikreipdama į aukštesnę institucija administracija. Taigi, jei jūs ateiti pas mane ir sako: Andi, ei, aš tikrai atsiprašau, bet aš manau, kad yra pora linijų mano kodas praeitą naktį, kad I rūšies googled, išlipo iš kamino Perpildyta, kopijuoti ir įklijuoti, ir aš tikrai, tikrai gaila apie tai, leiskite man žinoti. Prašome ne tik tegul jis pūliuoti ir tiesiog tikiuosi, kad sugauti jį. Mes sugauti jį. Tiesiog ateiti pas mane. Leiskite man žinoti, per 72 valandas. Mes išsiaiškinti sprendimą. Ir mes pažadame, kad mes ne skaitykite universitetų valdžios institucijos iš esmės. Taigi, tai geriausia jūsų labui tiesiog būti sąžiningas su visais dalyvauja metu. GERAI. GERAI. Taigi dabar, greitai, kol Aš judėti į priekį, ar kas nors turite klausimų dėl logistikos apie tai, kaip kursuose mes ketiname paleisti, kaip skyriai vyksta paleisti, bet, kad? GERAI. Taip. Auditorija: [nesigirdi]? ANDI Peng: Taip. Taigi quizzes-- kiek iš jūsų yra į pirmadienis / trečiadienis skyriuje? Kaip daugelis iš jūsų yra antradienis / ketvirtadienis? Gerai, kad tai kietas Split čia. Taigi taip, kad mes paleisti jis Jeilio yra tai, kad mes ketinate turėti du atskirus quizzes-- vieną kiekvienai section-- kad bus priimtas per klasę. Manau, kad tai spalio pabaiga spalio kažkas panašaus, kad, kaip per savaitę vieną viktorinos. Taip, taip, tiesiog ateiti į klasę. Tą pirmadienį arba trečiadienį, jums dalyvauti viktorinoje. Tą antradienį ar ketvirtadienį, jums priimti kitokį viktorinoje. Bet tos pačios medžiagos bus padengtas. Taip. Geras klausimas. Taip. Auditorija: kur mes eiti patikrinti mūsų pažymius? ANDI Peng: Taip. Taigi, aš bus išsiųsti patikrinimą E-pašto kokia kiekvieną savaitę kai viktorinos yra graded-- arba Atsiprašome, kai psets yra rūšiuojami. Psets paprastai pasuko į iki pietų arba penktadienį. Taigi, aš pažadu, kad aš bandyti gauti juos atgal į jūsų iki kito penktadienio vidurdienį. Kai aš Įvertinimas pset, aš atsiųsime tyrimą dėl laipsnio knygos pranešimo kad jums pasakys savo rezultatą galima peržiūrėti internete. Taigi teisę šią savaitę, po I baigti klasifikavimo praėjusios savaitės psets, vaikinai gausite elektroninį laišką pranešimas sakau jums, ei tai kur jus eiti, kad galėtumėte peržiūrėti savo pažymius. Ir jūs galite pamatyti kiekvieną suskirstymas savo klasėse. Jūs galite pamatyti komentarus. Oi, greitas dalykas, taip pat. Komentaro skyrius didysis Knyga yra kur aš tikriausiai praleisti savo laiką rūšiavimo daugumą. Taigi vienas dalykas, kad tikrai svarbu, kai vaikinai žiūrite Jūsų rūšių ant jūsų psets yra ne tik ieško tuo fiziniu rezultatą bet taip pat atsižvelgiant laiko tikrai skaityti mano komentarus. Dažnai kuris suteikia jums atsiliepimus apie tai, kaip jūs spręsti problemą. Jei jums reikia padaryti, kažkas šiek tiek geriau, konstruktyvi kritika dažniausiai yra geriausia pateikti šias pastabas skyriuje. Taigi prašom, prašom, aš ruošiuosi praleisti laiką raštu pastabas. Prašome, aš tikrai vertiname tai jei jus vaikinai būtų perskaityti šias pastabas. GERAI. Saunus. Gerai. Taigi mes ketiname pradėti kalbėti ir tiesiog peržiūrėti greitai kai kurie iš iš medžiagos, nuliui tik todėl mes savaitę dešinėje puslapio pradedant šios savaitės problemų. Taigi, o kilpa yra vienas iš trijų tipų kilpų aptarėme anksčiau šioje klasėje. Kurį laiką kilpa esmės parašyta sintaksę kur, o tam tikrą būklės, tai padaryti pakartotinai, tiesa? Pagalvokite apie tai šiuo grafika čia. Jūs ketinate prasidėti tam tikru savo kodą. Jūs ketinate įvesti ciklo būklę if-- Nemanau know-- x yra mažiau nei vienas. Jei tai tiesa, kad jūs ketinate vykdyti kilpa kūną. Ir jūs ketinate nuolat daro kad vėl, vėl, vėl, daugiau ir over-- kuris yra, kodėl tai loop-- kol Jūsų būklė taps klaidinga. Taigi, tokiu būdu, kurio laiko kilpa yra vienas iš paprastesnių būdų rašyti bet kokį būklės rūšiuoti, kad reikia kartoti vėl ir vėl ir vėl. Tiesiog būkite atsargūs, kai rašote jokios kilpos rūšiuoti kad jūs turite išeiti būklės, gerai kaip kokia atnaujinimu yra todėl, kad jūsų ciklas ne tik paleisti daugiau ir daugiau be galo. Bet kuriuo atveju, jūs ketinate nori įsitikinti, kad jūs keičiasi kai aspektą savo kodą arba bent kilpos pabaigoje tiesiog įsitikinkite, kad jūs turite būdą perėjimas į būklę kad norite susitikti pabaigoje. Ar tai prasminga visiems? Mes tiesiog nenorime būti pasivijo šiame spirale kur mes einame aplink ir aplink ir nėra jokios pertraukos kilpą. Ir kiekvieną kilpa esmės turi daryti, kad taip. GERAI. Antra, daugelis iš jūsų jūsų Mario psets tikriausiai turėjo įdarbinti šio tipo kilpa. Tai vadinama, o kilpa daryti. Pirmiausia, Can anyone tell me koks skirtumas tarp do skirtumas o kilpos ir while cikle yra? Taip. Auditorija: while ciklas do veikia ne pirmas [nesigirdi]. ANDI Peng: Taip, tiksliai. Taigi do while cikle visada daro viską, yra viduje darbų, Skliausteliuose ten ir daro šią sąlygą Prieš tikrinant the-- Atsiprašome, Ar tai kodą prieš tikrinant sąlyga. Ir tai ypač svarbūs mus čia į šią klasę, nes dauguma kartų mes ketiname norite greitai už tam tikrą indėlį rūšiuoti vartotojas. Ir tada, priklausomai nuo to, įėjimo jie mus tada mes galime įvertinti, oi, tai turime paskatinti juos vėl? Taigi Mario, jei vartotojas padovanojo tau neigiamas aukštis, pavyzdžiui, jūs ketinate pirmą eilutę ir daryti viską, kas viduje. Tada jūs ketinate patikrinti užtrukti. Jūs žinote, yra neigiamas 1, yra tai, kad teigiamas skaičius? Jei taip nėra, aš ruošiuosi eiti atgal ir pakartokite daryti ir pakartokite ir pakartokite ir pakartokite, kol jie Galiausiai jums numerį, kuris jums patinka, kad mes visi galime įdarbinti mūsų kodą. Tai gana svarbus iš esmės bet kuris vartotojas įėjimas. Galiu jums garantuoti, bet kartą iš pset kur prašome įvesti bet kodą rūšiuoti, mes tikriausiai suteiks jums testas byla, kurioje mes ketina suteikti jums kažką blogo tai ketiname bandyti nutraukti savo kodą. Jei mes stengiamės paprašyti jūsų įvesties AN sveikas, mes galime tik suteikti jums eilutę ir pamatyti, kaip jums būtų dirbti, kad. Jei mes prašome jus įdarbinti amžių, mes galime suteikti jums neigiamą skaičių pamatyti, kaip jūs būtų dirbti, kad. Tiesiog įsitikinkite, kad jums vaikinai bandymai Atvejai, kai jums nereikia gauti geriausias įėjimas, tegul tiesiog pasakyti. Ir nors kilpa Do Neretai geriausias būdas sukurti savo kodą, , kad jis atitinka tą apimtį. GERAI. GERAI. Taigi tai yra tikriausiai labiausiai kompleksas kilpa iš trijų kad mes pažvelgė iki šiol. Ir atrodo labai baisi ne pirmas. Bet aš jums garantuoti, kai jūs vaikinai gauti, kaip naudotis už kilpa pakabinti, tai vienas iš labiausiai naudingų dalykų, Naudingiausi įrankiai savo arsenalą juda į priekį šioje klasėje. Taigi, pavyzdžiui, į nulio, mes turėjome tai labai paprastas blokas kad tik pasakė pakartoti tam tikras frazių tam tikrą skaičių kartų. Beje, SAJ-- tai Scaz Andi Jasonas. Mes dažnai pasirašyti mūsų laiškus saj. Jei sakome saj, neturi būti painiojama. Štai tik mums. Taigi nulio, mes galėjome turėti blokas tai sakė, pakartokite Aš myliu SAJ! 10 kartų. Labai paprasta. Už tai logika yra labai, labai paprasta, tiesa? Noriu pirmas eiti per pirmas laikas ir pamatyti, kad antrą kartą ir pamatyti, kad trečią kartą, tt ir taip toliau, kol paspausite 10. Ir kaip mes reikštų, kad kodas yra tiesiog per for ciklas paprasta. Taigi, jūs ketinate paskelbti kintama čia, šiuo atveju, su tarpt. Mes ketiname pavadinti Nejaugi aš. Mes ketiname inicijuoti ją iki 0. Ir stabdymo leidimas yra bus i yra mažesnis nei 10. Ir atnaujinimas bus i ++. Ir per kilpą, jis ketina vykdyti, kol galiausiai ji hitai condition-- galą, kuriame atveju, tai bus pertrauka kilpą. Turėtų būti daiktų, kad jums vaikinai visi rūšies matęs ir turėjo padaryti jūsų problema nustatyti vieną. Ar kas nors turite kokių nors klausimų dėl už kilpomis dabar? GERAI. Didysis. GERAI. Taigi tiems iš jūsų, kurie turi skaityti pset spec šią savaitę žinau, kad mes ketiname turėti įdarbinti kažką vadinama ASCII ASCII ir stalo. Taigi Dovydas paskaitą perėjo trumpai kaip kompiuteriai essentially-- viskas užkoduota kompiuteriu dvejetainis iš nulių ir. Ir taip, kad kompiuteriai gali saugoti skirtingas vertybes, be į nulių ir yra per kartografavimo šie skaičiai atstovauti kitoms skaitmenys arba iš esmės kitų simbolių. Taigi šiuo atveju yra ASCII table-- visi ji yra žemėlapis ženklų, simbolių, į numerius. Taigi kodo failą Jūsų computer-- ji mato, Ei, iš nulių ir krūva, nulių ir, nulių ir. Štai ką saugomi į Tikrasis atminties kompiuterio. Bet kai mes, žmonės nori bendrauti su kompiuteriu, mes want-- pasakyti, pavyzdžiui, jei noriu didžiąją A, Aš ruošiuosi reikia tam tikru būdu pasakoja kompiuterį, OH, kai aš tipo didžiąją A, aš tai tai atstovavimas dvejetainius. Ir taip, kaip mes darome, kad būtų išmetė savavališkai dalykas vadinamas ASCII lentelę, kur mes, kaip žmonės, kaip programuotojai, prieš kurį laiką, mes savavališkai nusprendė, kad mes einasi priskirti šias numeris vertės Šių simbolių. Taigi vaikinai gali google tai internete. Aš manau, kad yra nuoroda į jį savo pset-- tik ASCII žemėlapis stalas, ASCII stalo. Tai tiesiog verčia dvejetainis numerius į simbolius. Ir tai bus labai naudinga jūsų problemos rinkinys kai norite apskaičiuoti nieko arba jei norite rodyti tam tikrą simbolių ar sveikieji skaičiai arba manipuliuoti tam tikrus simbolius. Tai bus labai Svarbu, kad jūs visi žinoti, kaip naršyti ASCII lentelę. Taigi, pavyzdžiui, į didžiąsias A atstovauja skaičius 65. Ir mažosiomis atstovauja 97. Todėl labai svarbu žinoti, kad skirtumas tarp dviejų reikšmių yra 32. Dažnai, jei jums reikia konvertuoti iš vienas į kitą, skirtumas yra 32. Ir nesijaudinkite, jei esate natūra sutrikusių apie tai ne pirmas. Mes eiti per tai, kaip mes norėtume dirba tai faktiškai kodą. GERAI. Taigi tiems iš jūsų, su nešiojamaisiais kompiuteriais iš, nedvejodami atsigriebti ASCII lentelę, nes tai tikriausiai reikalauja, kad jūs vaikinai nuoroda ką personažai. GERAI. Taigi žinant, kad tam tikra simbolių žemėlapį į tam tikrus numerius, jei aš buvo paleisti tik pirmas linija, kad code-- į printf A, mažosiomis yra minus didžiąsias A. Ar kas nors turi apie tai, kas būtų spėti spausdinti iš ekrano dabar? Taigi pirmiausia, ką mažųjų atstovauti? Tai, kas numeris yra tai, kad užkoduotas ASCII lentelėje. Atsiprašome? Auditorija: 97? ANDI Peng: 97, puikus. Ir kas yra didžiosios Ã? Auditorija: 65. ANDI Peng: Taigi, kas yra 97 minus 65? Auditorija: 32. ANDI Peng: Gerai. Taigi, ką jūs manote ketina atsitikti, kai aš įvestį, kad linija kodą į savo kompiuterį? Auditorija: [nesigirdi]. ANDI Peng: Atsiprašome, kalbėti. Nesijaudink. Tai labai saugus aplinka, atėmus kamera. Mes visi vyksta to-- be rūpesčių. Tiesiog mes visi ketiname apsimesti, kaip tai tik mums atšaldymo šiame kambaryje. Nesijaudink. Ne klausimas yra pernelyg kvaila. Nėra atsakymo yra kvailas atsakymas. Aš tikriausiai klysti į mano mokymo kursą. Rimtai, vaikinai, tik leptelėti jį. Būkite tikri savimi, žinote? Taigi, kas tai buvo? Kas sakė, kad paskutinį atsakymas? GERAI. Shout, kad gražus ir aiškus. Auditorija: 32? ANDI Peng: 32. Gerai, tegul paleisti šį kodą ir pamatyti, jei tai, kas vyksta. GERAI. Taigi, kaip jūs vaikinai gali rūšies matyti, tipiškas notacijos aš įsteigė čia kaip mes naudojame bet programoje Rūšiuoti mūsų kompiuteryje. Mes turime pagrindinę funkciją per mūsų pagrindinė funkcija. Aš tiesiog ketinate kopijuoti ir įklijuokite šį kodą liniją. Taip pat būkite atsargūs, kai jūs vaikinai yra kopijuodami kodą. Kartais tam tikri operatoriai nereikia apklijuoti teisingai. Tokiu atveju, atėmus ženklas buvo iš tikrųjų brūkšnelis. Ir taip kompiuteris nebuvo pasiimti. Taigi turėjau grįžti ir fiziškai Pakartokite kad. Tiesiog būkite atsargūs, kai vaikinai tai daro. GERAI. Mes ketiname paleisti tai čia. Taigi mes ketiname cd į mūsų section2. Aš vadinama ši programa asciimath. Taigi nepamirškite, kai mes paleisti bet programa, visų pirma norime kaupti ją paleidę jį per mūsų markė. Ir tada mes norime iš tikrųjų paleisti atlikdami DOT-velniop programa. Taigi mes ketiname ./asciimath. Teisė, ten mes einame. Ir mes matome 32. Šauniai padirbėta. Jūs nusipelno saldainiai gabalas. Saldainiai už jus. Atsiprašau. Gerai. GERAI. Taigi, mes galime grįžti prie mūsų pavyzdyje. Aaa, ne. Aaa. GERAI. Aš tik ketina jį laikyti, kaip kad. GERAI. GERAI. Taigi, kaip jūs vaikinai galite pamatyti, ką galime padaryti daug labai įdomių dalykų, daug labai įdomių dalykų, daug labai sudėtingi dalykai, susiję su ASCII simbolių ir skaitmenų. Kai jūs gaunate žemyn linija penki, tai daug sekti kartu. Mes neketiname eiti per skyriuje. Nesivaržykite, jei galite, Paaiškinimas ant popieriaus Pirmasis, ką reikia vyksta, kai vertybių įvedėte tokia eilutė. Pavyzdžiui, tuo, kad pastarąjį linija, turime z-- kuri atstovauja tam tikrą number-- a-- kuris taip pat reiškia tam tikri number-- plius 1 MODULOS 26 plius mažosiomis a. Jei vaikinai nuolat skaityti per šiuos, jums gali pamatyti modelis sugalvoti kaip mes manipuliuoti kodą. Aš labai, labai rekomenduojame juk jus skyriuje vaikinai eiti į priekį ir įvesties tie visi jūsų kompiuteryje ir pamatyti, kokios numeriai išeina ir protavimo per Kodėl tie, kurie vyksta, nes jūsų psets tai bus tikrai svarbu jums suprasti kodėl tam tikri dalykai vyksta. Visi šie skaidres bus internete. Taigi ne apie bando rūpesčių fiziškai nusikopijuokite pastabas. Viskas internete. Tai pati skyriuje bus internete. Visi mano kodo, kad Bėgu bus internete. Taip. Ar jūs vis dar turite klausimų? Auditorija: Kas yra MODULOS? ANDI Peng: Gerai. Taigi modulį yra operatorius, ketina būti gana svarbi jūsų vaikinai Liaudies pset čia. Taigi taip, kad operatoriai C ir programavimo darbo yra tai, kad jūs turite tai, kas vadinama padalinys simbolis ir modulis simbolis, kuri yra kaip procentų ženklas. Taigi C, kai jūs darote sveikasis skaičius dalijamas iš sveikojo skaičiaus su pasviruoju brūkšniu, C turi tendenciją norite iškirpti išjungti visus dešimtųjų kiekis, nes yra sveikas skaičius nori konvertuoti į visumą. Jis nesiruošia norite būti dvigubai su kablelio visi po to krūva. Taigi, jei aš tai padaryti 3 padalintas iš 2, tai vyksta atkirsti 0.5 ir tiesiog suteikti jums 1 d. Taigi, kad kažkas bus labai atsargūs, kai jūs daro kokią nors matematika rūšiuoti programavimo, yra ta, kad šie skaičiai gausite gali būti ne numeriai kad jums buvo mąstymas, kuris yra, kodėl apvalinimo jūsų paskutinis pset yra labai svarbi. Modulo suteikia jums dalį. Taigi, pavyzdžiui, jei aš 3 modulį 2-- taip 3 proc ženklas 2-- jis duos jums, kad likusią dalį. Taigi 3, padalytą iš 2 1.5. Tai 1 likusi 1. Tai suteiks jums 1, kuris yra, kad likusi. Taigi, kai jūs vaikinai juda per ASCII lentelę, modulį bus baigti yra kažkas, kad labai svarbu, ir mes aptarsime, kad vėliau. GERAI. Taigi kažkas, kad yra gražus, gana naujas ir gana unikalus kad mes aptarti šią savaitę tai, ką masyvas yra sąvoka. Taigi, masyvo yra pirmasis tipo duomenų struktūra kad mes ketiname susidurti šioje klasėje. Visi duomenys struktūra yra kai savavališkai rūšiuoti, pažodžiui dalykų, pavyzdžiui, struktūra kad mes, kaip programuotojai sukūrė, kad mes įdėti mūsų kodą, gali būti kitų vienetų kodą. Taigi šia prasme yra array-- galvoti apie tai, kaip failo CAB, kur, jei atidarote skiriasi lentynos jūsų failo CAB, galite prieiti prie skirtingų dalykų. Atmintyje, masyvas yra tiesiog daro tas pats dalykas kompiuteryje. Jūs galite turėti skirtingą blocks-- mes skambinti jiems indices-- masyvo. Tai kaip blokas, iš atminties lentyna kad mes sukūrėme per savo Kompiuteris, galite įvesti tam tikri dalykai skirtingose ​​erdvėse. Taigi su masyvo, jums visada turi specify-- Jūs turite nurodyti, skelbiantys masyvo tokiu formatu. Jūs ketinate pirmą kartą nurodyti duomenų tipą kad norite sukurti masyvo. Jei aš noriu yra sveikųjų skaičių masyvas, Aš ketina pateikti int teisę ten. Jei aš noriu yra eilučių masyvą, Aš ruošiuosi įdėti eilutes ten, Jūsų masyvo vardas, o tada jūs ketinate turėti skliaustus. Ir viduje laužtiniuose skliaustuose, jūs teks savo masyvo dydį. Kažkas, kad tikrai svarbu nepamiršti kuriant masyvus yra kad, kai jūs sukuriate masyvas, kad dydis negali pakeisti. Taigi, jei žinote, kad dabar turite iš 10 dydžio masyvą, jūs žinote, kad aš ruošiuosi turėti 10 ląsteles per arba 10 rodiklių šioje masyvas, ir jis niekada išplėsti arba sumažinti nesvarbu ką, ir kad ten Šiuo metu tik 10 blokai erdvės paskirstyti savo atminties, kurios gali laikyti iki 10 dalykų, bet kokio jūs įdėti. Taigi, tokiu būdu, masyvo duomenų tipas, duomenų struktūra, kuri yra matrica labai skiriasi nuo kai kurių kitų mes būti padengti vėliau šį kursą. Taip. Pavyzdžiui, jei norite sukuria 3 dydžio matrica, esančios kintamieji integer-- Oi, atsiprašau, iš temperature-- ir temperatūra, iš Žinoma, yra sveikas skaičius. Taigi, mes sukeltų LC, kuris yra duomenų tipas, ką mes norime saugoti. Mes ketiname tai vadiname temperatūrą dėl nomenklatūros įvardijimo labui kažkas, kad mes visi suprantame. Ir mes ketiname turėti skliaustus. Ir mes norime tris numerius. Taigi mes ketiname daryti trijų viduje ji. Kažkas, kad tikrai Svarbu nepamiršti, yra tai, kad matricos yra nulis indeksuojami. Visa tai reiškia, kad jums pradėti nuo 0 indeksą, ir paleisti iki per dydis masyvo minus 1. Taigi, pavyzdžiui čia, mes turi apie 3 dydžio masyvo. Tai bus galima surengti tris reikšmes. Bet numeriai themselves-- kad skaičius, masyvas, kad indeksas, masyvas, yra 0 per 2. Taigi vaikinai, tikrai, tikrai atidūs jūs ketinate per jūsų problemos nustatytų ir sukurti bet kokio masyvo rūšiuoti, nes iš karto tai daug tikrai, tikrai lengva pamiršti, kad. Aš iš tikrųjų neturi indeksą 3, kad aš šiuo metu tik turėti 2 indeksą. Ir jei jūs bandote pasiekti trečiąjį indeksą, tai bus kas vadinamas null terminatorius. Jis nesiruošia iš tikrųjų egzistuoja masyvo. Ir kompiuteris nesiruošia tai patinka. Taigi būkite atsargūs, kai jūs susipažinimo dalykų tiesiog siekiant užtikrinti, kad jums prisiminti kad matricos yra nulis indeksuotas. GERAI. Taigi pirmas pavyzdys yra tik vienas iš būdų sukurti masyvą. Antrasis pavyzdys Turiu Toliau yra tik atskiras būdas sukurti, kas yra tie patys duomenys struktūra, kurią mes ką tik įvestas. Taigi vietoj fiziškai veikia per ir išleisti temperatūra nuo 0 lygus whatever, temperatūra 1 lygus nepriklausomai, temperatūra 2 dydžiu neprilygstami kas, galėjau iš tikrųjų tik tiesiogiai sukurti visa tai vienoje eilutėje į temperatūros laužtiniuose skliaustuose lygus. Ir pranešimas šiuo atveju, jums nereikia nurodyti, kaip didelis jūsų masyvas, nes kompiuteris ketina eiti per ir pamatysite, kad ten trys elementai tose garbanotas petnešos. Ir tai vyksta žinoti, gerai, Man reikia apie 3 dydžio masyvo. Jūs neprisijungęs ketinate reikia įvesties jis tokiu būdu. Ir taip pat, taip, kad taip. Ar kas nors turite klausimų apie tai, kaip mes darome masyvai arba kaip veikia masyvo struktūra? Taip. Auditorija: [nesigirdi]? ANDI Peng: Taip, tiksliai. Taigi, jei jums buvo paskelbti ir inicijuoti masyvas šis metodas, kuris yra antras būdas, galite tiesiog palikti juos. Ir kompiuteris automatiškai žino, kad ji reikia suskaičiuoti, kiek daug elementų yra tose garbanotas petnešos, atskirti kableliais. Taigi čia jie mato 65, 87, 30 d. Kad kompiuteris žino, OH, ten trys sveikieji skaičiai. Žinau sukurti masyvo vardą temperatūra su trijų elementų į jį. Geras klausimas. Taip. Auditorija: Ar ne būtų galima sukurti su skirtingų tipų duomenų masyvo kad gali būti įtraukti į jį? Pavyzdžiui, skaičių [nesigirdi]? ANDI Peng: Dėl tikslais šios klasės, ne, dabar. Kai kuriate duomenis struktūrizuoti kaip masyvą, sakai kompiuteris, ei, man reikia tavęs skirti tai daug atminties mano kietajame diske, su kiekviena ląstelė būdamas tam tikras skaičius bitai. Įsiminti mes sužinojome savaitę nulį, skiriasi duomenys rūšys turi skirtingus dydžius? Taigi, pavyzdžiui, styginių yra skirtinga suma erdvės, nei char, kuri yra kitoks suma erdvėje iš sveikojo skaičiaus. Ir todėl, jei nenurodysite ir jūs sumaišoma ir suderinti Kokie kintamieji turite, kompiuterio bus labai sutrikę. Ir ji nesiruošia žinoti kiek atminties duoti jums. Taigi tikslais dešinę dabar, kompiuteriai gali tik pripažinti vienos rūšies masyvo. Geras klausimas. GERAI. Taigi Natūralu, kad Antrasis klausimas turime yra gerai, dabar, kad mes sukūrėme masyvas ir mes sudėjome visų šių dalykų masyve, kaip mes bus galima ją gauti? Taigi tipinę struktūrą, kad mes visada prieiti prie masyvo yra mūsų miela kilpa. Aš jums pažadu, vaikinai, kad mes būsime matome iš Šitas daug čia. Iš esmės, bet kuriuo metu norite į įvesties verčių į masyvą ar norite prisijungti prie juos, tuo Geriausias būdas tai padaryti yra už kilpos, nes už kilpos, jums žinoti, kiek kartų jūs esate ketinate norite paleisti per masyvas, nes jūs turite sustabdyti leidimą, tiesa? Ir kiekvieną kartą paleidus per, galite prieiti prie kitoks elementas masyvo. Taip pat, tai yra priežastis, kodėl paprastai Mes pradėjome mūsų už kilpomis tuo 0 verte, nes kai jūs gaunate prieigą matricos, Jūs galite patekti į nulinį indeksą. Ir todėl jis lygiuojasi labai gražiai. Vaikinai gali norėjau rašyti int i lygus 1. i yra mažiau nei arba lygus 3. Bet tai ne darbas visai taip gerai čia, nes tik Jums turi elementus, 0, 1, 2 ir. Ir todėl, jei jums buvo pradėti savo i tuo elemento 1, 2, ir 3, jūs ketinate baigti veikia iš jūsų masyvo ribų, ir blogų dalykų nutiks. Taigi tikiuosi jus vaikinai pamatyti Segue kodėl ankstesniuose klasių mes buvome moko jus vaikinai, kaip paleisti ir formatuoti už kilpa kelią, kad mes buvome. Tai todėl, kad dabar mes perkėlėte į masyvų, jūs galite pamatyti, kodėl 0 skolina Pati labai gražiai galima susipažinti. Taigi, kaip mes darome tai that-- aš tik spausdinant ją čia sumetimais spausdinti jį. Bet turiu vietaženklį, atskirdami juos kableliais. Ir tikrasis prieigą dalis vyksta. Masyvo vardas buvo vadinama temperatūra. Taigi, tai temperatūra ir i-asis elementas masyvo. Taigi, kaip už kilpos eina per, jis ketina pradėti 0. Ji ketina išspausdinti 0. indeksas šio masyvo. Tada jis ketina spausdinti iš pirmojo elemento. Tada jis ketina spausdinti iš antros. Ir tada mes ketiname nutraukti. Ar kiekvienas aiškiai kaip kad vyksta? Didysis. Gerai. Taigi čia mes turime būdą sakydamas, jei mes nenorėjome kietojo kodu in-- mane kaip programuotojas. Aš nenorėjau, kad iš tikrųjų fiziškai įdėti į kiekvieną atskirą elementą Šio masyvo. Jei aš norėjau vietoj turi vartotojo įvesties verčių, kas yra geriausias būdas tai padaryti? Na, čia aš sukūriau Tai puikus funkcija, į kurį galiu paskelbti masyvą. Taigi int scores-- tegul tiesiog pasakyti, kad mes norime, kad masyvas, kad surengė visų 18 rūšių studentų Čia, šiame skyriuje. Manau, mes turime šiek tiek daugiau nei 18 vaikai ir šiandien. Bet, pavyzdžiui labui, tegul tiesiog manyti, mes turėjome 18. Norėčiau sukurti masyvą pavadinimas sąskaitas su tipo tarpinis junginys, nes balų, žinoma, yra skaičiai. Ir aš ruošiuosi 18 laužtiniuose skliaustuose, nes tai, kiek studentų Aš nori, kad būtų galima laikyti daugybę. Ir aš taip norėčiau užpildyti masyvas yra tai, kad aš per jį paleisti už kilpos, iš Žinoma, su 0 yra mano 0. indeksas. Ir tada su 18 yra mano sustojimo leidimas, nes ten 18 elementų masyvą. Ir tada aš ruošiuosi daryti printf, įveskite pelnyti student-- bla bla bla. Can anyone tell me, kodėl čia aš spausdinti i plius 1 ir ne aš? Tai tipo triukas klausimas, tikrai ne. Tai iš tikrųjų nėra fiziškai įtakos kodas veikia. Taip. Auditorija: [nesigirdi] 0? ANDI Peng: Taip, tiksliai. Tai šiek tiek nepatogu sakyti, ei, Jūs esate 0. studentas šioje klasėje. Tai šiek tiek keista. Taigi mums, kaip žmonėms, ne tikrai patinka galvoti apie tai, kaip kompiuteriai manote. Taigi, nors į kompiuteryje, tai saugoti vertybes į 0-ojo indekso kai mes žmonės, mes tikrai ne norėtų paminėti patys kaip nulis. Taigi, kai aš tiesiog atsispausdinti, kad Aš ruošiuosi atsispausdinti ir pridėti 1 tik dėl aiškumo. Taigi, kai aš spausdinti, aš ruošiuosi būti gali spausdinti studentus nuo 1 iki 18. Tai nėra iš tikrųjų paveikti Kodekso veikia jokiu būdu, aš būdas spausdinti. Tačiau būkite atsargūs, kai jūs realiai patekti į masyvo. Kai pamatysite balai i Nuoroda Čia aš iš tikrųjų susipažinimo su 0-nį indeksą ir ne 1 plius 0-- arba 1 plius 1, šiuo atveju, indeksas taip, kad tai tikrai aišku. Ar kiekvienas rūšies OK kaip tai veikia per ir su kiekvienu rodyklės aš išleisti vertę į masyvą ir sukurti su 18 skaičių masyvas kad vartotojas ketina įvesti? GERAI. Saunus. GERAI. Mes dabar perkelti į kažką, kad gana svarbūs šios dalių rinkinys, taip pat. Žinau paskaitos David-- Atsiprašome, jūs turėjote klausimą? Auditorija: Ar galite jį padidinti? ANDI Peng: Taip, taip, aš bandžiau. Bet aš nežinau. Dėl tam tikrų priežasčių, tai versija PowerPoint yra tikrai neveikia gerai su ekrane. Taigi mes tiesiog vyksta laikyti jį kaip šis. Visa tai bus įkeltas internete. Atsiprašome, vaikinai. Taip. GERAI. Taigi, mes taip pat gali turėti stygos. Taigi, jei jus vaikinai iš tikrųjų notice-- I žinoti Robas perėjo tai toje paskaitoje kad jis did-- eilutė yra iš tikrųjų tik simbolių masyvas, jei jūs manote apie tai, tiesa? Styga yra pavadinimas arba sakinys ar žodis, tiesa? Jei aš būčiau sukurti eilutę, pavadintą Andi-- tik mano vardą, N-D-I priedą. Manote, kad tik vieną kintamąjį. Bet iš tikrųjų, tai suskirstytas į tik pagal simbolių masyvo. Taigi jis gavo charakterio saugomi masyve vertės. Jis atšoko n charakterį saugomi antrasis indeksas ir taip toliau, ir taip toliau. Taigi, tokiu būdu, mes iš tikrųjų turi tokio pobūdžio struktūros nustatyti padėkite mūsų stygos. Taigi čia, jei aš buvo įvesti į Žodis "valgyti", - taip styginių žodis lygus gauti eilutę. Jei aš būčiau įvesti žodis "valgyti", kad yra fiziškai taip, kad mano kompiuteris yra saugoti, kad seka mano atmintyje. Ir jei aš norėjau paleisti per, kad ir spausdinti, kad out-- Taigi į i lygus nuliui, atminkite, kad paskaitos, mes kuriems kažkas, kad vadinama strlen, arba eilutės ilgis. Nes aš ne iš tikrųjų žinote, kaip didelis masyvas yra bet kokio vartotojo inputting-- Pavyzdžiui, aš įvedamos žodis "valgyti", ir aš žinau, tai trys simboliai, tiesa? Taigi galėčiau įdėti į trijų joje ir viskas bus gerai. Bet jei jūsų naudotojo įvesties kažką tai yra skirtingas skaičius vertybių, jūs ketinate negalės tikrai žinau, kad, kai jūs užprogramuoti kodą. Taigi taip, kad mes tvarkome testinius atvejus kaip kad yra tai, kad mes turime kažką vadinamas strlen, kuri yra tik funkcija kad jums pasakys, kiek laiko eilutė yra. Taigi strlen žodžio. Mano žodis yra valgyti. n yra lygus strlen iš žodžio. Ar kas nors man papasakoti, kas tai vertė iš tikrųjų yra teisus ten? Ką N atstovaujanti teisė dabar, šiame pavyzdyje, jei aš turėjo maitintis? Auditorija: 3. ANDI Peng: 3, tiksliai. Taigi, mes turime int i lygu nulis, n yra lygus 3, iš esmės. Ir aš ketina paleisti kol jis mažiau nei 3i ++. Ir ji ketina iš esmės eiti per ir padaryti tą patį. Ji ketina išspausdinti kas vertė ir duoti jums El-A-T. Tai tiesiog žymintis skiriasi būdas jį raštu. Tai ketina būti labai naudinga. Taip. Auditorija: Kokia nauda išleisti n yra lygus strlen žodį viduje, kad for ciklas [nesigirdi]? ANDI Peng: Taip. Taigi, jei aš būčiau to-- pasakyti, pavyzdžiui, jei aš buvo padaryti, kad ir tada do-- oop--, kad mano kodas, ji būtų iš tikrųjų daro, kaip tą patį dalyką. Tačiau būdas, kad Davidas paaiškino IT paskaitos metu, jei kuri nors iš jūsų vaikinai atminkite, kad, kaip žmonės, kaip programuotojams, mes tikrai pabandyti programuoti DUK kodas, kad mūsų kompiuteris turi dirbti minimali tiek, kiek įmanoma, todėl kad mūsų kodas yra labai veiksminga. Taigi, jei aš turėjo, kad, ką nutiktų per mano už kilpos yra tai, kad aš pirmą kartą norime paskelbti kintamasis pavadintas i bus 0. Aš einu patikrinti, OH, kokie žodžio strlen? Oi, strlen yra 3. Taigi yra i mažiau nei tris? Taip tai yra. Aš ruošiuosi paleisti. Ir tada antrą kartą grįžti aplink kilpa, aš ruošiuosi prieaugio i. Aš tai bus vienas. Ir aš ketina patikrinti, OH, bet kas iš žodžio strlen? Oi, tai trys. Ir tai daro, atrodo rūšies išlaidavimas, kiekvieną kartą paleidus per kilpą, būti tikrinant funkciją, Nors žodis strlen niekada iš tikrųjų keičia? Taigi, tai papildomai galia kompiuterio. Kai pradeda kalbėti apie dalykus, kad yra milijardai ir milijardus ir milijardai vietų ilgas, įsivaizduoti kompiuterį turintys fiziškai eiti per ir patikrinti visų, kad kiekvienas laiką. Štai kodėl, kad tik už siekiant veiksmingumo, mes linkę tiesiog daryti tai, nes tokiu būdu mes tik paskambinę funkciją vieną kartą pradžioje, ir kad kiekvieną kartą, kai jis eina per ji vyksta laikyti vertę 3 ten, kad jūs neturite turi nuolat tikrinti kiekvieną kartą. Taip. Auditorija: Atsiprašau. Tiesiog [nesigirdi]. Ar jūs int n lygus strlen ir įdėti kad virš lauko for ciklas taip pat? ANDI Peng: Taip. Jūs galite tai padaryti, absoliučiai. Priežastis turime jį čia nes taip for ciklas darbų yra tai, kad ji vadinama vietos kintamasis ta prasme, kad viskas jums sukurti viduje už linijos egzistuoja viduje tik už kilpos. Taigi kintamasis aš tik egzistuoja tose skliausteliuose. Ir čia N kintamieji taip pat egzistuoja tik tuose skliausteliuose. Taigi, jei jūs norite naudoti strlen iš Žodis kelis kartus apačioje, absoliučiai geriausias būdas tai padaryti būtų paskelbti jį viršų todėl jūs neturite daryti vieną kartą. Taip. Auditorija: Kodėl jūs turite nauja linija po procentų pamatyti, jei norite įdėti visus raidės šalia jos atskirti? ANDI Peng: Oi, aš norėjau spausdinti visus juos kiekvienoje eilutėje. Tai nesvarbu. Taip, tai formatavimas. Tai geras klausimas, nors. Taip, jei aš norėjau spausdinti visa tai tik viena linija, Nenorėčiau turėti į brūkšnys. GERAI. Kiekvienas geras? GERAI. Saunus. Taigi, aš manau, kad aš kalbėjau pakankamai. Jus vaikinai eilė eina per kodas ir pasakyk man, kas yra negerai čia. Kur klaidą? Taigi, kaip matote, aš deklaruotas Naujas masyvas tipas styginių pavadintas klasėje. Ir aš įvestas Sam, Jess ir Kim į jį. Ir aš bandant spausdinti visi masyvo elementai. Ar kas nors pasakykite man, kodėl tai ketina duoti man problemų? Aš duosiu jums, vaikinai, 10 sekundžių galvoti apie tai. GERAI. Taip? Auditorija: Ar kairė centras lygus 3 arba [nesigirdi]? ANDI Peng: Teisė. Taigi, kiek kartų tai yra faktiškai ketina paleisti per šį kilpa? Auditorija: Keturi. ANDI Peng: Būtent. Ji ketina per keturis kartus. Ji ketina paleisti per bent 0, 1, 2 ir 3, nes jų elementas yra i yra mažesnis nei arba lygus 3. Jis nesiruošia sustoti, kai jis 2. Tai vyksta nuolat vyksta, kol ji hitai 3. Ir kaip žinome, yra tik trys elementai mūsų tikrasis masyvo. Jei mes stengiamės pasiekti ketvirta elementas arba 3 indeksas, jūs ketinate Hit kažkur atmintyje, kad neegzistuoja. Tai vadinama null terminatorius. Nieko vyksta ten. Jūsų kompiuteris nesiruošia būti labai laimingas su jumis. Taip. Ar kas nors turite klausimų kodėl kuris buvo vyksta? Štai bendras plotas išvengti. Taip. Auditorija: Ar ne pirmas skaidrę taip pat turime 2 eilutę? ANDI Peng: Ne Taigi, iš esmės, kai darote masyvą, kad laikiklis teisė ten, kad number-- visi tai sakau jums, kaip daug elementų turiu. Tai nėra iš tikrųjų pasakoja man nieko indeksai. Taigi šiuo atveju, aš žinau, aš noriu rašyti su trijose vietose, su trimis fizinių vietų į palaikykite, ką noriu laikyti. Štai kodėl numeris trys yra. Tačiau, jei aš norėjau kad iš tikrųjų jį pasiekti, jei aš norėjau pasakyti, printf klasė laikiklis numerį, tada jūs ketinate iš tikrųjų įdėti fizinė puslapis ten. Taip, geras klausimas. Auditorija: Taigi yra fizinis rodiklis turėtų būti [nesigirdi]? ANDI Peng: aš atsiprašau. Ar galite kalbėti truputį? Auditorija: Taigi yra fizinis puslapis [Nesigirdi] kiekviena iš dėžės? [Nesigirdi]? ANDI Peng: Taip. Taigi, aš ruošiuosi grįžti į čia. Pagalvokite čia. Mes turime iš 3 dydžio masyvo. Yra trys vietos, kaip, fiziniai pamainymai čia. Bet jie pavadino 0, 1, ir 2. Taigi, jei aš norėjau prieiti prie jų, būdas, kad aš prie jų yra printf bet kokio norėjau čia. Jums reikės spausdinti dėmesį į jo vardu, nes tada kompiuteris žino, oi, man reikia ieškoti šiame masyve už 0th indeksą. Taip. Bet jo dydis nesikeičia. Dydis yra 3, nepriklausomai kaip jums ženklinti juos. GERAI. Kiekvienas geras? Auditorija: Taigi kiekvieną kartą aš [nesigirdi]? ANDI Peng: Gerai. Taigi šiuo atveju, mes darome tikrai ne patekti į ją dabar į paskaitas. Bet žinau, kad kaip I string-- minėta anksčiau, styginių yra iš esmės AN simbolių masyvas. Taigi, jei aš sukurti masyvą eilučių, I rūšies turėti iš masyvo masyvas simbolių, tiesa? Taigi, šiuo atveju, nes I turi eilučių masyvą, jei buvo įvesti tikrai ilgas žodis, kad vis dar užima tik vieną erdvę, nes tai viena eilutė. Bet jei buvo galvoti apie tos masyvo simbolių, tada, kad pradėjimo daug daugiau simbolių kaip bet kuris iš Kitaip tariant yra. Ne tikrai svarbu dabar. Bet tai tiesiog paprastai kaip jis veikia. GERAI. Taigi, tai yra kažkas, aš jums tai padaryti virš semestro kursą daug. Man reikia pailsėti mano balsą. Jūs vaikinai reikia stimuliuoti save. Daug iš jūsų tikriausiai turi miegoti dabar. Aš įvedusi atsitiktinių problemų kur mes, kaip klasės ar jūs su partneriu šalia jūs ketinate praleisti porą minučių aptarti apie tai, kaip mes norėtume eiti apie sprendimo arba sukurti programą, tokią, kaip tai. Taigi dabar mes norime sukurti program-- mes ketiname jį vadiname upper.c-- kad konvertuoja mažosiomis žodis viršutinės klasės string-- didžiąsias, atsiprašau. Žodis stygos, atsiprašau, yra sinonimai. Aš ruošiuosi juos pakeisti reiškia tą patį. Taip. Paimkite porą minučių. Ji neturi būti parašyta kokia kalba. Tiesiog Pseudocode kodą arba logiškai, kaip mes norėtume, net eiti apie tai daro tokią problemą. Taip. [PUSĖ POKALBIS] Aš taip pat pastebėjau, kad vaikinai can-- I rūšies pamatyti jau programą. Manau, man trūksta vedėjas režimas yra problema. Bet tai viskas OK. [PUSĖ POKALBIS] Taip, prašom, vaikinai. Ateikite gauti saldainių. Ateikite gauti saldainių. Auditorija: Taip! [PUSĖ POKALBIS] ANDI Peng: Taip pat, taip, Aš pradėsiu mesti saldainiai žmonėms, kurie neturi atsakyti į klausimus. Taigi jūs visi turėtų atsakyti į klausimus. Arba aš manau, žmonės, kurie do atsakyti į klausimus. Taip, atvirkščiai. [PUSĖ POKALBIS] Auditorija: [nesigirdi] ANDI Peng: Taip. Taip. [PUSĖ POKALBIS] Gerai, vaikinai. Paimkite, pavyzdžiui, dar 10 sekundžių. [PUSĖ POKALBIS] Gerai, vaikinai. Taigi, kol mes pradėti bando iš tikrųjų fiziškai rašyti kodą, geras įprotis kurti yra tas, kad norime pirmosios rūšies priežasties iš logiškai, kaip mes norėtume daryti. Jūs norite įsitikinti, prieš jus fiziškai pradėti bando kodą Mario, kad jūs padaryti Įsitikinkite, kad turite savo Pseudocode. Tai atsižvelgiant jus per ko jums reikia sukurti taip, kad kai jūs fiziškai parašyti savo programą vėliau, galite geriau sugauti klaidų Jūsų kodas ir dalykų, pavyzdžiui, kad. Taigi mes ketiname tiesiog pradėkite by-- anglų kalba, į Pseudocode, Ar kas nors nori duoti man bendrinis paaiškinimas kaip mes norėtume eiti apie tai daro? Taip. Auditorija: [nesigirdi]. ANDI Peng: Žinoma, jokių rūpesčių. Auditorija: Ar galite paprašyti jį arba paprašyti nors gauti string 1-- Taip, eilutę, ir tada-- ANDI Peng: Taip, taip, tai yra gera pradžia. Aš pradėti rašyti, atsiprašau, kaip jums kalbėti. So-- Auditorija: --Draugai mažosiomis raidėmis numeriai yra didesni, tiesa? Ar mažosiomis raidėmis turi labai daug? ANDI Peng: Būtent. Auditorija: Taigi mes atimti 32, nepriklausomai nuo jų [nesigirdi]. ANDI Peng: Didysis. Taigi, mes natūra turi bendrą prasmę kaip dirbti apie šią problemą. Žinant, kad mes rūšies išmoko fizinė būdas, kad įsipareigojimų yra saugomi atmintyje, Ką jau žinau, kad jūs ketinate tikriausiai turi rašyti kodą tam, kad pereiti per eilutę? Auditorija: Už kilpa. ANDI Peng: A kilpa, tiksliai. Didysis. Taigi, mes natūra turi bendrinis Pseudocode nurašoma kad šios rūšies suteikia Jūs pažymi kaip jūs būtų perkelti apie sprendžiant problemą. Dabar, kad jūs turite tai, jūs gali nuoroda jį vėliau kai jūs bandote iš tikrųjų rašyti savo kodą. Taigi mes iš tikrųjų galite eiti čia. Ir aš turiu funkcija vadinama upper.c-- ten jis is-- tiesiog tuščią šabloną dabar, kad jus vaikinai ketinate man padėti išsiaiškinti, kaip rašyti Šis code-- ne eilutę kodo eilutės. Tai bus daug eilučių kodo. Pradedant bet kokio pobūdžio iš tuščio pset, kas pirmas dalykas, man reikia prisiminti daryti? Auditorija: [nesigirdi]. ANDI Peng: Didžioji Yep. Įtraukti. stdio.h. Dažnai tai yra vienas iš labiausiai lengvai klaidos Žmonės bus, kai jie raštu, yra tai, kad jie bus pamiršti įtraukti Svarbu biblioteka jiems reikia. Taigi, jei tai darbo valandos ir jūs kaip, Aš nežinau, kodėl mano kodas neveikia. Ar galite man papasakoti, kodėl jis neveikia? Mes ketiname pasakyti tu #include? Turėtumėte #include ją. GERAI. Taigi mes turime standartą I / O čia. Ar tai tik biblioteka mes ketiname reikia čia? Ką dar mes ketiname daryti? Atsiprašau. Kažkas tik rėkti jį? Auditorija: [nesigirdi]. ANDI Peng: There you go. GERAI. Ir kaip man eiti apie pradedant bet kokio pobūdžio funkcijos, bet pagrindinės funkcijos rūšiuoti per mūsų programos? Int main. GERAI. Ką aš įdėti viduje čia? Koks pirmas dalykas, kurį norite padaryti? Jei norime gauti seka iš naudotojo, ką mes ketiname turėti padaryti šioje pirmoje eilutėje? Atsiprašome, vaikinai tiesiog jaučiasi laisvai kalbėti ir garsiai. Tiesiog šaukti whatever. AUDITORIJA: Klausti vartotojas? ANDI Peng: Kaip mes tai padaryti? Ask-- aš ketina įvesti "paprašyti naudotojo"? Auditorija: printf. ANDI Peng: Gerai. Printf. Ką aš noriu printf? Auditorija: Įveskite ką nors. ANDI Peng: Kaip tai? Vaikinai, apsimesti kaip aš kompiuteris. Fiziškai pasakykite man kiekvieną žingsnį kad man reikia įrašykite čia? Aš darau ką nors blogo? Turėčiau įvedėte kažką? Auditorija: Jūs turite kabučių. ANDI Peng: man reikia kabučių? GERAI. GERAI. Auditorija: Ir tada nauja linija. Kabliataškiais. ANDI Peng: kabliataškiu? GERAI. Geras. Auditorija: O gal nurodyti kad jūs norite, kad jis mažosiomis raidėmis? ANDI Peng: Didysis. Jūs vaikinai juoktis man pamiršta įdėti kabliataškį. Aš garantuoja jums kažkur šio klasei, žinoma, Jūs pamiršite įdėti kabliataškis, ir ji bus jums tris valandas išsiaiškinti kodėl jūsų kodas neveikia. Tai atsitiko mums visiems. Tai tikriausiai atsitikti su jumis. Gauti gerą įprotį naudojant Kabliataškis. GERAI. AUDITORIJA: Ar norite daryti į Atgal nerijos velniop? ANDI Peng: Žinoma. Norite padaryti backslash į? Auditorija: Taip. ANDI Peng: Didysis. GERAI. Ką daryti toliau? Auditorija: Gauk eilutę. ANDI Peng: Gauk eilutę. Taigi, ką aš tipo? Kažkas? Auditorija: Styginių Š. ANDI Peng: Styginių Š. Auditorija: GetString. ANDI Peng: Kažkas, galite pasakyti, kur Ši funkcija GetString ateina iš? Auditorija: String.h. ANDI Peng: String.h? Jūs manote, kad tai iš string.h? Auditorija: [nesigirdi]. ANDI Peng: There you go. Tai iš CS50.h. Jei jūs visada painiojama su kai bibliotekos failas yra arba antraštės failas yra, "Google" tiesiog string.h, ir aš tau pasakysiu kas yra visos funkcijos kurie yra string.h. GERAI. Taigi dabar, kad aš sukūriau eilutę Ir aš raginimas vartotojui už jį, Aš saugomi jį kintamajam pavadintas S, ką man reikia daryti dabar? Auditorija: Patikrinkite, ar tai mažosiomis raidėmis. ANDI Peng: Atsiprašome? Auditorija: Patikrinkite, ar tai mažosiomis raidėmis. ANDI Peng: Gerai, tegul tai padaryti. Kaip man tai padaryti? Tiesą sakant, šiuo tikslu Klasės dabar, mes tik ketina manyti, kad viskas kad mes įėjimo jau mažosiomis raidėmis. Jei nori patikrinti, darytumėte tiesiog pridėkite sąlyginį pareiškimą kad patikrinti, kuri tęsėsi per kiekvienas masyvo elementas ir patikrinti, jei tai tarp tam tikrų vertybių. Aš pamiršti, ką numeris vertybių mažųjų yra. Jūs galite ieškoti jį į ASCII lentelėje. Bet taip, tai tikrai gera vieta. Bet dabar, mes tik ketina manyti, kad visi eilutes mes įvesties yra mažosios. GERAI. Taigi, kaip aš einu apie ši problema toliau? Auditorija: Už kilpa. ANDI Peng: Už kilpa? GERAI. Pasakyk man, ką rašyti. Auditorija: Dėl int i lygus 0. ANDI Peng: Gerai. AUDITORIJA: O, iš tikrųjų, tada jūs padaryti kablelį ir daryti n lygus strlen. ANDI Peng: Taigi svarbiausias dalykas kad aš manau, kad ji manimi pastebėjau čia yra tai, kad mes neturėjome pasakyti int N antrą kartą mes tai padarėme. Tiesiog žinau, kad už kilpa, kai jūs nurodydamas, jūs iš tikrųjų nereikia int antrą kartą jūs kintamąjį. Galite pasakyti, n strlen. Auditorija: S. ANDI Peng: Š. GERAI. Auditorija: Tada kabliataškis. ANDI Peng: Žinoma. Auditorija: Ir tada [nesigirdi] n. Tada aš ++. ANDI Peng: Didysis. Gerai. Ką mes norime viduje tai už kilpa dabar? Atminkite, jei mes ketiname paleisti per styginių ir paleisti per masyvą, mes norime patikrinti, ką į jį. Ką mes ketiname reikia? Tai rūšies keblus dalis dabar. Kiekvienas turi spėti? GERAI. Taigi, pirmiausia, kaip mes net prieiti? Kaip mes net pirmiausia patikrinkite ar prisijungti elementas masyve? Kaip mes tai padaryti? Koks žymėjimas mes naudojame tai padaryti? Kokia šio masyvo praminė? Tai vadinama S, tiesa? Atminkite, kad bet kokia eilutė visada masyvas. Taigi -ai laikiklis Aš, tiesa? Nes tai yra dabartinė vertė arba indekso reikšmė mes tikrinimą. Ir mes ketiname nustatyti, kad vienodas to-- norime mažosiomis raidėmis vertę, tiesa? Mes norime paversti, kad lower-- Atsiprašome, Norime didžiąsias. Mes norime paversti mažosiomis raidėmis vertė į didžiąsias. Ir taip like-- aš atsiprašau, koks tavo vardas? Auditorija: Heidi. ANDI Peng: Atsiprašome? Auditorija: Heidi. ANDI Peng: Heidi. Kaip Heidi sakė Iš pradžių, mes tikriausiai ketinate reikia the-- mes tikriausiai teks atimti 32 nesvarbu iš kokio charc tai yra, tiesa? Kadangi ant ASCII stalo, skirtumas tarp mažosiomis laišką ir didžiąją raidę yra 32. Taigi, kai mes darome tai, mes tikriausiai ketinate nori atimti 32, tiesa? Taigi mes ketiname daryti O J. Ar visi suprasti, kodėl aš padariau, kad? Nes dabar, mūsų masyvas, mes tikrinant 0-nį indeksą, tiesa? Ir 0th indeksas eilutė, tai pirmasis simbolis. Ir charakteris mes ketiname manyti, kad tai mažosiomis raidėmis. Jei norime, kad ji didžiąsias, mes turi atimti 32 iš savo vertę, nes mūsų ASCII stalo, tai, kaip mes jį gauti į kitą, atitinkantis vertė, kuri leidžia didžiąsias. Ar visi suprantame, kad? Taip. Auditorija: Ar galite taip pat do mažosiomis yra minus-- ANDI Peng: Taip, taip, kad tai tikrai tikrai gera. Aš ruošiuosi grįžti į tą klausimas, kai mes tai padaryti. Taip. Ir tada, jei noriu pamatyti, kas vyksta, Aš tikriausiai norite spausdinti, ar ne? Kažkas pasakykite man, ką Norėčiau atspausdinti čia. Auditorija: printf proc c Backslash [nesigirdi]. Štai iš [nesigirdi] ai i vertę. ANDI Peng: ai aš, atsiprašau? Auditorija: [nesigirdi]. ANDI Peng: Aš nežinau. Ką tu manai? Auditorija: Na, aš wouldn't-- Spėju, kad nebūtų bring-- Norėčiau jį out viduje, nes [nesigirdi]. ANDI Peng: O, jūs turite padaryti, kad? Auditorija: Taip. ANDI Peng: Palikime tai kelią ji yra, ir aš paaiškinti, kodėl vėliau. Atminkite, kad net jei jūs turėti turėtojas, norite įdėti skliausteliuose aplink jį. Gerai. Taigi tai turėtų būti tvirtą funkciją čia. Leiskite paleiskite ją ir pamatyti, jei ji kaupia. Padaryti viršutinė. Uh Oh. Tai neatrodo labai gerai. Kodėl tai vyksta? Kaip ir su bet klaidų, norite eiti atgal ir pradėti su pirmuoju, kadangi paprastai Viena klaida priežastis daug kitų klaidų po jo. Čia mes matome upper.c: 18: 25, kuris pasakoja man šioje programoje pavadinta upper.c, on-line 18, klaidų netiesiogiai teigiama, bibliotekos funkcijų strlen su tipo unassigned-- bla, nežinau kas vyksta po to. Visa tai man sako dabar yra kad kažkas vyksta ant strlen. Ir kompiuterio painioti, nes Tai kaip, aš nežinau, ką strlen yra? Ką tai tikriausiai papasakoti jums trūksta? Auditorija: Jūs trūksta [nesigirdi] esate. ANDI Peng: Jūs teisus. Būtent. Taigi, tai yra, kai tai Svarbu įsitikinti, kad kad kiekvienas funkcija galite naudoti savo kodas yra turintys tinkamą antraštę failą bibliotekoje, arba kitur jūs ketinate gauti daug klaidų ir jūsų kodas nesiruošia žinoti, kas vyksta. Taigi mes ketiname įtraukti string.h čia. Dabar, kai mes bandome surinkti viršutinė. Sudarykite teisingai. Leiskite paleisti šią programą. Taigi tipo kažką mažosiomis raidėmis. Ką vaikinai nori tipas? Šaukite kažką. Visos teisės Charly tiesiog vaikščiojo. Mes tipas Charly vardą. Charly mažosiomis raidėmis. Ir tikiuosi, tikiuosi, tai ketina šaukti ir išspjauti Charly didžiosiomis raidėmis. Valio! ar visi suprantame, kaip Nuėjau apie sprendžiant, kad? Taip, kad aš galiu manipuliuoti naudojant sveikieji skaičiai išspręsti kažką, kad Noriu daryti stygos, nes personažai ir sveikieji skaičiai gali būti nurodyti tokiu pačiu būdu, nes ASCII žemėlapių. Taigi, norint grįžti į savo tašką, jei aš norėjau įdėti čia vietoj 32 didžiąsias Minuso mažosiomis teisingas kaip kad, kad galėtų dirbti lygiai taip pat gerai, nes tai tiesiog tik Skirtumas tarp šių dviejų verčių. Jei aš noriu, kad šis again-- Charly. O ne. Manau, mes nuėjome į neteisingą kelią, Yeah? Auditorija: [nesigirdi] mažosiomis a. ANDI Peng: There you go. Yep. Ir iš išspjauna Charly. Taigi būkite atsargūs, kai jūs atimant vertės įsiminti iš kurių vienas yra didesnis nei kitų. Pavyzdžiui, čia aš pamiršau kad mažosios a yra iš tikrųjų didesnis nei didžiąsias A. Taigi, kai aš bandė atimti jiems į kitą pusę aplink, aš gavau neigiamą 32. Ir mano kompiuteris buvo, pavyzdžiui, Aš nežinau, kas tai yra. Tai tik keletas atsitiktinių tikimybių vertė, kuri yra ne labai gerai. Ir todėl įsitikinkite, kad esate atimant reikiamo ilgio rasti norimas simbolis. GERAI. Ar kas nors nežino, kaip mes vaikščiojo rašyti šią funkciją? GERAI. Taigi iš tikrųjų, funkcija jau egzistuoja biblioteka vadinama ctype.h. Bibliotekos vadinamas ctype.h. Ši funkcija yra iš tikrųjų jau parašyta jums. Jis vadinamas viršutinių. Ir taip tikslais tai pset, jūs ketinate rasti, kad jūs tikrai norite naudoti keletas iš funkcijų daug esančius per ctype bibliotekoje. Upper, sumažinti, yra viršutinė, yra lower-- tas yra visos funkcijos kad jūs galės naudotis labai, labai greitai savo kodą, kad daro, ką šis daro. Mes rašė, kaip konvertuoti styginių į didžiąsias. Bet iš tikrųjų tai yra kodas kad kažkas parašė ir kad jūs galite pasiekti per kitą funkciją. Taip? Auditorija: Taigi jūs tiesiog nukopijuoti aisiais ten ir tai padaryti už kiekvieną laišką? ANDI Peng: Taip, nes aš neturiu rūpinasi vertybėmis. Aš tik rūpintis, kad skirtumas tarp jų yra 32, tiesa? Skirtumas tarp mažosiomis skirtumas B ir didžiosios B yra taip pat 32. Ir tarp C skirtumas ir didžiąsias C yra visada 32. Aš tiesiog rūpintis skirtumas tarp šių dviejų, nes visas raides sekti tą patį modelį, tiesa? Jei turiu skirtumą tarp vienos iš jų, Aš žinau, ką šis skirtumas tarp visi iš jų yra. Geras klausimas. Taip. Kiekvienas geras? GERAI. Oop. GERAI. Taigi kitą koncepcija tai bus labai naudinga, nes jums toliau plėtoti Jūsų kodas yra ši idėja sukurti funkcijas ar abstrakciją. Taigi dabar, mes visi imtasi algebra. Algebra, jūs mokė, kad yra Tai nuostabus dalykas vadinamas funkcijos mašina, kur, jei jums įvesties vienokį skaičiaus, jis eina per šią nuostabią funkciją ir iš pasirodo kitą produkciją, tiesa? Be kodas, tas pats atsitiks bet funkcija rūšiuoti. Taigi galėjau fiziškai rašyti mano kūnas mano kodas pagrindinis teiginys, kad iš tiesų nepriklausomai nuo kodo kūnas daro. Bet ne, kad aš taip pat galite rašyti daug skirtingų funkcijų kad padaryti daug įvairių dalykų. Pavyzdžiui, mes jau ve pradėjo naudoti kai kuriuos iš jų. Printf--, kad yra funkcija, kad kažkas jau parašyta, kad mes galime skambinti mūsų kodą. Norėdami upper-- šiuo atveju, upper-- yra kita funkcija mes parašyta, kad mes galite skambinti mūsų kodą. Ir todėl aš manau, kodėl mes net turime funkcijas? Kodėl ne mes tiesiog pop jį visi tos pačios eilutę kodo? Ji daro tai lengva visiems. Na, už tai samprotavimas yra, visų pirma, organizacijai. Tai tikrai erzina vyksta per kažkieno kodas ir vienas funkcionuoja kaip printf. Jei vaikinai iš tikrųjų žinojo, ką funkcija printf apėmė rašyti, tai, kaip, 1000 eilučių kodo. Jei kiekvieną kartą, aš norėjau į printf kažką, Turėjau parašyti 1000 eilučių kodo, kad būtų tikrai erzina skaityti, tiesa? Štai kodėl mes ką tik sukūrė šį abstraktų funkciją kad mes jau turime ką nors kitur parašė kažkur kitur. Ir kiekvieną kartą mes turime jį naudoti Mūsų kodas, mes tiesiog pasakyti printf. Ir tai gali naudoti šią funkciją kažkas parašė mūsų kodą. Tai leidžia lengviau organizaciniu skaityti kodą. Antra, tai supaprastinimas. Tai supaprastina veiksmus turime imtis siekiant išspręsti mūsų problemą. Printf, funkcijas, pavyzdžiui, printf, funkcijas, pavyzdžiui, į viršutinę yra viskas, kad leidžia mums supaprastinti mūsų kodą žemyn, kad ji yra lengviau. Ir paskutinis dalykas yra pakartotinis. Taigi, dėl to, kad turime funkcija vadinama printf kad mes galime skambinti daug skirtingų kartų ir leidžia, kad ji būtų daugkartinio naudojimo. Jei aš būčiau rašyti printf, Aš rašyti tik vieną kartą. Ji egzistuoja tik toje vienoje vietoje. Jei aš norėjau padaryti jį dar kartą, aš norėčiau turite nukopijuoti ir įklijuoti visa tai į mano antroje eilutėje kodą. Štai kodėl, jei mes sukurti funkciją kad egzistuoja už mūsų pagrindinis, mes galime tik paraginti IT ir pakartotinai jį, kai mums reikia, kad tai daug lengviau mums, kaip programos rašyti. Taigi taip, kad mes iš tikrųjų rašyti funkcija yra labai panašus, tiesa? Tai yra rūšies pirmas atvejis, kai mes pamatyti funkcija imtis stilius kitoks nei mūsų int main tuštumos. Šiuo atveju, jei aš norėjau parašyti funkciją, vadinamą Q, tiesa? Ir INT vertė čia Visa tai pasakojo, Ką aš noriu tai veikti grįžti į mane? Jei aš noriu kubas sveikasis skaičius, Aš ruošiuosi norite įvesti. Tai yra parametrai. Aš ruošiuosi įėjimai vertė tipas int. Ir aš ruošiuosi grįžti kito tipo vertė tarpt. Ir čia, kaip jums matote, viskas, ką aš darau yra cubing kokia mano indėlis yra kaip mano produkcijos ir grąžindamas ją. Taigi visa tai funkcija daro, yra užima šiek tiek sveikas skaičius rūšiuoti. Ji daugina jį pats du kartus taip, kad jis iš esmės kubeliai. Ir tada jis grįžta kokia, kad produkcija yra. Taigi šiuo atveju, tai dvi eilutes kodas, kad mes turėjome rašyti papildomai. Bet jei mes norėjome skambinti šitai kelis kartus, tai daug lengviau rašyti, kad vienas linija čia tai iš kubo nei turi eiti per kelis kartus. Taigi taip, kad iš esmės bet formatavimą bet funkcija rūšiuoti ketina egzistuoja tarsi čia. Taigi, mes turime funkcijos vardą. Šiuo atveju, tai vadinama kubas. Ir mes name it kubą, nes tai lengva prisiminti. Jūs galite pavadinti jį aikštė ir ji iš tikrųjų gali būti Cubed. Nesvarbu. Tiesiog pavadinimas, kad esate priskirdami savo funkciją. Ši teisė, INT, yra tipo parametro jums reikia. Taigi, ką daro šią funkciją reikia, kad veiktų? Na, ji turi įvestį. Aš jį pavadino įėjimas. Jūs galite pavadinti jį ką tik norite. Bet man reikia kažką tipo int. Tai vyksta iš tikrųjų įvykdyti kas yra viduje čia iš funkcijos kūno. Ir tada grįžti tipas čia, tai int-- visa tai man sako yra kad ši funkcija yra ketina grįžti į mane tarpt. Taigi ji ketina imtis int, ir jis ketina duoti jums atgal int. Ar visi suprasti, kaip formatavimas šios rūšies veikia? Saunus. GERAI. Taigi nereikia būti susirūpinęs, jei tai atrodo šiek tiek abstraktus dabar. Tai yra kažkas, kad mes kalbame apie. Mes pasinerti giliau vėliau į paskaitas. Būdas, kad bet kurį iš aukštesniame lygyje rūšiuoti abstrakcija iš šių dalykų darbe yra tai, kad, atmintyje, į kompiuteris, viskas yra saugomi šio tipo kamino, man sakyti. Taigi ten viršuje. Aš nežinau, jei jums vaikinai galite pamatyti, kad gerai. Bandysiu padidinti. Čia viršuje, mes turi fizinę tekstą kas kompiuteris interpreting-- visi nuliai ir tie, kurie egzistuoja mūsų kompiuteryje. Ir tada mes turime inicializuoti duomenų ir grąžinamos duomenys, ką mes vadiname globalių kintamųjų. Taigi kintamųjų, kad egzistuoja visose programose ir visoje visą savo, iš esmės, kodas. Nesijaudinkite, jei jus vaikinai yra rūšies neaišku apie tai. Jis tikrai ne klausimas dabar. Ir tada mes turime tai, kas vadinamas kamino krūva. Pagalvokite apie rietuvės prasme, kaip kaip dalykų kaminą, įvairių kamino viskas stumiama ant vienas nuo kito, kad saugoti įvairių kintamieji ir sintaksės per savo kodą. Ir tada čia ne pačioje apačioje, turime aplinkos kintamuosius ką jūs vykdyti per tik jūsų mažylis linija kodą. Ir mes tik ketina padidinti į faktinę kamino dalį. Taigi čia, jei mes padidinti į dėl tik šioje kamino srityje, tai, kaip jis atrodo. Ir šis iš tikrųjų yra gana svarbu, kai vaikinai kalbėti apie funkcijų, nes pranešimas, kad atminties kompiuteryje yra saugoti kintamuosius ir funkcijos, kurios ir abiejų parametrai jūsų funkcija ir jūsų pagrindiniai kintamieji skirtingose ​​vietose. Taigi dabar, pagrindinis yra faktinis funkcija kad jūs vykdant tam kodą. Jūs jos parametrai saugomi čia ir jos vietos kintamieji saugomi čia. Vietinis kintamasis tiesiog reiškia bet kokį kintamąjį, kad egzistuoja tik per šią funkciją. Ir ant jo, jūs turite tai atskiras funkcija vadinama kubas. Jūs turite tai parametrai taip pat tiems gyventojams. Ir priežastis jūs galite matyti, kad čia yra tai, ką atsitinka, kai kubas trunka A vertė iš savo pagrindinės funkcijos yra tai, kad iš tikrųjų tai kopijuojant, kad per. Taigi, jei aš norėjau kubo 2 ir grįžti 8, kad 2 iš tikrųjų įvestas kaip parametras, ir tai nukopijuoti, kad jūs turite tai esama dviejų skirtingų vietų atmintyje. Ir jūs turite būti labai atsargūs, nuo prisiminė kuriuos vienas iš tų jūs iš tikrųjų manipuliuoja. Ir kas nutiko pavyzdys kad būtų labai, labai blogai egzistuoja čia. Taigi čia, aš turiu, teoriškai, programa čia, pagrindinė funkcija kad aš skelbiantys int x lygus 1. Aš paskelbti kitą int y lygus 2. Ir tada aš paleisti jį per šią funkciją vadinamas apsikeitimo, kur aš manyti, kad tai Swapping dvi reikšmes. Ir tada aš ruošiuosi spausdinti juos, tiesa? Štai ką aš noriu Ši programa daryti. Taigi leiskite nusileisti ir pažvelgti. Taigi, jei aš iš tikrųjų rašyti kitoks funkcija, kaip jūs galite pamatyti, mes turime pagrindinę funkciją čia. Ir tada mes turime Antroji funkcija čia. Tuštuma apsikeitimo. Tuštuma tiesiog reiškia, kad tai nesiruošia grįžti nieko. Funkcija vardas vadinamas apsikeitimo, ir tai ketina įsiurbimo dviejų kintamųjų, int A ir int b, iš jūsų [nesigirdi] funkcija. Taigi iš esmės čia mes asocijuotas x ir y į šią funkciją. Ir jei mes sukurti this-- todėl mes norime sukurti laikiną vertę, tiesa? Mes ketiname priskirti, kad norint a. Ir tada vyksta dabar vienodo b. Ir B bus atgal kur temperatūra vertė buvo kuris yra, todėl, kad kai norite sukeisti dalykų, galite ne tik patinka apsikeitimo juos. Jūs turite laikyti vienas iš čia taip, kad ji prisimena kas tai yra, nes vieną kartą apsikeitimo vieną, jums pamiršti ką tai pradinė vertė buvo, tiesa? Taigi teoriškai šią programą turėtų dirbti, tiesa? Jei aš norėjau apsikeitimo du, jie turėtų sukeisti. Taigi leiskite paleisti jį ir pamatyti, jei ji veikia. Taigi, kaip jūs vaikinai galite pamatyti x kažkada buvo 1 ir y kažkada buvo 2. Ir jei aš jį atspausdinti, x yra vis dar 1 ir y yra nuo 2. Hmm, ši programa neatrodo, kad būtų darbo kelią, kad aš noriu jį dirbti. Ar kas nors nori imtis kulka spėlioti, kodėl tai vyksta? Ji turi daryti su tuo, kaip kad skirtingi dalykai saugomi skirtingose ​​vietose atmintyje. GERAI. Taigi vaikinai neturite jaudintis per daug apie tai dabar. Bet žinau, kad kubas vietinis kintamieji buvo a ir b, nes čia mūsų funkcija, mes pareiškė a ir b kaip kintamųjų, kad egzistuoja per kubą, kad funkcijos. Bet, kaip matote, parametrus, tai atsižvelgiant čia buvo saugomi. Bet mes buvome ne iš tikrųjų grįžti nieko. Mes iš tikrųjų nebuvo keičiasi x ir y. Mes tiesiog keičiasi ir b. Mes turėjome nukopijuoti x ir y į kažkas vadinamas a ir b. Bet mes niekada iš tikrųjų manipuliuojama X ir Y patys. Ar jus vaikinai matau kaip kad vyksta? Ar, kad mes tiesiog kopijuotas daugiau, bet mes ne iš tikrųjų laikomi takelis, kur jie buvo atmintyje. Ir todėl dabar kompiuteris ieško, oi, aš paleisti šį dalyką per Tai puikus funkcija. Bet x ir y yra vis dar x ir y. Nieko atsitiko jiems dėl to, kad tų parametrų ir vietos kintamieji yra saugomi kitoks įdėti į atmintį. Ir tai yra aukštesnio lygio koncepcija, kuri mes pradėsite matyti vėliau į paskaitas. Bet tiesiog žinoti, kad tai yra problema, kad gali atsitikti ir kad mes išsiaiškinti būdus, kaip spręsti šią vėliau į paskaitas. GERAI. Gerai. Taigi paskutinis koncepcija mes tikrai ketiname padengti kad tai bus naudinga už pset šią savaitę yra tai, kas vadinama komandinės eilutės argumentai. Taigi Robas jo paskaitą išgyveno rūšies trumpai apie tai, kaip šių darbo. Iš esmės žinau, kad kai rašote kaip pagrindinės funkcijos, kai mes rašė funkcijas prieš praeityje, mes turėjome int main negaliojančiu. Ir priežastis, kodėl mes turėjome negaliojančiu nėra buvo, nes mūsų programos nebuvo reikia įvesties reikšmių paleisti, tiesa? Kai išbėgau Mario, man nereikėjo kad iš tikrųjų tiesiog įveskite kažką kai išbėgau Mario. Aš galėtų paskatinti vartotoją vėliau. Bet tai ne visada bus tas atvejis. Pavyzdžiui, šis savaitės problema nustato, jūs ketinate būti paprašyta, kad Be veikia savo programą, jūs ketinate norite įvesti tam tikrų dalykų tiesiai, kaip jums paleisti savo programą. Taigi, kaip mes galime padaryti, kad yra vadinamas komandinės eilutės argumentas, kuris yra kaip argumentą galite įvesti tiesiogiai kaip jūs bandote paleisti programą. Taigi dėl šios notacijos, tai gana sudėtingas ieško, bet tai tikrai nereiškia, kad sunku. Taigi int main-- tai tik tavo pagrindinė funkcija. Į argc kableliais styginių argv skliausteliuose. Taigi visi, kad sakydamas, kad tai INT argc-- visi, kad jums sakau yra tai, kad jie yra iš skaičių argumentai kompiuteris turi tikėtis. Taigi vienas dalykas, kad tikrai Svarbu sekti yra fizinis pavadinimas jūsų programa skaičiuojamas kaip vienas iš šių argumentų. Taigi, jei aš norėjau, kad mano programa paleisti plius vieną papildomą komandų eilutę argumentas, aš iš tikrųjų teks du. Argc iš tikrųjų bus du. Ir tada seka argv bracket-- visa tai daro, tai, kad suteikėte man žinutę masyvo eilučių tai ketina tik rodyti ir saugoti tai, kas visų šių komandų eilutės argumentai yra. Taigi, pavyzdžiui, jei aš norėjau turėti tai programa, ./copy infile outfile, tiesa? Tai tiesiog tipiškas "Linux" komanda. Kas iš tikrųjų yra argc? Kiek komandų eilutės argumentai ten iš tikrųjų yra? Visa tai daro, yra padaryti kopiją AN į vieną failą pavadinimu INFILE ir IT Kopijavimas į kitas failas, tiesa? Štai visa tai daro. Kaip matote, aš darau jį ant vienos linijos be faktiškai kuriems programą. Kas yra mūsų argc šiuo atveju? Kiek argumentai turime? Auditorija: Trys? ANDI Peng: mes turime tris, tiksliai. Taigi tai labai intuityvus tiesiog manau, kad tai tik INFILE ir outfile. Bet žinome, kad fizinis pavadinimas iš programa dirbate skaičiuojamas kaip vienas. Taigi, šiuo atveju, yra iš tikrųjų argc trys. Kaip apie, kas yra argv 0? Atminkite, kad visi iš komandinės eilutės argumentai buvo saugomi stygų masyvo. Taigi, jei aš pabandyti ją gauti, kas būtų argv laikiklis 0 man duoti? Auditorija: [nesigirdi]. ANDI Peng: Būtent. Tai man duotų tašką slash kopiją, nes tai 0. elemento, Pirmasis elementas mano masyvo. Ką apie argv 1? Auditorija: infile. ANDI Peng: infile, tiksliai. Ką apie argv 2? Auditorija: Outfile. ANDI Peng: Outfile. Tai yra šiek tiek sudėtinga dabar. Ką jūs manote argv 3 bus duoti man jei aš bandžiau spausdinti, kad iš? Auditorija: [nesigirdi]? ANDI Peng: Ar turite ranką? Taip. Auditorija: Alternatyvus. ANDI Peng: Būtent. Taigi prisiminti, paskaitos, kad mes turi ne iš lenktynių kažką pabaigoje vadinamas null terminatorius? Mes patekti į tai taip pat toliau klasėje. Bet žinau, kad notacijos, būdas kompiuteris žino, kad tai pabaiga masyvo yra tai, kad kelia kažką vadinama NULL Terminatorius arba brūkšnelis nulis. Taigi, jei jūs bandote prieiti argv 3, jūs ketinate pasiektų šią brūkšnys 0. Tai dar labiau triukas klausimą. Ką apie argv 4? Taigi tai yra praeitis null terminatorius, pro mūsų masyvo ribų. Ką manote ketina atsitikti, kai mes bandome padaryti, kad? Auditorija: [nesigirdi]? ANDI Peng: Atsiprašome? Pasakykite, kad šiek tiek garsiau? Auditorija: [nesigirdi]. ANDI Peng: Taip. Tai yra vardas plotas jums greičiausiai gauti. Bet žinau, kad argv 4-- kuri leidžia jums prieigą prie vietos Jūsų kompiuterio atminties, kad jūs tikrai neturėtų būti neliesti, nes dabar jūs žinote, ką argv yra. Jūs žinote, kad tai yra iš 3 dydžio masyvas kad turi dot kopijuoti, infile ir outfile. Jei bandysite šiol peržengti, kad kad jūs pro null terminatorius, kompiuteris turi tikriausiai saugomi kažkas argv 4 d. Ir jūs tikrai neturėtų būti įleidžiant į argv 4 nes jūs turite failą spinta ir jūs tik leidžiama susipažinti su šių trijų lentynų. Bet jei bandote pasiekti toli už iš kur jums leidžiama lentyna, jūs ketinate pradėti Messing su kiti dalykai jūsų kompiuterio atmintyje. Tai ketina būti tikrai, tikrai neblogai. Taigi tiesiog žinau, kad. Būkite labai atsargūs, kad jūs ne tik atsitiktinai pradėti susipažinimo elementų masyvą, kad nebuvo, ką norėjau sukurti. Yep. GERAI. Taigi mes ketiname daryti kitą terminalo pavyzdys čia. GERAI. Taigi Rob greitai paskaitos kitą dieną išvyko per šią Pavyzdžiui, kur jis turėjo int main int argc styginių argv skliausteliuose, kuris man sako, kad aš teks komandinės eilutės argumentus. Jis turi, jei argc lygus lygus 2-- atminkite, lygi lygu reiškia palyginimas. Jei jis lygus 2, tada aš ketina spausdinti Sveiki, nepriklausomai pirmasis elementas masyve yra. Kita spausdinimo, hello world. Ką tai vyksta atsitikti esmės? Ar kas nors tiesiog paaiškinti Anglų ką ši programa daro? Taip. Auditorija: Jei kas nors įvedėte komanda ir teigė, kad jų vardas ir pavardė, tai bus ne tik spausdinti pirmasis ir pasakyti, labas, Nesvarbu, koks Jūsų vardas yra. ANDI Peng: Gerai, tegul ją paleisti. Taigi, pavyzdžiui, jei aš buvo padaryti Šis failas padaryti Hello to-- Sveiki to-- ką norite man pirkimo? Auditorija: Vardas ir pavardė. ANDI Peng: Vardas ir pavardė? Tarpai? Auditorija: Taip. ANDI Peng: Ar kas nors pasakys man dabar, kas argc? Tiesiog tiesiai ten? Oi, atsiprašau. Leiskite man grįžti. Kiek komandų eilutės argumentai are-- vaikinai tikrai negali pamatyti. Bet aš pabandysiu padidinti. Aš bandau. Taip, ten yra trys, tiesa? Tai taškas velniop Sveiki, tai Ieva, ir tai Peng. Taigi, ką jūs manote tai Programa bus atspausdinti? Oh. O, atsiprašau. Klaidingas vardas. Tai spausdinti, hello world. Ar kas nors nori paaiškinti kodėl tai vyksta? Taip? Auditorija: [nesigirdi]. ANDI Peng: Būtent. Taigi čia yra sąlyginis yra, jei argc lygus lygus 2. Taigi tik tuo atveju, jei ten du komandinės eilutės argumentai. Tada aš ruošiuosi spausdinti, Sveiki, kokia ji yra. Bet kitur, aš ruošiuosi spausdinti tik, hello world. Taigi ar kas nors nori man duoti pavyzdį kaip aš galėtų faktiškai gauti jį išspausdinti argv 1 vertę? Ką turiu įvesties čia? Tik vienas dalykas, tiesa? Kadangi taškas labas jau skaitosi kaip pirmas argumentas. Turiu tik viena daugiau. Taigi dot Sveiki, jei aš tiesiog padaryti Andi. Sveiki, Ieva. Ar visi suprantame, kodėl tai vyksta? Taip. Auditorija: Taigi tarp erdvė komanda line-- tai [nesigirdi]? ANDI Peng: Ne Taigi į komandų eilutę erdvę argumentas, X, pasakyti savo kompiuterį kad tai yra naujos eilutės pradžia. Taigi styginių argv here-- ji saugo visi savo komandas eilutės argumentai tinkleliuose. Ir taip į komandų eilutę vietos argument-- visa tai daro, yra papasakoti, tai yra bent vienos eilutės pabaigoje ir tai laikas pereiti į kitą. Taip. Tai yra gana svarbu, Jūsų pset, nes jūs bus išbandyti šiuos. Taigi ar kas nors turi bet apie tai klausimai? Gerai. Taip? Auditorija: Taigi priežastis jums būtų įdėti sveikasis argumentas Calc vietoj iš [nesigirdi] būtų, jei norite įvesti papildomą informaciją [Nesigirdi]? ANDI Peng: Taip, tiksliai. Kai kurios programos, reikės įvesti komandinės eilutės argumentas kad jis eitų ir kad naudoja tai. Taip. Auditorija: Taigi ką daryti, jei [nesigirdi]? ANDI Peng: Na, ką turiu keisti tada mano programa? Auditorija: tik 3. ANDI Peng: Kodėl yra tai, kad vyksta, jūs manote? Auditorija: Nes [nesigirdi]. Auditorija: Jūs tektų pakeisti jį į 2 [nesigirdi]. Auditorija: 1 ir 2. ANDI Peng: 1 ir 2 lygiai. Taigi šiuo atveju, jūs tikriausiai nori turėti du printf statements-- vienas, kad atspausdintas argv 1 ir vienas, kad atspausdintas argv 2. Čia. Aš iš tikrųjų gali padaryti, kad nekilnojamojo greitai. Na štai. Oh. Ne visai tai, ką norėjo. Tačiau, jei jus vaikinai pažaisti su formatavimas, ji išeis. Taip. Saunus. Aš žinau, mes šiek tiek trūksta laiko. Bet aš tik ketina greitai praleisti pora minučių išgyvena helpful-- Auditorija: Jūs turite dvi minutes. ANDI Peng: Turiu dvi minutes? Ačiū. Po greito pset patarimai. Taigi šiam pset, aš labai rekomenduoju, kaip ir sakiau, visi skaityti spec. Būsite raštu trys programs-- vieną vadinamas initials.c, vienas vadinamas caesar.c, vienas vadinamas vigenere.c. Kai kurie svarbūs patarimai, kad vaikinai tikrai norite išlaikyti mind-- taip yra ši funkcija vadinamas atoi-- kaip aš tarkim, Trois. Neaišku, ar tai iš tikrųjų, kaip jūs pasakyti. Bet visa tai daro, tai įvedusi. Ji konvertuoja eilutę į int. Taigi yra ASCII I sveikojo skaičiaus. Tai tiesiog konvertuoti ASCII vertės sveikąsias reikšmes. Taigi nepamirškite argv, masyvas, kuris saugo visi jūsų komandų eilutės arguments-- ji saugo juos visus kaip stygos. Ir todėl, jei norite, kad būtų galima turėti vieną iš jų tampa sveikasis skaičius, jūs ketinate turėti naudoti šią vertę čia. Modulo, kaip mes, kuriems anksčiau šiandien klasės, leidžia jums turėti likutis, ką jūs turite. Taigi, jei mes turime tikrai, tikrai dideliais kiekiais Cezaris, Ką daryti, jei mes turime pabaigą iš Vigenere eilutę? Kaip jūs ketinate būti suteikta galimybė gauti, kad wrap aplink? Jei aš paspauskite z, ir aš noriu tai grįžti į A, Kaip aš ketina gauti kad wrap aplink? Tikriausiai norėsite naudoti modulį ten kažkur. Antra, naršyti aplink jūsų biblioteka. ctype.h. Štai nauja biblioteka turime. Jūs rasite daug tikrai, tikrai Naudinga functions-- isupper, islower, toupper, tolower, IsAlpha et cetera. Visos funkcijos, kad bus labai naudinga kai bandote išsiaiškinti, tai charakterį mažoji raidė? Kaip man tai pakeisime string Didžiąsias? Visa tai bus labai, labai naudinga jūsų pset. GERAI. Darbo valandos šįvakar yra 8.00 iki 11:00 TEAL klasėje rytoj taip pat trečiadienį ir ketvirtadienį naktį. Darbo valandos yra Visuotinis. Labai rekomenduojame jums vaikinai visi pradėti iš karto, nes jūs nenorite būti, kad vaikas, kuris Ketvirtadienio naktį turi problemų Pateikdami savo pset ir patinka, aš nežinau, ką daryti. Aš pradėjau, aš baigiau, aš pateikti. Pabandykite duoti sau šiek tiek kambarį, nes visada atsiranda kodas problemų. Jūs norite įsitikinti, kad jūs suteikiate sau daug laiko, kad būtų galima užbaigti psets. Saunus. Aš pakabinti aplink čia. Auditorija: Ar šis internetinis jau? ANDI Peng: Aš nežinau, jei tai Prisijungę jau, bet jis bus. Aš pakabinti aplink čia, jei kas nors turi kokių nors klausimų jau. Ačiū, kad atvykote.