>> [MIZIK jwe]
>> Doug Lloyd: Hi, kidonk kite a pale sou operatè yo nan C.
Se konsa, nou te deja wè yon sèl, an reyalite, egal operatè a plasman.
Li pèmèt nou jis mete se yon valè nan yon varyab.
Sa a plasman an operatè, sèl siy egal-ego.
Yo nan lòd yo manipile ak travay ak valè ak varyab nan C,
nou gen yon kantite operatè a jete nou ke nou ka sèvi ak.
Se pou nou pran yon gade nan kèk nan yo menm ki komen
kòmanse ak operatè aritmetik.
Kòm ou ta ka atann, nou ka fè operasyon trè matematik debaz yo genyen nan C.
Nou ka ajoute, soustrè, miltipliye, ak nimewo divize lè l sèvi avèk plis, mwens, etwal,
ak koupe, respektivman.
Isit la nan yon koup nan liy nan Kòd nan ki nou fè sa.
Se konsa, nou gen int x egal y plis 1.
Se pou nou asime ke yon kote moute pi wo a liy sa a nan kòd
nou te di Int y egal 10.
Ki sa ki nan valè a nan x apre mwen egzekite liy sa a premye nan Kòd?
Èske w te di 11?
Ou ta dwat.
Poukisa se sa?
Oke, y te 10.
Gen kèk int m ap di x egal 10 plis 1.
10 plis 1 se 11.
Se konsa, valè a 11 vin ki estoke nan x la varyab.
Pa twò move, dwa?
>> Kouman sou liy sa a pwochen nan Kòd? x egal x fwa 5.
Oke, anvan nou egzekite liy sa a nan kòd, x te 11.
Se konsa, ki sa ki valè a nan x apre liy sa a nan kòd?
Pran yon dezyèm fwa.
Se konsa, x egal x fwa 5.
x te 11.
Se konsa, x egal 11 fwa 5.
Ou 55.
Se konsa, si ou te di 55, ou ta dwe gen dwa.
>> Koulye a, li kapab yon ti kras konfizyon, men ak wout la ki plasman travay nan C
se valè a sou bò dwat la vin asiyen nan valè a sou bò gòch la.
Se konsa, premye nou evalye x fwa 5.
Se konsa, 11 fwa 5 se 55.
Lè sa a, nou sere ki valè nan x.
11 a ke te gen anvan se kounye a ranplase.
Se konsa, valè x nan se kounye a 55.
Nou swete ke sa a, se san patipri senp.
>> Genyen yon lòt operatè ki ou te pwobableman pa nesesèman tande
rele sa a, men ou te sètènman te travay ak nan tan lontan an
si ou sonje jou ou nan tan divizyon fason tounen nan lekòl klas.
Yo rele li operatè a Modil.
Ki sa ki fè se li Modil ba ou rès la
lè ou divize de nonb ansanm.
Se konsa, si mwen di 13 divize pa 4, sa ki nan rès la?
E yo ta ke valè ap kalkile pa operatè a Modil.
>> Se konsa, mwen gen yon liy nan kòd isit la, int m egal 13 mod 4.
Apre sa, mwen di isit la nan yon kòmantè valè ki m nan se kounye a 1.
Poukisa mwen di sa?
Oke, fè divizyon an tan soti nan ou tèt, si ou pote avè m 'pou yon dezyèm fwa.
Se konsa, mwen te 4 divize pa 13.
4 ale nan 13 twa fwa ak yon rès nan 1.
Se konsa, fondamantalman, tout nan Modil operatè fè
se li di ou lè ou divize, ou jwenn rès la.
Ou ta ka panse sa a, se aktyèlman pa yon bagay fò anpil itil,
men ou ta dwe etone, aktyèlman, pa ki jan souvan ki Modil
operatè kapab vini nan sou la men.
>> Genyen yon koup nan pwoblèm nou pral fè CS50 ki fè fas ak li.
Li la tou yon bon bagay pou fè bagay sa yo tankou nimewo o aza.
Se konsa, pou egzanp si ou te janm tande pale de yon PO dèlko o aza,
ki k ap pase l 'ban nou yon nimewo ki ant 0 a kèk nimewo gwo.
Men, petèt ou sèlman vrèman bezwen yon nimewo ki ant 0 a 20.
Si ou itilize operatè a Modil sou nimewo sa jeyan ki
vin ki te pwodwi pa la o aza dèlko nimewo,
w ap ale nan pran tou sa gwo valè li ye, divize li pa 20,
epi pou yo jwenn rès la.
Rès la kapab sèlman gen yon valè ki ant 0 a 19.
Se konsa, ou sèvi ak operatè Modil pran nimewo sa a gwo
ak Whittle li desann nan yon bagay yon ti kras plis sans.
Mwen se trè asire w ou pral kapab sèvi ak tou de nan sa yo
nan kèk pwen nan tan kap vini an nan CS50.
>> Se konsa, C tou ba nou yon fason pou aplike pou yon aritmetik
operatè nan yon varyab sèl nan yon ti fason pi plis steno.
Se konsa, nan glise anvan an, nou te wè x egal x fwa 5.
Sa te travay.
x fwa 5 Lè sa a, vin estoke tounen nan x.
Gen nan yon fason ki pi kout fè li, panse, ak li nan sentaks x fwa yo egal 5.
Li nan bagay la menm egzak kòm li di x egal x fwa 5.
Se jis nan yon yon ti kras pi kout fason yo fè li.
Men, lè ou wè kèk Kòd distribisyon oswa ou
wè kèk Kòd echantiyon ki fè bagay sa yo tankou sa a,
jis dwe abitye avèk sa sentaks la vle di.
Ou sètènman pa gen yo sèvi ak li, men si ou fè sa,
li ta ka fè kòd ou a gade yon ti kras konbinar.
Ak konnen ke ou ka tou itilize nenpòt nan operatè yo diferan nou te deja
wè anvan olye pou yo fwa.
Ou te kapab di x plis egal 5, mwens egal 5, fwa, divize, ak mod.
Tout nan tout sa yo travay.
>> Genyen tou yon bagay sa a, se konsa komen nan C
ke nou te deside rafine ke menm pi lwen.
Incrementing yon varyab pa 1 oswa decrementing yon varyab pa 1
se tankou yon bagay-- komen espesyalman lè nou pale sou pasan yon ti kras pita
on-- ke nou te deside olye pou yo li di yon bagay tankou x plis egal 1,
oswa x egal x plis 1, nou te menm kout lage ke yo x plis plis.
Se konsa, x egal x plis 1, x plis egal 1, ak x plis plis tout fè menm bagay la.
Yo tout x enkreman pa 1.
Men, sa incrementing ak decrementing pa 1
se konsa komen ke nou gen plis plis ak mwens mwens
ki pèmèt nou steno ke menm pi lwen.
>> Se konsa, kite a chanje angrenaj pou dezyèm epi pale sou ekspresyon Boolean.
Tout ki se tou kalite tonbe nan kategori a an jeneral nan operatè yo.
Men, ekspresyon Boolean, kontrèman operatè aritmetik,
yo te itilize pou konpare valè.
Se konsa, ankò, tout ekspresyon Boolean nan C evalye nan youn nan de valè sa posib,
sonje.
Vre oubyen fo.
Sa a se sèlman de valè yo ki Varyab Boolean ka pran sou.
Nou ka sèvi ak rezilta yo nan yon ekspresyon Boolean
nan yon anpil nan fason nan pwogram.
An reyalite, ou pral fè sa byen yon anpil.
>> Pou egzanp, nou ta ka deside, byen, si gen kèk kondisyon se vre,
petèt mwen pral pran sa a branch desann Kòd m 'yo.
Yon kondisyonèl, se konsa pale.
Nou pral aprann sou moun byento tou.
Oswa petèt, osi lontan ke sa a se vre, mwen vle
kenbe fè sa sou yo ak sou yo ak sou.
Yon riban.
Nan de ka, konnen ke nou ap sèvi ak yon ekspresyon Boolean, se yon vre oubyen fo,
deside si wi ou non pran yon chemen an patikilye.
Pafwa lè nou ap travay ak ekspresyon Boolean,
nou pral sèvi ak varyab nan kalite bouleen.
Ou ta ka yo te deklare yon bouleen tape varyab,
epi ou pral sèvi ak nan ou Boolean ekspresyon.
Men, ou pa toujou gen yo dwe fè.
Kòm li vire soti, nan C, chak ki pa 0 valè se menm bagay la kòm li te di vre.
Si ou te deklare yon varyab nan kalite Boolean,
ak asiyen li valè a vre, sa a, se menm jan ak deklare yon nonb antye relatif
ak plase li valè a 1, 2, 3, oswa reyèlman nenpòt ki valè
tou sa lòt pase 0.
Paske nan C, chak-0 ki pa valè vre.
0, sou lòt men an, se fo.
Sa a ta ka vini nan sou la men pita sou konnen,
men jis yon bagay yo kenbe nan tèt ou.
Nou pa toujou gen yo sèvi ak Varyab kalite Boolean lè nou
ap travay ak ekspresyon Boolean.
>> Gen de kalite prensipal nan Boolean ekspresyon ke nou pral travay avèk yo.
Operatè ki lojik e ki operatè relasyon.
Lang nan gen pa fò anpil enpòtan.
Li nan reyèlman jis ki jan mwen gwoupman yo.
Epi ou pral sètènman, mwen panse ke, byen vit reyalize sa yon operatè relasyon se,
ki baze sou ki sa yo ye lè nou pale sou yo nan yon dezyèm fwa.
Men, pa enkyete sou nesesèman memorize operatè a ki lojik tèm
oswa relasyon operatè.
Mwen jis lè l sèvi avèk li nan gwoup yo nan yon fason ki lojik.
>> Se konsa, kite a pran yon gade nan twa operatè yo ki lojik
ke nou pral wè byen yon ti jan nan pwogram nan CS50
ak nan pwogram plis jeneralman.
Ki lojik e ki se vre, si ak sèlman si toude opérandes yo se verite.
Sinon fo.
Ki kote sa vle di?
Se konsa, kite pou nou di se mwen menm ki nan yon pwen nan kòd m 'kote mwen gen
de varyab, x ak y.
Apre sa, mwen vle deside si fè yon bagay nan kòd m '
ki baze sou si x se vre ak y se vre.
Mwen sèlman vle fè li si tou de peyi yo yo se verite,
otreman mwen pa ta vle ale desann sou menm chemen paske li pa k ap pase yo ede m '.
Ki sa mwen ka di se si x & & y.
Ki pral gen yon Boolean lojik ekspresyon konpare x ak y
ak pran yon chemen sèten ki baze sou sa valè yo ye.
Se konsa, si x se vre ak y se vre baze sou tab verite sa a isit la,
sèlman Lè sa a nou pral ale desann sou menm chemen.
Si x, & & y.
Li nan sèlman true-- a ak se sèlman vre si x se vre ak y se vre.
Si youn se yon sèl fo, jan nou wè tab la verite,
Lè sa a, tou de x ak y yo se pa vre.
Se konsa, x & & y se fo.
>> Lojik oswa se vre si e sèlman si omwen yon opérande se verite.
Sinon fo.
Se konsa, ki lojik e ki egzije tou de x ak y yo dwe vre.
Lojik oswa mande pou x yo dwe vre oswa y yo dwe vre oswa toude x ak y yo dwe vre.
Se konsa, ankò, nou kalite jwenn tèt nou nan yon sitiyasyon
kote nou ap ale nan Kòd nou an, epi nou te rive nan yon fouchèt nan wout la.
Apre sa, nou vle ale desann yon chemen patikilye si x se vre
oswa y se vre, men se pa nesesèman si toude yo se verite.
Men, petèt si toude yo se verite.
Se konsa, si x se vre ak y se vre, nou pral ale desann sou menm chemen.
x se vre.
Youn nan yo se vre, dwa?
Si x se vre ak y se vre.
Si x se vre, y se fo ak, youn nan yo se toujou vre.
Se konsa, x oswa y se toujou vre.
Si x se fo, ak y se vre, youn nan yo se toujou vre, dwa?
y se vre, nan ka sa a.
Se konsa, li la vre ke x oswa y se vre.
Se sèlman si x se fo ak y se fo nou pa ale desann sou menm chemen,
paske ni x ni y se vre.
Koulye a, si w ap chèche nan ekran an kounye a
ak mande ki sa sa senbòl se pou lojik OSWA,
sa yo rele ba a vètikal.
Men, si ou gade nan klavye ou pou yon minit, jan mwen ap fè kounye a,
li a anjeneral jis pi wo a la Antre kle, sou pi fò nan Klavye,
sou kle a menm jan ak antislach a.
Li la tou anjeneral dwat akote parantèz yo kare.
Se konsa, li ta kapab yon kle ke ou pa gen tape anpil nan tan lontan an.
Men, si w ap janm fè konparezon ki lojik,
jan nou pral fè yon anpil nan kou a, li nan
pral fè itil nan jwenn ke kle yo ak sèvi ak li.
Se konsa, li la anjeneral sou kle nan menm kòm antislach jis anwo a Antre nan.
>> Operatè a final ki lojik se pa vre.
Epi yo pa a trè senp.
Li inverse valè a nan opérande li yo.
Si x se vre, lè sa a pa x se fo.
Si x se fo, lè sa a pa x se vre.
Pafwa ou pral tande senbòl sa a pwononse kòm Bang oswa esklamasyon
oswa ou pa.
Li nan bèl anpil tout menm bagay la.
Nan ka ou tande ke pale ak ou pa fin sèten sa ki sa vle di,
li nan jis esklamasyon nan pwen, men pafwa li a
rele yon koup bagay diferan.
Tout dwa, se konsa ki pran swen nan operatè lojik.
Se konsa, kite nan pale sou operatè relasyon.
Yon fwa ankò, si w ap abitye ak sa a aritmetik tounen nan lekòl klas,
w ap pwobableman abitye ak ki jan sa yo travay deja.
Sa yo konpòte egzakteman jan ou ta atann.
Se konsa, mwens pase sa li la vre, nan ka sa egzanp, si x se mwens pase y.
Se konsa, si x se 4 ak y se 6, x se mwens pase y.
Se vre.
Mwens pase oswa egal a travay trè Menm jan an tou.
Si x se 4, ak y se 4, Lè sa a, x se mwens pase oswa egal a y.
Pi gran pase. x se pi gran pase y.
Ak pi gran pase oswa egal a, x gen plis pouvwa pase oswa egal a y.
Si li nan vre, Lè sa a, ou pral konsa, ekspresyon,
epi ou pral desann ke chemen sou wout la.
Si ou gen yon si x se pi gran pase y, ak x se, an reyalite, gen plis pouvwa pase y,
ou pral fè tou sa ki sijè a ki kondisyon.
>> Remake nou pa gen yon karaktè sèl pou mwens pase
oswa egal a, menm jan ou ta ka abitye avèk soti nan liv lekòl matematik.
Se konsa, nou gen mwens an pase senbòl, ki te swiv pa yon siy egal-ego.
Sa a ki jan nou reprezante mwens pase oswa egal a.
Apre sa, Menm jan an tou, èske nou fè sa pou pi gran pase oswa egal a.
>> Final de relasyon an operatè ki enpòtan
yo fè tès pou egalite ak inegalite.
Se konsa, si x egal egal y, se vre si x ak y nan valè menm bagay la.
Si x se 10, ak y se 10, Lè sa a, x egal egal y se vre.
Si x se 10 ak y se 11, x egal egal y se pa vre.
Nou kapab tou tès pou lè l sèvi avèk inegalite pwen esklamasyon oswa Bang oswa ou pa,
ankò.
Si x se pa egal a y, si sa a, se tès la nou ap lè l sèvi avèk isit la,
nou ta dwe bon yo ale.
Se konsa, si x se pa egal a y, nou pral ale desann sou menm chemen.
>> Dwe reyèlman atansyon isit la.
Li se yon mistake-- reyèlman komen ak yon sèl mwen sètènman te fè byen yon anpil lè
Mwen te resevwa started-- aksidantèlman erè
operatè a plasman, egal sèl, pou operatè a egalite konparezon,
egal doub.
Li pral mennen nan kèk etranj konpòtman nan kòd ou a,
epi anjeneral du a pral avèti ou sou li lè w ap eseye
epi pou konpile kòd ou a, men pafwa ou ta ka kapab fofile li pa.
Li pa nesesèman yon bon bagay ke ou fofile li pa, menm si.
Jis Se konsa, si w ap fè yon tès inegalite,
si w ap tcheke si wi ou non de varyab diferan gen valè nan menm
andedan nan yo, asire w ke yo sèvi ak egal egal, ak egal pa sèl.
Apre sa, nan fason sa a ou yo ap pwogram gen konpòtman an ou gen entansyon.
Mwen se Doug Lloyd ak sa a se CS50.