>> [Prehrávanie hudby]
>> DOUG LLOYD: Ahoj, tak sa poďme hovoriť o operátormi v C
Takže sme už videli, kto v skutočnosti, rovná operátor priradenia.
To nám umožňuje len dať hodnota do premennej.
To je úloha operátor, singel znamienko rovná sa.
Aby bolo možné manipulovať a prácu s hodnotami a premenných v C,
máme rad operátorov ktoré máme k dispozícii, ktoré môžeme použiť.
Poďme sa pozrieť na niektoré z tých obyčajných
počnúc aritmetické operátory.
Ako sa dalo očakávať, môžeme to urobiť docela základné matematické operácie v C.
Môžeme pridať, odčítanie, násobenie, a rozdeliť čísiel pomocou Plus, mínus, hviezda,
a lomka, v danom poradí.
Tu je pár riadkov kód, v ktorom to urobíme.
Takže, máme int x rovná sa y plus 1.
Predpokladajme, že niekde up nad tento riadok kódu
sme si povedali int y sa rovná 10.
Aká je hodnota x po I spustiť tento prvý riadok kódu?
Hovoril ste 11?
Vy by ste pravdu.
Prečo tomu tak je?
No, y bolo 10.
Niektoré Hovorím int x sa rovná 10 plus 1.
10 plus 1 je 11.
Takže, hodnota 11 dostane uložená v premennej x.
Nie je to tak zlé, že jo?
>> Ako sa o tomto ďalšom riadkom kód? x sa rovná x-krát 5.
No, ako sme vykonali Tento riadok kódu, bol 11 x.
Takže, čo je hodnota x po tomto riadku kódu?
Vezmite chvíľku.
Takže x sa rovná x-krát 5.
x bolo 11.
Takže x sa rovná 11 krát 5.
Or 55.
Takže ak ste povedal 55, mali by ste mať pravdu.
>> Teraz môže byť trochu mätúce, ale s tým, ako je tento prevod pracuje v C
je hodnota na pravej strane dostane pridelí hodnote na ľavej strane.
Takže, najprv vyhodnotíme x krát 5.
Tak, 11 krát 5 je 55.
A potom sme skladovať túto hodnotu v x.
11, že tam bol Než je teraz prepísaná.
Takže hodnota X je teraz 55.
Dúfajme, že je to celkom jednoduché.
>> Je tu ďalší operátor, že ste Pravdepodobne nie nutne nepočul
volal, ale nemáš Rozhodne pracoval v minulosti
ak si pamätáte svoje dni dlhej Divízie cesta späť na základnej škole.
Volá sa operátor modul.
Čo robí, je to modul dáva vám zvyšok
keď delíte dve čísla dohromady.
Takže, keď poviem, že 13 deleno 4, aký je zvyšok?
A táto hodnota bude vypočítaná prevádzkovateľom modulom.
>> Takže, mám riadok kódu tu, int m sa rovná 13 mod 4.
A ja hovorím tu v komentári Hodnota že m je teraz 1.
Prečo to hovorím, že?
No, robiť dlhé delenie vo vašej hlava, ak ste majte so mnou na chvíľku.
Takže, ja som 4 delené 13.
4 ide do 13 trikrát so zvyškom 1.
Takže, v podstate, všetky modul operátor robí
Je to vám povie, keď sa rozdeliť, dostanete zvyšok.
Môžete si myslieť, že je to v skutočnosti nijako zvlášť užitočná vec,
ale vy by ste sa divila, v skutočnosti, podľa toho, ako často sa týmto modulom
Operátor môže prísť vhod.
>> Je tu pár problémov urobíme CS50, ktoré sa zaoberajú s ním.
Je tiež dobré pre to veci, ako je náhodné číslo.
Tak, napríklad ak ste niekedy počul o generátor náhodných čísel,
, Čo sa deje, aby vám číslo od 0 do nejakej obrovskej číslo.
Ale možno si len naozaj Potrebujem číslo od 0 do 20.
Ak použijete operátor modulu na tomto obrovskom počte, že
dostane generované generátor náhodných čísel,
budete brať čokoľvek obrovská hodnota to je, vydelíme ju 20,
a získať zvyšok.
Zvyšok môže iba mať hodnotu od 0 do 19.
Takže, môžete použiť operátor modulu aby sa toto obrovské množstvo
a Whittle ju do niečoho trochu zmysel.
Som si celkom istý, že budete môcť používať oba tieto
v určitom okamihu v budúcnosti v CS50.
>> Takže, C nám tiež poskytuje spôsob aplikovať aritmetický
Operátor na jednej premennej v trochu viac skrátený spôsobom.
Takže v predchádzajúcom snímke, sme videli x zodpovedá x krát 5.
To fungovalo.
x krát 5, potom je uložená späť do x.
K dispozícii je kratšia spôsob, ako to urobiť, myšlienka, a to je, že syntax x krát 5 sa rovná.
Je to rovnaké, presne vec ako hovoriť x rovná x-krát 5.
Je to len mierne kratšie spôsob, ako to urobiť.
A keď vidíte niektoré Distribúcia kódu alebo
vidieť nejaký ukážkový kód robí veci, ako je toto,
proste byť oboznámení s čo syntaxe znamená.
Určite Nemusíte ju používať, ale ak tak urobíte,
to by mohlo vytvoriť svoj kód vyzerať trochu gumák.
A viete, že môžete tiež použiť niektorý z rôzni prevádzkovatelia sme už
predtým nevidel miesto časov.
Dalo by sa povedať x a rovná 5, mínus rovná 5, časy, priepasti a mod.
Všetky tieto práce.
>> K dispozícii je tiež niečo, to je tak bežné v C
že sme sa rozhodli spresniť, že ešte ďalej.
Zvyšovanie premennej o 1 alebo dekrementování premenné o 1
je taký spoločný thing-- obzvlášť keď hovoríme o slučiek o niečo neskôr
on--, že sme sa rozhodli miesto hovoriť niečo ako X plus rovná 1,
alebo x sa rovná x plus 1, máme dokonca krátky podal že pre X plus plus.
Takže x sa rovná X plus 1, X a rovná sa 1, a X plus a všetci robia to isté.
Všetci prírastok x o 1.
Ale to zvyšovanie a dekrementování o 1
je tak bežné, že máme a plus a mínus mínus
ktoré nám umožňujú tesnopis že ešte ďalej.
>> Takže, poďme sa spínacími zariadeniami pre sekundu a hovoriť o boolovských výrazov.
Všetci, ktoré sú aj druhy spadajú do celkový kategórie prevádzkovateľov.
Ale logické výrazy, Na rozdiel od aritmetické operátory,
sú použité pre porovnanie hodnôt.
Takže znovu, všetky logické výrazy v C vyhodnotiť do jednej z dvoch možných hodnôt,
obehu.
Pravda alebo lož.
To sú iba dve hodnoty, ktoré Boolean premenná môže prijať.
Môžeme použiť výsledky o logický výraz
v mnohých ohľadoch v programovaní.
V skutočnosti, budete Robiť to celkom veľa.
>> Napríklad, môžeme rozhodnúť, dobre, ak niektoré podmienka je pravda,
možno budem brať konárov sa môj kód.
Podmienečný, aby som tak povedal.
Dozvieme o tých, čoskoro taky.
Alebo možno, ak To je pravda, ja chcem
aby robil to znovu a znovu a znovu.
Slučka.
V oboch prípadoch, viem, že sme pomocou Boolean výraz, je pravdivé alebo nepravdivé,
rozhodnúť, či je alebo nie aby konkrétnu cestu.
Niekedy, keď pracujeme Boolovskými výrazy,
budeme využívať premenné typu Bool.
Možno ste vyhlásil, boolovské napísaný premennú,
a budete používať vo vašom Logický výraz.
Ale nemusíte mať vždy robiť.
Ako sa ukázalo, v C, každú non-0 hodnota je rovnaká, ako hovorí true.
Keby ste prehlásil premenná typu Boolean,
a priradí jej hodnotu pravda, že je to rovnaké ako deklarovať celé číslo
a priradením hodnoty 1, 2, 3, alebo v skutočnosti ľubovoľná hodnota
akékoľvek iné ako 0 ° C.
Vzhľadom k tomu, v C, každý non-0 hodnota true.
0, na druhej strane, je falošný.
To by mohlo prísť v hodiť neskôr vedieť,
ale len niečo mať na pamäti.
Nie vždy musí použiť Premenné typu Boolean, keď sme
pracujú s boolovských výrazov.
>> Existujú dva hlavné typy Boolean výrazy, ktoré budeme pracovať s.
Logické operátory a relačnej operátormi.
Jazyk je tu nie hrozne dôležité.
Je to naozaj len, ako som ich zoskupenie.
A budete určite, myslím, rýchlo Uvedomujete si, čo relačné operátor,
na základe toho, čo oni sú, keď sme hovoriť o nich v druhom.
Ale nebojte sa o nevyhnutne zapamätanie termín logický operátor
alebo relačné operátor.
Len som používať to, aby skupine je logickým spôsobom.
>> Takže, poďme sa pozrieť na tri logické operátory
že uvidíme docela bit v programovaní v CS50
a programovanie všeobecne.
Logické AND je pravdivý, ak je a iba vtedy, ak obidva operandy sú pravdivé.
V opačnom prípade false.
Tam, kde to má znamenať?
Takže, povedzme, že som v a bod v mojom kóde, kde mám
dve premenné, x a y.
A ja chcem, aby rozhodol, či urobiť niečo v mojom kóde
na základe, ak x je pravdivé a y je pravdivý.
Ja len chcem, aby to v prípade, obe z nich sú pravdivé,
inak Nechcem ísť dole, že cesta, pretože to nebude mi pomôcť.
To, čo môžem povedať, ak je x a y a.
To bude logický Boolean výraz nákupný x a y
a pri určitej cestu na základe toho, čo ich hodnoty.
Takže, ak x je pravdivé a y je pravda založené na tejto pravde stôl tu,
Až potom budeme pokračovať touto cestou.
Ak x, y a a.
Je to len true-- a stojí púhych true, ak x je pravdivé a y je pravdivý.
Ak niektorý z nich je falošný, ako vidíme v tabuľke pravdy,
Potom boli obaja x a y sú nie je pravda.
A tak, x a y a je falošný.
>> Logické OR je pravdivý ak a jediný ak aspoň jeden operand je pravda.
V opačnom prípade false.
Takže logický a požadované obaja x a y, aby to bola pravda.
Logické OR vyžaduje x aby to bola pravda, alebo y byť pravdivý alebo obidva x a y je to pravda.
Takže, ešte raz, sme trochu nájsť sami v situácii,
kam ideme do nášho kódu, a sme dosiahli rázcestí.
A my chceme ísť dole najmä cesta ak x je pravda
alebo y je pravdivý, ale nie nutne ak obidva sú pravdivé.
Ale možno, ak obidva sú pravdivé.
Takže ak x je pravdivé a y je pravda, pôjdeme touto cestou.
x je pravda.
Jedným z nich je pravda, že jo?
Ak je x je pravdivé a y je pravdivý.
Ak x je pravda, a y je falošný, jeden z nich stále platí.
Takže, x alebo y je stále platí.
Ak x je falošný, a y je pravda, jeden z nich je stále pravda, že jo?
y je pravda, v tomto prípade.
Tak, to je pravda, že x alebo y je pravdivý.
Iba ak x je falošný a y je falošný máme ísť touto cestou,
pretože ani x, ani y je pravda.
Teraz, ak hľadáte na obrazovku práve teraz
a premýšľal, čo to symbol je pre logický OR,
Volá sa zvislá čiara.
A ak vás pri pohľade na klávesnici za minútu, ako robím teraz,
je to zvyčajne tesne nad Enter tlačidlo, na väčšine klávesníc,
na rovnakom tlačidle ako spätné lomítko.
To je tiež zvyčajne pravdu vedľa hranatých zátvorkách.
Takže, môže to byť kľúč, ktorý vás doteraz zadali moc v minulosti.
Ale ak ste niekedy robíte logické porovnanie,
ako budeme robiť veľa v kurze, je to
Bude vhodné, aby zistíte, že kľúč a použiť ho.
Takže, je to zvyčajne na rovnakom tlačidle ako spätné lomítko tesne nad Enter.
>> Konečný logický operátor NIE JE.
A nie to veľmi jednoduché.
To invertuje hodnotu jeho operandu.
Ak x je pravdivý, potom nie x je nepravdivé.
Ak x je false, potom nie x je pravda.
Občas počujete tento symbol vyhlásil ako tresk alebo zvolanie
alebo nie.
Je to skoro všetky to isté.
V prípade, že ste počuť, že hovorí a si nie ste istí, čo to znamená,
je to len výkrik bod, ale niekedy je to
volal pár rôzne veci.
Dobre, takže berie starostlivosť o logických operátorov.
Takže, poďme hovoriť o relačnej operátormi.
Opäť platí, ak ste oboznámení s tým aritmetika späť na základnej škole,
budete pravdepodobne poznať s tým, ako tieto práce už.
Tie sa správajú presne tak, ako by ste čakali.
Takže menej ako je to pravda, v tomto príklad, ak x je menšia než y.
Takže, ak je x 4 a y je 6, x je menšie ako y.
To je pravda.
Menej ako alebo rovné funguje celkom podobne.
Ak je x je 4, a y je 4, potom x je menšie alebo rovné y.
Lepší než. x je väčšie ako y.
A väčšie alebo rovné, x je väčší alebo rovné y.
Ak je to pravda, potom budete prejsť tento výraz,
a budete ísť dole že cesta na ceste.
Ak máte, či x je väčšia ako y, a x je, v skutočnosti, je väčšia ako y,
budete robiť, čo je podliehajú tomuto stavu.
>> Všimnite si, že nemáme mať Jeden znak za menej ako
alebo sa rovná, ako by ste mohli byť oboznámení s od matematiky učebníc.
Takže, máme menej ako symbol, nasledovaný znamienko rovnosti.
To je, ako sme sa predstavujú menej než alebo rovné.
A rovnako, budeme robiť, že po dobu dlhšiu ako alebo rovný.
>> Finálny dvoch relačných subjekty, ktoré sú dôležité
sú testovanie na rovnosti a nerovnosti.
Takže, ak je x rovná sa rovná y, je pravda, Ak X a Y je hodnota je rovnaká.
Ak je x je 10, a y je 10, potom x sa rovná rovná y je pravdivý.
Ak je x je 10 a y je 11, x rovná sa rovná y nie je pravda.
Môžeme tiež test na nerovnosť pomocou výkričník alebo presne, alebo nie,
znova.
Ak nie je x rovné y, ak že je to test, ktorý používame tu,
by sme byť dobré ísť.
Takže, ak x nie je rovné y, pôjdeme touto cestou.
>> Byť naozaj opatrní.
Je to naozaj bežné mistake-- a celkom iste som celkom veľa, keď
Bola som started-- omylom zamieňať
operátor priradenia, jednotlivé rovná, pre operátor porovnanie rovnosti,
double rovní.
Bude to viesť k nejaký divný Správanie v kóde,
a zvyčajne kompilátor upozorní vás na to, keď sa pokúsite
a zostaviť svoj kód, ale niekedy by ste mali byť schopní prepašovať ju.
To nie je nevyhnutne dobrá vec že ste to preplížiť tým, hoci.
Len takže ak robíte test nerovnosť,
ak máte kontrolu, či sú dva rôzne premenné majú rovnakú hodnotu
vnútri nich, uistite sa, že používate rovná sa rovná, a nie jednotlivé rovná.
A to spôsobom, váš program bude majú správanie, máte v úmysle.
Som Doug Lloyd a toto je CS50.