[Powered by Google Translate] ZAMYLA CHAN: Olgu, inimesed. Tere tulemast kiirtutvustus 1. See kiirtutvustus toimub pset 1, mis on C. Loodan, et te kõik oli lõbus oma Scratch'i projektidega. Nii et nüüd selles läbikäiguks, me tegelikult saab olema võimalik sattuda C, satuvad kirjalikult mõned masina koodi. Nii et kui teid polnud kiirtutvustus 0, siis need walkthroughs tõesti - Me oleme kavatse kõndida läbi lahendamist, rääkida läbi mõned ühised näpunäiteid ja tehnikaid , mida saab kasutada. Me murda loovutamise üles juhitavaks hammustab, nii et kutid saavad alustada ja loodetavasti mõista, kuidas seda teha. Okei. Nii pset 1. Psets sel aastal on struktuur, kus esimene - seal saab olema osa küsimusi, seeria küsimusi, mis tõesti aitavad teil alustada pset, aitavad teil harjutada mõned tehnikad, mida vajate. Ja nii need küsimused, ma ei kavatse katta läbikäiguks sest oma osa, oma määratud õpetajate mehe tegelikult läheb jalutada läbi nende küsimused koos sinuga. Lõpus oma osa, saate Kähveltää Vastused nendele küsimustele, vaid ka veendumust, et saate rakendada mõned funktsioonid, mida on vaja jaoks viimane osa pset. Pset 1 kujutab Mario. Ja see on lõbus väike programm, kus sisuliselt me kirjutada ja printida pool püramiidi tüüpiline Mario stseen. Ja siis teine ​​osa pset nimetatakse ahne. Ja nii ahne me põhiliselt tegutseb ahne kassast, kus, kui keegi annab meile palju raha et me tahame, me arvutama minimaalse summa münte, mis me saame naasta neid ikka annab neile selle summa. Hea küll. Nii et iga läbikäiguks on tööriistakasti. Ja veel, sa ei pruugi kasutada kõiki vahendeid selle tööriistakasti või võite kasutada neid kõiki. Igal juhul, see on tõesti hea teada, mida oled sa varustatud. Nii et meil on CS50 Appliance, kus ma näitan teile poisid ja tutvustada teile, et. Siis ka üldiselt hea stiil on kindlasti üks meie tähtsamaid tööriistu. Stiil sisuliselt puudutavas kuidas loetav on oma kood? Kui keegi läheb ja loeb oma kood, neil on lihtsalt aega? Kas nad aru saavad? Kas see elegantne? Siis me räägime, kuidas saada kehtiv kasutaja sisend oma programmi, sest nii Mario ja ahned, peate paluda kasutajal sisestada ja annab sulle mingi number. Nii siis tahame veenduda, et number on kehtiv. Siis mäletan Scratch oli meil plokid nagu kordus, Korda kuni või Oodake, või Forever. Nii et me ei kavatse sellist moodustavad sellest C nüüd ja vaata silmad nagu suutis, ja teha-aega. Siis ka me ka vaja näidata väärtused tagasi ekraan, kas see on Mario või ahne. Ja nii me räägime, kuidas me printida asju stringid täisarvud ja ujub. Ja siis lõpuks, me räägime pseudokoodi, tõesti oluline mõiste meeles pidada kogu kursuse. Pean aitab mind kõige probleemsete komplekti on mõelda ja kirjeldada, mida ma tahan teha enne mõtled tahes C. Aga lihtsalt kirjeldada meetmeid. Nii pseudokoodi on selline vahel inglise ja C tüüpi kirjeldab protsesse ilma õige süntaks, kuid pakkudes piisavalt hea struktuur. Ja nii ma pean mõned näited pseudokoodi ka teid selles läbikäiguks. Okei. Mida me töötame koos on CS50 Appliance. See on sisuliselt virtuaalne masin sellist jookseb arvuti sees oma arvutist. Ja see on palju kasu. Üks on see, et see on eelseadistatud koos palju vahendeid, et teil vaja CS50. Samuti tähendab see, et kõik on samal põhjusel, kas Mac või PC või teise operatsioonisüsteemi. Me kõik võime joosta virtuaalne masin. Ja nii on instruktsioone manual.cs50.net/appliance. Ja kui te lähete, et link ja järgige juhiseid, siis loodetavasti on sul võimalik paigaldada seade. Nii et esimene, peate installima rakenduse tegeliku kohaldamise suutma joosta virtuaalne masin. Ja siis lae aparaat. Aga samas, on instruktsioone manual.cs50.net/appliance. Nii et ma olen juba alla laadinud minu aparaat, mul on paigaldatud seda VMware Fusion. Ja nii kui ma alla aparaat, ma läksin Fail. Läksin Ava ja siis leidsin, kus ma salvestatud CS50 Appliance. Ja sealt, jooksin siit. Aga ma pean ta üles juba siin, niiet võta lähemalt. Hea küll. Nii et nüüd oleme sees CS50 Appliance. Ma tegin seda täisekraanil. Saate valida, mida teha, et kui soovite või lihtsalt seda väiksem aken töölaual. Siin on meil lihtsalt töölaual Kodu ja prügikast. Aga kui te lähete Menüü ja seejärel programmeerimine, siis näed et meil on midagi, mida nimetatakse Terminal. Ja nii siin, me saame liikuda ümber meie arvuti. Me võime kirjutada koodi. Aga tegelikult me ​​kasutame programmi nimega gedit või "g muuta, "kumb see on. Nii et me kasutame, et üks kirjutada koodi. Nii et teil on need kaks vahendeid, mis teid kasutades peamiselt kirjutada koodi. Siis lisaks, see on lihtsalt nagu tavaline arvuti. Meil on brauseris. Valisime Google Chrome'i. Mida ma olen teinud, on mul loodud Dropbox sisaldama kõiki dokumentide. Ja nii see on midagi, mis on väga soovitatav. Dropbox kasutab pilve sünkroniseerimine ja nii kui - nii näiteks midagi juhuslikult - Loodetavasti mitte - juhtub teie aparaat, siis saad kõik olema sünkroonitud pilve peal. Hea küll. Nii et need on taotlused, mis teid kasutades sisse CS50 Appliance. Nüüd liikumiseks käsurealt. Terminali saab tegelikult toimida selline tee tegelikult Tippige käsud - meeldib, kui sa oled Mac Finder. Või kui sul on Windows, ma usun, et on "uurida minu arvuti "või midagi sellist. Nii et kui me minna tagasi seadme, olgem avada terminaliakent. Nii et see on see kiire, jharvard @ aparaat. Teeme lihtsalt seda suuremaks. Okei. Nii et kui me tippige käsk ls, siis kus on loetletud kõik failid meie arvuti, meie praeguses kataloogis. Raamatud on nagu kaustad. Me kasutame neid mõisteid sünonüümidena. Olgu, oleme loetletud failid mis on selle kataloogi. Nüüd, kui me tahame pääseda, ütleme, meie Dropbox, siis saame muuta katalooge. Nii CD ja seejärel Dropbox. Me LS jälle, ja siis me näeme nimekirja faile, mis asuvad Selle kausta. See on analoogne mind lähen koju, siis klõpsake Dropbox, ja siis näeme nimekiri siin. Hea küll. Ütleme - kui te ei kavatse teha oma pset 1, teeme kataloog nimega pset1. Nii et me oleme Dropbox just nüüd, kui näete seda küsi siin. Nii et teeme kataloog. Nii mkdir, olgem kutsuvad seda pset1. Ja nüüd, kui me LS uuesti, siis me näha, et pset1 ilmub. Ja kui me tahame minna sees pset1, siis saame sisse minna selle kausta käsuga cd. Hea küll. Nii et taas, vaatame, kas me - öelda, teeme seda muul viisil. See on analoogne lihtsalt öeldes: "Loo Uus kaust, pset1. Aga kui sa leiad, siis saad suheldes terminal palju. Nii et mõnikord on see palju lihtsam, kadunud kiiremini lihtsalt töötada terminali teha neid erinevaid asju. Okei. Ja siis need teised käsud. Seal rm faili eemaldamiseks. Nii et sa lihtsalt kirjuta rm ja siis nimi esitada kustutada. Me läheme sisse mõned näited sellest hiljem. Ja siis on meil midagi, mida nimetatakse mees käsk, mis avab käsiraamatu tüüpi funktsioon. Jällegi, ma toon välja tegelik näide sellest hiljem. Nii et üks väga oluline vahend, nagu ma mainisin lühidalt Enne, on stiili. Nii et sisuliselt stiil on pistmist loetavust. Kas keegi oskab lugeda, jälgida ja mõista oma koodi? See on eriti oluline, et te, ise, tegelikult. Kui sa oled viibib kuni hilja kodeerimine, ja siis hiljem sa mine tagasi ja sa oled nagu, mida see muutuja keskmine? Ütle, te töötate grupis projekti kellegagi, ja te nii on vaadata üksteise koodi. See on tõesti oluline, et sa nime oma muutujad korrektselt ja ilusam välja näeks, sest see teeb kõik vahe. Aga siis ennekõike oleme muidugi kohe. Nii huvi CS50 ja eriti oma õpetamise stipendiaatide ja sorteerijad, kes vaatab oma psets, palun, palun kasuta õige stiil. Ja teie õpetamise stipendiaatide on üsna õnnelik. Nii et taas, stiil hõlmab taandrida asju õigesti, eriti kasutades oma traksid ja taandrida need. Nimetades muutujate midagi, mis on mõistlik. Praegu me järgime konventsiooni kui teil on mitu sõna oma muutuja nimi, siis ühendada neid rõhutada, nagu näete, et nimetada näiteks seal. Ja lõpuks midagi, mida nimetatakse Magic Numbers. Sisuliselt kui sa loed läbi kood ja öelda teil on muutuja - Ütle, teil ei ole erinev, kuid lihtsalt öelda okei, kuni ja selline on alla 10. Siis teie teehöövel on minemas hästi, oota, Kust et 10 tulevad? Nii et tõesti selgitades ise küsimusi palju. Et aidata teil selgitada ise on kommentaare. Kommentaarid on ilmselt kõige olulisem asi, mida lisada oma programmides. Ja see aitab teil mitte ainult tegelikult seletada - see aitab teil selline selgitada oma argumentatsioon, kui sa lähed mööda. Ja kui sa seda teed, jällegi, see saab olema palju lihtsam minna tagasi oma koodi ja omamoodi aru, mida sa seal teed. Jällegi, teehöövlid tõesti kommenteerida. Nii et sa kommenteerida hästi ja - selline nagu vaba punkti. Ja kes ei tahaks tasuta punkte? Te saate ka mitmerealine kommentaare. Ja nii ma ka mingi mall siin. Sisuliselt tavaliselt neid kasutatakse ülaosas oma programmi omamoodi seletada üldiselt mida sinu probleem komplekt teeb. Lisage oma nimi, kuupäev, jne. Ja nii, nagu ma ütlesin see mitmeliiniline kommentaar manual.cs50.net/style_guide on rohkem näpunäiteid ja nõuandeid stiili ring, jne. Okei. Nüüd, et ma olen teile rääkinud veidi stiili, vaatame Seda tegevust. Hea küll. Nii et siin, Tommy on kirjutanud meile vaimustavalt kohutav näide stiilis programmi. Nii et näete siin, eks. See on tegelikult kõik korras. Näed mitmeliiniline kommentaar siia. Sa alustad seda kaldkriipsuga ja siis kaks tärni. Sa jätkama, viies tärne mööda joont ja siis selle lõppu tärn ja kaldkriips. Hea küll. Nii et see on hea. See siin pole midagi. Ta sealhulgas tema raamatukogudes. Aga siis siin ta on kommentaarid toestavad mitu liini. Seal on palju asju valesti seda. Kommentaarid toestavad mitu rida, siin ta on, kasutades süntaks lihtsalt üherealised kommentaarid. Ta on ka Melding kõik samasse kommentaari. Nii et me tahame vältida. Siis siin me näeme, et need traksid, näiteks, on kõik pool. Taandus, on vale. See ei ole tegelikult näitan sulle lõplikult kus midagi algab ja teine ​​asi lõpeb. Siis samuti, näeme, et tal on defineeritud muutuja i = 5 siin. Aga siis see nelja väljub kuhugi, ja seal ei ole kommentaar tõesti selgitada, kust see pärineb. Okei. Nüüd vaatame midagi, mis on tegelikult täpselt seesama kood, välja arvatud parem stiil. Nii et jällegi, see on hea stiil näiteks mitmeliiniline näiteks. Ja siis siin see on üsna puhas. Me näeme, et ta hakkab, kui avaldus siin, siseneb uus rida, on avatud traksidega. Siis ta taandus. Ta hoiab seda taandus - ta hoiab selle näidustuse ühtne kogu programmi ja tõesti näitab, kui üks plokk kood käivitub, kui üks plokk kood lõppeb. See võib tunduda veidi nitpicky meie poolt alustada koos, kuid näete kui olete kirjalikult oma koodi. See on tõesti kasulik, et oleks võimalik eristada seda. Ja jälle oma teehöövlid tõesti meeldib. Ja nii näed, selle asemel, et lihtsalt paneb number seal ta tegelikult nimega muutuja iteratsiooni. Ja nii me tegelikult ei vaatab seda koodi praegu aga lihtsalt selline nägemine näide hea versus halb stiil. Ja nii, kui te vaatate neid kõrvuti siin, siis oleks kindlasti eelistan lugeda üks paremal. Hea küll. Nii et viimane asi enne kui me sukelduda tõelise liha pset on, kuidas kompileerida ja käivitada oma koodi. Ja nii sisuliselt kui kirjutad C, et tegelikult ei ole tõlgitud reaalne masin koodi, nullita ja need, mis masin võib tegelikult lugeda ja tõlgendada. Nii et meil on midagi - Rõkkama on kompilaator, et me kasutame C. On palju koostajad. Aga CS50, me kasutame rõkkama. Ja nii rõkkama sisuliselt tähendab C-st kuni masin koodi teile. Nii vaatame näiteks - sukelduvad Appliance siin. Hea küll. Nii et praegu me oleme meie kataloogi. Me tegelikult ei ole, kui mõni kood on. Nii Muutkem oma kataloogi Dropbox/walkthrough1, kus Olen salvestanud mõned koodi. Nii et kui me vajuta ls, siis näeme, et mul on paar pilti siia. Hea küll. Nii et ma olen juba kirjutanud hello.c, niiet kompileerida ja siis vaata mida ta teeb. Nii põhi kompileerimise käsk oleks rõkkama siis hello.c, sisuliselt öeldes okei, koostada hello.c minu jaoks. Ma vajutan Enter, tundub, et on läinud õige. Olgem kliki LS uuesti. See a.out fail on nüüd näidanud. Ja nii a.out on käivitatava faili. Nii kestab see, te teete. / A.out. Ja nii me näeme, et see hello.c programmi ilmselt prindib välja Tere viis korda. Hea küll. Aga ütleme, et me ei taha kasutada nimetust a.out. Näiteks me tahame joosta tere programmi, sest see lihtsam aru saada. Ütleme rõkkama hello.c ja siis sisuliselt pead läbida mõned asjad nimega lipud. Nii ütles okei, noh, ma tahan selle nime midagi muud. Võite ka läbida palju erinevaid lippe, mis sa näed. Nii lipu nimetades programmi midagi, mida sa tahan on-o. After-o, sa kirjutad programmi nime. Ütleme nii, et tere. Nüüd me näeme, et meil tegelikult on tere käivitatava faili. Nii saame kasutada seda, ja see teeb sama asja nagu enne. Nii et nüüd, kui meil tere, saame ka eemaldada, sest Näiteks meie a.out. Nii rm eemaldada, a.out, oma terminal küsib, pidage nõu Teile kinnitada, kas sa tõesti tahad kustutada või mitte. Me ütleme y jah. Ja seal me läheme. A.out on läinud. Hea küll. Aga mõnikord see muutub segadust meeles pidada kõiki lipud, et me peame hulka ja kirjuta välja rõkkama. Ja nagu me näeme, kui me kasutame keerulisem programmid, paneme olla ka eri raamatukogudes. Ja nii meie käske rõkkama saavad enam ja enam. Nii et lisada CS50 Appliance on käsk make. Nii et sa lihtsalt kirjuta teha tere. Oih. Me oleme juba teinud selle käivitatava faili. Nii et lubage mul lihtsalt eemaldada seda kiiresti. Vaatame nüüd kirjuta teha tere. Ja sa näed seda joont siin, et sisuliselt öeldes teha tere hõlmab kõiki neid käske, mis minna seda sinu jaoks. Nii et lisada CS50 Appliance on teha faili. Nii lihtsalt, kui sul on fail name.c, siis kõik, mida teha on öelda teha faili nimi. Ja siis pead käivitatava Sellise nimega fail on. Jah? SPEAKER 1: minu arvuti asemel rõkkama ta ütleb GCC. Kas see on nagu - ZAMYLA CHAN: Jah. Nii et teie arvuti võib öelda GCC erinevalt rõkkama, sest GCC on teist tüüpi kompilaator. Kui oled CS50 Appliance küll, siis tuleks kasutada rõkkama. Kui see ei ole, siis äkki tule räägi minuga hiljem või postitada aasta CS50 Arutle ja saame sorteerida, et viia. Hea küll. Nüüd, et meil on selline põhivahenditeks maha, siis me saab sukelduda Mario. Okei. Nii et Mario on programm, kus sisuliselt me ​​ei kavatse olla muutes oma liiki primitiivne versioon Mario mängu taustal. Tead, Mario on tavaliselt toru ja puu ja mõned klotsid. Ja siis seal on mingi pool püramiid. Nii et me lihtsalt saab olema keskendunud, et pool püramiidi, tegemise koodi nii, et see prindib välja hashes lahkete plokkide selles formaadis. Mis juhtub on kasutaja sisend teatud kõrgus püramiid ja siis saate printida, et välja nii et all vasakul räsi - nii väga alt siin - et üks on viia koos alumises vasakus nurgas oma terminal. Okei. Nii et esimene asi, mida sa pead - esimene väike mini probleem, et me peame tegelema on see, kuidas saada kasutaja sisend. Nii et me peame tegelema sellega, mida kasutaja sisendite ja seejärel liiki toodangu asju seal. Nii et vaatame, vaatame faili nimega apples.c et ma kirjutasin mis tegeleb sisendid ja väljundid. Okei. Nii et siin üleval, olen lisanud mõned raamatukogud et ma vajan. Tõesti olulisem siin on stdio (standard I / O). Mis tegeleb standardsete sisendid ja väljundid, sest me ei kavatse käsitleme kasutaja sisendit. Hea küll. Siis ma hakkan minu peamine ülesanne. Ja siis ma paluda kasutajal okei, kui palju õunad sul on? Siis siin, mida see joon teeb - Ma määrata muutuja i väärtusega GetInt. Nii GetInt on funktsioon, mis on lisatud stdio. Ja nii sisuliselt, et hakkab tegelema selle eest ise. See küsib kasutajalt int. Mis iganes nad tagasi, et kantakse muutuja i. Ja nii siis see on lihtsalt väike programm, mis vähendab I väärtus 1 ja seejärel prindib välja uue väärtuse. Tore asi gedit on tegelikult, et on olemas mini terminali õigus siin. Nii et selle asemel, et minna edasi ja tagasi vahel gedit ja terminal, saab tegelikult lihtsalt kasutada seda siit. Nii et olgem kõigepealt saada õigesse kataloogi. Nii Muutkem oma kataloogid Dropbox/walkthrough1. Hea küll. Nii et nüüd teeme õunad, koostab ta meile. Ja nüüd lähme jooksma õunad. Mitu õuna meil on? Ma ütlen mul on 3. Ja ta ütleb "mwahaha ma lähen süüa üks neist" ja ütleb "Sul on nüüd 2 õuna". Hea küll. Nii et olgem joosta, et jälle. Ja oletame, et mul on 1 õun. Nüüd on mul 0 õunad. Okei. Nii et see programm tundub tööta. Me sisestada numbrit, see vähendab see 1. ja seejärel prindib need välja. Aga kui näiteks mul on -1 õunad? See ei ole päris loogiline. Aga see on ikka täisarv, nii et programm tunnistab ta. Ja nii see läheb teil veelgi negatiivse numbriga. Nii et see on üks õppetund meile, et kuigi GetInt funktsioon ja muude seotud ones nagu GetFloat või getString - kuigi need ei vii meid õiges andmete tüüp, Näiteks, kui ma olin just ütles [TÜPISEERIMINE] siis oleks mulle uuesti proovida. Nii et see hakkab tegelema iganes andmed sisestada oma panuse on aga tegelikult ei vaadata, noh, see on tegelikult tüüpi väärtus, mida ma tahan? Nii siis üks osa Mario on, et kasutaja peab sisestama number, mis tähistab kõrgus poole püramiid et sa üritad. Ja nii siis kui me sundides selle kasutaja jaoks kõrgus, siis seal peaks olema kaks bounds selle. Eks? Aastal spec, see ütleb, et see ei tohiks olla rohkem kui 23 märki, sest see on selline standard kõrgus terminal. Aga siis, mida muude köidetud, ehk alampiir, võib tahame kaasata? Kui me tegelikult joonistus püramiid, selline mõtlemine tagasi kuidas kõrge püramiid saab, võib see kunagi olla madalam kui teatud arvu? SPEAKER 2: suurem kui kolm. ZAMYLA CHAN: Hmm? SPEAKER 2: suurem kui kolm. ZAMYLA CHAN: See on hea punkt. See võiks olla - tahetakse piirata seda vaid kolme taseme püramiidi. Aga mõtleme - ütleme nagu üks hash tabelit loeb püramiid liiga. Siis mida peaks meie tegelik alampiir olema? Mõeldes tagasi õunad, me ei taha negatiivne kõrgus püramiid. Eks? Okei. Nii et kui te küsite kasutaja sisend, siis pead sisaldada mõningaid viis tagada, et täisarv, mis nad pakuvad teile ei ole negatiivne, sest te ei saa juhtida negatiivset püramiidi. Okei. Nii et seal on paar võimalust seda teha. Sisuliselt, kui te küsite kasutaja sisend, tahad nõuda et nad pakuvad teile õige sisend. Nii et sa tahad nõuda, et nad pakuvad teile mitmeid et ei ole negatiivne, vaid ka alla 24. Nii et me tegeleme null kuni 23, viimane kaasa arvatud. Hea küll. Nii et me tahame pidevalt nõudma - kui nad ei ole andnud meile kehtiv täisarv, nad tahavad pidevalt nõuda ei. Anna kehtiv sisend. Anna kehtiv kõrgus. Nii meenutavad tagasi Scratch oli meil Korda kuni blokaad või Forever Kui blokeerida. Need on silmad, mis on väga sarnane samal ajal loop ja Kas Kuigi silmus, mis me võtame arvesse ainult korraks. Nii et kui silmus on põhiliselt tingimusel, et teil vaadata see on tõeväärtus, et paned sees on, nagu plokid Scratch koos nurkade alt. Seda läheb sulgudes on samas silmus. Nii et sa pead olema mingi tingimus seal. Ja kui me lihtsalt öeldud, et tingimus pistmist piire täisarv, mis oli töödeldud. Nii tingimus oleks midagi pistmist sellega, kas täisarv on asjakohastes piirides. Nii et samas silmus. Näiteks saate küsima täisarv ja seejärel pidevalt kontrollida, kui see sisend ei kehti. Näiteks hoida uuesti märku, hoida paludes kasutaja täisarv. Nii et võiks olla üks viis. Teine võimalus oleks teha kuigi silmus, mis on väga sarnane samas loop peale, mida teha, kui ei ole - saate liiki vaata mida süntaks - on see, et teha ja siis tegelik silmus keha esimesena. Siis on samas tingimused. Mida teha, kui silmad - Mis on need kasulikud on, et nad tegelikult täita koodi vähemalt üks kord ja seejärel kontrollida, kas tingimus on täidetud või mitte. Nii et kui sa seda teha, samas loop, siis sees avaldus saate küsima täisarv, sest sul on vähemalt küsima kasutaja korraga. Ja siis pärast te kallutada neid, siis võib öelda, eks, hästi kui olen seda teinud, on see kehtiv? Kui on, siis saate lihtsalt hoida käimas. Aga kui ei ole, siis ta lihtsalt tegutseb nagu tavaline samas loop ja siis hoida küsimata. Okei. Nii et oleme tagasi Mario. Nii et me teame, kuidas küsiks õige kasutaja sisend, mis on jooksul õigus piire. Nüüd me tegelikult teha tuleb, see pool püramiid. Tundub lihtne tähemärki. Nii et olgem tegelikult avatud - olgem lihtsalt avada aken ja öelda okei, noh mis siis, kui ma oleksin tegelikult läheb seda teha käsitsi, kirjuta ise üks neist? Okei. Nii et vaatame. Oletame näiteks, me tahame teha püramiidi, mis on joondatud vasakus servas, siis oleks lihtsalt teha - Mario, tipptasemel on kaks plokki ühe asemel. Nii et hakkame koos kaks. Me nuppu Enter. Teeme kolm ja siis neli, Enter, viis. Okei. Nii et see on päris lihtne. Välja arvatud see probleem komplekt, me tahame seda tegelikult vastavusse viimiseks paremal pool meie ekraanil. Hea küll. Niisiis, kuidas võib üks teist tegelikult tüüp see selline, et see on joondatud piki eks? Selle asemel, et räsi kõigepealt seda, kuidas võib teile selline Liigume edasi? SPEAKER 3: Kirjutage rida? ZAMYLA CHAN: Hmm? SPEAKER 3: Kirjutage rida? ZAMYLA CHAN: Jah. Jah. Sa võiksid kirjutada nagu alakriips või midagi sellist et, kuid me võime lihtsalt öelda kasutada ruumi. Olgem panna nagu kolm sammu siin. Siis järgmine rida, noh, me oleks panna kaks sammu. Järgmine rida, me lihtsalt pane üks tühik. Ja siis meie viimane rida, me ei läheks tühikuid. Ja seal on meil püramiid. Nii et see on selline - meeles pidada, et selline loogika. Ja proovida ja nuputada mingi muster, mis meie võimuses, siis tõlkida C ja kaasata mingi loop. Hea küll. Nii et meil on kõrgus kaheksa, siis meie esimene rida on 2 hashes. Aga saada neile hashes, siis oleks kirjutada mõned ruumid ette. Eks? Mida ma tegin on mul lihtsalt läks läbi. Ma joonistasin selle ise välja, püramiidi minu tekstiredaktoris püramiidi kõrgus kaheksa ja siis arvutada, kui palju ruumid Mul oli vaja teha. Nii et ma ütlesin okei, noh esimene rida on läheb kaks hashes. Aga enne seda pean sisend 7 ruumid. Järgmise üks on kuus ruumi ja seejärel 3 hashes, jne. Nii siis proovime ja viia see teise kihi võtmiseks. Mis siis, kui meil oli nda rea, kui palju hashes ja kuidas palju ruumi oleks meil vaja on? Kas keegi näeb muster? Nii et esimene rida on kaks hashes. Teine on kolm. Kolmas on neli. Nii nda rea ​​oleks - SPEAKER 4: N pluss 1? ZAMYLA CHAN: Jah. N pluss 1. Täpselt. Siis näeme, et mitmed hashes saab olema - kui me loodame esimeses reas on üks, siis arv kohta hashes on lihtsalt saab olema üks rohkem. Okei. Siis kuidas on kohtade arv? Nii et proovime ja väljendada seda nii kõrgus. Kui kõrgus on kaheksa, siis esimene rida on seitse ruumid. Nii et omamoodi vastab 8 miinus 1. Eks? Siis teine ​​rida läheb on kuus sammu, mis on 8 miinus 2. Nii siis ma jätan selle sulle, et selline näitaja välja muster selle eest. Okei. Aga programmeerimine, mõnikord me tegelikult indeks on null. Nii et me algavad nullist ühe asemel. Nii et selle asemel esimeses reas kutsutakse esimeses reas, me ei kavatse nimetades seda 0-ndas reas. Nii et olenevalt sellest, kuidas soovite seda rakendada, on väga ettevaatlik, kas sa algavad nullist, kas hakkate üks, oma muster läheb korvata üks. Okei. Nüüd, et me sellist arvasin programmi, me pean ütlema, okei. Nii et igasugune tase trepid, ma lähen printida sellise ja sellise arvu tühikuid ja siis selline ja selline arv hashes. See sõltub mustri, et oleme loonud enne. Okei. Nii et üks võimalus itereerimise läbi ja selline läheb kaudu seada mitmeid asju on loop, selline nagu kordus 10 Blokeeri või nagu korrata ja sisestatud number jaoks nullist. Nii et sisuliselt iga taseme trepid, me tahame prindi ruumid esimene. Siis printida mitu hashes. Ja siis me tahame siseneda uuele reale ja seejärel korrake seda jälle järgmise ploki. Okei. Nii et vaatame jaoks silmuseid jaoks sek kuni liiki näha üks viis et me võiksime minna läbi rea number, läbida mitmeid sammu, see pool püramiid. Nii silmuseid koosneb kolmest osast. Esiteks, sa pead ettekanne. Nii et sisuliselt seab muutuja. See saab olema seadistatud, et raha iga kord et silmus algab. Siis sa lähed on korras. Sinu jaoks silmus täitmisele ainult seni, kuni see tingimus TRUE. Ja siis pead uuendus seisukorras. Nii et on pistmist muutuja, mida vormindatud. Nii et mõnes mõttes on põhimõtteliselt tagada, et saame välja murda silmus, et me ei või hoida oma täidesaatva see ikka ja igavesti. Sest erinevalt Scratch'i, me tegelikult ei ole lihtsalt tavaline Forever silmus. C on programmi lõpuni lõpuks. Nii et me peame tagama, et mingil moel me oleme seda peatada. Okei. Nii näiteks loop, et te võiksite kasutada Mario on see. Nii et teil on täisarv i, et hakkate 0. Niikaua kui see on väiksem kui kõrgus, te sooritate keha Euroopa silmus sees siin. Pärast seda keha silmus on täidetud, siis oleks suurendada i 1.. Siis teie programm kontrollige uuesti - okei, noh, on mul alla kõrgus? Kui on, siis jätkuks. Nii et siin on näide null indekseerimine, kus hakkame kell nulli ja siis me - märgata, et meie tingimus on väiksem kui kõrgus. Nii ütleme meie kõrgus on neli, näiteks i algab 0-ga. See saab olema 1. See saab olema 2. See saab olema 3. Ja siis kui see värskendab, kui loop uudiseid, siis ma Seejärel määratud 4. Aga 4 ei ole väiksem kui 4, ja nii siis oleksime jätkuvalt kogu meie silmus. Okei. Nii et see algab nulliga. Aga me võiksime alustada ka ühe, näiteks. Aga kuna me alustame kell üks, me mingi peame minema veel üks aja lõpus. Nii siis sellepärast me lisada väiksem või võrdne. Nii et üks suur asju, mis mulle meeldib arvuti programmeerimine on, et seal on lihtsalt nii palju võimalusi teha asju. Nii saate valida, kas alustada nullist, kas te algab kell üks. Samuti, kui sa tahad, võid lihtsalt kasutada samas silmus, näiteks. Nii võib - olgem tegelikult avatud hello.c. Nii et meil on loop siin. See algab kell i = 0, i <5. Mul on kommentaar siia räägivad meile, mida ta teeb. Ta prindib tere viis korda, kasutades jaoks silmus. Aga me võiks ka seda teha, kasutades samas loop samuti. Nii et vaatame, kuidas me võiksime seda teha. Nii et kui me läheme matkivad jaoks silmus, siis tahame ka matkivad käivitamise, seisukorra ja uuendus. Nii tingimus peaks olema üsna lihtne, sest samas süntaks, kui te vaatate seda, ta ütleb while (tingimus). Nii et olgem lihtsalt sisend tingimus seal. i <5. Okei. Nii et me teame, et me tahame prindi hüvasti. Me teame, et see on põhiosas meie silmus. Aga meil puuduvad initsialiseerimise ja uuendus, eks? Sest me ei saa igavesti silmus. See on lõpetada. Nii et lisame mingi ettekanne, kasutades sama, et me kasutasime meie jaoks silmus, int i = 0. Okei. Nii et hakkame koos int i. Me korrake seda samas loop kui i on väiksem kui 5. Nii siis meil puuduvad üks asi, mis on uuendatud. Mida uuendus oleks me peame kasutama, kui me põhiliselt taasloomine jaoks silmus üle? Meil on initsialiseerimise i on võrdne 0-ga. Meil on tingimus i on väiksem kui 5. Ja siis siin on uuendus, eks? Nii et me tahame kopeerida seda. Me tahame öelda, okei, i + +. See on sama asi nagu öeldes i = i + 1. Aga kuna see on nii palju kasutatud, lühendvormina see on lihtsalt öeldes i + +. Suur. Okei. Siin ma tegelikult ei väljuda mu õunad programm. Nii et ma olen lihtsalt läheb käsku Control-C ja et kohe saapad mind mu programmi ja toob mind tagasi terminali. Nii et näiteks kui teil tekib bug, kus te unustasin, et uuendada oma samas silmus nii, et see lõpetada, ja sisestate lõputu silmuse, siis saate kasutada Control-C välja murda, et. Hea küll. Nii et oleme õiges kataloogis. Nii et teeme tere. Ja siis, kui võtame tere, näeme, et hüvasti silmus teeb täpselt sama asi nagu meie jaoks silmus teeb. Nii et see on lihtsalt vihje. Kas olete rohkem rahul jaoks silmuseid või koos samas silmuseid, võivad nad olla omavahel vahetatavad. Nii et kumb soovite kasutada itereerima kaudu - sel juhul - kõrgus Mario püramiid. Ja nii jälle, see on lihtsalt meeldetuletus, kui sa alguses null oma muutuja, siis tahad Sa olla erinev seisukorras kui siis, kui sa hakkasid ühel. Nii et see tabel lihtsalt selline näitab teile meeldetuletus. Kui soovite korrata 10 korda, näiteks siis saab kas alustada oma muutuja on null. Ja teie seisund võib olla alla 10. Ja et selline näitab maatriksi selle. Okei. Nii oleme läbi käinud Mario. Me oleme öelnud, Olgu, me peame kontrollima õige sisend, null ja 23 kaasa arvatud. Me leiame mingi muster, mingi viis väljendada nda rea ​​või s rida. Ja me otsustada, okei, et me ei kavatse trüki palju ruumi, see palju hashes, uus liin. Hea küll. Nii et meil on see. Nii et nüüd saame edasi liikuda ahne. Ahne on programm, kus kasutaja annab teile summa raha, mis sisuliselt sind kassast vaja tagastada. Aga mida soovite kasutada nii vähe münte kui võimalik. Ja nii see on, kui ahne algoritm jõuab, kus me tahame kasutada minimaalset münte võimalik teha, et muutuse summa. Okei. Nii näiteks on oma lahendus välja võiks näha midagi sellist. Sa jooksed. / Ahne. Teilt nõutakse öelda okei, noh, kui palju muutusi on ees? See väärtus saab olema väärtus dollarites. Nii et see saab olema ringluses. Sinu programm siis arvutama minimaalse summa Müntide kohustatud tegema, antud juhul, $ 0,32. Ja nii minimaalne arv on neli. Nii et enne kui me aru saada, mida teha, olgem omamoodi jalutuskäik läbi protsessi, et sa võiksid minna. Nii et kui sisend on 32, siis sisuliselt ma lähen kasutada vähemalt summa münte kui ma kasutan nii palju suur münte kui võimalik. Eks? Nii et see on palju lihtsam kasutada ühte kvartalis vastu viie viiesendist. Ütleme, sa pead tagasi $ 0,32. Noh, ma saan kasutada kvartali see on? Jah, saab küll. Ja siis oleks vähenes $ 0,07. Vaatame, kas ma saan kasutada teise kvartali maksan sulle tagasi. Noh, ei. Ma ei mahu kvartali mis. Nii et ma lähen liikuda järgmisele suurim münt. Kas ma saan kasutada peenraha? $ 0.07, ei saa te kasutada peenraha maksma $ 0,07. Nii et sa ütled ei. Pane järgmise üks, mis on niklit. Kas te kasutate nikkel? Jah. Seitse on suurem kui $ 0,05, et saaksime kasutada niklit. Ja siis on meil kaks senti üle jäänud. Kas me kasutame ühe teenari peale? Jah, me suudame. Kas me kasutame teise teenari peale? Jah. Kas me kasutame teise teenari peale? Ei, sest nüüd on meil edukalt makstud kasutaja tagasi. Ja nii et kokku 4 münti kasutada. Nii et mõelda, et protsess, me kõik aeg otsustada eks, Mis on suurim münt, mida saame kasutada? Kui me kasutame, et me sellist hoida vaimse teadmiseks, kui palju rohkem raha me peame tagasi kasutaja ning kui palju mündid oleme kasutanud. Okei. Nii aga jälle, esimene samm - nagu Mario - on kiire kasutaja rahasumma. Ja nii see summa saab olema - see saab olema arvulises väärtuses, sest me ei kavatse paluda neil dollarit. Nii et andmetüüp ei kavatse olema täisarv. Aga see saab olema - Jah, sularahaga. Aga nagu õunad, ujukite võib olla positiivne või negatiivne. Siis kui sa kontrollida väärtused, sa lähed tahan tagada, et teie float - kasutaja sisend - on mittenegatiivne. Okei. Me võiksime tegeleda ujukid on meie kogu programmi, esindavad kvartali 0,25, Dimes 0,1, jne. Aga minu arvates on palju lihtsam tegeleda vaid puhas senti. Samuti - ja me räägime sellest pisut hiljem - C, ujuvad punktid on midagi, mida nimetatakse ebatäpsus. Nii et kui sisestate 0,12, näiteks arvuti tegelikult kauplustes nagu 0.1111119 või midagi sellist. Nii et see on palju lihtsam teisendada senti. Niisiis, kuidas me teisendada dollari väärtust senti? SPEAKER 5: Times ta 100? ZAMYLA CHAN: Jah. Jah. Seepärast soovime korda see 100ga. Aga üks keeruline asi ujuv küsimusi on, et seal on mõned ebatäpsus. Nii et olgem lihtsalt pilk näide. Ma lähen avama imprecision.c. Okei. See on väga lihtne programm. Ta küsib float, ja ta prindib selle tagasi. Üks kena otsa terminali võid trükkida selgeid ja siis on selge ekraan. Ja nii sa ei pea vaatama kõik varasemad tootlikkust või vigu või veateateid, midagi sellist. Okei. Nii et teeme ebatäpsus. Olgem käivitada. Nii et ma haven't - minu kood, ma ei prindita kiire või midagi sellist. Nii see lihtsalt on vilkuv kursor. Nii et see on lihtsalt ootab mind sisestada sularahaga. Nii let's - juhuslik sularahaga. Ja te näete, et see prindib ta tagasi, kuid on mõned pildi numbrid, et me kindlasti ei sisaldanud. Nii et me tahame veenduda, et see ei juhtuda meie programm. Nii siis, mida me tahame teha, on tagada, et me tegelikult selline ümardada sobiv väärtus. Eks? Ja nii õnneks on meil funktsioon nimega ringi kuuluvad seadmesse. See on matemaatika raamatukogu. Kui soovite teada, kuidas kasutada ümmargune, siis te tegelikult kasutada käsitsi. Te võite klõpsata mees ringi. Siis siin see avab - võib olla natuke raske dešifreerida, kuid lõpuks saad riputada seda. See liik näitab teile, mida funktsioon teeb ja siis mõned võimalikku kasutamist, et. Nii et kui te lõpuks saada korraliku, kehtiv sisend kasutaja, siis sa tahad muuta selle senti. Veenduge, et teil ümber väärtus nii et teil vältida selle ujukoma ebatäpsus. Okei. Nii oleme küsitakse kasutajalt rahasumma. Nüüd, mida me tahame teha, on sisuliselt kontrollida, eks? Okei, nii et ma saan kasutada suuremaid münt võimalik? Kui võimalik, siis kasuta seda. Teil jälgida, kui palju mündid oled kasutanud siiani ja Samuti väheneb summa. Eks? Ja siis sa lähed, et kontrollida. Kui olete sellist ammendatud kvartali tahad minna Järgmise võimalik asi. Nii et millist struktuuri või millist silmus võiks meil soovite kasutada pidevalt kontrollida, kas me saame ikkagi kasutada kvartalis, näiteks? SPEAKER 6: Kuigi suurem väärtus? ZAMYLA CHAN: Jah, täiuslik. Täpselt. Niisiis, kui väärtus on suurem kui. Niisiis, kui väärtus, mis meil on anda tagasi on ikka veel suurem kui veerandi, samas me saame ikkagi kasutada kvartalis kasutada kvartalit. Jälgi seda. Ja siis hoida käimas. Perfect. Okei. Oh, siin ma olen lihtsalt lisada vaid mõned nõuanded, kuidas printida välja väärtused. Nii et teie printf funktsiooni, oleme tavaliselt olnud lihtsalt tegelevad stringid. Aga kui sa tahad välja printida int või lihtsalt igat tüüpi kohaline, sa pead selline kirjutada selline koht omanik. Nii et see esindab protsenti,% d täisarvud. Sa kirjutad, et siis hiljem sa tegelikult - pärast koma - panna milline väärtus tegelikult läheb sinna. Õigus. Okei. Nii oleme otsustanud, et me tahame, et kontrollida, kas - üks võimalus seda teha oleks pidevalt kontrollida, kas me saame ikkagi kasutada kvartali ja seejärel kasutage kvartali hoida jälgida ja seejärel liikuda edasi järgmisele suurim väärtus. Nüüd teise liiki puhas nii, et sa võiksid seda teha on kasutades operaatorit moodul. Nii et meil on juba pluss, miinus, korrutada ja jagada meile kättesaadav. Aga moodul operaator on selline puhas. Mis see on see tegelikult naasete ülejäänud jagades kaks arvu. Nii et kui sa mäletad pikk rajoon, kui sa oleks, ütleme, teha 74 jagatud 3, siis oleks kirjutada, üle kanda, lahutada, ja siis lõpus arvu allosas on Ülejäänud. Noh, mis moodul see tegelikult lihtsalt annab sulle selle. Nii et 74 modulo 3 annaks sulle 2. Samamoodi, 10 mooduli 2 järgi annab 0, sest seal ei ole ühtegi ülejäänud kui sa jagad 10 2. 6 moodul 5, hästi 5 läheb 6 üks korda ja seejärel See on 1 üle jäänud. Siis kui sul on 7 modulo 9, hästi 9 on suurem kui 7. Nii et see ei saa minna muul ajal. Nii on loogiline, et tagastatav väärtus on 7. Nii et kui sa arvad moodul, kuidas see annab teile ülejäänud pärast sa jagad midagi, saad omamoodi aru, kuidas te võiksid kasutada seda ahne, eks? Nii et kui teil mingi ühendada Modulo võibolla rajoon operaator, midagi sellist, siis võib-olla jahe selline mathy viis läheneda probleemile komplekti. Nüüd, et me teame, et seal on paar erinevat viise, et me võiks seda teha - seal on kindlasti palju erinevaid viise, kuidas isegi kirjutama samas silmuseid. Nii et ma olen kirjutanud mõned pseudokoodi siin. See ei pruugi olla identne selline skelett oma koodi, mis sa kirjutad. Aga sisuliselt, protsess ja mõtteviis on nagu me arutasime. Nii et esimene, esimene rida ütleb, et saada teatud summa dollarites. Ja siis kaudne seal on teisendada see senti. Siis samas kvartalis võib kasutada, tahame suurendada arvu. Ja siis me tahame vähendada summa, väärtus, et Me tagastame tagasi. Nagu näete siin, see ei ole päris C. Aga ma olen ka liigestatud asju, panen tingimused sees sulgudes. Nii siis sellist saab mind hakkas. Ja siis hiljem, võin lihtsalt otsida süntaks. Sageli on kõige raskem osa tõesti probleemi kohta on aru, mida täpselt sa pead tegema. Nii et kui sa selle üles kirjutama, siis on palju lihtsam siis tõlkida pseudokoodi. Ja siis alates pseudokoodi, süntaks on üsna lihtne. Nii me näeme, kui kvartalites, mida saab kasutada, suurendada arvu, väheneb summa. Kuigi Dimes saab kasutada, siis läbi see nii edasi ja nii edasi, kuni olete ammendanud kõik oma penne. Sa printida münti kasutada, mis on miinimumsumma teha kasutaja sisestanud väärtuse. Ja seal teil oma ahne algoritm. Ja siis kui olete lõpetanud, et olete ka valmis pset 0. Kas kellelgi on mingeid küsimusi midagi? Hea küll. Noh, ma jääda umbes natuke pärast, kui teil on mingeid küsimusi. See oli läbikäiguks 1. Tänan, et tulid.