[Muzikos grojimo] ALLISON Buchholtz-AU: Hey everyone. Sveiki atvykę į jūsų pirmas Oficiali CS50 skyriuje. Kaip jūs galite, pamatyti tai skyrius CS50-kaip tik atsigriebti savo darbotvarkę šiandien. Taigi, kas aš, kaip aš tikiu, jūs visi įdomu. Aš esu tavo TF. Aš ne tik atsitiktinis studentas kas podszywającą savo TF. Ir aš ruošiuosi eiti per rūšies turėti skyriai gaus, lūkesčiai turime, ištekliai, taip toliau ir taip toliau. Mes ketiname kalbėti apie masyvų, ASCII funkcijos, komandų eilutės argumentai, ir tai ne čia, bet Aš taip pat bus pagalba Jūs rūšies apgalvoti kitas jūsų pset šią savaitę. Aš tikiu, kad jūs visi vertiname. Taigi, pirmiausia question-- Kas aš, be savo vešlus TF čia. Aš Alison Buchholtz-Au. Tai mano antrasis metų TFing CS50. Aš taip pat TF CS51 pavasarį. Jūs galite pamatyti vėl ten jei nuspręsite jį priimti. Aš taip pat PAF, todėl bet Freshmen-- ir jei nesate pirmakursis, tai yra mano trečius metus kaip konsultuoti bendradarbiu. Aš labai gerai išmanantis patarti, gyvybės ir kursai per CS ir ne per CS. Esu Informatika koncentratorius. Aš iš Adams House, geriausia namų vyresnysis. Ir kol aš perėjo prie CS mano antrakursis pavasaris, Aš iš tikrųjų buvo biomedicinos inžinierius. Aš buvau ketinate eiti į Med mokyklos. Aš buvau ketinate būti trauma chirurgas. Ir kad turi visiškai pasikeitė, nes aš paėmė CS50. Aš paėmė kursą mano antrakursis sumažėjimas. Tai buvo mano pirmoji pažintis su CS istorijoje. Buvau vienas iš 78% kurie buvo nulis patirtis ateina, ir tai visiškai pakeitė mano gyvenimą. Ir dabar aš dirbu ne "Microsoft", ir jūsų mielas TF. Ir CS50 yra tikriausiai vienas iš geriausių patirties kad aš jau čia Harvard-- tiek atsižvelgiant klasę ir galėtų padėti išmokyti studentus, kaip jūs. Taigi, aš tikrai malonu kad jūs visi čia. Tuo atveju, jei išėjo vėlai, yra saldainiai, kuriuos turėtumėte jaustis laisvai atvykti patraukti, arba siųsti kažkas paimti jį už jus. viskas OK. Aš nenoriu valgyti, kad. Mano kambarys yra pakankamai šokolado, todėl y'all reikia bandyti ir baigti, kad. Žinau, kad yra 100 vienetų, bet kaip, 04:00 pirmadienį, Manau, kad kiekvienas gali naudoti tam cukraus. Taigi visi, kurie yra oficialiai mano skyriuje turėjo Dotarłeś laišką nuo manęs su mano telefono numeriu, siųsti address-- nedvejodami įtraukti mane į Gchat, nedvejodami įtraukti mane į "Facebook", ir taip pat už jums poilsio, galite rašykite man čia. Yra du H-aisiais. Kiekvienas visada daro kaip du L'ai ir du C-aisiais. Du H yra į pavardę. Kitaip jis ketina atšokti ir Aš nesiruošia gauti savo elektroninio pašto adresą. Taigi nedvejodami rašykite man, susisiekite su manimi bet kuriuo metu. Aš negali grįžti į Jūs per 24 minučių, bet pažadu grįžti Jums per 24 valandas. Jei man paskambinti pusė prieš valandą Jūsų pset yra dėl, jums yra kaip, Aš neįsivaizduoju, ką darau Allison. Padėkite man. Aš einu nuraminti tave, bet tuo dienos pabaigoje, jei jūs man skambina prieš pusvalandį Jūsų pset yra dėl nieko parašyta Aš ruošiuosi būti kaip gerai, gal atėjo laikas naudoti šią vėlyvą dieną. Taigi, aš atsakys į visus Jūsų prašymai labai laiku. Mano telefonas yra paprastai pridedamas prie mano rankas. Aš paprastai reaguoti daug greičiau nei 24 valandų, bet aš galiu tik garantija 24 valandą atsakas. Gerai. Tad kodėl mes čia? Taip pat, jei turite į klausimus bet laikas, Please let me know. Aš kalbėti daug. Kalbu greitai, bet prašome nedvejodami pertraukti mane. Jis suteikia man kvėpuoti kambarį, taip pat. Taigi skyriai laikas mums tikrai tik neria , pamatau kai praktinės patirties, kad eiti per temas, mes paminėti klasėje ar mokymo medžiagą, kad rekomenduojame jums vaikinai internete. Ir mes iš tikrųjų eiti per kai kurios iš šiek tiek lėšų. Taigi keletas patarimų, paramos skyriaus raštas. CS50-- vienas dalykų, kurie daro jis vienas iš mano mėgstamiausių grupių yra jausmas, kad esate ne vieni. Mes turime daugiau nei 100 darbuotojų, žmonės, kurie yra čia, kad padėtų jums. Turime darbo valandomis Nuo pirmadienio iki ketvirtadienio. Taigi yra labai daug žmonių, kurie myliu klasę tik tiek, kiek aš daryti ir kurie tikrai čia nes jie nori būti čia. Daugelis iš mūsų yra studentai, ir tai yra kaip penktą klasę be į mūsų darbo dalimi. Ir tai daug darbo, bet mes tai darome, nes mes tai patinka, ir mes tikrai myli jus išmokyti ir padėti pasidalinti savo įspūdžių Šio objekto ir šioje klasėje. Taigi, prašome pasinaudoti. Ateikite pasikalbėti su mumis. Gaunu vienišas, kai mano mokiniai nereikia kalbėti su manimi, todėl, jei norite, ateiti su manimi susitikti. Tai bus puikus. Taigi dalis yra akivaizdžiai vienas iš jūsų didžiausių dalykų. Mes pereiti per dalykų kad jūs išmoko paskaitos padaryti keletą trumpų pavyzdžių kai turime laiko, ir paprastai iš natūra gauti apie dalykus idėją reikėtų galvoti apie jūsų problema nustatyti. Shorts-- kiek žmonių iš tikrųjų stebėjo vaizdo iš savo naujo trumpas? Kiekvienas pripažinti manimi? Taigi tie, kurie labai puikiai. Jūs turėtumėte neabejotinai žiūrėti tiems. Daug darbo buvo įdėti į juos. Ir jie tiesiog reiškia būti vieno kąsnio gabalėlius jums tiesiog žiūrėti už tris ar keturias minutes ir gauti geriau suprasti pačią sąvoką. Pasivaikščiojimas throughs-- kaip daug žmonių žiūrėjo Pėsčiomis throughs dėl ankstesnių? Zamyla Nuostabu, ar ne? Kaip aš noriu, aš buvo Zamyla kartais. Taigi naudojimas Jūsų vaikščioti throughs. Ji ją padalyti į mažas, vieno kąsnio gabaliukus. Ir, kai jūs turite tai didžiulis specifikacijos iš jūsų problema rinkinių, tai bus tikrai svarbus gebėti tiesiog rasti kažkur pradėti ir dirbti lėtai per ją. Gerai, mes taip pat turime Study50, kuris yra study50.harvard.edu, manau. Jūs galite tiesiog "Google" mokytis, ir jis bus sugalvoti. Tai yra viena iš geriausi ištekliai turime. Tai PowerPoints su pastabomis ir praktika jūsų problemas sprendimus, kurie jums iš tiesų gali vaikščioti per. Taigi, jei jūs kada nors nori daugiau praktikos, daugiau nei mes skirsniuose ar daugiau nei tavo problema rinkinių, tai tikrai vieta raginu jus eiti. Jis buvo pastatytas praėjusią vasarą iki kai mano tikrai gerų draugų. Ir tai nuostabu. Tiesą sakant, iš daug skaidrių kad aš būsiu naudodamas skirsnyje ateis iš Study50. Taigi iš TFS daug naudoti. Ir, pagaliau, kaip aš minėta, darbo valandomis. Jei jums kyla problemų namų darbus, jūs problemų su koncepcija, ateiti į darbo laiką. Eiti anksti savaitę, jei galite. Išlipęs į quad, nes jis yra natūra toli. Niekas mėgsta vaikščioti ten. Bet tai yra savo pranašumą, nes tada jūs teks visus šiuos TFS, [Nesigirdi] apsupti tave. Ir ypač dabar, tiesiog patarimas, ketvirtadieniais labai chill dabar į Mather nes jūsų psets mokami ketvirtadieniais. Ir žinant, nori naudoti savo vėlai dienas dar. Taigi, jei jūs, turintys Bėda sąvokas, yra daug TFS kas yra ten, kad padėtų jums. Taigi išeina Mather ketvirtadienį. Jei norite pamatyti mane, Aš einu ten. Aš paprastai daro mano paties namų, nes niekas nenori mano pagalbos. Taigi atėjo pas mus. Susipažinkite su mūsų pusės. Taigi, kiek žmonių dalyvavo paskaita arba žiūrėdavau ją internete? Kiek žmonių išvyko į super skyriuje praėjusią savaitę? Cool. Tai tikrai nemažai. Kaip daugelis iš jūsų skaityti jūsų spec šią savaitę, jūsų pset? Ooh, aš didžiuojuosi jumis vaikinai! Daugiau saldainių y'all. Geras, tai kas mums reiškia "Susitikti su mumis pusiaukelėje", yra kad skyriuje yra tikrai tik bus super naudinga jums jei ateis perskaitę jūsų specifikacija jūsų pset. Nes kai aš einu per apžvalga dalykų, kuriuos reikia Saugokitės, jis nesiruošia padaryti kiek jausmas, jei jums nežinau, ką jūsų problema nustatyti ketina užduoti jums daryti. Jei nenori eiti į skyrių, be abejo Aš negaliu būti, kad naudinga jums. Aš nesiruošiu to asmeniškai, jei Jūs neturite ateiti į mano skyrių dabar, bet tikrai jums reikia. Jei negalite, stebėti juos internete. Jie ten priežasties. Kasykla bus teisę ten. Kaip pastebėjote, mes įrašinėjami todėl tuoj pat busiu jums vaikinai. Kaip gerai, ketina lectures-- tai akivaizdžiai kur jūs gaunate pradėti savo medžiagą čia. Taigi, aš tikrai pabandyti ir padėti Jums kiek aš galiu, bet aš galiu tik susitikti su jumis iki šiol. Turite rūšies susitikti su mumis pusiaukelėje. Grading-- taip, jūs visi kas gavau laišką nuo manęs, tu esi mano oficialus skyriuje. Aš būsiu klasifikavimo savo psets. Aš tik noriu pasakyti vieną dalyką, kad Jūs tikrai turėtų atkreipti dėmesį į yra komentarai. Šios pastabos yra dažnai labiau naudingas nei faktinis rezultatas, mes suteikiame Jums. O komentarai tikrai kur aš praleidžia daug mano laiko kai aš rūšiavimas. Taigi, aš būtų dėkingi, tai jei juos skaityti. Ir jie iš tikrųjų, kaip jūs ketinate Norėdami sužinoti daugiau apie dizaino ir stiliaus ir tai, kas yra tiek mažiau supjaustyti ir sausos. Taigi tikrai atkreipti dėmesį atsižvelgti į tuos komentarus. Jei turite klausimų apie jų, arba klausimai apie jūsų rezultatas, prašome atvykti pasikalbėti su manimi Nei prieš skyriuje, Aš tikriausiai bus hanging out fojė arba vėliau. Jei norite planuoti vienas ant vieno susitikimai apie tai, kaip jums gali padėti pagerinti vėliau problema rinkiniai, tik leiskite man žinoti. Ir tada tiesiog pora patarimų jums vaikinai. Taigi viena iš didžiausių dalykų, Aš visada pabrėžti, kad mano skyriuje kai jūs mokotės, kaip kodą yra rašyti dalykus ant popieriaus lapo. Jei turite žaidimų planą kur jūsų kodas turi eiti ir ką ji turi daryti ir tai, suskirstyta į trigrašį Pseudocode kodas parašiau out, jūs ketinate būti mažiau Tikėtina, kad sintaksės klaidų arba sukurti, jeigu kilpa, kad neturi kitas. Jei žinote, kur esate vyksta apskritai esate mažiau tikėtina, kad šių mažų klaidų, kurios kartais nuves jus paros nustatyti, nes jūs kaip, Kur aš dingęs šį laikiklį? Tą dėmesį, naudokite Style50. Ypač kai esate ketina darbo valandomis, jei jūsų kodas yra viskas perjungiama į vieną pusę, tai yra žinoma politika kad mes galime pasakyti, tai pataisyti taip, kad jis atrodo kaip Style50 sako reikėtų, ir tada mes jums padėsime. Taigi jis bus padaryti jūsų gyvenimą lengviau. Tai bus padaryti mūsų gyvenimą paprasčiau. Kiekvienas yra laimingas. Kiekvienas gauna geresnius pažymius. Ar ne tai, kad tai, ką mes visi norime? Taigi rašyti dalykus ant popieriaus, prieš Ar kada liesti kompiuterio. Išsikalbéti aukštame lygyje, ir įsitikinkite, kad žinote, kur einate. Ir, jei nesate tikri, susėsti su žmogumi ir vaikščioti juos per žingsnis po žingsnio ką turėtų daryti jūsų kodas. Ir devynis kartus iš 10, jums bus kaip, oh, aš pamiršau if sąlygą ar aš pamiršau kabliataškį čia arba Aš atnaujinti šį kintamąjį negerai. Taigi tie, kurie mano patarimai sėkmės. Taigi nuo maždaug pusė iš jūsų atrodo kaip jūs dalyvavo super skyrių, Aš tik ketina labai trumpai eiti per kilpos, kuris buvo ne mūsų originalios darbotvarkę. Bet jie yra tikrai svarbu. Ir todėl aš ruošiuosi rūšies Greičio per tuos Prieš mes į mūsų tikrasis padangos. Prieš tai padaryti, ten bet questions-- logistikos, asmeniškai, tai ten dar ką nors norite žinoti apie mane arba apie skyrius ar jų grupė apskritai? Viskas gerai? Gerai, gerai. Gražus. Taigi loops-- vaikinai visi turėtų pripažinti šių vienetų nuo nulio. Taigi kilpos iš esmės tik būdas mums ką nors kai kartų skaičius, kai pakartotinis Ieškinys, paremtas kai sąlyginis. Taigi, mes turime tris skirtingus tipus. Mes turime kilpa, o ir padaryti-užtrukti. Taigi loops-- mes tiesiog labai bendras išdėstymas čia iš už kilpa. Ir tai yra puiku, kai jūs žinote, kaip daug kartų kažką reikia vykdyti. Kai kalbame apie kitos kilpos, jums kodėl tai svarbu atskirti. Bet kilpos kažko rinkinys. Jūs žinote, jūs galite arba apskaičiuojamas jų skaičius ar žinote, kiek kartų jums nori, kad ši kartojamas iš pradžių. Taigi, jei matote čia, mes turėti tik bendrą natūra Skeleto sistemos už už kilpos čia. Taigi, iniciacijos, tai yra, kai kintamuosius yra inicializuoti. Su Mario, aš tikiu, kad jūs vaikinai darė kažkas panašaus int i lygu 0. Štai kur, kad įvyktų mėlyna. Turite savo būklę, kuri yra tai, kas tikrinama kiekvieną kartą. Jeigu ši sąlyga yra teisinga, tada likusia kodas vykdo. Tada jis bus paleisti again-- ir paklausti. Ir tada mes turime atnaujinti, kur jūs atnaujinti savo kintamasis. Taigi, dar kartą, su kaip Mario, aš tikiu, vaikinai darė kažką panašaus i plius plius. Taigi kiekvieną kartą, kilpa bėgo, aš atnaujintas, kad kai mes buvome tikrinti juos kai sąlyga, jis buvo keičiasi. Nes jei tik statinis kintamasis, jei ji vykdo pirmą kartą, tai tik ketina vykdyti be galo. Taigi, jūs turite įsitikinti, kad jūs atnaujinti savo kintamasis tinkamai. Ir mes taip pat turime tik vaizdinis ten. Kiekvienas geras? Dėl kilpų. Matę juos savo pset. Cool. Taigi čia tik paprastas pavyzdys. Spausdinti Tai CS50! 10 kartus. Ir todėl mes turime iniciacijos, kaip matome ten, su int i lygus 0, nes aš tai ne nei 10, ir aš plius plius. Ir jis bus išspausdinti, kad 10 kartų. Taigi, nors loops-- o kilpos puiku, kai jūs nebūtinai turite žinoti, kiek kartų tai ketina atnaujinti pradžioje. Jums tereikia šiek tiek sąlyga, kad manimi patikrinta. Ir tai galėtų būti kažkas panašaus while-- Paimkime pavyzdį iš savo pset. Jei Mario, bandysite įvesties neigiamas skaičius. Teisė? Jūs turėjote vėl greitai jūsų vartotoją. Taigi, galima sakyti, gerai, jei vartotojas įėjimai kažkas mažiau nei nulis, pakartotinę greitai juos. Ir aš tikiu, kad gali turėti buvo kažkas, kad kai kurie iš jūsų naudojamas Jūsų kodas. Taigi, tai paprastas dalykas. Turite o kai sąlyginis, kad būtų tikrinama kiekvieną kartą, kai eina į kodas vykdyti. Jei jis bus vertinamas kaip tikras, mes paleisti jį. Kitaip mes ne. Ir kas iš tikrųjų important-- ką aš manau, kad Dovydas kalbėjo apie į lecture-- yra petnešos. Nepriklausomai s per petnešos yra kas nevykdoma. Jei pamiršote tie petnešos, tai tik ketina būti liniją tiesiogiai po kol buvo įvykdyta. Taigi, jei turite tris dalykai, kurių turėtų atsitikti, kai tai būklė įvertinama true, ir jūs neturite šių petnešos, tik Pirmas dalykas, tai įvyks. Taigi būkite labai suvokia kur įdėti savo petnešos. Jei klijuoti su Style50, tai tikrai padės jums. Cool. Taigi tai yra iš 10 Countdown iki nulio. Ir, kaip matote čia, mes inicijuoti kai už jos ribų skaitiklis. Vienas dalykas, kad skirtingi yra mes ne Inicijuojama mūsų kintamasis Mūsų patikima while cikle. Tai inicializuoti už jos ribų. Mes tiesiog tiesiog išleisti būklė, mūsų laiką. Taigi, šiuo atveju, tai kol skaičius yra didesnis už nulį. Ir mes atsispausdinti, ką mūsų skaičius yra ir tada mes Mažėja mūsų kintamasis. Ir tai taip pat dar vienas dalykas, kad pranešimas. Mūsų atnaujinimas neatsitinka per kad pirmoji while cikle. Jis tikrai įvyks per petnešos, savo tekste. So do-o loops-- pasidaryk o kilpų yra puikus Vartotojo įteisinimo. Taigi kai kurie iš jūsų gali turėti taip pat naudojamas šis savo pset. Galite pasakyti, padaryti, kaip, prašyti įvesties vartotoją. Ir tada, kai, kaip ir, indėlis yra mažiau nei kai numeriu. Taigi aiškiai atveju su Mario, jis būtų padaryti printf, įveskite sveikasis skaičius, ir tada kai sveikasis lygus getint. Ir tada jis bus tikrai vykdyti šią kodą pirmas. Jūs iš tikrųjų turi kai sveikasis rūšiuoti. Ir tada galima sakyti, o kad sveikasis skaičius yra mažesnis nei nulis. Taigi, ką jis ketina padaryti, tai jis ketina vykdyti bent vieną kartą. Jis ketina patikrinti būklę. Jei sąlyga yra tiesa, jis bus paleisti iš naujo. Taigi, tai, o kilpos puikus Vartotojo įteisinimo, nes jūs žinote kodą ketina vykdyti ne mažiau kaip vieną kartą, o su o kilpos, jūs ne garantuoja, kad ji ketina vykdyti tik vieną kartą. Jis ketina patikrinti būklę ir tada nuspręsti jį vykdyti, o do-o bus vykdyti kodą pirmasis ir tada patikrinkite, ar jums reikia kartoti. Ar šį skirtumą prasmės visiems? Gerai. Cool. Taigi šiuo atveju, tai yra natūra ką aš kalbu apie, Pakartotinai, kol galiausiai būsite gauti teigiamą skaičių. Taigi mes žinome, kad printf "Įvesti teigiamą skaičių" ir iš tikrųjų klausia, kad įėjimas bus atsitikti bent vieną kartą. Jeigu vartotojas yra blogis, ir saugo įvedus neigiamą skaičių, kuris žino, kiek kartų jis bus įvykdyti. Bet garantuojama ši kodas vykdyti bent vieną kartą. Ir štai kodėl tai puikus siekiant patvirtinti įvestį. Ir jums naudoti, kad gana didelis. Gerai, bet kuris klausimas iki šiol? Mes visi gerai? Aš kalbu per greitai? Mes gerai? Gerai. Nuostabus Taigi, mes ketiname eiti į priekį ir kalbėti apie masyvų. Cool. Taigi matricos esmės tik duomenų struktūros kurie leidžia mums laikyti viskas to paties tipo. Taigi, jei jūs kada nors masyvą, tai arba tiesiog teks int ar tai tiesiog teks plūdės ar tai tiesiog teks simbolių. Jūs nesiruošia turėti su int char su trintuve su dviguba. Vienas dalykas. Masyvai yra tik vienas dydis, arba jie tiesiog vieno tipo. Taigi čia mes turime apie dydžio masyvas trys su trimis skaičiais, į jį. Jie gali plūdes, bet mes sakys jie int. Taigi vienas dalykas suprasti, kad masyvai yra rinkinys dydis, kai jūs inicializuoti juos, ir jie nėra easily-- nes jūs visi esate mažiau patogūs, jums tiesiog galvoti apie juos kaip ne, kad galėtų išplėsti dydžio. Tačiau didelis jums nustatyti Jūsų masyvo pradžioje, tai dydis ji vyksta likti, nes matricos Nuolat blokai atminties. Ir kai jus vaikinai gauti į šiek tiek daugiau kaip atminties tikrai išdėstyti ant diskai ir į krūvą ir kamino, tai atliksime šiek tiek daugiau prasmės. Bet jūs galite tiesiog sugalvoti, kaip, tai tiesiog erdvių jūsų diske eilutė. Ir tu negali garantuoti, kad ten bus laisvos vietos po juo. Galite inicijuoti masyvą trijų ir tada gal inicijuoti dar vieną penkių masyvo vėliau, ir jis teisus, kad. Taigi, jei jums buvo prasiveržti pro vietoje trys tos pirmosios masyvo, jums bus raštu per ką nors kita. Taigi masyvai are-- jums vaikinai, tiesiog galvoti apie juos kaip fiksuotą dydį. Taigi kuriant array-- jūs ketinate reikės tai padaryti gana didelis. Taigi tuo pačiu būdu, kad mes turime Apskritai struktūra mūsų už kilpos, turime gražią generolą struktūra mūsų masyvas. Kadangi jie yra vieno tipo, visi masyvo elemento yra vienos rūšies, jums reikia inicializuoti kas, kad tipo yra. Taigi, kaip matote, čia mes turime gražus laikiklis duomenų tipas. Taigi, jei mes sukurti int masyvas, kuris bus int. Jei mes sukurti char masyvas, tai bus char. Jei mes sukurti eilutę masyvas, tai bus eilutė. Ir tada jūsų matrica vardas, ką norite, kad ji būtų. Taigi gal tai bandymas arba balai gal tai studentai arba gal tai saldainiai. Ką gi, jūs nuspręsite pavadinti savo masyvas, kad tai, ką jis bus. Ir tada skliausteliuose, jūs turi dydį, kokį norite. Taigi, mes saugoti 10 studentų ar mes saugoti 15 tipų saldainiai? Ką ne. Taigi mūsų pavyzdyje, mes sukurti masyvą dydžio trijų, kuris jus vaikinai pamatyti čia dešinėje. Ir kai mes pirmą kartą inicijuoti tai viskas prilyginama nuliui. Taigi tai tiesiog pagalvojau iš tarsi tuščia šiferio. Mes turime visas šias erdves, mes turime visi tos dėžės galėtume įdėti savo duomenis į, bet jie tiesiog tuščias šiuo metu. Taigi, jei norime, kad iš tikrųjų priskirti juos šios vertybės, mes taip tiesiai po čia rodo. Taigi jūs turite neatsižvelgiant į jų pavadinimą jūsų masyvas ir tada ką indeksą norite. Taigi rodiklis tiesiog reiškia, kaip, kas lizdas mes ieškome. Ir svarbiausias dalykas pastebėti yra tai, kad matricos yra nulinės indeksuojami. Taigi, jei norime pirmąjį erdvę atminties Mūsų masyvas, jis ketina būti nulinis. Jei norime antra, tai bus vienas. Jei mes norime, kad trečdalį, tai bus du. Taip toliau ir taip toliau. Kuris taip pat kodėl, tradiciškai, kai mes darome loops-- aš tikiu Jūs vaikinai buvo įdomu, kodėl mes pradėti 0 versus 1? Ir tai todėl, kad, kai mes pereiti naudodami masyvus, tai žemėlapiai teisingai. Taigi, jei norite, kad pakartoti į masyvą, jį daro daug daugiau prasmės Ar man lygus 0, nes mes žinau, kad bus atitikti į pirmąjį atminties vietoje. Kiekvienas geras su tuo? Cool. Ir tada ant dugno čia yra tik kitas būdas inicijuoti masyvą. Jūs vis dar turite savo duomenų tipas ir pavadinimas, bet vietoj tikrųjų išleidimą dydį ten, Jūs galite tiesiog padaryti tuščias skliausteliuose. Ir tada su jais garbanotas petnešos apačioje Jūs galite tiesiog įvesti duomenis, kad Norimą atskirti kableliais. Ir kad automatiškai sako, OK, matau kad jūs turite tris dalykų šių petnešos. Taigi aš žinau, kad man reikia skirti tris blokai atmintį ir saugoti juos. Taigi pirmoji versija galite naudoti jei esate klausia savo naudotojo įvestų vertės, kad jūs galite kartoti, kad masyvo ir ask-- kažkiek int įvesti juos. Jei žinote vertybes iš anksto, ji daro daug daugiau prasmės naudoti antrą kelią. Tačiau daugeliu atvejų, jūs negalite žinoti kas tos vertės bus. Cool. Bet kokie kiti klausimai? Gerai. Taigi gauti elements-- Taigi vienas iš didžiausių dalykų apie masyvų yra tai, kad jie yra atsitiktiniai prieiga, o tai reiškia, kad jums neturi atrodyti per kiekvieną bloką. Jei žinote, kad jums nori, kas yra dviejų bloko Jūs galite tiesiog pasakyti, duok man blokuoti du. Ir štai kodėl jie indeksai yra tokie svarbūs, ir tai, kaip mes iš tikrųjų juos pasiekti. Taigi šiuo atveju, kaip matėme anksčiau, kai mes buvo priskirti vertybes, į vieną prieš turėjome pavadinimą ir rodiklis norėjome pasiekti, tiesa? Taigi tuo pačiu būdu, kad mes visi padaryti, kad iš tikrųjų traukti, kad duomenų out. Turime vardą ir mes turi indeksą, kurį norime. Taigi šiuo atveju, už linijos žemyn čia apačioje, kas žinoti, ką jis daro, ką ji atsispausdinti? Mmhmm? Tiksliai. Taigi, taip, tai tik Iteracja per. i yra lygus zero-- galime vaikščioti per kodą tiesiog greitai. i yra lygus nuliui, i yra mažiau kaip trys, šioje vietoje, ar ne? Kad patikrinimus iš. Ir mes sakome, gerai, spausdinimo f kokia yra temperatūra i. i yra nulis čia, kai mes pirmą kartą pakartoti, todėl mes einame į šį pirmąjį vietoje, ir sakome, gerai, 65 yra skaičius norime spausdinti. Taigi jis bus atspausdinti 65 ir tada daryti naują eilutę. aš atnaujinti, todėl ji spausdina 87. Jis atnaujina ir vėl jis bus išspausdinti 30. Kiekvienas kietas? Nuostabus. Gerai. Taigi čia tipo vienas dalykas sakiau kaip galite sekti kažkieno rezultatas ir kodėl turėtumėte naudoti pirmą būdas Inicijuojama jį vietoj šio antrojo būdu. Ir tai tiesiog yra per. Ir pastebėsite, mes turime klasę dydis 30. Ir mes Inicijuojama tai masyvas int kad yra dydžio 30. Ir tada mes Iteracja per ir mes prašydamas, kad į įvesties vartotoją balai už kiekvieną iš šių ir tada ją paskiriant konkrečios vietos atmintyje kažkur toje masyvo. Cool? Ar tai prasminga visiems? Mmhmm? Taigi grotelėmis apibrėžti klasės dydis 30 yra Preprocesorius direktyva, kuris tiesiog reiškia, kad jis gets-- ji daryti kaip kompiliavimo procesą. Jūs galite galvoti apie tai, kaip pasaulinį kintamąjį. Tai, kaip mes tai padaryti yra typically-- leidžia kodą turi būti daugiau lengvai pasikeitė. Taigi galime sakyti, kad mūsų klasės dydis staiga eina 30-15, jei nebūčiau apibrėžta jį šiuo būdu, aš norėčiau turi eiti per visą savo programą ir pakeisti kiekvieną 30 atvejį 15. Bet tai, man pakeisti vieną vietoje, ir visa kita pokyčiai. Jei jūs kada nors norite padaryti maišos apibrėžti byloje kur jūs sekti kai nustatyti taškų skaičių už klasę ar jūs naudojate skaičių , kuri bus naudojama, kaip, visoje Ilgą programą, tai geriau apibrėžti, kad pradžioje taip, kad jei kada nors jis keičia, gausite pakeisti vieną vietą, o ne 100. Taip? STUDENTŲ: Nuo darai, kad ir tiesiog skelbiantis [nesigirdi] per viršuje. ALLISON Buchholtz-AU: Taigi turi daryti su efficient-- tai tipo nepriklauso taikymo sritį ką mes galime apimti šiame skyriuje. Jis turi padaryti daugiau su efektyvumu ir kaip viskas iš tikrųjų dirbti kompiliavimo procesą. Jei norite tikrai žinau apie tai, aš mielai atsiųsime Jums su išteklių apie tai el. Maišos apibrėžti tendenciją būti pageidaujamą dalykų. Ir kaip jums koduoti daugiau, galite rūšies sužinoti niuansų kada jums reikia naudoti pasaulinis palyginti maišos apibrėžti. Bet šiuo metu, jūs tikrai turite nerimauti yra kad per trumpą atsakymą. Kiekvienas geras su tuo? Ir taip pat, jei norite, naudoti maišos apibrėžti, tai tikrai svarbu pastebėti kad pavadinimas turėtų būti visais dangteliais. Mes ne tik tai Klasės dydis yra dramatiška. Jis tikrai turėtų būti visų dangteliais. Cool. Kitoks ten? Mes gerai? Gražus. Sveiki. Gerai, kad aš noriu jus vaikinai pažvelgti ne tai ir pamatyti, jei galite rasti klaidą. Aš duosiu jums užuominą. Tai kažkur toje už linijos. Mmhmm? STUDENTŲ: turėtų būti mažesnis nei lygus 2. ALLISON: Taigi jis gali būti mažesnis arba lygus 2, arba ji gali būti mažiau kaip 3. Ir kas už tai samprotavimas? STUDENTŲ: [nesigirdi] 0, 1, 2. ALLISON: Būtent. Taigi į jų dydžio n matrica, mes tik indeksai n minus 1. Cool. Ir tada mes galime gauti tikrai pamišę ir gauti kelių vienmačių masyvų. Viena iš problemų, kai aš paėmė jį į mano Metai reikalingi multi vienmačių masyvų, ir aš manau, vienas iš jų gali pareikalauti tai šiais metais, todėl būtų patogu. Wrap savo galvos aplink jį dabar. Ji bus grįžti į nemalonų Jūs, tačiau kietai ". Kad būtų galima tikrai tik manau įvairialypei masyvai kaip masyvų masyvus. Taigi galite rūšies manote apie šį viršaus Triukšmas dėl pirmojo riekė atminties. Ir tai yra vienas Antrasis gabalas atminties, ir paskutinė eilutė yra Trečiasis riekė atminties. Ir per tai, ten masyvas. Bet, žinoma, lengviau vaizduoti, kaip šis. Taigi jūs inicijuoti jai taip pat. Tai personažas lenta trijų iš trijų. Taigi, jūs turite tris eilutes ir trys stulpeliai. Mes atstovauja jį šiuo būdu. Ir jūs jį pasiekti, kad Lygiai taip pat, kolona iš eilės. Ir taip 1,1, kaip matome čia. Mes priskirti nulis, nulis ten. 2,0 ir 0,2. Taigi jūs tiesiog prisijungti them-- jei kas kada nors padaryti Tiesinė algebra, taip pat, jūs gaunate prieigą elementą į Matrice, tai tas pats idėja čia. Taigi galite susieti jį atgal į matematikos. Jūs neturite jaudintis per daug apie tai dabar. Tai gerai, kad ekspozicija, žinoti, kad jūs galite padaryti. Galite sukurti keletą pamišęs number-- galite sukurti beprotiškas masyvai yra viskas, ką aš ruošiuosi pasakyti. [Nesigirdi] Ji gauna šiek tiek beprotiška, bet tai tikrai cool. Nuostabus. Ir tada, kad mes turime pavyzdį čia. Jis skaičiuoja eilutės ilgis. Taigi, kaip daugelis žmonių žinojo, kad stygos, kad jūs naudojate Yra tik matricos simbolių? Gerai, taip. Taigi jūs vaikinai gali galvoti, kad jums dar nėra Naudoti masyvai anksčiau, tačiau bet kuriuo metu naudoti getstring į CSView biblioteka, jūs iš tikrųjų tik prašydama Ženklų masyvas. Ir mes rūpintis visi kad back-end už jus. Bet jums buvo naudojant masyvų, nes jūs pradėjote. Jūs tiesiog nežinote dar. Ir kiekvieną kartą, kai jūs turite simbolių masyvas ar masyvas, kad manimi saugoti eilutę, Paskutinis dalykas, kurį visada kas vadinamas null terminatorius, kuris tai čia. Ir tai yra pabaigoje kiekvienas žodis, kad jūs saugoti. Taigi, jei norime suprasti, ilgis eilutę, galima sakyti, Na, žinote, turinys tą bloką nėra lygus mūsų null terminatorius. Tai reiškia, kad yra tam tikrų charakteris yra, kad mes iš tikrųjų rūpinasi, kad yra dalis žodį. Jums padidinti savo ilgį. Ir tada, kai mes iš tikrųjų gauti į Žodžio pabaiga, jis bus nutraukti ir jis bus grąžinti mūsų ilgis mums. Mmhmm? STUDENTŲ: Ar vietos laikomas null terminatorius? ALLISON: Taigi erdvė yra ne null terminatorius. Taigi, jei turite multiple-- erdvė tikrai specifinis ASCII reikšmė. STUDENTŲ: Kas šauktukas lygus naujo? ALLISON: Taigi, tai yra tai, ką nurodo. Jei kada nors mane girdi ir po darbo valandų, Aš visada jį vadiname, kaip, bang lygus. Taigi bang nėra. Taigi tai nėra lygu. Taigi, jei jūs bandote pamatyti, jei kas nors yra klaidinga, žinote visada daryti, sprogimo viską kintamasis, o jei tai klaidinga, jis bus vertinamas kaip tikra ir jums gali padaryti įdomių dalykų, kad. Daugiau apie tai vėliau. Cool. Viskas gerai ten? Nuostabus. Taigi, dabar tai jūsų vaikino laikas dirbti, nes aš kalbėjau. Taigi aš noriu jums tiesiog sukurti masyvą sveikieji skaičiai su vienos, dviejų, ir trijų, ir tada juos atspausdinti. Jūs neturite daryti, kaip, Pagrindinis, blah, blah, blah, whatever. Aš tik noriu, kad tu inicijuoti masyvas ir tada sukurti už kilpos spausdinti juos out-- arba while cikle, nuo jūsų. Aš tiesiog jums pora min dirbti, kad. Aš einu ilsėtis mano balsą. Jei turite kokių nors klausimų, aš laimingas ateiti aplink ir pasikalbėti su jumis vaikinai. Jauskitės laisvai kalbėti viena su kita. Gauk daugiau saldainių. Tiesą sakant, aš tiesiog vaikščioti su saldainių. Kaip tai? Norite tokių yra? Dar kas nors šioje salėje nori saldainių? Taip pat galite imtis daugiau nei vieną, vaikinai. Paimkite saują, jei norite. Galite taip pat. Visi kiti gerai? Gerai. Be to, aš norėčiau sukurti Anoniminis Google Forma, ir vaikinai gali tiesiog pateikti atsiliepimai po kiekvieno skyriaus jei yra kažkas, ką norite patobulinti ar kažkas, ką norite padaryti. Jei aš esu šiek tiek per daug gera nuotaika Jums galiu tonas jį žemyn. Aš sukursiu, kad ir siųsti, kad su jumis visais vėliau. Gerai. Taigi galime pradėti mažas. Kaip mes inicijuoti mūsų masyvas? Kas mūsų masyvas tipas? Int, tiesa? Gerai, kad ko tu nori skambinti savo komplekta? Žiniasklaida masyvas, kietas. Gerai, kad mes turime int int masyvas lygus, ir ką mes turime po to? STUDENTŲ: [nesigirdi] skliausteliuose. ALLISON: Petnešos. Ir tada viduje petnešų? Vienas kablelis du kablelis trys. Cool. Taigi viskas gerai. Taigi dabar mes turime už kilpos. Taigi, mūsų pirmosios dalies for ciklas, ką turime? STUDENTŲ: i lygu 0? ALLISON: Taigi int i lygu 0, ir kas tada yra mūsų sąlyga? Kas i bus mažiau nei? Mažiau kaip trys, ir kaip mes turime atnaujinti? i plius plius, atnaujinti jį vieną. Ir tada mes ketiname turėti kai skaitinę printf, ir kas yra tas, kad paskutinis dalis, kuri tikrai sakys, ką reikia spausdinti? Būtų iš pavadinimas masyvas, kuris yra int masyvas, tiesa? Ir kas per int masyvas skliausteliuose? i. [? Taigi aš?] Buvo raginama mano pavyzdys, bet ten jūs einate. Nereiškia, kad blogai. Kiekvienas geras? Cool. Taigi, mes baigsime su masyvais. Sveikinu. Pavyko pakartoti per visus the-- taip? STUDENTŲ: [nesigirdi] ALLISON: Taip. STUDENTŲ: Turiu klausimą. Jums turėtų pastumti petnešos? ALLISON: Taigi petnešos turėtų išsirikiuoti su už kilpos, o tada jau viskas viduje petnešos turėtų būti atitrauktas. STUDENTŲ: Gerai, turėtų už kilpos būti atitrauktas? ALLISON: for ciklas nėra reikia atitraukiama šiuo klausimu. Jei buvo pagrindinis, jei mes tikrųjų turėjo pagrindinę funkciją čia ji būtų atitrauktas nuo pagrindinės. Tačiau šiuo atveju, tai gerai. Taip, klausimas. STUDENTŲ: Ar jums reikia turėti rezultatai po Pavyzdžiui skliausteliuose? ALLISON: Taip, jei esate Inicijuojama, kad taip. Taigi nepamirškite, tai yra antras būdas Inicijuojama masyvą kur turime sąvaržų ir tada mūsų tikrasis duomenys atskirtų kableliais viduje. STUDENTŲ: aš maniau, buvo laikikliai Šio pavyzdžio. ALLISON: Ne, jie petnešos. Jie petnešos. Jei Inicijuojama jį kad antrasis būdas, tai petnešos. Jei mes pasakyti, int example-- jei mes tiesiog norėjome tuščią masyvas int, būtų int pavyzdys kronšteinai tris. Skliausteliai atstovauti dydį. Kai turi petnešas, tai faktiniai duomenys jūs pateikėte į jį šiuo būdu. Galime pereikite atgal labai greitai. Taigi tai viena, tai tik mūsų Pradinė masyvas, iniciacijos. Ir čia mes esame atskirai priskiriant dėmės jiems todėl šis atstovauja indeksą mūsų masyvas, kuris yra, kodėl mes turime skliausteliuose. Bet čia, jei pastebėjote, mes su paliko savo laikiklius be dydžio, ir mes inicijuoti ją faktiniai duomenys all-in-vieną su petnešomis. STUDENTŲ: Taigi, kodėl ne mes turime skliausteliai šiame pavyzdyje? ALLISON:, kurioje dalis taip? STUDENTŲ: Ar ne mes tarkim, int pavyzdys kronšteinai prilygsta petnešos [nesigirdi] skliausteliuose pvz. ALLISON: Oi, atsiprašau. Jūs teisus. Turime Skliausteliuose. Atsiprašome vaikinai, mano blogas. Taip, jūs turite turėti skliaustuose po Pvz. Jūs esate visiškai teisus. STUDENTŲ: [nesigirdi] nedarote. ALLISON: Ne, jūs turite turėti skliausteliuose, nes priešingu atveju jie nesiruošia pripažinti masyvą. STUDENTŲ: [nesigirdi]. Atsiprašau dėl to. ALLISON: Atsiprašome, jums reikia skliaustuose po Pvz. Typo. Geras laimikis, aukso žvaigždė jums. Be to, jei jūs apie tai klausimą, jei vaikinai tiesiog pasakykite man savo vardus, Norėčiau, kad. Norėčiau, kad būtų galima žinoti visas savo vardus. Nesiruošiu šalčiui skambinti jums, aš iš tikrųjų do tik noriu žinoti savo vardus. Taigi, prašome tikrųjų pasakyti man savo vardus. LEAH: Lėja. ALLISON: Lėja. Gerai, kad functions-- Žinau trumpai jie kalbėjo apie tai paskaitos metu. Taigi funkcijos rūšies tiesiog kaip šių mažai kąsnio dalykų kur važiuoti, įėjimai, kažkas stebuklinga atsitinka, ir jūs gausite rezultatus. Cool. Kad jūs iš tikrųjų naudoti daug iš jų jau. Gauk int, gauti eilutę, spausdinimo f. Tai yra visos funkcijos kur tiesiog paskambinti, ten daug stebuklingų dalykų vyksta fone kad jūs nebūtinai pamatyti, ir jūs gaunate tai, ko norite. Arba bent jau gauti ką jūs tikiuosi, kad jūs norite. Ir iš esmės funkcijų taškas, ir vienas iš pagrindinių temų CS, yra nutraukti savo kodą į valdomas gabalus. Kai pradedate rašyti šie tikrai ilgas programas, arba nulio, kai jūs turėjote tai grand idėja žaidimą, jums reikia, kad būtų galima jį sulaužyti iki, kaip, gerai, kaip man pradėti? Kokie maži, kad man reikia? Ech, man reikia paklausti vartotojas už kažką. Dabar man reikia atspausdinti kažką. Ech, man reikia apskaičiuoti šią vertę. Ir sužinoti, kaip lūžti jūsų kodas ir dideli problemas, turi į šiuos mažus gabaliukus ir kurti funkcijas iš tikrųjų yra viena dideli kertiniai CS. Taigi, ką galima galvoti apie funkcijas tiesiog kaip kaip juoda dėžutė, magiškas juoda dėžutė, kad jūs įdėti daiktus į ir jūs kažkiek išvestį. Ir programos poilsio nereikia inoti, kas vyksta toje juodosios dėžės. Visa tai rūpi tai, ką įeina ir kas išeina. Cool. Tad kodėl funkcijos? Organization-- kaip sakiau, kai esate susijusios su labai didelėmis kodas bazių, kaip jums organizuoti jūsų kodas bus daug lengviau, jei jūs naudojate funkcijas. Nes Galėsite turi būti, kaip, Gerai, tai, yra tai, ką ši funkcija daro ir štai ką dar vienas daro. Ir jūs galite lengvai pamatyti, kaip jie visi tinka kartu. Taigi nesilaikantiems jį į visas šie valdomas poskyrių. Taigi simplification-- aš tikiu, kad jūs vaikinai visi tai matė, kaip sakiau, su nulio. Jūs turite šį grandiozinį idėją, ir jūs kaip, kaip veikia visa tai veikia? Bet jei jūs požiūrį dalimis, jūs sakote, gerai, kaip man padaryti vieną Sprite plūduriuoti per ekraną? Štai šiek tiek lengviau. Taigi gerai panaudoti funkcija leidžia Jūsų kodas daug lengviau skaityti. Tai leidžia lengviau derinti kuris kaip Jūs patenkate į savo vėlesniuose probleminių rinkinių, jūs ketinate tikrai norite, kad būtų galima daryti. Ir jie taip pat lengviau parengti ir įgyvendinti. Galite koduoti iki mažos veikti gana greitai ir įsitikinkite, kad ji veikia prieš bandant sukurti visą šią ilgą programą ir tada tipo pereiti ir pamatyti, kas veikia, o kas ne. Ir tada pakartotinai naudoti. Taigi funkcijos reikia tik turi būti parašyta vieną kartą, ir tada jūs galite juos naudoti tiek kartų, kiek įmanoma. Taigi, tai, kaip, ekologiški, tam tikra prasme. Jei turėjo tokius dalykus kaip print f, kur jums turėjo surašyti magiją, kuri eina nuo už spausdinti f kiekvieną kartą jūs norėjote spausdinti kažką, jūs Būtų gana nedarbingumo ir pavargau nuo to iki šio laikotarpio pabaigos. Vienas iš dalykų, kad jūs mokytis vėliau CS klases, arba viena iš geriausiai vienetų patarimų gaunu yra, jei jūs kopijuodami kodas, jis turėtų būti tikriausiai funkcija. Jei turite tą patį linijos Visą savo kodą, jei atsižvelgti juos, Jūsų kodas tikriausiai būti, pavyzdžiui, penkis kartus trumpesnis ir bus daug lengviau skaityti. Ir vietoj bando išspręsti visi šie skirtingi vietos, kur viskas gali suklysti, jūs turite vieną funkciją kad jums išspręsti. Ir aš pažadu, Daug tai Atrodytų rūšies abstraktus dabar bet kaip jums į vėliau ir vėliau problema nustato, jis bus padaryti daug daugiau prasmės ir tikrai važiuoti namo. Ar yra kokių nors klausimų apie funkcijas iki šiol? Kodėl mes naudojame juos? Aš žinau, mes ne Dotarłeś į Kasdieniai smėlinis dar. Taigi apibrėžiant function-- Just Like matricos, mums reikia šiek tiek of-- šios rūšies yra tik bendra produkcija. Taigi tai yra funkcija, kuri yra tik ketina kubeliais šiek įvestį. Ir kitame puslapyje, tikrai turime visi šie nuostabus smulkmenos čia. Taigi, galime visi skaityti kad, iš smalsumo? Žinau violetinė ir juoda gali būti šiek tiek sunku. Bet dideli dalykai know-- taip pirmas vienas čia yra mūsų sugrįžimo. Taigi tai yra kalbama apie produkcijos kai šios funkcijos, šiuo atveju, mes įdėti kai numeriu, ką mes gauti yra tai, kad numeris kubeliais. Todėl ji turėtų būti šiuo atveju int. Gal tai būtų dviguba arba kažkas vėliau, tačiau šiuo atveju, tai int. C, visada reikia grįžti tipą. Tai bus int. Tai bus plūduriuoti. Tai bus dviguba. Bet jūs turite nurodyti ką ši funkcija ketina grįžti. Priešingu atveju jis bus klykauti Jūs, o ne kaupti. Būsite liūdna, ir aš būsiu liūdna. Ir tai tik nėra gerai. Gerai. Ir tada mes turime funkcijos vardą. Ir, kaip matote čia, su C ten tai labai nuoseklūs paradigma. Koks jūsų tipas, kas vardas, ir tada kai kitas dalykas pabaigoje. Taigi, mes turime grįžti tipo, mūsų funkcijos pavadinimas, o tada mes turime antraštę su Mūsų parametrų sąrašas. Taigi parametrų sąrašas yra kas ši funkcija ketina imtis? Parametrų sąrašas yra tiesiog sinonimas, kokios yra mūsų indėlis? Ir tuo pačiu būdu, kad mes turi apibrėžti savo funkciją ir suteikti jai grįžti įrašykite kiekvienas iš mūsų žaliavos turi turėti tipą, susijusį su juo. Taigi mes žinome, ką mūsų funkcija iš tiesų gali dirbti. Taigi šiuo atveju, mes kai int įvestį. Taigi dar kartą, tai bus tipo ir ką jūs skambinate jį. Ir tada, kaip matai čia mes turime mūsų organizmą. Taigi, mes turime šiek tiek int išsiskyrimą, kad yra tik mūsų indėlis pati laikai kartų pati, kuri tiesiog kubeliais jį. Ir tada mes grįžti, kad produkcija. Taigi, kaip matote čia, mes turime int kartų int kartus int, taip ji grąžina int, kuri buvo paskelbtas ten. Taigi viskas yra darni. Viskas laimingas. Jūsų funkcija veiks. Ir tai tik bendras dalykas. Taigi visada turi grįžti tipo, vardas ir jūsų parametrų sąrašas. Kiekvienas dalykas jūsų parametrų sąrašas, ar įvesties, turi turėti tipą, susijusį su juo. Ir tada jūs turite savo kūno čia su kokia jūs norite daryti su jūsų indėlį. Ir tada, žinoma jums nori grįžti kažką. Kartais funkcijos tiesiog grįžti. Jie ne iš tikrųjų grįžti kažkas jums naudoti. Bet jūs turite grįžti į tam tikru būdu. Ir, kai jūs darote savo funkcijas, mes galime gauti į tai šiek tiek giliau. Asmeniškai, jei norite, yra daug Įvairių dalykų, kuriuos galėtų padaryti ten. Kiekvienas geras? Viskas, kas šiame sąraše, kad jūs norite, kad aš eiti per, kad tu negali suprasti? Kiekvienas gerai ten? Cool. Nuostabus. Gerai, kad mes turime tokį Visa tai kartu dabar. Taigi, mes turime šiek tiek int kubo įvestį, todėl tai visa programa čia. Iki šiol aš rūšies buvo nubaustas tave vaikinai fragmentus, kurie gali būti vyksta per programą. Mes ką tik buvo pažvelgti funkcijų. Bet čia visa programa. Taigi, kaip ir daugelis iš jūsų prisiminti Žodis prototipas iš paskaitos? Cool. Mes turime vieną. Koks jūsų vardas? Steph: Steph. ALLISON: Steph? Gerai, nuostabus. Taigi, ar pamenate, ką prototipas? STUDENTŲ: Sakote [nesigirdi] kol jūs iš tikrųjų kovoti su ja. ALLISON: Ar pamenate, kodėl? STUDENTŲ: Ne ALLISON: Gerai. Gold Star. Taip taip, prototipas turime iš anksto, nes kitaip, mūsų sudarytojas ketina klykauti mus. Jis ketina pasakyti, OK, kas tai yra kubas funkcija? Kaip jūs tiesiog turite man pasakė, nieko apie tai. Tai kaip tada, kai jums vaikščioti į pamokas, ir kažkas tarsi, ten Viktorina šiandien. Ir jūs, kaip, jus niekada man apie tai pasakojo. Nesu laimingas su mumis. Prototipas yra iš esmės panašus į Jūsų programa sakydamas, ieškoti. Heads Up. Ten bus šią dieną viktorina. Negalima freak out, kai jūs gaunate į jį. Jūs ketinate būti gerai. Taigi visi prototipas veikia, tai pasakyti Pagrindinis, aš ruošiuosi naudoti šią funkciją. Pažadu, aš apibrėžti vėliau. Negalima freak out at me. Tiesiog surinkti ir padaryti tai, ką aš sakau, kad. Taigi, mes turime prototipas yra tik, kad mūsų sudarytojas laimingas. Ir tai iš esmės pažadas, kad kurį nustatėte ši funkcija vėliau ir kad jūs ne tik skambina tai atsitiktinis dalykas, kad jį nežino, ką jūs ketinate daryti. Taigi šiuo atveju, mes turime pagrindinis čia. Mes inicijuoti kai sveikasis x. Štai du. Mes ketiname spausdinti ką x. Mes ketiname kubeliais x. Kaip matote, mes turime funkcija deklaracija žemyn čia, kad mes kalbėjo apie anksčiau. Tai bus kubeliais x, tada, jei mes prisiminti, kubo funkciją iš tikrųjų grąžina į sveikuosius mums, kuris yra saugomas X vėl, kad galėtume spausdinti iš aštuonių arba kubo x dabar. Ar tai prasminga visiems? Mes gerai? Gerai. Nuostabus. Gerai. Kiek iš jūsų vaikinai prisiminti Ši todėl šis iš esmės yra tik jūsų kamino, o jūsų krūva, tiesiog iš vizualizacija kaip atmintis yra saugomi čia. Taigi mes tiesiog norime, kad Įsitikinkite, kad jūs suprantate, kaip jie yra atstovaujama atmintyje. Pavartojus klases kaip CS61 ir kita vėliau, jums išmokti tai kur kas daugiau gylis, ir tai tikrai cool. Aš labai rekomenduoju jį. Bet dabar, aš duosiu Jūs plati apžvalga todėl jūs neturite žinoti Kasdieniai smėlinis. Taigi viršuje tik tekstas segmentą sudaro tikri nulių ir, už tai dvejetainis. Ir tai yra naudojama saugoti globalių kintamųjų, jei jūs turite bet kurį. Kaip jums judėti žemyn, mes turi, kaip matote čia, inicjalizowane duomenys, sužadinimas duomenys, o tada krūva. Taigi mes tikrai kalbame apie krūvą dabar. Mes susisieksime su ja vėliau. Nes dabar, aš tik ketina pakylės mano rankas ir būti kaip, Jums nereikia žinoti apie tai dabar. Bet mes kalbame šiek tiek tiek apie kamino. Taigi šūsnis where-- turime priartinti. Tai iš tikrųjų yra, kaip programa mes tik pažvelgė pasireiškia atminties. Taigi, kas atsitinka, yra, kas kartą mes vadiname funkciją, mes gauname tai, kas vadinama steko rėmas, kuris yra vienas iš jų. Taigi pagrindiniai parametrus. Taigi tie dalykai kad mes pereiname į vamzdynui. Taigi jie čia apačioje nes tai pirmas dalykas, kurį mes vadiname. Ir tada mes gauname pagrindinius ųjų vietiniai ir kai sakome, kad, turime galvoje vietos kintamieji kurie saugomi pagrindinis. Taigi vietiniai gyventojai čia būtų, kaip, x yra lygi dviejų šioje byloje. Nes tai, lokalizuota į pagrindinį. Ar visi prisiminti apimtį, vyksta per kad paskaitos? Gerai. Taigi, tiesiog kintamieji kad yra inicializuoti per pagrindinį. Štai kodėl mes turime pagrindinę [? vokalas. ?] Ir tada per pagrindinį, mes vadiname kubą. Teisė? Taigi mes gauname kitą kadrą Cube parametrų. Taigi šiuo atveju, kubas rungtynėse parametrai yra dabar x, kad mes praėjo, du, kad mes praėjo. Ir tada kubas yra vietiniai, kurie yra kai faktinis cubing atsitinka. Ir tada jis grįžta. Taigi, kas atsitinka, yra kaip kubas tiesų ką jis turėjo padaryti, ji grąžina. Kai jis grįžta, tai rėmas palieka, ir jos grįžo iki pagrindinės. Ir tada per pagrindinį, mes iš tikrųjų galite atsispausdinti. Taigi, kai jūs grįžti kažką, kai jūsų funkcija grąžina, tai kaip perduoti šias vertybes į žemiau rėmo ir tada palieka. Ir viskas turi vykdyti tam. Ir, kai jūs gaunate į didesnes programas, mes galime padaryti aušintuvas ir sudėtingesnis diagramos. Bet dabar, tai yra tiesiog bendra apžvalga todėl jūs turite natūra supratimas, kas atsitinka, kai jūs skambinate funkciją ir kaip, kad iš tikrųjų atrodo atmintyje. Cool? Kiekvienas geras? Nuostabus. Taigi tai yra vienas, kad yra tiesiog bando sukeisti dalykų. Kaip matome čia, mes turime Mūsų funkcija prototipas kad mūsų sudarytojas nėra klykauti mus. Mes turime iš esmės, ir mes norite persijungti X ir Y. Jie nepadarė šį demo į paskaitą dar turi jie? Jie turi ne? Gerai. Taigi, mes ketiname eiti per šį labai trumpai. Gausite į šiame pavyzdyje Daugiau gylis, manau, šią savaitę. Ir tada kitą savaitę galėsime tikrai pasinerti į kodėl tai neveikia. Taigi, mes turime šį negaliojančiu funkcijos here-- apsikeitimo. Taigi negaliojančiu tik reiškia, kad nieko grąžinamas. Ir mes turime apsikeitimo int ir int b. Ir mes kai laikinas kintamasis tai. pasireiškia priskirtas B, ir tada b gauna priskirtas temp Taigi, kad a ir b rungtynėse vertės dabar perėjo. Bet sklypas Tvist, tai neveikia. Ir jų dalis iš tikrųjų yra daryti su tuo, kad ir b čia tie, kurie gauti išlaikė per čia yra iš tikrųjų kopijos x ir y. Taigi, kai funkcija tikrai grįžta, ji persijungia kopijas, bet ne faktinis x ir y-aisiais. Taigi vienas iš būdų mąstyti apie tai that-- apsimesti tai apsikeitimo. Gerai? Taigi pagrindinis, turime x ir y inicializuoti. Bet kai mes iš tikrųjų eiti šių rėmų apsikeitimo sandorio, mes artimųjų vertybes per prie jos ir jie inicializuoti. Ir jie tik kada nors gyventi čia. Taigi ir b čia gyventi. Ir jie gauna pavertė. Bet kai mes grįžti, mes neturime nieko su a ir b do. ir b atostogos mūsų funkcija. Ir taip x ir y likti tas pats. Gausite daugiau į tai, kaip nustatyti, kad ir kaip mes iš tikrųjų spręsti vėliau. Bet tai tik vienas dalykas iki rūšies nepamiršti. Naudokite jį ateičiai. Nesijaudinkite, jei tai nepadarė visi pasaulyje jausmas. Jie kopijos yra didžiausias dalykas. Jei ketinate imtis nieko nuo to, jūs priimtas kopijų. Taigi originalus nesikeis. Kiekvienas geras? Cool. Taigi komandų eilutės argumentai. Aš tikiu, kad iš pradžių vaikinai visi turėjo tie didieji, pavyzdžiui, int main tuštumas. Ir jūs, kaip, OK cool. I do not really care. Tai yra tai, ką aš turiu rašyti. Bet savo naujoms programoms, ypač šioje pset, ir kodėl čia kreida ant žemės? Su kito pset, jūs bus matyti tai. Int main int arg c, styginių lankas v, skliausteliuose. Taigi, iš to, ką mes ką tik šiandien sužinojau, kas mes manome, kad antrasis parametras arba kad antrasis elementas yra čia? Tai masyvas. Kokio tipo masyvas? Styginių masyvas, taip. Cool. Štai kaip jūs ketinate būti paskelbti šie dabar. Ar kas nors prisiminti kas tai stovėti? Ne? Hmm? STUDENTŲ: arg c. ALLISON: Taigi arg c išlaiko skaitiklis. Tai int. Tai skaičius, tiesa? Taigi, ką jūs manote, kad skaičius yra? Taip. Taigi arg c yra eilučių skaičius kad būtų suformuotas komandų eilutę. Taigi, jei mes do-- tikrųjų, yra pavyzdžių po to, kad aš ne gauti prieš save. Tai styginių numeris, tiesiog padaryti savo komandų eilutę. Taigi, kai jūs darote, kaip, dot slash Mario, tai vienas eilutė, daro jį. Šiame kūrinyje, jūs iš tikrųjų būsite šėrimo daiktus į komandų eilutę, kaip aš tikiu, kad jūs vaikinai, kurie Perskaitę spec pjūklą. Taigi tais atvejais gal jums turi du ar tris argumentus. Ji ketina būti naudingas dalykas naudoti. Ir tada arg v, kaip mes sakėme, tik styginių masyvas. Kad iš tikrųjų saugo ką įvedate į komandinę eilutę. Taigi, mes turime juos. Turite šiek dot pasviru brūkšniu kopijuoti infile outfile. Taigi, jei arg c yra eilučių skaičius kad mes kelias į komandą linija, kas yra mūsų arg c tokiu atveju? Trys. Tiksliai. Taigi, kas arg v nulis? Taigi, kas yra pirmas dalykas, mes saugomi? Dot velniop kopiją, tiksliai. Ir tada antra, būtų INFILE. Trečiasis būtų outfile. Taigi, ką apie arg v trijų? Tai būtų niekinės, nes tai Mūsų masyvo pabaigos, tiesa? Cool. Ir kas tada apie šeštą vieną? Tai koks triukas klausimą. Ish. Ar žinome, kas tai yra? Tai nenurodytas. Mes nežinome, kas tai galėtų būti. Tai, kas bus teisinga po to, kai atminties masyvas, ir mes neturime supratimo, kas tai yra. Ir tai pavojinga liesti tie dalykų, nes visiems žinote, tai kai atminties dalis, kad jums turėtų būti ne prie arba null. Ir tai gali padaryti beprotiškus dalykus. Tai vadinama per indeksavimas Jūsų jungiasi prie jūsų masyvo. Neikite į lauką, iš greitai jūsų masyvas, arba blogi dalykai gali atsitikti. Jūs grįžti ir, taip sakant, įstatymų Fizikos buvo sunaikinta ar kažką. Cool. Ar tai prasminga visiems? Neblogai. Taigi, dabar, kiekvienas yra mėgstamiausia dalis, pset apžvalga. Yay! Gerai. Tad tiems, kurie negali skaityti pset spec, darai kai tikrai cool stuff su kriptografija. Jūs ketinate sukurti ceasar Šifras ir Vigenere šifro. Jūs turėtumėte neabejotinai skaityti spec pamatyti, kaip tie darbai. Ir jei turite kokių nors problemų apie ką jis iš tiesų turėtų daryti, prašome atvykti pasikalbėti su manimi, rašykite man arba tekstas man. Aš aplink. Taigi yra trys pagrindiniai dalykų čia, kad mes noriu kalbėti about-- tiesiog rūšies siekiant sukurti Bendrijoje paskaitos pratęsimo. Dalykų, kad jūs negalite žinoti apie, naudingų patarimų ir įrankių. Taigi, mes ketiname daryti Greita apžvalga ASCII, nes tai bus super svarbu Vigenere s šifras. Mes ketiname konversijos komandinės eilutės veiksniais, kurių bus labai naudinga Cezario šifras. Ir tada pagal modulį. Cool. Taigi, ASCII žemėlapiai simbolių skaičių. Tai puiki schema. Jūs turėtumėte turėti tai pažymėtas kažkur. Jūs norite jį Jūsų pirmoji laikotarpio vidurio. Aš esu gana įsitikinęs, kiekvienas turi tai diagrama jų vidurio lapo. Taigi išmokti. Tai patinka. Laikykite ją. Tai bus naudinga. Ir visa tai yra tai kodavimas kad žemėlapiai abėcėlinis, skaitmeninis, ir kiti simboliai numeriai mūsų kompiuterį. Nes žinoma, pabaigos, viskas, ką laikyti ketina gauti konvertuojami iki nulių ir tuos, todėl mes turime kažkokiu būdu atstovauti teksto ir simbolių, kad mes visi įpratę kaip nors numeriu rūšiuoti. Taigi, kaip matome čia, mes turime didžiąsias, kuris yra teisus ten. Tai 65. Ir mažąsias raides yra 97. Taigi galite išsiaiškinti out-- kaip jau minėjau, jei turėjo masyvas kartotinio stygos, ką kiekvienas iš jų turi null terminatorius. Būtų erdvė. Erdvė turi savo special-- Aš pamiršti, kur jis yra čia. Ak. 32 yra tarpas. Taigi viskas žemėlapiai jai. Taigi, mes turime ASCII matematiką. Pro tip-- į Vigenere s, jums gali būti linkusios konvertuoti numerius sveikieji, bet tai tikrai geriau praktika gebėti naudoti simbolių, kaip tai kai jūs iš tikrųjų manipuliuoja jais. Taigi, jei norite naudoti numerius, galite. Bet geresnis būdas, arba būdas, kad mes linkę patinka vaikinai tai padaryti, tai būdas, kur esate faktiškai atimant simbolių. Taigi aš noriu jums vaikinus rūšies suprasti tokiai padėčiai ištaisyti. Kodėl gi ne jums išbandyti kiekvieną kitur? Taigi, tai pirmasis, kad trečiasis ir penktasis vienas. Nes noriu įsitikinti, kad mes kalbame apie ką mes turime kalbėti apie. Aš tik ketina pasakyti, vienas iš svarbių dalykų to-- Oh wait, vaikinai nemačiau šį vieną. Gerai, kad tai pirmas trys. Leiskite tai padaryti. Kadangi mes turime kalbėti apie Modulo. Žinau. Matematika yra sunku. Galite naudoti skaičiuotuvą. Viskas OK. Arba atsigriebti ASCII lentelę, nes jūs tikriausiai norės, kad. Cool. Taigi, aš greitai vaikščioti vaikinai per šiuos. Taigi žmonės ASCII lentelės išrautas? Koks mūsų skaitmeninis numeris mažosiomis A? STUDENTŲ: Septyni. ALLISON: Taigi mažosios yra 97 ir didžiąsias yra 65. Taigi 97 minus 65? AUDITORIJA: 32? ALLISON: 62, taip. Taigi šiuo atveju, ką ji atsispausdinti? Kad pirmasis? Jei mes turime proc r, Kas tai galėtų reikšti? STUDENTŲ: skaičius. ALLISON: Mes spausdinti iš faktinio skaičiaus. Taigi mes iš tikrųjų ketiname spausdinti 32 čia. Ir jei tai buvo proc c, 32 duos mums vietos. Taigi suprasti, kad simboliai gali būti atspausdinti tiek skaičiais ir kaip faktinės simbolių yra tikrai svarbu, ir mokėjimo dėmesys į tikrąsias tipų kad mes darome čia. Cool. Taigi už kiekvieną kitą vieną iš jų, ką mes ketiname būti spausdinti? STUDENTŲ: charakteris. ALLISON: charakteris. Cool. Taigi, jei jus vaikinai nori žinoti, jums gali dirbti tai ant savo. Jei jums kyla problemų, rašykite man. Bet antrasis bus spausdinti mažosiomis raidėmis b. Trečiasis bus išspausdinti didžiąsias B. ketvirta atspausdins iš iš didžiosios C ir paskutinis iš jų bus mažosiomis A. Ir paskutinis one-- mes iš tikrųjų ketiname patekti į ką tai beprotiška proc ženklas net reiškia pora skaidrių. Taigi pabandykite tuos savo. Jei turite problemų, prašome atvykti pasikalbėti su manimi. Jei esate paprastai Adams D salėje, jūs tikriausiai pastebėsite aplink mane. Taigi, atoi. Kaip daugelis iš jūsų matė tai funkcija ar girdėjote apie jį ne visi? Kiekvienas? Cool. Taigi, kas tai iš tikrųjų reiškia už tai ASCII iki sveikojo skaičiaus. Taigi, ką galite padaryti, tai, su Cezariu, tiems, kurie skaityti spec, jūs ketinate padaryti dot velniop Cezaris Po rašote savo programą, ir tada jūs ketinate įvesties kai skaičius, kad jūs nori koduoti slaptą žinutę su. Tačiau, jei mes prisimename, visi mūsų įėjimai yra saugomi kaip stygos. Teisė? Turime Arg prieš masyvo tai yra viskas, tipo eilutė. Taigi, jei jūs tiesiog pabandykite traukti tą vieną, tai būtų manau, kad tai vienas ar kokia numeris Jūs naudojote tikrai charakteris. Taigi jūs ketinate gauti kai beprotiškas rezultatai. Taigi, jei jūs iš tikrųjų norite virsti sveikosios tai kad jūs galite naudoti norėdami valdyti tavo žodis ar jūsų žinutė, jūs norite naudoti atoi. atoi tiesiog konvertuoja Jūsų string int. Taigi, jei mes turime 12 eilutę, jei mes vadiname atoi 12, ar kas, kad įėjimas yra ji iš tikrųjų sugrįš Jums sveikasis skaičius. Ne požymis ar styginių 12. Kuris, kai pradėsite pridėti, kad į skaičius, bus labai skirtingi, nes eilutė 12 yra kai beprotiškas skaičius ASCII, bet sveikasis skaičius 12 iš tikrųjų 12, o tai, ką norite. Taigi jūs norite įsitikinti, kad naudoja atoi. Jūs ketinate norite tai į Cezaris, nes jums reikia int pateiktą vartotojas į komandų eilutę. Bet kai jie įdėti jį į komandą linija, o saugomas kaip eilutę prasideda. Ar tai prasminga? Jūs nebūtinai reikia tai už Vigenere. Su Vigenere, kaip sakiau prieš, jūs turėtumėte pabandyti ir naudoti ASCII matematikos, kad atrodo labiau kaip tai, kur jūs iš tikrųjų naudojant simbolius, kad mes davė jums. Cool. Kiekvienas geras ten? Nuostabus. Taigi modulį. Taigi ką daryti, jei jums suteikta tai didžiulis skaičius Cezaris? Turite šią idėją, kad jei esate ne Z ir jūs suteikiamas numeris du, tai reiškia, kad jums need-- Z tampa antra laiškas po save, tiesa? Taigi jūs turite kažkaip apvynioti, ir pagal modulius yra būdas tai padaryti. Taigi visa tai yra ji suteikia likusią apie skyriaus Pirmasis numeris, kurį sekundę. Ir mes turime keletą pavyzdžių su padaryti, kad šiek tiek daugiau betono. Bet iš esmės, jūs naudojate modulo kai jūs nori padaryti kažką apgaubiamajam. Taigi, jei jūs tik norite numeriai vienas po aštuonių, galite naudoti modulo ant bet kokios kitos numeris, ir ji bus visada grįžti skaičių nuo nulio iki aštuonių. Taigi kai jei examples-- mes turime 55 modulo 10, jis tiesiog suteikia jums galimybę likusią 55, padalytą iš 10, tačiau tai būtų 5. Ir tada tris modulį penki, kas atspėti, ką, kad būtų? Trys. Taigi, jei turite mažesnį skaičių iki modulį, jis negali eiti į tolygiai. Tai nulis. Taigi jis tiesiog grįžta pats numeris. Taigi aštuoni modulį aštuoni būtų? STUDENTŲ: Zero. ALLISON: Zero. Nes jis eina tolygiai. 16 modulį 15? AUDITORIJA: Vienas. ALLISON: Cool. Ir tada tai naujausia yra tiesiog rodo you-- jums gali būti įdomu, OK, kas operacijų čia tvarka? Ar mes padalinti pirmas? Ar mes modulį pirmiausia? Taigi modulį turi tokią pačią pirmenybę kaip padalinio ar dauginimui, ir ar tai kairysis asociatyvi. Taigi jis yra tuo pačiu būdu. Jūs visada padaryti skliausteliuose, tada daugyba, dalyba, ir tam, kad modulį iš kairės į dešinę. Taigi standartinės taisyklės. Tiesiog padėkite jį į tą pačią kategoriją kaip pasidalijimas ir daugintis. Taigi šiuo atveju, mes turėtume turėti 1 plius 2 suteikia mums 3. Mes padaugino 2, todėl mes gauname 6. Mes modulį, kad 2, kuris suteikia mums? STUDENTŲ: 0. ALLISON: 0. Ir tada mes pridėti 2, todėl 2 gauti pastaruoju atveju. Taigi modulo-- jūs tikrai ketinate galvoti apie būdus, kaip įtraukti kad, kai jūs vyniojimo aplink abėcėlės. Jei esate Z ir jums reikia perkelti perduoti tris tarpus gauti C, ten, kad visa koncepcija vyniojimo aplink. Taigi aš paliksiu jį vaikinai išsiaiškinti kaip tiksliai jūs ketinate jį naudoti. Bet tikrai naudingas įrankis Jūsų pset šią savaitę. Aš tikrai patinka tai. Tai yra vienas iš mano mėgstamiausių psets. Tada, kai jūs tai darote, jei turite draugų, galite, pavyzdžiui, siųsti vienas kitam paslaptį pranešimai ir įsitikinkite, kad jis veikia. Nes jis bus iššifruoti jį ar kas. Lots of fun. Ir tai yra skyriaus pabaigoje. Aš baigiau anksti. Aš vis dar turiu 15 minučių su vaikinai, todėl, jei nėra nieko, kad norite pereiti toliau, aš mielai tai padaryti. Bet kokie kiti klausimai Jūsų pset tiems iš jūsų, kurie prasidėjo ar perskaityti spec. Viskas, kas mes kalbėjome apie į paskutinę valandą ir 15 minučių, kad norėtumėte man iki rūšies perfrazavimas aš mielai. Ar mes galime jį vadiname meta, ir jūs galite visi palikti ir imtis daugiau saldainių su jumis kaip jūs einate. Bet jei yra koks nors išlikęs Klausimai, Please let me know. Taip pat galite sugalvoti ir talk to me vėliau. Pažadu aš neima. Ką nors? Kiekvienas yra gera? Kiekvieno žmogaus jausmas kaip jie gali dirbti šį pset? Jūs ketinate būti smulkių vaikinai. Darbo valandos yra ten priežasties. Cool. Gerai. Na, tokiu atveju, ačiū Jūs visi tiek daug, kad atvykote. Tikiuosi pamatyti jus kitą savaitę. Bus daugiau saldainių. Gali būti kitų įdomių dalykų. Ir aš tikiuosi, kad vis žinoti viską apie jus šiais metais.