DOUG LLOYD: B眉t眉n h眉ququ.
Bel蓹 ki, indi bir h蓹ll ed蓹k h蓹qiq蓹t蓹n b枚y眉k m枚vzu, f蓹aliyy蓹t g枚st蓹rir.
Bu g眉n蓹 q蓹d蓹r, 蓹lb蓹tt蓹, b眉t眉n biz yaz谋l谋 oldu臒unuz proqramlar谋
茝sas daxilind蓹 yaz谋lm谋艧d谋r.
Onlar olduqca sad蓹 proqramlar谋 ist蓹yirik.
Siz b眉t眉n bu var ehtiyac yoxdur filial v蓹 h蓹r 艧eyi olur.
Biz yaln谋z b眉t眉n uy臒un 茝sas daxilind蓹 v蓹
olduqca b枚y眉k almaq deyil.
Amma 蓹lb蓹tt蓹 gedir kimi v蓹 Siz proqramlar谋 inki艧af etdirm蓹k 眉莽眉n ba艧lamaq kimi
m眉st蓹qil, onlar y蓹qin ki, olacaq 10 daha 莽ox almaq 眉莽眉n ba艧lamaq 眉莽眉n
v蓹 ya 15 x蓹tl蓹ri.
Siz y眉zl蓹rl蓹 v蓹 ya minl蓹rl蓹 蓹ld蓹 ed蓹 bil蓹r v蓹 ya onlarla kodu x蓹tl蓹ri minl蓹rl蓹.
V蓹 h蓹qiq蓹t蓹n deyil bir fikir ki, crazy.
Bel蓹 ki, y蓹qin ki, bir yax艧谋 bir fikir deyil 茝sas daxilind蓹 h蓹r 艧ey saxlamaq 眉莽眉n.
Bu tapmaq 眉莽眉n bir az 莽蓹tin 蓹ld蓹 ed蓹 bil蓹rsiniz n蓹 siz bunu 蓹g蓹r ar谋yorsan谋z.
>> Xo艧b蓹xtlikd蓹n, C baxmayaraq ki, v蓹 olduqca 莽ox h蓹r proqramla艧d谋rma dili ki
il蓹 i艧 bil蓹r, imkan verir ki, Biz蓹 funksiyalar谋 yazmaq 眉莽眉n.
M蓹n yaln谋z gedir蓹m k蓹nara Burada tez almaq
funksiyalar谋 oldu臒unu qeyd etm蓹k informatika bir sah蓹si.
V蓹 onlar谋 daha 莽ox g枚r眉rs眉n眉z 茝lb蓹tt蓹 蓹rzind蓹 m眉xt蓹lif bal
v蓹 davam edin.
Bir 莽ox of var Eyni s枚z 眉莽眉n e艧.
Bel蓹likl蓹, biz funksiyalar谋 z蓹ng.
Amma siz d蓹 onlar谋 e艧itm蓹k bil蓹r prosedurlar谋 adland谋r谋lacaq,
v蓹 ya 眉sullar谋, x眉susil蓹, siz var 蓹g蓹r he莽 h蓹r hans谋 bir obyekt y枚n眉ml眉 proqramla艧d谋rma h蓹yata
, 蓹vv蓹l v蓹 narahat olmay谋n Siz deyil, varsa,
b枚y眉k deal-- lakin audit y枚n眉ml眉 languages
tez-tez adlanan 眉sullar谋 var.
B蓹z蓹n onlar subroutines adl谋 edirik.
Lakin onlar, h蓹qiq蓹t蓹n, b眉t眉n bax谋n eyni 蓹sas fikir.
>> Ki fikir n蓹 g枚rm蓹k ed蓹k.
Bir funksiyas谋 n蓹dir?
Yax艧谋 bir funksiyas谋 h蓹qiq蓹t蓹n qara qutu daha he莽 bir 艧ey.
S谋f谋r bir s谋ra var A qara qutusu daha giri艧 v蓹 bir 莽谋x谋艧 v蓹 ya.
Bel蓹 ki, m蓹s蓹l蓹n, bu funksiyas谋 ola bil蓹r.
Bu func adl谋 bir funksiyas谋 var.
V蓹 bu 眉莽 giri艧 a, b v蓹 c edir.
V蓹 qara qutu i莽蓹risind蓹, biz bunu d蓹qiq n蓹 bilmir蓹m,
lakin bu giri艧 emal bir 艧蓹kild蓹 v蓹 sonra
Bu halda bir 莽谋x谋艧, z verir.
陌ndi bir az etm蓹k az m眉c蓹rr蓹d, biz
ki, b蓹lk蓹 dem蓹k olar adl谋 funksiyas谋 var
眉莽 giri艧 a, b edir 蓹lav蓹 v蓹 c v蓹 bir 艧蓹kild蓹 莽谋x谋艧 emal
qara qutu i莽蓹risind蓹 bir 莽谋x谋艧 istehsal edir.
Bu halda, 蓹g蓹r bel蓹 蓹lav蓹 3, 6 v蓹 7 edir.
Somewhere daxilind蓹 funksiyas谋 蓹lav蓹, biz
g枚zl蓹dikl蓹rini onlara birlikd蓹 蓹lav蓹 etm蓹k 莽谋x谋艧, istehsal olan
3 plus 6 plus 7 v蓹 ya 16.
>> Eynil蓹, siz adl谋 funksiyas谋 var iki giri艧, a v蓹 b edir mult,
bir 艧蓹kild蓹 bel蓹 onlar谋 emal ki, funksiyas谋 莽谋x谋艧
iki giri艧 m蓹hsuludur.
iki giri艧 birlikd蓹 vurulur.
4 v蓹 5, mult ke莽di olunur bir 艧ey, biz g枚zl蓹yirik 莽谋x谋艧 olur
20.
Niy蓹 biz bir qara qutu z蓹ng edirsiniz?
Yax艧谋 yaz谋l谋 蓹g蓹r , 枚z眉m眉z眉 f蓹aliyy蓹t g枚st蓹r蓹n
biz bir q蓹d蓹r indiy蓹 q蓹d蓹r CS50 etdik.
Biz, m蓹s蓹l蓹n, 莽ap f g枚rd眉m ki, biz yazmad谋m bir funksiyas谋 var
枚z眉m眉z眉, lakin biz h蓹r zaman istifad蓹 edirsiniz.
Biz yaz谋l谋 deyils蓹 funksiyalar谋 枚z眉m眉z,
bu nec蓹 h蓹qiq蓹t蓹n bilm蓹k laz谋m deyil h蓹qiq蓹t蓹n ba艧l谋q alt谋nda h蓹yata ke莽irilir.
>> Bel蓹 ki, m蓹s蓹l蓹n qara qutu M蓹n yaln谋z vurma 眉莽眉n t蓹艧蓹kk眉r g枚st蓹rdi
bir Mult, b ola bil蓹r m眉蓹yy蓹n deyil v蓹 bu, yaln谋z var
b蓹zi pseudocode ola bil蓹r 莽谋x谋艧 d蓹f蓹 b kimi m眉蓹yy蓹n edilmi艧dir.
Bu m蓹nada, do臒ru.
Biz adl谋 funksiyas谋 varsa iki giri艧 edir mult.
Biz g枚zl蓹m蓹k olard谋 莽谋x谋艧 ed蓹c蓹kl蓹rini ifad蓹 ola iki giri艧, birlikd蓹 vurulur
bir d蓹f蓹 b.
Amma mult d蓹 ola bil蓹r Bu kimi h蓹yata,
biz counter d蓹yi艧蓹n var 0 mult daxilind蓹 m眉蓹yy蓹n almaq.
V蓹 sonra biz bu prosesi t蓹krar b d蓹f蓹 counter 蓹lav蓹.
M蓹s蓹l蓹n, biz t蓹r蓹find蓹n 3A 莽oxaltmaq 蓹g蓹r 5b, biz 0 counter m眉蓹yy蓹n dem蓹k bil蓹r,
, be艧 d蓹f蓹 t蓹krar counter 3 蓹lav蓹 edin.
Bel蓹likl蓹, biz 0 ba艧lamaq v蓹 sonra biz Bu be艧 d蓹f蓹 3, 6, 9, 12, 15.
Bu eyni n蓹tic蓹. Biz h蓹l蓹 almaq 3 d蓹f蓹 5 yaln谋z
h蓹yata ke莽irilm蓹si f蓹rqlidir.
>> Y蓹ni biz dem蓹k n蓹 var biz qara qutu dey蓹nd蓹.
Bu yaln谋z biz, h蓹qiq蓹t蓹n, qay臒谋 yoxdur dem蓹kdir Bu ba艧l谋q alt谋nda h蓹yata nec蓹
kimi uzun 莽谋x谋艧 biz g枚zl蓹m蓹k n蓹 kimi.
茝slind蓹, h蓹min m眉qavil蓹nin hiss蓹si x眉susil蓹, funksiyalar谋 istifad蓹 ed蓹r蓹k
dig蓹r yazmaq funksiyalar谋.
davran谋艧 h蓹mi艧蓹 gedir g枚zl蓹nilm蓹z, tipik olmaq
funksiyas谋 ad谋 蓹sas谋nda.
Bu, h蓹qiq蓹t蓹n, n蓹 ki, var m眉h眉m funksiyalar谋 yazmaq zaman
v蓹 ya dig蓹r insanlar yazmaq Siz istifad蓹 ed蓹 bil蓹r funksiyalar谋
bu funksiyalar谋 var ki, ayd谋n, nisb蓹t蓹n a艧kar adlar谋,
v蓹 s蓹n蓹dl蓹艧dirilir.
Hans谋 蓹lb蓹tt蓹 bel蓹dir print f kimi funksiya 眉莽眉n.
>> Bel蓹 ki, niy蓹 biz funksiyalar谋 istifad蓹 ed蓹 bil蓹r蓹m?
Yax艧谋 m蓹n biz yazmaq 蓹g蓹r 蓹vv蓹ll蓹r dediyi kimi 蓹sas 艧eyi daxilind蓹 b眉t眉n kodu
h蓹qiq蓹t蓹n 莽蓹tin 蓹ld蓹 ed蓹 bil蓹rsiniz v蓹 h蓹qiq蓹t蓹n 莽蓹tin.
Funksiyalar谋 biz蓹 imkan谋 verir 艧eyi t蓹艧kil v蓹 par莽alamaq 眉莽眉n
莽ox m眉r蓹kk蓹b problem daxil daha 莽ox idar蓹 sub hiss蓹l蓹ri.
Funksiyalar谋 da biz蓹 imkan verir kodla艧d谋rma prosesi asanla艧d谋rmaq.
Bu 10 debug 眉莽眉n 莽ox asand谋r 100 x蓹tt qar艧谋 line funksiyas谋
funksiyas谋 v蓹 ya 1000 line funksiyas谋.
Biz yaln谋z debug varsa bir anda ki莽ik 蓹d蓹d,
v蓹 ya, vaxt ki莽ik 蓹d蓹d yazmaq ki, proqramla艧d谋rma t蓹cr眉b蓹 edir
bir 莽ox daha yax艧谋.
Ki, bir m蓹n蓹 etibar.
>> N蓹hay蓹t, biz funksiyalar谋 yazmaq 蓹g蓹r biz o m眉xt蓹lif hiss蓹l蓹ri yenid蓹n istifad蓹 ed蓹 bil蓹rsiniz.
Funksiyalar谋 emal oluna bil蓹r.
Onlar istifad蓹 edil蓹 bil蓹r bir proqram v蓹 ya ba艧qa.
Siz art谋q yazd谋q funksiyas谋, b眉t眉n
proqram dem蓹k n蓹 etm蓹k laz谋md谋r harada funksiyas谋 tapmaq 眉莽眉n.
Biz t蓹krar v蓹 istifad蓹 etdik 40 ild蓹n 莽ox f 莽ap.
Amma bu yaln谋z bir d蓹f蓹 yaz谋lm谋艧d谋r.
Pretty faydal谋, do臒ru.
Oldu.
Bel蓹 ki, funksiyalar谋 b枚y眉kd眉r.
Biz bilirik.
陌ndi onlara yaz谋l谋 ba艧lamaq ed蓹k.
Nin 蓹ld蓹 ba艧lamaq ed蓹k Onlara bizim proqramlar谋.
脺莽眉n, ilk bunu Biz n蓹 艧ey funksiyas谋 elan edir.
Bir funksiyas谋 elan zaman n蓹 蓹sas蓹n edirik
compiler izah edir, hey, siz bilirsiniz ki,
M蓹n yaz谋l谋 gedir蓹m sonra bir funksiyas谋
v蓹 burada kimi baxmaq neler var.
Bunun s蓹b蓹bi derleyiciler 莽眉nki
b蓹zi q蓹rib蓹 艧eyl蓹r onlar r蓹mzl蓹ri bir s谋ra g枚r蓹c蓹ksiniz
onlar il蓹 tan谋艧 deyilik ki.
Bel蓹likl蓹, biz yaln谋z compiler a verm蓹k ba艧莽谋l谋q, m蓹n bir funksiyas谋 yarad谋lmas谋 al谋ram
v蓹 bunu olacaq.
Function b蓹yanatlar 眉mumiyy蓹tl蓹 蓹g蓹r bir 艧蓹kild蓹 kodu t蓹艧kil edirik
ba艧qalar谋 olacaq ki, anlamaq v蓹 istifad蓹 etm蓹k,
Siz 眉mumiyy蓹tl蓹 b眉t眉n qoymaq ist蓹yir蓹m Sizin funksiyas谋 b蓹yannam蓹l蓹rin
Sizin kodu 莽ox 眉st, sa臒 Siz h蓹tta 蓹sas yaz谋l谋 ba艧lamaq 蓹vv蓹l.
V蓹 rahat var 莽ox standart forma
h蓹r funksiyas谋 b蓹yannam蓹 a艧a臒谋dak谋.
Onlar b眉t眉n olduqca 莽ox bu kimi g枚r眉n眉r.
脺莽 hiss蓹d蓹n bir funksiyas谋 var b蓹yannam蓹, geri n枚v眉, ad谋,
v蓹 d蓹lil siyah谋s谋.
>> 陌ndi qaytar谋lmas谋 n枚v眉 n蓹 c眉r d蓹yi艧蓹n funksiyas谋 莽谋x谋艧 ed蓹c蓹k.
Bel蓹 ki, m蓹s蓹l蓹n, 蓹g蓹r biz geri edir蓹m iki vurulmas谋 眉莽眉n bundan d蓹qiq蓹
n枚mr蓹l蓹ri funksiyas谋, biz 蓹g蓹r n蓹 g枚zl蓹yirsiniz biz tam bir tam 莽oxaltmaq
莽谋x谋艧 olacaq y蓹qin ki, bir tam, do臒ru.
Vurulur iki integers birlikd蓹, bir tam almaq.
Ki qaytar谋lmas谋 n枚v眉 So funksiyas谋 int olacaq.
Ad谋 ist蓹diyiniz n蓹 deyil Sizin funksiyas谋 z蓹ng etm蓹k 眉莽眉n.
Bu y蓹qin ki, 蓹n az谋 vacibdir funksiyas谋 b蓹yannam蓹 hiss蓹si,
funksionall谋q bax谋m谋ndan.
Amma 蓹slind蓹, y蓹qin ki, bir 蓹n vacib hiss蓹l蓹rind蓹n
bax谋m谋ndan funksiyas谋 b蓹yannam蓹 bilm蓹d蓹n funksiyas谋 h蓹qiq蓹t蓹n n蓹
yoxdur.
Siz funksiyas谋 f v蓹 ya g ad谋 v蓹 ya h v蓹 ya sirr v蓹 ya kimi bir 艧ey,
Siz y蓹qin ki, almaq olacaq bir az 莽al谋艧谋r tak谋ld谋m
bu funksiyalar谋 n蓹 unutmay谋n.
Bel蓹 ki, verm蓹k vacibdir sizin funksiyas谋n谋n m蓹nal谋 adlar.
>> N蓹hay蓹t, d蓹lil siyah谋s谋 virg眉lle ayr谋lm谋艧 siyah谋s谋
Sizin funksiyas谋 b眉t眉n giri艧, olan h蓹r bir n枚v眉 v蓹 bir ad谋 var.
Bel蓹 ki, yaln谋z siz var d蓹yi艧蓹n n蓹 n枚v眉 m眉蓹yy蓹n
funksiyas谋 莽谋x谋艧 ed蓹c蓹k, siz d蓹 ifad蓹 etm蓹k ist蓹yir蓹m
hans谋 n枚v眉 v蓹 d蓹yi艧蓹nl蓹rin n枚vl蓹ri funksiyas谋 giri艧 kimi q蓹bul olunacaq.
Bel蓹 ki, burada bir n眉mun蓹 ed蓹k.
Yaln谋z bir n蓹z蓹r salaq daha konkret biri.
Bel蓹 ki, burada bir funksiyas谋 bir misal var Bir funksiyas谋 眉莽眉n b蓹yannam蓹 ki
birlikd蓹 iki integers 蓹lav蓹 ed蓹c蓹k.
iki integers m蓹bl蓹臒i gedir bir tam, h蓹m d蓹 ola biz kimi
m眉zakir蓹 olunub.
V蓹 bel蓹 qaytar谋lmas谋 n枚v眉, burada ya艧谋l, int olacaq.
Bu yaln谋z iki ints 蓹lav蓹 biz蓹 deyir G眉n眉n sonunda, gedir,
莽谋x谋艧, v蓹 ya geri t眉p眉rm蓹k biz蓹, tam.
Bu funksiya biz n蓹 n蓹z蓹r蓹 alaraq bir m蓹nal谋 ad verm蓹k ist蓹yir蓹m.
Iki ints g枚r眉n眉r 蓹lav蓹 Uy臒un, n蓹z蓹r蓹
biz giri艧 kimi iki integers alaraq edirik v蓹 in艧allah birlikd蓹 onlara 蓹lav蓹.
Bu 莽蓹tin bir az ola bil蓹r ad谋 v蓹 s蓹mimi bu funksiya
y蓹qin ki, laz谋m deyil biz 蓹lav蓹 莽眉nki
operator, siz geri 蓹g蓹r bizim 蓹vv蓹ll蓹r operatorlar谋n m眉zakir蓹.
Amma yaln谋z namin蓹 dey蓹k Bu funksiya faydal谋 oldu臒unu arqument
v蓹 biz bu iki ints 蓹lav蓹 z蓹ng ed蓹c蓹yik.
N蓹hay蓹t, bu funksiya iki giri艧 edir.
H蓹r biri bir tam deyil.
Bel蓹likl蓹, biz bu verg眉l var v蓹saitl蓹rin ayr谋lm谋艧 siyah谋s谋.
陌ndi biz 眉mumiyy蓹tl蓹 ist蓹yir蓹m onlar谋n h蓹r bir ad verm蓹k
onlar istifad蓹 edil蓹 bil蓹r ki, funksiyas谋 蓹rzind蓹.
adlar谋 olduqca 蓹h蓹miyy蓹tli deyil.
>> Bu halda, biz m眉tl蓹q deyil onlara 蓹lav蓹 bir m蓹nas谋 var.
Bel蓹 ki, biz yaln谋z bir v蓹 b onlara z蓹ng ed蓹 bil蓹rsiniz.
Ki, tamamil蓹 g枚z蓹l var.
Lakin, siz tapmaq bir v蓹ziyy蓹td蓹 枚z眉n眉z眉
burada d蓹yi艧蓹nl蓹rin adlar谋 h蓹qiq蓹t蓹n 蓹h蓹miyy蓹tli ola bil蓹r,
茝g蓹r siz onlar谋 z蓹ng etm蓹k ist蓹yir蓹m bil蓹r bir v蓹 b ba艧qa bir 艧ey
onlara daha 莽ox 艧ey verm蓹k simvolik m蓹nal谋.
Lakin bu halda, biz, h蓹qiq蓹t蓹n, yoxdur funksiyas谋 haqq谋nda ba艧qa bir 艧ey bilirik.
Biz yaln谋z iki integers 蓹lav蓹 etm蓹k ist蓹yir蓹m.
Bel蓹 ki, biz yaln谋z z蓹ng ed蓹c蓹yik bu integers bir v蓹 b.
Ki, bir misal var.
>> Ikinci bir etmirl蓹r Niy蓹 bu bar蓹d蓹 d眉艧眉nm蓹k,
nec蓹 bir funksiyas谋 yazmaq olard谋 Bir funksiyas谋 眉莽眉n b蓹yannam蓹 ki
iki 眉z蓹n point n枚mr蓹l蓹ri art谋r谋r?
Siz n蓹 yadda edirsiniz 眉z蓹n point say谋?
Bu funksiya olard谋 b蓹yannam蓹 kimi g枚r眉n眉r?
M蓹n, h蓹qiq蓹t蓹n, fasil蓹 video g蓹lir burada v蓹 siz蓹 laz谋m n蓹 q蓹d蓹r vaxt al谋r.
N蓹 bu bar蓹d蓹 d眉艧眉n眉n funksiyas谋 b蓹yannam蓹 ola bil蓹r?
Qaytar谋lmas谋 n枚v眉 n蓹 olard谋?
Bir m蓹nal谋 ad谋 n蓹 olard谋?
Giri艧 n蓹 olard谋?
Bel蓹likl蓹, n蓹 siz burada video fasil蓹 deyil v蓹 yazmaq-up funksiyas谋 b蓹yannam蓹
莽oxaltmaq ki, bir funksiyas谋 眉莽眉n birlikd蓹 iki 眉z蓹n point n枚mr蓹l蓹ri.
陌n艧allah video durduruldu.
>> Bel蓹 ki, bir misal n蓹z蓹r salaq bir m眉mk眉n b蓹yannam蓹sinin.
Mult iki reals, float y x float float.
iki m蓹hsul 眉z蓹n point n枚mr蓹l蓹ri,
olan xat谋rlay谋ram nec蓹 biz real n枚mr蓹l蓹ri t蓹msil
v蓹 ya c decimal d蓹y蓹rl蓹ri il蓹 n枚mr蓹l蓹ri, 眉z蓹n point say谋 olacaq.
Bir 莽oxaltmaq zaman bir decimal il蓹 decimal,
Siz y蓹qin ki, bir decimal almaq olacaq.
Siz bir m眉vafiq ad verm蓹k ist蓹yir蓹m.
Iki reals 莽oxaltmaq g枚z蓹l g枚r眉n眉r.
Amma h蓹qiq蓹t蓹n z蓹ng ed蓹 bil蓹r mult iki 眉z眉b gedirdi, ya mult 眉z眉b gedirdi.
Bu kimi uzun kimi bir 艧ey, b蓹zi faktiki m蓹nas谋 verdi n蓹
Bu qara qutu etm蓹k niyy蓹tind蓹 idi.
V蓹 yen蓹, bu halda, biz deyil h蓹r hans谋 bir m蓹na 蓹lav蓹 var g枚r眉n眉r
adlar谋 biz ke莽蓹n edirik d蓹yi艧蓹nl蓹r,
bel蓹 ki, biz yaln谋z onlara x v蓹 y z蓹ng.
茝g蓹r bir 艧ey onlara z蓹ng 陌ndi 蓹g蓹r ba艧qa, ki, tamamil蓹 g枚z蓹l var.
茝slind蓹, siz 蓹g蓹r bu b蓹yannam蓹 蓹v蓹zin蓹
蓹v蓹zin蓹 iki d蓹f蓹 istifad蓹 Siz geri 蓹g蓹r, 眉z眉b gedirdi
ikiqat f蓹rqli bir var ki, yol daha d蓹qiq
real n枚mr蓹l蓹ri daxil v蓹 ya point d蓹yi艧蓹nl蓹rin 眉z蓹n.
Bu 莽ox tamamil蓹 g枚z蓹l var.
Ya o biri g枚z蓹l olard谋.
茝slind蓹, bir ne莽蓹 var m眉xt蓹lif birl蓹艧m蓹l蓹ri
yollar谋ndan bu funksiyan谋 elan.
Lakin bu iki olduqca yax艧谋 olanlard谋r.
Biz ki, b枚y眉k bir funksiyas谋 elan etdik.
Biz n蓹 compiler bildirib etdik , biz n蓹 olacaq edir.
陌ndi h蓹qiq蓹t蓹n funksiyas谋 yazmaq imkan verir.
Nin bir t蓹rif ver蓹k, bel蓹 ki, qara qutu i莽蓹risind蓹
proqnozla艧d谋r谋la bil蓹n davran谋艧 olur.
茝slind蓹, biz iki real vurulmas谋 olunur birlikd蓹 n枚mr蓹l蓹ri, v蓹 ya 蓹lav蓹 n枚mr蓹l蓹ri
birlikd蓹, v蓹 ya h蓹r n蓹 ki, biz bunu bizim funksiyas谋 ist蓹di.
>> 茝slind蓹 Bel蓹 ki, c蓹hd v蓹 m眉蓹yy蓹n ed蓹k iki reals 莽oxaltmaq olan biz yaln谋z
ikinci 蓹vv蓹l dan谋艧谋b.
陌ndi ba艧lan臒谋c谋 bir funksiyas谋 m眉蓹yy蓹n
dem蓹k olar ki, tam olaraq eyni g枚r眉n眉r funksiyas谋 b蓹yannam蓹 kimi.
M蓹n burada onlar谋n h蓹r ikisi var.
脺st funksiyas谋 b蓹yannam蓹 deyil, n枚v眉, ad谋, virg眉lle ayr谋lm谋艧 arqument
siyah谋s谋, n枚qt蓹li verg眉l.
n枚qt蓹li verg眉l g枚st蓹rir ki, ki, bir funksiyas谋 elan edir.
funksiyas谋 ba艧lan臒谋c谋 m眉蓹yy蓹n dem蓹k olar ki, d蓹qiq g枚r眉n眉r
eyni tipli, ad谋, virg眉lle ayr谋lm谋艧 arqument siyah谋s谋, he莽 bir n枚qt蓹li verg眉l,
buruq brace a莽谋n.
a莽谋q buruq brace, kimi biz 蓹sas il蓹 bunu etdik
biz indi o dem蓹kdir ki, m眉蓹yy蓹n etm蓹k 眉莽眉n ba艧layan
n蓹 qara qutu i莽蓹risind蓹 olur ki, biz mult iki reals z蓹ng etm蓹k q蓹rar谋na g蓹lib etdik.
Burada onu h蓹yata ke莽irm蓹k 眉莽眉n bir yoldur.
Biz yeni bir elan ed蓹 bil蓹r, dey蓹 bil蓹r n枚v眉 float adl谋 m蓹hsulun d蓹yi艧蓹n
ki, d蓹yi艧蓹n t蓹yin d蓹y蓹ri x d蓹f蓹 y.
V蓹 sonra m蓹hsul qay谋tmaq.
Geri burada n蓹 dem蓹kdir.
Yax艧谋 qaytar谋lmas谋 yolu ki, nec蓹 g枚st蓹rir
biz 莽谋x谋艧 geri ke莽蓹n edirik.
Bel蓹 ki, eyni 艧ey qay谋tmaq, bu qara qutusu 莽谋x谋艧 edir.
Siz bunu nec蓹 ki, var.
Burada onu h蓹yata ke莽irm蓹k 眉莽眉n ba艧qa bir yoldur.
Biz yaln谋z y x d蓹f蓹 qay谋tmaq bil蓹r.
x bir float edir.
y bir float edir.
D蓹f蓹 x bel蓹 y d蓹 float edir.
Biz h蓹tta ehtiyac yoxdur ba艧qa d蓹yi艧蓹n yarad谋r.
Bel蓹 ki, f蓹rqli bir 艧蓹kild蓹 var eyni qara qutu h蓹yata ke莽irir.
>> 陌ndi bir an, yenid蓹n fasil蓹 video,
v蓹 iki ints 蓹lav蓹 c蓹hd v蓹 m眉蓹yy蓹n olan dig蓹r funksiyas谋 ki, biz
bir an 蓹vv蓹l dan谋艧d谋q.
Yen蓹 burada, m蓹n funksiyas谋 qoymaq etdik b蓹yannam蓹, v蓹 n枚qt蓹li verg眉l,
v蓹 a莽谋q buruq brace v蓹 qapal谋 buruq
biz doldurmaq ed蓹c蓹k brace g枚st蓹rir m蓹zmunu, iki ints 蓹lav蓹
biz x眉susi m眉蓹yy蓹n ki, qara qutu i莽蓹risind蓹 davran谋艧.
Bel蓹 ki, video fasil蓹.
V蓹 daha 莽ox vaxt Siz c蓹hd v蓹 m眉蓹yy蓹n etm蓹k laz谋md谋r
bir t蓹zah眉r眉d眉r iki ints 蓹lav蓹, bel蓹 ki, funksiyas谋 bir d蓹y蓹r n蓹tic蓹l蓹r zaman,
蓹slind蓹, yoxdur, qaytar谋lmas谋 iki giri艧 m蓹bl蓹臒i.
Bel蓹 ki, yaln谋z 蓹vv蓹lki misal kimi, bir ne莽蓹 m眉xt蓹lif yollar谋 var
Siz h蓹yata bil蓹r ki, iki ints 蓹lav蓹 edin.
Burada biri.
Burada nar谋nc谋 m蓹n var yaln谋z bir 艦茝RHL茝R idi
M蓹n yaln谋z bir 蓹lav蓹 etdik 艧蓹rh g枚st蓹rir
n蓹 kodu h蓹r x蓹ttind蓹 ba艧.
M蓹n bir d蓹yi艧蓹n elan n枚v眉 int m蓹bl蓹臒i 莽a臒谋r谋b.
M蓹n m蓹bl蓹臒i plus b b蓹rab蓹rdir dem蓹k.
Biz, h蓹qiq蓹t蓹n, yap媒yorsun harada i艧 蓹lav蓹 v蓹 birlikd蓹 b.
M蓹n m蓹bl蓹臒 geri.
V蓹 ki, hissi, 莽眉nki edir m蓹bl蓹臒 n枚v眉 int d蓹yi艧蓹n deyil.
V蓹 m蓹lumat bu ki, yaz谋n n蓹 var funksiyas谋 莽谋x谋艧 olacaq m蓹n蓹 deyir?
Int.
M蓹n m蓹bl蓹臒 qaytar谋lmas谋 al谋ram olan tam d蓹yi艧ir.
V蓹 m蓹nada biz n蓹 veril蓹n edir elan v蓹 funksiyas谋 m眉蓹yy蓹n
etm蓹k.
>> 陌ndi siz d蓹 m眉蓹yy蓹n ed蓹 bil蓹rsiniz funksiyas谋 bu 艧蓹kild蓹,
int m蓹bl蓹臒 ki ke莽m蓹k b-- bir plus b蓹rab蓹rdir step-- ilk v蓹 sonra, m蓹bl蓹臒i qay谋tmaq.
陌ndi siz d蓹 ola bil蓹r Bu, bu 艧蓹kild蓹 h蓹yata
M蓹n y眉ks蓹k g蓹lir yoxdur.
Bu bir pis stili 艧ey v蓹 h蓹qiq蓹t蓹n pis dizayn,
lakin 蓹slind蓹, i艧 yoxdur.
Siz int bu kodu alsaq pis g眉rz蓹 dot c 蓹lav蓹 v蓹 istifad蓹 edin.
Bu, faktiki olaraq 蓹lav蓹 etm蓹yib birlikd蓹 iki integers.
Bu, 莽ox pis h蓹yata var bu davran谋艧.
Amma i艧l蓹yir.
Bu g枚st蓹rm蓹k 眉莽眉n yaln谋z burada var Biz, h蓹qiq蓹t蓹n, yoxdur point
daxili n蓹 qay臒谋 uzun qara qutusu,
biz g枚zl蓹yirik 莽谋x谋艧 var.
Bu z蓹if n蓹z蓹rd蓹 qara qutusu edir.
Amma sonunda g眉n, bunu h蓹l蓹 莽谋x谋艧 plus b m蓹bl蓹臒i.
Oldu.
Bel蓹likl蓹, biz funksiyalar谋 elan etdik.
V蓹 biz funksiyas谋 m眉蓹yy蓹n etdik.
Bel蓹 ki, h蓹qiq蓹t蓹n yax艧谋d谋r.
陌ndi funksiyalar谋 istifad蓹 etm蓹k ba艧lamaq ed蓹k ki, biz b蓹yan etdik v蓹 biz m眉蓹yy蓹n etdik.
Bu, h蓹qiq蓹t蓹n bir funksiyas谋 z蓹ng etm蓹k 眉莽眉n Siz n蓹 etm蓹k laz谋md谋r b眉t眉n olduqca easy--
m眉vafiq d蓹lill蓹ri ke莽m蓹k deyil, data n枚v眉 d蓹lill蓹ri
g枚zl蓹diyini ki, sonra geri t蓹yin
ki, funksiyas谋 d蓹y蓹ri v蓹 艧eyl蓹rdir b蓹han蓹 me--
ki, funksiyas谋 qaytar谋lmas谋 d蓹y蓹ri t蓹yin d眉zg眉n n枚v眉 bir 艧ey.
>> Bel蓹 ki, bir n蓹z蓹r salaq bir fayl bu t蓹cr眉b蓹
adl谋 g眉rz蓹 1 dot c hans谋 M蓹n CS50 IDE var.
Bel蓹 ki, burada g眉rz蓹 1 dot c.
茝vv蓹lind蓹 m蓹n g枚rm蓹k my daxildir, funt, daxil
standart IO v蓹 CS50 dot h.
V蓹 sonra m蓹n funksiyas谋 b蓹yannam蓹 var.
M蓹n burada M蓹n compiler izah
bir yaz谋l谋 olacaq adl谋 funksiyas谋 iki ints 蓹lav蓹 edin.
Bu 莽谋x谋艧 an olacaq tam n枚v眉 d蓹yi艧蓹n.
Y蓹ni bu hiss蓹si burada n蓹 var.
V蓹 sonra m蓹n bu bir iki giri艧 var v蓹 b, h蓹r biri bir tam deyil.
茝sas Inside, M蓹n istifad蓹莽i xahi艧 dey蓹r蓹k giri艧, m蓹n蓹 bir tam verir.
Onlar unutmaq istenir bir funksiyas谋 var int ki,
CS50 kitabxana daxil edilir.
V蓹 saxlan谋l谋r olur x, tam d蓹yi艧蓹n.
>> Sonra ba艧qa bir tam 眉莽眉n onlara t蓹klif.
Biz bir tam almaq v蓹 y ki saxlamay谋n.
V蓹 sonra, burada x蓹tt 28 edir biz funksiyas谋 z蓹ng.
Biz int z b蓹rab蓹r s枚yl蓹y蓹r蓹k 2 ints x verg眉l y 蓹lav蓹 edin.
Bu m蓹nada edir niy蓹 g枚r眉rs眉n眉z?
x tam n枚v眉 d蓹yi艧蓹n v蓹 y bir tam n枚v眉 d蓹yi艧ir.
Bel蓹 ki, yax艧谋.
N蓹 bizim funksiyas谋 il蓹 m蓹nada line 17-d蓹 b蓹yanat kimi g枚r眉n眉r.
virg眉lle ayr谋lm谋艧 giri艧 siyah谋s谋 iki tam, A v蓹 B g枚zl蓹yir.
Bu halda, biz z蓹ng ed蓹 bil蓹rsiniz Onlara n蓹 ist蓹yirik.
Bu, yaln谋z iki integers g枚zl蓹yir.
V蓹 x tam v蓹 y bir tam.
Ki, i艧l蓹yir.
>> V蓹 biz funksiyas谋 gedir bilirik 莽谋x谋艧 眉莽眉n integers h蓹m莽inin.
V蓹 biz saxlan谋lmas谋 funksiyas谋 莽谋x谋艧,
tam n枚v眉, iki ints 蓹lav蓹 d蓹yi艧蓹n, biz z z蓹ng edirik.
V蓹 sonra biz, m蓹bl蓹臒i dem蓹k olar faiz i v蓹 faiz i i faiz t蓹艧kil edir.
x, y v蓹 z m眉vafiq bu faiz i nin doldurulmas谋.
Anlay谋艧谋 n蓹dir iki ints kimi baxmaq 蓹lav蓹?
Bu olduqca sad蓹.
Bu is蓹 biri biz yaln谋z bir ikinci 蓹vv蓹l g枚rd眉m
int m蓹bl蓹臒i bir plus b geri m蓹bl蓹臒i b蓹rab蓹rdir.
Bu i艧l蓹yir?
Nin fayl谋 ed蓹k.
V蓹 sonra a艧a臒谋 burada m蓹nim terminal谋nda M蓹n g眉rz蓹 1 etm蓹k gidiyorum
v蓹 m蓹n ekran sil.
M蓹n bilir蓹m, 莽眉nki zoom gedir蓹m g枚rm蓹k 眉莽眉n bir az 莽蓹tindir.
>> Bel蓹likl蓹, biz g眉rz蓹 1 kimi bu proqram t蓹rtib edir.
Bel蓹likl蓹, biz dot 莽izgi g眉rz蓹 1 ed蓹 bil蓹rsiniz.
10 M蓹n蓹 bir tam verir.
20 M蓹n蓹 bir tam verir.
10 v蓹 20 m蓹bl蓹臒i 30.
Bel蓹likl蓹, biz bir u臒urlu funksiyas谋 z蓹ng etdi.
Siz m蓹nfi yenid蓹n funksiyas谋 莽al谋艧t谋rabilirsiniz 10, m蓹nfi 10 v蓹 17 17 m蓹bl蓹臒i 7.
Bu funksiya i艧l蓹yir.
Bu davran谋艧 var biz bunu g枚zl蓹yirik ki.
V蓹 bel蓹 ki, biz u臒urlu etdik funksiyas谋, m眉蓹yy蓹n, b蓹yannam蓹,
v蓹 m眉v蓹ff蓹qiyy蓹tli bir funksiyas谋 z蓹ng.
C眉tl眉k m眉xt蓹lif funksiyalar谋 haqq谋nda xal
bu b枚lm蓹 ba臒lamaq 蓹vv蓹l.
Geri bizim m蓹lumat n枚vl蓹ri m眉zakir蓹si,
蓹vv蓹ll蓹r funksiyalar谋 ki, b蓹z蓹n he莽 bir giri艧 bil蓹r.
Ki, i艧i varsa, biz funksiyas谋 elan
bir etibars谋z d蓹lil siyah谋s谋 olan kimi.
Siz n蓹 xat谋rlay谋ram yoxdur 茝n 眉mumi funksiyas谋
Biz bu g眉n蓹 q蓹d蓹r edir ki, g枚rd眉m bir etibars谋z d蓹lil siyah谋s谋?
Bu 蓹sas var.
B蓹z蓹n d蓹 funksiyas谋 Xat谋rladaq h蓹qiq蓹t蓹n bir 莽谋x谋艧 yoxdur.
Bu halda, biz funksiyas谋 elan bir bo艧luq qaytar谋lmas谋 n枚v眉 olan kimi.
T蓹r蓹find蓹n bu b枚lm蓹 ba臒lamaq ed蓹k t蓹cr眉b蓹 problem h蓹ll.
>> Bel蓹 ki, burada sal谋nan problem var.
M蓹n siz蓹 bir funksiyas谋 yazmaq ist蓹yir蓹m etibarl谋 眉莽bucaq 莽a臒谋r谋b.
Bu funksiya n蓹 etm蓹lidir 眉莽 real n枚mr蓹l蓹ri i艧tirak edir
眉莽 uzunlu臒u t蓹msil onun parametrl蓹ri kimi bir 眉莽bucaq t蓹r蓹fl蓹r,
v蓹 ya onun d蓹lill蓹ri, v蓹 ya onun e艧 bir set inputs--
qar艧谋la艧a bil蓹r.
Bu funksiya olmal谋d谋r 莽谋x谋艧 ya do臒ru v蓹 ya yalan
as谋l谋 olaraq bu 眉莽 yola olub bir 眉莽bucaq edilm蓹si m眉mk眉nd眉r.
Siz data n枚v眉 xat谋rlay谋ram ki, biz do臒ru v蓹 ya yalan qeyd etm蓹k 眉莽眉n istifad蓹?
陌ndi bu nec蓹 h蓹yata edirsiniz?
Yax艧谋 bir ne莽蓹 var bilir蓹m 眉莽bucaq il蓹 ba臒l谋 qaydalar谋
h蓹qiq蓹t蓹n bilm蓹k faydal谋d谋r.
A 眉莽buca臒谋 yaln谋z ola bil蓹r m眉sb蓹t uzunlu臒u t蓹r蓹fl蓹r.
Ki, hissi verir.
Siz y蓹qin ki, duh dey蓹r蓹k edirik.
ba艧qa 艧ey qeyd etm蓹k baxmayaraq ki, m蓹bl蓹臒in ki
h蓹r hans谋 bir uzunlu臒u 眉莽bucaq iki t蓹r蓹f
daha 莽ox olmal谋d谋r 眉莽眉nc眉 t蓹r蓹fin uzunlu臒u.
Bu, h蓹qiq蓹t蓹n, do臒ru.
Siz t蓹r蓹fd蓹n 1-眉莽bucaq ola bilm蓹z M蓹s蓹l蓹n 2 v蓹 4, 1 plus 2 莽眉nki
4-d蓹n b枚y眉k deyil.
O Bel蓹 qaydalar谋 var ki, m眉蓹yy蓹n 眉莽 v蓹 ya
giri艧 conceivably bir 眉莽bucaq t蓹艧kil ed蓹 bil蓹rsiniz.
Bel蓹 ki, bir ne莽蓹 d蓹qiq蓹 almaq v蓹 b蓹yan v蓹 sonra m眉蓹yy蓹n
etibarl谋 adlanan bu funksiya 眉莽bucaq, bel蓹 ki, bu, h蓹qiq蓹t蓹n,
Burada ifad蓹 davran谋艧 var.
>> Bu 莽谋x谋艧 ed蓹c蓹k do臒ru bu 眉莽 t蓹r蓹fd蓹n 蓹g蓹r , bir 眉莽bucaq ibar蓹t bil蓹n
v蓹 saxta ba艧qa Siz nec蓹 g枚rm蓹k 眉莽眉n haz谋r edirsiniz?
Burada h蓹yata var etibarl谋 眉莽buca臒谋.
Bu, yaln谋z bir deyil.
Yours q蓹d蓹r d蓹yi艧蓹 bil蓹r.
Amma bu bir 蓹slind蓹, var, yoxdur biz g枚zl蓹yirik davran谋艧.
Biz bizim funksiyas谋 elan 莽ox top, etibarl谋 眉莽bucaq bool
x float y float z float.
Bel蓹 ki, yen蓹, bu funksiya 眉莽 real n枚mr蓹l蓹ri edir
onun d蓹lill蓹ri kimi, 眉z蓹n point d蓹y蓹ri d蓹yi艧蓹nl蓹r,
v蓹 do臒ru v蓹 ya yalan n蓹tic蓹l蓹r bir Boolean, geri d蓹y蓹r.
Qaytar谋lmas谋 n枚v眉 bool var n蓹 ki, var.
Sonra biz funksiyas谋 m眉蓹yy蓹n edir.
Biz n蓹 ilk 艧ey 蓹min olun edir ki, t蓹r蓹fl蓹r b眉t眉n m眉sb蓹tdir.
X-d蓹n az v蓹 ya b蓹rab蓹r olduqda 0 v蓹 ya y 0 b蓹rab蓹r olduqda,
v蓹 ya z, daha az v蓹 ya 0 b蓹rab蓹r olduqda b蓹lk蓹 bir 眉莽bucaq ola bilm蓹z.
Onlar m眉sb蓹t t蓹r蓹fl蓹ri yoxdur.
V蓹 bel蓹 ki, biz qay谋da bil蓹r ki, v蓹ziyy蓹t yalan.
Sonra, biz 蓹min olun ki, v蓹saitl蓹rin h蓹r c眉t
眉莽眉nc眉 bir daha b枚y眉kd眉r.
>> Bel蓹 ki, x plus y az olduqda z 莽ox v蓹 ya b蓹rab蓹r,
v蓹 ya x plus z az olduqda y 莽ox v蓹 ya b蓹rab蓹r,
v蓹 ya y plus z 蓹g蓹r daha az v蓹 ya b蓹rab蓹r x, bu da cari 眉莽bucaq ola bilm蓹z.
Y蓹ni biz yenid蓹n saxta qay谋tmaq.
Ets蓹k, biz 莽ekl蓹rin d蓹 ke莽di baxmayaraq ki, biz do臒ru ola bil蓹r.
Bu 眉莽 t蓹r蓹fd蓹n 脟眉nki returning-- bil蓹n
etibarl谋 眉莽bucaq yaratmaq.
V蓹 bu.
陌ndi elan m眉蓹yy蓹n etdik.
V蓹 indi m眉mk眉n ola bil蓹r istifad蓹 v蓹 bu funksiyas谋 z蓹ng.
茝la i艧dir.
M蓹n Doug Lloyd edir蓹m.
Bu CS50 edir.