[Videoprehrávanie] -A Triumf matematický a mechanické zručnosti Je to skvelá nová automatická Kalkulačka na Harvardovej univerzite. Zložité problémy v matematike vložiť do prístroja v zakódovanej forme na pásku sú presne riešené v minúta zlomok požadovanej dobe pre ľudskú výpočtu. Navrhnuté pre urýchlenie všetkých foriem matematické a vedecký výskum, obrie mechanický mozog bude pracovať pre námorníctvo Spojených štátov až do konca vojny. [END Prehrávanie] DAVID J. Malan: To je CS50. Minulosť bola magická miesto, ale ak ste niekedy premýšľal, čo toto zariadenie je v Harvard Science Center, to je naozaj súčasťou Harvard Mark I, a to je Na displeji sa tam teraz V posledných mnoho rokov. A to, čo uvidíte vložené do Zadanie problému jeden je pohľad do zákulisia na to, čo urobil, že zariadenie, a robí, profesora Harryho Lewisa, ktorý je v veda oddelenie tu počítač. Tak o tom viac v len trochu. Ale dnes sme začali prechod od minulého týždňa na to, a budeme prinášať zmienku na jednej fotografiu tu to je vlastne celkom slávny. Vie niekto, čo to tu je zobrazené na obrazovke? Aspoň podľa mýtu. Jo. Divákov: Prvý vírus. DAVID J. Malan: Takže to bol pravdepodobne úplne prvý skutočný problém v počítači. Teraz v skutočnosti slovo chyba, za chybu v programe, bol s nami pre niektoré čas vo fyzickom svete, a to bol jeden z prvých zdokumentované obdobie, keď niekto skutočne odtrhol veľký mora z Mark Počítačový II, vložte ho do spojiva, a potom ju zaznamenal ako prvá známa chyba aby boli skutočne nájdené fyzicky. Takže takto bol zadaný že do dnešnej tradície. Všetko od poslednej týždeň je k dispozícii on-line. V konkrétnych zdrojov, ktoré by ste mohli nie nutne všimnúť, najmä ak sem osobne. Takže jeden z vyučovacích chlapíkov každý rok robí kánonický súbor poznámok, takže sa nemusíte držať hlavu dole, snažil prepísať takmer všetko že by sa mohlo stať tu v triede. Takže si uvedomiť, že tí, tzv [? Scribd?] Poznámky sú on-line, určite diapozitívy a zdrojový kód, ktorý budeme používať v triede. Vyrábame plné texty prepisy tiež k dispozícii. Takže ak si matne spomínam niektoré termín, a chcete sa pozrieť to málo ľahšie, si uvedomiť, že všetky z toho je vyhľadávanie online. Rovnako ako priechody rovnako. Naozaj, dnes začneme sa pozerať na nižšia programovací jazyk na úrovni, čoskoro byť známy nám ako C, a to je veľmi ľahké sa nejako stratiť po niekoľkých momenty čas, a potom nejako údivu ako sme sa vlastne dostali k nejakej ďalšej komplexné príklad z najjednoduchších. A tak si uvedomiť, my budeme čerešňa vyzdvihnúť počas vyučovania nejakým reprezentatívnych príkladov, ale Uvedomujem si, že oveľa viac je tiež k dispozícii on-line, takže môžete pracovať cez to svojím vlastným tempom, Avšak ste najpohodlnejšie. Ale my sme prestali s programy, ktoré boli práve tento. Tak som kliknite na zelenú vlajku, a čo tento program robí? Hovorí, ahoj, svet. To je mačka hovorí ahoj vo svojom malom svete na hornej ľavej strane používateľského rozhrania Scratch je. Ale začali sme zavádzať niektoré terminológie minulý týždeň. A tak, také veci, čo sme hovorili? Čo by mohlo byť všeobecný termín pre to? Jo. Spôsob alebo vyhlásenia. Iste, je to akcia. To urobiť. A napriek tomu tam boli iné tvary na zelenej lúke, Okrem týchto tzv vyhlásenie, oni boli tiež veci, ako je tento, ktoré sme hovorili, čo? Jo. Takže slučka. A v tomto prípade, táto vec opakuje, samozrejme, 10 krát. Je tu navždy blok. Je tu pár ďalších. A dnes budeme vidieť, ako sa preložiť do viac moderného sveta, ak chcete, aj keď je to bude vyzerať na prvý pohľad byť oveľa tajomné. Ale to boli naozaj slučky. A potom máme veci ako to, ktorý mal tento tvar, a v podstate otázky. A my odvolával sa na tieto ako čo? Divákov: logický výraz. DAVID J. Malan: Jo. Logický výraz. Niečo, čo je buď pravdivé alebo false, áno alebo nie, jedno alebo nula, však budete chcieť na svet. Ale sme nazvali tie Boolean výrazy, a my pripojte ich do podmienok, alebo pobočkami. A vo svete Scratch, všetko pekne blokovacie zariadenia, pokiaľ ide o jeho tvaru, ak to má logický zmysel, aby tak urobili, ale nemusíte zastaviť na len robiť jednu vec podmienečne, môžete mať príslovečná rázcestí a to buď to, alebo že v prípade, podmienkou je pravda alebo nie. A potom, ako uvidíte, ak ste tak už neurobili, Môžete dokonca hniezdo tieto bloky. Takže Scratch rastie vyplniť tvary že budete chcieť vložiť do neho, takže sa môžete skutočne vyjadriť väčšinu logika, ktoré budete chcieť robiť. Teraz pár slov oznámenia pre oba tu a New Haven. Takže krájanie začína dnes. Adresa URL pre toto je na kurz je webové stránky, pre tých, ktorí nepoznajú. Sekcia bude príležitosť dať dohromady v oveľa intímnejší prostredí ako [? Sanders?] Umožňuje, s 10 až 20 spolužiakov majúcich výučby kolega na rôznych tratiach, a rôznych krokov, pokiaľ sa tak rozhodnete. Naozaj Kurz poskytuje rôzne úseky pre tých menej pohodlné viac, pohodlné, a niekde medzi tým, a role palca tu, je neexistuje žiadna formálna definícia, ale ak ste menej pohodlné, tak nejako to vedia. Si trochu neohrozený o Myšlienka na posilnenie nôh, snáď späť v triede, alebo zobrazenie a to až do medzi sekcie. Ak ste boli programovania od vás bolo šesť rokov, pohodlnejšie, Možno na vás. A či je to akýsi prehadzovať-up, to je presne to, čo medzi tým má byť. Teraz, do tej doby, pre triedu tejto veľkosti, to trvá nám nejakú dobu sekcie všetci, takže sme takzvaný, flash sekcie, príde to víkend a začiatkom budúceho týždňa, tak sa pozrieť na webové stránky Course pre tie, ktoré sú samozrejme široké, a tiež filmoval pre tých, ktorí nemôžu robiť je. A profily sami začnú v týždni tri CS50 nula indexu. Problém nastavená 0 ​​je už na internetových stránkach Course. A uvedomiť si, že máte deväť neskoré dní tento semester. Takže sa jedná o upgrade z poslednej rok, kedy sme mali päť neskoré dní. Takže ak ste zvedaví, Máme deväť problém sady. Máte deväť neskoré dní, pričom každé z nich môžete len stráviť jeden za týždeň ďalej. To účinne ich všetky Problém nastavuje kvôli Piatok, ale cieľom je dať trochu bit psychologického tlaku na vás, aby sa pokúsili dostať veci v vo štvrtok pretože ako skoro zistíte, k lepšiemu alebo k horšiemu, väčšina všetko, čo vo svete softvéru skončí pričom oveľa dlhšie, než očakávate. Takže zvážte to druh príležitostí pomôcť sami na cieľovej štvrtok, ale útechu v tom, že áno, všetko je kvôli piatok. A ak si predložiť ich na Štvrtok, to je skvelé. Neexistuje žiadne bonusové body alebo ďalšie úver pre splnenie tejto lehoty. Je to má byť len barle. A úradné hodiny, a to ako tu a v New Haven, osobne, ak chcete stretnúť sa s niektorou z našich kurzov výučby kolegami a certifikačnej autority pre pomoc. Dobre. Takže teraz, poďme aby to reálnejšie. A na chvíľu, že to bude začiatok sa trochu viac tajomný, ale veľmi rýchlo v piatok a Budúci týždeň budeme schopný robiť oveľa viac, než sme mohli doposiaľ v Scratch. Preto sme zaviedli kód posledné týždeň, aj keď pictoral. Bolo to dieliky puzzle. A my formalizovaná, že je niečo, čo nazýva zdrojový kód, ale bude to vyzerať? No, vyzeralo to trochu niečo také. A v skutočnosti, len aby druhu podpichovať kam môžeme ísť s tým. Chystám sa ísť dopredu a otvoriť okno tu, a ja som jednoducho ísť voliť nový súbor. A budem tento súbor uložiť niečo ako ahoj dot C. Viac informácií o tomto výbere slová v chvíľku. A to je to, ako by sa niekto mohol ísť o písaní programu. Zahrnúť Standard I / O bodov h, int main neplatné, a potom otvorte zložená zátvorka, v blízkosti zložená zátvorka, printf ahoj čiarka world, spätné lomítko n, bodkočiarka, Uložiť, hotovo. OK. Napísal som môj prvý Program, ale to sa deje byť neuveriteľne chladnú pretože keď som vlastne spustiť tento program, samozrejme, od prvej písomnej robiť ahoj, a potom dot lomka ahoj, a my prejsť to oveľa podrobnejšie vo chvíli, to je všetko, čo robí. Neobjaví otvorená všetky okná. To nič nerobí najmä fantázie. Všetko, čo to urobí, je to, čo som povedal, to áno, ale ako sa dostaneme na to? A ako sme sa stavať na to? Dobre, poďme predstaviť niekoľko odlišné pojmy tu. Takže jeden, my sme asi na začiatku používať program s názvom kompilátor. Kompilátor existuje pre Mac OS, Windows, Linux, ľubovoľný počet operačných systémov, a my čoskoro predstaví na prostredie, ktoré budeme používať, ale kompilátor je len všeobecný termín pre kus softvéru ktorý berie zdrojový kód a vyrába objektový kód z neho. Inými slovami, ak majú ako vstupný zdroj kód, niečo ako to, čo som práve napísal, to nakoniec produkuje objektový kód. A objektový kód je naozaj len ozdobný spôsob, ako hovoriť, že výstupy núl a jeden je. Inými slovami, zdroj kód, aj keď je to bude vyzerať trochu tajomné, a trochu menej priateľský Scratch než na prvý pohľad, je to aspoň niečo že my ľudia môžu rozumieť. Je to trochu vyzerá a znie ako Angličtina, aj keď je to veľmi stručná. Vzhľadom k tomu, programovanie v núl a niečí, ako naši predkovia museli urobiť, Pred niekoľkými rokmi, nebolo Zvlášť zábava výzva. A napriek tomu, to je to, čo počítač stále chápe. Takže kompilátor nás dostane z Zdrojový kód objektového kódu. Je to ako otvorenie súboru s kompilátor, a keď ho uložíte, dostanete tie nuly a jednotky. Tak uvidíme, ako to urobiť že za chvíľu. Ale vráťme sa teraz pokúsi poskytnúť most medzi minulý týždeň a to, takže aj keď sme sa zavesil na veci, ako je zložené zátvorky, a bodkočiarkami a zátvorky, a všetky tieto intelektuálne zaujímavé aspekty programovania, ktoré veľmi pochopiteľne výlet ľudí na začiatku, si uvedomiť, že všetky myšlienky Dnes, sú rovnaké, ako posledný. Takže posledný, videli sme tento príklad tu, Hello World programu. No, začína dnes, ak chceme, na vykonanie tohto rovnakého programu, to bude vyzerať Trochu niečo také. A budeme vysvetľovať pred dlhou, čo int, a hlavné, a neplatné, a to všetko je, ale aspoň vidím tu už známy Hello World. Medzitým, veci, ako je funkcie, povedzme ahoj, je veľmi jednoducho Bude to veľmi prosté konštatovanie ako je tento. Printf hello world, s niektorými cituje, so spätným lomítkom, bodkočiarkou, ale Viac o tom prísť. Slučky, zatiaľ, je to, že slučka, Samozrejme, hovorí ahoj svet navždy, a ten to bude vyzerať málo zvláštnejšie, než v poslednom, ale keď poviem niečo rovnako ako, keď pravda, ja potom môžete vytlačiť Hello World znovu a znovu a znovu a znovu. A potom, ako môžete láskavý pri začatí odvodiť tu, Tento dohovor použitie zložené zátvorky je druh ako sa objímať členité riadok kódu tam. Printf riadok kódu podobne ako žlté kúsok skladačky hore. Takže nebudeme hovoriť navždy, budeme hovoriť, keď pravda, ale uvidíme, prečo tomu tak je v len trochu. Medzitým, ak máme slučku ako je tento, kde si zopakovať niečo konečných číslo časy, to taky, že je to bude trvať trochu zvykať , Ale bude to povedať int aj dostane nula, aj menej ako 10, aj ++, a potom printf znova. Ale tam to bude vzory. A pre tých z vás poznajú s AP informatiky, alebo Java, alebo ľubovoľný počet iných jazykov, takmer všetky z týchto konštruktov tak ďaleko by mal vyzerať väčšinou povedomý. Tak variabilné. Takže tu je jednoduchý Scratch výňatok, že nastaví premennú s názvom čítač na nulu, a potom navždy hovorí pult, a potom sa zmení čítač o jednu. Tak začína nulou, a potom jeden, dva, tri. Tak, ako by sme sa predstaviť, že v tento nový jazyk trochu podobne? Int counter rovná nula, zatiaľ čo pravý, čo je to, že rovnaká myšlienka pred rokom robiť niečo navždy, a ja som jednoducho ísť do printf. A teraz je to stále trochu divné, percent i, ale o tom prísť, ale tieto myšlienky sú úplne rovnaké. Máme teraz musia dodržiavať syntaxe, či je počítač bude vyžadovať z nás. Logický výraz, niečo ako sx menej ako y, poprípade x menšie ako y, a y menej než z. Bude to vyzerať niečo málo takto, s zátvorky len rovnako ako v matematike pre dobrú opatrenia, ktoré len zabezpečiť, že poradie operácií je, ako sme v úmysle. A teraz, podmienky. Takže ak x menšie ako y, povedzme x je menej než y, else if x je väčšia ako y, povedať, x je väčšie ako y, inak logicky, x musí byť rovná y. Takže by ste mohli realizovať niečo také v Scratch, alebo by ste mohli realizovať že v tejto syntax. A opäť, zložené zátvorky sú druh čo nám dáva rovnaký tvar ako puzzle kusy, ale syntaxe, teraz, je možná začínajú nasledovať nejaké vzory. Takže, čo to dá nám tu? Takže sme zase potom na nášho hlavného programu. Poďme v skutočnosti, teraz, urobiť niečo s ním. Takže v tomto veľmi najprv linka vidíme ostrý patrí, Štandardné I / O, bodka h, a potom nejaký divný uhol zátvorky nižšie, že. int main neplatné, a potom printf hello world. Takže len krok. Niekto, kto nikdy predtým naprogramované, aspoň vysvetliť jedného z týchto riadkov. Použitie možno niektoré z žargón z minulého týždňa. Čo je printf, napríklad? Jo. Divákov: [Nepočuteľné] DAVID J. Malan: Jo. Je to funkcia, alebo vyhlásenie, od terminológie minulý týždeň. A je to akčná to je niečo robiť. Teraz je táto funkcia, alebo toto vyhlásenie, robí Zdá sa, že to trvať nejaký vstup? A v akom zmysle to robí Zdá sa, aby sa vstup, ak áno ,? Vstup, čo mám na mysli, že? Jo. Divákov: [Nepočuteľné] DAVID J. Malan: Jo. Takže Scratch na niekoľko skladačky kde môžete nastaviť parametre ho. Dalo by sa povedať, opakovanie blokovať koľkokrát opakovať, tak, aby bol vstup druhy, a rovnako ako Scratch mal malý biely zástupný symbol pre číslo by ste typu v, takže máme použiť v tomto Text svet zátvorky dať nám, že kruhový tvar do ktorých môžeme zapojiť naše vstup. Koniec koncov, desiatky rokmi ak tento jazyk, nazvaný C, bol vynájdený nikto Predpokladá sa, že je to jeden z nás, Tieto o niekoľko rokov neskôr, mali by sme Ak funkciu, ktorá hovorí ahoj. Je to tak? Bolo by pekné, keby tam bolo kúsok skladačky, alebo len kľúčových slov, tomu sa hovorí ahoj, že doslova hovorí ahoj. Ale my nepotrebujeme to. Môžeme mať niečo oveľa nižšia úroveň, ako generické potlačou Príkaz, ktorý berie vstup, a publikácie, čo chceme. Takže si všimnúť teraz vzor že začne objavovať. Otvorené parenie, v jeho blízkosti je Paren zrejme zahŕňajúce vstup, a potom vidím double cituje na oboch koncoch. Stále je divné spätné lomítko n, ale dúfajme, že teraz ste môžete začať predstaviť aspoň, že printf berie v nejakej forme vstupu. Nie tak užívateľsky prívetivý ako Scratch, ale je to len ako keď zapojený tam nejakú hodnotu. Dobre, teraz sa to vlastne urobiť niečo s tým. Takže niektorí z vás možno poznajú z majú pred nakupoval triedu, rozprávali s priateľmi, , Že po mnoho rokov sme použili niečo, čo nazýva CS50 spotrebiča. Jednalo sa o termín, ktorý popisuje technológiu volal virtuálny stroj, ktorý je kus softvéru, ktorý predchodcovia by stiahnutie off Webové stránky Kurz je zadarmo. Oni by tiež zadarmo stiahnuť kus softvér nazvaný hypervisor, niečo, čo nazýva ako VMware, alebo VirtualBox, alebo ľubovoľný počet ďalších nástrojov, a na ich PC alebo Mac alebo čo počítač mali v minulom roku a v minulých rokoch, oni by poklepať na ikonu pre spustenie tohto softvéru volal hypervisor. A potom sa vnútri tohto programu oni by otvoril CS50 prístroj. A efekt bol, že či predchodca tvoj so systémom Mac OS alebo Windows, on alebo ona potom nasledovne mal nové okno na ich Obrazovka spustenie prostredia CS50 je. Takže virtuálny stroj umožňuje spustiť jeden operačný systém vnútri druhého, a to je presne to, čo sme urobili. Skrz väčšinu z samozrejme používať operačný systém nazvaný Linux, konkrétne Ubuntu Linux, a to je veľmi príjemný spôsob, ako v minulých rokoch z uistite sa, že všetci v priebehu jednoducho musel rovnaké prostredie. A môžete použiť akýkoľvek druh počítač, ktorý skutočne chcú. Medzi nevýhody, aj keď, bolo to ako dva gigabajty stiahnuť túto vec. To predsa nemusí nutne fungovať výborný dobre ľudia, ktorých počítače, že možno iba mal koncert alebo tak RAM, alebo nie príliš veľa gigahertz rýchlosti procesora, a tak tento rok, pre toto a iné dôvody, máme už prechod do tohto prostredia. Takzvaný CS50 IDE, ktorý je založený na open source softvér, a podporované platformy že spoločnosť s názvom Cloud9 podporuje v Európe, že nám umožňuje mať v podstate že presne rovnaké prostredie ako v minulých rokoch, ale v tzv mrak. Takže to, čo je cloud? Pravdepodobne ste klikli jeho ikona na vašom počítači Mac alebo PC. Čo je cloud? Jo? Trochu hlasnejšie. Jo. Je to len banda počítačov inde, ktoré ukladajú dáta a beh softvér a podobne. Takže je to naozaj len k slovu DE jure popisujúci [? prenajímateľnej?] Počítače, ktoré žijú inde. To si ty, sám, nemusí nutne vlastniť. Takže keď vaše dáta, alebo Váš programy, sú v cloude, znamená to len, že je to na niekoho iného počítača inde, a nie, s najväčšou pravdepodobnosťou, na svojich fyzický notebook alebo desktop. A tak to je to, čo CS50 IDE je teraz. Odteraz budete chodiť do určitej URL, ktoré vás zoznámi sa v probléme sada 1, v priebehu tohto týždeň, ktoré budú následne, po prihlásení, vám toto prostredie. A podobne ako Scratch mal niekoľko rôznych panely zapojené, tak robí IDE CS50 majú presne to. Na hornej ľavej ruky tu, ty si uvidí známu prehliadač súborov. Takže niektorý zo súborov, ktoré ste do tohto prostredia sa práve chystá by mali byť uvedené tu. Súbory a priečinky. Na vrchole tu, budete vidieť miesto, kde si môžete skutočne napísať svoj kód. Spočiatku v C, neskôr v termín v PHP a JavaScript a, možno pre konečné Projekty, Ruby alebo Java alebo Python alebo ľubovoľný počet jazykov sú podporovaná v tomto prostredí. Nie je to vôbec zviazaný na CS50 konkrétne. A potom sa v dolnom rohu tu, zvlášť pre tých, pohodlnejšie, máte niečo nazýva okno terminálu. A to okno terminálu umožňuje môžete spustiť ľubovoľný príkaz, ktorý vám chcú v tomto prostredí cloudu. To umožňuje inštaláciu akýkoľvek ďalší softvér že chcete, pretože ste takzvaný koreň, alebo správca oprávnenia. Takže inými slovami, aj keď toto je nakoniec hostil v cloude, a hoci máme zjednodušil do určitej miery V predvolenom nastavení je doslova zavedenie, vďaka Dan Armendariz, a Dino, a Dan Bradley na CS50 tímu Over The v minulosti mnoho mesiacov, menej pohodlný Režim, ktorý skrýva mnoho z spočiatku mätúce rozptýlenie. Všetko, čo existuje na predstavujú typický počítačový systém ktoré môžete použiť v reálnom svete. Takže čo to všetko znamená, a čo môžeme skutočne urobiť s ním? Poďme skutočne nahliadnuť na programe. Takže ja idem otvoriť Skutočná prostredie tu, čo je len naša Chrome browser, ktorý by mohol byť Firefox, môže byť Internet Explorer, alebo nejaký iný prehliadač rovnako. Je to tu plné skríning pre túto chvíľu. A ja chcem, aby skutočne dráždiť okrem toho, čo tento program bol. Takže poďme sa pozrieť, priblížením hore začiatok, na to, čo som urobil, a ako som sa sem dostal. Tak tu je tých, presný Rovnaké riadkov kódu. Takže toto je vyhlásenie, ako ste spomenul predtým. Funkcia, ktorá hovorí, ahoj. Zložené zátvorky, na linka štyri a linka šesť, pravdepodobne druh obalové že linka je združovať s podstatou môjho programu. Takže v skutočnosti, toto kľúčové slovo hlavné, že to tam hore na linke tri, si môžete myslieť, že ako rovnocenné , Že keď zelenou vlajkou kliknutí, blokovať Scratch. Tak to je všetko, čo máme tu, je, keď zelenou vlajkou klikli, vytlačiť, alebo hovoriť, hello world. Ale poďme sa hádať, teraz, na to, čo táto prvá, ešte tajomný riadok, je. Sharp patrí, otvorený uhlová Držiak, štandardné I / O bod h, zatvoriť uhlový držiak. Čo je to snáď robí, najmä ak ste naprogramovaný predtým, ako v nejakom inom jazyku. Jo? Divákov: [Nepočuteľné] DAVID J. Malan: Jo. Presne tak. Tak to dáva vám prístup k knižnica, aby som tak povedal, funkciou. A knižnica funkciou je funkcie, ktoré niekto iný napísal, a to buď v poslednej dobe alebo už dávno, takže si Nemusíte znovu vynájsť koleso. Napríklad, my nie musí vedieť, v roku 2015, ako písať kód, ktorý kladie charakter na mojej obrazovke. Niekto prišiel na ktoré out s funkciou printf takže môžem triediť abstraktné od toho, alebo vrstva Na vrchole jeho alebo jej kódu, a teraz len sa za samozrejmé, že každý program, ktorý som napísať možno tlačiť niečo na obrazovku. Takže toto prvý riadok tam v jednom kroku zahŕňa tzv hlavičkový súbor pre štandardné knižnice. Tak vidíte, jazyk v ktorý teraz pracujeme mal štandardné knižnice s množstvom funkcií. Printf je jedným z nich, a že prvý riadok kódu znamená, daj mi prístup k tie funkcie, aby som Nemusíte znovu vynájsť koleso, že. A teraz poďme do dolného okna a robiť presne to, čo som urobil predtým. Pred chvíľou, keď som bol svišťanie prostredníctvom kódu, písať to prvýkrát, Veľmi rýchlo som napísal, aby ahoj. Čo to všetko bolo by hádať? Čo som robil? Jo? Nevadí. Je to v poriadku. Jo. Divákov: Kompilácia ho. DAVID J. Malan: Jo. To bolo jednoducho kompiláciu to. Je to tak? Aj keď je to úplne neznáme pre vás, je to celkom anglicky ako. To určite nie nuly a tie, takže som stále je potrebné ho spustiť cez to takzvaná Program, kompilátor, ktorý sa deje vziať to ako vstup a produkovať výstup. A aspoň pre túto chvíľu, v toto prostredie Linux, ale toto nie je predpokladom, To je práve tam, kde začneme, je zvyčajne komunikovať s počítačové systémy, ako je tento pomocou tzv príkazového riadku. Takže s blikajúcim rýchle a klávesnice, a nie toľko vaša myš, a nie toľko okien a ikony a ponuky, spíš všetko je textový. A aj keď to cíti, najprv pohľad, možno, ako krok späť, je to v skutočnosti oveľa silný a expresívne spôsob, ovládanie počítača najmä ako vy, sami, sa viac pohodlná od menej. Bude to vám umožní urobiť veľa viac vecí, než len to, čo Microsoft alebo Apple vám umožňuje robiť s ich grafické operačný systém. Takže keď som stlačte klávesu Enter, teraz, nič sa nedeje, tentoraz pretože zrejme Program ahoj je aktuálna. A aký bol povel Bežal som po tom? Dot lomítko Dobrý deň, aj hello world. Teraz sa poďme krok späť na chvíľku. Ukazuje sa, že robiť ahoj je len zjednodušený spôsob zostavovania programu. Poďme sa len predstaviť jeden kus žargónu, ale potom sa vzdialiť z nej, pretože to nie je všetko, čo zaujímavé pre dnešné účely. Prekladač budeme začať používať sa nazýva Clang, pre jazyk C. A to je program, ktorý je práve spustený ako sme to urobili v tam príkazovom riadku. A tak, keď chcem zostaviť program, ktorý som písali v súbore s názvom ahoj bodka c, som doslova stačí zadať zvonenia ahoj c vstúpiť. Legrační je, z historických dôvodov keď nemám zadať Názov programu že chcem, aby výstup, keď to neurobím zadajte názov súboru pre tých nuly a tie, veľmi podivné Pred dohovor bol prijatý rokov kde sa cítil tak trochu Dobrá odpoveď v tom čase, no povedzme ľubovoľne volať Prvý program sme zostaviť bodku von. Je na prvom mieste v abecede. Out, je to výstup. Takže budeme nazývať program Štandardne je bodka von. A to je v poriadku, pretože keď budem chcieť spustiť program v tomto texte na báze životné prostredie, len som typ dot lomítko bodku von vstúpiť. A bolo by v presne tak ako predtým. Tak uvidíme, že naozaj rýchlo. Takže keď sa vrátim k môjmu Zdrojový kód v CS50 IDE, a ja namiesto toho to, rinčať ahoj detská postieľka c vstúpiť, oznámenia sa zdanlivo nič nedeje, ale takmer vždy v toto prostredie Linux, Keď sa nič zlé nestane sa zdá, že znamená, že niečo dobré vlastne stalo. Ak nevidíte chybu posolstvo, všetko je asi dobre. A skutočne, keď som teraz robiť bodka lomítko bodku out vstúpi, som bežať môj rovnaký program. Stále mám program Hello z predtým, pretože v skutočnosti, že je to Bude tak oveľa krajší len typ, aby namiesto spomínania tieto zaklínanie na príkazy, ale uvidíme, ako sme môže zvýšiť na to, však. Takže, to je príkaz kompilovať kód. Toto je príkaz na spustenie potom skompilovaný kód. Ako je možné zadať názov súboru? No povedzme, predstaviť jeden kus žargónu. Keď ste v tejto prostredie založené na texte, budete chcieť zadať veci zvanej argumenty príkazového riadku. Čo je len fantázia spôsob, ako hovoriť, iné slová na riadku, ktorý vyladiť správanie bez ohľadu Program vediete. Takže konkrétne program, ja som beh, zadaním názvu rinčanie, je program s názvom Clang. Tak to je, alebo staré školy ekvivalent dvojkliku Microsoft Word alebo ikonu nejakého programu. Ja som namiesto toho len zadaním jeho názvu, ale v tejto verzii príkazu, Potom mám pomlčka ö priestor ahoj ahoj priestor bodka c. Takže aj keď ste nikdy hral v tomto svete skôr, stačí sa hádať, čo sa pomlčka o ahoj robiť? Alebo čo to povedať, rinčanie robiť? Jo. Divákov: [Nepočuteľné] DAVID J. Malan: Jo. Je to len nastaví výstup súboru byť ahoj namiesto hlúpejší bodka von. A naozaj, skúsme to. Takže keď som sa teraz robiť, najprv ideme na to, r m ahoj. To je odobrať. A to bude hovoriť odstrániť bežný súbor ahoj, ktorý je zbytočne tajomný, ale to len prostriedky chcete zmazať súbor, I a Napíšte A pre Áno. A všimnite si, ak ste boli s pohľadom na vrchole doľava, to sa zmizne zo tam. Dovoľte mi teraz robiť zazvonením pomlčka o, a Chystám sa ísť ďalej a robiť ahoj, vo všetkých veľkých písmenách, ahoj bodka c. A teraz, keď som robiť dot lomítko Dobrý deň, čo by ste čakali? Možno je to veľké a malé písmená. Možno to nie je. Pozrime sa. Súbor alebo adresár neexistuje. A môžeme trochu podvádzať tým len pri pohľade na ľavom hornom rohu. Čo som samozrejme uložiť program ako? Všetky čiapky ahoj. Takže v skutočnosti, že to ide aby rozdiel. Takže teraz ahoj svet je späť. Teraz je to všetko v poriadku a dobré, a všetci veľmi mysli-znecitlivujúce, na druhu zabŕdnuť v týchto detaily, ale ich pochopenie je dobré. Písanie z týchto stále dlhé zaklínanie sa nebude zvlášť zábava, takže ľudia vo svete vynašiel iný program, Pred niekoľkými rokmi, nazvaný robiť, že jednoducho umožňuje písať make, názov programu chcete vykonať, a aby je šikovný v tom, že to bude vyzerať v aktuálna zložka, alias adresáre, a ak máte súbor volal ahoj dot c, že je súbor, to bude zostavovať pre vás do programu s názvom ahoj. Takže je to oveľa jednoduchší spôsob, ako robiť viac mystické príkazy že sme robili predtým. A my sme prednastavený CS50 IDE vedieť že by mal činiť pomlčka na o a rad iné vlajky, alebo argumenty príkazového riadku, že uvidíme onedlho. Ale poďme teraz vlastne robiť niečo zaujímavejšie. Len písať out hello world všetko Čas nie je všetko, čo presvedčivé. Tak nechaj ma ísť dopredu a zmena tento program a hovoria, ahoj Dávid. Teraz budem ísť sem dole. Chystám sa ísť ďalej a robiť, aby pozdrav. A teraz zase vidíte aby sa zobrazujúci dlhší sekvencie príkazov, ktoré je robí preto, že sme vopred nakonfigurované to tak, ale my Nemusíte sa báť teraz čo to robí iný, než je sumarizujúcich dot lomítko Ahoj, ahoj svet. Čo je zle? Jo. Divákov: [Nepočuteľné] DAVID J. Malan: Áno. Takže, noobie chyba. Všimol som si, to je super jemný, ale hviezdička tu, na karte, len znamená, že ste to chytá, a prehliadača a ďalšie programy to občas stáva. Takže ovládanie s alebo príkaz s to mali šetriť. Teraz mi dovoľte ísť napred a re-spustiť program. Recompiled. Správne, takže je to proces, multi-krok. Žiadny z ktorých je mimoriadne zložité, ale kedykoľvek sme sa zmeniť súbor, musíme zmeniť výsledný núl a jednotiek, a bodka lomka ahoj. Vau. Tak to je veľmi nezaujatý že sme jednoducho vytlačiť toto. Poďme robiť veci trochu dynamickejšie, teraz. No to dopadá, že rád Scratch, C podporuje premenné. A ukazuje sa, ak chcete, mať premenná, ktorá ukladá, nie je číslo, ako my typicky urobil s Scratch, ale ako slovo, alebo frázy, alebo názov, vy Môžete zadať premenné byť typu string. Tak uvidíme viac ty za chvíľu, ale ukázalo sa, že C, a mnoho jazykov to páči, majú veľmi špecifické typy premenných. Nie je to rovnako ako algebra, kde dostanete X, Y a Z a to sú práve vždy čísla, v programovacom jazyku môžete uložiť čísla, môžete ukladať jednotlivé znaky, môžete uložiť celých slov, by ste mohli ukladať celé obrázky, celé zvukové súbory, a podobne. Preto musíme spresniť, čo typ našej premennej je. A konvencií budem volať moje variabilný to len preto, že je stručné, a s znamená reťazec. A potom budem ukladať vnútri tejto premennej, Rovnako ako u Scratch pri použití set bloku, Budem používať Operátor priradenia v C, čo dosť dobre je rovná podpísať, ale znamienko rovnosti to robí. Pohybuje sa niečo z pravej strany do ľavá strana výrazu. Takže to, čo som urobil, aby bolo jasné, v linka päť, je ja som deklaroval premennú. Povedal som počítač, daj mi pamäť pre premennú, hovoria to, a vedieť vopred, že budem na uvedenie reťazec v ňom. A reťazec je len postupnosť znakov. Je to slovo, alebo frázy, alebo bod, ale je to postupnosť znakov. Nie je to čísla. Čo string mám to bude uvedenie do tejto premennej? No, zrejme citovať koniec citátu, "Hannah". Teraz Všimnite si vzor, ​​ktorý je novo vznikajúce. K dispozícii je ľavá ruka výraz. Je tu pravá ruka výraz, oddelené znakom rovnosti. A stačí sa hádať, ak neznáme však, s tým, čo bodkočiarka je robí. Čo to pravdepodobne robí pre nás? Jo? Divákov: [Nepočuteľné] DAVID J. Malan: Jo. Je to len o zastavení linky. Je to tak? Počítače chcú byť bez obalu Povedal doslova, čo má robiť. Rovnako ako arašidové maslo a želé sendvič príklad, ak nezadáte presne to, čo máte v úmysle, to by mohlo byť ponechaná na úsudku alebo chybou. Bodkočiarka prostriedky, to je pre tento príkaz. Je to byť mimoriadne presné, a je to veľmi jednoduchá vec, odísť preč. Takže teraz tento program sa nezdá sa chová inak, než ja aby bolo viac dynamické. Takže skôr ako tvrdo mohol môj vlastný meno, dovoľte mi, aby som dal hodnotu zástupný. A ukázalo sa, že, a ja viem, že to od mať, prečítajte si dokumentáciu, a použili funkciu roky, že printf bol navrhnutý tak, aby dynamický. Nemusíte poznať vopred aké slová chcete dať v ňom. Namiesto toho môžete mať symbol, ako percent s, čo sa chystá povedať, počítač, dať reťazec tu. Aké reťazec chceme tam dať? Will Ukazuje sa, že medzi nimi zátvorky, ktoré pamätajú, vymedziť vstup do funkcie, ak máte oddelených čiarkou zoznam vecí, ktoré tu, sme vlastne odovzdať násobku vstupy do funkcie. Takže rovnako ako nejaký Scratch bloky, možno nie hrali s nimi Vaše projekty ešte, alebo vôbec, Stieracie niektoré bloky majú dva vstupy. Dve biele krabice môžete zadávať čísla alebo slová do. Takže nemá C má funkcie, ako je printf, ktoré môže trvať dva vstupy. A opäť, to čiarka je oddeliť ich. Takže v angličtine, aj keď znovu ste nikdy predtým naprogramovaný, sa tým, že logika printf je funkcia, trvá dva vstupy, z ktorých jedna je zástupný symbol, čo by ste dúfať, printf bude robiť s týmto vstupom? Bude to pozdraviť Hannah, dúfajme. Takže to urobiť, musíme ju uložiť. Idem oddialiť. Chystám sa ísť sem dole a hovoria, aby ahoj vstúpiť. Aha. Niečo je zle, a vlastne je to celkom zdrvujúce. Mám šesť riadky kódu a ako 12 riadkov chýb. Takže, tešíme sa na to. Takže to, čo sa tu deje? Takže to najlepšie pravidlo platí, najmä keď začínate von, nenechajte sa zmiasť Veci na dne. V skutočnosti som veľmi uvážene len rolovať hore preto, že veľmi často, je počítač nie je všetko, že jasné z prístroja. Bude to zmiasť. Ak to považuje jedna vec, ktorá nerozumie, to by mohlo pomýliť ostatné riadky kódu ako nesprávne, aj keď sú úplne v poriadku. Takže chcete vždy pracovať hore dole chyby. A síce to je Super Arcane v túto chvíľu. Chyba, využitie nelegálnej Reťazec identifikátora. Už som na mysli štandard v? Nie, myslel som reťazec. A je to ukázal na, možno je to preklep. Niečo ako, kontrolu pravopisu v veľmi geek spôsob, ale dôvod, prečo tu, a budete vedieť to len praxou, je že sa ukáže, že reťazec neexistuje v C. V skutočnosti, C je zvlášť starý jazyk, a to je veľmi nízkej úrovni, a to nie je veľa funkcií ktoré by vás mohli vyrástli , Ak máte v skutočnosti, naprogramované v Jave, ako niektorí z vás, ale môžete učiť nové veci. A skutočne, sme urobili túto CS50, aj keď na konci semestra, všetkých týchto koliesok bude musieť byť vzlietlo, čo robíme v týchto Prvých pár týždňov spočiatku je máme tiež zahrnúť CS50 dot h. Čo je súbor hlavičky. Viac o tom v budúcnosti. Je to súbor, ktorý obsahuje funkcie že sme napísali pre vás. A medzi týmito funkciami je Funkcie pre získanie vstupu od užívateľa, ako struny, a čísla a reálne čísla, a ďalšie. Ale tiež má niekoľko skratiek. Definuje logickú hodnotu ako typ dát. C nemá true alebo false. Ale môžeme dať pojmu true alebo false prostredníctvom tejto knižnice. A to tiež nemá reťazec postavený v roku kým tento riadok. Takže tento riadok kódu hovorí, kompilátor, hej, Clang, pozri v tomto súbore pre celok banda kódu, ktorý CS50 napísal tak, aby kohokoľvek, kto používa tento súbor môže vziať za samozrejmosť rysy, ktoré ste pridali. Takže teraz nechaj ma ísť napred a vyčistiť obrazovku, a ak je zvedaví Ja len hovorím, kontrolu l zakaždým vyčistiť obrazovku, alebo môžete zadať jasné. Ja som jednoducho ísť do toho pustite a teraz typ robiť ahoj, a všetko je v poriadku. Stále tajomné výstup, ale nie je to chybná správa. Teraz, keď mám dot lomítko ahoj, a ako stranou, bodka lomkou je neznáma pre väčšinu. Znamená to len, dot prostriedky aktuálny adresár. Takže ak ste niekedy používali DOS, alebo Linux, Unix alebo si mohol urobiť niečo ako sú CD dot dot, kde dot dot znamená ísť späť v čas, alebo ísť späť, alebo vyššie v adresári. Dot jednoducho znamená pozrieť aktuálny adresár. Chcem ahoj, čo je tu. A skutočne, teraz hovorí ahoj Hannah. A keď som to zase zmeniť Máriu, překompilovat bolo by Dobrý deň, dot lomítko Dobrý deň, program sa neustále mení. Ale to je ešte pekne hlúpe programu. Ak chcem, aby loď tento program, alebo dať do priateľov alebo to dať Maria alebo Hannah keď na to príde, je to v poriadku. Môžem prispôsobiť ju pre oboch, ale to nikdy nebude dynamický. Nemôžu to zmeniť, akonáhle je to skompilovaný dole do tých núl a jednotiek. Takže to, čo sme urobili niečo múdrejší? Čo keby miesto hard-kódovanie do programu meno tejto osoby, Čo keď sme len dostať reťazec na požiadanie? Takže inými slovami, nechaj ma to urobiť. Chystám sa překompilovat tento program. A dovoľte mi priblížiť na dne teraz. Urobiť ahoj bodka lomítko ahoj. Teraz sa nič nedeje. Môžeme získať rýchly dobrovoľníka aby sa niečo stalo? Poď hore. Ako sa voláš? Pancho: Pancho. DAVID J. Malan: Pacho? Poď hore. Akonáhle sa dostanete sem, je to bude veľmi nezaujatý, ale je to oveľa zaujímavejšie ako ja napísaním. Ak chcete pokračovať a napíšte meno, urobil som tento program práve pre vás. Stačí zadať svoje meno. Enter. Wonderful. Dobre, ďakujem vám. Pancho: Veľmi vám ďakujem. DAVID J. Malan: OK. [APPLAUSE] To bolo veľmi láskavý. Nech sa páči. Čo budeme robiť? Tak sme konečne, aspoň, robil tento program dynamický. Teraz je to ešte určite podľa návrhu nezaujatý, ale konečne máme schopnosť Teraz písať kód v predstihu, veľa ako autori printf, a potom dynamicky ADAPT založený na vstupe sme odovzdal, a to buď programátorom, alebo u človeka, ktorý je vlastne interakciu s programom. Takže teraz poďme skutočne snažia urobiť niekoľko ďalších konštrukty a uvidíme, či nemôžeme robiť programy sami sofistikovanejšie. Tak poďme do toho a miesto písanie tejto úplne od začiatku, Chystám sa ísť do dnešnej zdrojový kód, a to všetko je k dispozícii na kurz je webové stránky, a môžete ho pretiahnite do svojho prostredia príde v piatok raz problému set 1 vám dáva inštrukcie, alebo by ste mohli to na príkazovom riadku ako dobre, ale ešte prísť v p set 1. Pozrime sa, čo je v tomto programe sem volal, zmije dot c. Teraz už som poznamenal, to, ale čo je nové? Na prvý pohľad, čo linka kódu je úplne nové? Pravdepodobne nie zásadne neznáme teraz. Divákov: [Nepočuteľné] DAVID J. Malan: Jo, takže int x rovná sa dostať n. Nikdy sme nevideli nič z toho skôr, ale int je pravdepodobne symbol pre aký druh variabilné, [? z?] celé číslo. Takže int na celé číslo. Je to proste byť viac stručné. x je len ľubovoľný. x a y a z sú stále celkom rozumné pre čísla, ale všeobecne my budeme používať slová raz Naše programy získať zložitejšie. Get int, samozrejme, podobne ako get reťazec, pravdepodobne dostane int od užívateľa, a potom budeme urobiť to isté s y. A zdá sa, že aj keď to Posledný riadok, 24, vyzerá zložitejšie, to bude hovoriť súčet tohto a že to je ďalšia vec. A Oznámenie percent aj pravdepodobne znamená čo? Akú úlohu hrá percent i zdanlivo slúžiť? Je to len zástupné. Je to tak? Percento s bol pre reťazec, percent i je na celé číslo. Tam to bude percent f pre plávajúce bodovú hodnotu, ktorá je len číslo s desatinnou čiarkou. Inými slovami, je reálne číslo. Takže poďme sa vlastne táto kompilácia programovať veľmi rýchlo a robiť, aby zmija. Jejda. Dobrá príležitosť. Takže tu si všimnúť, celú tú dobu svoje užívateľské menovať je tento účet jharvard. Som CS50 IDE, aka IDE50. A teraz tu modrá, je zmienka, ale z prostredia, kde som. A v skutočnosti, keď som zoom až na vrchol Tu si všimnite, že mám IDE50 a vidím toto slovo, ak ste druh otočiť hlavu na stranu, pracovný priestor. Stručne povedané, skutočnosť, že Vidím tilda lomítko pracovný priestor Znamená to, že v tomto texte na základe príkazu prostredie, Ja som do textového ekvivalentu Toto grafické zložky sem. Takže keď som si dot lomítko zmija, je to hovoriť žiadne pravidlo aby cieľové výbavu zastaviť. Ja neviem, čo to znamená, ale je to zlé pre nejakého dôvodu. Súbor alebo adresár neexistuje je ešte jasnejšie. Kde je to teda? O tom, kde som klikol na báze otvorte súbor skôr. Tam, kde to môže byť? Je to pravdepodobne v zdroji 1 W, na stredu, a ja to vidím, naozaj, ak otvorím, že až. Tam je sčítačka dot c, ale v Tento text-based prostredie, Znovu musím byť super explicitné. Ak chcem zmeniť adresára do source jednu Streda, musím písať, cd priestor zdroj jedným Streda vstúpiť a teraz moja výzva zmeny daj mi vizuálny podnet, ktorý Som naozaj, inde v mojom prostredí, ale teraz môžem robiť, aby zmija, zdá sa, že práca, dot lomítko výbavu, daj mi celé číslo. One. Dva. Súčet jedným a dva sú tri. Ale keď nebudem spolupracovať, poďme sa pozrieť, čo si robí int. Daj mi celé číslo. Nie. Opakovať. OK. Dobre. 50. 50. Dobre. Takže to nakoniec spolupracuje. A to je niektoré z funkcie, ktoré tieto funkcie môžu mať postavená v roku pre vás. Tak vnútri vykonávanie z dostať int, čo programovanie postaviť z minulého týždňa je pravdepodobne v tam nútiť toto správanie opakovanie, opakovať, opakovať? Jo, je to asi nejaký druh slučky. Bude to vyzerať syntakticky odlišné od blokov Scratch je, ale to je naozaj čo je vo vnútri súboru. A za pár týždňov stretneme v skutočnosti sa pozrieť na knižnici CS50 pokiaľ ide o to, čo je vo vnútri, ale je tu slučky uloženie presne to. Poďme si zahrať malú hlúpu Hra tu s týmto súborom. Stav nula bodka c. Sme len tak všeobecne začne počítať od nuly. A stále rolovanie minulosť niektoré veci v hornej časti. V modrej tu, ohraničená so všetkými z týchto hviezd a lomítok, tých z vás, ktorí programovať predtým, čo to je? Prečo sa máme držať skákanie cez to? Čo? Divákov: Je to comment. DAVID J. Malan: Jo. Je to len poznámka. Toto je komentár pre ľudí čítať, ktorá v našom prípade, nám hovorí, čo názov súboru je, kto to napísal, a čo robí, takže nemáte čítať prostredníctvom kódu vedieť, čo tento súbor je všetko okolo. Je to len opis, ale funkčne je to irelevantné. A ja si dokonca odstrániť z môj súbor a nemá žiadny vplyv. Tieto linky sú tieto šťavnaté Prvé dve tu a teraz. int main void je ekvivalentná nášho keď zelenou vlajkou kliknutí, takže budeme nechať to byť pre dnešok, a vrátime sa, Nakoniec, pokiaľ ide o to, čo int a neplatné sú, ale teraz, Všimnite si, čo som urobil aj tu, môžete tiež, ak máte v rade komentovať, ak máte myšlienka chcete zdieľať o konkrétnej riadok kódu, konvencie v C je urobiť lomka lomítko, a potom niekoľko stručné slová nie plný trest, vo všeobecnosti nie je bod, že práve vysvetľuje na vás, alebo vaše TF alebo iné čítačky alebo kolegami, čo váš kód robí. Takže skôr ako sa pozerať na to a vyvodiť z liniek deväť a 10, čo je to robí, v súlade ôsmich Len som dať komentár k požiadajte užívateľa o celé číslo, potom nemám myslieť príliš tvrdý o čom linky deväť a 10 sú. Ja len viem, že to je to, čo kolektívne robia. Ako na to? No, tu je to výzva. Tu je dostať na int. A na základe predchádzajúcej správanie, vyzerá to, že get int je dosť chytrý, aby sa uistil, že ľudskej spolupracuje a dáva ho celé číslo. Ale teraz to vidíme. A to je pripomínajúce Scratch. Ja som tvrdil, že som analyzovať vstup užívateľa, ale trochu nepresne. A to zrejme v C je, ako vyjadrujeme if inde, pobočky, vidlice na ceste, ale ja hovoria trochu nepresne. Čo je to chyba v tomto programe? O ďalšie chrbát? Jo. Divákov: [nepočuteľný] nulu. DAVID J. Malan: Jo. Takže keď som písať v nule, uvažujme presne ten prípad, alebo rohová prípad, ak chcete. Takže keď som písať v nule, čo z Bloky sa chystá zrejme uchopiť? If alebo inak? Časť else, a to bude hovoriť, si si vybrala záporné číslo. A skutočne, nula sa nepredpokladá byť pozitívne alebo negatívne, a tak, že by bol chybne. To by bola chyba. Tak ako môžeme opraviť? Niekto, kto nikdy predtým naprogramované? Chceš-- Divákov: [Nepočuteľné] DAVID J. Malan: vyjdenie? Divákov: [Nepočuteľné] DAVID J. Malan: Ach, vy máte? Niekto, kto nikdy predtým naprogramovaný. Chcete si vyskúšať si ruku na to, v červenej košeli? Poď hore. Ach jo, no tak sa, ak vám to nevadí. Takže nikdy naprogramovanie predtým, Ako sa voláte? Lauren: lauren. DAVID J. Malan: Lauren, v poriadku. Takže opraviť túto chybu pre nás. Vy ste nevidel C, pravdepodobne, a pravdepodobne žiadny iný jazyk. Takže opraviť tento program pre nás. Nice to meet ya. Žiadny tlak. LAUREN: Jo. DAVID J. Malan: Ale opäť, ak je to hazard pôjde podľa plánu, stánok s jedlom tu bude byť, jednoducho opäť na začiatok všímať vzory a vyvodiť z existujúcej syntaxe ako inak by ste mohli vyjadriť sami, žiadna slovná hračka určená, aby zachytiť niektoré ďalšie scenár. Takže hovoríme else if. printf, dobre. A všimnite si s CS50 IDE, a frankly-- IDE je skratka pre integrované Vývojové prostredie. Je to len fantázia spôsob, ako hovoriť program, ktorý vám pomôže program. To robí veci, ako je užívateľsky prívetivý keď zadáte jeden zátvorky, To vám dáva automaticky druhej. Predpoklad je, že ste nakoniec bude chcieť písať, že, a to tiež robí to s úvodzovkami. Takže som rád linka 23. 99% tam na ceste. Niekto chce přizvukovat špičkou? Počul som, že bodkočiarku z publika. Dobre. Tak, že dokončí to. A teraz, len som trochu zdesenie sa riadku 21. Ako chceme vyjadriť to? Akú otázku chceme sa opýtať, čo myslíte? Takže predtým sme sa opýtali na otázku, ak n je väčšie ako nula, to urobiť. Else, to urobiť. Preto musíme zvoliť na niečo opýtať tu. Divákov: [Nepočuteľné] DAVID J. Malan: Dobrý. Takže v prípade, n sa rovná nule. Výborne. Takže poďme pozastaviť tu. Ďakujem moc za Vzdorovať toto. Dovoľte mi, aby som vám trochu zaslúžený stres loptičku, snáď. Tak, že sme skoro tam. V skutočnosti, Lauren, ak nemáte myseľ, dovoľte mi, aby som jednu štípnout tu, len aby boli v súlade aj s to, čo sme videli v Scratch, čo robiť, čo chcem robiť s linkami 21 a 24, len opäť založené o tom, ako sme to urobili v Scratch, snáď? Divákov: Pohyb nahor. DAVID J. Malan: Jo, presuňte ho hore. Takže stav inak, tretí, alebo štvrtý, alebo piaty, alebo konečné vetvu, by mal skutočne prísť neskôr, A to je len konvencií, len preto, že ak chcete. Tak som si potrebné, aby sa Tento trik. A ja potrebujem, aby môj zložená zátvorka späť. A teraz, bude tento program skompilovať. Sme tak blízko, ale je tu veľmi, veľmi jemné chyba. Pozrime sa, čo sa stane. Najprv mi dovoľte, aby som do toho pustite a oddialenie. Chystám sa ísť dopredu a zadajte vytvoriť stav nula. Oh, klamal som. Teraz je kompilátor vlastne celkom šikovný. A nemám naozaj pochopiť, to je chybové hlásenie. Použitie výsledok priradenia ako stav bez zátvoriek, je zrejme zlé. Ale čo to znamená? Tak ešte raz, hľadá vzory V kódu, ktorý sme videli skôr, čo je linka 17 v skutočnosti robí, aj keď Lauren mierne určené inak? Jo. Divákov: [Nepočuteľné] DAVID J. Malan: Jo. Takže nezabudnite znamienko rovnosti, zrejme ako sme používali to skôr, nie je rovná. Jeho úloha, sprava doľava. Takže riadok 17 v okamihu, keď je stav, a to je spustenie kódu v zátvorkách, ale keď ten kód spustí, čo sa deje na hodnotu nula? To, čo sa deje na hodnotu n? Stať sa nule. Takže ak n je stále nula, a znovu, podľa minulého týždňa, sme sa všeobecne povedať, že nula je falošný a jeden je pravda, alebo áno, je jeden a nie je nula. Tak true a false, jedno a 0. Pokiaľ je n od riadku 17 je s ohľadom na hodnotu 0, je nula pravda? Nie. Podľa definície, nula je falošný. To je konvencie, že sme bude lipnúť na posun vpred. Takže budú linky 18, 19 a 20 niekedy sa teraz, logicky? Oni nemôžu. Takže sme sa spýtali na otázku avšak nie úplne presne, a nebudete vedieť, ak to nie je ste videli to, riešenie v C je, keď chcete vyjadriť rovnosť, hovoríte rovná rovná. Takže znamienko rovnosti bol už vyčerpali postúpením, sprava doľava. Rovná sa rovná znamená rovný s rovným. A ak naozaj chcete svoju myseľ ohýbané, v JavaScripte a PHP, tam je rovná rovná sa rovná, čo znamenať niečo iné dohromady, ale dostaneme sa, že onedlho. Takže toto je jednoduchý fix, ale uvedomiť, super ľahké robiť túto chybu, a potom sa čudovať a boj pre minúty, ak nie za hodinu, Prečo je môj kód nie je vykonávania, ako som v úmysle? Je to preto, že ste nepovedal je to presne to, čo ste mal na mysli. Tak to bolo takmer perfektné, a to bolo skvelé že narazil na tieto dve malé veci, pretože teraz keď sme ich opraviť, a mám robiť Nula podmienky dot lomítko stav nula, Chcel by som celé číslo, prosím. Pozrime sa. Nie. Bude to ma donútiť to urobiť. Tak 42. Vybral som kladné číslo. Takže teraz ako to mám dokázať, tento program správne? Ak ste matematik, nemôžete Naozaj to dokázal metódou pokusu a omylu, v poriadku? Môžete nielen dôkaz o príklad, ale prinajmenšom ako programátor nie sme bude snažiť dokázať teraz , Že je to v skutočnosti správne, ale ja som mal asi otestovať niektoré reprezentatívne prípady. Testoval som 42. Mohol by som vyskúšať 43. Mohol by som vyskúšať 44. Skúšobná 45. Je to tak? Ale ja som sa to mohlo naozaj dlho robiť. Aká by mala byť asi viac zaujímavé prípady to skúsiť? Divákov: [nepočuteľný] nulu. DAVID J. Malan: Takže nula. Iste. A veľa, máme to tentoraz, vďaka novému kódexu Lauren. Čo je ďalší dobrý prípad to skúsiť? Divákov: negatívny. DAVID J. Malan: negatívny, a možno niečo trochu väčšie, takže možno negatívne 42, ale všeobecne, ak testovanie vašich programov vpred, ty si bude chcieť myslieť k sebe, ako to, čo sú základnými rôzne prípady. A trúfam si povedať, negatívne veci, pozitívny prípad, a nula prípad do značnej miery dopĺňa tieto von. Poďme sa pozrieť na variante tohto hoci. Podmienky on. To je správne riešenie tu, takže uvidíte dva a on-line, ak budete prechádzať návody, všeobecne prírastok týchto krokoch, kým dostanete presne ten správny prístup. Čo keby sme chceli opýtať, dve otázky naraz? Dovoľte mi, aby som otvoriť toto miesto. Non-switch, z dôvodov, uvidíme inokedy. Čo je nové syntakticky tu? Ja som v súčasnej dobe hrania hry kde je počítač hovorí ma, daj mi celé číslo medzi jedným a 10, a potom som súdiť vstup užívateľa. V angličtine, na základe kód, ktorý nájdete tu v modrom, čo sa tento program robí? Divákov: [Nepočuteľné] vybral veľký alebo malý počet. DAVID J. Malan: Jo. Je to proste rozhodovaní, či Vybral som veľký, alebo médium, alebo malé množstvo na základe veľmi ľubovoľná definícia malých, stredných, a tu veľký, ale oznámenia syntax je to nové, je to. Nie je menej ako int alebo rovné podpísať, alebo väčší alebo rovné podpísať, z ktorých jeden je nad druhým, že vy môže vyjadriť ako je Microsoft Word. Takže v programovacom jazyku, zvyčajne jednoducho dva znaky, jedna po druhej. A čo to pravdepodobne predstavujú, ampersand ampersand. Divákov: [Nepočuteľné] DAVID J. Malan: Jo. To len znamená, a preto, že Ukazuje sa, že autori C použitý jeden ampersand, ktorý by ste si mohli myslieť by bolo ideálne pre pojmu a, je už vyčerpaná, takže ampersand ampersand vlastne zachytáva prípad vlastne chceme. Takže poďme sa teraz narazia dve veci. Nechaj ma ísť dopredu a otvoriť jeden. Niečo, čo je trochu znepokojujúce. Nepresnosť bodka c. Dovoľte mi predstaviť dve veci tu. Po prvé, všimnite si, že môžeme robiť matematika, as rovnako ako predtým, keď sme a z dvoch čísel, x a y. Čo je tento program zrejme robí? Ja som to komentoval to ešte, a ja som predstavil percent f, ale rýchlo som povedal predtým f percent znamená, že s plávajúcou rádovou čiarkou hodnota, ktorá je reálne číslo. Niečo sa desatinná bod, ktorý nie je celým číslom. Čo si myslíte, že tento program je Snažia sa ma ukázať na obrazovke? Jo? Divákov: Výsledok jedného nad 10 rokov. DAVID J. Malan: Jo. Aký je výsledok jedného delené 10. Jasne, pretože všetky z vás má pravdepodobne vyrastala s vedomím, že jeden cez 10 je čo? Jo, je to len desatina alebo 0,1. Je to tak? Takže poďme sa pozrieť, čo to vlastne je. Tak nechaj ma ísť dopredu a uložiť toto. Nechaj ma ísť sem dole. Urobiť nepresnosť dot lomítko nepresnosť, a oznámenia, príliš, v prostredí systému Linux, nemáte musieť zadať von nepresnosť a brať celý deň. Všeobecne, ak Tab hit, to dokončí svoje myšlienky pre vás, na základe slov, ktoré sú k dispozícii v aktuálnom adresári. OK. Takže ste mal pravdu. Jeden delené 10 je, v skutočnosti, 0,1. Ale ja som trochu zvedavý. A ukázalo sa, printf podporuje niektoré funkcie pričom môžete určiť viac ako Predvolený počet desatinných miest. Takže ak chcem vidieť 10 desatinné miesto body, čo môžem urobiť percent, pre symbol zástupný symbol, dot 10 pre, daj mi 10 desatinných miest, a potom ešte plávajúcou desatinnou čiarkou hodnota, a, ako stranou, Čo je to spätné lomítko n zrejme sme udržať pomocou? Ukazuje sa, že je to symbol pre nový riadok. Je to veľmi explicitné cesta hovoriť k počítaču, presuňte kurzor na ďalšiu riadok po máte hotovo. A uvidíme, čo sa stane keď nerobíme to. Dovoľte mi, aby som překompilovat, aby nepresnosť. Teraz dot lomítko nepresnosť. OK. Stále v poriadku. Jeden delené 10. Teraz začína byť trochu zvedavý, hoci. Čo keď sa pozriem 20 desatinné miesto poukazuje na to, překompilovat, opakovanie, a ako stranou pre rýchlosť, môžete tiež použiť Váš šípky hore a dole sa prechádzať históriu, takže nemusíte mať na prepisovanie týchto príkazov, zadajte. Huh. Nevedel som, že učiť na základnej škole. Dobre, tak nech ma vidieť ako 29 miest von. Možno je to len náhoda. Možno, že môj počítač sa chová divne. To nie je vec, že ​​jo? Je to niečo deterministicky. Tak, aby nepresnosť. OK, to je spackal. Takže to, čo sa deje? Takže zrejme Váš Učiteľ bol ležiaci pre vás všetky tieto doby pre Dôvody, ktoré uvidíme onedlho. Ale poďme skončiť s jedným ďalším programom. To je trochu programy niekto napísal pred niekoľkými rokmi, a je to vlastne časť súťaže. Nikto vlastne píše kód ako je toto, a ak áno, to je štylisticky problém. Ale ľudia to pre vychvaľovanie práv. Ak chcete písať najviac mätúce hľadáte program, ktorý napriek tomu robí niečo zaujímavé. A poznámka som si myslel, by sme nechať na dnes, než nás Colton hrá tu, je na spustenie tohto programu, ktoré aj v len pomocou C v tento text-based životné prostredie, nám to dáva. Sakra. [SMIECH] Pripraviť. [Nepočuteľný] c pomlčka l m. Budeš vidieť magické zariekadlo, že uvidíme onedlho. [Nepočuteľný] V poriadku. A teraz môžete dokonca robiť veci, ako je tento. To je ono. Pre CS50 my, uvidíte v piatok. [Prehrávanie hudby] [APPLAUSE]