[Prehrávanie hudby] JASON Hirschhorn: OK, všetci. Vitajte v sekcii. To je CS50, naše veľmi Prvá časť výborný. Ako iste všetci viete, budúci týždeň Pravidelné rubriky začne, ale tento týždeň sme všetci spolu. Nie je sám. Moje meno je Jason. Som lektor v informatike. Máme Andi, kto je hlava TA na CS50. A Scaz, profesor Brian Scassellati, on je profesorom v informatike. Sme CS50 hlavy na Yale. Vždy sa môžete e-mailom us heads@cs50.yale.edu. Budeme na prednáškach. Budeme v úradných hodinách. Či je vôbec niečo, čo môžeme urobiť pre vás, niečo, čo potrebujete, neváhajte osloviť nás. Tak čo budeme robiť dnes? Alebo do tej doby, čo je prichádza tento týždeň? Takže úradné hodiny sú pondelok, utorka, Streda, a vo štvrtok, od 8:00 do 11:00. Je tu plán na internetových stránkach. Sekcia, rovnako ako som sa zmienil, začínajú budúci týždeň. A zistíte, čo tento týždeň doby sa váš oddiel je, čo je za deň, a kto je váš TA je. Problém Set 1 je splatná vo štvrtok vo poludnie, v piatok na poludnie sa neskorom deň. Áno, máte deväť neskoré dní. A existuje deväť problémové sady. A možno použiť iba jeden neskoro deň na problémové sady. Áno, v skutočnosti, všetky problém Sady sú splatné v piatok napoludnie. To je všetko. Všetko, čo údaje nájdete na osnovy. Každý piatok, máme obedy. Radi by sme, aby sa tento veľký Samozrejme cítiť trochu menšie. Takže ste vítaní na RSVP. Voľný obed s kolegami spolužiaci a zamestnancami. cs50.yale.edu/rsvp. Všetky tieto veci, ktoré Mám na obrazovke, a ďalšie, môžete nájsť cs50.yale.edu alebo cs50.harvard.edu, ak idete na Harvard a sledovanie tohto on-line. Tiež na týchto webových stránkach, tam sú tony zdrojov pre vás. Každá prednáška má nielen video prednášky, ale tiež poznamenáva. Niekto bude sledovať prednáška a robiť si poznámky za vás. Takže môžete len platiť pozornosť počas prednášok, alebo môžete použiť svoje poznámky / otázky berie na vedomie, pre doplnenie svoje vlastné poznámky. Tam sú šmykľavky online. Zdroj code-- všetko David ide cez v prednáške, alebo Scaz ide cez prednášky, že Zdrojový kód je k dispozícii on-line rovnako, ako rovnako ako ja, zmienil videa. Sekcia, podobne, všetko bude natočený. Všetky tieto diapozitívov bude k dispozícii. Všetky tohto kódexu bude bude k dispozícii pre vás. Tam sú šortky na webové stránky, kde Zamestnanci CS50 stráviť päť až 10 minút prechádzajú témami pre vás. Niektorí z tých, ktoré ste už stretol v problémových sadách. Úradné hodiny, ako som už spomenul, pondelok cez štvrťky, 8:00 do 11:00. CS50 Štúdia je fantastický zdroj. Tam sú problémy praxe, vzoriek šmykľavky, známe chyby že študenti chceli naraziť, k podstate každú tému my sa bude týkať v tomto kurze. A konečne, na tomto snímku aspoň, Reference50 ktorý poskytuje informácie Na všetky funkcie C by ste mohol niekedy dúfať na použitie a mnoho, mnoho ďalších. Opäť platí, že dot dot dot na v spodnej časti obrazovky je ukázať, že tam je aj viac prostriedkov na týchto dvoch webových stránkach: cs50.yale.edu, cs50.harvard.edu. Takže, čo budeme robiť dnes? No, v prvom idem dať sa pozriete na zdroje. Už sa stalo, že jeden. Pozri sa na nás. Teraz budeme ísť cez dátové typy a operátormi v C Potom Andi príde sem a prejsť knižníc v C, printf (), funkcie, s ktorou sú už pozná alebo sa rýchlo stane veľmi povedomý. A budete tiež ísť cez podmieňovací spôsob a slučky. A nakoniec, Scaz pôjde cez CS50 ID. Ak ste sa potopil v Už v problémových Set 1, a ako používať Príkazy terminál a užitočné a potom dať nejaké demá a prax kódovanie v CS50 ID. Predtým, než som sa skočiť do toho Obsah na tejto strane, Má niekto nejaké otázky tak ďaleko? Skvelé. OK. Preraďovaní. [Preraďovanie] To som bol ja posúvanie rýchlostných stupňov v manuálnom aute. Takže dátové typy v C, môžete nielen mať premennej x a musí to byť na riadku 10, celé číslo, možno číslo 1, na linke 20, desatinné číslo 10,5, a potom pár riadkov neskôr reťazec, milujem CS50. V jazyku C, premenné môžu byť len jedna vec, a len jedna vec. A tak budete musieť dať im typy. A na tomto fóre, my mať zoznam typov. Tam sú znaky, ktoré stojan pre znaky. Tak to je jedno písmeno A, B, C, D. To môže byť tiež miesto, alebo že môže byť tiež znak nového riadku. K dispozícii sú celé čísla, ktoré sú práve čísla, celá numbers-- alebo celé čísla rather-- ale žiadne desatinné miesta. Pre desatinné miesta, máme plávajúcou desatinnou čiarkou. Plávajúcou desatinnou čiarkou sú čísla s desatinnými miestami. Potom sú tu túži, ktoré sú v podstate dlhšiu celé čísla. Všimnite si, že dlhá je 8 vzhľadom k tomu, int je 4. Budem sa k tomu v druhom. To preto, že túži možno uložiť aj viac celé čísla ako int môže ukladať. Double je dlhá float. A konečne, máme reťazec, čo je typ že ste pravdepodobne použité skôr. Ak zahrniete hashtag # IncludeCS50.h v zdrojovom súbore, potom môžete použiť typ reťazca. Nie je to vlastne integrovaná do C. Existuje niekoľko ďalších typov rovnako. Ale to sú hlavné tie s ktoré budete používať a stretnúť. C as, znovu som sa zmienil, každý proměnná-- to môže byť iba jeden typ a len jeden druh. To preto, že C je staticky zadaný jazyk, na rozdiel od dynamicky zadávané jazyky kde ak si vytvoríte premennú môžete zmeniť to, čo je uložené v to, ako idete vo vašom programe. Tu na pravej ruke side, mám rôzne veľkosti z týchto typov dát v bytoch. Takže je znak 1 bajt. To je 8 bitov. A to znamená, že preto, že 8 bitov je tu osem 0 a 1. Videli sme tie ukážky v prvom týždeň s tým, že binárne žiarovky. S 8 bitov alebo 1 bajt, môžeme predstavovať čísla od 0 do 255. Správne. Ak sú všetky 8 bity 0, to je 0. Ak je prvý bit je 1, to je číslo jedným, a tak ďalej, celú cestu až do 255. A to je dôvod, prečo pre znaky môžete majú v podstate až do 255 z nich, ale to je dosť na pokrytie všetkých znaky musíme použiť. Pre celé čísla, môžete mať 0 a potom máte 2 k 32 mínus 1. Tí, ktorí sú ako veľa možností Máte na celé čísla. Pre dlhá, máte 0 na 2 až 64 mínus 1. Máte teda veľa, veľa, viac možností túžia. Reťazca, to je otáznik pretože to je Cliffhanger na neskôr. Jo. Mohol by som povedať, všetci to na okraji svojho sedadla, ako to, čo to je otáznik? Je to Cliffhanger. Budeme sa prípadne zahŕňať tiež veľkosť slučke a hovoriť viac o reťazcoch. Vzhľadom k tomu, reťazec je vlastne jeden z tréningových kolies dáme na v tomto Samozrejme na začiatku a potom vzlietnuť neskôr o, pretože reťazca v C sú vlastne na ukazovatele charakteru polí. Ale na druhú stranu, to je Cliffhanger na neskôr. Predtým, než som sa presunúť na akékoľvek otázky, Pripomienky, obavy o tomto snímku? OK. Musím byť fantastický Explainer. Tiež, keď ste programovania, budete používať tieto operátormi. Naozaj jednoduché znaky, ktoré môžete urobiť jednoduchý operácie, s ktorými budete pravdepodobne už veľmi dobre oboznámení. Napríklad, na pravej strane strane, vidíme pridať. Ak chcete pridať, stačí urobiť znamienko plus. A tak môžete mať dve premenné x a y. Môžete to urobiť x + y v kóde. Možno chcete to-- hovoríte majú číslo 7 a 3, Ak chcete uložiť, že v premennej s názvom čiastku. Môžete to urobiť int pre typ priestoru súčet, meno premenné, = 7 + 3; Čo by to obchod v súčte? Každý, kto? Keby som mal v súčte = 7 + 3. Čo by byť uložené v súčte? Stačí si len zakričať to. Divákov: 10. JASON Hirschhorn: 10! To je presne to pravé. A čo v súčte = 7-3, Len som používať tento pomlčka. Čo sa deje byť uložený? Divákov: 4. JASON Hirschhorn: 4. Súčet je pravdepodobne nesprávny názov pre že variabilné, ale 4 by boli uložené. Násobiť v C, použite malý Hviezda znak, nemusíte používať x. Ak chcete rozdeliť, použite vpred Slash nie je symbol divízie. A modulo možno použiť znak percent. Takže povedzme, že chcem vidieť int z = 7% 3, čo by byť uložené v Z? Tak, to je v podstate pýtať, čo robí modulo robiť? Vie niekto, čo modulo robí? Jo. y 4. Reproduktor 1: Je to zvyšok. JASON Hirschhorn: Jedná sa o zvyšok pri delení. Takže 7 deleno 3 je 2 zvyšok 1. So 1 by boli uložené. Urobil si odčítanie, ale to je, ako to funguje. To je to, čo operátor modulo robí. Trvá niekoľko rozdelí ju iné číslo a vráti sa k vám zostávajúcu časť. Takže znovu, 7% 3 vám dáva 1, pretože 7 deleno 3 je 2 zvyšok 1, a vráti zvyšok. Čo vráťme sa hore jeden krok k tomu znak delenia. Keby som to urobil 7 / deleno 3 robí niekto vedieť, čo to by sa vrátil? SPEAKER 2: 2. JASON Hirschhorn: Prečo 2, a nie 2,333? SPEAKER 2: Myslím, že to reže off po celé číslo. JASON Hirschhorn: So to je presne to pravé. V jazyku C, pokiaľ si rozdelenie dve celé čísla 7 delené 3, dostane odpoveď, ktorá v tomto prípade 2.3333 navždy a zistí, že sa desatinnú čiarku a kotlety všetko preč za desatinnou čiarkou a to len vráti vám 2. Takže keď som urobil 8 deleno 3. Že v skutočnosti vieme, že k návratu 2.666, ale je to všetko preč na kotlety desiatková, skráti to všetko, a len sa vracia k vám 2. Takže 6 delené 3, 7 rozdelená o 3, 8 delené 3, všetci budeme vracať k vám 2. Vie niekto, alebo máte hádať, ako som mohol skutočne dostať plná odpoveď, ak chcem, aby desatinné miesto? Jo. Choďte do toho. SPEAKER 3: Použitie plavák? JASON Hirschhorn: Čo tým myslíš? SPEAKER 3: Pretože ste povedal, že plavák je pre čísla [nepočuteľných] JASON Hirschhorn: Správne. Tak, to je presne to pravé. 7 je celé číslo. Ale keď som sa chcel otočiť, že do desatinné číslo, Ja by som si, že uloženie ako 7.0 pretože počítač je naozaj stupid-- sme videli, že s PB a J example-- to bude len robiť presne to, to, čo ste to povedať. Takže ak píšete 7, si myslí, že je to celé číslo. Ak máte písať 7.0, aj keď sme viem, tieto veci sú rovnocenné, zaobchádza, že sa ako číslo s plávajúcou čiarkou. Takže ak ste 7.0 rozdelená o 3, alebo sa môže rozdeliť o 3,0, to by povedal, OK, teraz máme čo do činenia s plaváky. Vrátim sa k vám 2.333333 navždy. Ale nie naozaj navždy, pretože ako sme videli aj v prednáške, Tieto čísla pohyblivé čiarky nie sú práve presné. Takže ak si chcete túto desatinné miesto, alebo časť tohto desatinnej čiarky, potom budete musieť use-- jeden z nich Musí to byť číslo s plávajúcou čiarkou a počítač má rozumieť že sa jedná o plávajúcou desatinnou čiarkou, že ste zaoberá, nie je celé číslo. Akékoľvek otázky týkajúce sa tejto tabuľke na pravá strana, tak ďaleko? Alebo ľavej strane, vaše doľava, po ľavej strane. Jo. SPEAKER 4: Správne. Pre rovnako ako pravidelný celé čísla, by ste write-- ste museli písať plávať? JASON Hirschhorn: Jo tak. No, ak chcete vytvoriť premenná, ktorá je plavák, je potrebné povedať, float z rovná niečo. SPEAKER 4: OK. JASON Hirschhorn: Ale keby som chcel činiť 7 delené 3 a dostať, že desatinné miesto, Ja by som to float z = 7,0 / 3,0; a že by mi dať plávajúce rádovou čiarkou číslo. SPEAKER 4: OK. JASON Hirschhorn: Keby som to urobil niečo ako int z = 7 / o 3, že by mi celé číslo, pretože to všetko sú celé čísla. Dáva to zmysel? SPEAKER 4: Áno. JASON Hirschhorn: OK. Skvelé. Akékoľvek ďalšie otázky týkajúce sa tejto tabuľky? Naozaj? Som tak nadšená. OK. Takže niektoré ďalšie veci, ktoré budete používať, častokrát v podmienkach alebo slučiek, sú tieto typy operators-- Tieto typy boolovských výrazov. A ako sme sa dozvedeli, == je to, čo použiť na kontrolu, či dve veci sú si rovné. Tak tu som kontrolu, či x == y, poďme opäť predpokladá, že x je 7 a y je 3. Takže keď som napísal 7 == 3, čo by to vrátiť sa ku mne? Je to pravda, alebo lož? Divákov: False. JASON Hirschhorn: OK. Mám pocit, že každý môže získať tento jeden. Takže všetci, čo by to vrátiť? Divákov: False. JASON Hirschhorn: False. Skvelé. 7 nie je rovné 3. Takže 7 == 3 vráti false. Vy máte nie je znamienko rovnosti, takže keď som skontrolovaných 7! = 3, čo by to vrátiť? Divákov: To je pravda. JASON Hirschhorn: To je pravda. Výborne. Niekto bol veľmi dôrazná v zadné a oceniť. Potom máte menej ako prevádzkovateľa, menej ako alebo rovné subjektu, väčšie ako operátor, väčšie alebo rovné operátora. Takže ešte jedna kontrola príčetnosti. Keby som mal 7 je väčšia alebo rovné 3. Čo by to vrátiť? Divákov: To je pravda. JASON Hirschhorn: To je pravda. Áno. To zadnej miestnosti, zadná strana z miestnosti, fantastický. Môžete kombinovať tieto výrazy, ak sa vám páči, a tiež, s logickým AND, ktorý je && Alebo logický OR, ktorý je || ||. A tak teraz si môžete vyskúšať dva veci, together-- Je to smiešne? Prečo je to smiešne? Takže keby som chcel, môžem povedať, je 7 väčší ako 3 a 2 je menej ako 4? No, ak je väčšia 7 ako 3, to je pravda. 2 je menej ako 4, to je pravda. Takže celá tá vec vráti true. Ak som testoval 7 je väčšia ako 3 a-- Ja som len výberom náhodných čísel here-- 4 je menšia ako 2, no, to je falošná. Tak true a false false make. A môžete ísť ďalej a budete kombinovať ako veľa podmienok spolu, ako by ste chceli. Má niekto nejaké otázky, Pripomienky, obavy, tak ďaleko? A vidím, že niektorí z vás fotografovanie o mne na obrazovke, ktorý som oceniť. Dúfajme, že to nie je snapchat. Dúfajme, že je to pre Vaše poznámky. Ale všetci z nich idú k dispozícii on-line. Takže sa nemusíte vyfotiť to. Ako som už spomenul, všetko bude k dispozícii on-line pre vás. OK. Chystám sa dostať v zákulisí, tak sa nikomu chcem povedať nič Než sa to stane? Otázky? [Vložením hlasy] JASON Hirschhorn: Oh, prestaň. Vy ste taky pekné. OK. Chystám sa označiť von. Poďme. ANDI PENG: Budeme robiť trápna mic teraz zmeniť. JASON Hirschhorn: Som bude to vziať voľno. ANDI PENG: vážime podpory, chlapci. Počuješ ma? Je to dobre? Perfektné. Krásne. Dovoľte mi len zastrčiť, že. OK. Takže, ja som asi robiť ako obr Informácie o výpis o vás chlapci práve teraz. A bez obáv vôbec, ak ste nie po každej malej riadok o tom, čo Chystám sa ukázať. Ako povedal Jason, všetko je úplne online. Len budeme sa snažiť, aby zaviedli všetci na pojmy pokrytý V niektorých z týchto snímok. Takže len sledovať spolu. Žiadne starosti, ak nechcete pochopiť všetko; však, ak je v každom bode máte pocit, stratený, zdvihnite ruka, budeme zastaviť, žiadne starosti. Super. Takže si myslím, niečo, čo David Už druh spomenuté v prednáške a Jason druh sa zmieňoval do dnes je to, čo je knižnica. Takže v programovaní, máme tieto veci s názvom knižnice. Tam, kde v podstate všetky oni sú je len súbor funkciou, ktorá je v podstate len kód, ktorý je už boli napísané niekto iný, že môžeme všetci spotrebujte do našich programoch. Tak ako sa normálne Práca knižnica, je to tak? Zadáte dvere knižnice. Máte všetky tieto Knihy si môžete vytiahnuť a môžete prístup k informáciám v týchto knihách. To isté v programovaní. Máte knižnicu, ktorá má už boli napísané inými ľuďmi. A to tak, že je to možné, ako programátor alebo študent, môžu získať prístup k tejto knižnici je cez hashtag #include. Napríklad, v C my majú tri C- najviac bežne používajú tri Standard C libraries-- vstupu / výstupu knižnice, reťazec knižnica, a matematická knižnica. Takže v rámci vaše prvé pár problém súpravy, tie budú tri že ste primárne používať. Tak ako David už vysvetlené v prednáške, štandardné I / O knižnice, alebo štandardný vstup / výstup library robí presne to. To vám umožní, v kóde, zadať čokoľvek od užívateľa a výstupu, ktorý na obrazovku, v podstate tlač na obrazovku. A tak kedykoľvek budete používať žiadne funkcie, napríklad funkciu printf (), ktorá budeme ísť cez ďalšiu snímku, uistite sa, že obsahuje štandardné I / O knižnica inak vám nebudeme môcť použiť funkciu printf (). Pretože vy, ako programátor Nikdy vlastne napísal, že funkcie, ste len pomocou niekoho Kód nič nie je v rámci vlastnej kód. Dáva to zmysel všetci? Super. A potom sme v podstate dostať sa na string.h knižnica a math.h knižnica, .h jednoducho znamená knižnicu, ďalšie knižnice, ktoré budete nakoniec používať priamo vo Vašom kóde. Ale na účely tejto knižnice sme tiež have-- tohto class-- máme tiež to, čo sa nazýva knižnicu CS50, cs50.h, kde sme na Vaše prečítaniu vytvorili veľa dôležitých a užitočných funkcií. Takže vy ako programátor môže chrbte off to, čo sme už napísali tak, že Táto funkcia je k dispozícii pre vás pre vaše použitie. Budem pokrývajúca pár funkcia bežne používané, ale viem, že sa jedná o všetky googleable online. Neváhajte, vytiahnuť knižnicu CS50 a potom máte všetky funkcie tam. Jo. SPEAKER 5: Takže ak ste neboli pomocou softvéru zaisťuje nám trieda, robí, že znamenať, budeme musieť stiahnuť a nájsť Toto záhlavie súbor sami a povedať počítač, kde to je? ANDI PENG: Veľká otázka. Presne tak. Takže je to ako keď si nie ste fyzicky prítomný v knižnici, neexistuje žiadny spôsob, ako pre vás skutočne ísť a prístupu k nemu. Takže to isté s programovanie v C, vás musí sa uistiť, že ste pomocou nášho zariadenia, pretože knižnica je už boli začlenené do neho. A potom, keď hashtag #include, knižnica je tam. Jo. Dobrá otázka. Všetci dobre? Super. Dobre. Takže budeme zasiahnuť, v podstate, to, čo je Prvá funkcia, ktorá My ako programátori sú bude používať v rámci nášho kódu. To sa nazýva funkcie printf (). Takže, funkcie printf (), ako som už uviedol v poslednom snímke, je zahrnutá v štandardnom I / O, štandardný vstup / výstup, knižnica. Takže uistite sa, že čokoľvek, čo using-- oh, dovoľte mi chytiť laser pointer-- vždy, keď používate funkcie printf (), musíte zahrnúť štandard I / O knižnica alebo inak, pri kompilácii, budete mať chybu pretože počítač bude vyzerať, oh ja neviem, kde printf () je, ty mi nepovedal, kde printf () je. Well printf (), je zahrnutá v Štandardné I / O, takže pri použití printf (), uistite, že máte, že čiara nad kódu. Tak napríklad, printf () Tu je funkcia. Všetko, čo to urobí, je vytlačiť niečo v zátvorkách pre užívateľov. Zaujíma sa niekto chcel, aby sa stab v akom tento riadok kódu práva Tu sa bude tlačiť? Preto, že odpoveď je na obrazovke. Každý, kto? Verdi: Spodná. ANDI PENG: Verdi, prečo nejdeš vpred a povedať celý vyhlásenie? Verdi: Dobrý deň, volám sa Andi, a som 20 rokov. ANDI PENG: Ach, pôvabný. Takže v tejto línii budeme vytlačiť, Dobrý deň, volám sa Andi, a som 20 rokov, ktoré je v skutočnosti pravdivé oznámení. Syntaxe. Takže pár otázok, ktoré syntaktických vy chcete, aby sa ubezpečil, viete. Citáty. Dvojité úvodzovky povedať, Počítač, ktorý všetko vo vnútri sa bude tlačiť. Všetko vo vnútri plechovky jednoducho byť presne, ako ste to typ, s výnimkou zvyčajne na konci, budeme chcieť, aby zahŕňala hash-- oh sorry-- pomlčka n. Takže pomlčka n. Má niekto chcel, aby sa hádať na to, čo robí, že k nášmu kódu? Jo. SPEAKER 6: Kladie to na nový riadok. ANDI PENG: Presne tak. Tak toto všetko robí, je umožňujú nech sa stane čokoľvek po tomto, po tomto vyhlásení, majú byť vytlačené na nový riadok. Takže keď ste písanie Kód nemáte náhodne mať veci připíchnutý na koniec že nechcete. To všetko dostane úhľadne vytlačí jeden riadok a potom začneme na nasledujúci riadok. Pamätá si niekto, čo to bodkočiarka robí, keď sme kódovanie? Jo. SPEAKER 7: Vyhlásenie. ANDI PENG: Sorry? SPEAKER 7: Má to skončí príkaz? ANDI PENG: Jo. Tak v C, alebo akéhokoľvek programovania jazyka, bodkočiarka označuje koniec programové linky. Tak napríklad, v angličtine používame dobu povedať, oh to je koniec vety. V programovania, rovnakú vec, máme bodkočiarka naznačovať koniec riadku. Častokrát, keď ste začína na program, vy si uvedomíte, nezabudnite pridať bodkočiarka a potom pokuse o spustenie vášho kód a to nefunguje. A ty si ako: Ach, vôbec sa mi nepáči viem, prečo je potrebné pracovať. Je pravdepodobné, že ste pravdepodobne zabudli bodkočiarka alebo držiak alebo niečo niekde inde. Tak, to je dôležité mať na pamäti. Super. Dobre, zdvihnutím ruky, ako Mnoho ľudí tu majú stále zaujatý AP Computer Science alebo naprogramovaný v Jave predtým, vôbec? OK. Lovely. To nebude vzťahovať Potom, ale v Jave, budete majú niečo, čo nazýva System.out.println ktoré neexistuje v C. Tak v C, kedykoľvek vás Ak chcete pridať do premenných do ničoho chcete vytlačiť, je tu špecifická syntax budeme používať. Tomu sa hovorí placeholding-- v podstate pridáme zástupné symboly na mieste z celého čísla alebo premenné že chceme vytlačiť. Tak ako vy môžete vidieť že sme zahrnuté nová hlavičky knižnice súbor tu. Knižnica CS50. A obsiahnuté v tomto CS50 knižnice je bežná funkcia budeme používať v našej kurz s názvom GetInt (). Chce niekto, aby sa pichnúť do Čo GetInt (), môžu byť prípadne robiť. Divákov: [Nepočuteľné] ANDI PENG: Sorry. Nemožno počuť. Maddie, niekto. Maddie: Oh, vyzve ste na celé číslo. ANDI PENG: Presne tak. Takže táto funkcia, ďalšie funkcia, ktorá je už napísal niekto iný že môžeme vyzývame teraz. Všetko, čo to je, je vyzvať vás, užívateľa, zadať čo chcete ako kód beží a ukladá whatever-- V tomto prípade sme GetInt () - Ing, tak to znamená, že sme získanie celé číslo. A budeme uchovávať že v inej celé číslo že sme práve urobil s názvom veku. Že zmysel pre každého? Super. Takže teraz, že sme túto uložené celé číslo, že sme vyzvaní od užívateľa, V tejto premennej, máme vytvoril typu int nazýva vek, môžeme ísť dopredu a miesto ktoré fungujú v našej printf (). Takže syntaxe zvyčajne pre printf () je že tam, kde vo vašom aktuálnom fyzickom linku, ktorú chcete zahrnúť toto číslo, Urob to symbol tam, symbol percent s tým, že typ premennej, ktoré chcete. Takže v tomto prípade vek je celé číslo. Takže sa chystáte zahrnúť % Aj preto, že je to celé číslo. A potom po vašej vyhlásenie, budete robiť čiarkou a Názov premennej. Tak tu, ideme do tlače out, Dobrý deň, volám sa Andi, a som prázdne rokov. Hashta-- alebo, sorry--, vek sa čo som vstupom. Takže ak by som mal vstup 20 pre moju GetInt () tu, to by vytlačiť presne to isté. Ale keby som chcel niečo vstup inde, rovnako ako možná 40 alebo 45, potom by ste vidieť, že odráža zodpovedajúcim spôsobom v kóde. Takže toto je príklad niečoho, v ktorom to vytlačí a vyzerá vy, ako či je to to isté, ale pod kapotu Počítač je to vlastne veľmi odlišné veci deje. Super. Dobre. Takže to, čo ak chceme viac premenných? Celkom jednoduché. Rovnaká vec. Máme tiež novú funkciu tu tzv getString (), tiež zahrnuté v rámci knižnice CS50, že všetko, čo robí, je vyzve užívateľa pre reťazec, ktorý je len súbor znakov, tak ako veta, alebo ako meno. Takže v tomto prípade by sme mať dve zástupné znaky% s reťazcami a% i na celé číslo. A budeme nasledovať že z dvoch premenných chceme, súčasťou, v objednávke že sa objaví vo vete. Tak napríklad, my name is prázdny, chcem meno tam, takže budem mať meno ako prvý. A potom potom, chcem vek, chcú mať veku sekundu. A tak, keď som chcel na vstup, Dobrý deň, volám sa Andi, a som 20 rokov. Ak mám zadané Andi a 20, presne to isté by sa vytlačiť; Avšak, teraz máme dve uložené Premenné mená, rovnako ako int. Jo. SPEAKER 8: Bolo by schopní spustiť, ak ste prepli meno a vek, na konci, ktorý? ANDI PENG: Jo. To je naozaj dobrá otázka. Tak dlhý príbeh krátky, no. Vzhľadom k tomu, meno a čo age-- typ premennej je meno? SPEAKER 8: String. ANDI PENG: A čo typ premennej je vek? SPEAKER 8: Integer. ANDI PENG: Tak tu máme zástupný symbol pre reťazec a celé číslo, nie? Takže ak ste boli prejsť nich, počítač to nebude vedieť. Bude to pre kontrolu reťazec, a ak sa pokúsite dať int, že to bude ako počkajte, som zmätená, vás Povedal mi, že by mal byť pridelením pamäte pre int. A práve tu, keď očakáva, že celé číslo A vy ste to pomenovať a reťazec namiesto toho, je to tiež bude veľmi mätúce, ho nepobeží presne tak, ako potrebujete. Tak tu, menovať a syntax je veľmi dôležité pre spustenie kódu. Všetci dobre? Jo. Maddie. Maddie: Tu Viem, že sme sa pozrel na príklady v triede, kde sa pýtajú Aký je váš vek, aké je vaše meno. Tu by som, že nech už je to doesn't-- ak by sme mali spustiť tento kód, to by sa pýtať na to? Ale by ste stačí zadať dve čísla a potom by bežať takto? ANDI PENG: Jo, presne tak. Takže ak by ste chceli na to, aby display, prosím, zadajte váš vek, stačí pridať funkciu printf () , Ktorý hovorí, Prosím, zadajte svoj vek, nad ňou. To je dobrá otázka. Jo. SPEAKER 9: Tak, už bude zahrnuté v GetInt () [nepočuteľný]. ANDI PENG: Nie, to vlastne nie je. Tak toto všetko robí, je len vyzve prázdnu obrazovku pre daného používateľa na vstupnú niečomu. Ak budete chcieť, ak chcete vytlačiť out niečo, čo rozpráva užívateľa, ako, prosím, daj mi váš vek, potom vám bude musieť printf (), ktoré sami. Vzhľadom k tomu, každý používa tento funkcie pre rôzne veci, mohli by ste byť ukladanie veku, mohli by ste byť ukladanie adresu, mohli by ste byť ukladanie telefónnych čísel. A tak je to naozaj len na jednotlivé použitie u vašich obchodíky za to, čo chcete, aby to povedať. Jo. SPEAKER 10: Takže, len aby objasnila, kde robiť vám zadať meno a vek tak, aby sa objaví na mieste% s? ANDI PENG: na používateľa? SPEAKER 10: Áno, rovnako ako Ako to mám urobiť aby to-- kam som dal Andi, a kde som dal 20? ANDI PENG: Jo. Takže ak ste sa v skutočnosti spustiť tento kód, Nie som vlastne beží kód, to je len tu práve teraz. Ak by som mal spustiť kód, urobil by som to kompilovať kód, aby sa súbor, spustiť kód, a potom by byť len dve medzery pre mňa VSTUP. Jo. Vy uvidíte, keď budete hrať okolo s kódom sami. Dobre budeme pohybovať do ďalšej časti, čo budeme pokrývať dnes. Chystáme sa ísť nad tým, čo podmienené príkazy sú. Takže ak vy pamätať a odvolávať ich z prednášky, podmienené príkazy, všetci sú sú súborom pokynov k počítaču ktoré v prípade, že určitá podmienka je pravda, spustiť kód Vnútri tejto podmienky. Takže v podstate Scratch-- veľký téma odo dneška je to, že vy už všetko Videl logiku všetko že sme krytina. A všetko, čo robíte, je preklady niečo, že je veľmi intuitívne Scratch, a tvrdo ho kódovanie do syntaxe budeme používať pre triedu, ktorá je C. Takže logicky, to všetko bolo blok je to, že kus kódu priamo tam. Jo. OK. Tiež sme sa dostať do if ... inak Vyhlásenie, ktoré je len pridaná vrstva zložitosti na if kde počítač sa pozrieť na to a vidí, ak je táto podmienka pravdivá, vykonajte čo je vo vnútri týchto dvoch konzol, else-- takže niečo ako predvolené, ak to nespĺňa condition-- to. Je to ako rázcestie. Ak prší vonku, som dal na pláštenka, niečo iné inak Nechcem dať na pláštenka. Znamená to, že logika zmysel pre každého? Super. Dobre. Takže ako pevný príklad to, že by sme vidieť v C je, keď som chcel vytvoriť premennú s názvom domáce úlohy hodín. A ak domáce úlohy hodiny menej ako päť, hovorím Život je skvelý. Je to úžasné. Avšak, hovoria, že boj je real-- čo je to, čo všetci na tomto pondelok popoludňajšie up Science Hill sú pravdepodobne robí práve now-- Divákov: [smeje sa] ANDI PENG: Majú spôsob, ako by, ďakujem vám za to. Spôsob, akým by sme napevno to v C je if-- predpokladajme už máme premennú typu int volal domáce úlohy hodín tu. Ak domáce úlohy hodín je menšia ako Päť printf (), Život je skvelý. Nezabudnite držať / n, pretože Chcete nový riadok po. Else tlač, boj je skutočný. Má každý pochopiť, ako Aj prešli z tohto bloku do tohto bloku kódu? Super. Dobre. Takže teraz budeme sa pozrieť na viac príkazov, ak vôbec. Takže poďme predpokladať Účelom tohto programu bolo, že sme výzvu pre platové triedy. My prompt pomocou GetInt () pre stupeň, a vstupnú hodnotu, a chcete zobraziť aký typ triedy dostali. Takže ak by som mal navrhnúť program, ja znamenať, typicky vo všetkých našich očí, 90-100 je A, 80 až 90 je B, a tak ďalej a tak ďalej. Čo je zlé kus kódu, ktorý to nie je robiť to, čo chcem, aby to robiť. Jo. SPEAKER 11: Majú nižšie limity, ale nemajú hornú hranicu. ANDI PENG: Presne tak. Vari všetci počuť, čo povedala? Tam to bude horná limity, ale nie je nižšie limity. Ospravedlňujeme sa, ale naopak, spodné limity, žiadne hornej hranice. Takže by ste chceli sa pichnúť do hovorí čo by byť vytlačené na toto Obrazovka keby som spustením tohto kódu. SPEAKER 11: chyba? ANDI PENG: chyba? Skvelé hádať, nie je úplne v poriadku. Má niekto iný stab? Jo, Aaron. AARON: Ak máte dať do niečo vyšší ako 90, to by ukázať všetky stupne, čo máš. Ukázalo by ste sa dostali k A, máš B, máš C. ANDI PENG: Jo. To je presne to pravé. Tak, to by bolo skvelé. Avšak, sú navzájom exkluzívny, myslím. Ak by som mal spustiť tento kus kódu. A potom nech to len povedať, že som zadané akostnej triedy 95. Takže 95 je teraz uložený v Int volal stupeň. A tak C je jazyk že vybehne zhora nadol, tak to bude vždy bežať až na dno. Takže to príde sem, čítať, pokiaľ stupeň je väčšia než alebo rovná 90, printf (), ste sa dostali k A. Skvelé, som majú 95, ktorá je väčšia ako 90. Bude to k tlači, Mám A. To sa deje aby sa na to pozrieť, pokiaľ to ide hovoria, no 95 je tiež väčšia ako 80, to bude tlačiť tiež dostal GOT B výkričník, a tak ďalej a tak ďalej. Takže ako môžeme všetci vidieť, to je obyčajná chyba ktoré môžu nastať, keď sme písanie kódu dávať pozor. Ktokoľvek, akékoľvek otázky týkajúce Prečo, čo sa deje? Skvelé. OK. Tak ako sme sa opraviť, je samozrejme logickým ďalšia otázka. No, máme tieto krásne veci zvanej ak else if iný ak else. Takže môžete vidieť, ak ste chceli zmeniť tento problém, ste chceli, aby sa každý z Podmienky vzájomne sa vylučujúce, by ste pridať else ... if. A to z course-- uvažovať o nich ako rebríky, alebo ako priečky na strane ladder-- môžete pridať toľko, koľko z nich ako vy Chcete pre toľko podmienok, ako budete chcieť. Tak tu, keď som zadaná triedy byť 95. Ak je stupeň je väčšia ako 95, printf (), mám A. Skvelé. Bude to vidieť else ... ak a bude to vedieť, Ach nie, Už som popravený prvý inde. Aj víš-- alebo prvý if-- viem, že Nechcem sa pozrieť na niektorý z nich preto, že jeden z nich je už true. Takže to bude bežať od zhora nadol. Akonáhle sa prvý z nich je pravda, potom to bude preskočiť všetky ostatné z iného ... IFS. Dáva to zmysel? Takže týmto spôsobom máte rôzne úrovne kontroly a akonáhle sa raz z nich je false, Zvyšok sú tiež, nebudú ani kontrolovať. Super. Dobre. Tak to je príklad iný druh podmieneného príkazu vidíme menej často, ale my ich uvidíme a ich použitie. A oni sú často viac efektívne pre určitých prípadoch. Takže máme to, čo sa nazýva vyhlásenie switch. Takže ako sme prebrali, čo to inak vyhlásenie, if ... else. Tu máme to, čo sú volal príkazy switch. Takže keď máme používať prepínač Vyhlásenie je kľúč? Takže switch, vy obvykle, typicky, v skutočnosti vám slúži len pre vstup celé čísla s vaším premenná, ktorá máte kontrolu. Takže keď som chcel skontrolovať, ak určitá number-- napríklad stupeň, keď som dostal 90. Chcem, aby zistil, či to je A, B, alebo C, mohol by som mať prípad tu. Avšak, prípad má ako ďalšie konštantné. Takže v tomto zmysle, switch môže iba skontrolujte rovnosti dvoch čísel. To nekontroluje pre nič iné. Takže to je niečo, čo sa veľmi opatrní, keď ste pomocou tohto. Tak tu, keď som chcel skontrolovať, ak má stupeň 90 sa rovná 90 alebo 80 alebo 70 alebo 60, a potom tlač zodpovedajúci stupeň, Ja by som bol schopný napísať, že v príkaze switch. Takže to príde sem, kontrola je to celé číslo rovnajúce sa tejto konštanty? Ak nie, bude to preskočiť. Je rovný konštantný dva, a tak ďalej a tak ďalej, kým nenarazíte predvolené, ak žiadny z nich sú rovnaké. Akonáhle jeden z nich je nastavený na rovnaké, že to bude, ako to urobiť riadok kódu a prestávky. Čo znamená, že to bude hit, že run, break, a len celkom preskočiť do spodnej časti kódu. Takže v tomto zmysle druh funkcií ako if else if else if vyhlásenie. Takže tu je betónová Príkladom pre vás. Takže predpokladajme, že som chcel vytvoriť premennú s názvom Rok založenia. A chcem, aby výzvu k vstupu rok, že ich škola bola založená. Takže môžem vytvoriť príkaz switch tu. A povedzme, som sa vstup 1636. Tento kód je tu uvidí prepínač Rok založenia čo sa rovná 1636. Bude to vidieť veci 1.636, ach tie sú rovnaké, printf () Nemali by ste byť V tej škole na severe? Pretože predpokladáme, že nie ísť sem, ak idú na Harvard, zlomiť a preskočiť na koniec. Keby som bol na vstup 1701, ktorý Predpokladám, že všetci z nás by vstup, to by preskočiť tento prípad, poď dole prípade dvoch, čo je 1.701, a tlač Vitajte na Yale! Prestávka, preskočiť na koniec. Else pravdepodobne užívate tento kurz on-line, v ktorom case-- úžasné privítanie na Yale-- to bude ísť do default tlač, Hello Internet! A zlomiť. Jo. SPEAKER 12: Môžete použiť iný miesto v predvolenom nastavení tam? ANDI PENG: Nie, pretože tak, že celá táto funkcia switch je postavený, syntaxe vám je potrebné použiť, je prípad prípad predvolené. Je to ako v prípade iného, ​​ak to raz je to prípad prípad predvolené. Jo. SPEAKER 13: Tie možno už povedal, ale môžete mať viac ako dvoch prípadoch? ANDI PENG: Jo, mohol by si mať toľko prípadov, ako chcete. Ber to ako rovnako ako nekonečne pridávanie ďalej. SPEAKER 14: Ak sa vám prešiel 1701 s 1636, to nie je naozaj rozdiel v poriadku? Je to len bude možné kontrolovať za to. ANDI PENG: To je naozaj dobrá otázka. A budeme dotýkať neskôr, ale len vieme, že to je prepínač tvrdenie je, že je to infinitely-- účinnejší než to, a ak else if, pretože to funguje použiť iný typ funkcie, ktoré vám umožní, aby v podstate, len preskočiť priamo na prípad, musíte byť na adrese. Jo. SPEAKER 14: cool. Vďaka. ANDI PENG: Jo SPEAKER 14: A vy ste nemohol robiť veci ako a väčší ako. ANDI PENG: Nie. Tak, to je to, čo sa o obmedzení Príkaz switch je, že máte mať iba konštanty, iba celé čísla. Jo. OK. Tak to je niečo, čo vás Chlapi sa stretávajú menej často, ale ja som len chcel zaviesť ju do puzdra. Máme tu čo je volal ternárnu operátor. Tam, kde v podstate, je to len ako if zostavené do jedného riadku. Tu, pôjdem na ďalšie linky, ďalšia stránka, pretože je lepšie vidieť. Takže sme všetci videli, toto právo? To je celkom jednoduché sledovať. Keby som chcel, aby premennú s názvom reťazca s názvom s, v prípade, že určitý počet Aj dať, že je nižšia ako 100, I chcete priradiť nízko na reťazec, čo by som chcete priradiť vysoké. Tu robí presne to isté tých osem riadky kódu robia. Takže tu chcem vytvoriť premenná reťazec. A to je podmienka, že som kontrolu, ak je číslo nižšie ako 100, potom priradiť hodnotu nízka, inak priraďte hodnotu vysoko. Tieto snímky budú on-line, žiadne starosti či vy nechcete dostať to dole. To je len jednoduchší spôsob, viac efektívny spôsob písania kódu. OK. Takže teraz budeme zadajte čo, pre väčšinu ľudí sú ako veľmi, veľmi mätúce vec, premýšľať o tom, na prvom mieste. Sekcia slučky. Takže dnes, budeme hovoriť asi tri typy slučiek. Chystáme sa začať s nejakou chvíľu slučka, potom hovoriť o robiť, zatiaľ čo slučky, a potom sa hovorí o pre slučky. Takže v podstate, pre viac vizuálne študujúci tam, Máme v podstate grafickej zobrazenie, čo while robí. A tak v programovaní, mali by ste začať a vstupom do slučky v určitom okamihu. Môžete skontrolovať stav. A v prípade, že je splnená podmienka spustiť kód vnútri. A vy ste sa vrátil okolo seba a skontrolovať. Ak je to pravda, že ste stále udržujú v prevádzke Tento kód dookola v slučke. Avšak, druhý, že podmienka false, budete zlomiť a ukončiť slučku. A to je v podstate syntaxe budete používať. Kým určité podmienky pravda to, ak to nie je pravda, budete preskočiť na koniec a pokročiť s programom. OK. Má niekto príklad o tom, čo sa môže stať, potenciálne ak sa pokúsite spustiť tento kus kódu? Mimochodom, to je Scaz SAJ--, Andi, Jason-- budeme podpisovať naše e-maily, Láska, Saj. To sme my. OK. Každý, kto má príklad, alebo máte predstavu o tom, čo by to tlačiť? Druh chyták. Takže tu, pamätáš podmienku sme kontrola je pritom pravda. Takže keď je to pravda, je to do tlače, milujem Saj! Existuje nejaký bod, v ktorom by sme si zmeniť na niečo iné? Nie, nie? Takže tu máme stretli, čo je pravdepodobne bude odpočúvanie veľa vaše programy, nekonečné slučky. Zistíte, že ak vás spustiť tento kus kódu, je to len bude mať tlač, milujem Saj! Aj keď oceňujeme podporu, nechceme počítačov naraziť, pretože vás pokračovať v tlači Milujem Saj! Takže, prosím, prosím, vyhnúť nekonečnej slučky pretože to nikdy vyhodnotiť na hodnotu false a vy nikdy opustiť slučku. A vy budete nasať navždy. Super. OK. Druhý typ slučky budeme hovoriť o dnes je robiť, kým slučka, robiť, zatiaľ čo slučky. A to sa hovorí robiť, zatiaľ čo slučka pretože máte robiť a chvíľu. Tak to je celkom podobný chvíľu slučka, ale trochu inak. Tu budete robiť čo je vo vnútri tohto zatiaľ čo určitá podmienka je pravda. Takže keď som bol C a počítač Som stekali tento kus kódu, Som sa pozrieť na vrchole. Chodím do C, hovorím to učiniť. A potom som skontrolovať, zatiaľ čo tento Je pravda, musím opakovať. Ale keď je táto falošná, potom som sa pohnúť dopredu a nikdy som sa vrátiť k tomu slučke znovu. Môže niekto vziať stab na aký je rozdiel medzi tejto slučky a tá, ktorú sme len sa na to prakticky. Jo. SPEAKER 15: Podmienka prichádza po tom, čo namiesto toho predtým? ANDI PENG: Presne tak. Takže povedala stav prichádza po, nie skôr. Nakoniec, je rozdiel medzi týmto a while je to, že ste len robiť čo je vo vnútri to bez ohľadu na či je alebo nie je váš stav je pravda, a potom skontrolujte stav. Takže v tomto prípade, že ste always-- týmto spôsobom, ste vždy uistiť, čo je vo vnútri beží aspoň raz pred kontroluje, ak chcete, aby znovu spustiť. A tu je príklad kedy by sme ju použiť. Tak napríklad, ak som chcel mať premenná typu int pomenované vek, a ja chcem vyzvať užívateľ na ich vek, Budem robiť printf () Koľko máš rokov? vek = GetInt (), ktorá je upozornenie užívateľa. A niektorí ľudia budú naozaj otravné. A nechcete chyby vo vašom Program niekoho zadanie, ako, oh Ja som negatívny 4 rokov alebo čokoľvek iného. V takom prípade, ak to urobiť, to hodnotí na hodnotu true, čo znamená, že budem musí ísť ďalej späť a robí to. Takže to bude mať re-vyzvanie užívateľa dať vám skutočnú číslo vek a je to bude neustále vracať a prerobenia to, kým sa vám skutočný vek väčší ako jedna, alebo nie je nulová. Takže nápoveda, pomocník. To bude veľmi, veľmi užitočné pre jednu z vašich problémov pset. Jo. SPEAKER 16: Och, prepáč. ANDI PENG: Jo. SPEAKER 16: Existujú, nie byť kretén, ale-- ANDI PENG: Žiadne obavy. SPEAKER 16: --are tam rôzne pravidlá tu, alebo ste jednoducho zabudol dať ponuku? ANDI PENG: Oh áno. Je nám ľúto, že je úplne moja zlá. To bol určite mal byť citát. Dobrý úlovok. To by sa nedá spustiť. OK. Takže posledné typom slučky porozprávame o a, v konečnom dôsledku, druh najviac Komplex je pre slučke. Nebojte sa, ak nemáte Viete, čo to znamená. Je to docela mätúce na prvom mieste. Pôjdeme cez príklad. Všetko, čo sa deje v pre sláčiky je, že máte tri vyhlásenia že budete zahrnúť. Takže pre určitú vec, že ​​ste chystá inicializovať premenné. Ak budeš pridať podmienku ktoré táto slučka bude udržiavať v chode. A potom, na konci slučka, budete ho aktualizovať. Môžete aktualizovať premennú že chcete sledovať. Tak sme sa zvyčajne používajú pre slučky, keď sme my chcete spustiť slučku pre určité množstvo časov a už vieme, Oh chcem táto slučka vykonať ako 10 krát, potom do-- pôjdem cez príklad na ďalšej strane. Tak tu napríklad v Scratch, ak ste chcel niečo opakovať 10 krát, všetko, čo musel povedať: opakovať 10 krát Milujem Saj! ktorý je prijateľnejšie prehliadka podpory pre nás skôr než nekonečnej slučky. Tu, ako by ste Prechod na C a písať že je pre int-- budem vytvoriť alebo deklarovať premennú typu int som pomenoval. Chystám sa inicializovať je na 0, takže i = 0; a to bude môj stav. Tak som je menšia ako 10. A potom u end-- Posledné tvrdenie, že ste bude mať, je aktualizácia čo sa stane s variabilnou aj na konci svojho cyklu for. Takže je to trochu mätúce, pretože Rôzne časti tejto línie sa dejú pri rôznych druhy slučky. Ale ja pôjdem viac ako pseudokód príklad, ktorý a možno to vysvetliť len o niečo lepší. Tak tu. To je slučka sme práve videli. V podstate v pseudokódu, čo sa deje v tomto programe, je prvýkrát som vytvoriť i, inicializáciu na 0. Som kontroluje, či som ich menej ako 10, a v takom prípade prvýkrát, že je preto, že 0 je menšia ako 10. Tak slučky bude bežať. A potom budem vytlačiť tento riadok. A potom sa na konci tohto riadku, vpravo tu, budem robiť prírastok i, i ++, všetko, čo znamená, postupne ju po druhom. Tak som je teraz 1. Pretože to bolo kedysi 0, keď som prírastok je to, že je to teraz 1. A potom budem späť na začiatok slučky a ja skontrolujte stav. Je stav stále platí? Áno, 1 je stále menej ako 10. Takže to bude tlačiť znova, ísť a potom aj prírastok, a skontrolujte podmienka kontinuálne, kontinuálne, až sa nakoniec dostal do okamihu, keď je aj 10. Budeš vytlačiť tento 10 krát a potom som sa bude rovnať 10. Budeš kontrolovať stav. Je o 10 menej ako 10? Nie, že je nepravdivé. Preto je táto slučka nebude spustiť, bude to zlomiť, a vy budete Pokračovať na kóde. Tak ako vy môžete vidieť, toto Je to naozaj skvelý príklad zo slučky môžete program v tom, že beží na zadanú dobu. Každý jeden jasný? Jo. SPEAKER 17: Ako sa o prírastok exponenciálne, je to rozdielne kódovanie? ANDI PENG: Vy can-- pôjdeme cez toto v ďalšiu snímku. Dobrá otázka. Je anyone-- než som sa pohnúť on-- vôbec niekto zmätený, pretože sa jedná o naozaj ťažké koncept. Žiadne starosti, ak you're-- OK. Super. Dobre. Len všeobecný šmykľavka. Tento cyklus while sa robí presne to isté cyklu for bolo. Je to práve napísal inak. Vy môžete preštudovať zábery na vaše pohodlie neskôr. Ale viem, že tam je mnohonásobný spôsoby písania rovnakú vec sa stane s rôznymi slučkami. OK. Tak, teraz sme sa dostať na otázku, čo ak máme slučku vnútri slučky. Sme stále v reálnom Inception typ veci tu. Keď chcete robiť veci násobok Časy vnútri ďalších vecí že robiť veci viackrát, vám chcú to, čo sa nazýva vnorené pre slučku. Pre tých z vás, ktorí ako prvý vidieť a si veľmi zmätený, všetko tu robíme má cyklus for kde máme premennú riadku. Ale vo vnútri nej, máme aj ďalšie na slučku premenlivé zvanej kolóny. A ja som veľmi naznačujú, všetky z vás, ktorí sú zmätení najprv udržať track-- kresliť na to, čerpať na to. Nesnažte sa oprávneného dôvodu cez to, vytiahnite ju. Vo vašej hlave, na tento kus papier, alebo čokoľvek, písať riadok, sledovať, čo riadok je rovný. Napíšte stĺpec, sledovať z toho, čo stĺpec je rovná. A sledovať, čo je vytlačiť s každou iteráciu. Každá iterácie tejto slučky, každá iterácie tohto väčšie slučky, len držať Podľa logiky. A ja vám zaručiť, budete milovať to, čo vidíte, pretože to je tiež veľmi použiteľný pre vaše problémové sady. Super. Dobre. Takže najdôležitejšia vec že vy ste asi všetci premýšľať o práve teraz, sú váš problém nastaviť 1s, ktoré sú splatné štvrtok / piatok. Vo vašom water.c programu, nápoveda budete mať na výzvu pre vstup. Vo vašom programe mario.c budete mať používať vnorené pre sláčiky, čo je A pre slučku vnútri slučky for, vytlačiť blok pyramídy, v podstate rovnako ako to, čo Mario musí preskočiť. A potom vnútri greedy-- alebo možno Tvorba zmeny, ak niekto z vás chlapci ste niekedy počuli o that-- budete musieť byť veľmi pozor na prvých desatinné čísla. Pamätajte si, plávajúce desatinné miesta a celé čísla nie sú to isté. Sledujte z ktorých jeden je ktorý. A vy budete používať podmienené príkazy, rovnako. Dobre, posledná vec. Mám pár minút odišiel. Style. Tak to je niečo, čo nie je v skutočnosti vplyv na účinnosť, alebo skutočný beh vášho kódu. Avšak, to nás ovplyvňuje as Vaše porovnávače, ako vaše čitateľa. To spôsobí sami, ak ste sa snaží nájsť problém. To ovplyvňuje čitateľnosť kódu. Takže štýl, ako keď sa snažíte štýl esej pre angličtinu, ak nemal odseku, máte všetko druh z neusporiadané spoločne na jednom riadku, ju je pre každého, je to naozaj ťažké si prečítať esej, aj keď vaše body sú logicky zvuk. To isté v programovaní. Môžete mať strašne temný kód, ktorý Scaz sa budú týkať, a to môže ešte bežať a funkcie. Ale pre nás, vaše krásne TA, ktorí budú byť čítanie a vyhodnocovanie svojej PSets, to nie je moc pekné. Takže, prosím, v záujme z nás a seba, keď sa snažíte opraviť problém v kóde, a snažíte sa čítať vlastný kód, aby istí, že sa budete držať niekoľkých konvencie že budeme ísť cez. Tak ako prvý. Dajte svoje premenné zmysluplné názvy. Ak chcete uložiť číslo volal vek, prosím vymenovať to vek. Nepoužívajte meno jej výšku. Keď sa snažíte uložiť veku na výšku, to robí všetko veľmi mätúce pre nás. Neradi sa zmätený. Nemáš rád byť zmätený. Nikto nemá rád byť zmätený. Ak sa chystáte vytvoriť niečo, pomenovať to niečo zmysluplné. Avšak, v pre sláčiky, single charakter premenné sú zvyčajne v poriadku. A v pre sláčiky, ak chcete som, a j, k, neváhajte jednoducho urobiť. Konzistentné inicializácia. Takže čo to znamená? To znamená, že technicky, teoreticky, môžete iniciovať a vytvárať viac premenných na rovnakom riadku. Tak napríklad je možné vytvoriť celé číslo s názvom scaz_age, a celé číslo zavolal andi_age = 20, a predstavuje celé číslo s názvom jason_age na rovnakom riadku. A môžem tiež priradiť iba jednu oni a nie ostatné na hodnoty. Žiadame vás, prosím, nerob to. Pretože tu ste v podstate vytvoril tri premenné, ale iba jeden z nich v skutočnosti má hodnotu. A potom, keď sme sa snažia čítať váš kód, alebo ak sa snažíte opraviť problém v kóde, je to veľmi mätúce nasledovať. Tak práve pre Vašu čitateľnosť, pre náš čitateľnosť, nerob to. Konzistentné zložené zátvorky. Niektorí ľudia chceli, aby ich zložené zátvorky na rôznych miestach. Je to naozaj nezáleží. Len sa uistite, že ste konzistentné vo vašom vlastný kód na tom, kde budete chcieť dať im. Konzistentné priestor. Ak dáte medzeru po pre sláčiky, vždy urobiť. Nepoužívajte len rád trochu to na niektoré miesta, nerobte to v iných. Len byť konzistentné. Po druhé, ak by sa niekto chcel nazerať Štýl Sprievodca CS50, máme oficiálne mať sprievodcu, ktorý štýl vám povie, všetky z týchto dohovorov, a ďalšie. Je to on-line. Je to ako cs50.net/style~~pobj alebo niečo také. Môžete Google ju. Konzistencia je kľúčové. Takže nebojte sa, čo ostatní ľudia robia, len sa uistite, že ste konzistentné v rámci vlastnej kód. Každý, kto má nejaké otázky o tom? Jo. SPEAKER 18: Takže sluší čo do činenia s inicializácia je jednoducho ich všetky v samostatnom linka, je to, že to, čo hovoríte? ANDI PENG: Tak som si málokedy sa to stalo. Ale ak ste chceli, ak ste chceli byť ako úspory miesta v kóde, alebo čokoľvek, môžete to urobiť. Žiadame vás, aby ste jednoducho nemajú inicializovať jedna vec, a nie ostatné. Takže ak chcete urobiť int scaz_age, int andi_age, int jason_age, to je v poriadku. Len to nie jeden inicializovať a nie ostatné je všetko. Otázky? Dobre. Chystám sa prejsť off mikrofón, a laserové ukazovátko, a obušok na Scaz v tomto bode. To je trápne. Tu je to. BRIAN SCASSELLATI: Ďakujem. Ako to, že pre zvuk? Zvuk je dobrý? , Výborne. OK. Takže, ahoj všetci. Budem sa snažiť pracovať prostredníctvom praktický príklad s vami. A budeme používať CS50 je vývojové prostredie, čo sa nazýva integrované vývojové prostredie. A videli ste to preukázaná v prednáške. A v problémových Set 1, ty si bude mať príležitosť ju používať, a pohrajte sa s to, a zvyknúť na to, pretože budeme používať po zvyšok semestra. Takže v tomto IDE, máte to, čo vyzerá ako veľmi tradičné prehliadača súborov viac ako na jednej strane. Máš časť hore top, kam idete vidieť zdrojového kódu, vaše CFile, kód, ktorý píšete. A dole dno, budete majú okno terminálu ktoré budete používať na ako zostaviť svoj program a spustiť, alebo spustiť program. OK. Takže len, aby nám trochu nadácie, v tomto okne terminálu, budete mať pomocou sady príkazov že sú štandardné príkazy v celej väčšina unixových alebo Linux. A tak ak ste niekedy používali akákoľvek forma Unix, Ubuntu, alebo niektorý z ďalších príchutí, tieto sú bude vyzerať povedome. Ak nemáte, nezúfajte. Na tom nie je nič zložité o nich. Sú to len pomocou iný syntax, iné pomenovanie konvencie, než ste ešte nevideli. Tak, aby sa zoznam súborov v určitom adresári, že idú použiť Príkaz ls volal, alebo Zoznam. Ak chcete vidieť všetko so všetkými detailmi, budete používať príkaz línia argumentácie s ls -l. A to vám ukážem všetko podrobnejšie, vrátane oprávnenia pre súbor. Ak chcete zmeniť adresár, budete pomocou príkazu cd. A budete mať možnosť zmeniť adresár ako ísť do svojho domovského adresára. To je len cd úplne sám, CD s dvoma bodky sa vrátite do jedného level do svojho predchádzajúceho adresára. A môžete tiež CD-ROM na podadresár zadaním cd a názov tohto podadresára. Môžete tiež vytvárať nové adresáre. A ideme na prechádzku cez to v chvíľku. Ale len dať všetko, čo na obrazovke. Tak, že ich môžete vidieť. Budete mať tiež možnosť manipulovať súbory priamo z príkazového riadku. Budete mať možnosť skopírovať, aby presunúť, alebo ich odstrániť, to znamená, že účinne, je odstrániť. CS50 IDE vám dáva plný Sila argumentov príkazového riadku. A to znamená, že môžete tiež robiť veľmi nebezpečné veci. OK. Napríklad, môžete odstrániť, alebo že je odstránenie, súbor bez pýtania pre potvrdenie. A môžete dokonca odstrániť recursively-- to je čiarka r flag-- celý podadresár a všetok jej obsah. OK. Sú uvedené v červenej farbe, pretože tebe by mal premýšľať "nebezpečenstvo" zakaždým, vidíš tie veci. OK. Dobre. Teraz napokon, veci, ktoré sú bude naozaj cenné pre vás, sú tam niekoľko dobrých trikov vedieť, ako ste navigáciu cez toto okno terminálu. Po prvé, môžete vymazať obrazovku kedykoľvek jednoduchým zadaním v jasné. A vy budete vidieť ma to urobiť pomerne často. Môžete tiež len zobrazovať text súboru zadaním viac a potom názov súboru. Potom budete mať možnosť posunúť späť a tam sa to len s medzerníkom a šípky. Ak máte, ako sme to urobili dnes v prednáške, program, ktorý beží nepretržite v nekonečnej slučke, vy môže zastaviť tento program z vykonávania zadaním pod kontrolou, že je pridržaním Control-C. A možno budete musieť urobiť, tento viackrát. Počítač dostane ďaleko pred vami. A musíte niekedy dať mu pár pokusoch pred tým, než bude skutočne prejsť. Budete mať tiež možnosť roztriediť príkazov ktoré ste práve zadali pomocou hore kľúč, šípka kľúč, a potom tlačidlo šípka dole. A čo je najužitočnejšie je miesto písania sa dlhé názvy súborov, budete môcť pre použitie na karte Automatické dokončovanie niekoľko inštrukcií. Teraz budeme demonštrovať všetky tie, v len sekundy. Takže ak si nepamätáte je, nebojte sa. To sú veci, ktoré budete vyzdvihnúť a použiť ako ideme ďalej. OK. Takže na rozdiel od C- v Scratch-- C je skompilovaný jazyk. To znamená, že budeme mať zdroje file-- to je text, ktorý píšete, príkazy, ktoré píšete sa printf () vyhlásenie, slučky, všetko else-- a ideme aby sa tento súbor a odovzdať ju na program s názvom kompilátor. Kompilátor potom prevezmú že text, ktorý ste napísali a preložiť ho do binárne inštrukcie že váš počítač je vlastne bude využitie. Tomu sa hovorí objekt alebo spustiteľný súbor. Ak sa pozriete na tento súbor, budete vidieť kód, ktorý ste napísali. Ak sa pozriete na tento súbor, budete vidieť náhodnú postupnosť znakov že nemá zmysel vôbec. To preto, že sa jedná o binárny. To nie je určený pre vás bude čítať. Avšak, kedykoľvek budete chcieť spustiť niečo, čo budete byť spustený, je tento objekt súbor. Takže keď sme sa pracovať s týmito súbory, budeme písať súbor v C. Budeme potom ho kompilovať, pomocou Príkaz, ako je make, ktorý sa bude odvolávať kompilátor zvonenia pre jazyk C. A to bude produkovať objekt súbor, ako von, alebo v tomto prípade, meno, môj súbor, ktorý som dal dovnútra. Dobre. Takže poďme sa skutočne snaží toto. Takže som prišiel s príkladom z toho, čo som chcel skúsiť. A jedna z vecí, ktoré Fascinuje ma je animácia. Takže budeme snažiť robiť trochu animácie s použitím iba ASCII znaky. Postavy možno ľahko vytlačiť teraz. Tak tu je môj najlepší pokus vytvoriť pre vás animácie zajačik beh cez vysokou trávou. Tu je. OK. Takže on nie je spustená ešte, ale je to stál vo vysokej tráve. Teraz, keď by som bol animátor, v starej škole verzia animácie, čo som by som urobiť, je by som vyrábať obraz tohto zajačik v tráve. A potom by som vyrábať ďalšie picture-- Ďalším, čo oni volali, že cell-- mal králiček len nepatrne pohol. A potom tretí jeden, ktorý mal zajačik sa posunuli o kúsok ďalej. A ja by som vyrábať celý Sekvencie týchto buniek. Niektorí kde králiček je u konca na ľavej strane. A potom sa pohybuje pomaly, jeden jedným smerom ku stredu. A potom od polovice nad doprava. A keby som bol vtedy naozaj šťastie, mohol by som dať dohromady a ja som ich mohol oživiť. A tu je moja bunny beh cez trávu. To je môj veľký PowerPoint trik na deň. OK. Tak toto je tak dobrý, ako to dostane. OK. Takže, tu ešte raz, tu je naša zajačik beží trávou. SPEAKER 19: Opäť. BRIAN SCASSELLATI: One viac času, v poriadku. Tam je váš králiček. OK. Takže dnes to, čo budeme urobiť, je ideme pokúsiť sa automatizovať proces výroby týchto buniek. Nebudeme úplne dostať do bodu je schopný ich všetky dohromady. Ale budeme sa snažiť pre automatizáciu proces generovania tejto sekvencie. A to je veľa z čoho Animácia je dnes podobne. To znamená, že nemusíte robiť veci nutne kreslenie všetko po ruke. Používame počítača k automatizácii časťami tohto procesu. OK. Dovoľte mi teda prepínanie Teraz k našej CS50 IDE. A ja som vytvoril pre us-- a nechať me priblížiť tu trochu bit-- som vytvoril pre nás východiskovým bodom. Zakaždým, keď vás žiadame sedieť dole a napísať kus kódu, to, čo sme vás naozaj žiadaš je žiadame, aby vyriešiť problém. A tak, že ste mal premýšľať o tom, že sa tým, že začína s niektorými jednoduchý súčasťou tohto riešenia. A potom vytvoriť z tejto časti. A to je to, čo budeme robiť dnes. Takže skôr než sa snažiť všetko naraz napísať celú veľa kódu, ktorý je bude vyrábať tie, 10 animácie bunky, budeme namiesto toho začať s jedným kusom, ktorý funguje. A potom budeme stavať Trochu okolo toho a trochu viac a trochu viac. Teraz je dobrá vec, o Riešenie problémov týmto spôsobom je to, že vám umožní začať vždy s niečím, čo poznáte práce a zaviesť jeden postupnú zmenu. A to je skvelý spôsob, sa dozviete, ako sa kód, preto, že zakaždým, keď urobíte zmena, vidíte, aký vplyv to má. OK. Tak tu je náš východiskový bod. OK. Takže na začiatku môjho súboru, Mám hash #included stdio.h. To je tak, že môžem získať printf () funkcie k práci. Potom som mám hlavnú funkciu. A to stále vyzerá trochu Arcane alebo obskurní pre niektoré z vás. To je v poriadku. Všetko, čo to hovorí, je to, že Hlavné funkcie trvá no arguments-- void prostriedky nič v C., a to vracia podľa konvencií celé číslo. Hlavný vždy vráti celé číslo, obvykle kódu hovoria veci išlo dobre, alebo nešiel dobre. OK. Ale hlavné je, aby toto Formulár pre nás práve teraz. Ja som potom dal v troch riadkoch kódu. A spolu s každým riadkom kód, Ja som dal komentár. A teraz jedna z vecí, ktoré budeme trvať na tom, čo robíte, a je to tak dôležitý programovacie praxe, je vždy vyjadriť váš kód. Vždy zapísať An Anglický komentár niečo že si myslíte, že Kód má robiť. Tak, neskôr, keď sa vrátite do to, môžete sa pozrieť na to, a vy môžete povedať, oh, Spomínam si, čo som bol sa snaží robiť s tým. Alebo keď TA sadne s vami snažiť, aby vám pomohol v úradných hodinách, oni sa pozrieť na to a ísť, ja vidieť, čo sa snaží robiť, ale namiesto toho je to čo sa skutočne deje. OK. Tak som dostal tri časti mojom kódu, Chystám sa predovšetkým tlače out niektorých bodky na začiatku. Budem potom vytlačiť my extrémne fantázie zajačik. A ešte niečo trochu bodiek na konci. A tieto tri tlačové vyhlásenie by malo byť povedomá pre vás v tomto okamihu. Všetko, čo robím v každý z nich je, že som vytlačiť postupnosť znakov. Tam je zapojené žiadne premenné. Všetko je len plochá. OK. Takže keď som sa ísť dole teraz k môjmu terminal-- uvidíme, či môžem dostať to späť out-- a budem písať opäť voľná. SPEAKER 20: Musíme použiť dvojitá lomka vyjadriť? BRIAN SCASSELLATI: Môže použite double-- áno. K dispozícii je niekoľko spôsobov, zanechať komentár v C. One spôsob, ako ich použiť dvojité lomka. Na druhej strane je použiť lomítko a hviezda a zatvorte s hviezdou a lomkou. Dobre. Po prvé, budem spustiť navigáciu tu. Takže keď som sa ísť do môjho domovského adresára, Zmenil som adresárov tam, Idem sa pozrieť a vidieť, čo je v tomto adresári, ls, zoznam von. Idem vidieť, že som má dva podadresáre. Urobme to trochu väčšie tu, takže sa všetci môžeme vidieť. Vidím, že som má dva podadresáre. Budem chcete zmeniť adresár ísť do pracovného priestoru. A ja len písať von jeho súčasťou, a potom stačí kliknúť na Tab. A to bude dokončiť zvyšok pre mňa. Fancy. Pozriem sa a vidieť v pracovnom priestore. A práve teraz, ja pracujem na SuperSection že sme vyučovanie práve teraz. Takže ja pôjdem do tohto adresára. A konečne, pozerať sa a vidieť. A ja mám ten súbor bunny.c. Dobre tak nech mi jasné, ešte raz. A ja zase, že som now-- ešte zostať v tomto adresári a to mi hovorí, že som v že SuperSection adresár. Chystám sa ísť dopredu a aby môj program zajačik. A tento príkaz, aby zajačik, zatiaľ čo znieť trochu divné, dovoláva takisto rinčanie kompilátor. A je to vyrobené pre me výstup, ktorý je spustiteľný funny-- spustiteľný súbor s názvom zajačik. OK. Aj potom môžu, a to znie ešte horšie, spustite zajačik. OK. A uvidíme, čo to urobí. OK. To je trochu to, čo som očakával. Mám svoju zajačik obrázok tam, ale nejako som to chcel všetko sama. To, čo som zmeškal? SPEAKER 21: Slash l alebo lomka n. BRIAN SCASSELLATI: Slash n. OK. Tak poďme späť sem. A ja budem mať z toho. A ja sa vrátim do tohto jedného. A poďme sa pozrieť teraz z mojej hlavnej funkcie tu. Tak čo mám robiť? Chcem ukončiť linku. Tak som si dal v poznámkach. Dám do printf (). A to, čo musím dať? / N. OK. Čo musím skončiť s? Bodkočiarka. Dobre. Teraz, jeden z naozaj dôležité veci, je uistiť zakaždým, keď urobíte zmenu v kóde, ktorý ju uložiť. Ak ste neuložili váš kód, ste bude všímať malá hviezda hore. A to vám hovorí, že hviezda neuložili tento kód. Keby som skompilovať práve teraz, to nie je bude odrážať niektoré z týchto zmien, pretože kompilátor pozerá na súbor to je na disku, nie na súbor, ktorý je otvorí v editore. Dobre. Tak poďme ju uložiť a potom pôjdeme tu vpravo dole, poď späť. Poď dole do môjho terminálu. A poďme znova vyčistiť priestor. A môžeme pokračovať a ešte jeden čas, aby naše zajačik program. A spustiť zajačika. To nepomohlo. Zlé lomítko. Takže, keď sa pozriete na to, čo mám, som dal / N tam, ale ja som mal zlú lomítko. Všetko, čo váš počítač robí, je veľmi explicitné. OK? Jedna malá chyba interpunkcie, a Zrazu sa nechcete dostať to, čo chcete. Dobre. Takže poďme priblížiť späť von. Pôjdeme späť. No aby to veľmi rýchlu opravu. Budeme klásť správne lomítko. Budeme ho šetriť. Budeme priblížiť späť. Z nejakého dôvodu, že to nie je byť šťastný, ale poďme vpred a pôjdeme späť k terminálu tu. Zrušte to. Budeme priblížiť. A ešte raz, urobíme zajačik. A teraz naozaj, to funguje. Hurá. OK. Takže poďme sa snažiť, aby to trochu všeobecnejšie. Uvidíme, či namiesto toho len tlač jeden konkrétny snímku, uvidíme, či by sme mohli urobiť túto tak, že sa môžeme dostať všetkých 10 z týchto rámov animovaných že sme chceli mať. Takže znovu, poďme tento krok v čase. Poďme si najprv zovšeobecniť to, nie takže robím všetky snímky, ale tak som robiť jednu rám, ktorý by som mohol chcieť. Tak v čom je rozdiel medzi rámy? Je králiček to isté? Divákov: Áno. BRIAN SCASSELLATI: Jo. Aký je rozdiel? Divákov: Position. BRIAN SCASSELLATI: Jeho pozícia, že jo? A ako môžem kontrolovať svoju pozíciu? Koľko bodov, že som uvedenie na začiatku a koľko bodov som si uvedenie na konci. Takže som mal päť u začínajúce a päť na konci. Poďme nahradiť, že päť sa cyklu for. OK. A ja sa vytvoriť pre slučky teraz, to bude hovoriť, Chystám sa vytlačiť nejaké číslo bodiek na začiatku. Chystám sa použiť premennú. Povedzme, čo keby som as čítač v mojej slučke. A budem deklarovať to vrchol. A potom v slučke for Musím urobiť tri veci. Prvá vec, ktorú musíte urobiť, je musím inicializovať i. Čo by som mal inicializovať to začne byť? 0. OK. Potom som treba povedať, čo je stav ukončenia? Kedy by som mal prestať? No, koľko bodov sa ti Ak chcete tlačiť na toto? Divákov: Five. BRIAN SCASSELLATI: Päť znova? Ako sa o poďme niečo urobiť odlišné, sme urobili päť. Ukážme, že je to inak. SPEAKER 22: Two. BRIAN SCASSELLATI: Two. OK. Takže ak chcem dve bodky, to, čo by som mal tu? Hľadisko: Tri. BRIAN SCASSELLATI: Tri. OK. Koľkokrát je to, že ísť prejsť? To bude prejsť trikrát, 0, 1, a 2, pravý? Dobre, vráťme sa na dva. Teraz budeme mať dve bodky. A čo robiť, chcem robiť každý Tentokrát som prejsť slučky? Čo sa musí zmeniť Zakaždým, keď som sa prejsť? SPEAKER 23: Pridať bodku. BRIAN SCASSELLATI: musím ísť ďalej. Chystám sa pridať bodku. Chystám sa vytlačiť bodku, Zakaždým, keď cez slučku. Ale ako mám sledovanie toho, ako Mnohokrát som cez slučku? Ja používam aj, že variabilný, že čítač. Takže zakaždým, keď vďaka, idem pre zvýšenie čítača o jedničku. Teraz, to je rovnaké pre ma, ako hovorí i = i + 1. To je v poriadku. Mohol by som to urobiť that-- Páči sa mi tesnopis, tak som chcel povedať i ++. OK. Poďme urobiť to isté sa tu v dolnej časti. Len som trochu urobil, že jeden. Budem vám chlapci nechať urobiť jeden úplne. Dobre. Takže to, čo by som mal písať tu? Tu je moja pre slučke. Chystám sa urobiť printf (), a idem aby to tak, že som tlačiť len jednu bodku na tomto dne. Čo by som mal napísať Vnútri to pre slučky teraz? No, v prvom rade to, čo Premenné by som mal použiť? SPEAKER 24: j. BRIAN SCASSELLATI: Mohol by som použiť j. Môžem použiť rovnakú lístok? Môžem použiť aj znova? Jo. To je v poriadku, pretože Is že som pomocou tu, Nechcem ich potrebujeme znova, keď Som sa pustiť do tohto bodu. Takže to, čo by som mal inicializovať som? SPEAKER 25: 10. BRIAN SCASSELLATI: 0. Čo mám skontrolovať? Koľko bodov musím teraz u konca ak mám dve bodky na začiatku? Potrebujem osem na konci, takže to, čo Mala som skontrolovať, aj menej than-- Publikum: Sedem, osem, deväť. BRIAN SCASSELLATI: Počul som, že sedem. Počul som, osem. A ja som počul deväť. OK. Takže sme všetci v práve ball-- Jason hovorí, že 10. OK. Keby som potreboval dve bodky na Prvý z nich, ako veľa robiť Já-- a ja potrebujem osem bodov pre Posledná one-- som dal dve hore, to, čo by som mal dole? Divákov: Osem. BRIAN SCASSELLATI: Eight. Vzhľadom k tomu, že to bude počítať od nuly do siedmich. A to je osemkrát cez slučku. OK. A čo mám robiť na konci? Divákov: i ++. BRIAN SCASSELLATI: i ++. Dobre. Tak, že sa pozerá dosť dobre tam. Skúsme to a uvidíme, čo to urobí. OK. Takže ideme uložiť. Pekné a zachránil. Budeme zoom späť. Skúsime to tu v termináli. Budeme priblížiť. Oops. Budeme, ešte raz, aby náš bunny program. A do toho pustite a vykonávať zajačika. A je to tak. Takže tam je náš zajačik. V prípade, že má dve bodky na začiatku a osem bodky na konci. Všetci stále so mnou? OK. Tak sme vybudovali. Postavili sme jednu zajačik, jeden konkrétny frame. Teraz sme boli schopní zovšeobecniť, že pre zostavenie viac, rôzne druhy rámov. Teraz poďme do toho, a majú generovať nie len jeden záber, ale poďme tvoriť 10 rámy, kde sme sa pomaly aby sa zajačik presuňte všetky cesta cez pole. Dobre. Poďme späť. A my sa pokúsime teraz. Takže to, čo mám naozaj potreba tu zmeniť? Čo potrebujem, aby som mohol zmeniť? SPEAKER 26: Najprv musíte zmeniť počet bodov maxima na začiatku. Pretože ak robíme 10 bodov, to bude musieť až do mierky. BRIAN SCASSELLATI: Jo. Takže teraz som to nejako hardwired sa vždy dve bodky na začiatku a vždy osem bodky na konci. Chcem stavať ďalšie slučku, že jo? Pretože nechcem, aby stavať len jeden zajačik obrázok, Chcem sa postaviť 10 zajačik obrázky. Tak som potrebné stavať ďalšie slučku, a ako som ísť cez túto slučku, Chcem zmeniť, koľko bodky tlačiť na začiatku a koľko bodiek tlačiť na konci, na základe ktorej prechádzať slučkou Som v. Dobre. Takže poďme získať ďalší žetón. Niekto pred tým, než j, takže urobíme ďalší j. A teraz, budeme stavať ďalšie pre sláčiky. Čo sa deje vo vnútri, že slučky? Tento materiál musí ísť vnútri slučky, že jo? Má zajačik má ísť dovnútra slučky? Musím zajačik v každý z týchto 10 snímok? Divákov: Hm. BRIAN SCASSELLATI: Jo. Chcem zajačik v každej z 10 snímok, je to tak? Ako sa o body v koniec, potrebujem, že? OK. Takže budem odsadiť všetky z nich. Budem vyzdvihnúť všetky to, a budem zasiahnuť Tab. A že to bude tlačiť na celom trochu, takže je to pre mňa ľahké vidieť, čo je v slučke. A potom budem ukončiť. Povedzme. OK? Teraz, v tejto slučky, ktorá Som building-- Jejda, aby to, takže si môžete see-- Mám svoju proti j. Ja začal ju na 0 ° C. Koľkokrát nechcem prejsť tejto slučky? Divákov: 10 krát. BRIAN SCASSELLATI: 10 krát. Takže to, čo som dal číslo by malo tú? Publikum: 9, 10. BRIAN SCASSELLATI: 9, 10, Niekto musí povedať, 11, nie? Chcel som dve bodky pred a dal som menej ako 2. Chcel som osem bodov, Dal som aj menšie než 8. Teraz chcem ísť až 10 časy, tak som dal J menej than-- Divákov: 10. BRIAN SCASSELLATI: 10. Tam sme ísť. A čo mám robiť na konci k j? ++, Zvýšiť ju. OK. A teraz, tu je chúlostivé časti, čo je bude diať práve teraz, keď to urobím? Budem tlače 10 snímok? SPEAKER 27: Myslím si, budú všetci byť rovnaké. BRIAN SCASSELLATI: Budú byť všetky rovnaké, nie? Vzhľadom k tomu, všetky z nich sú stále pokračujú aby dve bodky na začiatku. Ale ja nechcem ich všetky majú dve bodky na začiatku. Koľko bodov robiť ja chcú na začiatku? Divákov: Zmena. BRIAN SCASSELLATI: I Chcete to zmeniť, je to tak? Takže to, čo mám tu, že to mení Zakaždým, keď je slučka prechádza? Divákov: Počet bodov, j. BRIAN SCASSELLATI: j, počet bodov. Tak som sa to môže zmeniť, že j. Pri prvom prostredníctvom slučky, čo je to bude? Čo mám nastaviť j sa na prvý? Divákov: 0. BRIAN SCASSELLATI: Tak koľko Časy mám robiť? 0. Druhýkrát cez slučku, j je bude 1, pretože som ju zvyšovať. Koľko bodov mám vytlačiť? 1. Tretíkrát cez slučku, koľko bodov mám tlačiť? Hľadisko: Tri. BRIAN SCASSELLATI: j bude 3. Koľko bodov mám vytlačiť? Oh, prepáč, j to bude 2. Koľko bodov mám vytlačiť? Publikum: 2. BRIAN SCASSELLATI: 2. OK, takže budem držať zvyšovanie, že ako sme ísť spolu. Ako sa o dole? Čo sa deje tu dole? Nechcem 8 vždy na konci už? SPEAKER 28: 10. BRIAN SCASSELLATI: Chcem 10 bodky? Chcem, aby to zmeniť, taky. Tak ako to chcem, aby to zmeniť? Divákov: [Nepočuteľné]. BRIAN SCASSELLATI: No, ak ja majú päť bodky na začiatku, Koľko bodov je získam na konci? Divákov: Five. BRIAN SCASSELLATI: Ak mám Šesť bodky na začiatku, koľko sa dostanem na koniec? Publikum: Štyri. BRIAN SCASSELLATI: Keď som sa dostal Sedem bodky na začiatku, koľko sa dostanem na koniec? Hľadisko: Tri. BRIAN SCASSELLATI: Keď som dostal j bodky na začiatku, koľko sa dostanem na koniec? 10-j. OK. Tak poďme skúsiť von. Takže idem zachrániť náš zajačik program. Opäť budeme oddialiť. Pôjdeme dole do nášho terminálu. Budeme ich vymazať. A priblížiť. Urobíme náš zajačik program znova. A my ju vykonať. Uh Oh. Vydrž, poďme oddialiť. Povedal som si 10 snímok? No, koľko zajačikovia nevidím tam hore? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Dostal som 10 snímok. Sú všetky rovnaké? Divákov: Jo. Nie. BRIAN SCASSELLATI: Nie. Že prvý, kto je zajačik je ďaleko na ľavej strane. A tu, králiček je ďaleko na SPEAKER 29: Správne. BRIAN SCASSELLATI: Takže, čo som zabudol urobiť? SPEAKER 30: Spustenie nového riadku. BRIAN SCASSELLATI: Zabudol som začať nový riadok, znovu. Rovnaká chyba, ktorú urobil predtým. Dobre, poďme napraviť. Teraz som stále kód tam, aby sa nový riadok. Ako to, že to funguje? SPEAKER 31: Nie je to vo vnútri slučky. BRIAN SCASSELLATI: Oh, nie je to vo vnútri slučky. To je správne. Je to tu sedí vonku. A pre slučky je všetko že je vo vnútri tohto textu. Takže budem pohybovať to vnútri slučky for. A ja budem kartu pred ním na ukazujú, že je na správnom mieste. A teraz, budeme ho uložiť znova. Budeme oddialiť. Budeme prejsť na našej terminálu. Priblížiť. Budeme prerobiť náš zajačik program. A teraz, teraz máme naše 10 snímok. [Tlieskanie] BRIAN SCASSELLATI: OK. So. Tu je náš vnorené slučky. Boli sme schopní generovať v vnútorné slučky, koľko bodov som chcel pre tlač na začiatku, na konci. A vonkajšie slučka riadené koľko snímok som staval. Začali sme s jedným malým jadro problému, a postavili sme sa od tohto bodu. Dobre. Poďme urobiť ešte jeden krok. Ste pripravení? Je tu ešte jedna vec, tu, kde sme vlastne trochu dostal viac zložitosti, ako potrebujeme. Poďme sa pozrieť. Takže náš zajačik programu, keby som oddialiť tu, Ja vlastne robiť niektoré to isté vec znovu a znovu. Čo mám robiť, že je to druh to isté opakuje dvakrát? SPEAKER 32: Tlač bodky. BRIAN SCASSELLATI: Jo Tlačiť tie bodky dvakrát. Naozaj, mal by som mať Tento komentár tu dole. Tlačiť nejaké bodky u začiatok, a to až sem. A potom som vytlačiť nejaké bodky na konci. A ja trochu presne to isté. Čo budeme začať pracuje na v najbližších niekoľkých týždňoch je schopný, aby tieto bloky kód, ktorý budeme používať znovu a znovu, a prostredníctvom procesu volal abstrakcie, budeme ťahať von a napíšte je raz tak, že sa potom môžeme znovu použiť znovu a znovu. Takže poďme to skúsiť. Pripravení? Chystáme sa tento blok kódu. A ja vezmem ju odtiaľ. A ja idem na define-- sa na dne, Chystám sa napísať novú funkciu. Nebude to k návratu nič. A ja budem hovoriť printDots. Bude to trvať jeden Argument, celé číslo, ktoré hovorí, že by som mal howManyDots tlače. A teraz miesto tlače j bodky, budem tlačiť povedať howManyDots mám tlače. A je tu jeden malý problém. Vie niekto, čo to je? Čo mám, že je uvedená tu, že to nie je definované? Divákov: [Nepočuteľné] BRIAN SCASSELLATI: No, ako počet bodov je definovaná až tu, ale ja som s použitím tejto premennej i. Takže ja vezmem ten premennú i a budem definovať ju tu namiesto toho. Tak teraz to bude stay-- oops, dostal Caps Lock na somehow-- Som bude držať som sa tu. Takže teraz tu je môj malý funkcia alebo podprogramu, a hovorí, koľko bodov mám tlačiť? A bude to ísť cez túto slučku a vytlačiť znovu a znovu. Potom som si pozmeniť svoj program až sem. A čo ja hovorím, že funkcie? printDots. Takže ja zavolám printDots. Koľko bodov robiť Chcem vytlačiť prvýkrát pred zajačik? Divákov: j. BRIAN SCASSELLATI: j. Koľko bodov robiť Chcem vytlačiť Na konci, po zajačik? 10-j. A je tu ešte jedna vec, ktorú mi chýba. Ako ste dnes videli v prednáške, budeme deklarovať printDots hore dať prototyp. OK. Takže to, čo som urobil je, že som sa snažil izolovať, aby znovu použiť časť kódu že som urobil znovu a znovu. A ja som sa snažil vytiahnuť ho von tak, že to všetko je obsiahnuté v jednom mieste. Tak, keď mám niekde chybu, Musím opraviť na jednom mieste iba. Dobre. Takže poďme zachrániť. A poďme sa uistili, že funguje. Tak poďme von. Pôjdeme opäť na našu terminálu. Budeme priblížiť. Budeme robiť, že zajačik proces. Aha. A to mi dal varovanie. Čo je to mi hovoril? No v niektorej z týchto časy, chcete vždy prejdite do úplne prvej error-- Teraz na tento jeden, ja som dostal len jeden. To mi hovorí, že v bunny.c, on line 8, stĺpec 9, je tu problém. To hovorí, že ste vyhlásil, toto premenná i, a vy ho nevyužili. Teraz normálne, to je nie je to najhoršie chyba. To je jednoduchý opraviť. A v skutočnosti, môžeme ísť späť. Môžeme sa vrátiť k bunny. A v tomto prípade, všetko, čo musíte urobiť, je zbaviť sa aj, preto, že sme nepoužívate aj vo vnútri hlavnej ešte. Sme jednoducho používať v rámci nášho sub-rutiny. Takže poďme zachrániť to. Pôjdeme späť. A priblížiť. Budeme ešte raz, aby zajačik. A opäť sú naši 10 snímok. OK. Kedykoľvek ste dal procedure-- Jo. SPEAKER 33: Mám je-- som zmätená. Môžete sa vrátiť späť ku kódu? BRIAN SCASSELLATI: Jo. SPEAKER 33: Takže, keď si písal Váš prototyp, argument vám keby sa volal bolo volané Howman? Ale below-- BRIAN SCASSELLATI: Ach jo. SPEAKER 33: --called im niečo iný, ja to nechápem. BRIAN SCASSELLATI: Prečo oni sú rôzne. Tak to je veľká otázka. Takže otázka bola, a to až tu, som napísal Howman, a dole, som napísal howManyDots. Dôvodom je, že vo vašom prototypu, je to vlastne nedáva pozor na názvy, ktoré ste uvedení v. Všetko, čo to naozaj záleží je to, že je to celé číslo. Chce poznať formulár z toho, čo ste uvedenie v. Teraz stylistically-- oops--, čo by som mal to, je rád, aby sa tieto zápas. OK. Vzhľadom k tomu, že budem držať to pre mňa jednoduchšie pamätať. Ale to bola moja chyba Jo. SPEAKER 34: A tak pre prototyp do práce, len písania, že linka, písanie prototyp, umožňuje túto funkciu, ktorá prichádza priamo pod neho sa dostanete na koniec a získať čo to znamená? BRIAN SCASSELLATI: Čo to znamená je, keď kompilátor prechádza, to ide od vrcholu kód ku dnu. A čo to je prototyp, Je to v podstate sľub. Hovorí, že to bude funkcia definovaná niekde. Bude to byť nazývaný printDots. A to bude trvať jeden parameter že to bude celé číslo a bude to vrátiť nič, void typu. OK. Sľubujem vám, že to bude niekde definovaná dole na ceste. Ale kedykoľvek vidíte že, ako idete dole cez zvyšok môjho Hlavné funkcie, chcem si na liečbu, že v závislosti že trvá jednu celočíselnú vstup. A tak, keď kompilátor ide dole Tým, že vidí ten sľub. A keď sa dostane dole, udržiava v chode, beží ďalej, nájde prvýkrát printDots je spomenutý. A hovorí, Oh, dávate mi to j. j je celé číslo. Dobre ste mi sľúbil, že by byť celé číslo, a to je pravda. To je v poriadku. A nakoniec, dole na samom dne, než sa dostanem do konca môjho súbor, robím dobre na môj sľub a ja to definovať. OK? SPEAKER 35: Takže, to saves-- Program vám ušetrí medzery že sa vráti a vyplní na konci? BRIAN SCASSELLATI: To nie je o pridelenie pamäti. Je to vlastne len o tom, čo typ ste čakala, že uvidí. Ak by táto vec mať jeden Argument, alebo päť argumenty? Ak by si to celé čísla byť vzhľadom k tomu, alebo reťazca? To je všetko, čo hľadá urobiť, je skontrolovať, sa mi dávania správny druh argumentácie. OK? Dobre. Dovoľte mi, aby som vám odísť s jeden ďalší bit na pohľad. ASCII art nie je veľkým vzorom animácie ako je tomu dnes. Ale niektorí ľudia samozrejme brať veci a tlačí ju svojím extrémov. Toto je, ako David preukázané V prednáške, kus kódu že by ste mali za žiadnych okolností pokúsiť duplikovať sami. Vzhľadom k tomu, že je hrozné štylisticky. V skutočnosti, že je navrhnutý tak, aby ako ťažké, ako je to možné čítať. OK. Tak, aby urobiť znovu, poďme priblížiť tu. Chystám sa ísť, zmeňte adresár. Chystám sa ísť hore jeden level, späť do svojho pracovného priestoru. Budem zmeňte adresár, do tejto ďalší adresár, ktorý som vytvoril. A to je Medzinárodný Zatemnil C Programming Contest. Zatemnil prostriedky tak ťažké ako je možné pochopiť. Takže prosím, nemusíte sa báť, keď sa pozriete na to a ísť, nemôžem čítať, že. To je zmysel toho. OK? Ale máme to úžasný program, že som ísť sa pozrieť na jednoduchým zadaním viac. A uvidíme, či môžem oddialiť len trochu, takže môžete vidieť A to je program. To je pomenované endo.c. A vyzerá to, že tento vedro s druh písmenami F-L-U-I-D v ňom. Jedná sa vlastne o program. Je napísaný v najtemnejšie tak, že autori by prípadne mohlo byť napísať. Ale je to nádherný kúsok, ktorý generuje model dynamiky kvapalín. A tak ideme dať tento model vstup, ktorý vyzerá to, ze staired set kontajnerov s nejakou tekutinou, niektoré kvapalina, a to až v hornej časti. A budeme si to simulovať čo sa deje s ním. Takže budem volať túto funkciu, endo. A ja ti dám to, že vstupný súbor, ktorý som mal. A tam je náš stelesnením ASCII art. Kompletné tekutina dynamický simulátor beží v niekoľkých málo riadkov kódu. Teraz, čo je vlastne naozaj úžasné o tomto malom programe je, že chcem, aby to teraz zastaviť, takže budem používať Aký príkaz? Divákov: Control-C. BRIAN SCASSELLATI: Control-C. OK. Takže budem používať Control-C. C To je to zastaviť. Budem vyčistiť znova. A teraz budem vyvolať Program, spustiť program, použitie sa ako vstup. A uvidíme tekutiny dynamiku simulácia to tavenie. OK. Prosím, nenechajte tento program byť vec, ktorá vás pletie. Je to tak, že môžeme skončiť na niečo cool a zaujímavé. OK. Veľa šťastia so svojimi problémovými sád. Budeme radi zodpovieme Otázky po triede. Vďaka moc, chlapci.