>> ROB BOWDEN: Jedná se o pohodlnější část,
ale to neznamená, že pokud máte pocit, že nejste pohodlnější
budete zde nejsou učit věci.
Tak pojďme začít.
Máte snímky jít přímo do věci.
Jsem asi jen vzít právě teď?
Přepínání notebooků.
>> ALLISON: Nechcete, aby představit sebe, Robe?
>> ROB BOWDEN: Oh, já jsem Rob.
To je můj pátý rok TF-ing CS50.
>> GABRIEL: Jsem Gabriel.
Jsem vedoucí TF na CS50.
Byl jsem TF loni a letos.
ALLISON: A já jsem Alison, a to je můj druhý rok TF-ing CS50.
>> ROB BOWDEN: Tak jo, ta věc na levé straně,
Doufám, že jsem to neviděl.
Pokud tomu tak není, protože vás stáhněte si ji pro sebe,
měli jste to vidět v přednášce.
Tak tohle je CS50 zařízení, a to dělal něco z popisu toho
v přednášce.
Ale v podstatě je to jen vy používáte operační
Systém přímo ve Vašem provozu systém, takže vám můžeme dát
programy bez nutnosti strach, oh to je
bude pracovat v obou systémech Windows a Mac, nebo v případě, že někteří z vás
jsou již používáte Linux, Linux.
Je to jen má být společné hraní
pole, takže každý má stejný přesný prostředí.
>> Takže pokud nemáte stáhnout to už,
byste měli stáhnout, protože jste bude potřebovat pro problémové sady.
A to je dvě GB ke stažení, takže může chvíli trvat.
Na Harvardu to půjde rychle.
Tak CS50 spotřebiče.
>> Nyní na začátku, budeme mluvit o jen banda příkazového řádku
věci, a to tím, že mám na mysli práci V tomto malém prostředí tady.
A všimněte si všech věcí Říkám tady právě teď
budou fungovat, pokud jste uvnitř terminál uvnitř spotřebiče,
nebo pokud jste uvnitř okno terminálu gedit
uvnitř spotřebiče.
Takže tyto prostředí jsou identické.
>> Ale já jdu třetí cestu.
A všimněte si, tady to dole málo IP adresa tady.
Takže nemusíte mít to udělat, ale to IP
address-- teď, pokud Já-- kromě je to blokované této věci.
OK, takže IP adresa více než v terminálu
here-- takže tento terminál přes Zde je terminál v mém počítači Mac.
Takže toto není v žádném případě v současné době spojena se spotřebičem vůbec.
A pokud jste na Windows, pak jste bude muset stáhnout něco
speciálně pro to, zejména lidé mají tendenci používají tmely, P-U-T-T-Y.
>> Takže to, co budu dělat, je typ SSH a pak, že IP adresa.
No, jharvard na této IP adrese.
Tak 192.168.24.220.
Tato děsivá zpráva, ignorujte ji.
Stačí zadat ano.
To je CS50 v krabici.
Se zeptá na heslo.
>> A tak v mnoha z těchto kontextech kde se zeptá na heslo [neslyšitelné].
Máme spoustu otázek, kde říká, že to není vlastně psát.
Není vám ukázat znaky heslo při psaní, pokud vůbec něco,
pro funkci zabezpečení, protože pokud někdo se dívá přes rameno
a vidí star star star star, pak se
víte, že vaše heslo je čtyři znaky.
Takže myšlenka je, že se bude ptát od vás vaše heslo, typ.
Nebude to ukázat budete znaky,
ale to je vlastně přijetí.
V tomto případě, kdykoliv vám někdy viděl výzvy k zadání hesla
zabývající se spotřebičem, Heslo bude rudý.
Tak karmínově.
>> A teď tady uvnitř této okno, které je v mém počítači Mac,
Já jsem v podstatě s přesně stejný pohled
jako uvnitř terminálu ve spotřebiči.
Takže nemusíte to udělat.
Můžete to udělat vše, co Chcete-uvnitř spotřebiče.
Málem jsem vlastně nikdy dělat něco v přístroji.
I téměř vždy minimalizovat, že teď Pracuji SSH do přístroje.
>> Kdyby nic jiného, ​​pokud máte máte pomalejší počítač,
můžete zaznamenat rozdíl.
Dělám to proto, že jsem raději toto okno terminálu.
To má některé funkce, jako je I lze rozdělit okno,
a teď můžu SSH přes spotřebiče.
Dostal jsem dva SSH se děje najednou.
Pokud je váš počítač je obzvláště pomalu a pracujete v zařízení,
a uvědomíte si to Opravdu laggy, cokoliv.
Má tendenci být mnohem rychlejší pokud jste SSH-ed v.
Ale jinak můžete pracovat v obou směrech.
>> Diváků: Co SSH znamená?
>> ROB BOWDEN: Secure skořápky, něco takového?
Co SSH znamená?
GABRIEL: Secure shell.
ALLISON: Je to jen Secure Shell.
ROB BOWDEN: Secure shell.
Je to protokol, který you-- je to zabezpečený protokol, takže šifrované.
Lidé nemohou odposlouchávat síť a co říkáš na cokoliv
jste SSH-ed na.
A ve skutečnosti, v dávný dny CS50, takže v roce 2009
když jsem byl v prváku, tak, že jste pracovali na CS50 problémové soupravy,
Byl jste SSH-ed na nějaké serveru že jsme dali přístup k,
a pracoval tam.
Takže jste neměl tento grafické zařízení.
Nemusel jsi gedit.
Nemusel jste všechny tyto věci, které můžete vizuálně bod a klepněte na tlačítko.
Vy jste měli pracovat v tomto rozhraní.
Dávám přednost práci v tomto rozhraní.
Takže část toho, co budeme se bude v průběhu právě teď
jsou banda Příkazy, které byste měli
začne se seznámit s co pochodu v průběhu.
A upřímně řečeno, jakmile se zvyknout si na ně, je to
je tak mnohem rychlejší práce v tomto prostředí
než to je pracovat s nálezce, tažením a kliknutím věci.
>> Tak jsme tady.
Teď už jen SSH-ed in, a tak Výchozí vás location--
viděl některé z těchto příkazů ve třídě, ale půjdeme přes všechny z nich znovu.
Výchozí umístění jsme v je domovský adresář.
A adresář, stejně jiný výraz pro složku.
Takže jsme v domovském adresáři.
Typ LS, seznam souborů v tomto adresáři.
Zřejmě jsem vytvořil blah.c dříve.
Takže máme adresář na ploše.
Všimněte si zvýrazňování syntaxe?
Světle modrá zvýraznění indikuje adresář a rovný bílý
označuje jen obyčejný soubor.
Takže tam se bude některé další barvy, které vidíte.
Spustitelný soubor je pravděpodobně bude být zelené nebo něco takového.
OK, takže jsme v domovském adresáři.
>> Teď, když chci jít do jiné adresář, cd je příkaz chci.
Takže změnit adresář, a pak předat název adresáře
že chcete jít do.
Takže tady máme čtyři možnosti.
Můžu jít na stahování, a teď vidíme, tady to je aktualizována to vsuvka
říct, že jsem v ~ / ke stažení.
>> Takže to, co je tilda?
Je to zkratka pro domovský adresář.
Takže téměř vše, co udělat, je jít na být s ohledem na vašem domovském adresáři,
a pwd je jen příkaz Já používám jednou za rok, že
jen vypíše aktuální adresář.
A tak zde vidíte, že ~ / Stahování opravdu řeší
do / home / jharvard / ke stažení.
Tak / home / jharvard je můj domovský adresář.
>> Takže můžeme cd dot dot.
Nyní dot dot je speciální adresář, který vždy odkazuje na úroveň výš.
Takže když jsem v ~ / stahování, pak cd tečkou tečka se chystá, aby mě na vlnovku.
Co si myslíme, cd dot dot bude, aby mě teď?
Je mi to přinese do / home.
Takže Tilda tiskem pracovního adresáře, Jsem teď / home / jharvard.
o úroveň výš z toho, Nyní říká, že zde / home.
>> Nyní cd dot dot.
Teď jsem v kořenovém adresáři, a můžete to udělat znovu.
Budete prostě zůstat v kořenový adresář navždy.
Kořenový adresář má spoustu věci, které, pokud se chcete podívat na,
můžete.
Například, když jsem jít do koše, který obsahuje
všechny tyto binární soubory, jako například ls, a CD, a všechny ty věci.
Takže tyto příkazy potřebují existuje někde v systému,
a to je v adresáři / bin.
Ale téměř vše, co děláte, je bude z vašeho domovského adresáře.
A cd bez jakýchkoliv argumentů, by se dalo říci cd ~, nemusíte.
cd se chystá, aby vás zpět do svého domovského adresáře.
>> Jedna poslední.
cd - bude vás vrátí zpět do poslední adresář, který jste v.
Tak jsem cd'd dvakrát za sebou, tak my poslední adresář byl domovský adresář.
Pokud jdu na lomítko bin, a teď pojďme nahoru a do uživatele.
Uživatel podíl.
Pojďme do uživatelského akcii.
Teď jsem teď v uživatelském akcii.
CD -, zpět do zásobníku.
Takže se to dostane obzvláště užitečné když have-- a to bude přepínat.
Takže uživatelského podílu, zadní přihrádky, podíl bin.
>> Tak tohle dostane užitečné.
Můžete najít sami s mnoha, mnoho, mnoho vnořené adresáře.
A chcete něco udělat opravdu rychle v horní adresáře.
Jdete do tohoto adresáře, zkontrolujte, změny a věci jako to,
a teď chceš jít zpět na místo, kde jste byli.
cd -.
Já jsem vždycky zklamaný když jsem se náhodou jít
do tohoto adresáře I chtěl dělat práci.
Vždycky jsem si frustrovaný, když jsem to udělal to ve dvou krocích místo jednoho kroku,
protože to znamená, že CD - se děje aby do této přechodné umístění
Místo, kde chci jít.
>> Vidíme tedy všechny soubory v seznamu.
Víme, jak se dostat kolem tak daleko.
Takže teď pojďme mluvit o editaci souborů.
Takže v tomto kurzu, jste skoro vždy očekává, že budou gedit.
Pokud chcete, můžete si vzít další krok a začněte se učit text příkazového řádku
editor.
Takže existují různé možnosti.
>> A ty, které jsou pravděpodobně Bude pro vás relevantní,
máme Nano, Vim, Emacs a.
Takže Nano je pro začátečníky příkazového řádku textový editor.
Takže Nano pojďme na blah.c jsem vytvořil dříve.
Je to právě tato norma C soubor.
A vidíte, spoustu věcí děje ve spodní části obrazovky,
a zřejmě blah.c obsahuje tento kód C.
>> Takže v tomto konkrétním editoru, to, co říká na bottom--
Nyní tento symbol stříška, Vidíme to ^ G, ^ x, ^ O.
Tak, že téměř ve všech kontext, který vidíte,
můžete vidět, že symbol stříšky v další místa on-line, na přetečení zásobníku,
něco takového.
Je téměř vždy se odkazuje na kontrolu.
Takže ukončit chci dělat Control X. Control X, ukončí.
A mohu používat svůj šíp klávesy pro pohyb v okolí.
Všimněte si nemohu bod a klepněte na tlačítko rychle.
Musíte použít šipky klávesy pro pohyb v okolí.
Tam by mohlo být nastavení bod a klepněte na tlačítko.
>> Ale pojďme udělat nějaké změny.
Nyní Control X jít exit.
Bude to říkat změněný buffer.
Nyní je výzva, y pro ano, n pro ne.
Control C pro zrušení.
Budu jen říct, že ano.
Jméno zapsat soubor.
Výchozí nastavení je soubor že už je.
Stiskněte klávesu Enter.
OK.
Teď jsem jen upravil tento soubor, chytá, a to se změní.
>> Takže Nano je nejjednodušší textový editor zvyknout.
Alternativy jsou Vim a Emacs.
Ti, kteří jsou textové editory vyšší úrovně které mají velmi strmé křivky učení.
Takže moje osobní preference je Vim.
A má širokou škálu možností.
A jakmile si zvyknete na to, už nikdy nebudete
jít do jakékoliv jiné textový editor, protože jste právě
tolik věcí pro vás k dispozici v těchto,
ale to se opravdu dlouho se učit.
Takže možná si jen chcete vynutit si teď zvyknout na to,
ale řekl bych, že to stojí za to.
Ale je to těžké.
>> A pak Emacs.
Vždycky jsem bojovat v Emacsu, protože Já vím, jak to udělat vůbec nic.
Zřejmě Emacs není ve výchozím nastavení nainstalován na zařízení.
Budeme asi dodat, že jako výchozí zařízení.
Jakmile se naučíte jeden z Vim nebo Emacs, je tu
žádný přesvědčivý důvod někdy učit druhé,
ale je to úplně jiný styl.
OK, takže to editaci textových souborů.
>> Diváků: Pokud jste se zasekl ve Vim právě teď, jak to we--
>> ROB BOWDEN: Existuje více režimů v Vim,
a tam jsou celá návody na učení Vim.
Takže pokud jste náhodou v režimu vkládání, aby
k zadání textu, které si můžete zadání, které různými způsoby,
ale i je, jak se dostat do režimu vkládání.
Nebo dostat se z jakékoliv zvláštní režim, který jste v, jen útěk.
A právě bash Escape dostat z případných vnořených režimů vaše v.
Jen OK, teď jsem zpátky v normálním režimu.
>> A tak v normálním režimu, tlustého střeva.
Můžete vidět, že se objeví v dolní části.
A pak q.
Takže q ukončí, pokud jste provedli změny, které Já-- jsem provedl změny?
Udělal jsem změny zřejmě.
Takže pokud jste provedli změny, bude to říci si můžete dát vykřičník.
Budu to nazývat rána.
Takže si můžete dát zákaz jen opustit, aniž by dělali něco,
nebo tlustého střeva WQ ušetří a ukončete.
Tak w obecně je napsat.
Takže zapsat soubor.
Umím psát a ukončete.
Nebo můžete mít jen QX slam, q bang jen
dostat ven bez ohledu na o všech změnách, které jste provedli.
>> Dobře, tak teď pojďme go-- můžeme vytvářet soubory.
Začněme mazání souborů.
A já si jen hodit do jednoho rychlé nový příkaz, klepněte na.
Takže dotknout foo.
Dotykový bar.
Dotkněte se baz.
Pokud ls I nyní vidíme, že tyto soubory existují.
Jsou to úplně prázdná.
Takže touch je jen jednoduchý způsob, jak jeden, [neslyšitelné].
Dva, technicky jen stát to, že aktualizuje časová razítka.
Takže každý soubor, který vytvoříte má časové razítko s ním spojené.
Takže Baz byl vytvořen na 14 září v 16:21.
Nyní je 16:22, takže pokud Znovu jsem se dotknout baz jsme
vidět, že Baz byl nejvíce nedávno změněna na 16:22.
Ale jinak jsem skoro nikdy podívejte se na časová razítka na soubory.
Tak kontaktu, tady jsem jen pomocí to vytvořit několik rychlých soubory.
>> Dobře, tak teď rm je příkaz, který nám záleží zde.
A můžeme rm vypískat.
Řekněme, že odstranění pravidelné prázdný soubor vypískat.
A můžeme psát y, a teď je to Odstraní.
rm Baz.
Odstranit pravidelné prázdný soubor Baz a typ n pro ne.
Teď to není odstraněn.
Tak bar a baz stále existují.
Foo je pryč.
GABRIEL: Mluv.
ROB BOWDEN: Skvělé.
Tak nepříjemné zprávy tady, odstraňte pravidelné empty--
Co to děláš tam dole?
Odstranit pravidelné prázdný soubor.
Takže pokud nechceme být Vadí této zprávě,
můžeme hodit v tomto -f vlajka, a tak to je síla.
A teď když jsem rm -f, že to nebude říci si, že chcete odstranit tento soubor.
Bude to prostě udělat.
A ls, nevidím bar tam už.
>> Nyní, když je potenciálně nebezpečný příkaz.
To nebývá příliš špatné.
Vrátíme se do druhé, jak to může dostat opravdu nebezpečné.
A pojďme vytvořit nějaký dočasný adresář.
mkdir, jiný příkaz.
Takže mkdir je příkaz že je adresář.
A teď ls vidíme tento pěkný světlo modře zvýrazněné dočasný adresář.
Mohu CD do temp.
A můžu mkdir foo.
cd do foo. mkdir bar.
cd do baru.
>> Vidíme tedy, můžeme snadno dostat do pěkně hluboké vnoření.
Nyní, jak mám odstranit adresář?
rmdir.
Takže když jsem se rovnou zkusit rm, jako jsme to udělali s pravidelným souboru
rm bar se chystá říci nelze odstranit bar.
Jedná se o adresář.
Je tu speciální příkaz pro odstranění adresáře, druh.
Tak rmdir bar.
Nyní bar je pryč.
>> OK, takže rmdir jsem skoro nikdy použít.
Důvodem being-- Nyní se pojďme vytvořit obyčejný soubor bar zde.
Tak rmdir boo.
rmdir.
Nepodařilo se odstranit foo.
Adresář není prázdný.
Takže nemůžete použít odstranit dir na Adresář, který má věci v něm.
>> Takže máte několik možností.
Můžete jít do tohoto adresáře, odstranit vše ručně a potom vyjdou
a rmdir adresář.
To samozřejmě zní nepříjemné.
Co když jsou tisíce souborů v tam?
No, mohl bys rm *.
Promluvíme si o * v druhém.
To v podstatě znamená, všechny ty věci.
Ale ještě lepší, tak rm -r.
Takže rm -r-- v mnoha kontexty, -r znamená rekurzivní,
které budeme mluvit o tom, co rekurzivní prostředky v několika týdnů.
Ale je to v podstatě znamená posuv celistvost tohoto adresáře
a odstranit všechno.
>> Takže rm -r foo bude říkat sestoupit do adresáře foo?
Ano.
Odstranit pravidelné prázdný soubor foo / bar?
Ano.
Odstraňte adresář foo?
Ano.
Takže teď foo a všechno v ní byla odstraněna.
>> Nyní, když můžete získat obzvláště nepříjemné when-- pojďme dotknout 1, stiskněte tlačítko 2, stiskněte 3.
Může mít spoustu souborů.
Kdybych chtěl, mohl bych vytvořit tisíce souborů zde.
A rm -r foo se děje být dost nepříjemné.
Ano, ano, ano, ano, ano, ano.
S mnohem více souborů, které rychle zjistit, kolikrát
Budu muset psát ano.
No, právě jsme viděli dříve, jak můžeme zbavit nutnosti psát ano, -f.
Takže mkdir foo foo cd touch 1 2 3.
OK, tak rm -rf foo bude slepě odstranit úplně foo.
Žádná výzva.
No nic.
Foo je pryč.
>> Tak mám tendenci použít Příkaz po celou dobu.
To znamená, že, že je velmi nebezpečný příkaz,
protože kdybych něco takového to, nebude to výzva.
Bude pryč.
A to se stává dost často, a dokonce i na vyšší úrovni kurzů UO.
Někdy se uvidíme něco, kde někdo
říká, že jsem omylem naše rm rf-ed můj domov adresář a všechny mé P soupravy je pryč.
A je to zničující, ale není odpadkový koš.
Neexistuje nic pro vás získat.
Je to prostě pryč.
Ještě horší by bylo něco jako rm -rf /.
Tak jsme jen diskutovali že kořenový adresář.
To si myslí všichni soubory na vašem systému.
Věci mají tendenci být dost chaotický při odebrání věci jako ls,
a CD, a všechny z nich.
>> Diváků: Jaký je rozdíl mezi RM, rf, a rm *
ROB BOWDEN: Takže rm * -
>> ALLISON: Otázka je to, co je Rozdíl mezi RM, rf a rm *.
>> ROB BOWDEN: Tak rm *.
Hvězda obecně znamená, že všechny Obsah tohoto adresáře.
Snažím se myslet na druhé způsoby ukazuje hvězdu.
No, hrát vlastně obecně znamená, odpovídají jakémukoliv vzoru.
Takže pokud mám soubor s názvem dog1, dotknout dog2, stiskněte CAT1, dotkněte se kategorie 2.
Takže ls * 1 bude tisknout CAT1 a dog1, protože to hvězda může být vyplněna
v with-- je třeba, aby se tam, ale hvězda může být buď kočka nebo pes.
Je to divoká karta.
To je slovo, Sháním.
Divoká karta.
Nebo bych mohl ls pes *, a Já mám vidět dog1, dog2.
Takže ty se seznam souborů které odpovídají konkrétní vzor.
Můžete použít ls tímto způsobem.
>> Ls * hvězda utkání nic.
Takže to bude tisknout všechny Obsah tohoto adresáře
protože všechny jejich přiřazení.
To nebude tisknout cokoli v horní úrovni adresářů.
Mám-li podadresář, foo a dotknout 1 2 3-- tak teď, pokud rm * hvězdičkou,
odstranit CAT1, kategorie 2, dog1, dog2.
Nelze odstranit foo.
Jedná se o adresář.
>> Tak hvězda expanduje na všechny souborů v adresáři.
Takže technicky rm * je jako tvrdit, že rm CAT1, cat2, dog1, dog2, foo.
Vzhledem k tomu, rm -rf, technicky hvězda by dosáhnout toho, co chceme, ale rm -rf--
když půjdu z toho adresář, rm -rf temp,
že půjde do temp a rekurzivně odstranit všechno.
>> Takže hvězda je oddělené v tom, že Je zřejmé, by-- tak tuto věc
že běžím na to, co která je výzvou pro mě příkazy
a pak se provádění a dělá je, říkám to můj shell.
A tak to shell je sám program.
A kdybych chtěl, jsem mohl běžet v / bin / bash.
Shell se nazývá bash.
A teď jsme si všimli něčeho mírně změnil,
a to proto, že moje nastavení shell jsou poněkud odlišné.
>> Ale teď jsem technicky běh shell v mém původním obalu,
a mohu opustit tento shell, a teď Vrátil jsem se k mému nejvyšší úrovni shellu.
Účelem říká že je-- hvězdu.
Takže hvězda je něco, rozumí bash.
Takže rm -rf, -rf vlajka je rozumí jen rm.
Ví, že když vás projít -rf, které vás
chci, aby to rekurzivně odstranit všechny soubory bez výzvy k potvrzení.
Hvězda je něco pochopil, o bash, že když říkáte rm *,
bash nebude říkat hey rm *, odstraňte hvězdičku.
Bash se řekne rm * odstranit CAT1, kategorie 2, dog1, dog2.
Je to automaticky bude rozšiřovat všechny soubory v adresáři.
>> A podobně tilda další symbol, který bash rozumí.
Když se řekne cd ~ bash rozšiřuje že do vašeho domovského adresáře.
Další otázky tak daleko?
OK, takže budeme začít chodit rychle.
>> Dokončení Tab.
Stačí hodit to tam.
Mnoho lidí ne realizovat tento existuje.
Takže když jsem typ cd Dow, I chci jít do sekce downloads.
Nepotřebuji psát nloads.
Mohu jen hit Tab.
Tak uznává, že dow je předpona, která
neodpovídá nic jinde v tomto adresáři,
tak to bude kompletní, že pro vás.
Nyní mohu vstoupit.
>> Také jsem dělat, že rekurzivně.
Tak mkdir foo.
Pojďme do foo.
mkdir bar.
Takže jít zpátky do mého domu adresáře, vidím soubory ke stažení.
Nyní kartu znovu bít, automaticky chystá vyplnit foo.
Je to jediný adresář.
Kartu znovu bít, automaticky chystá vyplnit baru.
Takže teď jsem v (~ ke stažení / foo / bar).
>> Tak tohle doplňování pomocí klávesy TAB, když jsem se dostal do pracovní doby,
a já jsem stál nad něčí rameno,
a jdou rm D-O-W-N-L-O-D-S, umírám.
Jen kartu, kartu, kartu, kartu.
Kartu tak určitě použít.
A podobně a dolů, hodně lidí
právě to se stalo nikdy hit nahoru a dolů.
Bude to projít předchozí příkazy, takže pokud jste právě spustili něco,
a chcete jej spustit znovu, jen držet, až se dostanete k ní.
OK.
>> Tak rychle, některé další věci.
Pojďme zpět do temp.
Pojďme vytvořit některé soubory.
Takže tady, já jsem jen jít na seznam pár slov.
pes, kočka, mňau.
Pojďme dělat psa, ryby.
Takže teď rep je velmi užitečné příkazy, které jste
slouží k vyhledávání v celém soubory pro konkrétní znění,
a technicky můžete udělat opravdu komplexní výrazy pro to, aby odpovídala.
>> Tak tady, když jsem grep, a to, co chci vyhledat?
Řekněme, že jsem hledal kočky, a Chci vyhledávat všechny tyto soubory.
Tak jak to mám udělat všechny tyto soubory?
Hvězda.
Takže jeden soubor, mám kočku.
Asi jsem mohl mít volal to něco lepšího,
protože to vypadá jako čísla řádků nebo něco.
Ale v jednom souboru mám linku s kočkou.
V souboru dvou mám linku s kočkou.
Takže teď můžu podívat do jednoho souboru a vidět ach jo, že soubor dělal mít kočku.
Oznámení soubor tří nebylo uzavřeno protože kočka není tam.
Mohu grep pro mňau.
Podat pouze dvě má ​​mňau.
>> Takže to můžete kombinovat, opět, s -r, který
jak jsem již řekl dříve často znamená rekurzivní.
A tak jsem si sem nahoru, grep -r pro of-- jakékoliv instance pojďme upravit
tohle jen hodit kočku tam.
Takže grep -r pro každou instanci kočka na celém tomto adresáři.
A to bude rekurzivně vyhledat všechny podadresáře.
Takže Baz, je to kočka.
V temp / 2, je to kočka.
A v temp / 1 tam je kočka.
Tak to je vyhledávání v souborech.
>> Nyní můžete použít také nález.
A tak si je konkrétně o hledat soubory s křestním jménem.
Takže pojďme se ještě víc.
Pojďme do stahování.
Dotkněte dog1.
Dotkněte se kategorie 2.
Dotkněte cat_dog.
Dotkněte kočkakočka.
>> Tak jsem chtěl najít všechny Soubory se psem v názvu.
Takže najít, a nejdelší Čas nikdy jsem si vzpomněl
jak najít pracoval, až jsem nakonec přečtěte si něco, co je tak jasné.
Takže najít, automaticky rekurzivní.
Nemusíte projít -r.
Takže najít tečku.
Nemluvili jsme o bod ještě.
Vzhledem k tomu, dot dot vždy znamená jednu úroveň výš.
Dot vždy znamená aktuální adresář.
Takže jsem mohl rm -r tečku Stejně tak mohu rm -rf *.
Nakonec se dosáhnout totéž.
rm -rf tečka se chystá odstranit Celá aktuální adresář.
>> OK, které nechci dělat tam.
Ale najít tečku.
Tak rekurzivně prohledat aktuální adresář, a teď je všechno
po tomto jsou banda vlajek, které jste použít k vyloučení věci z návratu.
Takže najít tečka vrátí vše, co je najdete z aktuálního adresáře.
To jsou všechny soubory rekurzivně vyhledávání.
Uvidíme, některé z nich v druhém.
>> Ale v případě, že jste zvědaví, jak to dělám že, tak Command K, přinejmenším
v mém terminálu v Mac vymaže ji.
Control L obecně vymaže je pro každý druh terminálu.
Můžete také zadat jasné.
A pokud jste někdy do podivné scenario--
to se mi stalo pár time-- kde barvy vašich výzev
jsou zpackal, nebo vám nejsou schopni vidět nic
napsaný při psaní, protože někdy jako barva pozadí nastavena
stejně jako barvu popředí a teď nemůžete vidět písma.
Reset je něco, co prostě resetuje můžete výchozí černém pozadí,
bílá přední, nebo cokoliv jiného nastavit jim.
>> Tak kde jsme to skončili?
Najít tečka.
Takže teď vše kolem této bod omezuje výsledky
na něco, co odpovídá daný vzor.
Tak tady Chci vyhledávat vše s názvem kočka.
Nemám nic.
Proč je to tak?
No, já jsem jen hledal něco, co se přesně jméno kočky.
Chci-li hledat něco že má nějaký vzor, ​​a cat--
uvozovky technicky nejsou nutné, ale já jsem je hodil tam.
Takže teď zjistí kočkakočka z následujících důvodů to je jediná věc, která
má některé libovolná vzor následuje kočka.
Můžu dát kočku *, a teď najít kočkakočka, cat_dog, kategorie 2,
protože to jsou všechny věci s kočkou Na začátku následuje ničím.
Můžete zkombinovat.
Chcete-li vyhledat všechny soubory C že máte, můžete dělat * .c.
Jsme blah.c zde.
Tak to je najít práce.
Můžete vyhledávat.
Má spoustu vlajek pro další omezení.
A jeden z nich, řekněme -d.
Tak zastaralé.
Oh, to není to, co chci.
Ne -d.
Typ d.
Takže najít tečku - typ d.
Takže, co to udělal je, že jsem vyhledávání pro všechny soubory v aktuálním adresáři
s je-- d představuje directory-- typ adresáře.
Vrátí všechny adresáře v aktuálním adresáři.
A typ F je vše pravidelné soubory, všechny non adresáře.
Tak to je jen Příkladem dalších způsobů, jak
může omezit další hledání než jen název souboru.
>> Už je to 30 minut.
Stále pokračuje.
>> ALLISON: Budu vánek přes.
Bude to v pořádku.
>> ROB BOWDEN: Takže některé další věci.
Nyní bang, vykřičník.
Takže obecně means-- dobře, pojďme si prohlédnout příklad.
Tak! F, co se to bude dělat?
No zdá se, že opakoval find tečka -typ f.
Co! G?
Že právě grep -r kočku *.
Takže bang můžete použít opakovat nedávno udělali příkaz.
Takže když jsem psát! Gre, že to bude znovu-run příkazy, které začaly s gre nejvíce
v poslední době.
>> A můžete vidět, všechny tyto příkazy s historií.
Historie tak.
To vše jsou Příkazy jsem dnes spustit.
A dobře, není to doslova omezena na dnes,
ale já jsem použít pouze tato zařízení jako dnes.
Je to vaše celistvost historii Vašeho bash shell,
kromě toho, že uřízne v určitém okamžiku.
Diváků: Co se stane, pokud nemáte Historie [neslyšitelné] příkaz a chyby
ve výsledku bude stále tisknout the--
>> ROB BOWDEN: Ano, v případě, že je chyba v jednom z těchto commands--
tak řekněme, že je Příkaz k chybě nebyl nalezen.
Stále se totiž jeví v historii.
Dobrá.
Další otázky týkající se něco?
Tak to je rána.
>> Teď opravdu užitečné příkaz man.
Tak, že vám Příručka pro daný příkaz.
Takže řekněme, že muž ls, tak to se také projevilo mi ls.
Uvádí obsah adresáře.
A to je místo, kde vidím, že tam jsou tyto různé příznaky, které existují.
Vidíme tedy, že ls -l existuje pokud bychom měli číst, že. ls -l
mi dává tuto úplný výpis adresář, který vlastní soubor,
Velikost souboru, upravené časové razítko.
Takže ls -a je ještě jeden, který byste mohli skutečně používat poněkud častěji.
-al je můj nejčastější příznak letos ls.
>> Takže -a, všimněte si, že je to hodně více souborů, než jen ls.
ls -a.
Co je společné se všemi těmito soubory?
Začínají s tečkou.
Tak to je konvence v Linuxu, že soubory, které začínají tečkou jsou skryté.
Tak to prostě znamená, že když my jen rovně ls,
nebo si hledáte tento adresář pomocí nálezce ekvivalent, nebo Windows
Ekvivalentní Explorer, že jsme nechci vidět tyto dot soubory.
Prostě znečišťují pohled na věc.
Tak oni jsou skryty pokud o to výslovně
požádat je něco jako -a.
Tak jsem si cd do .místní, a vidím že, že je sám o sobě adresář s
sdílený adresář a aplikace, a bla bla bla.
Takže dot, soubory, jsou to jen skryté.
>> OK, takže ostatní nejdůležitější.
Mám pár můžu vynechat.
Řekněme, opravdu rychle mluvit o Přesměrování soubor věcí.
Takže tam je celý komplex série věcí, které můžete dělat s nimi,
ale jen proto, aby je viděl, řekněme, echo.
Další příkaz.
Opravdu hloupý příkaz.
Vše, co to udělá, je pro tisk, co ti řeknu to.
Tak echo ahoj.
Je to jen ozvěna pozdrav na obrazovku.
Hello world.
Ozvěny hello world.
>> Takže jeden příkaz, nebo jedno symbol, který bash chápe
je to větší než symbol, a že je výstup na symbol souboru.
Takže pokud výstup jsem to foo, je tu nyní soubor
s názvem foo, uvnitř což je hello world.
Tak si všimněte, že když jsem echo hello world potrubí do foo,
neměla echo Hello World.
Namísto toho byl uveden do souboru foo.
A další povel jen to hodit na vás, kočku.
Je to snadný způsob, jak jen zcela vypsat obsah souboru
takže nemám otevřít textový editor pro zobrazení.
Takže obsah foo soubor jsou hello world.
A já jsem mohl kočka blah.c, obsah jsou to.
>> Opět platí, že se jedná o příkazy, které, ne Předpokládám, že je všechny nazpaměť.
Myšlenka je, že jste je viděli.
Možná, že pracujete na něco, a vy jste
jako já jsem nemocný z otevření tohoto souboru.
Kéž bych mohl jen dívat na obsah opravdu rychle.
Dalo by se to udělat, pak ohlédnout a říct, oh I
pamatovat něco jako že existuje, a je to kočka.
>> Tak, že se chystá do souboru.
Teď tam není opravdu k ničemu Příklad čtení ze souboru dosud.
Co je to něco, co má něco z standardně?
Každý jednoduchý Linux příkaz?
Když jsme se k ní dostanete, v páru týdnů všechny piece-- dobře,
tento týden budete mít kousek, kde se začnete vstup od uživatele.
A tak obvykle napíšete že vstup na klávesnici.
Místo psaní, že vstup na klávesnici,
můžete místo toho potrubí od souboru takže když děláte Mario, ./mario,
potrubí v každém z daného souboru, a že to bude ke spuštění programu Mario.
Nečekal vstup na klávesnice, místo toho je to
jen tak číst řádky ze souboru foo.
>> Takže větší než foo staví do soubor foo, a méně než foo
bere věci ze souboru foo a používá to jako vstup do tohoto programu.
A právě to vidět, mohli bychom také echo foo bar Baz, a pak místo jednoho
větší než, pojďme dělat dva do foo.
Co to dělá?
Je to jen připojí k souboru.
Takže místo toho všimnout, když se mi echo bla do foo a pak kočka foo, je to jen bla.
Takže když se výstup do souboru to, kompletně přepíše tento soubor.
Pokud si jen chcete připojit, double [? grader. ?]
>> A poslední je trubka.
Pipe dostane mnohem složitější, kde trvá výstup jednoho příkazu
a napájí ho do dalšího příkazu.
Takže někteří běžná věc, historie.
Tak, fuj, nechci, aby se na to podíval.
Ukaž mi všechny příkazy v mé minulosti kde jsem grep-ED za něco.
Ne, to je matoucí.
Ukaž mi všechny příkazy kde najdu.
Vše najdete příkazy, co jsem kdy běžel.
>> Historie tak.
Nyní historie výstupů na Obrazovka tento seznam příkazů,
ale já nechci výstup na obrazovku.
Místo toho budu potrubí ní do grep.
Takže pojďme grep pro všechny případy nálezu.
Takže teď místo grep odběru vstup, místo toho of--
grep je schopen zvládnout, jak input-- jsme pomocí grep trochu jinak zde.
Takže místo psaní seznamu věci, které jsme chtěli hledat
a řekl, grep bere jako vstup.
Takže když jsem to jen grep najít, to čeká na mě psát věci.
Takže kočka ahoj najít.
Dobrý den.
Najít.
Všimněte si, pokaždé, když jsem si napíšete uznává, že jsem napsal nález.
Takže místo toho, bude vyhledávání souborů na najít.
>> Takže historie se nyní chystá Výstup seznam všech příkazů.
Dáváme tento výstup, a my jsme krmení, aby grep,
a tak to vyplivne všechny instance najít.
Důvod, proč jsem řekl, že to bude matoucí je-li Já-- je stále matoucí.
Kdybych grep pro grep.
Všimněte si, že je to skoro vždy ukazuje příkaz jsem právě
běžel, protože tento příkaz sám má grep uvnitř ní.
>> OK, takže všechny otázky týkající se něco?
A já budu přenášet ji v tomto bodě.
Doufejme, že to je pěkný Přehled všech příkazů
že nemusíte mít paměti, ale ty tvoří
pevná 95% z toho, co jsem dělat na příkazovém řádku.
Také mějte na paměti, že příkazový řádek sám, bash je programovací jazyk,
a tak, když se dostanete až na to, vy chtít udělat opravdu složité věci.
A tak to má věci, jako je smyčky, a IFS, a všechny ty,
že budete zvykat na se svými programovacích jazyků.
Ale to je mimo Rozsah této části.
OK, takže žádné otázky?
ALLISON: None?
GABRIEL: Chystáš to--
ALLISON: Já to zvládnu na mě, jestli chceš.
Vidíme, co se děje.
ROB BOWDEN: Vypnuto Allison.
ALLISON: Woo.
Jsi tvrdý akt sledovat, Robe.
Chceš, abych přejít s vámi?
Nebo máš, OK.
Budu se snažit, a ne poměrně být zdlouhavé tam.
Uvidíme, jestli to bude pracovat tak, jak chci, aby to.
Možná, že?
Haha!
Ano.
>> Tak jsem jen tak rychle jít pomocí proměnných, cykly, podmínky,
a trochu na kompilátoru.
Pokud máte dotazy na kdykoliv, prosím, přestaň mě.
Tihle kluci mi bude připomínat opakovat Váš dotaz v případě, že jsem zapomněl,
ale neměla by být příliš špatné.
>> Takže proměnných, jo.
Nemáme jeden z vašich Stírací kousky zde.
Jsem si jist, že většina z vás, je-li jste měli nějaké hry
které jste vytvořili pomocí Scratch, jste měli sledovat něco jako skóre,
nebo čas, nebo něco takového.
Takže ti jasně oranžové kusy, které vidíme zde
jsou jen Scratch forma proměnné, a budete určitě
být pomocí proměnných po celou dobu své programy.
Pokud ne, opravdu nejsem jisti, že to, co děláte.
>> Ale i tak velká věc, definování proměnných.
S C každá proměnná má mít typ prohlásil,
tak jsem vám dal velmi Obecně jeden nahoře.
Tak budete mít vaše typ a poté, co
se rozhodnete volat proměnnou.
Takže v tomto případě, typu v seznamu proměnných.
>> Máme tři příklady.
Char nějaké třídě, z A, což je to, co
Jsem si jistý, že všichni chtějí aby se v této třídě.
Můžete definovat více proměnné na jedné lince
jak dlouho jak oni jsou všichni stejného typu, který je naším druhým příkladem zde
kde máte tři proměnné, x, y a z.
Jsou to všechno plave.
A pak se můžete také, v tomto posledním příklad s int skóre a počet
týmů, můžete Inicializace je tady.
>> Tak ve střední příkladu, kde jsme prostě plovák X, Y a Z,
ty nejsou inicializovány ještě.
Nemají žádnou hodnotu.
Nebo mají hodnoty odpadky.
A pokud se pokusíte a jejich použití, kompilátor bude řvát na vás.
Máte jak deklarovat a proměnné inicializovat.
Takže v tomto posledním, děláme oba.
Jsme deklarování proměnných na skóre a počet týmů,
a my jsme je inicializace, což jim, že jejich počáteční hodnoty 7 a 4
resp.
V pohodě.
Každý dobrý?
Úžasné.
>> OK, takže některé konvence.
Pokud Přečetl vy přes styl 50, tyto
jsou jen věci, které bychom chtěli pro implementovat ve svém stylu.
Tak smysluplné názvy.
Pokud začnete nazývat věci jen x, y a z, a to zejména
jak se dostanete do zdlouhavější programy, ty jsi
pravděpodobně bude plést se a být
jako to, co je tato proměnná s odkazem na.
Nemám ponětí, co to znamená.
>> Takže pokud to znamenalo držet skóre, říkají skóre.
Pokud to mělo mít nějaké odpovědi nebo způsobit, dát mu jméno, jako je to.
U smyček, které budeme dostat se do do další snímek,
proměnné jednotlivé dopis jsou v pořádku.
ROB BOWDEN: I, j a k jsou jen konvence pro smyčky
že každý je očekává, být nazýván i, j a k.
Můžete volat them-- vidím řádek sloupec nebo řádek volání někdy
dvou vnořených cyklů a to je také druh standardem.
Ale i a j je zcela znám.
>> ALLISON: Jo, já a j, že jste úplně v pohodě.
Z důvodu jasnosti, jako je v některé z vašich P sad,
to by mohlo mít smysl mít více popisné věci tam prostě
sledovat to.
Ale myslím, že i, j, k a myslím, že Naprostá většina z nás všechna použití.
>> ROB BOWDEN: S těmito konvence, takže styl je důležité.
Je to jedna ze čtyř os na kterém jste třídí,
a je to tak snadné prostě jít přes Váš P stanovena na konec, a ujistěte se, že
že tam nejsou stylistické chyby.
Takže se ujistěte, že jste tabbing správně.
Ujistěte se, že proměnné jsou pojmenovány.
Nechte několik poznámek.
Je velmi snadné se dostat ty body.
Nemusíte přemýšlet o tom, cokoliv, aby se tyto body.
Nemusíte přijít na něco ven.
Je to jen aby to vypadalo pěkně.
>> ALLISON: Ve skutečnosti jsme mají styl 50, který
vám řekne, kam si hrát up, pokud jste popletl na styl
a řekne vám přesně to, co vám je třeba opravit, a jak je třeba jej opravit.
Je to také jen dobré se zmínit že to je samozřejmě politika
že pokud jste v kanceláři hodin a váš kód je nepořádek,
můžeme odmítnout pomoci jste až to vypadá hezčí.
Takže začít hned, udržet konzistentní styl,
jste také jen tak, aby se vaše životy mnohem jednodušší, když
se snažíte projít ladění.
Pokud se snažíte přijít na to, kam chybí složená závorka
a oni jsou všude, že jste jen aby svůj vlastní život těžší.
Takže být v souladu se stylem.
Slibuji, že to, aby váš život jednodušší.
Bude to náš život jednodušší.
Každý, kdo bude mnohem šťastnější.
A to je to, co chcete.
GABRIEL: Vaše známka bude vyšší.
ALLISON: Ano, a vaše třída.
Pokud váš TF je jako vy, má tendenci být příznivý.
V pořádku, a pak už jen Druhým bodem je zde.
Konzistentní inicializace.
Tak jak jsme viděli, můžete deklarovat a inicializovat věci.
Více proměnných na stejném řádku.
Jedna věc, kterou bychom vám rádi ne udělat, je, aby prohlásil některé proměnné
a nelze inicializovat je na stejné řádek, který se inicializuje ostatní.
>> Takže v případě, že z nemá smysl vůbec,
máme příklad zde kde jsme vyhlášení celých čísel
v proměnné čtvrtletí desetníky a haléře,
ale čtvrtiny a haléře nemají žádnou počáteční hodnotu.
Jsme jim není inicializován, ale přímo tam uprostřed
jsme již inicializován desetníky na 0.
Takže buď udělat čtvrtě, desetníky, haléře.
Nebo čtvrtiny rovnat 0.
Desetníky rovná 0.
Haléře roven 0, nebo cokoliv jiného tyto počáteční hodnoty.
>> Velká věc ve velkém stylu, být v souladu.
Pokud jste na pochybách, být v souladu.
Ale sledujte náš styl průvodce taky.
V pohodě.
Každý, kdo tam dobře?
>> Diváků: Kde je průvodce styl?
ALLISON: Průvodce styl je on-- co webové stránky?
>> GABRIEL: Myslím, že je manual.cs50.net/--
ALLISON: Style?
>> GABRIEL: Style.
Jo.
>> ALLISON: Ano.
Takže otázka, kde je ve stylu 50.
manual.cs50.net/style.
Ano?
>> Diváků: Pokud budeme definovat proměnné, je to v pořádku
Dáme-li jako [neslyšitelné] jako int skóre a pak int cíl.
Takže bys řekl, že nyní máme dostal je definovat společně?
>> ALLISON: Takže, by měly Máte redundantní kód
při definování proměnné, jako je int skóre a
Na dalším řádku int hry?
ROB BOWDEN: Existují určitě případy, kdy redundantní kód je špatný.
Já bych nepovažoval že redundantní kód.
Málem jsem nikdy deklarovat více proměnné na stejném řádku v historii.
A když už, tak je to proto, obvykle nechám nějaký komentář
vysvětlí, co je proměnná pro.
Takže budu říkat int skóre lomítko lomítko.
Udržuje cokoliv.
V celkovém lomítko lomítko.
Takže je to mnohem drsnější tímto způsobem dát je všechny na stejném řádku.
Jen jsem nikdy dát je na stejném řádku.
>> ALLISON: mám pocit, že je to osobní preference v tomto bodě.
>> Diváků: Znamená to, že jít na pro smyčky a tak taky?
ROB BOWDEN: Jako uvnitř?
Stejně jako int i = 0 čárku délka se rovná něco?
Že nemáte na výběr.
Díky za smyčky inicializaci part-- tak jste mohli vidět pouze
int i = 0 středník i méně než cokoliv středník i a a.
To int i = 0, technicky můžete také
to, co jsme viděli před se syntaxí čárkou.
int i = 0 čárkou j se rovná 3 čárka k se rovná 5.
Nemáte na výběr rozdělit že až do více řádků,
a to je standardní.
Vidět to je v pořádku.
ALLISON: Úžasné.
No, pohodlný přechod do smyček.
Tak jo, máme tu několik příkladů ze smyčky, které vy viděli v Scratch.
A samozřejmě všechny tyto stačí být znovu v C.
A v podstatě, aby vás opakovat nějakou část kódu
až do určitého stavu je splněna, což my budeme
dostat se do pravé po rozhovoru o smyčky s conditionals.
>> Takže máme tři hlavní typy.
For, while, a to nějakou chvíli, která budeme všichni projít právě teď.
Takže první je pro smyčky.
Tak pro některé stavu, spustit tento blok kódu.
Jsme to pěkné malé mají diagram zde dole.
Ale v podstatě máte v Váš na, že první řádek,
budete proměnné inicializovat.
>> Tak, jak jsme mluvili o, i je rovno 0 nebo i je roven 10.
Ať už budete potřebovat variabilní být, že je to
bude tam inicializován, deklarovány a inicializovány na nějakou hodnotu.
Takže máme některé podmínka, že se děje
bude kontrolovat naše proměnná proti něčemu.
Takže v případě, typický případ, kdy Možná budete chtít tuto část kódu
provést pětkrát.
Takže budeme mít int i = 0, a my chci, aby to bylo, když jsem je menší než 5.
Takže tato podmínka je jen bude kontrolovat, že pokaždé.
Pokud tuto podmínku vyhodnocen jako pravdivý, je to
chystá spustit kód, který je přesně co tento malý diagram ukazuje.
>> A tak se spustí jej.
Aktualizuje proměnnou, což je to, co vidíme,
V poslední části našeho serveru na Inicializace smyčky tam.
Takže to bude jen pokračovat v tom to dokud tato podmínka není splněna,
a pak to bude ukončen smyčky a pokračovat
pohybující se zbytkem vašeho programu.
Každý, kdo tam dobře?
V pohodě.
>> Tak tady je příklad, velmi podobné na něco, co jsem právě mluvil.
Tak jsme se jen chcete vytisknout To je CS50 10 krát.
Takže vidíte, máme tady naše pro, a pak jsme
inicializovat proměnnou i se rovná 0.
Naše podmínka je kontrola že je to méně než 10 let.
Tak vyhodnotit na hodnotu true, když jsme se poprvé začít, a potom aktualizuje své proměnné
Vždy, když ve skutečnosti provádí a vytiskne je CS50.
A bude ukončen po 10-krát.
V pohodě.
>> Takže zatímco smyčky jsou až příště.
A jak vidíte tady, musíme se nějaký čas to condition-- otázka?
>> Diváků: Jak mohu skočit ve skutečnosti prostě není jedno číslo,
ale dvě čísla [neslyšitelné] i a a a?
>> ALLISON: Takže otázka je, jak můžete aktualizovat proměnnou o více než jeden
najednou.
Tak jsem a Plus Aktualizace jeden pokaždé.
Pokud byste chtěli aktualizovat jej dva, jsi to mohl udělat i a rovná 2.
>> ROB BOWDEN: Viděli jste a rovná se v přednášce ještě?
>> Diváků: [neslyšitelné].
>> ALLISON: Je to skutečně totéž, jako i rovná i a 2.
Takže to bude trvat to a aktualizovat dvěma pokaždé.
Plus rovná je prostě něco říkáme Syntactic Sugar.
ROB BOWDEN: Jo, ty, pro existují skoro všechny aritmetické operátory.
Tak jsem se časy rovna by zdvojnásobit počet.
j předěl rovná 3 je stejný jako j se rovná j děleno 3.
>> ALLISON: Nebo minus rovná 2 by decrement i dva pokaždé.
ROB BOWDEN: I mod rovni.
Jste ho ještě neviděli bitové operátory, ale stříška rovná a ampersand rovná,
všechny z těch, které existují.
>> ALLISON: Takže mnohokrát, a to zejména s první dvojicí P sad,
budete pravděpodobně zvyšování by jeden, tak jsem navíc plus, j a navíc
jsou všechno věci, jdeš se obvykle používají.
Ale to aktualizace stavu je plně ve vaší kontrolou.
Můžete jej aktualizovat jakýmikoli krocích nebo jakýmkoli způsobem se rozhodnete.
Možná, že dokonce chtějí, aby to bylo náhodné číslo někdy.
Ale ano, existuje spousta věci, které můžete dělat s tím.
Nejste omezen i navíc plus.
>> ROB BOWDEN: Jen tak vás vím, že to existuje, ale také
existuje v jiné formě, a navíc i.
Takže pokud jste někdy hledání online a náhodou vidět a navíc i,
do značné míry znamená totéž.
ALLISON: cool.
Dobré?
Úžasné.
Takže zatímco smyčky.
Velmi podobné.
Máte nějaký stav.
Hlavní věc ke zprávě Zde je místo toho, aby
tři různé části nastavit, máme jeden.
Máme jen nějaké podmínky že to je zkoušen.
A stejným způsobem, pokud tato podmínka vyhodnocena jako true,
Váš kód bude běžet.
A jestli je to falešný, je bude ukončena, pohyb
na další část programu.
Tak to je druh like--, co je Dobrým příkladem je kontrola
pro některé normálním stavu?
GABRIEL: je sice pravda.
ALLISON: Dalo by se přitom pravda dělat.
No, 1 je roven 1.
>> ROB BOWDEN: Můžete to udělat while-- jen namísto použití pro smyčce,
můžete vždy kód pro smyčku v cyklu while,
tak i větší než 0 nebo I když jsem méně než 10 let.
>> ALLISON: Úžasné.
A pak jsme si dělat, zatímco smyčky, která je skvělé pro ověření uživatele, kde
Chcete-li získat něco od Vaše uživatelské, uvidíme, jestli je to platné,
a pak pokračujte odtamtud.
Takže jedna z věcí, vědět, s dělat, když je to, že to bude provádět,
a pak se znovu spustit je-li tato podmínka splněna.
>> Takže asi nejlepší způsob, jak to udělat je prostě vidět příklad zde.
Tak jak jsem právě zmínil, uživatel validace je opravdu useful--
nebo si chvíle jsou opravdu užitečné při ověřování uživatele.
Takže to je jen tak znovu vyzve nějakého uživatele
dokud nevstoupí kladné číslo, které by mohly být užitečné pro vaši P sadu
tento týden.
A tak v tomto případě, kdy nejprve spustit tento program,
to bude tisknout zadejte kladné číslo.
Bude to mít nějaký vstup od uživatele,
a pak se to bude kontrolovat že vstup proti stavu
které jste nastavili pro něj.
>> Takže v tomto případě to bude kontrolovat.
Bude to říct, OK, je náš vstup negativní,
nebo je to 0 nebo negativní, která by byla neplatná.
Tak to by re-prompt.
Otázka?
>> Diváků: Je to stejná, jako zatímco smyčce, pokud si jen zkopírovat tento kód
a dát to [neslyšitelné] while?
>> ALLISON: Takže otázka byla by to být stejná jako jen na chvíli
loop kdybychom jen zkopírujte while výše.
Takže v tomto případě, váš čas je smyčka bude nejprve zkontrolujte stav.
Takže v tomto případě, pokud jsme se snažili psát jen jako while,
to bych chvíli vstup je menší než jedna.
Ale nemají vstup pro něj.
>> Diváků: Máte-li [neslyšitelné] while včetně tohoto kódu,
ale pak zvládl kód nad while také.
Právě jste měli tento kód [Neslyšitelné] while.
ALLISON: Bylo by totéž, ano.
Takže byste mohli jen write-- místo toho, do-- ano.
GABRIEL: Ale to je více elegantní.
ALLISON: Jo, to je více elegantní.
Můžete se dostat do designu a kdoví co ještě, ale ano, můžete úplně udělat.
Nějaké další otázky?
OK, v pohodě.
>> Takže jsme mluvili hodně o podmínkách všech těchto smyček, které máme,
takže jsme vlastně dostal do podmínky booleovských výrazů.
Opět platí, že použití těchto v jazyce C, tak jen tak přecházet
z více grafického rozhraní skutečně kódování.
>> Cool, tak velký, pokud.
V podstatě jen nám umožňuje zavést určitou logiku do našeho programu a kontrola
sys podmínky.
Takže v tomto případě, OK, n je větší než 0?
Ano, to je, takže můžete spustit to.
Je to jen kontrolovat některé podmínka, že jste
nastavení, což myslím, že jsme všichni pohodlné s kontrolou podmínek.
V pohodě.
Takže pokud ještě je váš druhý, můžete říct, OK, pokud je to pravda,
udělat první věc.
Jinak chci, abyste Výchozí a dělat něco jiného.
Stejně jako v tomto případě, můžete buď vybrat kladné číslo nebo záporné číslo.
Máte jen dvě možnosti.
Musíte to provést bez ohledu na O tom, co vaše uživatelské vstupy.
Takže můžete říct, dobře, to je větší než 0?
V pohodě.
Vytisknout kladné číslo.
Pokud tomu tak není, vytiskněte negativní.
Každý dobrý?
>> A pak jedna věc, rozpoznat je že pokud je splněna, jestliže podmínka,
jinak se nikdy také spustit.
Pouze jeden z nich bude provést najednou.
Takže je to kompromis.
Nemusíte dostat mít obojí.
Můžete mít buď první podmínku.
Buď máte, pokud nebo jinak, ne obojí.
Které pak mohou dělat věci ještě složitější,
protože pokud můžete udělat, jinde to, a pak ostatní.
Takže v tomto případě jsme mají tři podmínky.
A opět, pouze jeden z nich je skončí popraven.
Takže můžete se ptát, No, co když vás
něco, co může splnit dva z nich.
Možná, že cokoliv, co zadání splňuje i podmínku
protože pokud a else if.
Jediná věc, která se děje na běh
>> ALLISON: Jakmile se najde něco, co že splňuje podmínky pro to
vyhodnotí jako pravda, to je to, co to bude běžet a nic jiného.
Takže pokud jste měli, je toto číslo mezi 0 a 5 pro první,
nebo je to číslo mezi 3 a 5 pro else if část,
a zadáte number-- Řekl jsem 0 a 5 a- 4.
Bude to hit první.
Je to řekne OK, toto číslo mezi 0 a 5.
Provádění a odejít.
To se nikdy zasáhnout, že druhou možnost.
V pohodě?
Úžasné.
>> OK máme také prohlášení přepínač pokud, Chcete-li získat ještě more-- nebo líto,
Spínač se nachází hned vedle.
Jsem předbíhám zde.
Opět platí, že v případě více bloků kde, jak jsem právě řekl,
je, jakmile zjistíte stav že je splněna i v případě, else if jiný,
opustí.
Pokud potřebujete zkontrolovat více věci, ty jsi
bude chtít používat to, protože bude kontrolovat pokaždé zde.
Takže to bude projít, a pokud je větší než nebo rovna 90 ° C,
to bude tisknout to.
A poběží až do konce a zkontrolovat každý jeden z nich.
>> Diváků: Takže by to bylo více buggy než [neslyšitelné].
Bylo by to jako [neslyšitelné]?
>> ALLISON: otázka by to bylo buggy, nebo to, co chcete.
To opravdu záleží na tom, co Chcete ze svého programu.
>> Diváků: Myslím, jako když dáte 90 palců
ALLISON: Pokud dáte 90--
Diváků: [neslyšitelné].
GABRIEL: Budeš mít dvě věci.
ALLISON: Budeš mít dvě věci.
Ano, dvě.
>> ROB BOWDEN: Two?
>> ALLISON: Ne
>> ROB BOWDEN: Čtyři.
Vložíte-li 90, bude to říkáte dostal A, máš B, máš C,
máš D.
>> Diváků: [neslyšitelné].
ALLISON: Správně.
Tak jsem je závislá na tom, co chci od vás programu.
Někdy je třeba zkontrolovat více věcí.
Získáte mnohem hlouběji do toho, co Dobrý design je jak jít kupředu.
Je důležité si si uvědomit, že tato
bude kontrolovat zde všechny čtyři podmínky.
Vzhledem k tomu, kdyby to bylo v případě, else if jiný pokud jiný by to hit, že první věc,
že by vytisknout jste se dostali k A a hotovo.
>> ROB BOWDEN: i když jsme rozhodla změnit to, zda
a větší než nebo rovna 90 ° C, pokud a větší nebo rovno 80 ° C,
a menší než nebo rovna 89, pokud n větší než nebo rovna 70 ° C,
a n menší nebo rovno 79, takže bude správné.
To bude dělat to, co chceme, ale stále kontroluje každý to.
>> Takže zatímco v prvním případě, pokud bychom zadejte 90 se jen v případě, else if else if,
a zadáme 90, pak bude to napravit.
To bude kontrolovat první jeden, tisk máš s A,
přeskočit všechno, protože to již našel jeden, který funguje.
Všechny případy se vzájemně vylučují na základě pokud else if else if.
Takže to bude provádět první, pokud, pak je to hotovo.
Půjde až do konce.
>> Vzhledem k tomu, pokud změníme to být tím, čím jsem byl
říká s méně než nebo rovno 89.
Bude to zkontrolovat první.
To bude tisknout.
To bude kontrolovat ten druhý.
To nebude tisknout.
Zkontrolujte, zda třetí.
Nebude tisknout.
Zkontrolujte, zda čtvrtý.
Teď jde do tisku.
Takže v tomto případě, pokud jiný verze, protože tyto případy
se vzájemně vylučují, je to lepší využití, pokud else if else if,
protože to bude mít méně kontroly podmínek
než tato verze.
ALLISON: Úžasné.
Takže další věc, kterou můžeme udělat, je prohlášení spínač.
V podstatě switch se v některých proměnné,
V tomto případě je to n, a určuje, který případ spustit.
Takže to je také jeden, kde se vaše případy by měl být druh vzájemně vylučují.
Takže v tomto případě, je-li my jsme si jeden, je to
bude odpovídat co to proměnná-- bez ohledu na hodnotu n
je na jednom z těchto případů, tak 1, 2, nebo 3, a vytisknout odpovídající řádek.
>> A pak, pokud si všimnete, tady, máme také výchozí,
které si můžete z myslet jako váš jiného.
Takže pokud si vyberete jiné číslo kromě 1, 2, a 3, v tomto případě
je to jen bude tisknout neplatné.
Rozhodování o tom, kdy použít IFS srovnání pokud elses proti spínače se děje
jako něco, co vy bude viz navrhnout moudrý, jak začnete psát
složitější programy, a tam žádná tvrdá a rychlá pravidla
kdy je použít.
To opravdu záleží na vašem kontextu.
>> ROB BOWDEN: A právě hodit to tam
protože to je mnohem pohodlnější část.
Spínače, mají tendenci be-- takže máte omezený
V mnoha ohledech si je použít, protože IFS,
stav může být docela cokoliv budete chtít.
S přepíná případy musí být čísla,
nebo technicky mohou být znaky, ale znaky, jak uvidíme, jsou jen čísla.
Takže musí být čísla, ale přepínače jsou opravdu účinnější než v případě
else if else if, protože i na příkladu before-- dobře,
Příkladem stupeň se zdá být dobré.
>> No řekněme, že tady máme místo toho dělat to jak v případě, else if else if scénář.
Takže pokud n se rovná rovná se 1, vytiskněte si vybral nízký počet.
V případě jiného, ​​pokud je n rovno rovná 2, si vybral střední číslo.
Else if rovná se rovná 3, vysokým.
Else neplatné.
>> Takže řekněme, že byl náš scénář.
Takže řekněme, že zadáme 4, tak očekáváme, že neplatné.
Tak, že pokud else if jiný -li přístup bude fungovat, je
kontroluje první podmínku.
Není spokojen.
Tak jsme zkontrolovat druhou podmínku.
Není spokojen.
Zkontrolujte, zda třetí podmínku.
Není splněna.
Tak jsme se jít do jiného a vytisknout neplatné.
>> Způsob, jakým se spínací práce je to překládá dolů
na to, co budeme zavolat skok tabulky.
Hlavní myšlenka je že pokud zadáte 4,
může jít ihned na výchozí hodnoty.
Není třeba kontrolovat jsem případ 1?
Ne, že to není ono.
Případ 2?
Ne.
Případ 3?
Ne.
Default.
OK, to musí být tam, kde jsem chtějí, a pak spustit to.
Ne, to okamžitě skočí na výchozí hodnoty.
Nebo to zadám 2, je to okamžitě jít na 2
aniž by bylo nutné projít případě 1.
>> Takže tímto způsobem, realisticky, že dnes je
Není to moc nárůstu efektivnosti.
Obvykle počítače jsou dost rychle, a to není tak velký.
Ale je pravda, že přepínače jsou rychlejší.
Pokud jste opravdu snaží optimalizovat, použít přepínač.
>> ALLISON: cool.
A pak máme ternární operátor.
Takže vím, že jsem se zmínil dříve, slovo syntaktický cukr.
Takže je to jen věci, které kód mnohem výstižnější.
Tak tohle je jeden z těch případů.
>> Takže ternární operátor je otazník tlustého střeva, jak vidíme v řádku řetězci
s se rovná n větší než 100 otazník vysoká tlustého střeva nízká.
Takže v podstatě, jak to funguje, je to n větší než 100, je podmínkou.
Takže myslím, že to může mít smysl.
Je to jako ptát otázku.
To říká oh, je n větší než 100.
Kdo ví?
A pokud to vyhodnotí jako pravda, že to bude tak, aby vám
První věc, která je v něm uvedeny, což je vysoká.
V opačném případě to bude, aby vám nízký.
Takže je to jen opravdu jednoduchá a účinný způsob, jak to udělat, jako v případě jiného.
To je vše, to je.
>> A pokud bychom měli napsat, jako v případě jiného podmíněné,
by bylo, kdyby n je větší než 100, vrátí vysoká.
Jinak vrátí nízká.
To je jen mnohem stručné způsob psaní.
>> ROB BOWDEN: Takže tento konkrétní příklad je vždy, když děláte něco, co
jako je toto, je vzor kde se používá ternární velmi často.
Takže jsme nemluvili o objemu ještě, ale já nesnáším vidět řetězci s středník.
Je-li n větší než 100, s se rovná vysoké.
Jinak, s rovná nízká.
Tak, že vzorek, těch pět řádků kódu doslova 100% času
mohou být přeneseny do co Byl tam s trojice.
Takže trojice, jeden řádek kódu.
Pokud jiný, pět.
To je příklad I bodu z každého okamžiku.
To by skvělé místo pro ternární operátor.
Je to tak čisté.
Ale lidé mají tendenci nikdy použít.
>> ALLISON: Dej to pryč Gabe.
>> GABRIEL: Tak teď vy všichni získané v přednášce tento týden
že je vše v Počítač je binární, že jo?
Stejně jako lampy zde.
Můžete buď zapnout nebo vypnout.
A všechno, mám na mysli doslova všechno.
Některá čísla a znaky a řetězce, a dokonce i kód, který píšete, když
se dostane sestaveny tak, aby stroj kód a podobné věci,
tak to všechno se scvrkává na 0 a 1 ".
>> A tak, když máme co do činění s celými čísly, která
je něco, co je technicky velmi jednoduché, měli bychom být schopni dělat věci,
jako jejich přidání, které je Pravděpodobně jeden z nejjednodušších věcí,
můžete dělat dvě celá čísla, že?
Takže sčítání a odčítání funguje stejně jako to funguje v desítkové,
kromě tady je to binární, že jo?
Takže je to v základu dvě.
Takže přidat 1 + 1.
To jsme našli 0 a 1 se přenáší.
A jen pokračovat v tom, že, Takže teď je zajímavější otázka.
>> Víme, jak reprezentovat všechny pozitivní celá čísla v počítači,
ale udělejme to cvičení.
Předstírat, že vy jste všichni v roce 1960 nebo něco, co se snaží vytvořit počítač,
a budete muset přijít na způsob ukládání minus 1,
například, nebo minus číslo na to přijde.
Jak byste to udělal?
Nějaké nápady?
Stačí hodit něco na mě.
Ano?
>> Diváků: [neslyšitelné] určí zvláštní, pokud váš [neslyšitelné].
>> GABRIEL: Můžete určit, speciální bit, který bude 0 nebo 1.
Řekněme, že jeden, pokud je to pozitivní a 0, pokud je to negativní.
A pak zbytek bitu právě k uložení čísla.
V pohodě.
Tak to je velmi dobrý nápad.
Máme, já nevím, 200.
A v případě, že první bit je zapnutý, pak je to navíc 200.
Pokud je to vypnutý, to je minus 200.
V pohodě.
>> Je tu jen jeden malý Problém s tímto,
který je, pokud se snažíme shrnout věci.
Tak si představte máme 11111 tady, a jsme jako součet to s 00100 cokoliv.
Pokud ti dva jsou pozitivní, to je v pořádku.
Ale pak, pokud jeden z nimi je negativní, stejně jako
řekněme, že tento bit zde je ten, který je zodpovědný
for-- budu dělat separate-- tak to znamená, že jeden toto číslo zde
je pozitivní.
To znamená, že tato jedna Číslo které zde je záporná, je to tak?
>> Ale pak, když jste bude jim řečeno, vy
Potřebujete if říká, oh, pokud je to 0,
pak můj částka bude něco jiného, ​​ne?
Takže tam je trochu více chytrý způsob, jak to udělat
To, co se nazývá dvojkový doplněk.
Takže v podstatě to, co jsme udělat, je definujeme minus 1
být věc, která v případě sečteme 1 dává nám 0.
Dovolte mi to zopakovat.
Takže řekněme, že tohle je 1.
Co je to, co přirozeně v přirozených čísel
přičíst k nám 0 dává?
Co když se snažíme přidat do tohoto čísla?
Budeme have-- OK, tak se pojďme přidat.
Budeme mít 1 + 1 0, a pak se to přenáší.
A pak budeme mít opět 0.
Začínám zmatený.
A budete mít 0 a 0 a 0, a 0, a 0 a 0.
Spousta 0 let.
>> Na poslední jeden, nejsme bude schopen provádět ji,
protože řekněme, že máme pouze jednání s jedním bytem, ​​tak jen 8 bitů.
Takže to, co počítač dělá standardně je prostě zapomene, že [neslyšitelné]
OK?
Tak tohle je to, co se nazývá dvojkového doplňku.
Prostě jsme definovat minus 1, musí být věc tady, že pokud přidáte, že na 1
by vám 0.
A to je docela v pohodě protože my opravdu
Potřebujete pozdě realizovat jiný typ součtu
v závislosti na tom, zda je to negativní nebo kladné číslo.
Dává to smysl?
>> Takže jedna věc, kterou děláme zde za účelem přeměny
mezi pozitivní a negativní číslo se pak otočit všechno,
a pak přidáme 1 na toto číslo.
Pokud se pokusíte udělat sami na kus papíru,
budete vidět, že to dává smysl.
Ale když si vezmu toto číslo zde, to je pět.
Takže když jsem fanda vše zde, tak 1, 1, 1, 1, 1.
Flip, flip, flip.
A pak jsem přidat 1 k němu.
Budu mít přesně minus 5.
OK?
>> Tento druh dává smysl, protože pokud se pokusíte sečíst to s číslem
že jsme měli předtím, což was-- pojďme otočit to znovu.
Bylo to 101 a spousta 0 let.
Pokud se pokusíte přidat tyto dvě čísla dohromady,
budete mít přesně 0.
OK.
Nějaké otázky?
>> Diváků: [neslyšitelné]
>> GABRIEL: Co tím myslíš?
>> Diváků: negativní Pozitivní [neslyšitelné].
>> GABRIEL: Ne, otočit a přidáte 1 vždy.
Jo.
OK, takže znaky kódovány binárky.
Máme ASCII tabulku, jako vy také viděl v přednášce, že jo?
Takže je to v podstatě mapování věcí.
A tady nemohu dostatečně zdůraznit, že počítač, a 65
jsou doslova totéž.
Takže když jsem se napsat něco jako char c rovná, mohl bych zároveň
stačí napsat 65 tady, a to by být přesně stejný, OK?
Neexistuje žádný rozdíl vůbec.
>> Obvykle mají tendenci dát znaky v proměnné typu.
Char, ne proto, že jsou v podstatě stanovena, ale proto, že
lidské konvence.
Ale můžete jen řešení s celými čísly místo proměnné typu char,
a budete v pohodě.
Jediný skutečný rozdíl mezi char c, int i
je to, že int má čtyři byty ve většině systémy, zatímco char má jeden bajt.
Jsou to v podstatě totéž co se týče dat.
Takže to, co se bude tisknout tady?
Zde tisknete číslici pomocí printf se znaménkem plus 1, a stejně jako celá čísla,
znaky lze shrnout, tak znaky mohou být sečteny.
Tak to je přesně 65.
Takže tam to bude 66, a zde máme
65 a trochu minus velký, která bude, já opravdu nevím.
Ale to bude přesně mezera Mezi velkými písmeny
a a menší písmena, takže budeme mít malý, že jo?
Jo.
Takže to bude tisknout charakter, který je přesně tohle.
Dobré?
Nějaké otázky?
>> Zde máme spoustu různých typy pro numerické proměnné.
Už mluvíme o int.
Float je jen způsob, jak to-- je to opravdu legrační, protože když jsem se poprvé dozvěděl,
naprogramovat zpět v den s Python, první program, co jsem kdy
se snažil psát, viděl jsem, že to tam bylo Typ zavolal a typ nazvaný plavat.
A plovák byl pro všechna reálná čísla.
Tak jsem se zeptal, proč by se Co jsem kdy použít int pak?
Vzhledem k tomu, jestli můžu používat všechny reálná čísla s plovákem,
Jen bych přestat používat celých čísel, je to tak?
Protože reálná čísla jsou stejně jako obecnější.
>> Ukazuje se, že je to není tomu tak v oblasti počítačů
proto, že jsou v podstatě různé věci.
Takže celá čísla a plováky, operace, které můžete udělat, aby se jim
jsou v podstatě odlišné, protože způsobu, jakým jsou uloženy, OK?
Budeme mluvit trochu něco víc o tom, že v druhém.
>> Takže double je jen větší float.
Obvykle ve většině systémů, plovák jsou čtyři byty, stejně jako int.
A double je osm bajtů.
Long long je vlastně jen symbol který připojíte k typu, jako je int.
Říkáte, že long long int takhle.
Long long int x, aby to déle.
Takže ve většině systémů, které umožní osm bajtů namísto obvyklých čtyř.
A můžete skutečně klesnout in, tak to může jen říct, long long,
a že pracuje příliš, OK?
Můžete si také dělat jiné věci, jako je unsigned int, nebo opět jen unsigned
by také fungovat.
A že by x být proměnná jako vše je pozitivní,
takže si můžete opravdu mít negativní čísla tak, že jsme se sem viděl up.
Takže po nádherné plovoucí desetinnou čárkou a přesnost.
To je jeden z důvodů, proč tě chcete použít celých čísel místo plováků,
protože ints jsou 100% přesné, že jo?
Je to přesně to číslo.
Pro plovoucí body, pokud máte říci, odpověď se rovná 1 nad 10--
I stalo se, že to přesně Program zde float.c.
Která tiskne na 20 desetinných míst.
1 děleno 10, a že Obvykle je 0,1, ne?
Ale tady pokud uděláme plavat a pak jej spustit,
vidíme, že je to přesně 0,1 ne.
Je to 0,149 něco.
>> A proč je tomu tak?
Protože nemůžete skutečně reprezentovat každý jediné možné reálné číslo v paměti
proto, že tam jsou uncountably mnoho z nich.
Takže jsme technicky schopni pouze představují omezené množství z nich
s konečným množstvím dat.
Ale je to opravdu zajímavé.
Teď to prosí otázka, jak byste
jít o zastupování to s kousky, že jo?
Tak, jak se plave uloženy?
S celými čísly to bylo snadné.
Ale s plováky chcete maximalizovat rozsah,
a chcete-li mít možnost reprezentovat obrovské množství a velmi malé množství, jako je
0.000001 ve stejnou dobu.
Takže znovu, stejná hra.
Má někdo nějaký nápad, jak bychom mohli jít o zastupování plovák v paměti?
Prostě nic neházejte.
Ano, prosím.
>> Diváků: [neslyšitelné] as pokud je to dva a jeden ints
že [neslyšitelné] a jedna bytost vše za desetinnou čárkou.
GABRIEL: OK, v pohodě.
Takže dva různé celá čísla.
Můžete mít 12,45, takže to je 12 a 45.
Nice.
Co ERE chceš říct?
Totéž?
Jo?
>> Diváků: [neslyšitelné] notace kde oddělit základnu.
>> GABRIEL: Vědecká notace, jo to je obvykle to, co se stane.
Tak tohle je to, co se nazývá mantisa.
To je to, co je ve skutečnosti číslo, a pak exponent
je přesně tam, kde je čárka, ne?
Takže to bude něco formuláře 1, 2, 3, 4, 5 krát 10
na minus 4.
Jen jsem si uvědomil, that-- jo, přesně tak.
A pak 10 k minus 4 je bude definovat, kde je čárka, OK?
V Brazílii jsme používat čárku.
Zde si kluci použít tečku.
Tak tečka.
>> A to je v pohodě, protože pak můžete zaměřit spoustu vašich bitů na toho chlapa
Zde, na mantisy a pak je to bude skutečná přesnost.
A můžete to udělat buď v desítkové soustavě nebo v systému na bázi binární.
K dispozici jsou různé způsoby, jak realizovat to.
Otázky?
Ano?
Diváků: Kolik místa za desetinnou čárkou [neslyšitelné]?
>> GABRIEL: To je složitá otázka, protože to nikdy 100% přesné,
protože jak vidíte zde, pro některá čísla, že je 100% přesné.
Věřím, že pokud dáme 0.5 zde to bude 100% přesné.
To bude 0,500000.
Takže v tomto případě, je to perfektní.
V jiných případech, je to mnohem méně dokonalé.
Podle mých zkušeností, stejně jako až čtyři, pět desetinných míst je docela přesný.
Pokud používáte double, že to bude být způsob přesnější než to, OK?
>> ROB BOWDEN: Takže stačí hodit některé další souvislosti na plováky,
Nikdy jsem se vzpomenout si na 100%, jak se spec plováků skutečně funguje,
ale já si vždy pamatovat že plave začít se chaotický.
Takže představa, že když se dostanete opravdu, opravdu velké číslo, nebo opravdu, ale opravdu
malé množství, začneme stále horší a horší
při rozlišování mezi dvěma blízkými plováky.
>> Tak, jak jsem chtěl přemýšlet o tom, s plovoucí desetinnou čárkou nepřesnosti,
jsou dva plováky, které pokud se pokusím specifikovat
v C, a to navzdory skutečnosti, že jsou různá čísla,
že budeš interpretován jako stejným číslem,
protože nemůžeme ukládat je jinak.
Musíme používat stejné kousky.
A tak, když se dostaneme do Opravdu, opravdu velké množství,
mluví jako 10 na 300 nebo něco, to je v tomto bodě
že 10 až 300, nebo 5x 10 až 300
nemohou být rozlišeny od 7 krát 10 na 300.
Tak to je dost velký rozdíl mezi těmito dvěma čísly.
>> Ale pak, když se dostanete dolů do normálního rozmezí věcí,
máte tendenci být docela dobře odlišit.
A pak, když se dostanete dolů opravdu malý, jste také stále znovu dost špatný.
Tak jako celá banda 0,0000, dostane dost špatné.
GABRIEL: Jo, tak krátká poznámka.
Nikdy to nedělejte.
Nikdy se nesnažte porovnávat plave pomocí rovná rovná,
protože i když jsou téměř Totéž, téměř stejná není stejná.
Takže to, co obvykle děláte, je odečíst je, mít absolutní hodnotu, že
a uvidíme, jestli to je menší než 0,0001, nebo něco takového, OK?
A v pohodě.
Vím, že spousta lidí, kteří mají Některé pozadí v jazyce Java,
zejména ty, kteří se AP počítačové vědy, ne?
A Java je jazyk že většinou založené na C,
to má několik velmi velké rozdíly.
Ale pro smyčky a investičních fondů a tak podobně to, že jsou všechny stejnou syntaxi.
Mám několik programů zde pro zobrazení této.
>> Tak například, jednoduchý Hello World.
To je hello world v C, která vás Kluci jsou určitě obeznámeni s,
a to a to jeden je v Javě.
Takže v Javě máme to public class, hello world,
a public static void hlavní, a řetězec args.
Řetězec args jdou se objeví v C velmi krátce.
Ale pojďme se tam dosud.
Právě teď tu máme void, což znamená, že hlavní není žádné argumenty.
A pak máme System.out.println, a to
druh ekvivalentu pro printf.
Zde nepotřebují zpětné lomítko n, protože tisk ln udělá za vás.
To připojí zpětné lomítko n na konci řádku.
>> Ale když jdete do něco jako A pro jste
je vidět, že jsou skoro totéž.
Tak inicializace, a stav a aktualizace
je-- Stýskalo se mi prostor here-- jsou skoro to samé, kromě Java
má jako několik dalších věcí na vysoké úrovni.
Zde můžeme udělat a já a Java bude automaticky
aby to i zde, což je integer, do řetězce,
a pak se připojit dva řetězce dohromady.
Tady v C musíme udělat, a% d.
Linka zde, pro vypadá úplně stejně.
>> A pokud se podíváme na v případě, IFS také vypadají úplně stejně, ne?
Takže skutečné velké rozdíly jsou v těch věcech, které zde vidíte.
Public static, void, a pak public class-li.
Takže Java má to, co je nazývá virtuální stroj.
A to je velmi silně založena na tom, co se nazývá objektově orientované programování,
což je velmi, velmi časté paradigma programování v dnešní době.
A tato třída věc je to, co vidíte, něco z objektové orientace,
je vytvořit třídu a pak vás lze odvodit objekty z dané třídy.
Nebudeme mluvit příliš hodně o tom v CS50,
ale to je určitě něco opravdu cool,
zejména v případě, že chcete jít do sofistikovanější vývoj webových aplikací
Na konci kurzu, jako odešlete závěrečný projekt
a některé pěkné rámce a věci.
>> Takže v podstatě myšlenkou je, že vás nechci znovu zavést něco,
tak vytvořit něco, co je velmi obecný, stejně jako tvar,
a potom vytvořit různé tvary z ní,
a pak se z každého Tyto tvary můžete vytvořit
některé další specifické tvary ve třech rozměry nebo něco takového.
A mají tuto hierarchii, které dědí od ostatních, takže
všechny funkce a všechny proměnné, které velký tvar zde má všechny tyto
budou mít, a všechny z nich jsou bude mít, a tak dále a tak dále.
Tak to je základní myšlenka.
>> C nemá, ale C ++ má mít takovou funkci.
A Java je silně ovlivněn o objektové orientace,
tak to je důvod, proč vidíte třída zde po celou dobu.
A další věc je, Tento Java virtual machine.
Takže to, myslím, že je to velmi chytrý nápad.
Takže to, co lidé, kteří vynalezl java udělal, je
nechtěli, aby sestavit svůj kód dvakrát
kdyby jej spustit v systému Windows, nebo Mac nebo Linux, takže to, co dělají
je doslova běží něco jako zařízení,
ale nemáte opravdu vidět že se to děje.
Tak se spustit virtuální stroj uvnitř počítače, které
je v podstatě jako mini operační systém.
A to provozní Účelem systému je v životě
je jen spustit to, co se nazývá byte kódu.
>> Takže místo toho, v C, tak bychom kompilace je to, aby v případě, a spusťte
./if.
Zapomněl jsem zpětné lomítko v.
V Javě, byste udělali jako první Java C se jej zkompilovat if.c.
Není to C. Je to tečka java.
A pak budete muset spustit ne ./.
Dostanete tento nový soubor if.class, ale nemůžete opravdu
spustit if.class nyní jen jako jsme to udělali předtím.
To není spustitelný.
Musíte spustit.
Musíte krmit do program s názvem Java,
a že program je virtuální stroj, a pak dělat if.class, nebo-li.
Ano.
A pak to funguje.
OK, takže to je druh virtuální stroj děje.
C nemá, takže pokud bych měl aby tento program v počítači se systémem Windows,
že to nebude fungovat v C. V Javě to dělá.
Otázky?
V pohodě.
To je v případě, Super sekci pro dnešek.