[CHWARAE CERDDORIAETH] DOUG LLOYD: Hi, felly gadewch i ni siarad am weithredwyr yn C. Felly, yr ydym eisoes wedi gweld un, mewn gwirionedd, yn hafal i'r gweithredwr aseiniad. Mae'n ein galluogi i ddim ond rhoi gwerth i mewn newidyn. Dyna yr aseiniad gweithredydd, hafalnod sengl. Er mwyn trin a gweithio gyda gwerthoedd a newidynnau yn C, mae gennym nifer o weithredwyr ar gael i ni y gallwn ei ddefnyddio. Gadewch i ni edrych ar rhai o'r rhai cyffredin gan ddechrau gyda gweithredwyr rhifyddeg. Fel y byddech yn disgwyl, y gallwn ei wneud gweithrediadau mathemateg sylfaenol 'n bert yn C. Gallwn ychwanegu, tynnu, lluosi, a rhifau rhaniad ddefnyddio plws, minws, seren, a slaes, yn y drefn honno. Dyma ychydig o linellau o Cod yr ydym yn gwneud hynny. Felly, mae gennym int x yn hafal i y plws 1. Gadewch i ni dybio bod rhywle uwchben y llinell hon o god rydym wedi dweud int y yn hafal 10. Beth yw gwerth y x ar ôl i mi gweithredu hwn llinell gyntaf o god? A wnaethoch chi ei ddweud 11? Byddech yn gywir. Pam hynny? Wel, y yn 10. Mae rhai int i ddim yn dweud x hafal i 10 ac 1. 10 ac 1 yw 11. Felly, mae'r gwerth 11 yn cael storio yn y newidyn x. Ddim yn rhy ddrwg, dde? Beth am hyn linell nesaf cod? x yn hafal x amseroedd 5. Wel, cyn i ni ddienyddio llinell hon o god, x yn 11. Felly, beth yw gwerth x ar ôl llinell hon o god? Cymerwch eiliad. Felly, x hafal x amseroedd 5. x yn 11. Felly, x hafal 11 gwaith 5. Neu 55. Felly, os ydych dywedodd 55, byddech yn gywir. Yn awr, gall fod yn ychydig yn ddryslyd, ond gyda'r ffordd y aseiniad yn gweithio yn C yw gwerth ar y dde yn cael neilltuo i werth ar y chwith. Felly, yn gyntaf rydym yn gwerthuso x amseroedd 5. Felly, 11 gwaith 5 yw 55. Ac yna byddwn yn storio bod gwerth yn x. Roedd y 11 a oedd yno cyn hyn yn cael ei drosysgrifo. Felly gwerth x yn awr yn 55. Gobeithio mae hynny'n eithaf syml. Mae weithredwr arall yr ydych wedi Mae'n debyg na chlywed o reidrwydd gelwir hyn, ond ydych chi wedi yn sicr yn gweithio gyda yn y gorffennol os ydych yn cofio eich diwrnod i hir ffordd is-adran yn ôl yn yr ysgol radd. Mae'n cael ei alw i'r gweithredwr modwlws. Yr hyn fodwlws wneud yw ei yn rhoi'r gweddill i chi pan fyddwch yn rhannu dau rif at ei gilydd. Felly, os wyf yn dweud 13 wedi'i rannu â 4, beth yw'r gweddill? Ac y byddai gwerth yn cael ei gyfrifo gan weithredwr y modwlws. Felly, mae gennyf linell o god yma, int m hafal 13 mod 4. Ac yr wyf yn ei ddweud yma mewn sylw gwerth y m yn awr yn 1. Pam ydw i'n dweud hynny? Wel, yn gwneud yr is-adran hir allan yn eich ben, os ydych yn amyneddgar gyda mi am eiliad. Felly, yr wyf wedi 4 yn ei rannu â 13. 4 yn mynd i mewn 13 dair gwaith gyda gweddill o 1. Felly, yn y bôn, yr holl gweithredwr modwlws gwneud a yw'n dweud wrthych pan fyddwch yn rhaniad, byddwch yn cael y gweddill. Efallai y byddwch yn meddwl bod mewn gwirionedd Nid yw yn beth ofnadwy o ddefnyddiol, ond byddech yn synnu, mewn gwirionedd, yn ôl pa mor aml y modwlws Gall gweithredwr yn dod i mewn 'n hylaw. Mae un neu ddau o broblemau fe wnawn CS50 sy'n ymdrin ag ef. Mae hefyd yn dda ar gyfer gwneud pethau fel rhif ar hap. Felly, er enghraifft os ydych chi wedi erioed clywed am generadur rhif ar hap, mae hynny'n mynd i roi rhif i chi o 0 i rai nifer enfawr. Ond efallai mai dim ond 'n sylweddol rhaid i nifer 0-20. Os ydych yn defnyddio y gweithredwr modwlws ar y rhif anferth sy'n yn cael ei gynhyrchu gan y generadur rhif ar hap, ydych yn mynd i gymryd pa bynnag gwerth enfawr y mae, ei rannu gan 20, ac yn cael y gweddill. Gall y gweddill yn unig fod yn werth 0-19. Felly, byddwch yn defnyddio gweithredwr modwlws i gymryd y nifer enfawr a didoli i lawr i mewn i rywbeth ychydig yn fwy ystyrlon. Rwy'n eithaf siwr y byddwch yn gallu defnyddio'r ddau o'r rheiny ar ryw adeg yn y dyfodol yn CS50. Felly, C hefyd yn rhoi ffordd i ni i wneud cais i rhifyddeg gweithredydd i'r newidyn sengl mewn ychydig o ffordd fwy llaw fer. Felly, yn y sleid blaenorol, gwelsom x hafal x amseroedd 5. Oedd yn gweithio. x amseroedd 5 wedyn yn cael ei storio yn ôl yn x. Mae 'na ffordd fyrrach i wneud hynny, meddwl, ac mae'n amseroedd gystrawen x yn hafal 5. Mae yr un fath yn union peth â gan ddweud x yn dychwelyd x amseroedd 5. Mae'n dim ond ychydig ffordd fyrrach i wneud hynny. A phan fyddwch yn gweld rhai cod dosbarthu neu os ydych yn gweld rhywfaint cod enghreifftiol sydd gwneud pethau fel hyn, dim ond bod yn gyfarwydd â yr hyn y mae'r gystrawen yn ei olygu. Rydych yn sicr nid oes ganddynt i'w ddefnyddio, ond os gwnewch, efallai y bydd yn gwneud eich cod edrych ychydig yn fwy slic. Ac yn gwybod y gallwch hefyd ddefnyddio unrhyw un y gwahanol weithredwyr rydym wedi eisoes weld o'r blaen yn hytrach na weithiau. Fe allech chi ddweud x plws yn dychwelyd 5, minws yn hafal i 5, amseroedd, rhannu, a mod. Mae pob un o'r rhai sy'n gweithio. Mae hefyd yn rhywbeth dyna mor gyffredin yn C ein bod wedi penderfynu mireinio bod hyd yn oed ymhellach. Incrementing newidyn o 1 neu decrementing newidyn o 1 yn thing-- mor gyffredin yn arbennig pan fyddwn yn sôn am dolenni ychydig yn ddiweddarach on-- ein bod ni wedi penderfynu yn lle ddweud rhywbeth fel x plws yn dychwelyd 1, neu x yn hafal x ynghyd ag 1, rydym wedi hyd yn oed rhoi byr sydd i x a mwy a mwy. Felly, x hafal x ynghyd ag 1, x plws yn dychwelyd 1, ac x yn ogystal yn ogystal i gyd yn gwneud yr un peth. Maent i gyd yn cynyddiad x erbyn 1. Ond y incrementing ac decrementing erbyn 1 mor gyffredin bod gennym plws plws a minws minws sy'n ein galluogi i law-fer bod hyd yn oed ymhellach. Felly, gadewch i ni newid gêr ar gyfer yr ail a siarad am ymadroddion Boole. Mae pob sydd hefyd fath o syrthio i mewn i y categori cyffredinol o weithredwyr. Ond ymadroddion Boole, yn wahanol i weithredwyr rhifyddeg, yn cael eu defnyddio ar gyfer cymharu gwerthoedd. Felly, unwaith eto, pob ymadroddion Boolean yn C gwerthuso i un o ddau werth posibl, galw i gof. Gwir neu gau. Dyna'r unig ddau werth sy'n Gall newidyn Boole cymryd ar. Gallwn ddefnyddio'r canlyniadau o mynegiad Boole mewn llawer o ffyrdd y rhaglennu. Yn wir, byddwch yn gwneud hyn gryn dipyn. Er enghraifft, efallai y byddwn yn penderfynu, yn dda, os bydd rhai cyflwr yn wir, efallai 'n annhymerus' yn cymryd hyn gangen i lawr fy cod. A amodol, fel petai. Byddwn yn dysgu am y rhai yn fuan hefyd. Neu efallai, ar yr amod hyn yn wir, yr wyf am i gadw wneud hyn drosodd a throsodd a throsodd. Mae dolen. Yn y ddau achos, yn gwybod ein bod yn defnyddio mynegiad Boole, mae gwir neu gau, i benderfynu a yw i gymryd llwybr penodol. Weithiau, pan fyddwn yn gweithio gyda mynegiadau Boole, byddwn yn defnyddio newidynnau o'r math Bool. Efallai eich bod wedi datgan deipio yn Bool amrywiol, a byddwch yn eu defnyddio yn eich Mynegiad Boole. Ond nid oes rhaid i chi wneud bob amser. Fel y mae'n troi allan, yn C, bob di-0 gwerth yr un fath â dweud yn wir. Os ydych wedi datgan bod ganddynt amrywiol o'r math Boole, a neilltuo ei gwir werth, dyna yr un fath â datgan yn gyfanrif ac yn aseinio ei gwerth 1, 2, 3, neu yn wir unrhyw werth pa beth bynnag arall na 0. Oherwydd yn C, pob-0 heb fod gwerth yn wir. 0, ar y llaw arall, yn anghywir. Gallai hyn ddod i mewn 'n hylaw yn nes ymlaen i wybod, ond dim ond rhywbeth i gadw mewn cof. Nid oes rhaid Rydym bob amser i'w ddefnyddio Newidynnau math Boole pan fyddwn yn gweithio gyda mynegiadau Boole. Mae dau brif fath o Boole ymadroddion y byddwn yn gweithio gyda hwy. Gweithredyddion rhesymegol a gweithredwyr perthynol. Mae'r iaith mae Nid yw ofnadwy o bwysig. Mae'n wir yn unig sut dwi'n eu grwpio. Ac wnewch chi helpu yn sicr, yr wyf yn meddwl, yn gyflym sylweddoli beth gweithredwr perthynol yw, yn seiliedig ar yr hyn y maent yn pan fyddwn siarad amdanynt mewn eiliad. Ond peidiwch â phoeni am o reidrwydd cofio y gweithredydd rhesymegol tymor neu weithredwr perthynol. Im 'jyst yn ei ddefnyddio i grŵp hwy mewn ffordd resymegol. Felly, gadewch i ni edrych ar y tri gweithredyddion rhesymegol y byddwn yn gweld cryn bit mewn rhaglenni yn CS50 ac mewn rhaglenni yn fwy cyffredinol. Rhesymegol A yn wir, os a Dim ond os yw'r ddau operands yn wir. Fel arall ffug. Lle mae hynny'n ei olygu? Felly, gadewch i ni ddweud fy mod mewn bwyntio yn fy cod lle gen i dau newidyn, x ac y. Ac yr wyf am i benderfynu a i wneud rhywbeth yn fy cod yn seiliedig ar os x yn wir ac yn y yn wir. Dim ond am ei wneud os y ddau ohonynt yn wir, fel arall Dydw i ddim eisiau mynd i lawr y llwybr oherwydd nad yw'n mynd i fy helpu. Yr hyn y gallaf ei ddweud yw os x & & y. Bydd hynny'n Boolean rhesymegol mynegiant cymharu x ac y a chymryd llwybr penodol seiliedig ar yr hyn eu gwerthoedd yn cael eu. Felly, os x yn wir ac yn y yn wir yn seiliedig ar y tabl gwir hyn yma, Dim ond yna byddwn yn mynd i lawr y llwybr hwnnw. Os x, & & y. Dim ond ei true-- yr a dim ond wir os x yn wir ac yn y yn wir. Os naill ai un yn ffug, wrth i ni weld y tabl gwir, Yna, nid y ddau x ac y yn wir. Ac felly, x & & y yn ffug. Rhesymegol NEU yn wir os a dim ond os bydd o leiaf un operand yn wir. Fel arall ffug. Felly rhesymegol A gofynnol y ddau x ac y yn wir. Rhesymegol OR ei gwneud yn ofynnol x i fod yn wir neu y i fod yn wir neu'r ddau x ac y yn wir. Felly, unwaith eto, rydym yn fath o ddod o hyd i ein hunain mewn sefyllfa ble rydym yn mynd i ein cod, ac yr ydym yn cyrraedd fforch yn y ffordd. Ac rydym am fynd i lawr llwybr penodol os x yn wir neu y yn wir, ond nid o reidrwydd os yw'r ddau yn wir. Ond o bosibl os yw'r ddau yn wir. Felly, os x yn wir ac yn y yn yn wir, byddwn yn mynd i lawr y llwybr hwnnw. x yn wir. Mae un ohonynt yn wir, dde? Os x yn wir ac y yn wir. Os x yn wir, ac y yn ffug, un ohonynt yn wir o hyd. Felly, x neu y yn dal i fod yn wir. Os yw x yn ffug, ac yn wir y, un ohonynt yn dal i fod yn wir, dde? y yn wir, yn yr achos hwn. Felly, mae'n wir bod x neu y yn wir. Dim ond os x yn ffug ac y yn ffug Nid ydym yn mynd i lawr y llwybr hwnnw, am nad x nac y yn wir. Yn awr, os ydych yn chwilio ar y sgrin ar hyn o bryd a meddwl beth sy'n symbol hwn ar gyfer rhesymegol OR, fe'i gelwir y bar fertigol. Ac os ydych yn edrych ar eich bysellfwrdd am funud, gan fy mod i'n ei wneud nawr, 'i' fel arfer ychydig yn uwch na Enter, ar y rhan fwyaf allweddellau, ar yr un allweddol wrth i'r slaes. Mae hefyd yn arfer hawl nesaf at y cromfachau sgwâr. Felly, gallai fod yn allweddol y byddwch yn nad ydynt wedi eu teipio yn fawr iawn yn y gorffennol. Ond, os ydych chi'n ei wneud erioed cymariaethau rhesymegol, gan y byddwn yn gwneud llawer yn y cwrs, mae'n mynd i fod yn ddefnyddiol yn canfod bod allweddol ac yn ei ddefnyddio. Felly, mae'n fel arfer ar yr un allwedd fel slaes ychydig uwchben Enter. NID yw'r gweithredwr rhesymegol terfynol. Ac NID eithaf syml. Mae'n gwrthdroi'r gwerth ei operand. Os x yn wir, yna nid x yn ffug. Os yw x yn ffug, yna nid x yn wir. Weithiau, byddwch yn clywed symbol hwn ynganu fel bang neu ebychnod neu ddim. Mae'n 'n bert lawer yr holl yr un peth. Yn achos yr ydych yn clywed bod lafar ac nad ydych yn sicr beth y mae hynny'n ei olygu, dim ond y exclamation pwynt, ond weithiau mae'n Gelwir cwpl bethau gwahanol. Mae pob hawl, fel bod yn cymryd gofal o weithredwyr rhesymegol. Felly, gadewch i ni siarad am gweithredwyr perthynol. Unwaith eto, os ydych yn gyfarwydd â hyn rhifyddeg yn ôl yn yr ysgol radd, Mae'n debyg eich bod yn gyfarwydd gyda sut mae'r rhain yn gweithio yn barod. Mae'r rhain yn ymddwyn yn union fel y byddech yn disgwyl. Felly llai nag ei ​​fod yn wir, yn hyn enghraifft, os x yn llai na y. Felly, os yw x 4 a y yn 6, x yn llai na y. Mae hynny'n wir. Llai na neu'n hafal i gweithio'n eithaf yn yr un modd. Os yw x yn 4, ac y yw 4, yna x yn llai na neu'n hafal i y. Mwy na. x yn fwy na y. Ac yn fwy na neu'n hafal i, x yn fwy na neu'n hafal i y. Os yw'n wir, yna wnewch chi helpu pasio ymadrodd hwnnw, a byddwch yn mynd i lawr y llwybr hwnnw ar y ffordd. Os oes gennych os x yn fwy na y, ac x yw, mewn gwirionedd, yn fwy nag y, byddwch yn gwneud beth bynnag yw yn ddarostyngedig i amod hwnnw. Sylwch nad oes gennym cymeriad unigol am lai na neu'n hafal i, fel y gallech fod gyfarwydd â o werslyfrau mathemateg. Felly, mae gennym y llai na symbol, ddilyn gan hafalnod. Dyna sut yr ydym yn eu cynrychioli llai na neu'n hafal i. Ac yn yr un modd, a ydym yn gwneud hynny am fwy na neu'n hafal i. Roedd y ddau perthynol terfynol gweithredwyr sy'n bwysig yn profi ar gyfer cydraddoldeb ac anghydraddoldeb. Felly, os x hafal hafal y, yn wir os x ac y yn werth yr un fath. Os yw x yn 10, ac y mae 10, yna x yn hafal hafal the yn wir. Os yw x yn 10 ac y mae 11, x yn hafal hafal Nid y wir. Gallwn hefyd brofi am anghydraddoldeb gan ddefnyddio ebychnod neu bang neu NID, eto. Nid yw Os x yn hafal i y, os dyna y prawf rydym yn ei ddefnyddio yma, byddem yn dda i fynd. Felly, os nad x yn hafal i y, byddwn yn mynd i lawr y llwybr hwnnw. Byddwch yn wir yn ofalus fan hyn. Mae'n mistake-- wirioneddol gyffredin a un yr wyf yn sicr ei wneud cryn dipyn pan Oeddwn yn cael started-- camgymryd yn ddamweiniol gweithredwr aseiniad, hafal sengl, i'r gweithredwr cymharu cydraddoldeb, hafal dwbl. Bydd yn arwain at rai rhyfedd ymddygiad yn eich cod, ac fel arfer y compiler bydd eich rhybuddio am y peth pan fyddwch yn ceisio ac yn llunio, eich cod ond weithiau efallai y byddwch yn gallu slei iddo gan. Dyw hi ddim o reidrwydd yn beth da eich bod yn slei iddo gan, er. Yn union felly os ydych yn ei wneud prawf anghydraddoldeb, os ydych yn gwirio a dau cael yr un gwerth gwahanol newidynnau y tu mewn ohonynt, gwnewch yn siwr i ddefnyddio hafal gydradd, ac nid hafal sengl. A bod ffordd y mae eich rhaglen, bydd cael yr ymddygiad yr ydych yn bwriadu. Rwy'n Doug Lloyd ac mae hyn yn CS50.