>> [Glazbom]
>> Doug LLOYD: Bok, pa neka je govorimo o operatora u C
Dakle, već smo vidjeli jedan, u stvari, jednako operatora zadatak.
To nam omogućuje jednostavno staviti vrijednost u varijablu.
To je zadatak Operater, jednu znak jednakosti.
Kako bi manipulirali i rad s vrijednostima i varijabli u C,
imamo broj operatera na raspolaganju da možemo koristiti.
Idemo pogledati neki od onih koji se češče
počevši s aritmetičkim operatorima.
Kao što ste mogli očekivati, možemo napraviti lijepe osnovne matematičke operacije u C.
Možemo zbrajati, oduzimati, množiti i podjela brojeva pomoću plus, minus, zvijezda,
i udarac, respektivno.
Evo par redaka broj na koji ćemo to učiniti.
Dakle, imamo int x jednak y plus 1.
Pretpostavimo da negdje iznad ove linije koda
imali smo kazao int y jednak 10.
Što je vrijednost x Nakon što sam izvršiti ovu prvu liniju koda?
Jeste li reći 11?
Ti bi u pravu.
Zašto je to?
Pa, y je 10.
Neki govorim int x jednak 10 plus 1.
10 plus 1 je 11.
Dakle, vrijednost 11 dobiva pohranjeni u varijable x.
Nije loše, zar ne?
>> Kako o ovoj sljedećem retku kod? x je jednaka x puta 5.
Pa, prije nego što smo pogubili ova linija koda, x je 11.
Dakle, ono što je vrijednost x Nakon ove linije koda?
Uzmite trenutak.
Dakle, X je jednak x puta 5.
X je 11.
Dakle, x jednak 11 puta 5.
Ili 55.
Dakle, ako si rekao 55, ti bi biti u pravu.
>> Sada, to može biti malo zbunjujuće, ali s načinom na koji zadatak radi u C
je vrijednost na desnoj dobiva dodijeljena vrijednost s lijeve strane.
Dakle, prvo ćemo ocijeniti x puta 5.
Dakle, 11 puta 5 je 55.
A onda smo pohraniti tu vrijednost u x.
11 kako je tamo Prije sada izbrisane.
Dakle, X-vrijednost je sada 55.
Nadam se da je to prilično jednostavan.
>> Postoji još jedan operator koji ste Vjerojatno ne nužno čuli
nazvao, ali ste sigurno je radio u prošlosti
ako se sjećate svoje dane dugo Podjela put natrag u osnovnoj školi.
To se zove operator modul.
Što modul se je to daje ostatak
kada podijeliti dva broja zajedno.
Dakle, ako ja kažem 13 podijeljeno s 4, što je ostatak?
I to će se izračunati vrijednost operator modula.
>> Dakle, imam liniju koda Ovdje, int m jednak 13 mod 4.
A ja kažem ovdje u komentaru da m je vrijednost sada je 1.
Zašto kažem da?
Pa, ne dugo podjelu u svoj glava, ako nose sa mnom na trenutak.
Dakle, ja sam 4 podijeljena 13.
4 ide u 13 tri puta s ostatkom 1.
Dakle, u osnovi, sve modul operater ne
je li vas kad vam govori podjela, te dobiti ostatak.
Možda mislite da je to zapravo Nije strašno korisna stvar,
ali da bih se iznenadio, zapravo, koliko često da modula
operater može doći u ruci.
>> Postoji nekoliko problema ćemo učiniti CS50 da se s njima nositi.
To je također dobar za događaj stvari kao slučajni broj.
Tako, na primjer, ako ste ikada čuo za generator slučajnih brojeva,
to će vam dati broj od 0 do neki veliki broj.
Ali možda je samo jako potreban broj od 0 do 20.
Ako koristite operator modul čvrstoće na taj div brojem koji
dobiva generira slučajni broj generatora,
ti si idući u uzeti što god velika vrijednost je, razdijelite po 20,
i dobiti ostatak.
Ostatak može samo se vrijednost od 0 do 19.
Dakle, koristite modul čvrstoće operatera uzeti ovaj veliki broj
i strugati ga u nešto malo više smisla.
Prilično sam siguran da ćete biti moći koristiti obje oni
u nekom trenutku u budućnosti u CS50.
>> Dakle, C nam također daje način primijeniti aritmetiku
operater na jednu varijablu u malo više stenogram način.
Dakle, u prethodnom slajdu, Vidjeli smo x jednaka x puta 5.
To je radio.
x puta 5 onda dobiva pohranjena natrag u x.
Postoji kraći način da to učinite, misao, i to je sintaksa x puta jednaka 5.
To je isto točno stvar kao rekavši x jednaka x puta 5.
To je samo malo kraći način to učiniti.
A kad vidite neke Raspodjela broj ili
vidim neki primjer koda koji radi stvari kao što je ovaj,
samo biti upoznati s što je sintaksa znači.
Vi sigurno ne ga koristiti, ali ako to učinite,
to može napraviti svoj kod pogledajte malo kabanicu.
A znate da možete koristiti bilo koji od različiti operatori mi smo već
vidio prije, umjesto puta.
Moglo bi se reći x plus jednaka 5, minus jednaka 5, vrijeme, podjele i mod.
Sve one rada.
>> Tu je i nešto to je tako čest u C
da smo odlučili da precizirali da je čak i dalje.
Povećavati varijablu od 1 ili decrementing varijablu za 1
je takav zajednički stvar-- posebno kada govorimo o petlje malo kasnije
on-- da smo odlučili umjesto govoreći nešto poput X plus jednak 1,
ili x jednako x plus 1, imamo još Ukratko predao da je X plus plus.
Dakle, X je jednak X plus 1, X plus jednak 1, i x plus plus sve učiniti istu stvar.
Svi su prirast x za 1.
Ali to povećavati a do 1. decrementing
je tako čest da imamo plus minus plus i minus
koji omogućuju nam da stenogram da je čak i dalje.
>> Dakle, neka je prebacivanje zupčanici za sekundu i razgovarati o Boolean izraza.
Svi koji su također vrsta spadaju u ukupna kategorija operatora.
Ali Boolean izraza, za razliku od aritmetičke operatore,
služe za uspoređivanje vrijednosti.
Dakle, opet, sve Boolean izraza u C ocijeniti u jednu od dvije moguće vrijednosti,
sjećam.
Istina ili laž.
To je samo dvije vrijednosti koje Boolean varijabla može poprimiti.
Možemo koristiti rezultate od Boolean izraza
na mnogo načina u programiranju.
U stvari, vi ćete biti radi ovo dosta.
>> Na primjer, mogli bismo odlučiti, dobro, ako neki uvjet istinit,
možda ću uzeti ovo grana niz moj broj.
Uvjetni, da se tako izrazim.
Ćemo učiti o onima prije previše.
Ili, sve dok to je istina, ja želim
da to iznova i iznova i iznova.
Omča.
U oba slučaja, znam da smo pomoću Boolean izraz, pravi ili lažni,
odlučiti hoće li ili ne da se određeni put.
Ponekad, kada radimo s Boolean izraza,
ćemo koristiti varijable tipa bool.
Možda ste proglasili bool upisali varijablu,
a vi ćete koristiti u svom Logički izraz.
Ali ne uvijek morate učiniti.
Kao što se ispostavilo, u C, svaki ne-0 Vrijednost je isto što i reći istina.
Ako je proglašen varijabla tipa Boolean,
i dodijeljena mu vrijednost istina, to je isto kao progla cijeli broj
i dodjeljivanje mu vrijednost 1, 2, 3, ili bilo koja vrijednost stvarno
god osim 0.
Jer u C, svaki ne-0 vrijednost true.
0, s druge strane, je lažna.
To bi moglo doći zgodan kasnije znati,
ali samo nešto na umu.
Mi ne moraju uvijek koristiti Boolean varijable tipa kad smo
rade s Boolean izraza.
>> Postoje dvije glavne vrste boolean Izrazi koji ćemo raditi.
Logički operatori i relacijski operatori.
Jezik je nije strašno važno.
To je zapravo samo kako ću ih grupiranje.
A vi ćete sigurno, mislim, brzo shvatiti što relacijski operator,
na temelju onoga što su oni kada smo govoriti o njima u sekundi.
No, ne brinite nužno memoriranje pojam logički operator
ili relacijskih operatora.
Ja sam samo pomoću skupini ih u logičan način.
>> Dakle, neka je pogledati tri logičkih operatora
da ćemo vidjeti dosta malo u programiranju u CS50
i programiranja općenito.
Logično i istinito, ako je i samo ako oba operanda istinita.
Inače lažna.
Gdje to znači?
Dakle, recimo da sam sam u točka u moj broj gdje sam
dvije varijable, X i Y.
I želim da odluči hoće li učiniti nešto u mom kodu
na temelju ako je x i y istina je istina.
Ja samo želim to učiniti, ako obojica su istinite,
inače ja ne želim ići dolje da Put jer neće da mi pomogne.
Ono što mogu reći je li x & y.
To će biti logično Boolean Izraz usporedbom x i y
i uzimajući određenu stazu na temelju onoga što su njihove vrijednosti.
Dakle, ako je x i y istina je istina na temelju ove istine stolu ovdje,
tek tada ćemo ići dolje taj put.
Ako x, & & y.
To je samo true-- Predsjednik i samo True ako je x i y istina je istina.
Ako niti jedna lažna, kao što smo vidjeli tablicu istine,
onda X i Y nisu istinite.
I tako, X & Y je lažna.
>> Logički ILI vrijedi ako i samo ako je barem jedan operand je istina.
Inače lažna.
Dakle, logično i potrebno i x i y da bi bilo istinito.
Logički ILI zahtijeva x da bi bilo istinito ili y da bi bilo istinito ili oba X i Y da bi bilo istinito.
Dakle, opet smo nekako pronaći sebe u situaciji
gdje ćemo naš kod, i mi stigli vilicu na cesti.
I želimo ići dolje Posebno put ako je x istina
ili Y je istina, ali ne nužno ako oba istinita.
Ali možda, ako su oba istinita.
Dakle, ako je x i y je istina Istina, mi ćemo otići dolje taj put.
x je istina.
Jedan od njih je istina, zar ne?
Ako je x i y istina je istina.
Ako je x istina, a y je lažna, jedan od njih je i dalje istina.
Dakle, X ili Y i dalje vrijedi.
Ako je x lažna, a y je istina, jedan od njih je i dalje istina, zar ne?
y je istina, u ovom slučaju.
Dakle, istina je da su X i Y je istina.
Samo ako je x lažno i y je lažna mi ne silazi tom putu,
jer ni x, niti y je istina.
Sada, ako ste u potrazi na zaslonu upravo sada
i pitate što je to Simbol je za logično OR,
to se zove okomita traka.
A ako gledaš tipkovnici za minutu, što radim sada,
to je obično samo iznad Unesite ključ, na većini tipkovnica,
na istoj tipki kao i kose crtice.
To je također obično odmah pored uglatih zagrada.
Dakle, to bi moglo biti ključ koji vas nisu upisali jako puno u prošlosti.
Ali, ako ste ikada radite logičke usporedbe,
što ćemo biti događaj Mnogo u tijeku, to je
će biti korisno Smatraju da je ključ i koristiti ga.
Dakle, to je obično na istoj tipki kao kose crtice iznad Enter.
>> Konačna logično Operator NIJE.
I nije prilično jednostavan.
Ona izvrće vrijednost svog operanda.
Ako je x istina, onda ne x je lažna.
Ako je x lažna, onda ne x je istina.
Ponekad ćete čuti ovaj simbol izgovara kao prasak ili uzvikom
ili ne.
To je ljepušan velik dio sve ista stvar.
U slučaju da čuju da je govorio i niste sigurni što to znači,
to je samo usklik točka, ali ponekad je to
nazvao par različite stvari.
U redu, tako da je potrebno briga logičkih operatora.
Dakle, pričajmo o relacijski operatori.
Opet, ako ste upoznati s ovim aritmetička još u osnovnoj školi,
vjerojatno ste upoznati s koliko je već to rade.
Oni se ponašaju upravo onako kako ste očekivali.
Dakle, manje nego što je istina, u ovom Primjerice, ako je x manji od y.
Dakle, ako je x 4 i y je 6, x je manje od y.
To je istina.
Manje od ili jednako radi prilično slično.
Ako je x 4, i y je 4, tada x je manje od ili jednako y.
Veći od. x veći od y.
A veća od ili jednaka x je veća od ili jednaka y.
Ako je to istina, onda ćete proći taj izraz,
a vi ćete ići dolje koji put na cesti.
Ako imate ako je x veći od y, i x je, u stvari, veći od y,
ćete učiniti sve što je podliježe tom stanju.
>> Obavijest da nemaju jedan znak za manje od
ili jednak, kao što bi moglo biti upoznati s iz matematike udžbenika.
Dakle, imamo manje od simbola, slijedi znak jednakosti.
Tako zastupamo manji ili jednak.
A isto tako, mi to za veći ili jednak.
>> Konačna dva relacijska operatori koji su važni
testiranje jednakosti i nejednakosti.
Dakle, ako je x jednak jednaka y, vrijedi Ako su X i Y je vrijednost ista.
Ako je X 10, y je 10 i, nakon toga x jednaka jednaka y je istina.
Ako je x 10, y je 11 x jednak jednak y nije istina.
Također možete testirati nejednakosti korištenja uskličnik ili bang ili ne,
ponovo.
Ako X nije jednako y, ako to je test smo pomoću ovdje
mi bi bilo dobro ići.
Dakle, ako x nije jednak y, mi ćemo otići dolje taj put.
>> Budite jako oprezni ovdje.
To je stvarno čest mistake-- i on sam sigurno napravio dosta kada
Sam bio uzimajući started-- slučajno pogriješiti
operator zadatak, samohrani jednaki, za operatora usporedbe jednakosti,
dvostruko jednaki.
To će dovesti do neki čudan ponašanje u kodu,
i obično prevodilac će vas upozoriti o tome kada pokušate
i sastaviti svoj kôd, ali ponekad možda ćete biti u mogućnosti da ga doušnik strane.
To nije nužno dobra stvar da ga doušnik strane, ipak.
Samo da ako radiš Testove nejednakost,
Ako ste provjerom je li dva različite varijable imaju istu vrijednost
unutar njih, pobrinite se da koristite jednako ravnopravni, a ne pojedinačne jednakima.
I na taj način vaš program će se imaju ponašanje namjeravate.
Ja sam Doug Lloyd i to je CS50.