>> [Přehrávání hudby]
>> DOUG LLOYD: Ahoj, tak se pojďme mluvit o operátory v C
Takže jsme již viděli, kdo ve skutečnosti, rovná operátor přiřazení.
To nám umožňuje jen dát hodnota do proměnné.
To je úkol operátor, singl znaménko rovná se.
Aby bylo možné manipulovat a práci s hodnotami a proměnných v C,
máme řadu operátorů které máme k dispozici, které můžeme použít.
Pojďme se podívat na některé z těch obyčejných
počínaje aritmetické operátory.
Jak se dalo očekávat, můžeme to udělat docela základní matematické operace v C.
Můžeme přidat, odčítání, násobení, a rozdělit čísel pomocí Plus, mínus, hvězda,
a lomítko, v daném pořadí.
Zde je pár řádků kód, ve kterém to uděláme.
Takže, máme int x rovná se y plus 1.
Předpokládejme, že někde up nad tento řádek kódu
jsme si řekli int y se rovná 10.
Jaká je hodnota x po I spustit tento první řádek kódu?
Říkal jste 11?
Vy byste pravdu.
Proč tomu tak je?
No, y bylo 10.
Některé Říkám int x se rovná 10 plus 1.
10 plus 1 je 11.
Takže, hodnota 11 dostane uložena v proměnné x.
Není to tak zlé, že jo?
>> Jak se o tomto dalším řádkem kód? x se rovná x-krát 5.
No, než jsme provedli Tento řádek kódu, byl 11 x.
Takže, co je hodnota x po tomto řádku kódu?
Vezměte chvilku.
Takže x se rovná x-krát 5.
x bylo 11.
Takže x se rovná 11 krát 5.
Or 55.
Takže pokud jste řekl 55, měli byste mít pravdu.
>> Nyní může být trochu matoucí, ale s tím, jak je tento převod pracuje v C
je hodnota na pravé straně dostane přidělí hodnotě na levé straně.
Takže, nejprve vyhodnotíme x krát 5.
Tak, 11 krát 5 je 55.
A pak jsme skladovat tuto hodnotu v x.
11, že tam byl Než je nyní přepsána.
Takže hodnota X je nyní 55.
Doufejme, že je to docela jednoduché.
>> Je tu další operátor, že jste Pravděpodobně ne nutně neslyšel
volal, ale nemáš Rozhodně pracoval v minulosti
pokud si pamatujete své dny dlouhé Divize cesta zpět na základní škole.
Jmenuje se operátor modul.
Co dělá, je to modul dává vám zbytek
když dělíte dvě čísla dohromady.
Takže, když řeknu, že 13 děleno 4, jaký je zbytek?
A tato hodnota bude vypočtena provozovatelem modulem.
>> Takže, mám řádek kódu tady, int m se rovná 13 mod 4.
A já říkám tady v komentáři Hodnota že m je nyní 1.
Proč to říkám, že?
No, dělat dlouhé dělení ve vaší hlava, pokud jste mějte se mnou na chvilku.
Takže, já jsem 4 děleno 13.
4 jde do 13 třikrát se zbytkem 1.
Takže, v podstatě, všechny modul operátor dělá
Je to vám řekne, když se rozdělit, dostanete zbytek.
Můžete si myslet, že je to ve skutečnosti nijak zvlášť užitečná věc,
ale vy byste se divila, ve skutečnosti, podle toho, jak často se tímto modulem
Operátor může přijít vhod.
>> Je tu pár problémů uděláme CS50, které se zabývají s ním.
Je také dobré pro to věci, jako je náhodné číslo.
Tak, například pokud jste někdy slyšel o generátor náhodných čísel,
, co se děje, aby vám číslo od 0 do nějaké obrovské číslo.
Ale možná si jen opravdu Potřebuji číslo od 0 do 20.
Pokud použijete operátor modulu na tomto obrovském počtu, že
dostane generované generátor náhodných čísel,
budete brát cokoliv obrovská hodnota to je, vydělíme ji 20,
a získat zbytek.
Zbytek může pouze mít hodnotu od 0 do 19.
Takže, můžete použít operátor modulu aby se toto obrovské množství
a Whittle ji do něčeho trochu smysl.
Jsem si docela jistý, že budete moci používat oba tyto
v určitém okamžiku v budoucnosti v CS50.
>> Takže, C nám také poskytuje způsob aplikovat aritmetický
Operátor na jedné proměnné v trochu více zkrácený způsobem.
Takže v předchozím snímku, jsme viděli x odpovídá x krát 5.
To fungovalo.
x krát 5, pak je uložena zpět do x.
K dispozici je kratší způsob, jak to udělat, myšlenka, a to je, že syntax x krát 5 se rovná.
Je to stejné, přesně věc jako říkat x rovná x-krát 5.
Je to jen mírně kratší způsob, jak to udělat.
A když vidíte některé Distribuce kódu nebo
vidět nějaký ukázkový kód dělá věci, jako je toto,
prostě být obeznámeni s co syntaxe znamená.
Určitě Nemusíte ji používat, ale pokud tak učiníte,
to by mohlo vytvořit svůj kód vypadat trochu gumák.
A víte, že můžete také použít některý z různí provozovatelé jsme již
předtím neviděl místo časů.
Dalo by se říci x a rovná 5, minus rovná 5, časy, propasti a mod.
Všechny tyto práce.
>> K dispozici je také něco, to je tak běžné v C
že jsme se rozhodli upřesnit, že ještě dále.
Zvyšování proměnné o 1 nebo dekrementování proměnné o 1
je takový společný thing-- zvláště když mluvíme o smyček o něco později
on--, že jsme se rozhodli místo říkat něco jako X plus rovná 1,
nebo x se rovná x plus 1, máme dokonce krátký podal že pro X plus plus.
Takže x se rovná X plus 1, X a rovná se 1, a X plus a všichni dělají totéž.
Všichni přírůstek x o 1.
Ale to zvyšování a dekrementování o 1
je tak běžné, že máme a plus a mínus mínus
které nám umožňují těsnopis že ještě dále.
>> Takže, pojďme se spínacími zařízeními pro sekundu a mluvit o booleovských výrazů.
Všichni, které jsou i druhy spadají do celkový kategorie provozovatelů.
Ale logické výrazy, Na rozdíl od aritmetické operátory,
jsou použity pro porovnání hodnot.
Takže znovu, všechny logické výrazy v C vyhodnotit do jedné ze dvou možných hodnot,
oběhu.
Pravda nebo lež.
To jsou pouze dvě hodnoty, které Boolean proměnná může přijmout.
Můžeme použít výsledky o logický výraz
v mnoha ohledech v programování.
Ve skutečnosti, budete Dělat to docela hodně.
>> Například, můžeme rozhodnout, dobře, pokud některé podmínka je pravda,
možná budu brát větví se můj kód.
Podmíněný, abych tak řekl.
Dozvíme o těch, brzy taky.
Nebo možná, pokud To je pravda, já chci
aby dělal to znovu a znovu a znovu.
Smyčka.
V obou případech, vím, že jsme pomocí Boolean výraz, je pravdivé nebo nepravdivé,
rozhodnout, zda či nikoli aby konkrétní cestu.
Někdy, když pracujeme Boolovskými výrazy,
budeme využívat proměnné typu Bool.
Možná jste prohlásil, boolovské napsaný proměnnou,
a budete používat ve vašem Logický výraz.
Ale nemusíte mít vždy dělat.
Jak se ukázalo, v C, každou non-0 hodnota je stejná, jak říká true.
Kdybyste prohlásil proměnná typu Boolean,
a přiřadí jí hodnotu pravda, že je to stejné jako deklarovat celé číslo
a přiřazením hodnoty 1, 2, 3, nebo ve skutečnosti libovolná hodnota
jakékoliv jiné než 0 ° C.
Vzhledem k tomu, v C, každý non-0 hodnota je true.
0, na druhé straně, je falešný.
To by mohlo přijít v hodit později vědět,
ale jen něco mít na paměti.
Ne vždy musí použít Proměnné typu Boolean, když jsme
pracují s booleovských výrazů.
>> Existují dva hlavní typy Boolean výrazy, které budeme pracovat s.
Logické operátory a relační operátory.
Jazyk je zde ne hrozně důležité.
Je to opravdu jen, jak jsem je seskupení.
A budete určitě, myslím, rychle Uvědomujete si, co relační operátor,
na základě toho, co oni jsou, když jsme mluvit o nich v druhém.
Ale nebojte se o nezbytně zapamatování termín logický operátor
nebo relační operátor.
Jen jsem používat to, aby skupině je logickým způsobem.
>> Takže, pojďme se podívat na tři logické operátory
že uvidíme docela bit v programování v CS50
a programování obecně.
Logické AND je pravdivý, je-li a pouze tehdy, pokud oba operandy jsou pravdivé.
V opačném případě false.
Tam, kde to má znamenat?
Takže, řekněme, že jsem v a bod v mém kódu, kde mám
dvě proměnné, x a y.
A já chci, aby rozhodl, zda udělat něco v mém kódu
na základě, pokud x je pravdivé a y je pravdivý.
Já jen chci, aby to v případě, obě z nich jsou pravdivé,
jinak Nechci jít dolů, že cesta, protože to nebude mi pomoci.
To, co mohu říci, je-li x a y a.
To bude logický Boolean výraz porovnání x a y
a při určité cestu na základě toho, co jejich hodnoty.
Takže, pokud x je pravdivé a y je pravda založené na této pravdě stůl tady,
Teprve pak budeme pokračovat touto cestou.
Jestliže x, y a a.
Je to jen true-- a stojí pouhých true, pokud x je pravdivé a y je pravdivý.
Pokud některý z nich je falešný, jak vidíme v tabulce pravdy,
Potom byly oba x a y jsou není pravda.
A tak, x a y a je falešný.
>> Logické OR je pravdivý jestliže a jediný pokud alespoň jeden operand je pravda.
V opačném případě false.
Takže logický a požadované oba x a y, aby to byla pravda.
Logické OR vyžaduje x aby to byla pravda, nebo y být pravdivý nebo oba x a y je to pravda.
Takže, ještě jednou, jsme trochu najít sami v situaci,
kam jedeme do našeho kódu, a jsme dosáhli rozcestí.
A my chceme jít dolů zejména cesta pokud x je pravda
nebo y je pravdivý, ale ne nutně pokud oba jsou pravdivé.
Ale možná, pokud oba jsou pravdivé.
Takže pokud x je pravdivé a y je pravda, půjdeme touto cestou.
x je pravda.
Jedním z nich je pravda, že jo?
Je-li x je pravdivé a y je pravdivý.
Pokud x je pravda, a y je falešný, jeden z nich stále platí.
Takže, x nebo y je stále platí.
Pokud x je falešný, a y je pravda, jeden z nich je stále pravda, že jo?
y je pravda, v tomto případě.
Tak, to je pravda, že x nebo y je pravdivý.
Pouze pokud x je falešný a y je falešný máme jít touto cestou,
protože ani x, ani y je pravda.
Nyní, pokud hledáte na obrazovku právě teď
a přemýšlel, co to symbol je pro logický OR,
Jmenuje se svislá čára.
A pokud vás při pohledu na klávesnici za minutu, jak dělám teď,
je to obvykle těsně nad Enter tlačítko, na většině klávesnic,
na stejném tlačítku jako zpětné lomítko.
To je také obvykle pravdu vedle hranatých závorkách.
Takže, může to být klíč, který vás dosud zadali moc v minulosti.
Ale pokud jste někdy děláte logické srovnání,
jak budeme dělat hodně v kurzu, je to
Bude vhodné, aby zjistíte, že klíč a použít jej.
Takže, je to obvykle na stejném tlačítku jak zpětné lomítko těsně nad Enter.
>> Konečný logický operátor NENÍ.
A ne to velice jednoduché.
To invertuje hodnotu jeho operandu.
Pokud x je pravdivý, pak ne x je nepravdivé.
Pokud x je false, pak ne x je pravda.
Občas uslyšíte tento symbol prohlásil jako třesk nebo zvolání
nebo ne.
Je to skoro všechny totéž.
V případě, že jste slyšet, že mluví a si nejste jisti, co to znamená,
je to jen výkřik bod, ale někdy je to
volal pár různé věci.
Dobře, takže bere péče o logických operátorů.
Takže, pojďme mluvit o relační operátory.
Opět platí, pokud jste obeznámeni s tím aritmetika zpět na základní škole,
budete pravděpodobně znát s tím, jak tyto práce již.
Ty se chovají přesně tak, jak byste čekali.
Takže méně než je to pravda, v tomto příklad, pokud x je menší než y.
Takže, pokud je x 4 a y je 6, x je menší než y.
To je pravda.
Méně než nebo rovno funguje docela podobně.
Je-li x je 4, a y je 4, potom x je menší než nebo rovno y.
Větší než. x je větší než y.
A větší nebo rovno, x je větší než nebo rovno y.
Jestli je to pravda, pak budete projít tento výraz,
a budete jít dolů že cesta na silnici.
Máte-li, zda x je větší než y, a x je, ve skutečnosti, je větší než y,
budete dělat, co je podléhají tomuto stavu.
>> Všimněte si, že nemáme mít Jeden znak za méně než
nebo se rovná, jak byste mohli být obeznámeni s od matematiky učebnic.
Takže, máme méně než symbol, následovaný rovnítko.
To je, jak jsme se představují méně než nebo rovno.
A stejně, budeme dělat, že po dobu delší než nebo rovný.
>> Finální dvou relačních subjekty, které jsou důležité
jsou testování na rovnosti a nerovnosti.
Takže, je-li x rovná se rovná y, je pravda, Jestliže X a Y je hodnota je stejná.
Je-li x je 10, a y je 10, potom x se rovná rovná y je pravdivý.
Je-li x je 10 a y je 11, x rovná se rovná y není pravda.
Můžeme také test na nerovnost pomocí vykřičník nebo přesně, nebo ne,
znovu.
Není-li x rovno y, pokud že je to test, který používáme tady,
bychom být dobré jít.
Takže, pokud x není rovno y, půjdeme touto cestou.
>> Být opravdu opatrní.
Je to opravdu běžné mistake-- a zcela jistě jsem docela hodně, když
Byla jsem started-- omylem zaměňovat
operátor přiřazení, jednotlivé rovná, pro operátor porovnání rovnosti,
double rovni.
Bude to vést k nějaký divný Chování v kódu,
a obvykle kompilátor upozorní vás na to, když se pokusíte
a sestavit svůj kód, ale někdy byste měli být schopni propašovat ji.
To není nutně dobrá věc že jste to proplížit tím, ačkoli.
Jen takže pokud děláte test nerovnost,
pokud máte kontrolu, zda jsou dva různé proměnné mají stejnou hodnotu
uvnitř nich, ujistěte se, že používáte rovná se rovná, a ne jednotlivé rovná.
A to způsobem, váš program bude mají chování, máte v úmyslu.
Jsem Doug Lloyd a tohle je CS50.