>> [MUSIC PLAYING]
>> DOUG LLOYD: Hi, belə ki, edək C. operatorlar haqqında danışmaq
Belə ki, biz artıq bir gördüm, əslində, tapşırıq operator bərabərdir.
Bu, bizim yalnız qoymaq üçün imkan verir bir dəyişən dəyəri.
Bu tapşırıq var operator, bir bərabər işarəsi.
Manipulyasiya üçün və iş C dəyərlər və dəyişənlərin ilə,
biz operatorların bir sıra var bizim sərəncamında biz istifadə edə bilərsiniz.
Nin bir nəzər salaq ümumi olanları bəzi
hesab operatorları ilə başlayır.
Siz gözləyə bilər kimi, biz nə edə C. olduqca əsas riyaziyyat əməliyyatları
Biz, əlavə çıxmaq, çoxaltmaq və bilər plus istifadə bölmək nömrələri, minus, ulduz,
və müvafiq olaraq, doğramaq.
Burada xətləri bir neçə var code hansı biz bunu.
Belə ki, biz int x y plus 1 bərabərdir var.
Bir yerdə ki, güman edək kodu bu xətt yuxarıda
biz int y 10 bərabərdir deyib.
X dəyəri I sonra nə kodu bu ilk line icra?
Siz 11 demək mi?
Siz doğru had.
Niyə ki?
Yaxşı, y 10 idi.
Bəzi Mən deyirəm int x 10 plus 1 bərabərdir.
10 plus 1 11 edir.
Belə ki, dəyəri 11 olur dəyişən x saxlanılır.
Çox pis deyil, sağ?
>> Necə bu növbəti xətti haqqında code? x x dəfə 5 bərabərdir.
Bəli, əvvəl biz icra kodu bu xətt x 11 idi.
Belə ki, dəyəri nə x kodu bu xətt sonra?
Ikinci edin.
Belə ki, x x dəfə 5 bərabərdir.
x 11 idi.
Belə ki, x 11 dəfə 5 bərabərdir.
Və ya 55.
Siz 55 dedi Belə ki, siz doğru olardı.
>> İndi, bir az çaşdırıcı ola bilər, lakin ki, tapşırıq C işləyir yolu ilə
sağ dəyəri olur sol, dəyəri təyin.
Belə ki, ilk biz x dəfə 5 qiymətləndirmək.
Belə ki, 11 dəfə 5 55 edir.
Və sonra biz x ki, dəyəri saxlamayın.
Var idi 11 əvvəl İndi üzerine yazılır.
Belə ki, x dəyəri indi 55.
Ümid edirəm ki, kifayət qədər sadə deyil.
>> Siz var başqa operator var yəqin ki, mütləq eşitdim
bu deyilən, lakin var əlbəttə keçmişdə ilə işləmişdir
Siz uzun sizin gün xatırlayıram geri grade məktəb bölgüsü yol.
Bu modulus operator deyirlər.
Nə modulus yoxdur bunu var sizə qalan verir
Siz birlikdə iki ədəd bölmək zaman.
Mən demək Belə ki, 13 bölünür 4, qalan nə var?
Və ki, dəyəri hesablanır olunacaq modulus operator tərəfindən.
>> Belə ki, mən kodu bir xətti Burada int m 13 mod 4 bərabərdir.
Mən bir comment burada demək M dəyəri indi 1.
Niyə ki, deyirsiniz?
Bəli, uzun bölgüsü həyata sizin baş bir ikinci mənimlə daşıyırlar edin.
Belə ki, mən 4 13 oxuyasan.
4 13 üç dəfə gider 1-qalan.
Belə ki, əsasən, bütün modulus operator yoxdur
sizə zaman deyir edir bölmək, siz qalan almaq.
Siz, həqiqətən, hesab bilər Biz olduqca faydalı şey,
ancaq, həqiqətən, heyran olarıq necə tez-tez ki, modulus ilə
operator lazımlı gələ bilər.
>> Problemlərin bir neçə var biz ilə məşğul CS50 edəcəyik.
O, həmçinin bunu üçün yaxşı təsadüfi sayı kimi şeylər.
Belə ki, məsələn Əgər var əgər bir təsadüfi sayı generator eşitdim,
ki, bir sıra vermək olacaq 0 bəzi böyük sayda.
Amma bəlkə siz yalnız həqiqətən 0 20 bir sıra lazımdır.
Siz modulus operator istifadə əgər ki, nəhəng sayı ki,
tərəfindən yaradılan əvvəl təsadüfi sayı generator,
sizi olacaq nə Bu, böyük dəyəri, 20 ilə bölmək
və qalan almaq.
qalan yalnız 0 19 dəyəri ola bilər.
Belə ki, modulus operator istifadə Bu çox etmək
və aşağı bir şey yavaş-yavaş onu bir az daha mənalı.
Mən sizə olacaq olduqca əminəm o, həm də istifadə edə
CS50 gələcəkdə müəyyən məqamda.
>> Belə ki, C də bizə bir yol verir bir hesab müraciət etmək
bir dəyişən operator bir az daha stenoqrafiya şəkildə.
Belə ki, əvvəlki slayd, biz x x dəfə 5 bərabərdir gördüm.
Ki çalışmışdır.
x dəfə 5 onda x geri saxlanılır olur.
Bunu qısa yol fikir var, və syntax x dəfə 5 bərabərdir var.
Bu eyni dəqiq şey deyərək x x dəfə 5 bərabərdir.
Bu, sadəcə bir az var bunu qısa yol.
Və bəzi görəndə distribution kodu və ya
bir örnek kod oldu ki, bu kimi şeylər yoxdur,
yalnız ilə tanış olmaq syntax nə deməkdir.
Siz əlbəttə ki, yoxdur Əgər istifadə, lakin,
Bu kodu edə bilər bir az slicker baxmaq.
Və siz də hər hansı bir istifadə edə bilərsiniz ki, bilirik müxtəlif operatorları biz artıq var
əvvəl yerinə dəfə görüldü.
Siz x plus 5, minus bərabərdir deyə bilər 5 dəfə, uçurum, və mod bərabərdir.
Bu iş bütün.
>> Bir şey də var ki, C belə ümumi var
biz qərar qəbul etdik ki, daha ki hassaslaştırın.
1-dəyişən incrementing və ya 1 ilə dəyişən decrementing
Belə bir ümumi şey edir xüsusilə biz danışmaq zaman haqqında bir az sonra loops
Us biz əvəzinə qərar qəbul etdik ki, , x plus kimi bir şey 1 bərabərdir söyləyərək
və ya x x plus 1 bərabərdir, hətta var Qısa x plus Plus etdi.
Belə ki, x x plus 1, x bərabərdir plus 1 bərabərdir, və x plus plus bütün eyni şey.
Onlar 1 bütün artım x.
Amma ki, incrementing və 1-decrementing
biz ki, ümumi plus plus və minus minus
bizə stenoqrafiya imkan verir daha ki.
>> Belə ki, ikinci dişli keçid imkan və Boolean ifadələr haqqında danışmaq.
Də cür olan bütün düşmək operatorların ümumi kateqoriya.
Amma Boolean ifadələr, hesab operatorları fərqli olaraq,
dəyərləri müqayisə üçün istifadə olunur.
C Belə ki, daha, bütün Boolean ifadələr iki mümkün dəyərlər sırasında qiymətləndirmək,
xatırlayıram.
Doğru və ya yalan.
Bu yalnız iki dəyərlər var ki, Boolean dəyişən edə bilər.
Biz nəticələr istifadə edə bilərsiniz bir Boolean ifadə
proqramlaşdırma yolları bir çox.
Əslində, siz olacaq bu bir çox edir.
>> Məsələn, biz qərar qəbul edə bilər, Yaxşı, bir şərt doğru olduqda,
bəlkə mən bu almaq lazımdır mənim kodu aşağı şaxələnmək.
A şərti, belə danışmaq.
Biz tezliklə də o öyrənmək lazımdır.
Və ya bəlkə kimi uzun kimi mən istəyirəm, doğrudur
bunu saxlamaq üçün üzərində və üzərində.
A loop.
Hər iki halda, biz istifadə etdiyiniz bilirik ki, doğru və ya yalan bir Boolean ifadə,
və ya qərar qəbul etmək xüsusi yol almaq.
Bəzən biz çalışırıq Boolean ifadələri ilə,
biz növü bool dəyişənlər istifadə edəcək.
Siz elan edə bilər bir Bool, dəyişən tipli
və istifadə lazımdır Məntiqi ifadə.
Amma həmişə yoxdur.
Bu, C, hər bir qeyri-0 çıxır kimi dəyəri doğru deyərək kimi eyni.
Siz bəyan əgər bir növü Boolean dəyişən,
və ki, doğru bu dəyər verilir bir tam elan eyni
və bu dəyər təyin 1, 2, 3, və ya, həqiqətən, hər hansı bir dəyəri
0 başqa heç.
C Çünki, hər bir qeyri-0 dəyəri doğrudur.
0, digər tərəfdən, yalan.
Bu gəlmək bilər bilmək sonra lazımlı,
lakin yalnız bir şey unutmayın.
Biz həmişə istifadə etmək yoxdur, Boolean tipli dəyişənlər zaman biz
Boolean ifadələr ilə işləyir.
>> Boolean iki əsas növü var biz ilə işləmək lazımdır ifadələri.
Məntiqi operatorlar və relational operatorları.
var dil olduqca əhəmiyyətli deyil.
Mən onların qruplaşdırılması alıram necə həqiqətən var.
Və əlbəttə ki, lazımdır, mən tez hesab edirəm ki, bir relational operator nə dərk
əsasında onlar nə zaman biz ikinci onlar haqqında danışmaq.
Amma mütləq narahat etmir müddətli məntiqi operator ezberlemeye
və ya relational operator.
Mən yalnız qrup üçün istifadə edirəm Onlara bir məntiqi şəkildə.
>> Belə ki, bir nəzər salaq üç məntiqi operatorlar
biz bir görəcəksiniz ki, CS50 proqramlaşdırma bit
və proqramlaşdırma daha çox, ümumiyyətlə.
Məntiqi və doğru əgər yalnız hər iki operands doğru əgər.
Əks halda yalan.
Ki, harada deməkdir?
Belə ki, mən bir am ki, bildirin Mən mənim kodu qeyd
iki dəyişənlərin, x və y.
Mən qərar qəbul etmək istəyirsinizsə, mənim kodu bir şey etmək
x doğru və y doğruysa əsaslanır.
Mən yalnız bunu istəyirəm onların hər ikisi, doğru
əks halda mən aşağı getmək istəmirəm yol mənə kömək etmək niyyətində deyil, çünki.
Nə deyə bilərəm x & əgər y edir.
Bu məntiqi Boolean olacaq ifadə müqayisə x və y
və müəyyən bir yol alaraq Onların dəyərləri nə əsaslanır.
X doğru və əgər Belə ki, y doğru Burada bu həqiqət masa əsasında,
yalnız bundan sonra biz bu yolu enəcək.
X, & y varsa.
Bu, yalnız true-- və yalnız var x doğru və y doğru doğru əgər.
Ya bir yalan varsa, biz həqiqət masa görmək kimi,
sonra x və y həm doğru deyil.
Belə ki, x & y yalan.
>> Məntiqi və ya yalnız doğru ən azı bir operand doğru əgər.
Əks halda yalan.
Belə ki, məntiqi və tələb x və y həm doğru olmaq.
Məntiqi və ya doğru və ya y olmaq x tələb edir doğru olmaq və ya hər iki x və y doğru olmaq.
Belə ki, daha, biz növ tapmaq bir vəziyyətdə özümüzü
biz bizim kodu niyyətində olduğunuz, və biz yol bir çəngəl çatdı.
Və biz bir aşağı getmək istəyirəm Xüsusilə yol x doğru əgər
və ya y doğru deyil, mütləq, həm də doğru.
Amma bəlkə əgər, həm də doğru.
X doğru və əgər belə y doğru, biz yol aşağı getmək lazımdır.
x doğrudur.
Onlardan biri, sağ doğrudur?
X doğru və y doğrudur.
X doğru və y yalan varsa, onlardan biri hələ doğrudur.
Belə ki, x və ya y hələ doğrudur.
X yalan və y doğru deyil, Onlardan biri sağ, hələ də doğrudur?
y bu halda, doğrudur.
Belə ki, x və ya y doğru olduğunu doğru.
X yalan və y yalan yalnız ki, yol aşağı getmək yoxdur,
x, nə də y nə doğrudur, çünki.
İndi siz aradığınız əgər ekran indi
və nə merak simvolu məntiqi və ya üçün,
şaquli bar deyirlər.
Və əgər klaviatura baxaraq bir dəqiqə üçün, mən indi bunu alıram kimi,
yalnız yuxarıda adətən var Enter düyməsini ən klaviatura,
backslash eyni düymədə.
O, həmçinin adətən doğru kvadrat mötərizədə yanında.
Belə ki, əsas ola bilər ki, keçmişdə çox çap yoxdur.
Lakin, Əgər bunu edirsinizsə məntiqi müqayisə,
Biz bunu olacaq kimi zamanı çox, bu
faydalı olacaq ki, əsas tapmaq və istifadə edin.
Belə ki, eyni düymədə adətən var backslash kimi yuxarıda daxil edin.
>> final məntiqi operator deyil.
Və NOT olduqca sadə var.
Onun operand dəyəri inverts.
X doğru, onda deyil x yalan.
X yalan, onda deyil x doğrudur.
Bəzən bu rəmzi duyarsınız Bang ya nida kimi tələffüz
və ya deyil.
Bu olduqca çox eyni şey.
Halda ki, danışıq eşitmək və Siz o deməkdir ki, nə əmin deyilik
yalnız nida var point, lakin bəzən var
bir neçə fərqli şeylər deyilir.
Bütün hüquqlar, belə ki, davam edir məntiqi operatorlar qayğı.
Belə ki, haqqında danışmaq edək relational operatorları.
Yenə bu ilə tanış değilseniz geri grade məktəb hesab,
Siz yəqin ki, tanış olduğunuzda ilə necə bu iş artıq.
Beklediğiniz kimi bu dəqiq davranmaq.
Belə ki, az bu, doğru çox Məsələn, x y az olduqda.
X 4 və əgər belə, y 6 x y azdır.
Düzdür.
Daha az və ya bərabər pretty eyni işləyir.
X 4, və y sonra, 4 əgər x y daha az və ya bərabərdir.
Daha çox. x y daha böyükdür.
Və ya daha çox, x bərabər y və ya daha çox bərabərdir.
Doğru, onda siz lazımdır ifadə keçir,
və aşağı getmək lazımdır yolda ki yol.
X y daha böyük olduqda, bir varsa, və x, əslində, y daha böyük deyil,
Siz nə etmək lazımdır şərti mövzu.
>> Biz yoxdur ki, qeyd az bir xarakter
və ya bərabər, kimi ola bilər riyaziyyat dərsliklərdən ilə tanış.
Belə ki, biz, rəmzi daha az bərabər işarəsi sonra.
Yəni biz təmsil necə çox və ya bərabər daha az.
Və eyni, biz bunu etmək və ya daha çox bərabər üçün.
>> son iki relational vacibdir operatorları
bərabərlik və bərabərsizlik üçün test.
Belə ki, x bərabərdir əgər, y bərabərdir doğrudur X və Y dəyəri eyni əgər.
X 10 və y sonra 10 Əgər x bərabərdir y doğru bərabərdir.
X 10 və y x 11, əgər y doğru deyil bərabərdir bərabərdir.
Biz də istifadə bərabərsizlik üçün test edə bilərsiniz nida point və ya bang və ya,
yenidən.
Əgər x əgər, y bərabər deyil ki, biz burada istifadə etdiyiniz test var
biz getmək üçün yaxşı olardı.
Belə ki, x bərabər deyil y, biz yol aşağı getmək lazımdır.
>> Burada həqiqətən ehtiyatlı olun.
Bu, həqiqətən ümumi mistake-- və Mən, əlbəttə, qəbul olduqca çox zaman
Mən started-- əldə edilib təsadüfən səhv
tapşırıq operator, bir bərabər, bərabərlik müqayisə operator üçün,
ikiqat bərabərdir.
Bəzi qəribə səbəb olacaq Sizin kodu davranış,
və adətən compiler edəcək Siz cəhd zaman bu barədə sizə xəbərdarlıq
və kodu tərtib, lakin bəzən Siz onu xəbərçi edə bilər.
Bu, mütləq yaxşı bir şey deyil Siz onu xəbərçi ki, baxmayaraq ki.
Yalnız bunu əgər bir bərabərsizlik test,
Siz iki yoxlanılması edirsinizsə müxtəlif dəyişənlərin eyni dəyəri var
onların içərisində, istifadə etmək üçün əmin olun bərabər deyil, tək bərabərdir.
Və sizin proqram olacaq Siz niyyətində davranış var.
Mən Doug Lloyd Ben və bu CS50 edir.