>> [MUSIC PLAYING]
DOUG LLOYD: B眉t眉n h眉ququ.
Q蓹rib蓹 m枚vzu c眉r, sa臒?
Magic n枚mr蓹l蓹ri.
O zaman o n蓹 dem蓹kdir doe sehrli n枚mr蓹l蓹ri haqq谋nda s枚hb蓹t?
Yax艧谋, proqramlar谋n b蓹zi biz CS50 yazd谋q ki,
indiy蓹 q蓹d蓹r b蓹zi q蓹rib蓹 var n枚mr蓹l蓹ri c眉r onlara at谋lan.
Y蓹qin ki, s蓹b蓹bl蓹r蓹 g枚r蓹 biz deyil tamamil蓹 indi ba艧a d眉艧眉r眉k.
M蓹s蓹l蓹n, Mario problem, biz 23 piramida h眉nd眉rl眉y眉 ba艧谋ba臒l谋.
Biz a莽谋q-ayd谋n ifad蓹 etdi daha y眉ks蓹k 23 getm蓹k bilm蓹z.
>> Amma 23 n蓹 dem蓹kdir?
Yax艧谋, siz oxumaq 蓹g蓹r Diqq蓹tl蓹 siz蓹 spec
ki, g枚rm眉艧蓹m bil蓹r s蓹b蓹bi 23 onu ba艧谋ba臒l谋
standart h眉nd眉rl眉y眉 莽眉nki bir terminal p蓹nc蓹r蓹 24.
V蓹 biz 蓹g蓹r piramida daha taller olmaq,
Bu q蓹rib蓹 艧ey ola bil蓹r harada ekran off 莽al谋艧谋r.
Bildiyiniz V蓹 n蓹 do臒ru, kontekstind蓹 dem蓹kdir?
>> 23 d蓹rhal ayd谋n m蓹nas谋 kims蓹 olan proqram bax谋r
v蓹 b蓹lk蓹 ba艧qa bir var size terminal p蓹nc蓹r蓹?
Y蓹qin ki, deyil.
OK, kimi g枚r眉n眉r.
Yax艧谋, niy蓹 yaln谋z az 23-d蓹n?
脺mumiyy蓹tl蓹, bu c眉r var pis v蓹rdi艧 h蓹qiq蓹t蓹n
Sizin kodu daxil sabitl蓹ri yazmaq.
Siz, h蓹qiq蓹t蓹n, n蓹 zaman, bunu Sizin kodu daxil daimi yazmaq
istifad蓹 ed蓹r蓹k kimi istinad b蓹z蓹n var sehrli n枚mr蓹l蓹ri, bir 艧ey deyil
biz 眉mumiyy蓹tl蓹 c蓹hd v蓹 qar艧谋s谋n谋 almaq ist蓹yirik.
>> M蓹s蓹l蓹n, bir n蓹z蓹r salaq Burada bu sad蓹 funksiyas谋.
Ayd谋nd谋r ki, he莽 bir m蓹lumat yoxdur C tipli kart v蓹 ya g枚y蓹rt蓹 莽a臒谋r谋b.
Bel蓹 ki, yaln谋z m蓹niml蓹 da艧谋y谋rlar.
Bu bir az var pseudocode burada qar谋艧d谋r谋l谋r.
Bu adl谋 bir funksiyas谋 var ki, y蓹qin kart m蓹艧臒ul
onun parametri kimi bir g枚y蓹rt蓹 edir v蓹 M蓹n蓹 莽谋x谋艧 ed蓹c蓹k bir kart.
>> M蓹n burada m蓹n bir 艧ey edir蓹m , 0-dan 52 莽al谋艧an bir loop var
v蓹 m蓹n bir kart m蓹艧臒ul.
B蓹li, biz bir sehrli var burada say谋, do臒ru.
Siz sehrli say谋 n蓹 g枚r眉rs眉n眉z?
V蓹 ya daha 蓹h蓹miyy蓹tlisi, siz problem burada n蓹 g枚rm蓹k?
X眉susil蓹 bu halda yaln谋z bir funksiyas谋 var
bir 枚z fayl ehtiva qovluq
m眉xt蓹lif bir d蓹st蓹 fayllar谋 h蓹r hans谋
kartlar g枚y蓹rt蓹 ba艧qa 艧ey yoxdur.
B蓹lk蓹 onlar谋 shuffles, v蓹 ya bir t蓹r蓹fd蓹n m蓹艧臒ul be艧 kartlar谋 蓹v蓹zin蓹 bir kart.
>> Siz n蓹 g枚r眉rs眉n眉z problem burada ola bil蓹r?
Siz sehrli say谋 g枚r眉rs眉n眉zm眉 M蓹n kodu enjekte etdik?
Bu do臒ru, 52 var.
>> Kimi, daxil蓹n siz y蓹qin ki, bilirsiniz, OK.
Standart g枚y蓹rt蓹 kimi kartlar谋 52 kartlar谋 ehtiva edir.
Amma bizim proqramda, yaln谋z var c眉r orada 蓹traf谋nda 眉z蓹n.
Q蓹fl蓹t蓹n 52 var kimi deyil.
>> Bu h蓹ll etm蓹k 眉莽眉n bir yolu problem bunu edir.
Biz indi 莽ox a莽谋q-ayd谋n ist蓹yirik 52 kimi g枚y蓹rt蓹 枚l莽眉s眉 s蓹sl蓹n蓹r蓹k.
Bu bir az daha asan verir zaman loop 眉莽眉n m蓹nas谋
biz sonra deyir蓹m sonra g枚y蓹rt蓹 枚l莽眉s眉 azd谋r.
Bu, sad蓹c蓹 52 dey蓹r蓹k daha yax艧谋 g枚r眉n眉r.
陌ndi bu h蓹qiq蓹t蓹n problemi h蓹ll etmir.
B蓹zi r蓹mzi verir daimi m蓹nas谋n谋.
Amma bu c眉r h蓹qiq蓹t蓹n yoxdur ba艧qa bir problem t蓹qdim
ki, d蓹rhal ayd谋n ola bil蓹r.
H蓹tta bu d蓹yi艧蓹n 蓹g蓹r globally-- elan
Siz n蓹 geri yoxdur biz b蓹yan zaman dem蓹kdir
qlobal yerli qar艧谋 d蓹yi艧蓹n?
Biz bir d蓹yi艧蓹n elan bile qlobal, n蓹 var, 蓹g蓹r
ba艧qa funksiyas谋 funksiyalar谋 bizim suite
kart manipulyasiya il蓹 m蓹艧臒ul ki s蓹hv蓹n, g枚y蓹rt蓹 枚l莽眉s眉 d蓹yi艧ir
v蓹 ya onu art谋r谋r 1 v蓹 ya 1 il蓹 azal谋r.
Bu do臒ru, narahatl谋q sehr bil蓹r?
Biz bir s谋ra il蓹 m蓹艧臒ul oldu臒unuz, x眉susil蓹 d蓹 蓹g蓹r kartlar谋 tam g枚y蓹rt蓹 shuffling harada
t蓹l蓹b olunur.
G枚y蓹rt蓹 枚l莽眉s眉 azal谋r, 蓹g蓹r 1, m蓹s蓹l蓹n, 51,
biz, h蓹qiq蓹t蓹n, shuffling deyilik b蓹lk蓹 b眉t眉n kartlar谋.
Biz onlardan biri t蓹rk edirik.
V蓹 ki, d蓹y蓹ri b蓹lk蓹 ola bil蓹r proqnozla艧d谋r谋lan v蓹 ya pis aktyor t蓹r蓹find蓹n istismar.
>> C deyirl蓹r n蓹 t蓹min edir preprocessor direktiv olan
d蓹 makro adlan谋r simvolik sabitl蓹ri yarad谋lmas谋.
V蓹 蓹slind蓹, siz art谋q var bir preprocessor direktiv g枚r眉ld眉
Siz onu e艧itm蓹mi艧蓹m, h蓹tta # daxildir il蓹 莽a臒谋r谋b.
Bu makro bir misal var v蓹 ya preprocessor direktiv.
>> yol simvolik sabitl蓹ri yaratmaq, v蓹 ya daimi bir ad verilm蓹si
daha var ki, y蓹ni bel蓹.
# m眉蓹yy蓹n, ad谋, d蓹yi艧dirilm蓹si.
K蓹nara h蓹qiq蓹t蓹n vacibdir Burada h蓹qiq蓹t蓹n s眉r蓹tli.
Bir n枚qt蓹li verg眉l qoymaq etm蓹yin Sizin # m眉蓹yy蓹nl蓹艧dirir sonu.
Bel蓹 ki Sayl谋, ad谋, 蓹v蓹z edir.
>> Proqram t蓹rtib edildikd蓹, n蓹 h蓹qiq蓹t蓹n olur
gedir, 蓹g蓹r compiler edir Sizin kod vasit蓹sil蓹 getm蓹k
v蓹 h蓹r instansiya 蓹v蓹z h蓹r hans谋 il蓹 s枚z眉 "ad谋" Siz
蓹v蓹z kimi qoydu.
Analoji, # daxildir 蓹g蓹r sort 莽谋xarmaq v蓹 yap谋艧t谋rma ox艧ar,
sonra Sayl谋 sort edir tapmaq v蓹 蓹v蓹z ox艧ar,
He莽 bir ki x眉susiyy蓹t istifad蓹 etdiyiniz halda s枚z emal proqram, misal 眉莽眉n.
>> M蓹s蓹l蓹n, 蓹g蓹r m蓹n 3.14159265 kimi pi # m眉蓹yy蓹n,
Daha yax艧谋 riyazi 蓹g蓹r maili v蓹 bird蓹n
3.14159265 u莽an g枚rm蓹k 蓹traf谋nda kodu,
Siz y蓹qin ki, pi s枚hb蓹t bilirik.
Amma b蓹lk蓹 biz onu bir ver蓹 bil蓹r az daha simvolik m蓹nas谋.
V蓹 biz 蓹v蓹zin蓹 # m眉蓹yy蓹n dem蓹k olar n枚mr蓹l蓹ri ki, qurtum kimi pi
M蓹n saxlamaq fikrind蓹 deyil蓹m ki, 眉z蓹rind蓹 oxu.
>> V蓹 n蓹 sonra n蓹 olacaq proqram zaman t蓹rtib vaxt
t蓹rtib, ilk 艧ey ki, ba艧 ver蓹c蓹k onun vasit蓹sil蓹 getm蓹k olacaq
v蓹 h蓹r zaman 蓹v蓹z ed蓹c蓹k Bu, kapital P, kapital I g枚r眉r
bu s枚z眉n il蓹 蓹v蓹z ed蓹c蓹yik 3.14 v蓹 s, ki,
h蓹r n枚v眉 yoxdur vaxt h蓹l蓹 proqram is蓹
funksionall谋q var ki, Siz 莽al谋艧谋r谋q, 莽眉nki g枚zl蓹yirik
manipulyasiya il蓹 vurulmas谋, Bu pi t蓹r蓹find蓹n n蓹, b枚l眉nm蓹si.
>> Bu m蓹hdud deyil yaln谋z n枚mr蓹l蓹ri 眉莽眉n 蓹v蓹z.
M蓹s蓹l蓹n, m蓹n # m眉蓹yy蓹n ed蓹 bil蓹r string CS50 kimi kurs.
Bu halda, zaman proqram t蓹rtib,
# m眉蓹yy蓹n ke莽蓹c蓹yi indeksi, h蓹r zaman 蓹v蓹z
Bu string CS50 il蓹 "kursu" g枚r眉r.
>> Ba艧 g枚r蓹c蓹ksiniz I ki, tez-tez
# m眉蓹yy蓹n b眉t眉n simvolik m眉蓹yy蓹n sabitl蓹ri, bel蓹 ki, dan谋艧maq
b眉t眉n caps h蓹mi艧蓹 var.
Bu konvensiya var.
Bu laz谋m deyil.
s蓹b蓹bi 眉mumiyy蓹tl蓹 insanlar istifad蓹 ed蓹c蓹k b眉t眉n paytaxtlar谋nda onlar #defining edirik
ki, yaln谋z bu, h蓹qiq蓹t蓹n, a莽谋q-a艧kar etm蓹k 眉莽眉n edir m蓹nim kodu bu x眉susi element
m眉蓹yy蓹n daimi deyil.
Bu ki莽ik idi, bu m眉mk眉nd眉r bir d蓹yi艧蓹n s蓹hv ola bil蓹r.
V蓹 y蓹qin ki, var yax艧谋 bir 艧ey etm蓹k deyil.
>> Bel蓹 ki, bu x眉susi h蓹ll daha yax艧谋
蓹vv蓹lki v蓹 ya daha.
M蓹n ilk Sayl谋 g枚y蓹rt蓹 枚l莽眉s眉 52, onda indi burada 52 v蓹 ya g枚y蓹rt蓹 枚l莽眉s眉 m蓹nim istifad蓹,
bir 莽ox daha asan v蓹 莽ox t蓹hl眉k蓹siz edir.
Siz daimi manipulyasiya ed蓹 bilm蓹z.
52 plus plus dey蓹 bilm蓹r蓹m.
53 莽evirm蓹k niyy蓹tind蓹 deyil.
Siz bir 艧ey 52 d蓹yi艧蓹 bilm蓹z.
>> Siz d蓹yi艧蓹n d蓹yi艧蓹 bil蓹rsiniz onlar谋n d蓹y蓹ri 52,
olan biz 蓹vv蓹l idi ilk fix idi.
V蓹 arta bil蓹r 53 ki, d蓹yi艧蓹n.
Amma 52 Plus Plus v蓹 dey蓹 bilm蓹r蓹m bird蓹n 53 daxil 52 莽evirm蓹k ki, var.
52 h蓹mi艧蓹 52.
V蓹 bel蓹 ki, t蓹sad眉f蓹n d蓹yi艧蓹 bilm蓹z burada manipulyasiya il蓹 g枚y蓹rt蓹 枚l莽眉s眉,
>> Yax艧谋 bir t蓹r蓹fi Bu baxmayaraq t蓹siri
ki, bilirik ki, deyil D眉nyan谋n b眉t眉n 枚lk蓹l蓹ri
枚l莽眉s眉 52 kartlar g枚y蓹rt蓹 istifad蓹?
M蓹s蓹l蓹n, h蓹qiq蓹t蓹n 眉mumi var Almaniya, 32 g枚y蓹rt蓹 枚l莽眉s眉 istifad蓹 etm蓹k
b蓹zi soyunmaq harada a艧a臒谋 d蓹y蓹ri kartlar谋.
V蓹 bu halda, m蓹n liman谋na m蓹nim suite ist蓹di
il蓹 m蓹艧臒ul funksiyalar谋 Almaniya kart manipulyasiya.
M蓹n ilk n枚vb蓹d蓹 bil蓹r biz g枚st蓹rdi, getm蓹k v蓹 蓹v蓹z var
32 m蓹nim kodu 52 b眉t眉n hallarda.
>> Amma burada, m蓹n # m眉蓹yy蓹n 蓹g蓹r g枚y蓹rt蓹 枚l莽眉s眉 m蓹nim kodu 莽ox 眉st 32 kimi,
M蓹n bunu d蓹yi艧m蓹k laz谋md谋r, 蓹g蓹r, m蓹n yaln谋z getm蓹k v蓹 bir 艧ey d蓹yi艧ir.
M蓹nim kodu compile v蓹 b眉t眉n ani vasit蓹sil蓹 t蓹bli臒 edir.
茝slind蓹, biz g枚y蓹rt蓹 d蓹yi艧蓹 bil蓹rsiniz biz ist蓹diyiniz h蓹r hans谋 bir d蓹y蓹ri 枚l莽眉s眉.
>> M蓹n 眉莽眉n gedir g枚y蓹rt蓹 枚l莽眉s眉 alma oyun?
>> M蓹n Doug Lloyd edir蓹m.
Bu CS50 edir.