[? DAN ARMADARAS:] Salam, I [Ben? Dan Armadaras?].
Bu g眉n biz olacaq ay谋klama baxaraq.
Yaln谋z biz gedir b蓹zi 眉sullar谋 haqq谋nda dan谋艧maq,
h蓹m d蓹 baxmaq olacaq b蓹zi funksiyalar谋 olan
imkan CS50 IDE 蓹rzind蓹 Siz asanl谋qla bir proqram debug.
>> Yaln谋z bir n眉mun蓹sidir yanl谋艧 getm蓹k bil蓹r ki, bir 艧ey
v蓹 bu, h蓹qiq蓹t蓹n bir 艧ey biz art谋q 蓹vv蓹l g枚rd眉m ki.
Bu halda, bu C proqram ki, istifad蓹莽i bir tam q蓹bul
iki ay谋r谋r v蓹 t蓹min istifad蓹莽i geri 莽谋xd谋.
陌ndi biz g枚rd眉m n蓹 蓹vv蓹lki m眉hazir蓹l蓹r,
bu, h蓹qiq蓹t蓹n s蓹b蓹b olacaq bilirik ki, b枚lm蓹 probleml蓹rin x眉susi n枚vl蓹ri
biz t蓹k r蓹q蓹ml蓹r zaman.
>> X眉susil蓹, biz yaln谋z tullamaq laz谋md谋r Bu k蓹sir sonra bir 艧ey.
陌ndi biz bu bilirik ki, hal olmaq olur.
V蓹 biz bunu run 蓹g蓹r, biz t蓹sdiq ed蓹 bil蓹r t蓹rtib ilk 艧眉bh蓹l蓹r,.
V蓹 sonra, 莽al谋艧an v蓹 t蓹k sayda daxil.
>> Bu yeni bir 艧ey deyil.
Lakin bu, h蓹qiq蓹t蓹n bir deyil bir s蓹hv n眉mun蓹 ki,
b枚y眉k proqram谋 莽蓹r莽iv蓹sind蓹 m枚vcud ola bil蓹r ki, a艧a臒谋 izlemek 眉莽眉n 莽蓹tindir olur.
Biz n蓹 m蓹s蓹l蓹 bilirik baxmayaraq , m蓹s蓹l蓹nin 蓹sl mahiyy蓹ti deyil
m眉蓹yy蓹n etm蓹k 眉莽眉n 莽al谋艧谋r谋q bil蓹r x眉susi harada s蓹hv ba艧,
n蓹 ki, problem m眉蓹yy蓹n v蓹 sonra t蓹yinat.
Bel蓹 ki, n眉mun蓹 olaraq bu t蓹min bir 艧ey ola bil蓹r n蓹
biz art谋q bilirik, lakin d蓹fn edil蓹 bil蓹r ki, kod dig蓹r elementl蓹ri daxilind蓹.
>> Bel蓹 ki, bu dig蓹r m蓹nb蓹 a莽谋lmas谋 n眉mun蓹 kimi code fayl,
Bu b枚lm蓹 problem indi b枚y眉k proqram谋n谋n bir hiss蓹sidir.
H蓹l蓹 bir az ola bil蓹r, bit g枚st蓹rdi v蓹 biz
asanl谋qla ed蓹 bil蓹r x眉susil蓹, m眉蓹yy蓹n
biz yaln谋z bu m眉zakir蓹 edirik ild蓹n.
Amma biz bu ki, anlamaq bil蓹r problem daha b枚y眉k miqyasda m枚vcud ola bil蓹r.
>> M蓹n indi bu t蓹rtib v蓹 蓹g蓹r Bu, bir t蓹k n枚mr蓹sini daxil run,
biz d蓹qiq almaq deyil ki, g枚r蓹 bil蓹rsiniz g枚zl蓹diyimiz ola bil蓹r 莽谋xd谋.
Bu halda, biz dem蓹k olar ki, biz
n枚mr蓹l蓹r b眉t眉n saymaq ist蓹yir蓹m bir q蓹d蓹r b蓹zi x眉susi say谋.
V蓹 biz G枚r眉nd眉y眉 m蓹s蓹l蓹l蓹r bir s谋ra var
biz tipi edirik burada 蓹g蓹r, sad蓹c蓹, 0 1 biz 5 giri艧 t蓹min zaman.
>> Bel蓹 ki, biz art谋q bilirik ki, burada bir problem var.
Amma biz d蓹qiq bilmir蓹m bil蓹r bu m蓹s蓹l蓹 h蓹qiq蓹t蓹n m枚vcuddur.
Yollar谋ndan indi bir ki, biz bu d眉zeltmek 眉莽眉n c蓹hd ed蓹 bil蓹rsiniz
biz bir 艧ey deyil art谋q t蓹qdim edilmi艧dir.
Biz yaln谋z daha b枚y眉k miqyasda istifad蓹 ed蓹 bil蓹rsiniz.
>> Line 14-d蓹, biz Bu printf funksiyas谋,
olan AB艦 d枚vl蓹t 莽ap etm蓹y蓹 imkan verir m蓹lumat m眉xt蓹lif 蓹d蓹d.
Bu bir 艧ey deyil ki, Proqram 莽蓹r莽iv蓹sind蓹 leverage laz谋md谋r
d蓹qiq n蓹 anlamaq 眉莽眉n c蓹hd kodu m眉xt蓹lif x蓹tl蓹ri olur.
Bel蓹 ki, bu deyil, h蓹tta finala 莽谋xd谋 ki, biz, h蓹qiq蓹t蓹n,
h蓹yata 莽谋xarmaq ist蓹yirik Bu proqram, biz h蓹l蓹
bir debug ola bil蓹r ifad蓹l蓹ri biz
anlamaq 眉莽眉n c蓹hd ed蓹 bil蓹rsiniz d蓹qiq n蓹 bizim kodu daxilind蓹 ba艧 verir.
>> Bel蓹 ki, bu halda, m蓹n debug tag il蓹 printf.
Bu halda, bu Yaln谋z bir debug string
M蓹n-qoyaraq bel蓹 olur ki, deyil蓹m ki, m蓹nim kodu 莽谋x谋艧谋nda 莽ox ayd谋n
n蓹 m蓹n g枚st蓹rm蓹k ist蓹yir蓹m ki.
Say谋 burada v蓹 莽谋x谋艧 biz hesablan谋r ki.
>> Bu halda, m蓹n bil蓹r d蓹qiq bilm蓹k ist蓹yir蓹m
n蓹 蓹vv蓹l ba艧 v蓹 b蓹zi x眉susi hesablama sonra.
Bel蓹 ki, 蓹vv蓹l printf istifad蓹 ed蓹 bil蓹r v蓹 kodu ki, x蓹tt sonra.
Bu halda, m蓹n h蓹tta bil蓹r Bu bir az daha ayd谋n etm蓹k
蓹vv蓹l debug dey蓹r蓹k v蓹 debug bel蓹 sonra
M蓹n 枚z眉m眉 莽a艧d谋rmaq deyil ki, eyni baxmaq 莽ox x蓹tl蓹ri.
>> 陌ndi biz bu v蓹 run compile 蓹g蓹r Bu, yen蓹 be艧 kimi bir s谋ra daxil edin
Biz ki, g枚r蓹 bil蓹rsiniz 陌ndi 蓹vv蓹l v蓹 sonra 莽谋x谋艧
v蓹 biz bir ayd谋n h蓹yata yoxdur ki, tapa 艧枚b蓹 v蓹 ya ayd谋n s谋ra olan
biz, h蓹qiq蓹t蓹n, etm蓹k ist蓹yir蓹m ki.
陌ndi bu halda, bu h蓹qiq蓹t蓹n a莽谋q-a艧kar bir 莽谋xd谋.
Bu, h蓹qiq蓹t蓹n a莽谋q-a艧kar bir n蓹tic蓹si deyil ki, biz bu proqram谋 h蓹yata ist蓹yir蓹m.
>> V蓹 bu, t蓹krar edir az g枚st蓹rdi.
Lakin, b蓹lk蓹 d蓹, h蓹r 艧eyi bir ki, d蓹qiql蓹艧dirilm蓹si bildirib 蓹g蓹r biz bunu ed蓹 bil蓹r
biz bu b枚lm蓹k ist蓹yir蓹m ki, 2 v蓹 ba艧qa s枚zl蓹 1 var 蓹lav蓹,
biz sonra g眉nd蓹m蓹 蓹traf谋nda ist蓹yir蓹m biz bil蓹r ki, bilirik bil蓹r
Bu halda, o 艧ey.
陌ndi burada biz olacaq bilirik ki, Bizim yar谋ya say谋 1 蓹lav蓹 ed蓹.
>> Bu derleyece臒iz ed蓹k bu oldu臒unu t蓹sdiq
biz ist蓹diyiniz kimi davran谋r.
Biz 蓹vv蓹l oldu臒unu g枚r蓹 bil蓹rsiniz olan biz say谋 5 var.
Sonra, biz say谋 3 var Bizim d蓹qiql蓹艧dirilm蓹si g枚r蓹 ki,
Biz etm蓹k ist蓹yirdi n蓹.
Amma biz baxsaq Burada 莽谋x谋艧, biz
biz bir ola bil蓹r ki, g枚r蓹c蓹ksiniz deyil tamamil蓹 s蓹hv,
biz 0 bizim say谋 ba艧lay谋r ki.
>> 陌ndi yen蓹 bu bir 艧ey deyil biz ke莽mi艧d蓹 g枚rd眉k ki,
v蓹 biz kifay蓹t q蓹d蓹r asanl谋qla h蓹ll ed蓹 bil蓹rsiniz.
Lakin bu halda, biz d蓹 fayda 蓹ld蓹
printf b蓹yanat istifad蓹 birba艧a loop 眉莽眉n daxilind蓹
d蓹qiq bilm蓹k ki, s蓹hv ba艧 edildi.
Bel蓹 ki, printf hesabatlar谋 yard谋m 莽ox faydal谋
Siz m眉蓹yy蓹n, d蓹qiq m蓹nb蓹 kodu,
x眉susi s蓹hv meydana g蓹lir.
>> V蓹 bu h蓹yata ke莽irm蓹k 眉莽眉n d蓹 vacibdir ki, biz kodu yaz谋l谋 etdiyiniz kimi,
biz f蓹rziyy蓹l蓹r ola bil蓹r bir proqram v蓹ziyy蓹ti haqq谋nda.
Yoxsa biz f蓹rziyy蓹l蓹r ola bil蓹r Proqram谋n hans谋 hiss蓹si haqq谋nda
h蓹qiq蓹t蓹n do臒ru v蓹 ya yanl谋艧 sonra biz bu proqram谋 qurmaq kimi
v蓹 bir hiss蓹si etm蓹k m眉r蓹kk蓹b v蓹 b枚y眉k proqram
b蓹zi aspekti ki, h蓹yata ki, ki, h蓹qiq蓹t蓹n arabas谋 deyil.
>> Printf istifad蓹 h蓹qiq蓹t蓹n k枚m蓹k ed蓹 bil蓹r ki莽ild蓹 v蓹 m眉蓹yy蓹n
bir proqram rayonlar谋nda ki bil蓹r tam 艧蓹kild蓹 davran谋r ki, biz
Bizim f蓹rziyy蓹l蓹r 蓹sas谋nda, g枚zl蓹yirik.
Amma dig蓹r al蓹tl蓹r var M枚vcud, el蓹c蓹 d蓹,
biz蓹 r蓹q蓹m c蓹hd imkan verir burada bir s蓹hv meydana h蓹yata
v蓹 h蓹m莽inin, x眉susi 艧eyl蓹r Proqram谋n daxilind蓹 ba艧 verir.
>> Bel蓹 ki, istifad蓹 printf 莽ox deyil zaman faydal谋 ist蓹yirik
x眉susi sah蓹l蓹ri m眉蓹yy蓹n b蓹zi s蓹hv bir program.
Lakin bu da olur bir m眉dd蓹t sonra yorucu.
Bu halda, bu bir nisb蓹t蓹n sad蓹 proqram
bir v蓹 ya iki d蓹yi艧蓹nl蓹rin il蓹.
V蓹 bu bizim 眉莽眉n 莽ox asan olur bu d蓹yi艧蓹nl蓹rin d蓹y蓹ri 莽ap
b枚y眉k proqram谋 莽蓹r莽iv蓹sind蓹.
>> Amma biz ba艧qa bir ola bil蓹r bir 莽ox d蓹yi艧蓹nl蓹r var proqram谋.
V蓹 kifay蓹t q蓹d蓹r ola bil蓹r printf istifad蓹 眉莽眉n asand谋r
n蓹 ba艧 qiym蓹tl蓹ndirm蓹k 眉莽眉n c蓹hd bu d蓹yi艧蓹nl蓹rin h蓹r biri 眉莽眉n
proqram kimi h蓹yata ke莽irir.
M枚vcud bir proqram var ay谋klama proqram 莽a臒谋r谋b.
Bu halda, biz olacaq istifad蓹, gdb GNU ay谋klama, v蓹 ya
biz蓹 daxili yoxlamaq 眉莽眉n imkan verir daha bir proqram谋n 莽al谋艧malar谋
蓹trafl谋 yol.
>> Biz, h蓹qiq蓹t蓹n, icra ed蓹 bil蓹r Command line GDB
burada sad蓹c蓹 gdb v蓹 yazaraq biz debug ist蓹yir蓹m komanda.
Bu halda, saymaq.
陌ndi bu halda, biz bunu g枚r蓹 bil蓹rsiniz gdb deyir tez biz蓹 g蓹tirir.
V蓹 biz, h蓹qiq蓹t蓹n bil蓹r gdb 蓹mrl蓹ri icra
h蓹qiq蓹t蓹n icras谋na ba艧layacaq proqram谋 m眉蓹yy蓹n n枚qt蓹l蓹rd蓹 onu dayand谋rmaq,
d蓹yi艧蓹nl蓹rin qiym蓹tl蓹ndirm蓹k v蓹 d蓹yi艧蓹nl蓹rin yoxlayacaq ki,
Proqram d枚vl蓹t m枚vcud o anda,
v蓹 s v蓹 s.
Bu, bizim 眉莽眉n g眉c bir 莽ox t蓹min edir.
>> Amma bu yaln谋z bel蓹 olur ki, CS50 IDE
GUI v蓹 ya istifad蓹莽i t蓹min edir gdb 眉莽眉n interface ki,
Biz蓹 ehtiyac olmadan bunu etm蓹k 眉莽眉n imkan verir he莽 command line interface
ya da bel蓹.
Hesab edir蓹m ki, 蓹ld蓹 ed蓹 bil蓹rsiniz yol debug d眉ym蓹sini istifad蓹 edir
CS50 IDE 莽ox 眉st.
Art谋q ke莽mi艧d蓹, biz n蓹 var g枚r眉ld眉 biz komanda istifad蓹 edir
line t蓹rtib v蓹 sonra bir proqram 莽al谋艧t谋rmak 眉莽眉n.
>> debug d眉ym蓹sini yoxdur Bu add谋mlar谋n h蓹m d蓹.
Lakin bu da yeti艧dirm蓹k olacaq sa臒谋nda ay谋klama ni艧an谋
ki, biz蓹 bir s谋ra yoxlamaq 眉莽眉n imkan verir Proqram谋n x眉susiyy蓹tl蓹ri
kimi icra edilir.
M蓹n bu, debug bas谋n halda, bu q蓹d蓹r g蓹tir蓹c蓹k
konsolda yeni ni艧an谋 莽ox alt p蓹nc蓹r蓹.
>> V蓹 bu ni艧an谋 var ki, g枚r蓹 bil蓹rsiniz 莽ox 眉st b蓹zi m蓹lumat.
V蓹 biz 蓹sas蓹n bu iqnor ed蓹 bil蓹r.
Amma h蓹r biri biz qeyd etm蓹k ist蓹yir蓹m ki,
Bu n蓹tic蓹l蓹r ki, eyni 艧ey ki, biz
biz etm蓹k 莽al谋艧t谋rmak 眉莽眉n c蓹hd 蓹g蓹r almaq olard谋 Terminal p蓹nc蓹r蓹 C program.
>> Burada biz cingilti 莽al谋艧an ed蓹 bil蓹rsiniz, v蓹 bayraqlar谋 bir s谋ra var,
v蓹 bu, bizim count.c fayl t蓹rtib edilir Bu zaman se莽ilmi艧 ni艧an谋 oldu
M蓹n debug edib.
Bel蓹 ki, bu, 莽眉nki 莽ox faydal谋d谋r 陌ndi bu debug d眉ym蓹sini istifad蓹 ed蓹r蓹k,
biz eyni zamanda sonra t蓹rtib ed蓹 bil蓹rsiniz proqram icra ki, biz, h蓹qiq蓹t蓹n,
almaq ist蓹yirsinizs蓹.
>> Edir bayraqlar谋 One 蓹h蓹miyy蓹tli, bu halda,
Biz, h蓹qiq蓹t蓹n, istifad蓹 etdiyiniz uzun m眉dd蓹t
h蓹m d蓹 yaln谋z bir t蓹r蓹fd蓹n etdi waving [i艧itilemez], hans谋
burada bu biridir.
Cingilti, bu -ggdb3 deyir.
Bu halda, biz n蓹 var cingilti deyir蓹m, bizim compiler,
Biz proqram t蓹rtib etm蓹k ist蓹yir蓹m ki.
Lakin n蓹 t蓹min adl谋 simvolu m蓹lumat
compiler h蓹qiq蓹t蓹n 莽谋x谋艧谋 var, bel蓹 ki, 蓹sas m蓹lumat bir 莽ox
proqram谋 莽蓹r莽iv蓹sind蓹 olan.
>> Daha konkret des蓹k, say谋 M蓹n funksiyalar谋,
bu funksiyalar谋 adlar谋, d蓹yi艧蓹nl蓹r, n枚vl蓹ri
bu d蓹yi艧蓹nl蓹rin v蓹 m眉xt蓹lif var ki, ay谋klama yard谋m ba艧qa 艧eyl蓹r
枚z f蓹aliyy蓹tini h蓹yata ke莽irir.
陌ndi ba艧qa bir 艧ey yoxdur qeyd etm蓹k vacibdir
zaman 莽al谋艧an m眉zakir蓹 edirik Bu 艧蓹kild蓹 bir program.
>> Bu, h蓹qiq蓹t蓹n var Qeyd ed蓹k ki, Bizim konsol yeni ni艧an谋 t蓹rbiy蓹
alt boyunca.
Biz art谋q qar艧谋l谋ql谋 var birba艧a terminal p蓹nc蓹r蓹 il蓹.
Amma bu yeni ni艧an谋 var 蓹slind蓹 bir terminal p蓹nc蓹r蓹.
Bu, sad蓹c蓹 莽al谋艧an x眉susi biz yaratd谋q proqram谋.
>> In alt谋ndak谋 Qeyd ed蓹k ki, b蓹zi 莽谋x谋艧谋 il蓹 birl蓹艧m蓹si
compiler v蓹 gdb cingilti il蓹, biz 蓹sas蓹n iqnor ed蓹 bil蓹r ki,
Bu, h蓹qiq蓹t蓹n 莽谋x谋艧 g枚st蓹rir 莽ox alt proqram.
陌ndi h蓹yata ke莽irm蓹k 眉莽眉n vacibdir ki, h蓹qiq蓹t蓹n, bu bir p蓹nc蓹r蓹
siz蓹 g枚st蓹r蓹c蓹k Proqram 莽谋x谋艧
h蓹m d蓹 giri艧 q蓹bul ed蓹 bil蓹r ki, proqram 眉莽眉n, el蓹c蓹 d蓹.
>> Bel蓹 ki, deyir bildiri艧 bir s谋ra daxil edin
olan biz idi, eyni 莽谋x谋艧 edir 蓹vv蓹l terminal p蓹nc蓹r蓹 idi.
Amma indi bu yeni ni艧an谋 g枚st蓹rilir oldu.
M蓹n giri艧 bir s谋ra ed蓹 bil蓹rsiniz.
V蓹 bu, h蓹qiq蓹t蓹n olacaq funksiyas谋 biz g枚zl蓹m蓹k kimi
bizim debug g枚st蓹r蓹n, 莽谋x谋艧, buggy ola bil蓹r 莽谋x谋艧,
biz 蓹vv蓹l g枚rd眉m.
V蓹 莽ox alt, onu h蓹qiq蓹t蓹n b蓹zi 蓹lav蓹 莽谋x谋艧谋 var
脺DM yaln谋z s枚yl蓹y蓹r蓹k Bu proqram tamamlad谋.
>> 陌ndi bu g枚rd眉m vasit蓹sil蓹 x眉susi run,
x眉susil蓹 idi faydal谋 h蓹tta 莽眉nki
biz baxmayaraq ay谋klama menyu g蓹lir up, bu h蓹l蓹 莽al谋艧an proqram idi.
He莽 bir n枚qt蓹d蓹 h蓹qiq蓹t蓹n bunu bizim 眉莽眉n icra fasil蓹
b眉t眉n yoxlayacaq etm蓹k d蓹yi艧蓹nl蓹r i莽ind蓹.
Ba艧qa bir 艧ey yoxdur biz n蓹 etm蓹k laz谋md谋r ki,
biz ist蓹yirik ki, tan谋maq 眉莽眉n gdb almaq 眉莽眉n Proqram谋n icras谋 fasil蓹
v蓹 yaln谋z davam imkan Ad蓹t蓹n biz h蓹r hans谋 dig蓹r halda kimi.
>> Icras谋 fasil蓹 眉莽眉n, b蓹zi x眉susi x蓹ttind蓹,
Biz n蓹 yaratmaq laz谋md谋r fasil蓹 point 莽a臒谋r谋b.
V蓹 bir fasil蓹 point 莽ox asanl谋qla yarad谋lm谋艧d谋r Bu si莽an alaraq IDE CS50
v蓹 sol birba艧a t谋klayarak b蓹zi x眉susi line s谋ra.
M蓹n bunu bir d蓹f蓹, bir q谋rm谋z谋 dot g枚st蓹rir ki, g枚r眉n眉r
ki, x蓹tt art谋q bir fasil蓹 n枚qt蓹sidir.
>> V蓹 m蓹n gdb run n枚vb蓹ti d蓹f蓹 onu ki, break n枚qt蓹d蓹 icra dayanacaq
bu kodu ki, x蓹tt 莽atd谋qda.
陌ndi bu 蓹h蓹miyy蓹tli bir 艧ey h蓹yata ke莽irm蓹k 眉莽眉n
bu deyil ki, m眉tl蓹q hal kod h蓹r line
h蓹qiq蓹t蓹n eri艧ilebilir.
M蓹n bir funksiyas谋 yaratmaq olsayd谋 burada, misal etibars谋z f 眉莽眉n
v蓹 yaln谋z salam burada 莽ap x蓹tt etm蓹k v眉cuda M蓹n bu funksiyas谋 z蓹ng he莽 蓹g蓹r,
Bu halda olacaq ki, M蓹n burada bir fasil蓹 n枚qt蓹sini qurmaq 蓹g蓹r,
funksiyas谋 adlan谋r he莽 vaxt.
Ona g枚r蓹 d蓹, bu X眉susil蓹 break point
h蓹qiq蓹t蓹n fasil蓹 he莽 vaxt Proqram谋n icras谋.
>> Bel蓹 ki, m蓹n do臒ru yaratmaq ki, bildirin kodu b蓹zi x蓹ttinin bir fasil蓹 point
h蓹qiq蓹t蓹n icra olunacaq.
陌ndi bu halda, bu 蓹sas funksiyas谋 ilk line.
Bel蓹 ki, 蓹lb蓹tt蓹 bel蓹 olacaq ki, m蓹n icras谋 ba艧lamaq kimi tezlikl蓹,
ilk line 蓹ld蓹 olunacaq.
GDB icras谋 fasil蓹 olacaq.
V蓹 sonra, m蓹n olacaq ay谋klama il蓹 qar艧谋l谋ql谋.
>> Siz 莽ox x蓹tl蓹ri bil蓹rsiniz 茝g蓹r ist蓹yirsinizs蓹, breakpoints.
Biz d蓹 bir x蓹tt yarada burada kodu bu seqmentind蓹
ki, 蓹ld蓹 he莽 vaxt.
V蓹 biz d蓹 daha a艧a臒谋da bir bil蓹rsiniz.
s蓹b蓹bi, biz alaca臒谋q bunu ist蓹yir蓹m
daha az getm蓹k yaln谋z bir anda 蓹trafl谋.
Indi 眉莽眉n, bel蓹 ki, m蓹n蓹 yaln谋z aradan imkan bu 蓹lav蓹 break xal
Biz n蓹 baxmaq olar ki, M蓹n bir fasil蓹 var
M蓹nim proqram谋 point.
M蓹n ki, b蓹zi Bu proqram d蓹yi艧iklikl蓹r.
M蓹n onu saxlamaq laz谋md谋r.
M蓹n debug bas谋n m蓹n ki, t蓹rtib ba艧lamaq v蓹 sonra
ay谋klama icras谋.
>> Biz g枚r眉r眉k ki, anlar, sonra biz fasil蓹 kimi se莽ilmi艧 line
point sar谋 qeyd olunur.
Biz d蓹 ki, qeyd ed蓹 bil蓹r debug panel yuxar谋 sa臒
fasil蓹 icon 莽谋xd谋 ki, bir az play icon.
Bu fasil蓹 o dem蓹kdir ki, icra, bu halda.
V蓹 Play d眉ym蓹sin蓹 olard谋 vuraraq Biz蓹 icras谋 davam imkan verir
x眉susi n枚qt蓹d蓹.
>> Dig蓹r bir ne莽蓹 var ki, qeyd Bu debug panel m枚vcud d眉ym蓹l蓹ri,
h蓹m莽inin.
M蓹n蓹 imkan verir ki, art谋q add谋m kodu ki, bir x蓹tt icra
v蓹 ki, x蓹tti 眉z蓹rind蓹 add谋m Bu halda n枚vb蓹ti bir,
printf ki, dem蓹k ki, 艧蓹rh icra edilir.
V蓹 sonra fasil蓹 olacaq bel蓹 kimi line 13-d蓹 icra.
>> V蓹 h蓹m莽inin bir add谋m var funksiyas谋 daxil olan
M蓹n dig蓹r yaratd谋q 蓹g蓹r faydal谋 ba艧qa m蓹nb蓹 kodu f蓹aliyy蓹t g枚st蓹rir.
M蓹n daxil add谋m ist蓹yir蓹m bu funksiyalar谋 莽ox
b眉t枚vl眉kd蓹 funksiyas谋 yerin蓹.
Amma biz add谋m daha baxmaq laz谋md谋r yaln谋z bir anda funksiyas谋 daxil.
陌ndi b蓹zi ba艧qa 艧eyl蓹r hiss ki, h蓹qiq蓹t蓹n bu debug panel 蓹rzind蓹 m枚vcuddur.
>> Biz bu panel adl谋 var olan biz蓹 g枚st蓹rir, y谋臒谋n谋 z蓹ng
m蓹hz biz burada.
Bu halda, biz daxili 蓹sas funksiyas谋.
Bizim script count.c adlan谋r.
V蓹 biz olmaq 眉莽眉n n蓹 line 13, s眉tun bir olan
n蓹 qeyd region d蓹qiq deyil m蓹nb蓹 kodu, el蓹c蓹 d蓹 g枚st蓹rir.
>> 陌ndi bu da g枚st蓹rir ki, qeyd yerli d蓹yi艧蓹n alt谋nda
d蓹yi艧蓹nl蓹rin b眉t眉n Bu funksiya daxilind蓹 m枚vcud.
Qeyd etm蓹k vacibdir d蓹yi艧蓹nl蓹rin b眉t眉n
bu yerli d蓹yi艧蓹n g枚r眉n眉r bir funksiyas谋 蓹rzind蓹 ikib枚lm蓹li,
h蓹tta m眉蓹yy蓹n edilir 蓹vv蓹l.
Biz bir d蓹yi艧蓹n var ki, burada g枚r蓹 bil蓹rsiniz num adl谋 0 bir default d蓹y蓹ri var,
v蓹 n枚v眉 int edir.
>> 陌ndi biz, h蓹qiq蓹t蓹n ba艧lamaq 蓹vv蓹l bu d蓹yi艧蓹nl蓹rin b眉t眉n,
biz m眉tl蓹q deyilik 0 d蓹y蓹r g枚rm蓹k 眉莽眉n z蓹man蓹t.
V蓹 dig蓹r edamlar as谋l谋 olaraq Siz ifa ki,
v蓹 yadda艧 zaman d枚vl蓹t Siz, h蓹qiq蓹t蓹n, bu proqram run,
Siz ki, tapa bil蓹rsiniz 0 d蓹y蓹rl蓹r g枚rm眉r蓹m
v蓹 蓹v蓹zin蓹, b蓹zi dig蓹r crazy n枚mr蓹l蓹ri.
>> Amma bu bar蓹d蓹 narahat olmay谋n.
Bu q蓹d蓹r m眉vafiq niyy蓹tind蓹 deyil Siz, h蓹qiq蓹t蓹n, d蓹y蓹ri ba艧lamaq.
陌ndi bu halda, biz g枚r眉r眉k ki, M蓹n b蓹zi n蓹tic蓹l蓹r realla艧d谋rd谋q.
M蓹n indi icras谋 durdurulmu艧 al谋ram.
Amma bu halda, n蓹 M蓹n, h蓹qiq蓹t蓹n, bunu ist蓹yir蓹m
陌ndi bu x蓹tti 眉z蓹rind蓹 add谋m deyil kod m蓹n, h蓹qiq蓹t蓹n bil蓹r ki,
ki, int 眉莽眉n istifad蓹莽i sor臒u ki, Biz proqram谋 istifad蓹 etm蓹k ist蓹yirik.
>> 陌ndi bu halda, zaman M蓹n bildiri艧 眉z蓹rind蓹 add谋m edib
ki, daha 莽ox Pause v蓹 ya Resume d眉ym蓹sini Pause d眉ym蓹sin蓹 d蓹yi艧ib
Bu kodu h蓹qiq蓹t蓹n icra olunur.
N蓹 ba艧 verir 陌ndi bu ki,
daxil bizim 眉莽眉n b蓹zi m蓹lumatlar谋 g枚zl蓹yir Biz 莽谋x谋艧 m蓹tni il蓹 ed蓹 bil蓹rsiniz kimi
莽ox alt.
>> Bel蓹 ki, indi, bu h蓹qiq蓹t蓹n durdurulmu艧 deyil,
h蓹tta baxmayaraq ki, sort g枚r眉n眉r he莽 bir 艧ey ba艧 莽眉nki olmal谋d谋r.
Amma bu yaln谋z bel蓹 olur ki, line 13 m蓹nim x眉susi halda,
M蓹n istifad蓹莽i giri艧i g枚zl蓹yir蓹m.
V蓹 bel蓹 GDB yoxlamaq m眉mk眉n deyil bu kimi bir proqram 莽al谋艧谋r.
>> M蓹n daxil indi n枚vb蓹ti d蓹f蓹 input-- m蓹n ki say谋 5 daxil olacaq
biz g枚rd眉k kimi hit qay谋t past-- v蓹 biz
ki, d蓹rhal gdb duraklamalar qeyd v蓹 yen蓹, n枚vb蓹ti line vur臒ulay谋r.
Amma, indi fark Bizim bir d蓹y蓹r giren n蓹tic蓹sind蓹,
biz daxili ki, d蓹y蓹ri yenil蓹nir Bizim yerli d蓹yi艧蓹nl蓹rin, hans谋
d蓹qiq bilm蓹k 眉莽眉n 莽ox faydal谋d谋r n蓹 ki say谋 yadda艧谋nda idi.
>> 陌ndi bu proqram davam imkan bil蓹r onun icras谋 sonuna q蓹d蓹r oynayan
Resume vuraraq.
Biz 莽ox tez oldu臒unu g枚r蓹 bil蓹rsiniz Proqram r蓹ngi icra edir
Eyni 莽谋x谋艧 ki, biz 蓹vv蓹l idi, ay谋klama ba臒lay谋r,
v蓹 indi bu proqram tamamil蓹 dayand谋.
>> M蓹n g枚st蓹rm蓹k 眉莽眉n g枚r蓹n m蓹qs蓹dl蓹ri n蓹
biz, h蓹qiq蓹t蓹n, CV hit zaman ba艧 verir.
Amma biz, h蓹qiq蓹t蓹n, gedir Bu proqram geri getm蓹k ist蓹yir蓹m
biz debug 眉莽眉n c蓹hd ed蓹 bil蓹rsiniz, bel蓹 ki, d蓹qiq n蓹 ba艧.
M蓹n ay谋klama istifad蓹 edir蓹m ki, indi m蓹n bil蓹r bu debug printf hesabatlar谋 laz谋m deyil.
>> M蓹n kimi m蓹n onlar谋 aradan qald谋r谋lmas谋 bil蓹r 陌ndi yaln谋z bizim sad蓹 kodu geri
biz bir an 蓹vv蓹l idi.
陌ndi saxlamaq proqram v蓹 onu icra,
Bu, bir daha ki, ilkin ged蓹c蓹k M蓹n line 11-d蓹 idi point pozub.
M蓹n yoxlamaq ed蓹 bil蓹rsiniz M蓹nim d蓹yi艧蓹nl蓹r M蓹n bunu ist蓹yir蓹m.
>> Bu, sad蓹c蓹 bu ki, ba艧 hiss蓹si, 莽ox maraql谋 deyil
V蓹 m蓹n gedir蓹m bilirik ki, Bu b蓹yanat 莽ap.
Bir s谋ra daxil edin.
V蓹 sonra, m蓹n gedir蓹m bilirik ki, ki tam 眉莽眉n istifad蓹莽i xahi艧.
Bel蓹 ki, b蓹lk蓹, m蓹n, h蓹qiq蓹t蓹n, h蓹r蓹k蓹t etm蓹k ist蓹yir蓹m m蓹nim a艧a臒谋 bir az daha point pozub.
>> Siz fasil蓹 xal ed蓹 bil蓹rsiniz birba艧a, yen蓹 t谋klayarak
ki, x蓹tt say谋 sol.
Q谋rm谋z谋 dot ifad蓹 ed蓹n yox olacaq ki, break point indi getdi ki.
陌ndi bu halda, icra durdurulmu艧 edilmi艧dir.
V蓹 bel蓹 ki, h蓹qiq蓹t蓹n niyy蓹tind蓹 deyil x眉susi halda davam.
Amma bir fasil蓹 bil蓹rsiniz bir az sonra qeyd.
>> V蓹 m蓹n indi davam zaman m蓹nim indeksi, davam v蓹 dem蓹k olacaq
ki, break k蓹sir point.
Yen蓹 Resume edib.
Bir 艧ey ba艧 kimi g枚r眉nm眉r.
Amma ki, m蓹nim, 莽眉nki kodu daxil g枚zl蓹yir.
M蓹n bir s谋ra 5 daxil Enter ed蓹c蓹k 陌ndi n枚vb蓹ti fasil蓹 point t蓹艧kil olunacaq.
>> 陌ndi bu halda, bu kod x蓹tt
ki, 蓹vv蓹l, biz bilirdik buggy oldu.
Bel蓹 ki, n蓹 qiym蓹tl蓹ndirm蓹k imkan vaxt bu n枚qt蓹d蓹.
Bir x蓹tt qeyd zaman, bu line h蓹l蓹 icra edilm蓹yib.
Bel蓹 ki, bu halda, biz g枚r蓹 bil蓹rsiniz M蓹n bir s谋ra var ki
M蓹n adl谋 tam var bir d蓹y蓹r 5 var num.
M蓹n h蓹yata gedir蓹m ki say谋 b蓹zi riyaziyyat.
>> Hesab edir蓹m ki, art谋q add谋m varsa, biz num 眉莽眉n ki, d蓹y蓹ri qeyd
uy臒un olaraq d蓹yi艧di Biz, h蓹qiq蓹t蓹n, etdiyiniz hesab.
陌ndi biz var ki, daxili loop 眉莽眉n bu
v蓹 ya indi loop 眉莽眉n 枚z眉 vurgulan谋r,
Biz yeni bir var ki, g枚r蓹c蓹ksiniz d蓹yi艧蓹n ki i adlan谋r
loop 眉莽眉n istifad蓹 etm蓹k niyy蓹tind蓹dir.
>> 陌ndi m蓹n 蓹vv蓹l xat谋rlay谋ram b蓹z蓹n oldu臒unu qeyd
crazy bir n枚v g枚rm蓹k olacaq ki, say谋 蓹vv蓹l default kimi n枚mr蓹l蓹ri
v蓹 ya d蓹yi艧蓹n deyil h蓹qiq蓹t蓹n ba艧lat谋lm谋艧.
Biz d蓹qiq oldu臒unu g枚r蓹 bil蓹rsiniz burada bu d蓹yi艧蓹n
deyil ki, i adl谋 h蓹l蓹 ba艧lat谋lmad谋
vur臒ulayaraq zaman谋.
Amma biz b蓹zi s谋ra oldu臒unu g枚r蓹 bil蓹rsiniz biz, h蓹qiq蓹t蓹n, g枚zl蓹m蓹k deyil ki,.
>> H蓹r 艧ey yax艧谋d谋r.
Bu bar蓹d蓹 narahat olmay谋n Biz, h蓹qiq蓹t蓹n, 莽眉nki
I q蓹d蓹r ki say谋 ba艧lat谋lm谋艧 Bu x蓹tt v蓹 d蓹y蓹rind蓹n art谋q add谋m
i d蓹y蓹ri 1 ba艧lat谋lm谋艧 edilmi艧dir.
Bel蓹 ki, h蓹qiq蓹t蓹n g枚rm蓹k halda, 眉z蓹rind蓹 add谋m ed蓹k.
Biz indi g枚r眉r眉k ki, line edam edilmi艧dir.
V蓹 biz indi i艧谋qland谋r谋lmas谋 Bu printf x蓹tt.
>> V蓹 biz indi nec蓹 d蓹y蓹rl蓹rimizi g枚r蓹 bil蓹rsiniz i v蓹 3 zamanla d蓹yi艧ib.
Bu, 蓹slind蓹, n蓹 眉莽眉n 莽ox faydal谋d谋r, d蓹f蓹l蓹rl蓹 x蓹tl蓹ri 眉z蓹rind蓹 add谋m deyil.
V蓹 n蓹 h蓹qiq蓹t蓹n tapa bil蓹rsiniz Sizin 眉莽眉n loop daxilind蓹 olur
v蓹 n蓹 olur daxili loop 眉莽眉n ki, d蓹yi艧蓹nl蓹rin
ki, proqram icra kimi bir zaman bir add谋m ba艧 verir.
>> 陌ndi bu n枚qt蓹d蓹, m蓹n yaln谋z kifay蓹t q蓹d蓹r 眉z蓹rind蓹 莽蓹kildi
陌ndi m蓹nim Proqram谋n sonunda edir蓹m ki.
Hesab edir蓹m ki, art谋q add谋m, bu, olacaq h蓹qiq蓹t蓹n icras谋n谋 dayand谋rmaq
biz ke莽mi艧d蓹 g枚rd眉y眉m眉z kimi.
Bel蓹 ki, m蓹n蓹 yen蓹, bu yenid蓹n ba艧lad谋n imkan M蓹n ba艧qa bir 艧ey qeyd ed蓹 bil蓹rsiniz ki,
h蓹m莽inin.
>> Bu halda, bu 陌ndi yen蓹 m蓹ni xahi艧,
bir s谋ra 眉莽眉n hans谋 M蓹n yen蓹 gir蓹c蓹k.
Amma bu d蓹f蓹 m蓹n daxil gedir蓹m daha b枚y眉k bir s谋ra ki, loop 眉莽眉n
d蓹f蓹 t蓹krarlamaq ed蓹c蓹k.
Bu halda, m蓹n gedir蓹m 11 bir d蓹y蓹r daxil edin.
>> 陌ndi daha m眉蓹yy蓹n ist蓹diyiniz 莽眉nki line 15 fasil蓹 point,
bu x蓹tt vur臒ulamaq olacaq.
Biz g枚r眉r眉k ki, bizim 11 sayl谋 d眉zg眉n deyil
Bizim yerli d蓹yi艧蓹nl蓹rin t蓹msil.
Biz indi ki, art谋q ed蓹 bil蓹rsiniz g眉cl蓹ndirm蓹kl蓹 i bizim d蓹y蓹ri n蓹 olur bax谋n
biz loop 眉莽眉n bu daxilind蓹 davam kimi.
Bu h蓹r zaman incremented olur loop 眉莽眉n 眉st olmaq.
>> 艦eyi bir 陌ndi bil蓹r icras谋 zaman谋 n蓹 etm蓹k faydal谋 ola
Bu proqram谋n h蓹qiq蓹t蓹n m蓹nim 眉莽眉n g枚rm蓹k 眉莽眉n d蓹yi艧蓹nl蓹rin midstream d蓹yi艧蓹
n蓹 m蓹nim proqram olur.
Bu halda, m蓹n, h蓹qiq蓹t蓹n, bil蓹rsiniz ikiqat d蓹y蓹rini bas谋n.
Bir m蓹tn sah蓹sind蓹 olur ki, g枚r眉rs眉n眉z.
>> 陌ndi m眉xt蓹lif daxil ed蓹 bil蓹rsiniz c蓹mi d蓹y蓹r
m蓹nim proqram davran谋r nec蓹 Hesab edir蓹m ki, d蓹yi艧蓹n d蓹yi艧ib etdiyiniz zaman.
陌ndi bu halda, d蓹yi艧蓹n i indi d蓹y蓹ri 10 edir.
Amma proqram h蓹l蓹 d蓹 icra durduruldu.
M蓹n art谋q add谋m, m蓹n ki, g枚r蓹c蓹ksiniz M蓹n 10 kimi daxil d蓹y蓹r i,
, num d蓹y蓹ri daha b枚y眉k deyil d蓹rhal loop 眉莽眉n s蓹b蓹b
icra dayand谋rmaq.
>> 陌ndi ki, yaln谋z deyil, s蓹b蓹bi siz ki
yerd蓹 d蓹yi艧蓹n d蓹yi艧dirm蓹k ist蓹diyiniz.
Siz, h蓹qiq蓹t蓹n, ist蓹diyiniz bil蓹r onu bel蓹 d蓹yi艧dirm蓹k 眉莽眉n c蓹hd
Siz davam ed蓹 bil蓹r ki, bir loop icras谋
v蓹 ya ki, d蓹yi艧蓹 bil蓹rsiniz 蓹vv蓹l b蓹zi d蓹y蓹ri
hesab b蓹zi x眉susi d蓹sti 莽at谋r Siz yerin蓹 yetirm蓹k 眉莽眉n haqq谋nda olduqlar谋n谋 bildirib.
>> Bel蓹 ki, indi biz, h蓹qiq蓹t蓹n, d蓹yi艧dirm蓹k proqram kimi i d蓹y蓹ri, icra edildi
Bu loop 眉莽眉n 莽谋xmaq 眉莽眉n s蓹b蓹b vaxt谋ndan 蓹vv蓹l i, q蓹fl蓹t蓹n, 莽眉nki
d蓹y蓹ri daha b枚y眉k olmaq oldu Say, loop 眉莽眉n, y蓹ni
art谋q icra etm蓹k laz谋md谋r.
Bundan 蓹lav蓹, bu oldu biz i d蓹y蓹ri d蓹yi艧ib i艧i
line 17 qeyd zaman, vaxt n枚qt蓹si oldu ki,
ki loop icras谋 眉莽眉n h蓹qiq蓹t蓹n qiym蓹tl蓹ndirilir edilib.
>> M蓹n d蓹y蓹r d蓹yi艧ib 蓹g蓹r i f蓹rqli bir x蓹tt 眉zr蓹, 19 dem蓹k
Biz m眉xt蓹lif g枚rm眉艧蓹m ki davran谋艧 line 19 olard谋, 莽眉nki
loop 蓹vv蓹l yerin蓹 v蓹ziyy蓹ti yenid蓹n qiym蓹tl蓹ndirilmi艧dir edilmi艧dir.
陌ndi bu n枚qt蓹d蓹, m蓹n yen蓹, Bu proqram谋n sonunda.
V蓹 m蓹n bu davam imkan bil蓹r m蓹nim proqram t蓹bii 莽谋xmaq 眉莽眉n imkan verir.
Amma 艧eyi bir ne莽蓹 var g枚t眉rmek 眉莽眉n vacibdir ki,
bu m眉zakir蓹.
Siz qiym蓹tl蓹ndirm蓹k laz谋md谋r 脰z f蓹rziyy蓹l蓹r
haqq谋nda code davran谋r edilm蓹lidir.
H蓹r hans谋 bir vaxt b蓹zi par莽a hesab edir蓹m ki, Bildiyiniz code i艧 olur ki,
ki, getm蓹k 眉莽眉n q谋rm谋z谋 bayraq ola bil蓹r geri v蓹 qiym蓹tl蓹ndirm蓹k, v蓹 蓹min olun
Sizin ehtimal ki, nec蓹 ki code f蓹aliyy蓹t g枚st蓹rir
n蓹 q蓹d蓹r h蓹qiq蓹t蓹n do臒rudur Sizin m蓹nb蓹 kodu dil蓹 g蓹tirdi.
>> Amma n枚qt蓹sin蓹 daha idi, biz ay谋klama istifad蓹 ed蓹rk蓹n,
Siz breakpoints qoya bil蓹r kodu m眉xt蓹lif x蓹tl蓹ri,
眉莽眉n ay谋klama s蓹b蓹b olan o x蓹tl蓹ri h蓹r icras谋 fasil蓹
bel蓹 ki, qiym蓹tl蓹ndirm蓹k olar ki, yadda艧 v蓹 ya h蓹tta yerd蓹 d蓹yi艧ir.
V蓹 yen蓹, siz unutmay谋n ki, 脟ox breakpoints yaratmaq ki,
d蓹 icras谋 davam ed蓹 bil蓹rsiniz, ke莽m蓹k Kodu geni艧 hiss蓹l蓹rind蓹n 眉z蓹rind蓹,
v蓹 avtomatik olaraq fasil蓹 laz谋md谋r n枚vb蓹ti fasil蓹 n枚qt蓹d蓹.
>> H蓹qiq蓹t蓹n daha inki艧af etmi艧 var ay谋klama x眉susiyy蓹tl蓹ri, el蓹c蓹 d蓹.
Amma biz siz蓹 m眉raci蓹t etm蓹k laz谋md谋r bir sonrak谋 video
h蓹qiq蓹t蓹n nec蓹 ayr谋 tease 眉莽眉n x眉susil蓹 funksiyalar谋 istifad蓹 etm蓹k.
陌ndi, t蓹艧蓹kk眉r edir蓹m izl蓹m蓹k 眉莽眉n 莽ox.
V蓹 u臒urlar ay谋klama.