[Muusika mängimine] ALLISON Buchholtz'ile-Aafrika: Hei kõigile. Tere tulemast oma esimese ametlik CS50 osa. Nagu näete, vaata see on lõik CS50-like, lihtsalt tõmba meie tänase päevakorra. Nii, kes ma olen, sest ma olen kindel, te kõik ei tea. Olen oma TF. Ma ei ole lihtsalt juhuslik tudeng kes kehastamine oma TF. Ja ma lähen läbi selline on lõigud hakkab voolama, ootused on meil, ressursse, nii edasi ja nii edasi. Me ei kavatse rääkida massiivid ASCII funktsioone, käsurea argumente, ja see ei ole siin, vaid Ma ka aidata sa omamoodi läbi mõelda oma järgmise pset sel nädalal. Milline ma olen kindel, et te kõik hindavad. Niisiis, esimene question-- kes olen mina, peale oma ülevoolav TF siin. Ma olen Alison Buchholtz-Au. See on minu teine ​​aasta TFing CS50. Olen ka TF CS51 kevadel. Võite näha jälle seal kui sa otsustad seda võtta. Ma olen ka PAF, nii et kõik Freshmen-- ja kui sa ei ole uustulnuk, see on minu kolmas aasta nagu nõustamine mehe. Ma väga hästi kursis nõustab teid elu ja kursused CS ja mitte ST. Olen Computer Science koondaja. Ma olen vanem Adams House, parim maja. Ja enne, kui ma läinud CS mu Sophomore Spring, Ma olin tegelikult biomeditsiiniinseneriga. Ma kavatsesin minna Med koolis. Ma tahtsin olla trauma kirurg. Ja see on täiesti muutunud võtsin CS50. Võtsin muidugi minu Sophomore Fall. See oli minu esimene kokkupuude CS kunagi. Mul oli üks 78%, kes oli null kogemused tulevad, ja seda täiesti muutis mu elu. Ja nüüd ma töötan kell Microsoft ja armas TF. Ja CS50 on ilmselt üks parimaid kogemusi et ma olen olnud siin Harvard-- nii võttes klassi ja on võimalik, et aidata õpetada õpilasi nagu sina. Nii et ma olen väga põnevil et sa oled kõik siin. Kui sa tulid lõpus on kommid, mis sa ei tohiks tunda vaba tulla haarata või saata keegi haarata seda sinu jaoks. see on OK. Ma ei taha süüa seda. Minu tuba on piisavalt šokolaad, nii Te kõik peaksite proovima ja lõpetada see. Tean, et on 100 tükki, aga nagu, 04:00 esmaspäeval, Ma arvan, et igaüks võiks kasutada veidi suhkrut. Nii et kõik, kes te olete ametlikult minu jagu oleks saanud talle minult minu telefoninumber e-aadressiks julgelt lisada mind Gchati, võid vabalt lisada mind Facebook, ja ka kogu ülejäänud teile, saate e-posti mind siin. On kaks H s. Igaüks teeb seda alati nagu kaks L's või kaks C poolt. Kaks H on ka perekonnanimi. Muidu läheb põrgatama, ja Ma ei hakka oma e-posti. Nii emaili mulle, minuga igal ajal. Ma ei pruugi saada tagasi teile 24 minuti aga ma luban, et saada tagasi Teile 24 tunni jooksul. Kui sa helistad mulle pool tundi enne oma pset põhjuseks, siis on nagu, Mul pole aimugi, mida ma teen Allison. Aidake mind. Ma lähen sind maha rahustada, kuid lõpuks päev kui sa kutsud mind pool tundi enne oma pset on tingitud mitte midagi kirjutatud, Ma lähen olla nagu, noh, võib-olla on aeg kasutada seda hilja päev. Ma vastan kõigile teie nõuab väga õigeaegselt. Minu telefon on tavaliselt lisatud minu kätes. Ma tavaliselt vastata palju kiiremini kui 24 tundi, aga ma ei ainult garantii 24 tunni jooksul vastuse. Hea küll. Miks me siin oleme? Samuti, kui teil on küsimusi igal ajal, siis palun andke mulle teada. Ma räägin palju. Ma räägin kiiresti, aga palun julgelt katkesta mind. See annab mulle hingamise ruumi samuti. Nii lõigud on aeg meil tõesti lihtsalt sukelduda aastal, saaksin praktilisi kogemusi, et läbida teemasid, mis me rääkisime klassis või õppematerjale, et soovitame kutid võrgus. Ja me tegelikult läbida mõned nendest ressurssidest natuke. Nii et mõned märkused jagu toetust. CS50-- üks asjadest, mis muudab see üks mu lemmik tunnid on tunne, et te pole kunagi üksi. Meil töötab üle 100 inimesed, kes on siin, et aidata teil. Meil on tööajal Esmaspäevast neljapäevani. Nii et seal on nii palju inimesi, kes armastan klassi sama palju kui mina ja kes on tõesti siin sest nad tahavad siin olla. Enamik meist on õpilased ja see on nagu viienda klassi lisaks et kogu meie töö. Ja see on palju tööd, kuid me teeme seda, sest me armastame seda, ja me tõesti armastan õpetab ja aitab jagada meie põnevust Selle teema ja selles klassis. Nii et palun ära. Tule räägi meile. Ma saan üksildane, kui mu õpilased ärge rääkige mulle, et kui sa tahad, tule hängida koos minuga. See oleks tore. Nii et osa on ilmselt üks teie suurimaid asju. Me läheme läbi asjad et sa õppisid loeng, teha mõned lühikesed näited kui meil on aega, ja üldiselt selline saada aimu asjad siis tuleb mõelda umbes teie probleem määratud. Shorts--, kui palju inimesi tegelikult vaatasin video oma nullist lühike? Igaüks tunne mind ära? Nii et need on väga suur. Sa peaksid kindlasti vaadata neid. Palju tööd on pandud neile. Ja nad lihtsalt pidi olema hammustada suurusega tükkideks, et sa lihtsalt vaadata kolm või neli minutit ja saada paremini mõista kontseptsiooni. Kõnni throughs-- kuidas paljud inimesed on jälginud walk-läbi ekspordi jaoks eelmised? Zamyla on hämmastav, eks? Nagu, ma soovin, et olid Zamyla mõnikord. Nii et kindlasti kasutada oma walk-läbi. Ta jaotada see väike, hammustada suurusega tükkideks. Ja kui sul on need suured kirjeldused teie probleem komplekti, see saab olema väga oluline saaks lihtsalt leida kusagil alustada ja töötada aeglaselt läbi. Olgu, meil on ka Study50, mis on study50.harvard.edu, ma usun. Saate lihtsalt Google õppida ja see saab tulla. See on üks parimad ressursid meil on. On Powerpoint koos märkustega ja praktika probleeme teile koos lahendusi, mida saab tegelikult läbi kõndida. Nii et kui sa kunagi tahad rohkem harjutamist, rohkem kui me teeme lõigud või rohkem kui teie probleem komplekti, see on tõesti koht, ma kutsun teid üles minna. See oli ehitatud eelmisel suvel mõned mu väga head sõbrad. Ja see on hämmastav. Tegelikult palju slaidid et ma tulen kasutades jagu tulevad Study50. Nii palju TF kasutada. Ja lõpuks, kui ma mainitud, tööajal. Kui sul on probleeme kodutöö, sa oled on probleeme mõiste, tule tööajal. Mine varakult sel nädalal, kui saad. Kao et quad, sest see on selline kaugele. Keegi meeldib käia seal. Aga see on teie eelis, sest siis sa oled läheb on kõik need TF, [Kuuldamatu] ümbritsevad sind. Ja eriti nüüd, lihtsalt otsa, neljapäeviti väga chill kohe sisse Ema, sest teie psets on tingitud neljapäeviti. Ja teades tahab kasutada oma hilinenud päeva veel. Nii et kui sul on Probleeme kontseptsioone, seal on palju TF kes on selleks, et teid aidata. Nii et tulge välja Mather neljapäeval. Kui soovite mind näha, Ma lähen sinna. Ma tavaliselt teevad oma kodutöö, sest keegi ei taha minu abi. Nii et tule vaata meid. Tutvu meie poolel. Niisiis, kuidas paljud inimesed on käinud loenguid või vaatasin seda online? Mitu inimest läks super lõik eelmisel nädalal? Külm. See on tegelikult suhteliselt palju. Kui paljud teist on lugenud oma spec sel nädalal oma pset? Ooh, ma olen uhke teie poisid! Veel kommi eest Y'all. Hea, et see, mida me mõtleme "Meiega kohtuda poolel teel," on see lõik on tõesti ainult saab olema super kasulik teile kui sa tuled sisse lugenud oma kirjelduse oma pset. Sest kui ma lähen läbi ülevaade asju, mida tuleks vaadata läbi, ta ei kavatse teha nii palju tunde, kui te ei tea, mis su probleem määratud läheb palume teil teha. Kui te ei tulnud paragrahvi ilmselt Ma ei saa olla, et kasulik teile. Ma ei kavatse võtta seda isiklikult, kui sa ei tule minu jagu just nüüd, kuid kindlasti sa peaksid. Kui te ei saa vaadata neid võrgus. Nad on seal põhjus. Mine on seal. Nagu te teate, me salvestatava nii et see kohe seal kutid. Nagu hästi, läheb lectures-- mis on ilmselt kus sa käid alustada oma materjali siin. Nii et ma kindlasti proovida aitab teil nii palju kui suudan, aga ma võin ainult sinuga kohtuda nii kaugele. Sa pead liiki meiega kohtuda poolel teel sinna. Grading-- nii, et te kõik kes sai talle minust sa oled mu ametlik osa. Räägin liigitamise oma psets. Ja ma lihtsalt tahan öelda, üks asi, mis sa peaksid tõesti pöörama tähelepanu on kommentaarid. Kommentaarid on sageli kasulik kui tegelik tulemus anname. Ja kommentaarid on tegelikult kus ma veedan palju minu aega kui ma olen mune. Seega oleksin tänulik see kui sa loed neid. Ja nad on tegelikult kuidas sa lähed rohkem teada disain ja stiil ja asjad, mis on Veidi vähem lõigatud ja kuiv. Nii et tõesti pöörama tähelepanu neid märkusi. Kui teil on küsimusi nende kohta, või küsimusi oma skoor, tulge minuga rääkida kas enne jagu, Ma ilmselt poomise läbi vestibüülis või hiljem. Kui soovite ajastada üks-ühele kohtumised, kuidas saate aidata parandada hiljem probleem komplekti, lihtsalt andke mulle teada. Ja siis paar näpunäited kutid. Nii et üks suuremaid asju Olen alati rõhutada, et minu jagu kui sa õpid, kuidas koodi on kirjutada asju teha paberil esimene. Kui teil on mängu kava kus oma koodi vaja minna ja mida ta vajab teha ja see on jaotatud arvesse vähe bitti pseudokoodi kood olete välja kirjutatud, sa lähed, et olla vähem tõenäoline, et süntaksi vigu või luua, kui silmus, ei muud. Kui sa tead, kus sa oled läheb üldiselt, sa oled vähem tõenäoline, et need tillukesed vigu, mis mõnikord viib teid tunni määrata, sest sa oled nagu, kus ma kadunud see sulg? Selle teadmiseks, palun kasutage Style50. Eriti kui sa oled läheb tööajal, Kui teie kood on kõik ümberlülitunud ühel pool, see on muidugi poliitika et me ei saa öelda, seda parandada nii et see näeb välja nagu Style50 ütleb peaks, ja siis me aitame sind. Nii saad teha oma elu kergemaks. See teeb meie elu lihtsamaks. Igaüks on õnnelikumad. Igaüks saab paremini klassid. Kas see pole mitte see, mida me kõik tahame? Nii et kirjutada asju teha paberil enne sa kunagi puudutada arvuti. Rääkige asjad kõrgel tasemel, ja et sa tead, kuhu sa lähed. Ja kui te ei tea, istuda kellegagi ja kõndida neid läbi samm-sammult mida teie kood peaks tegema. Ja üheksa korda välja 10, siis saad nagu, oh, ma unustasin, kui tingimus või ma unustasin semikooloniga siin või Ma ajakohastamine seda muutujat vale. Nii et need on minu edu tagajad. Nii et kuna umbes pooled sa vaatad nagu sa osalesid super osas Ma lihtsalt väga lühidalt läbida silmad, mida ei olnud meie algne päevakorda. Aga nad on tõesti oluline. Ja nii ma lähen liiki kiirus läbi nende Enne kui me sattuda meie tegelik osa. Enne kui ma seda teha, on seal iga questions-- logistiliselt Isiklikult on olemas midagi tahad teada mulle või umbes lõik või klass üldiselt? Kõik hea? OK, lahe. Armas. Nii loops-- kutid peaks kõik tunnistavad need tükid nullist. Nii et silmad on põhimõtteliselt ainult nii, et teeme midagi Mõnes mitu korda, mõned korrata mis põhinevad mõned tingimuslik. Nii et meil on kolme tüüpi. Meil on silmus, samal ajal, ja teha-aega. Nii loops-- meil on lihtsalt väga üldplaan siin silmus. Ja see on suurepärane, kui sa tead, kuidas mitu korda midagi on vaja, et täita. Kui me räägime teiste silmad, saate mõista, miks see on oluline erinevus. Aga silmad on midagi komplekt. Sa tead, et võid kas arvutada number või sa tead, mitu korda sa tahan seda korrata alguses. Nii et kui sa näed siin, me on ainult üldine lahke skeleti raamistik jaoks silmus siin. Nii-initsialiseerimise on see, kus Sinu muutujad on vormindatud. Mario, ma olen kindel, et te tegite midagi int i võrdub 0. See, kui et juhtuks sinine. Sul on seisund, mis on see, mida on kontrollitud iga kord. Kui see tingimus on tõene, siis Ülejäänud kood hukatakse. Siis läheb jooksuks again-- ja küsida. Ja siis on meil värskenduse kus sa uuendad oma muutuv. Niisiis, jälle koos nagu Mario, ma olen kindel te tegite midagi i pluss pluss. Nii et iga kord, kui silmus jooksis, sain uuendatud nii et kui me olime nende kontrollimiseks mõned tingimus oli see muutumas. Sest kui sa lihtsalt on staatiline muutuja, kui ta täidab esimest korda, see on lihtsalt läheb täide lõpmatult. Nii et sa pead veenduge, et teil uuenda oma muutuva korralikult. Ja meil on ka lihtsalt visuaalne esitus seal. Igaühel on hea? Sest silmuseid. Kas olete näinud neid oma pset. Külm. Nii et siin on lihtsalt lihtne näide. Trüki See on CS50! 10 korda. Ja nii on meil initsialiseerimise nagu me näeme seal, kus int i võrdub 0, sest ma ei ole nii kui 10, ja i pluss pluss. Ja see saab printida, et 10 korda. Niisiis, kui loops-- samas silmuseid on suurepärane, kui sa ei pea on teada, mitu korda see kavatse uuendada alguses. Sa pead lihtsalt mõned tingimusel, et on kontrollitud. Ja see võiks olla midagi sellist while-- Võtame näiteks teie pset. Kui Mario, sa püüad sisend negatiivne number. Õigus? Sa pidid uuesti teata oma kasutajanimi. Nii saab öelda, noh, kui kasutaja sisendite midagi vähem kui null, re-kiire neid. Ja ma olen kindel, et võib-olla olnud midagi, mida mõned teist kasutada oma koodi. Nii et see on lihtne asi. Sul on aega, mõned tingimuseks, et kontrollitakse iga kord koodi läheb täide. Kui see tulemus on tõsi, me käivitada. Muidu meil ei ole. Ja mis on tegelikult important-- midagi, mida ma arvan, et David rääkis aastal lecture-- on traksid. Mis iganes on sees traksid on see, mis on sooritatud. Kui te unustate need traksid, see on ainult kavatse olema kooskõlas otse pärast samal ajal hukati. Nii et kui teil on kolm asjad, mis peaksid juhtuda, kui see tingimus hindab tõeseks, ja sa ei pea need traksid, vaid esimene asi juhtub. Nii väga teadlik kui paned oma traksid. Kui teil jääda Style50, see kindlasti aitab teil. Külm. Nii et see on loendur 10 nulli. Ja nagu näete siin, me initsialiseerida mõned counter väljaspool seda. Üks asi, mis on erinev, on me ei algväärtustamisel meie muutuja meie samas silmus. See on vormindatud väljaspool seda. Me lihtsalt lihtsalt paneb seisukorras meie aega. Nii antud juhul see samas arv on suurem kui null. Ja me välja printida, mida meie arv on ja siis me kahandab meie muutuv. Ja see on veel üks asi, mida tähele. Meie uuendus ei juhtu jooksul et esimene osa samas silmus. See tegelikult juhtub jooksul traksid, keha oma teksti. Nii ei-kuigi loops-- do-samas silmuseid on suur kasutaja valideerimist. Nii et mõned teist võib-olla Samuti kasutatakse seda oma pset. Võite öelda, kas, nagu, küsi kasutaja sisend. Ja siis samas, nagu, sisend on väiksem kui mõned number. Nii selgesõnaline puhul Mario, ta oleks teha printf sisestage täisarv, ja siis mingi täisarvu võrdub getint. Ja siis see saab tegelikult täita selle koodi esimene. Sa tegelikult on mingi täisarv. Ja siis võiks öelda, kui et täisarv on väiksem kui null. Mis siis, et see saab teha, on see läheb sooritama vähemalt üks kord. See läheb olukorra kontrollimiseks. Kui seisund ei tõsi, siis see uuesti avada. Nii et tee-kui silmuseid on suur kasutaja valideerimine, sest sa tead koodi läheb sooritama vähemalt üks kord, samas kuigi silmad, sa ei ole tagatud, et see on kavatse täita üks kord. See läheb olukorra kontrollimiseks ja alles seejärel otsustada täita seda, samas do-samas hakkab täita esimesena koodi ja siis vaadata, kas sa pead seda kordama. Kas see eristus mõtet kõigile? OK. Külm. Nii antud juhul on see omamoodi mida ma räägin, see uuesti kuvatavaid juhiseid, kuni olete saada positiivne number. Nii et me teame, et printf "Sisestage positiivne number" ja tegelikult küsida, et sisend juhtub vähemalt üks kord. Kui kasutaja on paha ja hoiab sisestades negatiivne arv, kes teab, mitu korda see saab täita. Kuid see kood on tagatud teostada vähemalt üks kord. Ja see on põhjus, miks see on hea kinnitamise sisend. Ja sa kasutada seda üsna vähe. Olgu, küsimusi nii palju? Me oleme kõik hea? Ma räägin liiga kiiresti? Oleme hea? OK. Aukartust äratav Nii et me ei kavatse minna ja rääkida massiivid. Külm. Nii massiivid on põhimõtteliselt lihtsalt andmestruktuurid mis võimaldavad meil säilitada asjad sama liiki. Nii et kui sa kunagi massiivi, see on kas lihtsalt läheb on ints või on see lihtsalt läheb on ujukite või on see lihtsalt läheb on tähemärki. Sa ei kavatse on int koos char vaba raha topelt. Üks asi. Massiivid on vaid üks suurus, või nad lihtsalt üks tüüp. Nii et siin on meil massiivi suurus kolm kolme täisarvu ta. Nad võiksid hõljub, kuid me oleme ütlen nad ints. Nii et üks asi aru, et massiivid on komplekt suurus kui sa initsialiseerida ja need ei ole easily-- sest te kõik olete vähem mugav, siis tuleb lihtsalt mõelda neid ei ole võimalik pikendada suurusega. Kuid suur kui on sätestatud Sinu massiivi alguses, see on suurus, et see läheb jääda, sest massiivid on pidev blokeerib mälu. Ja kui kutid saada sisse natuke rohkem kuidas mälu on tegelikult ette viia kettad ja hunnik ja korstna see teen veidi rohkem mõistust. Aga sa võid lihtsalt mõelda nagu see on lihtsalt rida ruume kettalt. Ja sa ei saa garanteerida, et seal on saab olema vaba ruumi pärast. Sa võid initsialiseerida massiivi kolm ja siis võibolla initsialiseerida teise massiiv viis hiljem, ja see on kohe pärast seda. Nii et kui sa olid mööduvad koha kolm, et esimene massiiv, siis oleks kirjalikult üle midagi muud. Nii massiivid are-- kutid, lihtsalt mõtle neid fikseeritud suurus. Nii et luua array-- sa lähed vaja seda teha üsna vähe. Nii et samamoodi, et meil on üldstruktuur meie jaoks silmuseid, meil kena üldine struktuuri meie massiivi. Sest nad on ühte liiki, kõik elementide massiiv on ühte liiki, peate vormindama mida see tüüp on. Nii, nagu näete siin on meil kena väike sulg andmetüübi. Nii et kui me luua int massiiv, mis on int. Kui me luua char massiiv, et see saab olema char. Kui me luua string massiiv, et see saab olema string. Ja siis nime oma massiiv, mida iganes soovite seda. Nii et võib-olla see skooriga või äkki see on üliõpilased või äkki see on kristalliseerunud. Mida iganes sa otsustad nime oma massiiv, see on, mida see saab olema. Ja siis on sulgudes, saate on suurus, mida soovite. Niisiis, kas me hoidmine 10 õpilast või me hoidmine 15 liiki kommi? Mis ei ole. Nii et meie näites siin, loome massiivi suurus kolm, mis te poisid vaata siin paremal. Ja kui me esimest korda initsialiseerida see, et kõik on null. Nii et see on lihtsalt arvasin samasuguste puhtalt lehelt. Meil on kõik need ruumid, oleme kõik need kastid võiksime panna oma andmed, kuid nad on lihtsalt tühi praegu. Nii et kui me tahame, et tegelikult määravad nad need väärtused, teeme nii, et õigus ja siin näitab. Nii et teil on ükskõik mis nime oma massiiv on ja siis mida indeks tahad. Nii indeks vaid viitab, jms, mis pilu me vaatame. Ja tähtis asi, mida tähele on see, et massiivid on null indekseeritud. Nii et kui me tahame, et esimene koht mälu meie massiiv, et see saab olema null. Kui me tahame, teine, et see saab olema üks. Kui me tahame, kolmas, et see saab olema kaks. Nii edasi ja nii edasi. Mis on ka põhjus, miks harilikult, kui me teeme loops-- ma olen kindel, kutid olid küsida, miks me alustame 0 versus 1? Ja see on, sest kui me üleminek logida kasutades massiive, siis kaarte õigesti. Nii et kui sa tahad itereerima massiivi, siis teeb palju mõttekam do i on 0, sest me tea, mis vastavad esimese koha mälus. Igaüks hea on? Külm. Ja siis põhjale siin on lihtsalt teine ​​võimalus initsialiseerida massiivi. Teil on ikka oma andmete liik ja nimi, kuid selle asemel, et tegelikult pannes suurus seal, saate lihtsalt teha tühjaks sulgudes. Ja siis need lokkis traksid allosas, võite lihtsalt sisestada andmeid mida soovite eraldatakse komaga. Ja see automaatselt öelda, OK, ma näen et sul on kolm asjad need traksid. Nii et ma tean, et mul on vaja jaotada kolme blokeerib mälu ja seejärel hoitakse neid. Nii et esimene versioon võite kasutada kui sa küsid oma kasutajal sisestada väärtused nii, et saate itereerima läbi massiivi ja ask-- saaksin int sisend neid. Kui tead väärtused eelnevalt see teeb palju rohkem mõtet kasutada teist teed. Kuid enamikul juhtudel, sa ei pruugi teada millised need väärtused ei kavatse olla. Külm. Muid küsimusi? Alright. Nii tutvumise elements-- nii ühe suuri asju umbes massiivid et nad on juhuslikult juurdepääs, mis tähendab, et teil ei pea vaatama läbi iga blokeerida. Kui sa tead, et tahan endast plokkide kaks, võid lihtsalt öelda, anna mulle blokeerida kaks. Ja see, miks need Indeksid on nii oluline, ja see, kuidas me tegelikult neile ligi pääseda. Nii antud juhul, nagu nägime, enne kui olime väärtuse omistamiseks, in ühe Enne oli meil nimi ja indeks tahtsime juurdepääs, eks? Nii et samamoodi, see on kõik, mida me teha, et tegelikult pull, et andmeid välja. Meil on nimi ja me on indeks, mis me tahame. Nii et antud juhul silmus siin põhjas, keegi tea, mida ta teeb, mida see välja printida? Mmhmm? Täpselt. Nii et jah, see on lihtsalt iterating kaudu. i on võrdne zero-- saame kõndida läbi koodi lihtsalt kiiresti. i on võrdne nulliga, i on väiksem kui kolm sel hetkel, eks? Nii et on korras. Ja me ütleme, OK, printida f kõik, mis on temperatuur i. i on null siin kui me esimest korda itereerima, nii et me läheme selle esimese koha, ja me ütleme, OK, 65 on number tahame välja printida. Nii saad välja printida 65 ja seejärel teha uus rida. i uuendab, nii et see prindib 87. Sellega ajakohastatakse kord, ja see saab printida 30. Igaüks lahe? Awesome. Hea küll. Nii et siin on mingi üks asi, mida ma ütlesin, kui saab jälgida kellegi skoor ja miks sa oleks kasutada esimest viis lähtestamisel selle asemel, et teine ​​tee. Ja see lihtsalt läheb läbi. Ja teate meil klassi suurus on 30. Ja me algväärtustamisel see massiivi ints et on suurus 30. Ja siis me iterating läbi ja me oleme küsib kasutajal sisestada skoori iga nimetatud ja seejärel määrates selle konkreetse koha mälus kusagil, et massiivi. Cool? Kas on mõtet kõigile? Mmhmm? Nii hashtag määratleda klassi suurus 30 on eeltöötluse direktiivi mis tähendab lihtsalt seda gets-- see on tegema nagu koostamine protsess. Sa ei mõtle seda nagu globaalne muutuja. See, kuidas me seda teeme, on typically-- see võimaldab oma koodi tuleb kergemini muutunud. Ütleme, et meie klassi suurus äkki läheb 30-15, kui ma ei oleks määratletud selle nii, ma tahan läbima kogu mu programm ja muuta igakordne 30-15. Aga see, ma saan muuta ühe kohapeal ja kõik muu muutub. Kui sa kunagi tahad teha hash määratlema kohtuasja kuhu jälgida mõningaid määratud arvu punkte klassi või te kasutate number mida kasutatakse, nagu, kogu pika programmi, siis on paremini määratleda, et alguses nii et kui kunagi see muutub, saad muuta ühe koha peal, mitte 100. Jah? Õpilane: vahel teeme seda ja lihtsalt kuulutatakse [kuuldamatu] üle tipus. ALLISON Buchholtz'ile-Aafrika: Nii see on pistmist efficient-- see on selline väljapoole mida saame katta selles osas. See on seotud rohkem tõhusust ja kuidas asjad tegelikult töötada koostamise protsessi. Kui soovid tõesti teada midagi, ma olen õnnelik, et saata teile e-ressursside kohta. Hash määratleda kipub olema eelistatakse asju. Ja kui sa koodi rohkem, siis liiki õppida nüansse millal siis tuleks kasutada globaalne versus räsi määratleda. Aga praegu, sa tõesti ei ole muretsema see on et lühike vastus. Igaüks hea on? Ja ka siis, kui soovite kasutada hash määratleda see on tõesti oluline tähele panna, et nimi peaks olema kõik mütsid. Me ei ole lihtsalt teeme Klassi suurus olema dramaatiline. See peaks tegelikult olema kõik mütsid. Külm. Midagi muud seal? Oleme hea? Armas. Tere. OK, nii et ma tahan teiega heita See ja vaata, kas leiad viga. Ma annan sulle vihje. See on kuskil, et ahela. Mmhmm? Õpilane: Peaks olema vähemalt võrdne 2. ALLISON: Nii võiks see olla väiksem või võrdub 2 või võiks see olla vähem kui 3. Ja mis põhjendab seda? Õpilane: [kuuldamatu], 0, 1, 2. ALLISON: Täpselt. Nii massiivi suurus n oleme ainult indeksid n miinus 1. Külm. Ja siis me saame tõesti hull ja saada mitmemõõtmeline massiivid. Üks probleem, kui ma võtsin ta minu aastal vaja mitmemõõtmeline massiivid ja ma arvan, et üks neist võib nõuda sel aastal, et olla mugav. Mähi oma pea ümber nüüd. See tulevad tagasi kummitama teid, kuid jahedas viisil. Nii saab tõesti lihtsalt arvan, mitmemõõtmeline massiivid kui massiive massiivid. Nii saab omamoodi mõtle seda top rea esimese patakas mälu. Ja see üks on teine ​​patakas mälu ja viimane rida on kolmas patakas mälu. Ja selles, seal on massiiv. Aga muidugi, see on lihtsam kujutada niimoodi. Nii et sa initsialiseerida see samamoodi. See on märk juhatus kolme kolm. Nii et teil on kolm rida ja kolm veergu. Me esindavad seda nii. Ja siis oleks seda kasutada Samamoodi kolonni järjest. Ja nii 1,1 kui me näeme siin. Anname null, null seal üleval. 2,0 ja 0,2. Nii et sa oleks lihtsalt juurde them-- kui keegi on kunagi teinud Lineaaralgebra, Samamoodi teile juurdepääsu element matrice, see on sama mõte siin. Nii et teil võivad olla seotud selle tagasi matemaatikat. Sa ei pea muretsema liiga palju seda kohe. See on hea, kui on kokkupuude, teada, et sa ei saa seda teha. Saate luua mõned hull number-- saate luua hull massiivid on Muud ma öelda. [Kuuldamatu] Läheb natuke hull, aga see on väga lahe. Awesome. Ja siis, et meil on näiteks siin. Ta arvutab stringi pikkus. Niisiis, kuidas paljud inimesed teadsid, et stringid, mida kasutate on vaid massiive tähemärki? OK, jah. Nii kutid arvan, et sa ei ole kasutatud massiivid varem, kuid igal ajal kasutate getString sisse CSView raamatukogu, sa oled tegelikult lihtsalt paludes array tähemärki. Ja me hoolitsemine kõik et back-end teile. Aga olete kasutanud massiivid, sest sa hakkasid. Sa lihtsalt ei tea seda veel. Ja iga kord, kui teil on märk massiivi või massiiv, mis on ladustamiseks string, viimane asi, mida on alati see, mida on nimetatakse null terminaator mis on see siin. Ja see on lõpuks iga sõna, mis sa ladustamiseks. Nii et kui me tahame välja nuputada pikkus string, me ei saa öelda, noh, te teate, sisu ploki ei ole võrdne meie null terminaator. See tähendab, et on olemas märk on, et me tegelikult hooli, mis on osa sõnast. Sa suurendada oma pikkusega. Ja siis kui me tegelikult saada lõpuks sõna, siis see lõpetada ja siis saad tagasi oma pikkuse meile. Mmhmm? Õpilane: Kas ruumi loetakse null terminaator? ALLISON: Nii ruumi mitte null terminaator. Nii et kui teil on multiple-- ruumi on tegelikult konkreetse ASCII väärtus. Õpilane: Mis hüüatus võrdne jälle? ALLISON: Niisiis, see, mida sa viidata. Kui te olete kunagi kuulnud mind sisse tööaega Ma olen alati seda nimetada, nagu, bang võrdsetena. Nii et pauk ei ole. Nii et see ei ole võrdne. Nii et kui sa üritad kas midagi on vale, sa tead alati, bang iganes muutuja on, ja kui see on vale, see tulemus on õige ja te saab teha lahedaid asju, et. Rohkem sellest hiljem. Külm. Kõik hea on? Awesome. Nii et nüüd on sinu poisid "aeg tööle, sest ma olen rääkinud. Nii et ma tahan, et sa lihtsalt luua massiivi täisarvud üks, kaks, kolm, ja siis on neid välja trükkida. Sa ei pea tegema, nagu, Peamine, blah, blah, blah, mis iganes. Ma lihtsalt tahan, et sa initsialiseerida massiivi ja seejärel luua silmus, printida out-- või samas loop, sinust. Ma lihtsalt annan sulle paar minutit töötada selle kallal. Ma lähen puhkama mu häält. Kui teil on küsimusi, ma olen õnnelik tulema ümber ja rääkida teiega. Julgelt rääkida omavahel. Saa rohkem kommi. Tegelikult ma lihtsalt jalutada kommi. Kuidas nii? Kas sa tahad ükskõik? Keegi teine ​​selles toas tahad kommi? Võite võtta ka rohkem kui üks, kutid. Võta peotäis kui soovite. Mai samuti. Kõik teised head? OK. Samuti, ma lähen luua anonüümne Google Form, ja kutid lihtsalt esitada tagasisidet pärast iga osa kui seal on midagi, mida sa tahad täiustada või midagi, mida sa tahad teha. Kui ma olen natuke liiga Peppy teile, ma ei saa toon selle alla. Ma luua, et ja saata teile välja kõik hiljem. Hea küll. Niisiis alustame väike. Kuidas me initsialiseerida meie massiivi? Mis tüüpi meie massiivi? Int, eks? OK, nii et mida sa tahad helistada oma massiivi? Int massiiv, lahe. Olgu, nii et meil on int int massiiv võrdub, ja mida meil on pärast seda? Õpilane: [kuuldamatu] sulgudes. ALLISON: Traksid. Ja siis sees traksid? Üks koma kaks koma kolm. Külm. Nii et see on kõik õige. Nüüd oleme meie jaoks silmus. Nii esimese osa meie silmus, mis meil on? Õpilane: i võrdub 0? ALLISON: Nii int i on 0, ja siis milline on meie seisund? Mis ma kavatsen olla alla? Vähem kui kolm, ja kuidas me uuendame i? i pluss pluss, selle ajakohastamine üks. Ja siis me lähed on mõned printf täisarv, ja mis see on viimane osa, mis on tegelikult kavatse öelda, mida me peaksime trükkimiseks? Oleks nimi massiiv, mis on int massiiv, eks? Ja mis on sulgudes int massiivi? i. [? Nii et ma?] Helistasin Näiteks, aga seal lähete. Mitte, et halb. Igaühel on hea? Külm. Nii et me teinud massiivid. Palju õnne. Sa suutsid itereerima läbi kõik the-- jah? Õpilane: [kuuldamatu] ALLISON: Jah. Õpilane: Mul on üks küsimus. Kas peaks taandama traksid? ALLISON: Nii traksid peaks rivistama koos silmus, ja siis kõik sees traksid tuleks liigestatud. Õpilane: OK, peaks silmus taandega? ALLISON: silmus ei tuleb liigestatud selles punktis. Kui sa olid peamised, kui me tegelikult oli peamine ülesanne siin, oleks liigestatud alates peamine. Aga sel juhul, see on hea. Jah, küsimus. Õpilane: Kas sa pead olema sulgudesse näiteks? ALLISON: Jah, kui sa oled algväärtustamisel seda. Seega pidage meeles, see on teine viis algväärtustamise massiivi kus meil on traksid ja siis meie tegelik andmed komadega eraldatud jooksul. Õpilane: Ma arvasin, et oli sulgudes, et näiteks. ALLISON: Ei, nad on traksid. Nad on traksid. Kui oled lähtestamisel et teine ​​tee, see on traksid. Kui me ütleme, int example-- kui me lihtsalt tahtsin tühja massiivi ints, oleks int näiteks konsoolide kolm. Sulgudes esindavad suurus. Kui teil on traksid, see on tegelikud andmed sa oled pannes sinna niimoodi. Me ei saa kerida tagasi väga kiiresti. Nii et see üks, see on lihtsalt meie esialgse massiivi ettekanne. Ja siin me oleme üksi määrates laigud neile nii et see on indeks meie massiiv, mis on põhjus, miks meil on sulgudes. Aga siin, kui te märkate, me oleme lahkus meie vahemikke, suurus, ja me initsialiseerida see tegelikud andmed kõik-ühes koos traksid. Õpilane: Miks meil ei ole Sulgudes antud näites? ALLISON: Niisiis, milline osa? Õpilane: kas me ei ütleme, int näiteks sulgudes võrdub traksid [kuuldamatu] sulgudes näiteks. ALLISON: Oh, vabandust. Sul on õigus. Meil on sulgudes seal. Sorry poisid, minu halb. Jah, teil peaks olema sulgudesse näiteks. Sul on täiesti õigus. Õpilane: [kuuldamatu] ei tee seda. ALLISON: Ei, sa pead olema sulgudes, sest vastasel juhul on ei kavatse kuulutada massiivi. Õpilane: [kuuldamatu]. Vabandust. ALLISON: Vabandust, teil on vaja sulgudesse näiteks. Kirjaviga. Hea saak, kuld star teile. Samuti, kui te küsite küsimus, kui kutid võiks lihtsalt öelda oma nime, Ma armastan seda. Mulle meeldiks, et oleks võimalik tean oma nime. Ma ei hakka külm helistada, ma tegelikult ei lihtsalt tahan teada teie nime. Nii et palun tegelikult öelda mulle oma nime. LEAH: Leah. ALLISON: Leah. OK, nii et functions-- Tean lühidalt nad rääkisid selle ajal loeng. Nii funktsioonid on selline lihtsalt nagu need veidi hammustada suurusega asjad kus sa läbima sisendite midagi maagiline juhtub, ja sa saad väljundid. Külm. Nii et sa tegelikult kasutatud palju neid juba. Saa int, saada string, print f. Need on kõik funktsioonid kus sa lihtsalt helistage neile, seal on palju maagiline asjad toimub taustal et sa ei pruugi näha, ja sa saad, mida sa tahad. Või vähemalt sa saad mida loodan, et sa tahad. Ja põhimõtteliselt punkt funktsioone, ja üks põhiteemasid CS, on murda koodi juhitavaks tükki. Kui hakkate kirjalikult need tõesti pikk programmide või Scratch, kui sul oli Selle grand idee mängus sa pead olema võimeline murdma alla, nagu OK, kuidas alustada? Millised on väikesteks tükkideks, et ma vajan? Oh, mul on vaja küsida kasutaja jaoks midagi. Nüüd on mul vaja printida midagi. Oh, mul on vaja, et arvutada selle väärtus. Ja õppida, kuidas lõhkuda oma koodi ja suure probleemidest on neisse väikesed tükid ja luua funktsioonid on tegelikult üks suur nurgakiviks CS. Nii et sa ei mõtle funktsioon nagu nagu must kast, maagiline musta kasti et paned asjad ja sa saad mõned toodangut. Ja ülejäänud programmi ei pea tingimata aru mis toimub selles must kast. Kõik see hoolib, mida läheb ja mis välja tuleb. Külm. Miks ülesandeid? Organization-- nagu ma ütlesin, kui sa oled tegelevad väga suured koodi alused, kuidas teil korraldada oma koodiks palju lihtsam, kui kasutate funktsioone. Sest sa pead olema võimeline et, nagu, OK, see mida see funktsioon teeb ja siin on, mida teine ​​teeb. Ja saate näha kuidas need kõik kokku sobivad. Nii purustamine it up kõik Nende juhitav alamosast. Nii simplification-- ma olen kindel, et te poisid kõik nägime seda, nagu ma ütlesin, koos Scratch. Sul on see suur idee, ja sa oled nagu, kuidas see kõik toimib? Aga kui sa lähenemine see tükkhaaval, te ütlete, OK, kuidas ma saan teha ühe sprite float üle ekraani? See on natuke lihtsam. Nii hea kasutamise funktsioon teeb oma koodi palju lihtsam lugeda. See muudab lihtsamaks siluda, mis nagu pääsete hiljem probleem komplekti, sa lähed tõesti tahan olla võimeline tegema. Ja nad on ka lihtsam kavandada ja ellu viia. Võite kodeerida kuni väike toimida suhteliselt kiiresti ja veenduge, et see töötab versus üritab luua kogu see pikk programm ja siis mingi läbida ja näha, mis töötab ja mis mitte. Ja siis korduskasutus. Nii toimib vaid vaja üks kord kirjutada, ja siis saate neid kasutada nii palju kordi kui võimalik. Nii et see on nagu keskkonnasõbralik mõnes mõttes. Kui sul oleks asjad print f, kus te tuli kirjutada maagia, mis läheb taga printida f iga kord sa tahad printida midagi, siis oleks päris tüdinenud see lõpuks. Üks asi, mida saate õppida hiljem CS klassides või üks parimaid nõuannet saan on, kui kopeerite ja kleebite koodi, siis peaks ilmselt olema funktsioon. Kui teil on täpselt sama rida kõik kogu oma koodi, kui sa tegureid neid, oma koodi oleks ilmselt olla, nagu, viis korda lühem ja palju lihtne lugeda. Ja selle asemel, et tõrkeotsing Kõiki neid erinevaid kohti, kus asjad võib valesti minna, siis on üks funktsioon et sa saad tõrkeotsing. Ja ma luban, palju see võib tunduda selline abstraktne nüüd, aga kui sa sattuda hiljem ja hiljem probleem seab, see saab teha palju rohkem mõtet ja tõesti sõidetakse koju. Kas on mingeid küsimusi Funktsioone nii palju? Miks me kasutame neid? Ma tean, et me pole saanud arvesse Asja tuum veel. Nii määratletakse funktsioon-- nagu massiivid, peame mingi of-- see on vaid üldise väljundi. Nii et see on funktsioon, mis on lihtsalt läheb kuup mõned sisend. Ja järgmisel leheküljel, tegelikult on meil kõiki neid awesome vähe asju siin. Nii saab igaüks lugeda et uudishimust? Ma tean, lilla ja must võib olla natuke raske. Aga suured asjad sead ühendit väljakirjutada nii esimese üks siin on meie tagastamise tüüp. Nii et see ei räägi väljund Selle funktsiooni, antud juhul meil panna mõned number, mida me saada, et number kuubis. Seega peaks olema int käesolevas asjas. Võib-olla oleks topelt või midagi muud hiljem, kuid sel juhul, see on int. Mis c, siis alati on vaja tagasi tüübist. See saab olema int. See oleks sularahaga. See oleks topelt. Aga sa pead täpsustada, mida Selle funktsiooni läheb tagasi. Muidu on see kisa sina, ja see ei kompileerida. Sul on kurb ja ma kurb. Ja see lihtsalt ei ole hea. OK. Ja siis oleme meie funktsiooni nimi. Ja nagu näete siin, koos c seal on see väga järjekindel paradigma. Milline on sinu tüüp, mis on nime, ja siis mõne muu asi lõpus. Nii et meil on meie naasmise tüüp meie funktsiooni nime ja seejärel oleme meie kaudu koos Meie parameetrite nimekirja. Nii parameetriloendisse on, mis on Selle funktsiooni kavatse võtta? Parameeter nimekiri on lihtsalt sünonüüm, millised on meie sisendeid? Ja samamoodi, et me määratlema oma funktsiooni ja annab talle tagasi kirjuta iga meie sisendite vajab tüüpi sellega seotud. Nii et me teame, mida meie funktsioon võib tegelikult töötada. Nii et antud juhul on meil mõned int sisend. Nii et jällegi, see saab olema tüüpi ja mida sa nimetades seda. Ja siis, kui sa näed siin oleme meie keha. Nii et meil on mõned int output, et on vaid meie panus korda ise korda ise, mis lihtsalt kuubikuteks ta. Ja siis me tagasi, et toodang. Nii et nagu näete, siin on meil int korda int korda int, nii ta tagastab int, mis on kuulutatud seal. Nii et kõik on sidus. Kõik on õnnelikud. Sinu ülesanne on sõita. Ja see on lihtsalt üldine asi. Nii et alati on naasmise tüüp nimi ja teie parameetrite nimekirja. Iga asi oma parameetrite nimekirja, või sisend, vajab tüüpi sellega seotud. Ja siis on teie keha siia kõikvõimaliku sa tahad teha oma panuse. Ja siis ilmselt te soovivad naasta midagi. Mõnikord funktsioonid lihtsalt tagasi. Nad ei ole tegelikult tagasi sulle midagi kasutada. Aga sa pead tagasi mingil moel. Ja kui sa üritad oma ülesandeid, saame võtta, et pisut sügavamale. Isiklikult, kui soovite, on palju erinevaid asju, mida võiks teha seal. Igaühel on hea? Midagi selles nimekirjas, et sa tahad mind minna üle, et sa ei saanud aru? Igaühel on hea seal? Külm. Awesome. OK, nii et me paneme see kõik kokku nüüd. Nii et meil on mõned int kuubik sisend, nii et see on täielik programm siin. Siiani ma olen selline on anda teile poisid pikad, et võiks minevat jooksul programmi. Me oleme lihtsalt otsinud funktsioone. Aga siin on kogu programmi. Niisiis, kui palju sa mäletad Sõna prototüüp loeng? Külm. Meil on üks. Mis su nimi on? Steph: Steph. ALLISON: Steph? OK, awesome. Niisiis, kas sa mäletad, mida on prototüüp? Õpilane: Ütlete, [kuuldamatu] enne kui tegelikult tegeleda. ALLISON: Kas sa mäletad, miks? Õpilane: Ei ALLISON: OK. Gold star. Nii et jah, prototüüp meil eelnevalt, sest vastasel korral Meie koostaja läheb kisa meid. See saab öelda, OK, Mis see on kuubik funktsioon? Nagu, sa sõna otseses mõttes ütles mulle midagi selle kohta. See on nagu siis, kui te kõndida klassiruumis, ja keegi on nagu, seal on viktoriin täna. Ja sa oled nagu, siis kunagi rääkis mulle sellest. Ma ei ole rahul meiega. Prototüüp on põhimõtteliselt nagu oma õppekava öeldes, vaata. Heads up. Seal saab olema viktoriin sellel päeval. Ära närvi, kui saad seda. Sa lähed trahvi. Nii et kõik prototüüp ei ei ütle peamine, ma lähen seda funktsiooni kasutada. Ma luban, ma määratletakse hiljem. Ära närvi mind. Just koostada ja teha seda, mida ma ütlen teile, et. Nii et meil on prototüüp olemas lihtsalt teha meie koostaja õnnelik. Ja see on põhimõtteliselt lubadus olete määranud selle funktsiooni hiljem ja et sa ei ole lihtsalt helistades see juhuslik asi, et see ei tea, mida sa oled hakkate tegema. Nii et sel juhul on meil peamine siin. Me initsialiseerida mingi täisarvu x. See on kaks. Me läheme välja printida, mis on x. Me läheme kuup x. Nagu näete, oleme meie funktsiooni deklaratsioon siia alla, et me rääkisime varem. Seda saad kuup x, ja siis, kui me mäletan, kuubik funktsioon tegelikult tagastab täisarvuga meid, mis on salvestatud x jälle nii, et saame trükkida kaheksa või kuubik x kohe. Kas on mõtet kõigile? Oleme hea? Hea küll. Awesome. Hea küll. Kui paljud kutid mäletan seda nii et see on põhimõtteliselt ainult oma korstnat ja oma hunnik, lihtsalt visualiseerimine kuidas mälu on salvestatud siin. Nii et me lihtsalt tahame teha Veenduge, et saate aru, kuidas need on esindatud mälu. Kui te võtate klasside nagu CS61 ja värki hiljem saad õppida seda palju põhjalikult, ja see on väga lahe. Ma soovitan seda. Aga nüüd, ma annan Teile põhjaliku ülevaate nii et sa ei pea tean Asja tuum. Nii top lihtsalt teksti segment, mis sisaldab tegelikku nulli ja need, binaarne selle eest. Ja seda kasutatakse ladustamiseks globaalseid muutujaid, kui teil on. Nagu te liikuda alla, siis on, nagu näete siin, vormindatud andmed, uninitialized andmed ja siis hunnik. Nii et me tegelikult ei räägi umbes hunnik kohe. Me jõuame hiljem. Sest nüüd, ma olen lihtsalt läheb laine mu käed ja olla nagu, Te ei pea teadma seda nüüd. Aga räägime veidi natuke pinu. Nii pinu on where-- meil suurendada. See on tegelikult kuidas programmi me lihtsalt vaatas esineb mälu. Mis juhtub, on iga kord, kui me nimetame funktsiooni saame, mida nimetatakse korstnat raam, mis on üks neist. Nii et peamised parameetrid. Nii et need on asjad, et meil lähevad peamine. Nii et nad on siinsamas allosas, sest see on esimene asi, mida me nimetame. Ja siis me saame peamised on kohalikega, ja kui me ütleme, et mean kohalikud muutujad mis on salvestatud peamine. Nii kohalikud oleks siin, nagu, x on võrdne kahe antud juhul. Sest mis on lokaliseeritud peamine. Kas igaüks mäletan ulatus, läheb üle, et loeng? OK. Nii lihtsalt muutujad algväärtustatakse jooksul peamine. Nii et miks meil on peamine [? vokaal. ?] Ja siis sees peamine kutsume kuubik. Õigus? Nii saame teise raami koos kuubik parameetrid. Nii et antud juhul kuubi parameetrid on nüüd x, et me möödunud aastal, Kahe et me möödunud aastal. Ja siis kuubi kohalikega, mis on kus tegelik keeramisel juhtub. Ja siis ta naaseb. Mis juhtub, on kuubik tegelikult teeb mida ta peaks tegema, ta naaseb. Kui ta tagasi tuleb, see raam lehed, ja selle tagasi alla peamised. Ja siis sees peamine, me võib tegelikult printida. Nii et kui naasete midagi, kui teie tagastab funktsioon, see on nagu möödaminnes neid väärtusi raami alla ja siis lahkuvad. Ja asjad peavad täitma selleks. Ja kui sa saad suurema programmide saame teha jahedam ja keerulisem diagrammid. Aga nüüd on see lihtsalt üldine ülevaade nii et teil on selline arusaam sellest, mida juhtub, kui helistate funktsiooni ja kuidas see tegelikult välja mällu. Cool? Igaühel on hea? Awesome. Seega on see üks, mis on lihtsalt üritan vahetada asju. Nagu näeme siin on meil meie funktsiooni prototüüp nii et meie koostaja ei kisa meid. Meil on mõned peamised, ja me tahan vahetada x ja y. Nad ei ole seda teinud demo loengus veel, on ju? Nad ei ole? OK. Nii et me läheme selle üle väga lühidalt. Sa saad sinna näiteks enam sügavuti, ma arvan, et sel nädalal. Ja siis järgmisel nädalal on meil tegelikult sukelduda, miks see ei tööta. Nii et meil on see tühine funktsioon siin-- swap. Nii void lihtsalt tähendab, et midagi tagasi. Ja meil on swap int ja int b. Ja meil on mõned ajutised muutuja, mis on. saab määratud B ja seejärel b saab määratud temp et a ja b on väärtused on nüüd sisse lülitatud. Aga plot twist, see ei tööta. Ja osa sellest on tegelikult pistmist asjaoluga, et ja b siin, need, mis saavad läbitud Siin on tegelikult koopiad x ja y. Nii et kui funktsioon tegelikult käib lülitub koopiaid, kuid mitte tegelik x ja y on. Nii et üks viis sellest mõelda on selle-- teeselda, need on swap. OK? Nii et peamine, meil on x ja y vormindatud. Aga kui me tegelikult tõusevad nende raamid swap, me möödaminnes väärtused üle see ja nad vormindatud. Ja nad alati ainult ela siin. Nii a ja b siin elada. Ja nad saavad vahetada. Aga kui me läheme tagasi, me ei ole midagi teha ja b. ja b puhkust meie funktsioon. Ja nii x ja y jäävad samaks. Saate rohkem sellest, kuidas seda parandada, et ja kuidas me tegelikult tegeleda hiljem. Aga see on lihtsalt üks asi, et omamoodi meeles pidada. Kasutage seda tulevikus. Ärge muretsege, kui et ei teinud kõik mõttes kogu maailmas. Need on koopiad on suurim asi. Kui sa lähed, et võtta midagi eemale, et te sooritanud eksemplari. Nii et originaalid jäävad samaks. Igaühel on hea? Külm. Nii käsurea argumente. Olen kindel, et alguses kutid kõik olid need suured, nagu, int main tühjad. Ja sa oled nagu, OK lahe. Ma tõesti ei hooli. See on just see, mida ma pean kirjutama. Kuid oma uute programmide eriti see pset, ja miks on kriit kohapeal? Oma järgmise pset, sa oled kavatse vaadata seda. Int peamine, int arg c, string kaar v, sulgudes. Niisiis, mida me lihtsalt õppinud täna, mida ei me arvame, et teise parameetri või et teine ​​element on siin? See on massiiv. Mis tüüpi massiivi? String array, jah. Külm. Nii see on, kuidas sa lähed tuleb kuulutatakse need nüüd. Kas keegi mäletab, mida need seista? Ei? Hmm? Õpilane: arg c. ALLISON: Nii arg c hoiab counter. See on int. See on number, eks? Nii et mis sa arvad, et number on? Jah. Nii arg c on arvu stringid mis moodustavad käsurealt. Nii et kui me do-- tegelikult, on näiteid pärast seda, nii et ma ei saa enne ise. See arv stringe, mis lihtsalt teha oma käsurida. Nii et kui te seda teete, nagu, dot kärpida Mario, see on üks string, mis muudab ta üles. Selles tükis, saate tegelikult toitmine asju käsurealt nagu ma olen kindel, et poisid, kes lugenud spec nägin. Nii et nendel juhtudel, äkki saate kaks või kolm argumenti. See saab olla kasulik asi kasutada. Ja siis arg v, nagu me ütlesime, on lihtsalt string massiivi. Nii et tegelikult salvestab mida sa sisestada käsurealt. Nii et meil on need. Teil on dot kaldkriips kopeerida infile outfile. Niisiis, kui arg c on arvu stringid et me pääsemist käsk joon, mis on meie arg c antud juhul? Kolm. Täpselt. Mis on arg v null? Mis on esimene asi, mida me oleme säilitatakse? Dot kärpida koopia, täpselt. Ja siis teine ​​oleks infile. Kolmas oleks outfile. Nii kuidas arg v kolm? Oleks null, sest see on lõpus meie massiivi, eks? Külm. Ja mis siis kuuendal üks? See on selline konksuga küsimus. Ish. Kas me teame, mis see on? See on määratlemata. Meil pole aimugi, mis see võiks olla. See on kõik, mis on õige pärast massiiv mälust ja meil pole aimugi, mis see on. Ja see on ohtlik puutuda asjad, sest kõik teadsid, see on mingi osa mälu, et sa ei tohiks olla juurdepääsu või null. Ja seda saab teha hullud asjad. Seda nimetatakse üle-indekseerimine Sinu kohustatud oma massiivi. Ära mine väljaspool piire oma massiiv, või halbu asju võib juhtuda. Sa tuled tagasi ja nagu seadused füüsika on hävitatud või midagi. Külm. Kas on mõtet kõigile? Mitte liiga halb. Nii et nüüd, kõik on lemmik osa, pset läbi. Jee! OK. Neile teist, kes ei ole lugenud pset spec, te teete mõned tõesti lahedaid krüptograafia. Sa lähed, et luua Ceasar Salakiri ja Vigenere kodeerimise. Sa peaksid kindlasti lugema spec näha, kuidas need tööd. Ja kui sul on mingeid probleeme umbes mida peaks tegelikult tegema, tulge minuga rääkida, kirjuta mulle või teksti mulle. Ma olen ümber. Nii on kolm peamist asjad siin, et me tahan rääkida about-- lihtsalt selline pikendamiseks loeng. Asjad, mis te ei tea umbes, kasulikke näpunäiteid ja tööriistu. Nii et me ei kavatse teha kiire ülevaade ASCII, sest see saab olema super oluline Vigenere on kodeerimise. Me läheme konverteerimine Käsurea sisendit, mis on väga kasulik Caesar Cipher. Ja siis moodul. Külm. Niisiis, ASCII-kaarte tähemärki numbrid. See on suurepärane graafik. Sul peaks olema see järjehoidjaga kusagil. Sa tahad seda oma esimese vahekokkuvõtte. Ma olen päris kindel, et kõik on selle diagrammi vahehindamise lehel. Nii õppima. Armastan seda. Hoidke see mugav. See oleks kasulik. Ja kõik see on on kodeering mis kaardistab tähestikuline numbrit, ja muid sümboleid numbrid meie arvuti. Kuna loomulikult Lõpuks on kõik me salvestada ei hakka ümber allapoole nulli ja need, nii et me peame kuidagi esindada Teksti ja sümboleid, et me oleme kõik harjunud nägema nagu mingi number. Nii nagu me näeme siin on meil suur-, mis on seal. See on 65. Ja väiketähed on 97. Nii et te saate aru out-- nagu ma juba ütlesin, kui teil on olnud hulgaliselt mitu stringid, mida igaüks neist on null terminaator. Oleks ruumi. Kosmos on oma special-- Ma unustasin, kus ta on siin. Ah. 32 on ruum. Nii et kõik kaardid seda. Nii et meil on ASCII matemaatikat. Pro tip-- sisse Vigenere poolt, siis võib tekkida kiusatus teisendada oma numbrid täisarvud, aga see on tegelikult parem tava olema võimelised kasutama tegelasi nagu see kui sa tegelikult manipuleerivad nendega. Nii et kui te soovite kasutada numbreid, kui võimalik. Aga parem, või nii, et me kipuvad nagu te poisid seda teha, on see viis, kus sa oled tegelikult lahutades tähemärki. Nii et ma tahan, et te poisid omamoodi aru neist välja. Miks sa ei proovi iga teine? Nii et esimene, kolmas ja viies. Sest ma tahan veenduda, et me räägime kõike me peame rääkima. Ma lihtsalt ütlen, üks olulised asjad mina-- oh oota, kutid ei ole näinud seda. OK nii teha esimese kolme. Teeme seda. Sest me peame rääkima moodul. Ma tean. Matemaatika on raske. Te võite kasutada kalkulaatorit. See on OK. Või tõmba ASCII tabel, sest sa oled ilmselt läheb taha. Külm. Nii et ma kiiresti kõndida kutid läbi nende. Nii et inimesed on ASCII tabeleid tõmmata? Mis on meie numbriline number väiketähti? Õpilane: Seven. ALLISON: Nii väiketähti ei 97 ja suur- 65. Nii et 97 miinus 65? Sihtrühm: 32? ALLISON: 62, yeah. Nii et antud juhul see, mida oleks see välja printida? See esimene? Kui meil protsenti d, mis oleks, et näidata? Õpilane: number. ALLISON: Me trükkimine välja tegelik arv. Nii et me tegelikult toimub välja trükkida 32 siin. Ja kui see oleks protsenti c, 32 annaks meile ruumi. Nii et mõista, et märke saab printida nii numbreid ja tegelik tähemärki On väga oluline, ning pöörates tähelepanu tegelikule liigid et me teeme siin. Külm. Nii iga teine ​​neist, mida me saame trükkida? Õpilane: iseloomu. ALLISON: iseloomu. Külm. Nii et kui te tahate teada, siis võib töötada need välja ise. Kui sul on probleeme, kirjuta mulle. Aga teine ​​tahe välja printida väiketähed b. Kolmas prinditakse välja suur- B. Neljas prinditakse välja suur- C ja viimane on väiketähed A. Ja viimane one-- me tegelikult toimub sattuda, mida see hull protsenti märk isegi tähendab paari slaidid. Nii et proovida neid ise. Kui teil on probleeme, tulge minuga rääkida. Kui oled tavaliselt Adams D saal, sa leiad mind ümber. Niisiis, atoi. Kui paljud teist on näinud seda funktsioon või kuulnud seda üldse? Keegi? Külm. Nii et mida see tegelikult tähendab on ASCII täisarv. Niisiis, mida saate teha, on koos Caesar, neile, kes lugeda spec, sa lähed tegema dot kaldkriipsuga Caesar pärast sa kirjutad oma programmi ja siis sa lähed sisend mõned number, mida soovite kodeerida oma saladus sõnum. Aga kui me mäletame, kõik meie sisendid on salvestatud stringid. Õigus? Meil on arg v massiivi see on kõik tüüpi string. Nii et kui sa lihtsalt proovida tõmmata, et üks oleks arvan, et üks või mis iganes number Te kasutasite on tegelikult märk. Nii et sa lähed, et saada mõned hull tulemusi. Nii et kui sa tegelikult tahad muuta see täisarv mida saab kasutada manipuleerida oma sõna või sõnum tahad kasutada atoi. atoi lihtsalt konverteerib oma stringi int. Nii et kui meil on string 12, kui me kutsume atoi 12., või mis iganes, et sisend on see tegelikult tagasi Teile täisarv. Ei ole iseloomu või string 12. Mis, kui hakkate lisada, et numbrid, on väga erinevad, sest string 12 on mõned hull number ASCII, kuid täisarv 12 tegelikult on 12, mis on see, mida sa tahad. Nii et sa tahad veenduda, et kasutada atoi. Sa lähed tahan seda in Caesar, sest sa vaja int poolt esitatud kasutaja käsurealt. Aga kui nad seda käsk line, see on salvestatud stringi alustada. Kas on mõtet? Sa ei pruugi vaja seda Vigenere. Mis Vigenere, nagu ma ütlesin enne, siis tuleb proovida ja kasutada ASCII matemaatika, mis näeb välja rohkem nagu see, kus sa oled tegelikult kasutades tähemärki, et me teile manustatakse. Külm. Igaüks hea on? Awesome. Nii et moodul. Mis siis, kui sa oled andnud see suur number Caesar? Sul on see idee, et kui sa oled Z ja sa oled antud number kaks, see tähendab, et sa need-- Z muutub teine kirja pärast ise, eks? Nii et sa pead kuidagi ümbritsev, ja moodul on võimalus seda teha. Nii et kõik see on see annab sulle ülejäänu jagunemise esimene number teise. Ja meil on mõned näited tegema, et natuke konkreetsem. Aga põhimõtteliselt, kui kasutate mooduli kui tahad teha midagi ümbritsevast. Nii et kui tahad ainult numbrid üks läbi kaheksa, saab kasutada mooduli mis tahes muu number, ja see on alati tagasi number nullist kaheksa. Nii et mõned examples-- kui meil on 55 moodul 10 see lihtsalt annab sulle ülejäänud 55 jagatud 10, mis oleks 5. Ja siis kolm moodul viis, keegi arvata, mis see oleks? Kolm. Nii et kui sul on väiksem number enne moodul, siis ei saa minna ühtlaselt. See on null. Nii see lihtsalt tagastab number ise. Nii kaheksa mooduli kaheksa oleks? Õpilane: Zero. ALLISON: Zero. Sest see läheb ühtlaselt. 16. moodul 15? Sihtrühm: One. ALLISON: Cool. Ja siis see viimane on lihtsalt näita sina-- võite olla mõtlesin, OK, Mis siis, et operatsioonide siin? Kas me jagame esimesena? Kas me moodul esimesena? Nii et moodul on samal eelisjärjekorra jagunemine või korrutamine ja oma vasaku assotsiatiivne. Nii see on samamoodi. Sa oleks alati sulgudes siis korrutamise, jagamise, ja mooduli, et vasakult paremale. Nii standard reegleid. Lihtsalt pane see samasse kategooriasse jagunemine ja paljunemine. Nii antud juhul me oleks on 1 pluss 2 annab meile 3. Me korrutada, et 2, seega saame 6. Me moodul, mis on 2, mis annab meile? Õpilane: 0. ALLISON: 0. Ja siis me lisame 2, nii et me saada 2 viimasel juhul. Nii modulo-- olete kindlasti läheb mõelda, kuidas lisada et kui sa oled pakkimine ümber tähestikku. Kui sa oled Z ja pead liikuma edastada kolme ruumid saada C seal on, et kogu kontseptsioon pakendatakse ümber. Nii et ma jätan kutid välja nuputada kuidas täpselt sa lähed tuleb seda kasutada. Aga kindlasti kasulik vahend Teie pset sel nädalal. Ma tõesti meeldib see. See on üks mu lemmik psets. Siis pärast seda, kui sul on sõbrad, saad, nagu, saata üksteisele saladus Sõnumite ja veenduge, et see töötab. Sest see saab lahti krüptida või mis iganes. Palju nalja. Ja see on lõigu lõppu. Ma lõpetasin varakult. Mul on veel 15 minutit kutid, nii et kui seal on midagi et sa tahaksid minna üle edasi, ma hea meelega teha. Muid küsimusi oma pset neile, kes on alustanud või lugeda spec. Kõik, mis me oleme rääkinud umbes viimase tunni jooksul ja 15 minutit, et soovite mind et selline Kordamine, ma hea meelega. Või saame kutsuda ta sulgub, ja te saate kõik puhkused ja võtma rohkem kommi teiega kui lähete. Aga kas on ikka küsimusi, palun andke mulle teada. Võite tulla ja räägi minuga hiljem. Ma luban, ma ei hammusta. Veel midagi? Igaühel on hea? Igaühe tunne nagu nad saavad hakkama seda pset? Sa lähed trahvi poisid. Tööaeg on seal põhjus. Külm. Alright. Noh, sel juhul, tänan te kõik nii palju tulemas. Loodan, et näeme järgmisel nädalal. Seal on rohkem kommi. Võib olla ka muid lahedaid asju. Ja ma ootan saada teada, et te kõik käesoleval aastal.