LUCAS FREITAS: OK, myslím, že Nyní máme žít. Vítejte na CS50 Supersection. Jsme méně pohodlné. Mé jméno je Lucas Freitas. Jsem jeden CS50 Adresa TFS. To je Lauren. LAUREN CARVALHO: Ahoj, já jsem Lauren. Jsem také vedoucí TF pro CS50. LUCAS FREITAS: Dnes jsme jen tak poskytnout přehled o tom, co všechno jste kluci se naučili v týdnu jeden, doufejme, že aby vám kluci dobrý smysl pro to, co byste měli vědět k problému nastavit jeden. Jen pár oznámení. Za prvé, úřední hodiny. Úřední hodiny jsou od pondělí se děje do čtvrtka v různých domech v Annenbergova každý den. Jsou to velmi dobrý zdroj pro vás kluci přijdou a klást otázky, a mluvit TFs, a dokonce i výměna myšlenky s ostatními studenty. Takže je nutné použít tento zdroj ve váš prospěch. Druhá věc je, CS50 spotřebiče. Za poslední [neslyšitelný] vy nemuseli ve skutečnosti mají zařízení. Právě jste udělal všechno váš osobní počítač. Ale pro tento problém, ve skutečnosti máte mít virtuální stroj, takže se Ujistěte se, že stáhnout CS50 Zařízení a nastavit. A třetí věc je být jisti, začít problém nastavit ASAP jen protože je to mnohem snazší najít pomoc, když jste v začátek týdne. Protože lidé mají tendenci čekat, až poslední chvíli spustit problém sadu, a pak jít do úředních hodinách, a tam je hodně lidí. V případě, když jdete v pondělí, budete vidět, že můžete mluvit TFs skoro celou noc, a oni budou mít více než rádi, aby vám pomohl. LAUREN CARVALHO: Mohu přestat si jen za jednu vteřinu? Má každý byl schopen stáhnout CS50 zařízení? Už lidé snažili? LUCAS FREITAS: Chcete-li stáhnout tím, že způsob, jak se můžete dostat instrukce na cs50.net/appliance. LAUREN CARVALHO: Správně. A to dělá chvíli trvat, než naše sys administrátoři vám získat licenci klíčem, takže zaregistrujte se bezplatné zkušební verze první. Tímto způsobem budete mít po dobu 30 dnů, a pak čekat na vaše licenční klíč které by mu dát s vámi po dobu jednoho roku. LUCAS FREITAS: Za prvé, pojďme mluvit trochu o CS50 Appliance. CS50 zařízení je vlastně virtuální stroj, který budete spustit ve vašem vlastním počítači, který je v podstatě běží jiný počítač uvnitř vašeho počítače. Což je docela v pohodě. A ve skutečnosti to je používáno všude. Lidé, kteří se na tech by vědět, že toto je používáno po celou dobu. jste? Může mít více počítačů v jednom zařízení. Pojďme vlastně se podívat na Appliance. Když jdete do Appliance po registraci, budete muset dát své jméno a přihlaste se na Harvard takže se můžeme dostat všichni registrován. Budeš vidět v podstatě jen tapety, a pak Domov a Koš, a pak tyto malé ikony. Tyto tři ikony jsou ve skutečnosti nejvíce důležité věci, které můžete mít v Váš spotřebič. První z nich je gedit, což je textový editor, stejně jako Poznámkový blok nebo jako jakýkoliv druh textového editoru. Je to prostě něco, co používáme psát kód a pak dělat věci s ním. Druhá věc, že ​​jsme zde je Chrome. Takže pokud budete potřebovat využít internet v přístroji, který je co můžete použít. A třetí věc je terminál, který je ve skutečnosti velmi sladká. Lidé jsou obvykle trochu bojí terminálu, protože je to velmi staromódní aplikace, ve které jste v podstatě jen typ co se klávesnice. Není mnoho interakce s myší. Ale ve skutečnosti terminál dělá velmi dobré věci. Za prvé, pojďme prostě projít Některé příkazy, které lze použít v terminálu. LAUREN CARVALHO: A neváhejte se zastavit nám, pokud máte nějaké dotazy. LUCAS FREITAS: Jo. Takže první příkaz, že máme na terminálu je ls. Je v podstatě znamená, že seznam, ze všeho soubory a všechny ředitelé, že jsem na místě, že jsem na. Takže když jsem sem dělat ls, budu vidět že mám nějaké adresáře. Mám ploše, soubory ke stažení, protokoly, a vhostů. Ti, kteří jsou v modré barvě, protože jsou všechny adresáře. Pak máte nějaké další soubory. Máte jako ahoj a hello.c, které jsou jen soubory, a oni jsou v různé barvy. Tak to je velmi důležité příkaz jen můžete vidět, co jsou soubory a adresáře, které máte v adresáři, který jste na v terminálu. Když vidíte jharvard @ spotřebiče a pak tam malý symbol, tilda, že prostě znamená, že to je Adresář, který jste v tuto chvíli. LAUREN CARVALHO: Tak zadáním ls je téměř jako kliknutí na složku která je uvedena přímo tam, v to ukazuje vám veškerý obsah, které jsou v rámci této složky. DIVÁKŮ: Je textu po hello.c? LAUREN CARVALHO: Oh, nemůžeš vidět, protože to je modrá. LUCAS FREITAS: To říká, Protokoly a vhosts. LAUREN CARVALHO: Ti, kteří jsou jen další složky. Je mi líto, je to opravdu těžké vidět. Možná, že když jsme vypnuli světla? Colton, chceš to zkusit a najít vypínač světla? Je mi to líto. Nechtěl jsem o tom přemýšlet. LUCAS FREITAS: Ale je to v podstatě - Jo, pokud by - LAUREN CARVALHO: Lupa ve vaší obrazovce. LUCAS FREITAS: Já ne mají tuto funkci. LAUREN CARVALHO: [neslyšitelné]. OK. No, je tu jen spousta přírodních světlo v této místnosti také. LUCAS FREITAS: Řekněme jen předpokládat, že existují další dva adresáře tam. LAUREN CARVALHO: Jen mějte s námi. Toto je pouze část, která budete při pohledu na terminálu. LUCAS FREITAS: Další příkaz je v podstatě možná budete chtít uspořádat soubory - například všechny vaše C soubory v jedné adresář, ale nemáte adresář jen pro C soubory ještě. Můžete v podstatě vytvořit adresář pomocí terminálu stejně, což je totéž jako kliknutí pravým tlačítkem a říkat Nová složka. Příkaz, aby adresář, který je mkdir, takže v podstatě "dělat" a "Adresář". A pak si můžete dát název adresáře. Řekněme, že jsem chtěl být nazýván, Já nevím, řekněme pset1 Dělat to, jen jsem vytvořil adresář. Pojďme si jen zkontrolovat, že je to tam. Takže pokud jsem to ls, teď vidím, protokoly a pak pset1, a pak vhostů. Takže mám nový adresář tam. A pak poté, co jste nový adresář, Možná se chcete nechat navigovat do něj, takže další příkaz to cd, která se právě v podstatě znamená jít do konkrétní adresář. Takže pokud chci jít do pset1, Mohu jen to cd pset1. LAUREN CARVALHO: cd stojany pro změnu adresář, [neslyšitelný] schopen pamatujte, že. LUCAS FREITAS: A teď vidíte, že místo toho jen s jharvard spotřebič, jsem jharvard zařízení, a pak pset1, protože to ukazuje mi, kde jsem v tomto počítači. Teď, když chci jít zpět do adresář, který byl před tímto jeden, jsem může udělat cd dot dot, což prostě znamená jít do adresáře, který jsem byl předtím, jako rodiče to adresář, v podstatě. A teď vidím, že jsem zpět na jharvard. Další věc, kterou mohu udělat je rm, což je odstranění souboru. Například, pojďme nejprve udělat ls aby viděli, co mám tady. Mám ahoj a hello.c. Řekněme, že chci k jejich odstranění. Můžu udělat rm ahoj. Bude říkat "odstranit obyčejný soubor ahoj? "A já říkám:" Ano. "A teď, když to ls, vidím, že je to už tam není. Pokud se snažím používat rm pro adresář, i když to nebude aby vám nic dělat. Bude to říct, hej, nelze odstranit adresář. Takže máme ten druhý přišel s názvem rmdir, který právě v podstatě znamená, odstranit adresář. Mohu například odstranit pset1. A když to udělám ls, vůbec se mi nelíbí mít už. Máte otázky k tomuto? Ne? Jo? DIVÁKŮ: Je důležité, že necháte prostor po - pokaždé, když začněte psát něco? LUCAS FREITAS: Jo. Pokud se mi líbí cd a adresář, Musím se dát prostor. Co prostor mluvíš? LAUREN CARVALHO: Prostor mezi cd a [neslyšitelné]. LUCAS FREITAS: Jo, budete muset dát prostor, protože cd je příkaz, a pak další řetězec, který Napíšete je v podstatě adresář. Takže je to jako argument. Jo? DIVÁKŮ: Když uvedete, všechny ty, jsou různé adresáře, ne? LUCAS FREITAS: Jo, jsou v adresáři. DIVÁKŮ: Jaký je rozdíl mezi adresářů? LUCAS FREITAS: Jsou to jen různé složky. Rejstřík je složka ve vašem počítači. DIVÁKŮ: Otevřít složku. LUCAS FREITAS: Jo, je to jen otevřené složky. LAUREN Carvalho: tady, ty které jsou v modré barvě jsou aktuální adresáře, které můžete dostat do a pak vidět spoustu věcí, které jsou v to, což je škoda, protože nemůžete skutečně číst ty v modré barvě. A ty v bílé jsou jen soubory které jsou v aktuálním adresáři. LUCAS Freitas: Takže adresáře jsou složky. Ty ostatní jsou soubory. DIVÁKŮ: Co je to příkaz jej obnovit, nebo ji vymazat? LUCAS FREITAS: Chcete-li vymazat? LAUREN CARVALHO: Chcete-li vymazat? LUCAS FREITAS: Myslím, že je to "jasné". Jo. Takže stačí zadat jasné, zda obrazovka je příliš komplikovaná. Nějaké další otázky? A dozvíte se spoustu jiných Příkazy jen přirozeně v průběhu semestr, protože jsou velmi užitečné. Takže teď pojďme hovořit o kompilaci. Mluvili jsme o pseudokódu a zdrojový kód a strojový kód. A je tu spousta kódu, a možná vy jste zmateni o tom. Mluvme trochu o tom, co se stane, když píšete program, a to zkompilovat, a to se stává spustitelný soubor. Ti jsou slova, která vy pravděpodobně slyšeli, a možná nejste úplně jistý, co se děje. Řekněme například, že chci, aby napsat program, který říká: "Dobrý den." První věc, která přijde na mysl, je tak nějak se snaží vymyslet, jak jste jít k tomu, že ve své mysli, a jste asi myslel v angličtině nebo nějaký jiný jazyk, stejně jako přírodní jazyk, pravděpodobně. A pak si myslím, dobře, když chci, Například, napsat program, který říká: "Dobrý den," já bych spustit program, Budu tisknout ahoj, a pak budu ukončete program. To je pseudokódu. To je v podstatě jen se snažíte přijít s sled událostí že se chystáte udělat, aby se schopen napsat program. Pak máte zdrojový kód, a zdrojový kód nemusí konkrétně se v C. Mluvíme o zdrojový kód v C, protože to je jazyk se učíme, ale samozřejmě Kód může být skoro žádné programovací jazyk, který máte. Později v semestru, budete naučit se další jazyky. To je také zdrojový kód. Například, tady, to je můj zdroj kód, a pak jsem včetně knihovna, a pak začnu hlavní, a pak jsem vytisknout. A Laura se mluvit trochu něco o všechno. Tak to je zdrojový kód. A co je objektový kód? Objekt je banda nul a ty, v podstatě. Co se stane, je, zpočátku pseudokódu, který je celý v angličtině. A myslím, jsi to pochopil. Pravděpodobně vaši přátelé pochopit to, a většina lidí by pochopit myšlenku. Ale počítače jsou opravdu hloupí, a oni nerozumí anglicky, takže se překládat, že do něčeho, obvykle přeložena do některé programovací jazyk. A můžete přemýšlet o programování jazyk jako něco jako jazyk že řeknete počítače how mluvit a rozumět. Ty v podstatě psát něco v jazyk, který oba vás a vaše počítač rozumět. To je zdrojový kód. Takže bude forma pseudokódu ke zdroji kód, je to na vás. Je to v podstatě děláte svůj program. Ale problém je, že Počítač není ani rozumět programovací jazyk. To nechápe zdrojový kód vůbec. Je to vlastně jen chápe nul a jedniček. Takže máme to velmi magické věc s názvem kompilátor, který v podstatě je chystá se zdrojem volal, že vám napsal v jazyce, jak vás a počítač mluvit, a teď jste bude transformovat, že v nul a jedniček. Takže v podstatě to, co kompilátor dělá, je se dostane zdrojový kód, v tomto případě C, že se bude transformovat ji do nuly a ty, které počítač chápe a může spustitelný soubor z něj. Má to smysl? Stačí si jen myslíte, že kompilátor jako nějaký překladatele, který je který vám pomůže vysvětlit, k počítači přesně to, co má dělat. Ale jak mohu sestavit. Vraťme se k zařízení, a řekněme, že dělám tento program. První Jdu k vytvoření adresáře tady, a budu to říkat "Praxi". Teď jdu na navigaci do adresáře, tak cd praxe. Teď jsem v praxi. Teď chci začít gedit, tak jak to mám udělat, že? Můžu buď klikněte zde, nebo mohu jen doslova typu "gedit", a to se děje otevřít na mě. Teď jdu psát svůj program, tak přesně to, co jsem napsal v závěru. Já jsem prohlásil knihovnu. Dělám int main, prázdnotu. A teď dělám printf, ahoj. Teď jdu zachránit to. Dovolte mi uvést do praxe, a Budu volat toto hello.c. Takže teď je to uloženo. Pokud chci, aby to zkompilovat, jsem vlastně Můžete to udělat na dvou různých místech. Můžu buď to v terminálovém okně, takže to velký, nebo můžete použít gedit, že ve skutečnosti má okno terminálu tady. Takže si můžete velmi pohodlně prostě váš kód, a pak můžete zadat co tady, a pokusíte se jej zkompilovat. Tak jak to mám sestavit kód? Nejjednodušší způsob, který máme, je pomocí dělat, což je funkce, která je v podstatě bude kompilaci kódu. Stačí jen říci, aby ahoj, tak "Dělat" a název programu. Chybička se vloudila. To je trapné. LAUREN CARVALHO: Dokážete [neslyšitelný]? LUCAS FREITAS: Omlouvám se. Nechtěl jsem ho uložit do právo adresář. Přijďte do praxe, a nyní uložte jej jako hello.c. Je mi to líto. Teď je to uloženo. Dovolte mi, abych prostě ls a musí být Ujistěte se, že je to tady. OK, teď je to tady. Takže teď, když to udělám, aby ahoj, to vyplivne spousta věcí, ale pak to prostě dává mi další řádek pro terminál, který Znamená to, že byla úspěšná. Takže teď, když to udělám LS znovu, jsem vlastně viz tento soubor zeleně, která je spustitelný soubor. A pak když chci spustit, vše, co Musím udělat, je tečka lomítko ahoj. Bude to pozdravit tady, tak to je přesně to, na co se ptám ji. Je tu ještě jeden způsob sestavování, který se používá řinčení. Zvonění je jen kompilátor, který máme, a to je trochu více upovídaný, aby zkompilovat. Ale funguje to stejně dobře. Takže pokud jsem to řinčení, a pak-O a jméno, které chci dát spustitelný soubor, takže řekněme, že "Dobrý den." A pak soubor, který chci sestavit, hello.c. Je to také bude kompilovat. A máte soubor zde, a Mohu jen spustit jej stejně. Takže oba pracují. Má to smysl? Jakékoliv dotazy? DIVÁKŮ: Můžete přiblížit v trochu? LUCAS FREITAS: Je nám líto? DIVÁKŮ: Zvětšení? LAUREN CARVALHO: Myslím, že vám může jen velet a. LUCAS FREITAS: Příkaz co? LAUREN CARVALHO: Příkaz navíc. LUCAS FREITAS: Ne LAUREN CARVALHO: Oh, to není chodit do práce, protože - je to proto, že jsme se nastavit rozlišení pro tuto věc. LUCAS FREITAS: Já ne že můžeme přiblížit palců Jo, nemůžeme přiblížit. Máte další otázky? Promiňte. DIVÁKŮ: Dokážete opakovat řinčení? LUCAS FREITAS: zvonění? Zvonění je totéž jako značka, ale Rozdíl je v tom, že poprvé budu napsat řinčení, což je příkaz, pak budu dělat -0, vše, což je jen to, co budeme učit později jako vlajka. Tak jen si myslím, že vždy dát-o. A pak první, budete dát název spustitelného souboru, v podstatě soubor, který jste chystáte vytvořit. Takže mohu říci, například, hello2 a pak soubor, který chci sestavit, který je c. soubor.. Tak to je hello.c. Má to smysl? Publikum: Dobrý den, co? Co je to? LUCAS FREITAS: hello.c. A když jsem zkompilovat, a je-li Já ls, mám také hello2, že jsem sestavil. A když se snažím spustit, bude to dělají přesně totéž, co ahoj, jen vytisknout ahoj. DIVÁKŮ: Jak to, že pro značku si můžete dát hello.c po? LUCAS FREITAS: V make, můžete nemusí dát. c.. V značky, stačí říct, název programu. Nemusíte říkat. C.. Ale pro kovový zvuk, měli byste. DIVÁKŮ: S řinčením se vám také muset přidat [neslyšitelný] LAUREN CARVALHO: Jo. Takže budete muset také do knihovny. LUCAS FREITAS: Jo, to je něco, budeme používat později. Tomu se říká propojení, a myslím, že jsme mluvit o tom později. Další otázka? DIVÁKŮ: Myslíte si, dát tečka lomítko zvonění? LUCAS FREITAS: Ne Tečka lomítko je jen otevřít spustitelný soubor. Takže zvonění, stačí napsat "řinčení," a pak, chcete-li otevřít spustitelný soubor, který jste právě sestaven, pak nemáte dot lomítko a název. Má to smysl? DIVÁKŮ: Pokud jste se právě změny [Neslyšitelný] k Hello World, to si muset překompilovat? LUCAS FREITAS: Jo. když chci říct, např. "ahoj tam, "mohu jen uložit hned, a já Jen ho zkompilovat znovu. Tak mě nech dělat make ahoj. A když to udělám Dobrý den, to bude říkají "ahoj." Dává to smysl? Nějaké další otázky? DIVÁKŮ: Máte zahrnout Standardní I / O koordinovat práci? LUCAS FREITAS: Jo. Standardní I / O je v podstatě knihovna, která má implementace pro printf. Takže to, co přímo na top zahrnuje stdio. To je včetně knihovnu, která v podstatě má spoustu různé nástroje, které můžete použít. jeden? Z nich je printf, že je funkce že v podstatě tiskne zprávy na obrazovce. Nějaké další otázky? Ne? OK. Takže teď pojďme hovořit o - LAUREN CARVALHO: Řekněme, jít na vodítku stylu. Myslíte si chcete jen najít tu? LUCAS FREITAS: Tak jdeme mluvit o stylu. LAUREN CARVALHO: Oh, David nedokončil. OK. Proč bychom se vrátit do stylu na samém konci? Je to vlastně byl aktualizován jak mluvíme. LUCAS FREITAS: Jo. Pojďme způsob David dokončit to. LAUREN CARVALHO: Může zapneme vlastně? Takže doufám, že to už všichni těší Scratch. Bohužel, je to čas, aby vzdálit se z toho - bohužel je čas odejít z těchto krásných programových bloků na C. Ale naštěstí všechny programovací konstrukty, které jste pracuje se na Scratch jsou přímo přeložitelné do C, a my jsme začnou učit o některé z nich právě teď. Pojďme mluvit o podmínkách v booleovských výrazech. To je běh na rezervy napájení z baterie. LUCAS FREITAS: Jak je že nefunguje? OK. Ty tam, budu mít - LAUREN CARVALHO: Takže podmínky jsou důležité, protože nám umožňují představit logiku do našich programů. Zde je příklad stavu v rámci programu C. Všimněme si, jak se to - Takže tato podmínka blok právě zde, v tomto printf prohlášení nebude provádět pokud podmínka v rámci závorky, n větší než 0, vyhodnocen jako true. Nyní jsou všechny podmínky v f výroky jsou logické výrazy, což znamená, že se jsou jen dvě možnosti. Mohly by buď vyhodnotit na hodnotu true, nebo mohou hodnotit false. Tak tady, tak to dává smysl, ne? n větší než 0, znamená to, že je pozitivní číslo, což znamená, že se bude tisknout out "si vybral kladné číslo." Existuje spousta booleovských výrazů , které mohou tvořit stav s init prohlášení. Máme méně než. To je méně než nebo rovno. To je jen sranda [neslyšitelný]. Chcete-li printf dojít, pokud je to větší než nebo rovno 0, pak byste si vybrat to. Takže rovná jen připojí přímo Po více než znaménko. Equal, který je odlišný od jen jeden znaménko rovná se, equal ve skutečnosti znamená, že to, co je na levá strana je stejná jako co je na pravé straně této kde znaménko rovná se je co? Jaká je jen jeden rovnítko? Přiřazení. LUCAS FREITAS: Kdo to řekl? Je to cukroví? Oh, ne. Promiňte. Promiňte. Oba jste si sladkosti. Oh, OK! Tři lidé se cukroví! LAUREN CARVALHO: Tak tohle tady je operátor třesk předchozí znaménko rovná se, aby to nerovná. Takže jestli je to v mém stavu, Tělo stavu by provést pouze v případě, bez ohledu na to v vlevo není totéž jako co je na pravé straně. Mohu také jen vykřičník. Ve skutečnosti uvidíme ve funkci klouzat, jak by to být použity. LUCAS FREITAS: Nějaké otázky? Ne? LAUREN Carvalho: Můžeme kombinovat tyto Booleovské výrazy konstruovat více složité podmíněné příkazy. Takže zde, v případě, bez ohledu na to na levé straně na pravé straně dvojité tyče nebo co je na pravé straně dvojité tyče vyhodnocen jako true, pak budeme tisknout neplatné. A pak tady dole, pokud bez ohledu na to na levé straně dvě ampersandy a bez ohledu na to na pravé straně straně ze dvou ampersandy vyhodnocen jako true, pak budeme tisknout platný. Dvojité pruhy se nazývají logické Operátor OR dvojité ampersandy jsou tzv. logický operátor AND. Ano? DIVÁKŮ: Jsou ty jen malá písmena l'y? LAUREN CARVALHO: Ne Jsou to vlastně - Znáte-li vůle, stejně jako nad vaší Return klíč? Vidíte, že? LUCAS FREITAS: Je to vlastně bar. LAUREN CARVALHO: Je to vlastně jen dva bary. DIVÁKŮ: Můžeš použít equal řetězců? LUCAS FREITAS: Ne Budeme se učit později něco o tom. LAUREN CARVALHO: K dispozici je funkce které můžete použít. Ale nemusíte se se obávají, že ještě ne. Co když dám tento program číslo 5? Co bude tisknout? DIVÁKŮ: [neslyšitelné] platný. LAUREN CARVALHO: Platný? Jo. Nevím, kdo má, že. [Smích] LAUREN CARVALHO: To je docela děsivé [neslyšitelný]. DIVÁKŮ: Takže double a, že prostě znamená, že a? LAUREN CARVALHO: Jo. Takže číslo 5 je tak větší než 0 a menší než 100. DIVÁKŮ: Proč by to být jeden? LAUREN CARVALHO: Jeden ampersand je ve skutečnosti něco jiného, ​​a to je Bitový operátor, který budete dozvědět se o později. Ale je to něco, co skutečně funguje s kousky daného čísla. LUCAS FREITAS: Jen si myslím, že ne muset starat o tom teď. LAUREN CARVALHO: Myslím, že je to pravděpodobně přijde příští týden. LUCAS FREITAS: Nějaké další otázky? Ne? LAUREN CARVALHO: Tak jsme viděli, že blokovat může stát samostatně, ale může také být spárována s a jiný blok. Takže v tomto případě, je-li n větší než 0, budeme tisknout "You vybral kladné číslo. "jinde, což znamená, v případě, že je 0, nebo v případě, že je to méně než 0, budeme tisknout, "Ty jsi je vybral záporné číslo." Zajímavostí je, že tyto jsou navzájem vylučují. Je tu nikdy nebude případ , ve kterém to a to mohou oba vytisknout. Jsem si jistý, že pracoval s if / else box na Scratch, takže by to mělo být docela povědomě. Ano? DIVÁKŮ: Potřebujeme prostor mezi int n se rovná vezmi_int pak prostor v if? Jako bychom použít linku [neslyšitelný] LAUREN CARVALHO: Oh, prostor zde? DIVÁKŮ: Takhle, ale dvojnásobek prostoru. Ne, jít nahoru. Jdi nahoru. LUCAS FREITAS: Jen linka? DIVÁKŮ: Jo. LUCAS FREITAS: Jen prázdný řádek? DIVÁKŮ: Jo. LAUREN CARVALHO: Prázdný řádek? Ne. Je to jen stylistické věc. LUCAS FREITAS: Je to jako někdy stačí přeskočit takže některé řádky že kód nevypadá jako velký blok textu. LAUREN CARVALHO: Myslím, že to, co se stalo bylo, že jsme měli komentář, ale já trvalo to tak, že kluci budou muset přemýšlet o kodexu spíše než jen číst můj komentář. Obecně platí, že nebude opravdu rozteč ovlivnit způsob, jakým váš program běží. Je to spíše stylistické věci. A když máme stylu průvodce aktualizovaný a je připravena jít do konce roku supersection, budeme mluvit o tom víc. Je tu něco, co se děje tento program, ne? Protože 0 je opravdu záporné číslo. Tak uvidíme, jestli se nám podaří napravit. Můžete si asi představit, s tím říká, že jo? Pokud n je větší než 0, tiskneme, "Ty vybral kladné číslo. "Pak ještě pokud n je menší než 0, "Vybral sis záporné číslo. "jiný," Vybral sis 0 ". Nyní je zajímavá věc je, že to může jít donekonečna. Můžete mít bloku if, else, pokud blok, další else if blok, else if, else if, else if, jinak, v podstatě tak dlouho, jak budete chtít. A když postavený jako je tato, to jsou všechno bude bez sebe. Ano? DIVÁKŮ: Tak proč nemůžeš použít další, pokud místo [neslyšitelný]? LAUREN Carvalho: V tomto případě ano, mohli použít jiné, pokud, a to by bylo naprosto v pořádku, protože podmínky jsou samy o sobě bez sebe. Ale v případě, že podmínky nebyly exkluzivní na sobě, to by nutí je, aby nikdy jak vyhodnotit, pokud to dává smysl. DIVÁKŮ: V tomto případě bychom mohli hnízdo druhé, pokud v prvním případě,? LAUREN Carvalho: If - Co tím myslíš? DIVÁKŮ: Pokud se tyto dvě podmínky se vzájemně nevylučují? LAUREN CARVALHO: Pokud podmínky se vzájemně nevylučují? Ale vy chcete pouze jeden z nich spustit? DIVÁKŮ: Chceš jen pokud místo jinde. LAUREN CARVALHO: Jo. Tam se vždy bude spousta ze způsobů, jak můžete to udělat. Můžete určitě hnízdo je. A uvidíte v budoucím snímku, který můžete mít více IFS, jen jeden po druhém. Ale to je způsob, jak logicky organizování toku programu. LUCAS FREITAS: A je tu ještě jedna věc je, že budete požádáni o uvedení v případě, a pak další, pokud. To bude fungovat perfektně, ale je to špatné konstrukce, protože v podstatě, pokud zkontrolujte nejprve, zda, a zjistíte, že je číslo větší než 0, je stačí program ukončit. Nemusíte kontrolovat, zda je to méně než 0, ne? Ale pokud nechcete-li, pokud to bude kontrolovat jak, zatímco když to udělám, pokud je jiný, to bude kontrolovat, zda je větší než 0. Pokud je to, že to nebude ani podívat u ostatních řádků kódu. Takže jste v podstatě kontrolovat ji jako dvakrát zbytečně, tak to je důvod, proč jsme pokud else if dělat. Nějaké další otázky? DIVÁKŮ: Takže funkce o if je stejný jako kdyby to bylo jen v případě,? LAUREN CARVALHO: Ne Ty skutečně uvidí v mé další posuňte příklad, ve kterém je možné být různé. V tomto případě, je to skoro stejné. Takže tady máme příklad násobek if, a funkce není totéž jako bych právě řekl, že pokud jinak, pokud jiný, pokud jiný. Řekněme, že o tom, co by se vytisknout , jestli jsem zadat číslo 95 do tohoto programu. DIVÁKŮ: [neslyšitelné] LAUREN CARVALHO: A pak? DIVÁKŮ: [neslyšitelné] LAUREN CARVALHO: Jo. Takže v tomto případě, tyto podmínky jsou se vzájemně nevylučují navzájem. A protože není nic zastavit Tento stav z posouzení, zda tento kdo už má, jsou to jen všichni budeme tisknout. Tak jak bych mohl tento problém vyřešit? DIVÁKŮ: IFS jinde? LAUREN CARVALHO: Můžete použít IFS jinde. Mohl bych změnit pořadí z nich, že jo? Kdybych to udělal poprvé tenhle? No, vlastně ne. To by nefungovalo 95. LUCAS FREITAS: Ne, jen kdyby jinde. IFS jinde: LAUREN CARVALHO by opravil toto. Znamená to, že uklidit zmatek mezi IFS a IFS jiného? DIVÁKŮ: Chtěl jsem se tě zeptat, jestli jste použít jiný, pokud by se to zastaví? LAUREN CARVALHO: Správně. Takže jen to první. Pokud jsem zadal číslo 95, pouze tato by se vytisknout, a nikdy by postupoval k jinému. LUCAS FREITAS: Jen trochu myslet je to, jako kdyby se to stane, to udělat. Jinak je jako, ne-li, kontrola za to, a pak to udělat. Tak jako všichni jsou vzájemně exkluzivní. Můžete se dostat do dvou přes ty. DIVÁKŮ: Můžete použít logické A za této situace? LAUREN CARVALHO: Jo. To je další způsob, jak bychom mohli má pevnou tento problém. Jsme mohli definovat se pohybuje, ne? Takže bych řekl, pokud n je větší než 90 a méně než - No, myslím, že tohle není opravdu nezáleží, ale tady bych řekl, pokud n je větší než 80 a menší než 90 °. Větší než 70, méně než 80 ° C. To by také pracovali. [Smích] LUCAS FREITAS: Je to strach. LAUREN CARVALHO: Nebojte se. LUCAS FREITAS: To není že to bude v pořádku. Je to jen, že je to zbytečně verbose. Stejně jako v informatice, jeden by měl být tak jednoduché, jak je to možné, pokud Máte funkčnost. Chcete cukroví? DIVÁKŮ: Nepotřebuju ho. LAUREN CARVALHO: Ty děsíš všichni, Lucas. LUCAS FREITAS: Omlouvám se. LAUREN CARVALHO: David také zmínil Tento switch prohlášení ve třídě. V podstatě to, co se děje, je spínač výpis má proměnnou. V tomto případě, bereme celé číslo. Pokud je číslo 1, jedeme do vytisknout, "vybral si malý číslo. "Je-li číslo 1," Ty vybral středního počtu. "Pokud číslo je 3, "Vybral sis vysoká číslo. "A také jsem měl výchozí případ tady dole, ale není to ukazuje up, což je škoda. V podstatě je to jen další syntaxe. Mohli jsme zavedli tento přesný totéž s if a else, pokud prohlášení. Ale když existuje mnoho různých podmínky a mnoho různých variace na to, co chcete udělat pro každý vstup, je to možnost. Takže je to jen dobré syntaxe vědět. Ano? DIVÁKŮ: Proč je to zpětné lomítko n v první? LAUREN CARVALHO: až tam? Neexistuje žádný zpětné lomítko n tam protože vezmi_int - pokud se pokusíte to, že bude vám tuto výzvu. Dej mi číslo mezi 1 a 3. A když jsem dal Vůle n, by to se mě na další řádek, ale já jsem prostě chtěl, aby zadejte číslo hned za dvojtečkou. Mohl jste dát mrtvého chodu n. Není to velký problém. Jo? DIVÁKŮ: U tohoto kódu, je to případ jeden, je to proto, je to první případ? Vzhledem k tomu, - LAUREN CARVALHO: Ne, ne, ne. Tak to je mi dát číslo mezi 1 a 3. Pokud n je 1, jsem tisknout. Kdybych se zeptal na dopisy, mohl bych mít řekl, dej mi dopis mezi A a C. Pak to bude případ A. DIVÁKŮ: [neslyšitelné]. Případ by jen [neslyšitelný] LAUREN CARVALHO: Jo, jasně. Jo? DIVÁKŮ: Co kdyby jste chtěli mít více relačního výrazu? Takže místo toho, aby říkal n se rovná 1, [neslyšitelný] n je větší než 1, v prvním případě? LAUREN CARVALHO: Vlastně, když to neudělám definovat některé z těchto případů, to by bude pokračovat dolů. Takže vlastně, možná to není na co se ptáte. LUCAS FREITAS: Myslím, že s dotazem, zda případ byl n větší než 0, u méně než 0. LAUREN CARVALHO: Možná, že spínač tvrzení není opravdu to, co chcete, pro použití v tomto případě. LUCAS FREITAS: Příkaz switch je jen pro hodnoty, takže máte kontrolu hodnota je jako ten či onen. Takže můžete ve skutečnosti dát podmínek. DIVÁKŮ: Co když osoba typy s [neslyšitelný]? LAUREN CARVALHO: To by bylo můj výchozí případ, který bohužel nemůžete vidět. LUCAS FREITAS: [neslyšitelné] aby byly vidět. LAUREN CARVALHO: Ve skutečnosti, víš co? Prostě jít studovat 50, a budu jen přiblížit na snímcích o studiu 50, protože je to jen nepříjemné. Dovolte mi tedy skutečně jít do stavu. To se jen tak chvíli trvat. Dobrá. Takže, je mi líto. Alespoň teď budeme moci vidět vše, aniž by přerušil. Dobrá. Takže když dali v 10., bychom výchozí zde na mém standardní případ, a já by jen vytisknout neplatné proto, že jsem požádal je, aby zadání celé číslo mezi 1 a 3. Nějaké další otázky? Jo? DIVÁKŮ: Řekněme, že pro případ jedné, u tři, že jste chtěl, aby to bylo všechno to samé, takže si vybral číslo to není médium číslo. V takovém případě, by bylo nadbytečné? Chtěli byste stačí změnit text v obou z nich, nebo by tam být nějaký redundance? Existuje nějaký způsob, jak spojit [Neslyšitelný]? LAUREN CARVALHO: Existují způsoby, jak kombinovat, ale věřím, že je možné kombinovat pouze ty sousední. Takže když jsem se definovat nic pro případ dvou, to by platí pro oba případy. Ach, kdybych nedal nic pro případ kdo by to platí jak pro Případ jedna a dvě. Pokud to dává smysl. DIVÁKŮ: Dokážete opakovat, že jeden? LUCAS FREITAS: OK. Pokud jste v podstatě, jako máte totéž, ale nechcete dát něco tady, měli byste být buď případě jeden nebo případ dvou, postupujte takto. Je to tak? A to zlom znamená, že pokud máte v tomto případě, jen tak odejít. Takže to je to, co brzdy znamená. Takže když jsem to udělal, ty vypadáš, že je to případě jeden, a vy byste prostě to udělat. Kdyby to byl případ dvou, by také jen sem a dělat, že. DIVÁKŮ: Ale můžete to udělat? Pokud je tu něco pro Případ dvou [neslyšitelný] LAUREN CARVALHO: Nevěřím, že můžete to udělat. Nemyslím si, že můžete přeskočit kolem. Můžeš to udělat, Robe? To si nemyslím. DIVÁKŮ: Takže jen jedno číslo může jít po případě, že jo? Tam nemůže být případ jeden, čárka, dvě? LUCAS FREITAS: Ne, nemůžeš. Ty určitě ne. LAUREN CARVALHO: Myslím, že bod je To je volba, a to nemusí se vešly vaše use case, takže pak můžete by se používat, pokud podmínky. DIVÁKŮ: Tak proč byste to udělat? Vypínač? LAUREN CARVALHO: Já bych použít Pokud jste velmi definováno - ve skutečnosti, Lucas, se budete blokování. LUCAS FREITAS: Oh, omlouvám se. LAUREN CARVALHO: Máte-li velmi definované chování, které chcete pro každý vstup, může to být něco stručnější než psaní ven if pro každou z nich. DIVÁKŮ: Co dělá zlomu znamenalo znovu? LAUREN CARVALHO: přestávka znamená zastavit. Pamatujte si, že když jsem neměl tuto pauzu tady, byli bychom právě spadl do dalšího případu. LUCAS FREITAS: Přestávka znamená dostat z příkazu switch. Vzhledem k tomu, jestli je to 1, chci vytisknout tento a odejít. Nechci kontrolovat nic jiného. DIVÁKŮ: Nechcete vytisknout něco jiného. LUCAS FREITAS: Jo. Vzhledem k tomu, že je to vzájemně vylučují. DIVÁKŮ: A to postupovat pouze v případě, že další první případ není pravda? Nebo to otestovat všechny případy ve stejnou dobu? LUCAS FREITAS: Ne, to kontroly postupně. Postupně, jo. Ještě jedna otázka, pak musíme přejít na tak můžeme pokrýt vše. Jo? DIVÁKŮ: Takže pro případ, může mít udělat něco navíc jen jeden? Mohl bys to dát rozsah? LUCAS FREITAS: Ne LAUREN CARVALHO: Nemyslím si, že můžete dát celou řadu. LUCAS FREITAS: Ty nemůžeš nemůže dát rozsah. Diváků: Tento případ je specifický [Neslyšitelný]. LUCAS FREITAS: Spínač je druh hodnot. Můžete dělat různé věci v závislosti na hodnotu, specifická hodnota. Můžete to udělat řadu, nemůžete dělat něco jiného. Je to jen další nástroj, viz. LAUREN CARVALHO: Většina lidí nepoužívá switch velice CS50, ale je to tam. Dobrá. Takže další věc, kterou budeme mluvit o je ternární operátor. To je jen jiný typ o podmíněné. V podstatě to, co se tady děje, je, že jsem žádat o celé číslo, a pokud n je větší než 100, jdu vytisknout "High". Pokud tomu tak není, budu vytisknout "low". Takže to, co dělá, je podmínka tady v závorkách, a může trochu myslet na otázky jak se ptám, zda je to pravda, nebo ne. Pokud je to pravda, budu to dělat jako první věc, a pokud to není pravda, že jsem dělat to druhá věc. Jakékoliv dotazy týkající se ternární operátor? LUCAS FREITAS: Jen chci poznamenat, ze David je, že vždy, když máte Stav - LAUREN CARVALHO: Myslím, že David je sledování přes live stream. LUCAS FREITAS: On dělá život proud právě teď. Takže když budete mít podmínku, že jste měl dát složené závorky, stejně jako máme v přepínači prohlášení zde. Máme složené závorky zde. Z nějakého podmínky, že jste Předpokládá se také, že dát. LAUREN CARVALHO: Uvidíš to v průvodci stylu. Nemáme vlastně mají průvodce stylu právě teď. Myslím, že David je stále funkční. LUCAS FREITAS: Řekl, že je to jen pracuje nyní. LAUREN CARVALHO: Oh, je to pracuje nyní? OK. Takže zřejmě letos ve stylu průvodce, i když jste jen jeden řádek, musíš dát ty složené závorky palců Nemusíte nutně potřebovat pro Funkce programu. A možná bychom si měli dát pauzu poté, co podmínky a jít rovně v příručce styl zmizí do některé z těchto věcí? LUCAS FREITAS: Jo. Máte dotaz? DIVÁKŮ: Ne, počkám do průvodce stylu. DIVÁKŮ: Mohl byste se vrátit na ternární operátor? LAUREN CARVALHO: Ternární, ano. LUCAS FREITAS: Ternary Provozovatel v podstatě, pokud else, ale místo toho, aby musel mít dva řádky kontroly if a pak jiného, ​​stačí jeden řádek. Takže v podstatě, když chci dát řetězec Hodnota vysoké nebo nízké, a já Chcete udělat vysoké, pokud n je větší než 100 nebo nízké, pokud je to méně, co se dá dělat je to [neslyšitelný] řetězec bude, a pak jsem zeptejte program je n větší než 100? Takže to je důvod, proč mám tento výraz v závorkách a poté otazník. Já se ptám, je to větší než 100? Pokud je to, že to bude vysoká. Pokud to tak není, že to bude nízká. Takže v podstatě to, co si myslíte, že se ptáš otázku, takže se dal do závorek stavu. Pak si dal otazník protože jste ho ptát. A pokud je to pravda, že to bude v prvním hodnoty zde [neslyšitelný]. Pokud to tak není, já jdu dát hodnota, která je za dvojtečkou. Má to smysl? Je to také něco, co je jako nástroj v C, ale nemáte na konkrétně použít. Ale CS lidé obvykle rádi, že , protože to prostě šetří linky. LAUREN CARVALHO: Je to velmi elegantní. To dělá hodně v jediném příkazu. DIVÁKŮ: Takže znak procent je Jen ať jsou výsledky na předchozí vedení? LAUREN CARVALHO: Oh, omlouvám se. Tento znak procent je vlastně zástupným symbolem pro to to. V prohlášení printf, máš to string tady, což je to, co se děje na vytisknout, ale nemůžete jen dát to s tam. V opačném případě by to vytisknout se, že je doslova. Takže dáme procent sem, aby se toto místo držel na cokoliv přichází po čárkou. Takže pro řetězec, musíš procent s.. Pro celočíselné, procenta i. Pro float, f procent. Uvidíte ty, jako my viz další příklady. Ale možná by sis měl promluvit o Průvodce styl na chvíli, teď že je to. LUCAS FREITAS: Pokud půjdete na cs50.net/style, budete vidět průvodce stylu. U problémových soupravy, vaše skóre pro Problém sada se skládá z rozsahu, což v podstatě znamená, že pokud jste vše části z problému nastavení nebo pokud jste pokus o něco. Druhá věc je správnost, který prostředek je váš program dělá to, co měl dělat, nebo to mají chyby, nebo se to nedělá, co to má dělat. Třetí věc je design, což znamená, že jste provádění tohoto dobře, nebo jsou Používáte zbytečné příkazy? Tak například, pokud chcete zopakovat číslo 10 krát, píšeš pro smyčce nebo jste právě děláte 10 krát Totéž tvrzení, jen to, kopírování a vkládání. Takže design je za to. A konečně, máte styl. Styl je stejně jako rozhodování pokud váš kód vypadá čitelné a docela hezké. Je to prostě v podstatě znamená, je váš kód čitelný? By se někdo, kdo se díval jsou Váš kód bude schopen pochopit, co to dělá? Má připomínky a podobně? Pojďme se bavit o stylu, který máš používat. První věc, kterou je komentář. Komentáře jsou velmi důležité pro váš Kód protože někdy děláte váš program, a víte přesně, co Chcete-li tak učinit stačí začít kódování, stačí zadat do spoustu C. Ale pokud někdo hledá se, že jste Kód, že to nebude moci pochopit, protože nevědí, věci, které jsou ve vaší hlavě, jako pesudocode, takže možná, že bude se jen těžko pochopit, co kód dělá. Takže komentáře jsou opravdu užitečné vysvětlit pro někoho, kdo se dívá na váš kód, co to dělá, a vlastně i pro vás, jsou velmi užitečné. Jak jste jít na tvrdší a tvrdé Psets, budete vidět, že kód dostane delší, a pak komentáře jsou opravdu důležitá, takže si vzpomenout, co každý část programu dělá. Chcete-li vložit komentář, můžete prostě lomítko lomítko a pak napsat komentář. A celý řádek je součástí komentáře, a co napsat, že to nebude používá pro váš kód. Je to v podstatě jako překladač bude ignorovat. Má to smysl? DIVÁKŮ: Co uděláte znovu abyste mohli napsat komentář? LUCAS FREITAS: to? Lomítko lomítko? Kdykoli zadáte lomítko lomítko, bez ohledu na je v tomto řádku se nebude , které mají být považovány za C. Jo? DIVÁKŮ: Takže po komentářem, můžete jen vstoupit a začít nový řádek? LUCAS FREITAS: Jo, přesně tak. LAUREN CARVALHO: slash slash je pro jednotlivé linky komentáře. LUCAS FREITAS: Například, zde máme - dovolte mi, abych zvětšení - Například, tady jsem prohlásil float, ale možná, pokud si jen dát tento v kódu, jako jste vy nemáte tušení co to dělá, stejně jako ve skutečnosti někdo, kdo se dívá na tento kód se bude, stejně jako to, co sakra děje? Pokud dáte komentář říká "převést Fahrenheit na stupně Celsia, to dělá hodně větší smysl. Ty jsi, jako, OK, ty jsi dělá konverze. Má to smysl? Takže je to jen něco, co pomáhá lidem připraven váš kód a také budete moci organizovat váš kód lépe. Druhá věc je, že můžete dělat multi-linka komentáře, tak se jeden komentář pro spoustu linek. Místo toho, aby lomítko lomítko, První řádek komentáře, lomítko lomítko, druhý řádek, a tak dále, můžete lze použít lomítko hvězdu. Způsob, jakým to udělat, je, že pro První řádek komentáře, jste chystá udělat lomítko star star, takže jen tak. Stejně jako tady máme začátek programu, obvykle dát, kdo jste jsou to, co tento program dělá, a tak podobně. Je to něco jako záhlaví programu. Opět platí, že to není něco, co kompilátor bude starat o, ale je důležité, abyste věděli, co to program dělá, nebo pro jiné osoby vědět, co váš program dělá. Takže si to lomítko star star, a poté Poslední řádek se chystáte udělat hvězdu lomítko, aby bylo možné uzavřít že komentář. Takže v podstatě u všech ostatních linek, stačí napsat cokoliv, a to se vše bude ignorován. A také, stejně jako styl, uvidíte, že každé z linek má hvězdu, a všechny hvězdy jsou zarovnány. To jsou důležité věci, aby že váš kód vypadá pěkně. Zní to dobře? Nyní, podmínky. Co David říkal, že bychom měli skutečně dát v těch snímků, je to, že pokud máte jakékoliv if nebo jakékoliv podmínky, měli byste použít složené závorky ukázat, že To je to, co se bude dít když máte podmínku. Technicky vzato, pokud trpíte onemocněním, a pak další řádek je jen jeden linka, nemusíte mít technicky dát složené závorky. V podstatě by kompilátor pochopit je stejně jako implicitní. Ale CS50, žádáme vás lidi, aby složené závorky jen proto, že vaše Kód je více organizovaná a čitelnější. Vzhledem k tomu, že kód dostane déle, pokud nemají složené závorky a tak. To se opravdu chaotický. LAUREN CARVALHO: To je přesně to, co David jen poukázal na to V mých předchozích snímků. Je to určitě funguje bez složených šle, ale ze stylistických důvodů budeme se ptát, že si dal ty palců A když se rozběhnou style50, což je druh kontroly 50. styl, bude vám připomenout, jak to udělat. LUCAS FREITAS: A další věc je, nezapomeňte dát složené závorky spolu v každém řádku. Takže vy, například, jsem s. Přejděte na další řádek, otevřete kudrnaté rovnátka, pak přejít na další řádek. Odsazení, což je čtyři prostory. Pak můžete napsat cokoliv, pak další linka, a zavřete složená závorka. Takže se ujistěte, že oba ty kudrnaté rovnátka jsou v různých tratích. DIVÁKŮ: Takže pokud tento kód měl jako 10 jinde IFS, mělo by to být 10 sad držáků? LUCAS FREITAS: Ano, pro každou z nich. Jo. Takže v případě, else if, a tak dále. DIVÁKŮ: Copak Stisknutím klávesy TAB odsadit? LUCAS FREITAS: My vás s dotazem kluci použít čtyři mezery. Některé textové editory kartu překládat jako čtyři mezery automaticky. gedit není, takže budete muset dělat space space space space. To je také něco, co někteří programátoři dělat jen karty, některé programátoři dělat jen čtyři mezery, a někteří jiní lidé dokonce dělat dva nebo tři mezery. Je to jen, že tady se ptáte vy dělat čtyři mezery. DIVÁKŮ: Tam je téměř určitě to být způsob, gedit, aby automaticky [neslyšitelný]. Stejně jako ne [neslyšitelný] dělá. LUCAS FREITAS: Jo. Myslím, že můžete jít do nastavení. DIVÁKŮ: To už dělá všechno. LUCAS FREITAS: Je to už dělá? OK. Takže jen se ujistěte, že vám mají čtyři mezery. DIVÁKŮ: Ještě musíme dát kudrnaté držáky na pro smyčky stejně? LUCAS FREITAS: Ano. LAUREN CARVALHO: Pokud vaše zapouzdření blok kódu, jen prosím použijte složené závorky. A předtím, než si myslíte, že jsme jen jsou puntičkáři o tom bez dobro Důvodem, jestli jste se jít na dostat tech stáže u velkých firem, budou vám průvodce stylu, a oni vám řeknou, to je to, co vaše Kód musí vypadat. A i když jste se naučili kód jako to, možná ve vaší stáže budete muset něco udělat zcela odlišná. Oni očekávají, že budete odpovídat k jejich stylu. LUCAS FREITAS: A ještě jedna věc je které si všimnete, jak mám jako x, prostor, méně prostoru, 0? Kdykoli máte operátora - to může být jako plus, mínus, krát méně, větší, bez ohledu na operátora - budete muset dát prostor na levé straně a právo provozovatele. LAUREN CARVALHO: Ti, kteří jsou tzv. binární operandy. Jen ujistěte se, že máte vždy prostor z vašich binární operandy. LUCAS FREITAS: Toto je není binární operand. LAUREN CARVALHO: To je , protože to vyžaduje dva. LUCAS FREITAS: Jo, jo. OK, přepínače. Za prvé, musíte vidět, že stejně jako v případě, nebo jiného příkazu, máte dát složená závorka na samostatném řádku a v rámci složená závorka zde. Všimněte si, že je jediný prostor po zapnutí, stejně jako v případě, a jinde jsme měli jednu mezeru mezi že a závorky. Takže budete muset dát, že. A není to žádný prostor hned po každém z závorek nebo do konce z závorkách. Takže vidíte, že je to všechno dohromady, a také ráda sem. Jo? LAUREN CARVALHO: Myslím, že musíme jít dál. LUCAS FREITAS: Tak tohle je součástí stylu průvodce, který máte pro CS50. Ujistěte se, že jít do cs50.net/style a podívat se na to. To vše jsou velmi důležité pro váš styl skóre. Nech mě jít zpátky do výkazu. LAUREN CARVALHO: Raději stačí použít style50. Jsme prostě jít přímo do smyčky. Dobrá. Takže pojďme zpět k obsahu, nyní že jsme přešli průvodce stylu. Smyčky, viděli jste je v Scratch, a budeme mluvit o nich C. V pro smyčce, jsou tři části do Prohlášení o to pro smyčce. Máš svou inicializaci v které můžete nastavit své proměnné. Máš Váš zdravotní stav, které jsou kontrola, zda je něco true nebo false a zda smyčka by měla pokračovat. A máte svůj aktualizace, které je aktualizace proměnných. Prostě se rychle podívat na některé C Kód z toho pro smyčky v akci. Co se děje je zde v inicializace, budeme i nastavení na 0. Ve stavu jsme kontrolu zda i je menší než 10. A v této aktualizaci jsme zvyšování i. Takže to, co bude mít za následek od to pro smyčce? LUCAS FREITAS: Ve skutečnosti, v první řadě, si kluci vědí, co i + + je? DIVÁKŮ: Zvýšení o 1. LUCAS FREITAS: Zvýšení o 1, ano. Tak to je totéž jako dělá i rovná i plus 1. A všimněte si, že nemáme prostor mezi i a + +. Takže vy víte, co to bude dělat? Může mi někdo říct? A možná trochu cukroví z důvodu, že? DIVÁKŮ: [neslyšitelné] LUCAS FREITAS: OK. [Neslyšitelný] ukázat všem, později [neslyšitelný]. Jo, to bude show "Tento Je CS50 "10 krát. LAUREN CARVALHO: Myslím, že to bylo v názvu snímku. LUCAS FREITAS: Jo, jo. [Smích] LUCAS FREITAS: To pomáhá. LAUREN CARVALHO: Takže ty jsou smyčky. Jedeme se podívat na nějaké další příklady FOR smyčky později. Ale pojďme skutečnosti se podívat na Druhý typ smyčky se kterými se setkáte v jazyce C, a je to jen while. V cyklu while, jste právě dostal podmínku. Podmínka je kontrolována začíná, a je-li tato podmínka vyhodnotí na hodnotu true, pak kód v tělo, zatímco blok bude provádět. A kód bude pokračovat provádět tak dlouho, jako je podmínka zůstává pravdou. Zde je příklad cyklu while v C. Budeme nastavit počet na 10 až začít. Tak dlouho, jak počet je větší než 0, budeme držet tisk z této variabilní zde. Chystáme se decrement počet a znovu zkontrolujte stav. Tisk, úbytek, kontrola stav znovu. Zde máme příklad, který se vztahuje na vaši otázku již dříve. Měli jsme procent s, když jsme byli vytisknout řetězec, a teď, jsme vytištění int, musíme procent i jako náš zástupný symbol místo. Písmena by měla být všichni pěkně intuitivní, s pro řetězec, i pro int. Takže pokud tento kód spustí, měli byste odpočítávání 10-0, vytištění každé celé číslo. LUCAS FREITAS: A na co si vzpomenete procent, jak to vypadá prázdný prostor, a pak jste uvedení této Proměnná zde v tomto prázdného prostoru. Takže například, tady budu mít jen prázdné, a pak dávám počítat právě tam, hodnota počtu. Má to smysl? Mohl jsem dělat jako printf a pak se cituje, počítat? Bylo by to fungovat? Diváků: Ne LUCAS FREITAS: Ne, protože to bude ve skutečnosti vytiskne slovo "count" místo tisku hodnotu. To je, jak si udělat to tisku hodnoty k proměnné namísto jen název proměnné. Jakékoliv dotazy? DIVÁKŮ: Proč používáte pro jak protichůdný k při pobytu? LAUREN CARVALHO: Já bych použít pro smyčky, pokud vím přesně, kolik iterace Chci také smyčky ke spuštění. V tomto případě, na tom nezáleží, protože Myslím, že jsem se snažil, aby myslíte, že opravdu jednoduché Příkladem pro tento snímek. Ale řekněme, že chcete něco jít dál, když - LUCAS FREITAS: například, že jste žádat o vstup do osoby vám dává ten správný vstup. Tak jako když vstup není OK, pořád ptáte na to. Nebo jako když jste rodiče nedávají peníze, pořád ptáte na to. [Smích] LAUREN CARVALHO: Nevíte, jak kolikrát budete muset udělat. LUCAS FREITAS: Protože ne nevím, kolikrát je to bude dál. LAUREN CARVALHO: Ale pro smyčce, musíte vědět, jak mnohokrát. Jo? DIVÁKŮ: Jen pro upřesnění, procento říká, že to je něco, co se se stalo, že i pro celé číslo, a zpětné lomítko n - LAUREN Carvalho: Prostředky? Kdo ví, co lomítko n znamená? Nová řada, jo. Přesně tak. LUCAS FREITAS: Můžete si myslet n jako nový řádek. LAUREN CARVALHO: Nice. DIVÁKŮ: Co je to počet pomlčka pomlčka [neslyšitelný]? LUCAS FREITAS: Počet minus minus je totéž jako plus plus, ale namísto zvyšování, je to snížení o 1. LAUREN CARVALHO: Jakýkoliv více zatímco otázky smyčka? Ne? Oh, jsme měli vynechali, že. To je do while. Velmi podobný cyklu while s výjimkou V tomto případě jsme se zkontrolovat stav po kód v těle smyčka provádí jednou. Tak jsme se spustit kód první bez ohledu na to, co. Pak jsme se zkontrolovat stav, provést je znovu, pokud je podmínka pravdivá. Zjistíte sami pomocí, když se ptáte na vstup uživatele. Vzhledem k tomu, že jste vždycky mít na požádat jednou, a pak v závislosti na tom, co vstup uživatele je, možná budete muset reprompt a zeptat se znovu a znovu, pokud Vstup není to, co si Očekává se, že bude. DIVÁKŮ: Takže je to jako formu pro lidi vyplnit. LAUREN CARVALHO: Jo, přesně tak. Zjistíte, myslím, že ve své první Pset, budete muset použijte dělat dobře smyčku sbírat vstup od uživatele. DIVÁKŮ: V závislosti na situaci, Vaše while bude mít tendenci běžet více častěji než while, jako jedním nebo tak něco? LAUREN CARVALHO: Pokud je to přesné - LUCAS FREITAS: Měly by se vždy spustí přesná množství časů, které vám chci to spustit. Stejně jako používáme dělat, když, protože jsme opravdu chtěl, aby se vstup alespoň jednou. V while, někdy nechcete jej spustit vůbec, pokud to není případ vykonat. Tak to záleží na konstrukci. Myslím, že můžete použít buď dělat, když ani zatímco pokud váš kód dělá, že to má dělat. LAUREN CARVALHO: Ale já myslím, že odpověď na váš Otázkou je, pravděpodobně ano. Řekněme, že podmínka je false. V jednom případě, že by bylo v jednou, a Dalším příkladem by to běžet nula krát. Takže, jo. Nějaké další otázky? Ano? DIVÁKŮ: Může podmínka smyčky se pro smyčce, pokud jde o variabilní další než [neslyšitelný]. LAUREN CARVALHO: Jo, to může být cokoliv. Pravděpodobně pro začínající Psets, můžete nebude muset setkat, že případ, ale Určitě to může být cokoliv. LUCAS FREITAS: Myslím, že jsme tu hotovi. LAUREN CARVALHO: Opravdu? Ne? LUCAS FREITAS: Loops? Jo. LAUREN CARVALHO: Neměli bychom být. Oh, jsme hotovi s poutky. OK. Ve skutečnosti, protože jsme mluvili tak, hodně, pojďme se vlastně všichni navigaci se k study.cs50.net/conditions. A budete se pohybovat dolů na problémy widgetu. No, vlastně, zatímco lidé jsou stále toto nastavení, CS50 studie je Bude to nástroj, který vaše TFS bude používají k přípravě části a že vy můžete použít, pokud jste zapomněl sekce. Bude obsahovat spoustu snímků, některé tipy a triky pro každého téma, a některé problémy praxe s řešeními. Proč se všichni stačí se podívat na tento problém tady. Omlouvám se, měl jsem připomněl, lidé přinést notebooky dnes. Ale pokud nemáte notebook, to je v pořádku. Stačí si jen zapisovat to dolů kus papíru nebo se podívejte na rameno svého souseda. Zkusme napsat program, který vyzve uživatele, aby se na ně hádat, Průměrný počet dětí na rodinu jednotka ve Spojených státech. Toto číslo je 2, mimochodem, jako vy můžete vidět z těchto příkladů. Chceme vytisknout průměrný počet dětí na rodinu v USA, pak se chcete co? Chceme shromáždit informace od uživatele. A pak záleží na tom, co uživatel je vstup, budete vytisknout buď je to správné nebo je to nesprávné. A první věc, kterou budete vidět, pokud kliknete na malou šipku na spodní část problému je widgetu na místě k zapisování nějaké pseudokódu. Takže nejste programování ještě. Vy jste jen na to vaše myšlenky v pořadí. Má někdo chtěl pomoci Lucas přijít s právem pseudokódu tohoto problému? LUCAS FREITAS: Co je první věc, že bychom měli asi dělat? Co vy na to? DIVÁKŮ: [neslyšitelné] LUCAS FREITAS: Jo, OK. Takže, tisk. Stačí říci, že tiskový tento průměr počet lidí? OK. Vytisknout otázka, řekněme. Poté, co jsem vytisknout tuto otázku, co mám dělat? DIVÁKŮ: Získejte vstup. LUCAS FREITAS: Získejte vstup. Ještě něco? DIVÁKŮ: Stav. LUCAS FREITAS: Stav. LAUREN CARVALHO: Co je to Podmínkou bude? Diváků: počet [neslyšitelný]. LAUREN CARVALHO: Správně. LUCAS FREITAS: Tak co mám zkontrolovat ve stavu? DIVÁKŮ: Pokud se rovná 2. LAUREN CARVALHO: Pokud je roven 2. Přesně tak. LUCAS FREITAS: Je ještě něco, jiného, ​​že bych měl dělat? DIVÁKŮ: Count. LUCAS FREITAS: Takže pokud je to rovna 2, řekněme - dovolte mi napsat, zda vstup je roven 2, pak to, co budu udělat, je vytisknout správně. A pak ještě, budu vytisknout nesprávné. Ještě něco? Ne? LAUREN CARVALHO: Takže vy můžete kliknout na - nemá každý má to dolů? LUCAS FREITAS: Má to smysl? Takže teď pojďme zkusit kódovat to. LAUREN CARVALHO: Pokud klepnete na malou šipka, je to vlastně šetří vaše pseudokódu, který je opravdu vzrušující. A můžete dělat ty do komentářů, pokud Chcete-jen, abyste si připomněli co dělat. LUCAS FREITAS: Tak například první Jdu vytisknout tuto otázku, tak jak to mám udělat, vlastně? printf. Takže printf, a otázka je průměrná počet dětí na jednu rodina ve Spojených státech. Pak budu mít vstup od uživatele. Tak jak to mám udělat, že? DIVÁKŮ: Získat Int. LAUREN CARVALHO: vezmi_int. LUCAS FREITAS: OK. Takže nejprve deklarovat, že jo? int, nazvěme jej n se rovná vezmi_int. A teď stav. Takže mi dovolte říci, že jdu se zde zaškrtněte odpověď. Takže první, je-li vstup, který je n se rovná aby - jak to mám napsat, že? DIVÁKŮ: Rovné stejná. LUCAS FREITAS: Perfect. Tak n. A všimněte si, že mám prostor, rovná, rovná, prostor, to je pravda. A teď, co mám dělat? Něco velmi důležité pro styl. Složené závorky. A pak jdu k tisku. Jak mohu vytisknout? printf. DIVÁKŮ: Mohl by to být aktivovány? LUCAS FREITAS: Ne Mělo by to být vše malými písmeny. Tak to je správné. Bylo by to stačit pro printf prohlášení, nebo jsem něco chybí? DIVÁKŮ: Nová linka. LUCAS FREITAS: Nová řada, jo. A teď jiný. DIVÁKŮ: Je tam prostor po printf, nebo ne? LAUREN CARVALHO: Měli bychom zkontrolujte průvodce stylu. DIVÁKŮ: Nemělo by být. LUCAS FREITAS: Neměla by být v pořádku. Tak jinak, printf, "To je nesprávné." LAUREN CARVALHO: Jejda, vaše citace. LUCAS FREITAS: OK. Ještě něco? Vypadá to dobře? LAUREN CARVALHO: Máme to zkusit? LUCAS FREITAS: Jo, pojďme jej spustit. Takže je to kompilace, a to Zdá se, že to funguje. Zkusme dvě děti. To je správné. A teď pojďme spustit znovu, ale nyní místo uvedení dvě děti, pojďme říci, že jdu dát jako pět. To je nesprávné. Takže se zdá, že to funguje. LAUREN CARVALHO: Proč jste jim ukázat co se stane, když dáte něco divný, stejně jako některé dopisy. LUCAS FREITAS: Jo, jo. Pojďme se také podívat, že. Co v případě, že se uživatel pokouší nepořádek s programem, a prostě napsat, já nevím, dva. Bude to říct opakování. LAUREN CARVALHO: Tak vezmi_int žádá je, aby opakovat. Nemuseli jsme se starat o tom sami. LUCAS FREITAS: Jo. Takže pokud jsem vlastně dal číslo, je to bude držet požádal mě, abych zkuste to znovu. DIVÁKŮ: Jak jsi to spustit? LUCAS FREITAS: Stačí kliknout tato hvězda tlačítko. LAUREN CARVALHO: Měl bys jít nahoru. Tady to je. LUCAS FREITAS: hvězda Tlačítko právě tam. Jo? DIVÁKŮ: Má to výzva [neslyšitelné] s desetinnými čísly příliš? LAUREN CARVALHO: Věřím, že to bude. LUCAS FREITAS: Pokud ano, co? LAUREN CARVALHO: Pokud se typ v desítkové číslo, myslím, to bude výzva. LUCAS FREITAS: Uvidíme. LAUREN CARVALHO: Vzhledem k tomu, to není int. LUCAS FREITAS: Jo. LAUREN CARVALHO: Takže to není int, Získejte Int vás vyzve k opakování. DIVÁKŮ: Takže tam, kde v tomto kodexu by desetinné místo, které vyzve uživatel, který mají vstoupit celé číslo konkrétně? LAUREN CARVALHO: vezmi_int je vlastně tím, že pro nás. DIVÁKŮ: Ne, myslím, pokud bychom chtěli vstup [neslyšitelný] LUCAS FREITAS: Můžete říct jako průměr počet dětí v USA. Nevím. Dá se říci, například: "Prosím, vstup celé číslo. " LAUREN CARVALHO: celé číslo rovné na průměrný počet. Myslím, že je to jen, jak ti, že to slovo, že jo? LUCAS FREITAS: Jo. Toto není součástí skutečně kódování. Je to spíš jako cokoliv budete chtít napsat ve vašem programu. DIVÁKŮ: Jak by jsme se spustit, pokud je to byl vlastně v gedit [neslyšitelný]. Namísto stisknutí hru? LUCAS FREITAS: Budeme nejprve zkompilovat. Můžeme to udělat tím, že dělá značku a název souboru. A pak to spustit, uděláme dot lomítko a název programu. DIVÁKŮ: Myslím, že to, co jsem měl na mysli to, zda Chtěli jsme, aby program reagovat na Jejich nesprávná, neplatná položka, byste neměli dát v - LUCAS FREITAS: Nebudeme schopni udělat, protože to říká, že kód zkuste pochází z Get Int, což je funkce, která je již implementována Pro nás přes knihovnu CS50, a od té doby to už tam implementován, se nejde jen [neslyšitelný]. LAUREN CARVALHO: Pokud nechcete použít Vezmi_int, pak můžete udělat. LUCAS FREITAS: Jo. Ale pokud používáte vezmi_int, nemůžete. Nějaké další otázky? DIVÁKŮ: Mohl by jste šli se jako GetFloat a pak budou moci dát je v desítkové soustavě? LUCAS FREITAS: Jo. DIVÁKŮ: OK. Pak jste právě mohli vstupu vznášet se rovná - LAUREN CARVALHO: Jo. Přesně stejné, kromě float namísto int. LUCAS FREITAS: Prostě to dát sem a pak GetFloat tam. DIVÁKŮ: Jak si přeješ vidět nebo viděl - LAUREN CARVALHO: máme Není tam dostal ještě. DIVÁKŮ: - dělá nerovnost se plováky není [neslyšitelný] DIVÁKŮ: Co středníky znamenají? LAUREN CARVALHO: středník jen Znamená to, že toto tvrzení je kompletní, a budeme pokračovat na další snímek. DIVÁKŮ: Takže je to nezbytné, pokaždé? LAUREN CARVALHO: Jo. No, OK, takže není pro tyto podmínky, proto, že jsou zapouzdření něco. Takže v podstatě pokud něco je příčinou můžete potom vytvořit složená závorka blok, nedávejte středník na konci. LUCAS FREITAS: Ale všechno jiného, ​​že ano. Po dokončení příkazu, dát středník. A pokud jste zapomněli středníky, kompilátor to bude zlobit na vás, a budete mít pokusit se to opravit. LAUREN CARVALHO: Když jsem dal středník zde, že by se zastavit to, a já by se nikdy dostat do vykonat to, co je uvnitř, mimochodem. Takže to je jedna z těch běžných chyb. DIVÁKŮ: Vždy provedení. LAUREN CARVALHO: Jo. V tomto případě, by vždy vykonat to, co je uvnitř. DIVÁKŮ: Váš styl [neslyšitelný] připojit, že pro tebe, pomyslel si. LAUREN CARVALHO: Oh, to je pravda. DIVÁKŮ: [neslyšitelné] single linka věc [neslyšitelný] DIVÁKŮ: Ano? DIVÁKŮ: Můžete mít více vstupů v jednom řádku? Tak jako můžete požádat uživatele vytisknout dvě věci? LAUREN CARVALHO: Ne použití - LUCAS FREITAS: Ne Řekněme, že chci také stáhni celé číslo m. Musím to udělat v jiném řádku. DIVÁKŮ: Pokud byste měli spustit že, jak [neslyšitelný]? To by tisknout dotaz tam [neslyšitelný] a pak byste zadat jeden a - LAUREN CARVALHO: No, spusťte jej. Myslím, že není nic, co nám brání právě běží, a vidět to, co by se stalo. LUCAS FREITAS: Myslím, že je to bude stěžuje na nás protože nejsme použití - LAUREN CARVALHO: Chybička se vloudila. LUCAS FREITAS: To si stěžoval na nás přímo teď, protože jsme to pomocí tohoto variabilní, ale kdybych to udělal, například, n je rovná rovná, a m se rovná rovná se, pak to, co bude se stalo v tomto případě? Co by tento program dělat? DIVÁKŮ: Jen jsem přemýšlel, jak by to - LAUREN CARVALHO: Ona jen chce, vědět, jak to vypadá jako, myslím, že jo? Tak to trvalo jeden z nich, a pak trvalo na druhou. Myslím, že bychom měli jít dál, protože máme ještě jeden posuňte show jít před - chceš vytáhnout matematiku? LUCAS FREITAS: Jo, matematika. LAUREN CARVALHO: Dej me jen jedna sekunda. Existuje jen málo odlišné číselné proměnných v datech C. Numerické v C mohou být rozděleny do různých typů, a to jsou ty, které budete vidět nejčastěji. A int je celé číslo. Nemůžete mít žádné desetinná místa. V Appliance, trvá 32 bitů k uložení int. Float mohou mít desetinných míst. To také trvá 32 bitů k uložení plovák v přístroji. Double je číslo s desetinnou čárkou bod, který má 64 bitů, aby ji uložit, což znamená, že stačí mít větší přesnost, protože můžete mít více - Co tomu říkáte? LUCAS FREITAS: Jo, to je víc. LAUREN Carvalho: Více míst za desetinnou čárkou. A long long je celé číslo že se 64 bity bolest je v přístroji. LUCAS FREITAS: Takže to může být větší než ints může být. LAUREN CARVALHO: věc, o údajích typy v C je, že ti, co druh dat, které lze uložit v proměnné. Oni vám říct, jak můžete použít tento proměnná ve vašem programu. Je velmi důležité, aby právě sledovat o jaký typ dat, který používáte, a pokud vy potřebujete obsadit z datového typu do jiného, ​​ujistěte se, že víte, přesně to, co se stane, když se to lití probíhá. A uvidíte příklad později Na těchto diapozitivů chyba, která může nastat. Pojďme se podívat na nějaké matematiky v C a myslíte, že opravdu pečlivě, myslím, o tom, co se děje, když to matematika se koná. V první řadě, co je děje, když Prohlašuji x? DIVÁKŮ: Ty umožňují x se něco? LAUREN CARVALHO: Jo. No, já jsem opravdu žádá provozní systém pro 32 bitů paměti, že jo? Ve kterém mohu uložit int, a Jdu volat, že int x. LUCAS FREITAS: V podstatě jde v paměti a najít místo, které má 32 bity a říká, hej, já chci tento prostor, a bude to nazvat x. Takže jste prostě skoro zjištění box v paměti na ukládat hodnoty x. LAUREN CARVALHO: A pak jsem inicializovat x, což znamená, že jsem jen uložit hodnota 2 v tomto místě, tento blok paměti, že jsme se zeptali provozní systém. A tady to, co děláme, je jsme vlastně deklarovat a inicializaci y v jednom řádku místo ve dvou řadách, jako jsme to udělali tady, který je také naprosto v pořádku, jsme přidáním 1 až x, a my skladování, které hodnota y. LUCAS FREITAS: Takže v podstatě, co to linka dělá, zjistí se okno pro y, a pak jeho hodnota, věc, která se se chystáte dát v krabici, je bude hodnota x plus 1. Tak to je toto políčko pro y. To dostane hodnota x, vypadá tady, a uvidíte, že je to 2. Dejte ho tam, plus 1, tak to dá 3 tam. Má to smysl? Tak y by 2 v tomto případě. LAUREN CARVALHO: Tak jo, v pohodě. Viděli jsme nějaké doplnění, tak se pojďme si nyní myslí, o rozdělení v C. Zde jsem deklaraci a inicializaci plovák zavolal odpověď a dělení 1 o 10, a pak jsem vytisknout odpověď na dvě desetinná místa. A všimněte si, tady, v mém printf prohlášení, když chci něco vytisknout na dva desetinná místa,% .2 f je to, co chci použít. Takže bod 2 se právě říká Potřebuji dvě místa po desetinná vytisknout. A teď, co se bude dít když jsem spustit tento kód? Má někdo nějaký nápad? Co by se vytisknout? LUCAS FREITAS: Jaké jsou Čekáme dostat. LAUREN CARVALHO: Co dělat, chceme v první řadě? LUCAS FREITAS: [neslyšitelné] LAUREN CARVALHO: 0,1, jo. Ale to, co se bude tisknout? DIVÁKŮ: [neslyšitelné] LAUREN CARVALHO: No, no, vlastně. To je to, co jsem mluvil o tom, proč je třeba, aby velmi pečlivě sledovat vaše datové typy. Takže, jaký typ dat je to? Je int, ne? Není desetinné místo. 10 je také int. Není desetinné místo. Kdybych rozdělit int pomocí int, jsem si int který není 0,1, protože ints nemůže mít desetinných míst, ale jen 0. Vzhledem k tomu, int jen zkrátí mimo desetinných míst. LUCAS FREITAS: Takže když děláte operace s ints, budete získat int jako odpověď. Takže v podstatě to, co počítač dělá, je to dělení 1 podle 10, a to dostane 0,1. Ale pak je to jako, počkejte, to je má být celé číslo, takže stačí ignorovat 0,1, takže teď je to jen 0. LAUREN CARVALHO: Takže když jsem tisknout ven, mám 0,00, spíše než 0,10. LUCAS FREITAS: Má to smysl? LAUREN CARVALHO: To je docela z nešťastné, že jo? LUCAS FREITAS: Takže, jak můžeme tento problém vyřešit? LAUREN Carvalho: Pojďme vyzkoušet a opravit to. Zde je příklad, kde jsem vlastně lití 1 a 10 až plave. Takže teď, 1 je již int. 1 je float. Mimochodem, je to jen syntaxe když chcete, aby cast z jednoho datový typ na jiný. Můžete si jen dát typ dat v závorky a mají, že právě předcházet hodnota, kterou jste lití. Tak tady jsem dělení float podle float dostat float odpověď. A ano, to by v Skutečnost, tisknout 0.10. Má to smysl? LUCAS FREITAS: Tak přetypování je jen konverzi z jednoho typu na druhý. Takže float 1 je ve skutečnosti 1.000. Ne tak docela, ale je to něco, s desetinnými místy který je ve skutečnosti 1. Má to smysl? Jo? DIVÁKŮ: Co kdyby jste float odpověď rovná 1,0 děleno 10? LAUREN CARVALHO: Ty vlastně děje vidět, že v dalším snímku. To je vlastně náš velmi další snímek. To je ve skutečnosti hezčí než přetypování, myslím. Takže tyto dva jsou plováky jen tím, že povaha skutečnosti, že mít desetinných míst. Ano? DIVÁKŮ: Co když jste [neslyšitelný] děleno 10? LAUREN CARVALHO: Vlastně float děleno int vám vlastně dává plavat, takže bude fungovat v pohodě. Počkejte, to všichni pochopili? Protože to bude opravdu velký problém v Pset1, ve skutečnosti. Ano? DIVÁKŮ: Mohl bys rychle jít přes červené části? LAUREN CARVALHO: červená část, jo. Lucasi, chceš? LUCAS FREITAS: OK. Tak si uvědomit, že procento je zástupný symbol. Je to jako prázdné místo. Takže pojďme se pokusit pochopit vše že se to tu děje. Procent znamená, že je zástupný symbol. Pak máte f, což znamená, že Tento symbol je na plováku. Poslední věc, kterou zde máme, je 0,2, což znamená, že chci mít dva desetinná místa na plováku. Pokud jsem měl% f, že to bude klást banda desetinných míst. Tak jsem si jen dát 0,2 nebo 0,1 nebo 0,5 nebo cokoliv, a bude to dal, že počet desetinných míst. Jediná věc je, že když dáte jako .100 Nebo .1,000, že to není ve skutečnosti dám všechny ty desetinná místa proto, že nemá dostatek paměti mít tuto přesnost. Nějaké další otázky? Jo? DIVÁKŮ: Takže plavat jen umožňuje můžete jít nad rámec celá čísla? LUCAS FREITAS: Ano. LAUREN CARVALHO: No, float jen vám umožní mít desetinných míst. LUCAS FREITAS: To prostě znamená, že vám Nyní můžete mít desetinná čísla. DIVÁKŮ: Proč by se někdy používají celá čísla? LUCAS FREITAS: Proč by používat celá čísla? Možná, pokud jste počítat od 0 do 10, Chcete-li skutečně využít celé číslo. Nemusíte použít float. V některých situacích, nemusíte mít skutečně - LAUREN CARVALHO: Možná, že jste Nechci desetinná místa. LUCAS FREITAS: Možná, že to není chcete použít float. LAUREN CARVALHO: Další věc je, pamatovat, jak dát plovák a int se 32 bity na jejich uložení, a možná nechcete plýtvat bity na desetinná místa. LUCAS FREITAS: Jo. Tak jako, jen přemýšlet o tom. Máte 32 bitů pro oba int a float. Pro int, všechny ty 32 bitů přejít na celočíselnou část. Pokud používáte plovák s 32 bity, vás mají část této paměti se používá na číslo, na celé číslo, a druhá část se používá pro desetinná místa. Takže to znamená, že se nemůžete dostat do velmi velké čísla s plováky, protože float už používáte hodně paměť pro desetinných míst. Jo? DIVÁKŮ: To je první odpověď, Co přesně se to dělá? Je to nastavením hodnoty float stejné do tohoto zástupného symbolu na které můžete vyvolejte v dalším řádku? To říká, že plavat odpověď. LUCAS FREITAS: Jo. Takže, float odpověď znamená, že jste se dostal teď trochu kbelík na paměti, že má plovák, a to se děje být nazýván odpověď. Tak to float odpověď ano. A pak říkáte, že uvnitř to, budete se dát výsledek tohoto. Takže vy se chystáte udělat, 1,0 děleno 10,0, dostanete 0,1, a pak si dát že v odpovědi. LAUREN CARVALHO: Takže v jedné linii, jsme deklaraci a inicializaci tento plovák volal odpověď. LUCAS FREITAS: Je zajímavé, že ačkoli To je jen jeden řádek, to dělá více operací. Je to jen způsob, jak C nájem použít méně kód. Je to totéž jako trojice Provozovatel, jak můžete prostě V jednom řádku [neslyšitelný]. Je to vlastně dělá to samé jako dělá float odpověď, středník, a pak odpověď rovná, ale místo toho, takže vy dva řádky pro to, je to jako zkratku. Jo? DIVÁKŮ: Takže pokud jste spustili tento, že by bylo 0,10? LUCAS FREITAS: Ano. Jo? DIVÁKŮ: Je odpověď vlastně kód, nebo je to jen jmenuje? LAUREN CARVALHO: Tento je vlastně kód. To je to, co budeme pojmenovat naši proměnnou. DIVÁKŮ: Takže je to jen Název [neslyšitelný]. LAUREN CARVALHO: Jo. Mohl jsem řekl, float x se rovná 1,0. LUCAS FREITAS: věc je, že název proměnné něco, co použít. Je pro vás důležité. Pro skutečné programu, jediná věc, že záležitosti je hodnota, kterou mají uvnitř kbelíku. Důvod, proč jste proměnných a názvy proměnných tak byste vědět co máte co do činění s, stejně jako jaký druh dat, že jste přístupu najednou. Ale pro samotný kód, pokud zavoláte to odpověď nebo otázku nebo něco, docela hodně, na tom nezáleží. Nezáleží na tom. Tak dlouho, jak budete v souladu v každém výskyt, a tak se to jmenuje něco jiného. Jo? DIVÁKŮ: Do proměnné přesahují funkci? Stejně jako v případě, že jste k vytvoření držák [Neslyšitelné], mohl bys jen [Neslyšitelný] znovu odpovědět? LAUREN CARVALHO: Ne DIVÁKŮ: [neslyšitelné] LAUREN CARVALHO: Ne To by bylo mimo oblast působnosti této konkrétní proměnné. A ve skutečnosti, to je druh zajímavé, protože když máme věci, jako smyčky nebo to, zda podmínky, pokud deklarujete proměnnou v jiném souboru složených závorek, je to opravdu jen existuje v rámci těchto složených závorek. DIVÁKŮ: Ještě poslední poznámka o na [neslyšitelný] plováky. Proč by jste někdy chtěli použít ints? To je spíše vedlejší poznámku, než něco, ale počítač je výrazně lepší na manipulaci ints než je tomu v manipulaci s plováky. Je to jako pořadí velikost rychleji. Takže kdybychom se ovládal jen plave, všechno by bylo mnohem pomalejší. LAUREN CARVALHO: Vlastně se zdá, že se jednat o problém s plováky. LUCAS FREITAS: Druh důvodu to, že si můžete myslet, je jak v binární můžete reprezentovat celá čísla tím, že 0 a 1 je. LAUREN CARVALHO: To je další věc. LUCAS FREITAS: OK. Úžasné. LAUREN CARVALHO: Jen myslí, že myšlenku. LUCAS FREITAS: OK, budu tell you later. LAUREN CARVALHO: Než se dostaneme k čemu Lucas byl jen říkám, operátor přednost. To je zdravý rozum. Vy jste udělal dost. Takže, jen pokud je něco v závorkách, to se stane jako první. Je to násobení má přednost Kromě toho v průběhu, odčítání, podobné věci. Takže vlastně, prostě někdo chtěl řekni mi, co číslo jedna ve skutečnosti vyhodnocen? DIVÁKŮ: 27. LAUREN CARVALHO: 27? Jo. LUCAS FREITAS: Uvedu bonbóny pro lidi. LAUREN Carvalho: V pořádku. Co je číslo dvě? Co je číslo dvě? DIVÁKŮ: 22. LAUREN CARVALHO: 22, jo. Nevím, kdo má, že. Číslo tři? DIVÁKŮ: 10. LAUREN CARVALHO: 10, ano. V pohodě. Tak modulo. Lucasi, chcete vysvětlit modulo? LUCAS FREITAS: Modulo je tento operátor který je ve skutečnosti velmi užitečné pro banda problémů. Pokud se mi 55 modulo 10, co to dělá Tento řekněme, že chci, aby rozdělit 55 do 10.. Co získám? Je toho názoru, stejně jako v případě, že jsem vlastně jen dělá rozdělení, co je poprvé, co jsem dostal číslo? DIVÁKŮ: 5. LUCAS FREITAS: 5. A pak zbytek je 5, ne? Takže je to jako 5 krát 10 plus 5. V podstatě to, co modulo to, že se snaží rozdělit tento počet je tento, a že vidí, co je zbytek divize. LAUREN CARVALHO: Takže je to jen vrátí zbytek. Takže číslo jedna je, co? 5. Číslo dvě? DIVÁKŮ: 3. LAUREN CARVALHO: 3. Číslo tři? 0. A čtyři je 1. Přesně tak. LUCAS FREITAS: Jednoduché, ne? LAUREN CARVALHO: Proč bychom přeskočit jen proto, že opravdu nemají čas, a lidé se zdají pochopit. Tak tady je to, co Lucas jen mluví. LUCAS FREITAS: Dalším důvodem, proč jsem se by se používat ints místo plováků je že plováky jsou velmi nepřesné. A proč jsou nepřesné? David řekl, že představují celé číslo, Například, používáme je 0 a 1 je, že jo? A pak jste v podstatě dělat násobení, dělat všechny ty, Operace vědět, co desetinné číslo Máte místo binární. Co se stane teď, když se pokusím aby desetinné čárky? Ve skutečnosti, například, když mám číslo jako 3,33333? Připadá mi to jako 10 přes 3. Jak budu ukládat všechny 3 je, že mám po tom? Je to opravdu těžké, ne? Nemůžete prostě říct počítač, Ahoj, mám 3, a pak to, že navždy. Vlastně počítač není dost chytrý na to. Takže v podstatě všechno váš počítač dělá, je že se snaží, aby co nejvíce míst, jak je možné do paměti, které máte. Takže řekněme, že to bude říkají 3,3333, a je to. Takže to není schopen skutečně vyjádřit přesně, co to je float. LAUREN CARVALHO: Máme konečný počet bitů, což znamená, že nejsou každé desetinné číslo se bude možné přesně zastoupeny. A tak v tomto případě, jsme-li tisk z 0,1, my jsme teď tisku z 20 míst. LUCAS FREITAS: Přesně jak jsem říkal vy byste mohli dát libovolný počet. Ale pokud jste právě udělal dvě místa, byste si 0,10, ale pokud dáte 20 místa, to vám ukážu spoustu z 's, protože to je to, co si můžete dát v paměti, že jo? Ale tady, až na 0, a pak se jen dát to na banda náhodných čísel. To je něco jako některé z nich - LAUREN CARVALHO: To je proto, že jsme není schopen reprezentovat tuto desetinnou čárku přesně s číslem bitů máme. LUCAS FREITAS: A Počítač je v podstatě která vám číslo na odpadky. To není ve skutečnosti hodnota čísla. DIVÁKŮ: Je to tak blízko, jak to může dostat [neslyšitelný] pomocí [neslyšitelné]. LAUREN CARVALHO: Tak implikace je to, že řekněme, že místo toho, je 0.100014, co, co kdyby to bylo 0,0999 - dobře, OK. Pojďme předstírat, že skutečná odpověď na to 0,9999999. To je velmi blízko k 1, ale není to přesně 1. To je 0,99999. To znamená, že když si vezmu, že 0.999, a hodil jsem ho na int, mám 0. Nechápu 1. LUCAS FREITAS: Vzhledem k tomu, pamatujte, lití od plováku na int, stačí ignorovat všechny desetinných míst. Prostě ignorovat. Neexistuje taková věc jako zaokrouhlování nebo kritizovat, když obsadit. Ve skutečnosti, je to, že funkce dělá zaoblení, což je velmi důležitý, ale prostě si myslím, že když vy obsadit, je to jen jít odstranit všechno. Takže i když máte 0,99999, bude to jen dávat 0, pokud obsadit [Neslyšitelný] celé číslo. LAUREN CARVALHO: Takže stačí být opravdu vědomi z plovoucí desetinnou čárkou v přesnosti, zvláště když začnete použít plováky v Pset1. Ale procházka by měla varovat vás o tom, jak dobře. LUCAS FREITAS: A ve skutečnosti je to opravdu těžké, například, kdybych to udělal float odpověď 1 se rovná 1,0 na 10, a pak plavat odpověď 2 se rovná 10,0 nad 100.0. Jsou to stejné číslo, ne? 0,1, ne? 1 více než 10 nebo 10 více než 100. Ale teď, když se snažím vidět rovnost, jako kdyby odpověď 1 je rovna odpověď 2, Možná, že to není ve skutečnosti děje být totéž. Takže plováky jsou něco jako, že. Jsou jako dělat rovnost.