>> [MUSIC PLAYING]
>> DOUG LLOYD: B眉t眉n sa臒, bel蓹 ed蓹k command-line d蓹lill蓹ri haqq谋nda dan谋艧maq.
Bel蓹 ki, bu g眉n蓹 q蓹d蓹r 蓹lb蓹tt蓹 olduqca proqramlar谋 莽ox b眉t眉n
y蓹qin ki, ba艧lay谋b 艧eyl蓹rdir int 蓹sas bo艧luq kimi.
Biz toplanmas谋 oldu臒unuz istifad蓹莽i giri艧i biz bunu laz谋md谋r, 蓹g蓹r
kimi proqramlar da, Mario proqram, m蓹s蓹l蓹n,
in-proqram ister t蓹r蓹find蓹n.
Biz d蓹yi艧dirm蓹k 眉莽眉n laz谋m deyil 蓹sas b蓹yannam蓹,
莽眉nki 蓹v蓹zin蓹 蓹sas biz daxilind蓹 yaln谋z int almaq 眉莽眉n z蓹ng ed蓹 bil蓹r, deyirl蓹r.
Nec蓹 b枚y眉k piramida olmaq ist蓹yirsiniz?
V蓹 ya almaq 眉莽眉n z蓹ng ed蓹 bil蓹r n蓹 q蓹d蓹r d蓹yi艧iklik float
istifad蓹莽i I 莽谋x谋艧 laz谋md谋r?
>> Ba艧qa bir yol olsa da var v蓹 biz istifad蓹莽il蓹r ist蓹yirsinizs蓹
t蓹min etm蓹k 眉莽眉n Bizim proqram data
yerin蓹 is蓹 i艧 zaman谋 proqram, 莽al谋艧an
bir inc蓹 f蓹rq, lakin b蓹z蓹n bir 莽ox faydal谋 bir,
biz 蓹sas elan yeni bir forma laz谋md谋r.
Biz ist蓹yirsinizs蓹 int 蓹sas etibars谋z istifad蓹 ed蓹 bilm蓹z command-line dig蓹r m蓹lumatlar谋 toplamaq
istifad蓹莽i proqram 莽al谋艧谋r zaman, bel蓹likl蓹 command-line d蓹lill蓹ri.
>> Bu skript sat谋r谋 toplamaq istifad蓹莽i d蓹lill蓹ri,
Sizin b蓹yannam蓹 d蓹yi艧蓹 艧eyl蓹rdir int kimi baxmaq 眉莽眉n 蓹sas
蓹sas, a莽谋q paren, int argc, verg眉l, string argv, kvadrat m枚t蓹riz蓹d蓹,
v蓹 sonra buruq brace a莽谋n.
Bel蓹 ki, art谋q n蓹 dem蓹kdir?
Yax艧谋, biz iki parametrl蓹ri ke莽蓹n, 蓹sas v蓹 ya d蓹lill蓹ri v蓹 ya giri艧.
One, bir tam adl谋 argc v蓹 dig蓹r n蓹dir?
Bu h眉ququ, strings bir s谋ra var?
Biz bu kvadrat m枚t蓹riz蓹 notation g枚rm蓹k.
Bu strings bir s谋ra var.
Bu f蓹rdi simli deyil, Bu strings bir s谋ra var.
V蓹 bu iki d蓹lill蓹ri, argc v蓹 argv, n蓹 data istifad蓹莽i bilm蓹k imkan
command-line t蓹min edib v蓹 nec蓹 bir 莽ox 艧eyi onlar
command-line t蓹min.
Il蓹 i艧l蓹m蓹k 眉莽眉n olduqca faydal谋 艧eyl蓹r.
>> Argc, d蓹lil say谋 t蓹r蓹fdard谋r Siz yolu il蓹, bilm蓹lidir,
Siz argc z蓹ng ed蓹 bil蓹r ki, Siz ist蓹diyiniz h蓹r hans谋.
Siz ist蓹yirdi n蓹 argv z蓹ng ed蓹 bil蓹rsiniz.
Bu yaln谋z 艧蓹rti adlar谋 biz Odur arqument say谋 眉莽眉n istifad蓹 ki,
v蓹 biz ikinci g枚r蓹c蓹ksiniz kimi, d蓹lil vektor, argv.
Amma onlara z蓹ng yoxdur Siz ist蓹mirsinizs蓹 argc v蓹 argv,
lakin 艧蓹rti ki, biz n蓹 var.
>> Bel蓹 ki, h蓹r halda, argc, d蓹lil count.
Bu tam tipli d蓹yi艧蓹n v蓹, bel蓹 ki, biz iki 艧eyi varsa, g枚zl蓹m蓹k bil蓹r
biz tapmaq olacaq ki, bu tipli n蓹
v蓹 n蓹 q蓹d蓹r stuff istifad蓹莽i tipli, argc var
n蓹 q蓹d蓹r biz蓹 davam 莽ap istifad蓹莽i m枚vzusu.
Bu bir s谋ra verir, bel蓹 ki, command-line d蓹lill蓹ri istifad蓹莽i
proqram icra edildiyi yaz谋lm谋艧.
Proqram Bel蓹 ki dot g枚rm蓹mi艧 do臒ramaq run,
v蓹 g枚rm蓹mi艧 daxilind蓹 Sizin 蓹sas funksiyas谋 proqram
b蓹yannam蓹 int 蓹sas int argc var, string, sonra kvadrat m枚t蓹riz蓹 argv
bu halda argc biridir.
陌ndi biz bunu qeyd nec蓹 bir 莽ox 艧eyi saymaq
istifad蓹莽i proqram ad谋na yaz谋lm谋艧.
proqram ad谋 枚z眉 sayar bir command-line arqument kimi.
>> Bel蓹 ki, g枚rm蓹mi艧 do臒ramaq dot bu halda, argc biridir.
Istifad蓹莽i 莽izgi g枚rm蓹mi艧 1024 CS50 tipli 蓹g蓹r bu halda argc command-line, at
眉莽 olard谋.
V蓹 biz yol, 莽眉nki bu bilirik ki strings aras谋nda b枚lg眉s眉
olub a艧kar bir yer, v蓹 ya ni艧an谋 var,
v蓹 ya onlar谋n aras谋nda kimi bir 艧ey.
Bel蓹 ki, a臒 kosmik h蓹r hans谋 m蓹bl蓹臒i, s枚zd蓹, d蓹y蓹rl蓹ri aras谋ndak谋 command-line tipli
Orada n蓹 q蓹d蓹r 莽ox g枚st蓹rir.
Bel蓹 ki, g枚rm蓹mi艧 Space 1024 yer do臒ramaq n枚qt蓹 CS50, argc, bu halda, 眉莽 edir.
>> Argv d蓹lil vektor edir.
Vector, yeri g蓹lmi艧k蓹n, yaln谋z bir s谋ra 眉莽眉n ba艧qa bir s枚z,
bu bir s谋ra edir ki strings saklar.
Element ba艧谋na bir string, strings ki, istifad蓹莽i h蓹qiq蓹t蓹n
command-line tipli Proqram edam edildi zaman.
陌ndi kimi bel蓹dir H蓹r hans谋 bir s谋ra il蓹, 蓹g蓹r
bizim m眉zakir蓹 geri Diziler, argv ilk element
h蓹mi艧蓹 蓹ld蓹 etm蓹k niyy蓹tind蓹dir argv kvadrat m枚t蓹riz蓹 s谋f谋r.
Bu ilk index var argv array.
Bel蓹 ki, will-- v蓹 蓹slind蓹, bu irad蓹 h蓹mi艧蓹 proqram谋 ad谋,
h蓹mi艧蓹 yerl蓹艧蓹n olunacaq argv kvadrat m枚t蓹riz蓹 s谋f谋r.
>> argv son element h蓹mi艧蓹 g枚r眉nt眉l蓹rini argv kvadrat m枚t蓹riz蓹d蓹 argc minus biri.
Niy蓹 g枚r眉rs眉n眉z?
Ne莽蓹 elementl蓹ri saxla Bu array var.
B蓹li, biz bu that-- bilirik elementl蓹rin argc n枚mr蓹si.
Istifad蓹莽i 眉莽 艧ey tipli 蓹g蓹r command-line, argc 眉莽 edir.
Amma c, biz 莽al谋艧谋r谋q Diziler il蓹, serial谋n h蓹r element,
bir v蓹 ya daha 莽ox g枚st蓹ricil蓹ri array, s谋f谋r da ba艧lan谋r.
Biz 眉莽 elementl蓹ri varsa, bizim array, biz argv s谋f谋r bir element var
argv bir bir element, argv iki v蓹 element.
Argv he莽 bir element yoxdur 眉莽, v蓹 枚l莽眉s眉 眉莽 bir s谋ra.
Bel蓹 ki, niy蓹 son var argv element h蓹mi艧蓹 bil蓹rsiniz
argv meydan谋nda 蓹ld蓹 etm蓹k M枚t蓹riz蓹d蓹 argc minus biridir.
>> Bel蓹 ki, istifad蓹莽i icra ed蓹c蓹yi g眉man ed蓹k Bu a艧a臒谋dak谋 kimi g枚rm蓹mi艧 proqram
onlar command-line dot yaz谋n 蓹g蓹r , g枚rm蓹mi艧 space 1024 space CS50 do臒ramaq
v蓹 h蓹r hans谋 s蓹b蓹bd蓹n biz art谋q bizim g枚rm蓹mi艧 proqram haz谋rlay谋b
bilirik v蓹 bu il蓹 i艧l蓹m蓹k 眉莽眉n command-line d蓹lill蓹ri.
Biz i艧l蓹y蓹rk蓹n biz 蓹vv蓹ll蓹r verm蓹di g枚rm蓹mi艧 problem bu,
lakin indi redakt蓹 etdik dey蓹k Bu ki, biz prosesi n蓹
bir 艧蓹kild蓹 command-line d蓹lill蓹ri.
Bu halda, s谋f谋r argv dot 莽izgi g枚rm蓹mi艧 edir.
Argv bir n蓹dir?
B蓹li, bu, sa臒 1024 var?
Bu 1024, lakin burada bir var h蓹qiq蓹t蓹n 蓹h蓹miyy蓹tli distinction--
Siz argv data n枚v眉 xat谋rlay谋rs谋n谋z?
>> Bu do臒ru, strings ma臒azalar?
Amma bu 1024 kimi g枚r眉n眉r tam d蓹y蓹ri.
Bu h蓹qiq蓹t蓹n vacibdir f蓹rq, v蓹 蓹slind蓹
bir 艧ey olmaq 眉莽眉n gedir ki, sonra probleml蓹ri qar艧谋la艧a bil蓹r.
Argv h蓹r 艧ey bir string kimi saxlan谋l谋r.
Bel蓹 argv bir m蓹zmunu var string bir s谋f谋r, iki, d枚rd,
bu d枚rd simvol ibar蓹t.
Bu istifad蓹莽i yazd谋臒谋n谋z kimi deyil bir s谋f谋r, iki, d枚rd
f蓹rdi m蓹ktublar v蓹 ya simvol kimi.
Bu, tam 1024 deyil v蓹 siz birba艧a bilm蓹z
int 1000 dey蓹r蓹k bu i艧, v蓹 ya daha int x argv bir minus 24 b蓹rab蓹rdir.
>> Daxil蓹n, siz ki, hesab bil蓹r OK, yax艧谋, bu, 1024 minus 24 var, kimi
bel蓹 x 1000 b蓹rab蓹rdir.
Amma 蓹slind蓹, ki, bel蓹 deyil argv bir string 莽眉nki.
string 1024.
陌ndi ola bil蓹r ki, bir funksiyas谋 var integers 眉莽眉n strings 莽evirm蓹k 眉莽眉n istifad蓹 olunur.
M蓹n sizin 眉莽眉n korlamaq deyil 陌ndi, amma Zamyla 蓹min蓹m
bu bar蓹d蓹 siz蓹 xo艧b蓹xt olacaq g蓹l蓹c蓹k problem 眉莽眉n g枚zden ge莽irmek.
Amma siz d蓹 tapa bil蓹rsiniz probleml蓹ri like-- b蓹han蓹
M蓹n蓹 funksiyalar谋 ki, ki, yaln谋z 50 bunu,
Siz kitab莽as谋 getm蓹k 蓹g蓹r Bir funksiyas谋 tapa bil蓹rsiniz ki,
Sizin 眉莽眉n bu d枚n眉艧眉m ed蓹c蓹k.
Ancaq yen蓹 d蓹, g枚zden ge莽irmek g蓹l蓹c蓹k problem,
Zamyla 眉莽眉n xo艧b蓹xt olacaq n蓹 funksiyas谋 siz蓹 x蓹b蓹r
bu 莽evirm蓹k olacaq tam 1024 string 1024.
>> B眉t眉n h眉quqlar, bel蓹 h蓹r蓹k蓹t.
Biz argv s谋f谋r 蓹hat蓹 etdik biz bir argv 蓹hat蓹 etdik.
N蓹 argv iki var?
CS50.
Ki, bir y蓹qin olduqca 枚z眉n眉 izahl谋 edir.
N蓹 argv 眉莽 var?
Yax艧谋 daha, biz h蓹qiq蓹t蓹n bilmir蓹m, sa臒?
Biz, 枚l莽眉s眉 眉莽 bir s谋ra var ki, ne莽蓹 elementl蓹ri istifad蓹莽i
command-line tipli, bel蓹 ki, biz 眉莽 argv getm蓹k 蓹g蓹r,
biz indi overstepping edirik bizim serial谋n h蓹ddi.
compiler, biz蓹 bunu bildirin ed蓹c蓹k he莽 bir intuitiv problem il蓹 var,
lakin h蓹qiq蓹t蓹n bax谋m谋ndan n蓹 olacaq ba艧, biz, h蓹qiq蓹t蓹n bilmir蓹m.
Bu n蓹 as谋l谋d谋r yadda艧 harada yerl蓹艧ir
argv 眉莽 olmas谋 g枚zl蓹nilir.
V蓹 bel蓹 ki, biz ba艧a bil蓹r 眉z q蓹zas谋z b蓹las谋z pulsuz 蓹ld蓹.
Daha 莽ox he莽-d蓹n, x眉sus蓹n d蓹 f蓹rqli olaraq argv 莽al谋艧谋r谋q
h蓹r hans谋 dig蓹r array ki, bizim proqram var
biz y蓹qin ki, 蓹ziyy蓹t olacaq bir seqmentasiya g眉nah. Bel蓹 ki, yen蓹,
h蓹ddini a艧mas谋ndan 蓹min ola Sizin seriallar谋n, x眉susil蓹 argv,
onun y眉ks蓹k d蓹r蓹c蓹si verilir Sizin proqramlar谋 蓹h蓹miyy蓹ti.
>> M蓹n Doug Lloyd edir蓹m.
Bu CS50 edir.