>> JASON Hirschhorn: Welcome A5, h蓹r k蓹sin.
Biz qar艧谋m谋zda bir maraql谋 h蓹ft蓹 bir 莽ox yeni var, 莽眉nki 蓹sas蓹n
Bu otaqda 眉zl蓹艧ir.
Bu g枚z蓹l deyil.
Siz bir 莽ox q蓹za burada, h蓹tta yax艧谋d谋r.
Bel蓹 ki, in艧allah biz蓹 qo艧ulmaq saxlamaq laz谋md谋r.
>> Bu h蓹ft蓹 s蓹rf etm蓹k olacaq hiss蓹sinin toplu
viktorina 眉莽眉n haz谋rla艧谋r.
G眉ndemimizde ba艧谋na Bel蓹likl蓹, biz dan谋艧maq olacaq sinfi 眉莽眉n resurslar谋 haqq谋nda bir az,
h蓹m d蓹 viktorina 眉莽眉n, v蓹 sonra, yen蓹, sinif s枚hb蓹t hiss蓹sini s蓹rf
suallar.
Biz cavab tamamlay谋n Sizin suallar, v蓹 ya 蓹g蓹r suallar
t蓹bii, b蓹zi kodla艧d谋rma biz蓹 g蓹tirib midterms n眉mun蓹 probleml蓹ri var
biz b枚lm蓹sind蓹 canl谋 kod ki, ke莽mi艧 birlikd蓹 d蓹 b蓹zi dig蓹r yeti艧dirm蓹k ki,
蓹hat蓹 yax艧谋 m枚vzular.
>> Bel蓹 ki, ilk, biz vasit蓹sil蓹 getdi etdiyiniz kimi siz蓹 xat谋rlatmaq h蓹ft蓹 son bir ne莽蓹
u艧aqlar, ehtiyatlar谋n bir ton var Bu kurs 眉莽眉n m枚vcuddur.
Onlar谋n bir 莽oxu olduqca faydal谋 olacaq siz蓹 davam kimi
, viktorina 0 枚yr蓹nm蓹k 莽眉nki bu 莽蓹r艧蓹nb蓹 ax艧am谋 g眉nortadan sonra var.
Bel蓹 ki, sizin ham谋n谋z谋 olmu艧dur bir az oxuyur.
>> M眉hazir蓹 qeydl蓹ri v蓹 m蓹nb蓹 var kodu laz谋md谋r ki,
m眉tl蓹q kontrol.
艦ort bax谋n.
Study.cs50.net oldu.
V蓹 sonra, bir n枚mr蓹li, a艧a臒谋dak谋 dig蓹r resurslar谋n.
>> Yen蓹 viktorina 0 sabah 1 saat.
茝g蓹r siz art谋q yapmad谋ysan谋z varsa, yoxlamaq haqq谋nda haqq谋nda Quiz 0 s蓹n蓹din
anlamaq 眉莽眉n kurs ana Siz viktorina alaraq oldu臒unuz.
Viktorina 1:10 ba艧lay谋r v蓹 70 d蓹qiq蓹 sonra ba艧a 莽at谋r.
Siz 1:10 sonra g枚st蓹rm蓹k Bel蓹 ki, siz ki, 莽ox az d蓹qiq蓹 almaq 眉莽眉n gedir
70 viktorina almaq daha.
Bel蓹 ki, siz vaxt orada etdiyiniz 蓹min olun.
Siz uzad谋lmas谋 t蓹l蓹b蓹 etdiyiniz v蓹 ya varsa dig蓹r test m眉lahiz蓹l蓹r, bu
1 saat sabah ola bil蓹r.
Ancaq yen蓹 d蓹, haqq谋nda Viktorina 0 yoxlamaq Siz zaman bilm蓹k 眉莽眉n s蓹n蓹d
Siz viktorina alaraq edirik.
M蓹n burada 75 d蓹qiq蓹 yazd谋.
M蓹n 70, do臒ru deyil d眉艧眉n眉r蓹m.
>> Bu h蓹ft蓹 0 b眉t眉n material 蓹hat蓹 edir 脟蓹r艧蓹nb蓹 g眉n眉 ke莽蓹n h蓹ft蓹 m眉hazir蓹.
V蓹 yen蓹 bu viktorina 眉莽眉n ki, ba艧谋na s蓹n蓹d, bir iki-t蓹r蓹fli almaq v蓹 8
Siz ki, ka臒谋z 11 hesabat谋 1/2 viktorina 蓹rzind蓹 qeydl蓹ri kimi istifad蓹 etm蓹k.
Bir 莽ox insanlar, insanlar谋n 莽oxu var 蓹g蓹r a艧kar ki, vahid 蓹n faydal谋 yolu
viktorina 眉莽眉n 枚yr蓹nm蓹k 眉莽眉n bir i艧 hesabat谋, bir etm蓹k
枚z bir-sider.
Bel蓹 ki, ke莽mi艧 olanlar谋 baxsaq ke莽mi艧 olanlar谋 g枚rd眉k.
G枚rm蓹k 眉莽眉n dostlar谋 眉莽眉n 莽ata n蓹 茝g蓹r onlar haqq谋nda qoyulmas谋 edirik.
>> Amma hands-a艧a臒谋, siz 蓹n yax艧谋 yoldur t蓹hsil h蓹r 艧ey il蓹 getm蓹k v蓹
n蓹 olmal谋d谋r v蓹 ya olmal谋d谋r 眉莽眉n yava艧-yava艧 a艧a臒谋 ki hesabat谋nda aid deyil
ka臒谋z, yaln谋z bir h蓹qiq蓹t蓹n var, 莽眉nki Sizi 蓹min etm蓹k 眉莽眉n yararl谋 bir yol
Siz h蓹r 艧ey ke莽ir v蓹 edirik bu bir tan谋艧l谋q var.
脟oxu, biz tapmaq baxmayaraq, onlar ka臒谋z hesabat谋 sa臒 oturan var
viktorina onlar谋n yan谋nda, m眉raci蓹t etmir bu, yen蓹, 莽ox, 莽眉nki
m蓹lumat ke莽ir prosesi onlar谋 枚yr蓹nm蓹k k枚m蓹k etmi艧dir.
>> He莽 bir sual谋n谋z varm谋 viktorina 0 haqq谋nda?
Ham谋 var -
M蓹n 蓹lind蓹 bir 艧ou etm蓹k niyy蓹tind蓹 deyil蓹m.
Mind he莽 vaxt.
Kim xahi艧 gedirdi 枚yr蓹nilm蓹si ba艧lad谋.
Amma m蓹n siz蓹 etm蓹k ist蓹mir蓹m b眉t眉n 蓹ll蓹ri qald谋rmaq deyil.
M蓹n bel蓹 kimi - b蓹li, Avi, davam.
>> AVI: N蓹 faydal谋 bir 艧ey ola bil蓹r bir 莽a臒r谋 cihaz谋 qoymaq?
>> T茝L茝B茝: Bu q蓹d蓹r var.
>> JASON Hirschhorn: Siz almaq q蓹rar istifad蓹 etm蓹k.
Bir 莽a臒r谋 cihaz谋 qoymaq 眉莽眉n faydal谋 艧eyl蓹r, Siz b枚y眉k 脟 haqq谋nda s蓹hv 蓹g蓹r
axtar谋艧lar m眉xt蓹lif n枚v i艧 v蓹 n枚v, bir var ki, qoymaq
laz谋ml谋 modabaz chart.
Bu yolla, siz ki, xahi艧 edirik, 蓹g蓹r viktorina, siz c蓹hd v蓹 r蓹q蓹m ehtiyac yoxdur
bu v蓹 ya uzunlu臒u vasit蓹sil蓹 s蓹b蓹bi.
Siz yaln谋z a艧a臒谋 kopyalaya bil蓹rsiniz.
Siz s谋navlar ke莽mi艧, bir 莽ox baxsan谋z d蓹f蓹, vaxt suallara orada 莽al谋艧an.
Bel蓹 ki, bir yax艧谋 n眉mun蓹 olaca臒谋n谋 Sizin bir-莽a臒r谋 cihaz谋 qoymaq 艧ey.
>> De臒ilseniz, qoymaq 眉莽眉n dig蓹r yax艧谋 艧eyl蓹r b蓹yan nec蓹 haqq谋nda s蓹hv bir
funksiyas谋 v蓹 ya n蓹 m眉xt蓹lif hiss蓹l蓹ri funksiyas谋 b蓹yannam蓹 yazmaq var
ki, bir 眉mumi versiyas谋 v蓹 sonra b蓹lk蓹 bir n眉mun蓹.
G枚st蓹ricil蓹r haqq谋nda s蓹hv edirsinizs蓹, g枚st蓹ricil蓹rin蓹 i艧 nec蓹 bir diagram
y蓹qin ki, h蓹qiq蓹t蓹n faydal谋.
Siz recursion, a haqq谋nda s蓹hv edirsinizs蓹 orada recursive funksiyas谋 n眉mun蓹
d蓹 h蓹qiq蓹t蓹n faydal谋 ola bil蓹r.
Ki, bir fikir verir?
>> AVI: Siz anlamaq laz谋md谋r kimi b眉t眉n t蓹rtib prosesi,
nec蓹 b眉t眉n i艧l蓹r ki?
>> JASON Hirschhorn: H蓹r 艧ey ki, 蓹hat蓹 olunub bil蓹r
viktorina g枚st蓹rilir.
Suallar -
amma yen蓹 b蓹zi 艧eyl蓹r olacaq ba艧qalar谋 daha a臒谋rl谋ql谋.
B蓹zi 艧eyl蓹r yenid蓹n g蓹lmi艧蓹m v蓹 yenid蓹n sinfind蓹 ild蓹
m眉hazir蓹, v蓹 b枚lm蓹.
Dig蓹r 艧eyl蓹r yoxdur ki, tez-tez g蓹lib.
>> # Daxildir v蓹 bir 莽ox s枚hb蓹t etdik -L bir 艧ey v蓹 n蓹 o dem蓹k
T蓹rtibi proses.
Biz suva艧maq, gdb haqq谋nda 莽ox s枚hb蓹t etdik biz istifad蓹 ed蓹n m眉xt蓹lif bayraqlar谋 zaman
Biz bir 艧ey t蓹rtib v蓹 n蓹 make15, misal 眉莽眉n, h蓹qiq蓹t蓹n
dem蓹kdir v蓹 h蓹qiq蓹t蓹n edir.
Biz haqq谋nda 莽ox dan谋艧maq deyil h蓹r bir add谋m
T蓹rtibi proses.
Biz h蓹l蓹 bu bar蓹d蓹 s枚hb蓹t etdik.
Bel蓹 ki, h蓹l蓹 ki, bir 艧ey var il蓹 tan谋艧 olmal谋d谋r.
Ancaq yen蓹 d蓹, biz fikrind蓹 deyilik -
sinif daha tez-tez g蓹lib ki, h蓹r 艧eyi daha g蓹lm蓹k 眉莽眉n daha 莽ox ehtimal olunur
tez-tez v蓹 daha 莽ox ola viktorina a臒谋rl谋ql谋.
>> Cool.
Viktorina 0 haqq谋nda h蓹r hans谋 dig蓹r suallar?
>> OK, bel蓹 ki, m蓹n bir siyah谋s谋n谋 qoymaq board m枚vzular.
M蓹n proqram谋 vasit蓹sil蓹 getdi.
M蓹n n蓹z蓹rd蓹n b枚lm蓹 vasit蓹sil蓹 getdi g蓹lm蓹k 眉莽眉n d眉n蓹n gec蓹 v蓹 bu slaydlar
m枚vzular qeyri-tam siyah谋s谋 il蓹 biz CS50 g眉n蓹 q蓹d蓹r 蓹hat蓹 ki,
v蓹 h蓹r 艧eyi ki bil蓹r viktorina g枚r眉n眉r.
M蓹n ke莽m蓹k fikrind蓹 deyil蓹m Bu h蓹r bir.
脟ox daha 莽ox olard谋 biz indi daha 莽ox vaxt.
Amma in艧allah JOG burada bu q蓹d蓹r qoymaq 艧eyl蓹r kimi yadda艧 ki, may
v蓹 ya sizinl蓹 tan谋艧 ola bil蓹r.
>> M蓹n hiss蓹sini s蓹rf sevindim haqq谋nda suallara cavab b枚lm蓹
Bu m枚vzular, m枚vzular ki, burada 蓹hat蓹 olunmur.
Biz yalan莽谋 kodu yaza bil蓹rsiniz.
Biz real kodunu yaza bil蓹rsiniz t蓹min etm蓹k 眉莽眉n ki, -
M蓹n sizin suala cavab v蓹 k枚m蓹k ed蓹 bil蓹r ham谋 蓹sasl谋 anlamaq bir
Bu m枚vzular 莽ox siz hiss ed蓹c蓹yik ged蓹n daxil haz谋rlanm谋艧 v蓹 rahat
viktorina sabah.
Bel蓹 ki, siyah谋s谋n谋 oxumaq.
Siz in艧allah b枚lm蓹sind蓹 g蓹lmi艧蓹m b蓹zi suallar h蓹m莽inin.
Siz haz谋r oldu臒unuzda, 蓹l qald谋rmaq v蓹 biz a莽谋lm谋艧 olacaq.
>> Unutmay谋n, suallar var, he莽 bir axmaq suallar var.
Biz bir 莽ox ki, e艧itdim.
V蓹 siz sual, m蓹n ist蓹y蓹n am , bir 莽ox dig蓹r insanlar谋n, h蓹m d蓹 bahis
Burada oturan v蓹 seyr online h蓹m莽inin var.
Bel蓹 ki, yaln谋z insanlar k枚m蓹k ed蓹 bil蓹r suallar.
Marcus.
>> MARCUS: y谋臒谋n v蓹 aras谋nda y谋臒谋n, bir pre-ayr谋lan var
kimi m眉蓹yy蓹n ki, yadda艧 faiz Bu y谋臒谋n谋 v蓹 ya y谋臒谋n 眉莽眉n?
V蓹 ya nec蓹 d蓹qiq ki, i艧i yoxdur?
>> JASON Hirschhorn: B枚y眉k sual.
M蓹n bir az iz geri gedir蓹m.
Ham谋 mu -
burada vicdanl谋 olun.
M蓹n qald谋rmaq isteyen al谋ram bilirik sizin Sizin h蓹mya艧谋dlar谋 qar艧谋s谋nda 蓹l.
Amma hiss ed蓹n insanlar var y谋臒谋n谋 v蓹 y谋臒谋n narahat
v蓹 ki, art谋q getm蓹k ist蓹yir蓹m v蓹 bu n蓹 dem蓹kdir?
茝l 蓹g蓹r qald谋rmaq -
OK.
T蓹艧蓹kk眉r edir蓹m.
Bel蓹likl蓹, biz y谋臒谋n谋 眉z蓹rind蓹 getm蓹k 眉莽眉n ged蓹n v蓹 edirik y谋臒谋n h蓹qiq蓹t蓹n tez v蓹 sonra
Sizin suala cavab h蓹r蓹k蓹t.
>> Biz t蓹msil bir qutusu h蓹yata 莽蓹km蓹k 蓹g蓹r bilgisayar谋n谋zda yadda艧, b蓹zi n蓹
Bu qutusuna getm蓹k ki, h蓹r 艧eyi?
Main.
A 蓹sas funksiyas谋.
Harada 蓹sas getm蓹k edir?
>> T茝L茝B茝: [i艧itilemez].
>> JASON Hirschhorn: Biz will 蓹sas burada a艧a臒谋 qoydu.
N蓹 bu qutusuna gedir?
>> T茝L茝B茝: Siz z蓹ng funksiyalar谋.
>> JASON Hirschhorn: The funksiyalar谋 biz z蓹ng.
V蓹 onlar getm蓹k yoxdur?
>> T茝L茝B茝: y谋臒谋n谋.
>> JASON Hirschhorn: Onlar y谋臒谋n谋 getm蓹k.
Bel蓹likl蓹, biz bu z蓹ng olacaq a艧a臒谋 burada 艧ey y谋臒谋n谋.
V蓹 眉st q蓹d蓹r, biz y谋臒谋n var.
Bel蓹 ki, yadda艧 yaln谋z bu kimi bir qutusu deyil.
Amma bu, h蓹qiq蓹t蓹n olduqca ox艧ard谋r.
Bu art谋q qutular谋 bir 莽ox olacaq v蓹 眉z蓹rind蓹 as谋l谋 olaraq nec蓹 b枚y眉k sizin
komp眉ter v蓹 ya yadda艧 n蓹 q蓹d蓹r b枚y眉k.
>> Quote-d谋rna臒谋 ba臒lamaq "alt" da y谋臒谋n谋 deyil.
V蓹 莽ox 艧eyl蓹r var ki, y谋臒谋n谋 getm蓹k.
V蓹 bu funksiyalar谋 as谋l谋 sizin kodu var.
Siz h蓹mi艧蓹 bir funksiyas谋 var sizin kodu 蓹sas adl谋, bel蓹 bir h蓹mi艧蓹 var
a艧a臒谋 burada b枚lm蓹sind蓹 蓹sas h蓹sr y谋臒谋n.
>> Y谋臒谋n谋 Bu b枚lm蓹l蓹r y谋臒谋n谋 莽蓹r莽iv蓹sind蓹 deyilir.
Ba艧qa bir funksiyas谋 z蓹ng zaman, 蓹sas dem蓹k bir ikili axtar谋艧 funksiyas谋 莽a臒谋r谋r,
biz y谋臒谋n谋 bir 莽蓹r莽iv蓹 qoymaq.
Daha konkret des蓹k, biz gedir yadda艧 y谋臒谋n ba臒谋艧 bizim
ikili axtar谋艧 yerli saxlamaq 眉莽眉n komp眉ter d蓹yi艧蓹nl蓹rin v蓹 ikili run
search kodu.
>> Bel蓹 ki, biz ikili axtar谋艧 z蓹ng.
Yadda艧 bu y谋臒谋n, biz olacaq onun yerli d蓹yi艧蓹nl蓹rin saxlamaq 眉莽眉n.
Biz printf z蓹ngl蓹r saxlamaq olacaq.
Olur, olsun, ki, funksiyas谋 orada saxlan谋l谋r gedir.
Binary axtar谋艧 icra gedir.
Bu icra ba艧a gedir.
C s枚z n蓹dir ki nailliyy蓹tin bir funksiyas谋 olmal谋d谋r ki,
onun icras谋n谋 ba艧a?
>> T茝L茝B茝: qay谋t.
>> JASON Hirschhorn: qay谋t.
Bel蓹 bir geri b蓹yanat g枚rm蓹k zaman, funksiyas谋 bitir
ki xit zaman.
Bel蓹 ki, ikili axtar谋艧 onun qaytar谋lmas谋 t蓹艧kil ed蓹c蓹k.
Yadda艧 bu hiss蓹si mahiyy蓹tc蓹 ed蓹c蓹k q蓹d蓹r azad olunacaq.
V蓹 蓹sas geri icras谋 ged蓹c蓹k.
, Z蓹ng edin idi yerd蓹 Bel蓹 ki, 蓹sas fasil蓹 olacaq ikili axtar谋艧, b蓹zi qaytar谋lmas谋 d蓹y蓹ri almaq,
v蓹 icras谋 davam edir.
Bu y谋臒谋n谋 莽蓹r莽iv蓹sind蓹 getm蓹k olacaq.
>> Biz recursive funksiyas谋, z蓹ng 蓹g蓹r 枚z眉 眉z蓹rind蓹 莽a臒谋r谋r ki, bir funksiyas谋
v蓹 眉z蓹rind蓹, biz 蓹ld蓹 ed蓹 bil蓹r - biz dem蓹k recursively ikili axtar谋艧 etdi.
Biz ikili axtar谋艧 versiyas谋 bir almaq bil蓹r ikili axtar谋艧 iki, ikili axtar谋艧
眉莽, ikili axtar谋艧 d枚rd, ikili axtar谋艧 be艧.
V蓹 sonra bu final ikili axtar谋艧 be艧 baza halda, v蓹 y谋臒谋n谋 t蓹艧kil ed蓹c蓹k
莽蓹r莽iv蓹sind蓹 geri getm蓹k v蓹 ba臒lanmas谋 davam ed蓹c蓹k biz 蓹sas geri almaq q蓹d蓹r.
Biz bir az recursion 眉z蓹rind蓹 bil蓹rsiniz.
De臒ilseniz Lakin b眉t眉n bu, dem蓹k bir zamanda bird蓹n 莽ox funksiyalar谋 z蓹ng
莽ox y谋臒谋n谋 olacaq y谋臒谋n谋 莽蓹r莽iv蓹sind蓹.
>> Y谋臒谋n, dig蓹r t蓹r蓹fd蓹n, up burada funksiyalar谋 眉莽眉n deyil,
yerli d蓹yi艧蓹nl蓹rin 眉莽眉n.
Bu dinamik ayr谋lm谋艧 眉莽眉n d蓹yi艧蓹nl蓹r.
Bel蓹 ki, bu ola bil蓹r ki, d蓹yi艧蓹nl蓹r var 蓹sas v蓹 ya bir ya ba艧lat谋lm谋艧
蓹sas z蓹ngl蓹r f蓹aliyy蓹t g枚st蓹rir.
Yerd蓹 sizin kodu, onlar ba艧lat谋lm谋艧 bil蓹r.
V蓹 dinamik ba艧lamaq 眉莽眉n ayr谋lan d蓹yi艧蓹n.
Biz C funksiyas谋 n蓹 istifad蓹 edirsiniz?
>> T茝L茝B茝: Malloc.
>> JASON Hirschhorn: Malloc.
Siz malloc z蓹ng.
Siz yadda艧 yer almaq.
V蓹 yadda艧 ki, kosmik y谋臒谋n edir.
V蓹 yadda艧 ki, kosmik qal谋r siz pulsuz var z蓹ng q蓹d蓹r.
>> Bel蓹 ki, dinamik ayr谋lm谋艧 d蓹yi艧蓹nl蓹rin il蓹 y谋臒谋n sizin kimi uzun 眉莽眉n m枚vcud olacaq
onlara m枚vcud ist蓹yir蓹m, v蓹 onlar olacaq a莽谋q-ayd谋n sizin q蓹d蓹r getm蓹k
getm蓹k 眉莽眉n onlara dem蓹k.
Siz bir funksiyas谋 onlar谋 yarada bil蓹rsiniz.
Ki, funksiyas谋n谋n stack 莽蓹r莽iv蓹sind蓹 getm蓹k olacaq.
Amma d蓹yi艧蓹n h蓹l蓹 m枚vcud olacaq y谋臒谋n azad olunana q蓹d蓹r,
potensial adl谋 funksiyas谋 il蓹 ikili axtar谋艧 v蓹 ya n蓹.
>> Bel蓹 ki, h蓹min y谋臒谋n d蓹yi艧蓹nl蓹rin orada qalmaq kimi uzun ist蓹diyiniz kimi 眉莽眉n
orada qalmaq.
V蓹 onlar burada qoyulur.
V蓹 sonra n枚vb蓹ti orada qoymaq olur.
Onlar dolun, onlar siz pulsuz z蓹ng q蓹d蓹r orada qalmaq.
>> V蓹 mahiyy蓹tc蓹, y谋臒谋n v蓹 y谋臒谋n谋, , Marcus Sual谋ma
bir-birin蓹 qar艧谋 bitir.
Onlar bir-birin蓹 daxil 蓹g蓹r, siz var b眉t眉n yadda艧 istifad蓹 edin
komp眉ter v蓹 proqram 莽谋xmaq ed蓹c蓹k 茝g蓹r h蓹r hans谋 bir daha 莽ox yadda艧 yoxdur, 莽眉nki
istifad蓹 眉莽眉n sol.
Onlar谋n aras谋nda var potensial ba艧qa 艧eyl蓹r.
Amma bu 蓹lb蓹tt蓹 daxilind蓹 sizin 眉莽眉n ki, narahat ehtiyac yoxdur.
>> Bel蓹 ki, cavab idi sizin suala.
Bu bar蓹d蓹 narahat olmay谋n.
Amma bu uzun cavab idi.
Bildiyiniz 眉莽眉n laz谋m olan b眉t眉n edir y谋臒谋n v蓹 y谋臒谋n谋 olacaq -
bir alt ba艧lay谋r.
Y谋臒谋n谋 yoxdur.
Y谋臒谋n up var.
Onlar bir-birin蓹 yax谋n olacaq.
>> Onlar toxunmaq 蓹g蓹r, bir problem var.
Siz yadda艧 h蓹yata qa莽d谋m.
Lakin, bilm蓹d蓹n 蓹lav蓹 oldu臒u onlar n蓹 d蓹 saxlan谋l谋r olunur
y谋臒谋n v蓹 y谋臒谋n.
Curtis.
>> CURTIS: onlar toqqu艧maq zaman, ki, bir y谋臒谋n da艧q谋n?
>> JASON Hirschhorn: onlar toqqu艧maq zaman, ki, bir y谋臒谋n da艧q谋n deyil.
A y谋臒谋n da艧q谋n f蓹rqli bir sah蓹dir 茝g蓹r ist蓹yirsinizs蓹 biz art谋q getm蓹k bil蓹r.
OK, biz bir az geri qay谋tmaq laz谋md谋r.
>> T茝L茝B茝: adl谋 s枚z n蓹dir Onlar bir-birin蓹 hit zaman,
y谋臒谋n v蓹 y谋臒谋n?
>> JASON Hirschhorn: 陌ndi, haqq谋nda narahat olmay谋n.
Just bilirik -
M蓹n suala cavab olacaq sinif sonra.
Onlar bir-birin蓹 daxil ets蓹niz, siz h蓹yata qa莽d谋m he莽 bir daha 莽ox var yadda艧, 莽眉nki
kosmik.
>> T茝L茝B茝: Ba臒谋艧lay谋n, bir seg g眉nah n蓹dir?
>> JASON Hirschhorn: A segment g眉nah 眉莽眉n adland谋rmaq olar -
seqmentl蓹rin g眉nah谋 deyilir niy蓹 bu as谋l谋d谋r.
B蓹z蓹n, sizin y谋臒谋n谋 da艧q谋n, bu will seg s蓹hv kimi g眉nah deyirl蓹r.
>> T茝L茝B茝: N蓹 dereferencing haqq谋nda bir null d蓹yi艧蓹n?
Ki, bir seg g眉nah?
>> JASON Hirschhorn: Dereferencing bir null pointer -
OK, bel蓹 ki, bir g枚st蓹rici varsa null b蓹rab蓹r m眉蓹yy蓹n g枚st蓹ricil蓹r, geri,
ma臒aza yadda艧 眉nvanlar谋 onlar谋n d蓹y蓹rl蓹ri kimi.
V蓹 null g枚st蓹rici mahiyy蓹tc蓹 0 saxlan谋lmas谋, 0-ci
d蓹yi艧蓹n m眉raci蓹t.
Bel蓹 ki 0x, 0, 0, 0, 0, et Cetera.
Deyil ki, yadda艧 ki, 0-ci 眉nvan谋 bizim 艧蓹kil ki, up var
haradasa, qorunur edir komp眉ter 眉莽眉n.
Biz bunu toxunmaq icaz蓹 deyilik.
>> Bel蓹 ki, proqram h蓹yata zaman, 蓹g蓹r bir 艧ey xatir蓹sin蓹 getm蓹k 眉莽眉n 莽al谋艧谋r
眉nvan谋 0, o bilir ki, ki, bir bo艧 d蓹y蓹ri.
Bu he莽 bir 艧ey olmal谋d谋r bilir.
Bel蓹 ki, orada bir 艧ey c蓹hd v蓹 istifad蓹 蓹g蓹r kimi bir 艧ey var m眉alic蓹 v蓹 ya
ki, yeri getm蓹k 眉莽眉n 莽al谋艧谋r谋q, siz San g眉nah v蓹 ya s蓹hv almaq 眉莽眉n gedir.
Ki, sual cavab verirmi?
>> V蓹 indi biz geri getm蓹k laz谋md谋r da艧q谋n y谋臒谋n.
Sizl蓹rin kimi y谋臒谋n谋 Things, 蓹vv蓹l g枚r眉ld眉 - bir yax谋n 莽蓹km蓹k imkan
bir y谋臒谋n 莽蓹r莽iv蓹sind蓹 up.
Ham谋 g枚rm蓹k ed蓹 bil蓹r蓹mmi?
Bel蓹 ki, biz y谋臒谋n谋 莽蓹r莽iv蓹sind蓹 var.
Biz yerli kimi bir s谋ra q蓹na蓹t edirik bu funksiyas谋 d蓹yi艧蓹n.
Bel蓹 ki, bizim array be艧 l蓹k蓹l蓹r var deyirl蓹r.
O b眉t眉n be艧 saxlan谋l谋r ki y谋臒谋n谋 莽蓹r莽iv蓹sind蓹.
>> Biz k蓹narda yazma臒a ba艧lay谋n 蓹g蓹r bu serial谋n h蓹ddi -
bel蓹 ki, biz daxil yaz谋l谋 ba艧lamaq 蓹g蓹r, ki 0 dey蓹k.
H蓹min be艧 g枚st蓹ricil蓹ri var bizim serial谋n.
Biz index 5, daxil yazma臒a ba艧lay谋n 蓹g蓹r biz zaman biz yoxdur
枚l莽眉s眉 5 array, biz daxil yazma臒a ba艧lay谋n index 6, 7, 8, 9, biz Stack 蓹ld蓹 ed蓹 bil蓹rsiniz
Overflow s蓹hv.
>> 脺mumiyy蓹tl蓹 bu deyil -
y蓹qin ki, ili艧m蓹k ed蓹c蓹k Siz bir-眉z蓹rind蓹 getm蓹k 蓹g蓹r.
Amma 眉mumiyy蓹tl蓹, siz daxil olacaq Bir 莽ox 眉z蓹rind蓹 getm蓹k 蓹g蓹r 蓹n narahatl谋q
v蓹 bu g眉n蓹 q蓹d蓹r 眉z蓹rind蓹 yazmaq getm蓹k ki, geri 眉nvan 眉z蓹rind蓹
burada yerl蓹艧蓹n funksiyas谋, y谋臒谋n谋 莽蓹r莽iv蓹sind蓹 alt.
>> Sa臒, 莽眉nki?
Siz - ci ild蓹 - sorry.
"Sa臒 莽眉nki."
>> Y谋臒谋n谋 莽蓹r莽iv蓹sind蓹, siz var yerli d蓹yi艧蓹nl蓹r.
Y谋臒谋n谋 莽ox alt 莽蓹r莽iv蓹sind蓹 qaytar谋lmas谋 眉nvan谋.
Bu funksiyas谋 harada art谋q zaman gedir.
V蓹 siz geri 眉zerine 蓹g蓹r 眉nvan谋, sonra bu y谋臒谋n谋 莽蓹r莽iv蓹sind蓹 zaman,
Siz y谋臒谋n谋 ke莽ir etdiyiniz zaman nizama v蓹 h蓹r x蓹tti yerin蓹, siz
Yeni qaytar谋lmas谋 眉nvan getm蓹k olacaq ki, 蓹v蓹zin蓹 orada yaz谋l谋
faktiki biridir.
V蓹 biz g枚rd眉k nec蓹 b蓹zi t蓹hl眉k蓹sizlik pozulmas谋
komp眉ter il蓹 ba艧 ver蓹 bil蓹r.
>> Bel蓹 ki, y谋臒谋n da艧q谋n, q谋sa olaraq, Siz y谋臒谋n谋 hiss蓹si 眉zerine
Siz yerli istifad蓹 眉莽眉n n蓹z蓹rd蓹 edirik d蓹yi艧蓹n istifad蓹 ehtimal edirik
X眉susil蓹 siz yadda ba艧latt谋臒谋n谋zda kimi 蓹h蓹miyy蓹tli 艧eyl蓹r
qay谋d谋艧 眉nvan谋.
茝g蓹r bir s蓹hv almaq laz谋md谋r ki var.
V蓹 ya b蓹lk蓹 siz ba艧lamaq bil蓹r h蓹tta daxil yaz谋l谋 -
ikili axtar谋艧 idi sa臒 蓹sas yuxar谋da.
Siz, bir 莽ox yaz谋lmamas谋 varsa 蓹sas daxil yazmaq bil蓹r.
Amma 眉mumiyy蓹tl蓹, siz 蓹vv蓹l bir s蓹hv almaq komp眉ter bilir sonra, 莽眉nki
Siz bir 艧ey yap媒yorsun bunu etm蓹k olmaz.
B蓹li.
>> T茝L茝B茝: f蓹rqi n蓹dir bir y谋臒谋n da艧q谋n aras谋nda
v蓹 bufer da艧q谋n?
>> JASON Hirschhorn: Buffer overflow daha 眉mumi n枚v眉 var
M蓹n yaln谋z t蓹svir n蓹.
>> T茝L茝B茝: Bel蓹 bir y谋臒谋n da艧q谋n bir edir bir bufer da艧q谋n n眉mun蓹.
>> JASON Hirschhorn: Exactly.
Bu bir kimi hesab ed蓹 bil蓹r bir s谋ra edir bufer, i莽蓹ri 艧ey 眉莽眉n bir m蓹kan
Bu bir y谋臒谋n bufer da艧q谋n.
Biz bir y谋臒谋n bufer da艧q谋n ola bil蓹r.
Orada tez-tez bir bufer, var idi, 蓹g蓹r bir s谋ra y谋臒谋n v蓹 biz
o h蓹ddi yaz谋lmamas谋, sonra biz ki, bir y谋臒谋n bufer da艧q谋n var.
>> Bu 蓹lb蓹tt蓹 莽蓹r莽iv蓹sind蓹n k蓹narda, onlar bir az f蓹rqli a艧kar edirik.
Bu compiler x眉susi var h蓹r a艧kar yollar谋.
Amma bir bufer da艧q谋n daha 眉mumi edir M蓹n t蓹svir n蓹 n枚v眉,
bir y谋臒谋n bufer da艧q谋n idi.
Ki, cavab mi?
Sweet.
>> H蓹r hans谋 dig蓹r suallar 蓹laq蓹li var idi y谋臒谋n谋 v蓹 ya y谋臒谋n?
B蓹li.
>> T茝L茝B茝: M蓹n siz蓹 pulsuz strings bilirik Onlar y谋臒谋n ist蓹yirik, 莽眉nki
v蓹 siz yadda艧 s谋zma ist蓹mir蓹m.
Amma qlobal d蓹yi艧蓹nl蓹r azad var v蓹 kimi stuff?
Yoxsa onlar avtomatik olaraq azad olunur?
>> JASON Hirschhorn: Yax艧谋 suald谋r.
Bel蓹 ki, cs50.h, biz bu 艧ey yaratmaq 眉莽眉n bir simli 莽a臒谋r谋b.
A string h蓹qiq蓹t蓹n n蓹dir?
>> T茝L茝B茝: Char star.
>> JASON Hirschhorn: A char star, bir pointer bir xarakter, bir g枚st蓹rici
simvol bir s谋ra.
Bu string n蓹 var.
Bel蓹 ki, biz, onu azad etm蓹k laz谋md谋r, 莽眉nki GetString, biz bir 莽ox istifad蓹 -
string ad谋 GetString b蓹rab蓹rdir -
ki, bizim 眉莽眉n b蓹zi yadda艧 mallocs y谋臒谋n v蓹 sonra bir pointer qaytar谋r
ki, ilk xarakter string, bir char ulduz.
>> Bel蓹 ki, guya, siz olmu艧dur 蓹g蓹r Sizin strings h蓹r hans谋 bir pulsuz yaz谋
Siz indiy蓹 q蓹d蓹r deyil蓹n etdik ki, siz var bir yadda艧 s谋zan edilmi艧dir.
T蓹bii ki, biz haqq谋nda s枚hb蓹t yoxdur Bu, bel蓹 ki, he莽 k蓹s kazan谋lm谋艧 var
bunu 眉莽眉n narahatl谋q.
Amma b蓹li, ir蓹li gedir.
Siz GetString z蓹ng zaman, siz y谋臒谋n b蓹zi kosmik mallocing.
V蓹 ki, sonra pulsuz z蓹ng etm蓹yin string, bir yadda艧 s谋z谋nt谋s谋 var.
Ki, sual cavab?
>> B蓹li
>> T茝L茝B茝: Bel蓹 ki, n蓹 眉莽眉n biz istifad蓹 edirsiniz qaytar谋lmas谋 蓹vv蓹l pulsuz sa臒?
Kimi, daxilind蓹, h蓹rhalda 蓹g蓹r biz 莽蓹r莽iv蓹sind蓹 蓹sas int kimi, dem蓹k
o 蓹rzind蓹 ki, kodu h蓹cmi q谋vr谋m a艧谋rma, 蓹vv蓹l sa臒 -
Bildiyiniz harada had ad蓹t蓹n geri qoymaq.
Ki 蓹vv蓹l pulsuz qoymaq edirsiniz?
>> JASON Hirschhorn: Bel蓹likl蓹, siz pulsuz qoya bil蓹r siz pulsuz qoymaq ist蓹diyiniz yerd蓹.
Bu dinamik ayr谋lm谋艧 脟眉nki d蓹yi艧蓹nl蓹r, onlar bil蓹r, 莽眉nki
x眉susi 蓹hat蓹si k蓹narda ya艧amaq funksiyas谋, bir malloc z蓹ng 蓹g蓹r
ayr谋-ayr谋 funksiyas谋, misal 眉莽眉n, GetString, siz 蓹sas pulsuz z蓹ng ed蓹 bil蓹rsiniz.
Siz z蓹ng etm蓹k 眉莽眉n ehtiyac yoxdur x眉susi funksiyas谋
malloc adl谋 yerl蓹艧ir.
Amma siz z蓹ng etm蓹k laz谋md谋r 蓹sas yekunlar谋 蓹vv蓹l.
>> V蓹 h蓹qiq蓹t蓹n as谋l谋d谋r.
Bu ki, malloced niy蓹 as谋l谋d谋r ilk n枚vb蓹d蓹 kosmik.
B蓹zi insanlar z蓹ng ed蓹c蓹k olduqca tez azad.
B蓹zi insanlar q蓹d蓹r pulsuz z蓹ng ed蓹c蓹k onlar谋n proqram sonu.
Onlar vasit蓹sil蓹 getm蓹k laz谋md谋r v蓹 pulsuz h蓹r 艧ey.
Bu malloc adl谋 niy蓹 as谋l谋d谋r.
>> T茝L茝B茝: V蓹 n蓹 dey蓹c蓹ksiniz Siz istifad蓹 GetString adl谋 蓹g蓹r?
Siz n蓹 pulsuz dem蓹k ist蓹diyiniz?
>> JASON Hirschhorn: Bel蓹 眉莽眉n sintaksis pulsuz sad蓹c蓹 azad, a莽谋q paren, yax谋n
paren v蓹 g枚st蓹rici ad谋.
Bel蓹 ki, simli ad谋 b蓹rab蓹rdir yazmaq GetString, burada ad谋n谋 qoymaq.
Bu g枚st蓹rici ad谋 var.
V蓹 bu yadda艧 azad bilir.
>> T茝L茝B茝: bu yadda艧 kurtar谋r Bel蓹 ki, g枚st蓹rici h蓹l蓹 ki, yer g枚st蓹rir
yadda艧谋nda?
Ya da bo艧ald谋lm谋艧 g枚st蓹ricisidir Bu g枚st蓹rir ki, 眉nvan谋.
>> JASON Hirschhorn: Biz 莽al谋艧mal谋y谋q.
Biz kod laz谋md谋r.
Biz almaq zaman geri g蓹lsin kodla艧d谋rma, v蓹 ki kod bildirin.
V蓹 cavab anlamaq ist蓹yirsinizs蓹 ki, siz d蓹 kodu ki,
bu vaxt.
Amma b枚y眉k bir sual var.
>> T茝L茝B茝: Bu m眉mk眉n m眉 脟ox tezlikl蓹 pulsuz bir 艧ey?
Bel蓹 ki, h蓹l蓹 sizin proqram 眉莽眉n laz谋md谋r, v蓹 siz yadda艧 kosmik azad?
>> JASON Hirschhorn: B蓹li.
Bu, m眉mk眉n 蓹g蓹r pulsuz bir 艧ey v蓹 sonra yenid蓹n istifad蓹, siz
Bir s蓹hv daxil.
Siz azad 莽眉nki Lakin, siz蓹 var sonra bir 艧ey v蓹 sonra 莽a臒谋r谋b.
Bel蓹 ki, bir proqram莽谋-nin s蓹hv idi.
Amma b蓹li.
Siz yaza bil蓹r.
>> Bir daha sual -
b蓹li.
>> T茝L茝B茝: Bel蓹 ki, ehtimal olunur, yaln谋z 蓹vv蓹l 眉mumiyy蓹tl蓹 onu azad
Proqram 蓹g蓹r dem蓹kdir, bitir proqram ba艧a 莽at谋r v蓹 o azad deyil,
ki, yadda艧 h蓹l蓹 ayr谋l谋b?
>> JASON Hirschhorn: proqram ba艧a varsa v蓹 sonra bir 艧ey azad unutmaq
yadda艧 蓹rzind蓹 ayr谋l谋b proqram 枚m眉r boyu.
Proqram tamamil蓹 ba臒layan zaman yadda艧 niyy蓹tind蓹 deyil
蓹b蓹di orada qalmaq.
Komp眉ter bilm蓹k kifay蓹t q蓹d蓹r a臒谋ll谋 deyil ki, proqram ba臒lan谋r zaman,
yadda艧 b眉t眉n qurtarmaq laz谋md谋r ki, proqram谋 il蓹 ba臒l谋 idi.
>> Lakin, 莽al谋艧t谋rabilirsiniz al蓹tl蓹r var a艧kar etm蓹k 眉莽眉n bir proqram, 蓹g蓹r zaman
proqram unuttum ba艧a b蓹zi yadda艧 azad.
V蓹 n枚vb蓹ti problem oldu臒u m眉蓹yy蓹n Siz malloc istifad蓹 v蓹 istifad蓹 ed蓹 bil蓹rsiniz
g枚st蓹ricil蓹rin蓹, bu 莽al谋艧an olunacaq 蓹g蓹r g枚rmek 眉莽眉n proqram谋 眉zr蓹 proqram,
zaman 蓹sas yekunlar谋, b蓹zi idi unfreed qald谋 ki, h蓹r 艧eyi.
>> Bel蓹 ki, onlar malloced qalmaq fikrind蓹 deyilik 蓹b蓹di komp眉ter.
Ki, israf莽谋 olard谋, 莽眉nki 莽ox tez, komp眉ter
yadda艧 t枚k眉lm蓹k olard谋.
Lakin onlar sizin sonuna q蓹d蓹r run 蓹g蓹r proqram v蓹 onlar azad v蓹 deyilik sizin
proqram h蓹l蓹 d蓹 bir problem var, 莽谋x谋艧lar谋 Bu al蓹t k枚m蓹k ed蓹c蓹k ki, h蓹ll.
>> T茝L茝B茝: Valgrind ki?
>> JASON Hirschhorn: Bu Valgrind 莽a臒谋r谋b.
V蓹 siz olacaq -
>> T茝L茝B茝: Amma biz bilm蓹k yoxdur ki, viktorina 眉莽眉n, baxmayaraq ki?
M蓹n dem蓹k, bu bar蓹d蓹 s枚hb蓹t a莽谋ld谋 m眉hazir蓹 bir az.
>> JASON Hirschhorn: Bel蓹 Valgrind ki, al蓹t ad谋d谋r.
N蓹 Bil蓹ndir viktorina 眉莽眉n kifay蓹t q蓹d蓹r.
Amma h蓹l蓹 istifad蓹 ed蓹 bilmirik sizin biz idi, 莽眉nki problem m眉蓹yy蓹n bir
a莽谋q-a艧kar m蓹艧臒ul ki, problem set malloc il蓹 v蓹 ya malloc istifad蓹.
Bel蓹 ki, h蓹l蓹 Valgrind istifad蓹 etm蓹mi艧l蓹r.
Amma tez istifad蓹 ed蓹c蓹k 莽ox sonra.
>> T茝L茝B茝: Siz t蓹krar ed蓹 bil蓹r蓹mmi n蓹 Valgrind edir?
>> JASON Hirschhorn: Ba臒谋艧lay谋n?
>> T茝L茝B茝: n蓹 t蓹krar ed蓹 bil蓹r蓹mmi Valgring m蓹qs蓹di?
>> JASON Hirschhorn: Valgrind ad谋 -
gdb proqram debug k枚m蓹k edir kimi Valgrind siz anlamaq k枚m蓹k edir
艧eyl蓹r azad olunmay谋b Proqram ba臒layan zaman.
Bel蓹 ki, sizin proqram run laz谋md谋r.
V蓹 proqram 莽谋x谋艧lar谋, v蓹 dem蓹k laz谋md谋r Proqram malloc bu 莽ox deyil蓹n
Bu 莽ox bytes d蓹f蓹, v蓹 siz yaln谋z bu d蓹f蓹l蓹rl蓹 pulsuz 莽a臒谋r谋b.
V蓹 bel蓹 ki, bu 莽ox bayt sol azad olmadan.
Yoxsa h蓹r 艧eyi azad etdik dem蓹k laz谋md谋r.
Yax艧谋 i艧.
>> T茝L茝B茝: OK.
V蓹 Valgring deyirl蓹r?
>> JASON Hirschhorn: V-A-L-G-R-I-N-D.
>> T茝L茝B茝: g枚st蓹ricil蓹r haqq谋nda bir sual.
Bel蓹 ki, n ulduz dem蓹k x bir 艧ey b蓹rab蓹rdir.
Ki, siz qoyulmas谋 etdiyiniz n蓹 b蓹rab蓹rdir var, n蓹 daxili qoymaq olunur ki,
n蓹 x i艧ar蓹 edir, v蓹 ya x pointer?
>> JASON Hirschhorn: Siz Can sual t蓹krar?
Siz dem蓹k is蓹 biz onu c蓹lb ed蓹 bil蓹r?
>> T茝L茝B茝: Viktorina ild蓹, h蓹qiq蓹t蓹n, Biz蓹 g枚nd蓹ril蓹n bir, bu, char kimi idi
star h蓹qiq蓹t sa臒, CS50 qayalar b蓹rab蓹rdir?
Bel蓹 ki, dem蓹kdir ki, CS50 qayalar h蓹qiq蓹t i艧ar蓹 edir n蓹dir?
>> JASON Hirschhorn: Bel蓹 ki, s枚hb蓹t edirik simli bir char ulduz haqq谋nda, nec蓹
ki, i艧l蓹yir?
B蓹li.
OK.
Nin burada bu c蓹lb ed蓹k.
>> [SIDE CONVERSATION]
>> JASON Hirschhorn: Bel蓹 ki, bu d蓹yi艧蓹n n枚v眉 char ulduz olacaq.
D蓹yi艧蓹n nec蓹 b枚y眉k n枚v眉 char ulduz?
Ne莽蓹 bytes?
>> T茝L茝B茝L茝R: Four.
>> JASON Hirschhorn: Bu d枚rd bayt var.
D蓹yi艧蓹n Ne莽蓹 h眉quqlar n枚v眉 int ulduz?
>> T茝L茝B茝L茝R: Four.
>> JASON Hirschhorn: Four bytes.
Bir g枚st蓹rici deyil, onda h蓹mi艧蓹 d枚rd bytes, 莽眉nki g枚st蓹ricil蓹rin蓹, onlar谋n
d蓹y蓹ri bir yadda艧 眉nvan谋.
V蓹 CS50 yadda艧 眉nvanlar谋 cihaz d枚rd bytes uzun.
Bel蓹likl蓹, biz GetString, ya biz z蓹ng zaman dem蓹k, stringname sonra b蓹rab蓹rdir, v蓹
ikiqat quotes bir string qoymaq, biz qoyuruq -
yax艧谋 ki, bir az f蓹rqli.
Biz n眉mun蓹 kimi GetString n蓹 laz谋md谋r.
V蓹 ya char ulduz bir 艧ey simli b蓹rab蓹rdir.
Ba臒谋艧lay谋n, m蓹n蓹 misal verm蓹k Siz oxumaq?
>> T茝L茝B茝: char ulduz h蓹qiq蓹t b蓹rab蓹rdir Ikiqat quotes "CS50 s眉xurlar谋".
>> JASON Hirschhorn: Bel蓹 ki, bu ulduz, bu biz bu d蓹yi艧蓹n x z蓹ng ed蓹c蓹yik bizim
眉mumi m蓹qs蓹dl蓹ri.
Biz x adl谋 d蓹yi艧蓹n yaratd谋q.
Bu tipli char ulduz var.
Bu bir s谋ra bir g枚st蓹ricisidir simvol.
Bel蓹 ki, a艧a臒谋 burada -
>> Bel蓹 ki, bu nec蓹 ki edir yadda艧 莽al谋艧谋r.
Bu yadda艧 眉nvan saxlamaq olard谋.
Bu yadda艧 眉nvan saxlamaq olard谋 serial谋n ilk character.
V蓹 sonra zaman sonra Bu g枚st蓹rici, siz ki
ilk xarakter almaq.
>> V蓹 kimi bu 艧ey oxu edirsinizs蓹 bir string, komp眉ter a臒谋ll谋
bilm蓹k kifay蓹t q蓹d蓹r, bu b眉t眉n 艧ey oxumaq bir bo艧luq 0 olur q蓹d蓹r.
Amma siz bir xarakter oxu edirsinizs蓹 bir d蓹f蓹, bel蓹 vasit蓹sil蓹 iterating edirik
Bu simli, onda siz yaln谋z bir oxumaq olacaq bir zamanda xarakter almaq q蓹d蓹r
backslash 0.
Ki, cavab bil蓹r Sizin sual olsa da.
>> T茝L茝B茝: B蓹li, amma siz malloced ki, kosmik
h蓹l蓹 ki, g枚st蓹rici.
>> JASON Hirschhorn: M蓹n kifay蓹t q蓹d蓹r 蓹min deyil蓹m d蓹qiq n蓹 bax谋r谋q,
M蓹n viktorina etm蓹yib, 莽眉nki.
Ki, yararl谋 bir olmaq idi ba艧qa TF-d蓹n resurs.
Siz bir simli yaratmaq varsa d蓹st蓹 v蓹 ya yerli d蓹yi艧蓹n kimi, will
yaln谋z ittihamlar array daha 莽ox ola i艧ar蓹 眉mumiyy蓹tl蓹 char ulduz
ba艧qa string.
Amma bilmir蓹m.
Y蓹ni ba艧qa bir g枚st蓹rici ola bil蓹r y谋臒谋n谋 string h蓹m莽inin.
B蓹li.
>> T茝L茝B茝: M蓹n siz蓹 laz谋md谋r ki, bilirik Bu g枚st蓹rici olduqda yadda艧 ayr谋lmas谋
daxilind蓹 elan olmaq ba艧qa funksiyas谋n谋n.
Siz 蓹g蓹r eyni 艧ey etm蓹k laz谋md谋r 蓹sas daxilind蓹 elan olunur,
Siz 蓹sas daxilind蓹 istifad蓹 etdiyiniz?
>> JASON Hirschhorn: Bel蓹 ki, b蓹li.
Siz h蓹r hans谋 bir pointer elan ed蓹 bil蓹r yadda艧 yadda艧 眉nvan谋.
Bu yerli yadda艧 眉nvan谋 ola bil蓹r d蓹yi艧蓹n, oftentimes baxmayaraq,
insanlar yadda艧 眉nvanlar谋 elan yoxdur onlar getm蓹k, 莽眉nki yerli d蓹yi艧蓹nl蓹rin
ki, funksiyas谋 qaytar谋r 眉z d蓹f蓹, olan biz 眉mumiyy蓹tl蓹 艧eyi malloc n蓹.
Amma b蓹li, bir pointer b蓹yan ed蓹 bil蓹r dig蓹r yerli d蓹yi艧蓹n.
Bu, sad蓹c蓹, 眉mumiyy蓹tl蓹 i艧l蓹r deyil.
Amma n蓹z蓹r ed蓹 bil蓹rsiniz sinif sonra x眉susi bir 艧ey.
B蓹li.
>> T茝L茝B茝: M蓹n bu sort hesab edir蓹m ist蓹nir n蓹.
Bu ba艧lat谋l谋yor 眉莽眉n q蓹rib蓹 g枚r眉n眉r deyil bir kimi bir pointer
眉nvan谋, lakin n蓹 bir d蓹y蓹r kimi g枚r眉n眉r.
Bu CS50 i莽蓹risind蓹 n蓹 kimi g枚r眉n眉r 艧ey i艧ar蓹 edilir v蓹
deyil, faktiki 眉nvan谋, sa臒?
>> JASON Hirschhorn: Bel蓹 ki, deyil halda, baxmayaraq.
Y蓹ni n蓹 deyil.
Bir char ulduz elan zaman, bir yadda艧 眉nvan var.
Pointers b眉t眉n yadda艧 眉nvanlar谋 ba艧qa bir 艧ey i艧ar蓹.
Ba艧qa bir 艧ey ola bil蓹r y谋臒谋n谋, lakin dem蓹k olar ki, h蓹mi艧蓹 var
biz istifad蓹 g枚r蓹c蓹ksiniz 艧蓹kild蓹 y谋臒谋n.
Amma stringname double-quote b蓹rab蓹rdir "GetString" biz bunu g枚r眉r眉k v蓹 biz
vasit蓹sil蓹 baxmaq v蓹 kod bil蓹r.
GetString simli saxlan谋l谋r edilmir ki, d蓹yi艧蓹n, v蓹 ya h蓹r hans谋 string
ad谋 ki xilas edir d蓹yi艧蓹n, 莽眉nki ki nec蓹
g枚st蓹ricil蓹rin蓹 莽al谋艧谋r.
Ki, hissi edirmi?
>> T茝L茝B茝: B蓹li.
>> JASON Hirschhorn: OK.
陌n艧allah ki, deyil h蓹r k蓹s 眉莽眉n confusing.
Bu idi 蓹g蓹r Lakin, biz bir daha baxmaq olar bir az, biz, h蓹qiq蓹t蓹n, olacaq, 莽眉nki
眉mid edir蓹m olacaq bir 艧ey kod strings il蓹 i艧l蓹m蓹k v蓹 hiss k枚m蓹k
onlara daha rahat.
>> Bu il蓹 蓹laq蓹dar h蓹r hans谋 dig蓹r suallar m枚vzular v蓹 ya dig蓹r m枚vzular ki,
M蓹n geri qoymaq laz谋md谋r?
V蓹 -
indi.
B蓹li, Alden.
>> ALDEN: Bel蓹 ki, bu tamamil蓹 olmayan, lakin biz yaln谋z bil蓹rsiniz
h蓹qiq蓹t蓹n tez biz bilm蓹k laz谋md谋r n蓹 bir 32 v蓹 aras谋nda f蓹rq haqq谋nda
64-bit ma艧谋n?
>> JASON Hirschhorn: B蓹li.
Bel蓹 ki, 32 bit ne莽蓹 bayt edir?
>> ALDEN: Bu d枚rd bayt var.
>> JASON Hirschhorn: Bu d枚rd bayt var.
V蓹 64 bit ne莽蓹 bayt edir?
>> T茝L茝B茝: S蓹kkiz.
>> JASON Hirschhorn: S蓹kkiz bytes.
Bel蓹 ki, yen蓹 s蓹kkiz bit bir byte edir.
Sizin CS50 cihaz edir 32-bit ma艧谋n.
Bel蓹 ki, yadda艧 眉nvanlar谋 uzun d枚rd bytes.
2 32 var yadda艧 眉nvanlar谋.
0 32 minus 1 2.
M蓹n m眉sb蓹t deyil蓹m, lakin ki Siz蓹 laz谋m n蓹 y蓹qin ki, 蓹hat蓹 dair蓹si
, 32-bit ma艧谋n bilir蓹m ki, yadda艧 眉nvanlar谋, yen蓹 d枚rd bytes uzun
ki, maksimum m蓹bl蓹臒i yadda艧 眉nvanlar谋.
>> H蓹m莽inin, m蓹lumat n枚vl蓹ri -
bu kimi bir 艧ey ola bil蓹r yax艧谋 ki, qeyd d蓹y蓹r.
Bir veri n枚v眉 枚l莽眉s眉 as谋l谋d谋r siz 莽al谋艧谋r谋q ma艧谋n.
Bel蓹 ki, bir char, bir xarakter, nec蓹 bizim CS50 cihaz haqq谋nda 莽ox bytes?
Bir byte.
V蓹 bu, h蓹qiq蓹t蓹n bir byte kimi var d蓹 64-bit ma艧谋n.
>> V蓹 蓹n data n枚vl蓹ri eyni sayda var iki ma艧谋n bayt.
Lakin b蓹zi data n枚vl蓹ri f蓹rqli olacaq h蓹m ma艧谋n.
Bel蓹 ki, potensial olacaq Bildiyiniz 眉莽眉n laz谋m olan yaln谋z bir 艧ey.
>> Amma bel蓹 ki, hesab edir蓹m ki, h眉dudlar谋ndan k蓹narda -
Geri baxmaq 蓹g蓹r m蓹n, dem蓹k olar ki, m眉sb蓹t deyil蓹m k枚hn蓹 s谋navlar, o deyir ki, g眉man
istifad蓹 etdiyiniz probleml蓹r kodla艧d谋rma 32-bit ma艧谋n.
Amma ki, il蓹 birlikd蓹 getm蓹k 眉莽眉n var maraql谋 oldu臒unuz halda var
eyni olan m蓹lumat n枚vl蓹ri b眉t眉n ma艧谋n 枚l莽眉s眉.
>> Siz kimi bir 艧ey g枚rd眉m varsa uint32_t, siz bil蓹r v蓹 ya
ki, g枚rd眉k.
Ki, bir veri n枚v眉 var.
32 bit ki olursa olsun, dey蓹 edilir bu n蓹 ma艧谋n deyil.
Bel蓹 ki, insanlar portativ yaz谋l谋 zaman kodu, onlar y蓹qin ki, ints istifad蓹 ed蓹c蓹k.
Onlar 蓹v蓹zin蓹 bu dig蓹r m蓹lumatlar谋 istifad蓹 ed蓹c蓹yik Onlar bilirl蓹r ki n枚vl蓹ri eyni olacaq
h蓹r bir ma艧谋n 枚l莽眉s眉.
Madhu.
>> Madhu: M蓹n bir sual var idi T蓹rtibi proses.
Bel蓹 ki, istifad蓹 edir ki, proqram yaz谋l谋 edirsinizs蓹 CS50 v蓹 ya bir 艧ey kimi bir kitabxana
kimi, m蓹n bilir蓹m ki, kitabxana , bir n枚qt蓹d蓹, olmal谋d谋r
t蓹rtib v蓹 daxil ba臒l谋d谋r
Amma n蓹 q蓹d蓹r ki, zaman谋 ba艧 proqram t蓹rtibi?
Ki, kitabxana prosesinin hans谋 hiss蓹si Siz etdiyiniz zaman ba艧 verir
枚z proqram t蓹rtib?
>> JASON Hirschhorn: Bel蓹 ki, 眉z蓹rind蓹 ged蓹k Bu prosesin 眉mumiyy蓹tl蓹 add谋mlar.
Siz. C fayl yazmaq.
Sizin. C fayl, siz # daxildir sizin header kitabxana, m蓹s蓹l蓹n, cs50.h.
K蓹skin daxildir ki, n蓹 edir line proqram 眉莽眉n n蓹?
Akchar.
>> AKCHAR: Bu prototipl蓹ri edir m枚vzu olan funksiyalar谋
kitabxanalarda fayllar谋.
>> JASON Hirschhorn: Exactly.
O funksiyas谋 prototipl蓹ri edir Sizin kodu.
Sizin kodu t蓹rtib olunur Bel蓹 ki, erk蓹n m蓹rh蓹l蓹l蓹ri, compiler bilir
bu funksiyalar谋 h蓹qiq蓹t蓹n var, v蓹 ki, ki, haradasa onlar m眉蓹yy蓹n edilmi艧dir.
The. H fayllar谋 daxildir yoxdur bu funksiyalar 眉莽眉n anlay谋艧lar v蓹 ya nec蓹
h蓹qiq蓹t蓹n 莽al谋艧谋r.
Cs50.h yaln谋z deyir ki, bir 艧ey daxildir GetString bir real bir 艧eydir ki,
ba艧 ver蓹 bil蓹r.
V蓹 standardio.h printf deyir ola bil蓹r ki, bir real 艧ey.
>> Bel蓹 ki, bu il蓹 c dil. Header fayl b蓹zi 莽evrilmi艧 olur
ma艧谋n-oxunaql谋 kodu, ax谋rda ikili 莽evrilmi艧 olur
kodu, 0 v蓹 1-in.
V蓹 bu kodu ki, n蓹tic蓹d蓹 icra edilir.
The-l cs50 line - m蓹s蓹l蓹n, cingilti yaz谋l谋 etdiyiniz zaman -
v蓹 sonra daxildir-l cs50, Daxil ki, yaz谋n
V蓹 g枚r眉r眉k.
Etm蓹k yazmaq zaman, will up burada line bax.
V蓹 biz ikinci ki, g枚r眉rs眉n眉z zaman biz kod v蓹 ya daha sonra zaman biz kod.
>> Amma-l cs50 line bir 艧ey yoxdur bir az f蓹rqli
Bu # cs50.h. daxil
Ki,-l cs50 line n蓹 edir?
Avi?
>> AVI: M蓹n links dem蓹k ist蓹yir蓹m ki, funksiyas谋 kitabxana
Bu. o fayllar谋 kimi z蓹ng.
>> JASON Hirschhorn: Bel蓹 ki, 莽ox yax谋n, spot-on 蓹g蓹r.
The-l cs50 ikili fayl edir v蓹 Sizin ikili fayl il蓹 蓹laq蓹l蓹nir.
Bel蓹 ki, cs50.h, d枚n眉艧 he莽 bir m蓹qam var h蓹r ikili C dil cs50.h
istifad蓹 olunur bir zaman.
Ki, silly olard谋 ki 莽ox vaxt s蓹rf edir蓹m.
Bel蓹 ki, art谋q t蓹rtib edilmi艧dir v蓹 y眉r眉t眉lebilir 莽evrildi.
V蓹 indi birl蓹艧di olacaq sonunda fayl il蓹.
Bel蓹 ki, h蓹min 1 v蓹 0-谋n gedir Sizin yenil蓹ri il蓹 birl蓹艧m蓹si
v蓹 sonunda 0 nin.
Bel蓹 ki, indi siz h蓹qiq蓹t蓹n faktiki laz谋md谋r 1 v蓹 0-谋n nec蓹 GetString m眉蓹yy蓹n ki,
m蓹s蓹l蓹n, 莽al谋艧谋r, v蓹 ya nec蓹 printf m蓹s蓹l蓹n, 莽al谋艧谋r.
>> V蓹 daha 莽ox m蓹lumat 眉莽眉n, var bir Nate verir ki, q谋sa t蓹rtib莽il蓹ri
Siz ki, gedir yoxlamaq laz谋md谋r Bu add谋mlar vasit蓹sil蓹.
Amma -
b蓹li.
>> T茝L茝B茝: onlar h蓹mi艧蓹 o fayllar谋. Onlar kitabxana formada oldu臒unuzda,
kimi - ba臒l谋, birl蓹艧di haz谋r onlar ikili kod ist蓹yirik?
>> JASON Hirschhorn: OK.
N蓹 -
>> T茝L茝B茝: Ki h蓹mi艧蓹 halda kitabxanalar siz onlara ke莽id zaman?
>> JASON Hirschhorn: B蓹li.
Bel蓹 ki. S olacaq fayllar谋 var da olacaq ma艧谋n kodu,
siz蓹 sirli.
Siz bu bar蓹d蓹 narahat ehtiyac yoxdur.
Amma 眉mumiyy蓹tl蓹, yeah, onlar laz谋md谋r o getm蓹k 眉莽眉n haz谋r fayllar谋. ola bil蓹r.
>> T茝L茝B茝: Bel蓹 ki, g蓹mi zaman kitabxana, yaln谋z g蓹mi yoxdur
Bu. h v蓹. o?
Siz. C v蓹 ya. S g蓹mi yoxdur.
>> JASON Hirschhorn: Bel蓹 ki, -
v蓹 bu halda, el蓹c蓹 d蓹 bu q谋sa edir bu m蓹lumat bir g蓹l蓹n g枚r眉n眉r
az tez.
Amma derleyiciler haqq谋nda q谋sa bu bar蓹d蓹 dan谋艧谋qlar h蓹m莽inin.
Bir kitabxana g蓹mi zaman, 蓹g蓹r g蓹mi Bu. h, m枚vzu fayl, o
Funksiyas谋 prototipl蓹ri v蓹 1 v蓹 0 nin ki, siz蓹 laz谋m olan b眉t眉n var.
Siz verm蓹k laz谋m deyil nec蓹 funksiyas谋. c fayl i艧l蓹yir.
脟眉nki abstraksiya point, v蓹 ya API point, bu SPL da point,
Stanford portativ kitabxana, bu siz narahat deyil 眉莽眉n nec蓹 yeni
GRect, i艧l蓹yir, v蓹 ya nec蓹 i艧l蓹ri h蓹r蓹k蓹t v蓹 ya nec蓹 i艧l蓹ri 蓹lav蓹 edin.
Bildiyiniz 眉莽眉n laz谋m olan b眉t眉n ki, 蓹lav蓹 edir Siz ki, bir funksiyas谋
istifad蓹 v蓹 bu yoxdur.
Bel蓹likl蓹, siz h蓹qiq蓹t蓹n bilm蓹k ehtiyac yoxdur nec蓹 Bu C. Siz yaz谋l谋 yaln谋z laz谋md谋r
bilirsiniz, burada funksiyalar谋, n蓹 onlar etm蓹k, v蓹 burada 1 v蓹 0 nin
Siz, h蓹qiq蓹t蓹n, onlara istifad蓹 etm蓹k ist蓹diyiniz zaman.
>> Cool.
Derleyiciler haqq谋nda daha 莽ox suallar v蓹 ya board dig蓹r m枚vzular?
>> T茝L茝B茝: M蓹n bir sual var recursive funksiyalar谋 h蓹yata ke莽irir.
Recursion haqq谋nda sual.
M蓹n g蓹lib ki, bir hissi var idi.
Bel蓹 ki, tez il蓹 ged蓹k x眉susi il蓹 recursion
M蓹s蓹l蓹n, bir fakt枚ryel funksiyas谋.
Bu bir n眉mun蓹sidir, 莽眉nki tez-tez g蓹lir v蓹 ya istifad蓹 olunur
recursion g枚st蓹rm蓹k 眉莽眉n.
>> Bel蓹 ki, "4" 4 Faktorial kimi oxumaq edir.
V蓹 4 fakt枚ryel n蓹 dem蓹kdir?
O n蓹 edir?
Nec蓹 4 fakt枚ryel hesablamaq edirsiniz?
4 d蓹f蓹 3 d蓹f蓹 2 d蓹f蓹 1.
>> 4 Faktorial yazmaq 眉莽眉n ba艧qa bir yol Bu yazmaq 眉莽眉n.
4 d蓹f蓹 3 fakt枚ryel.
3 fakt枚ryel 脟眉nki 3 d蓹f蓹 2 d蓹f蓹 1.
Bel蓹 ki, 4 d蓹f蓹 3 fakt枚ryel 4 d蓹f蓹 3 d蓹f蓹 2 d蓹f蓹 1.
Fakt枚ryel b枚y眉k niy蓹 bu recursion 眉莽眉n namiz蓹d, 莽眉nki
ki, bir 艧ey ayd谋nd谋r ki, bir 眉z蓹rind蓹 v蓹 眉z蓹rind蓹 olur
艧eyi ki莽ik say谋 q蓹d蓹r 茝g蓹r sonunda 莽atmaq.
Siz 1 莽atd谋qda, 1 fakt枚ryel 1.
Siz 莽ox daha getm蓹k bilm蓹z.
0 fakt枚ryel d蓹 1 kimi m眉蓹yy蓹n edilir.
Siz 1 v蓹 ya 0 almaq zaman Bel蓹 ki, siz sonunda, v蓹 siz
geri ged蓹n ba艧lamaq.
Biz recursive yazmaq ist蓹dim 蓹g蓹r bir fakt枚ryel hesablamaq funksiyas谋,
biz b蓹zi yazmaq olacaq ki, indi 眉莽眉n pseudocode.
Ki, pseudocode yazmaq 蓹vv蓹l -
M蓹n siz蓹 u艧aqlar bir ne莽蓹 d蓹qiq蓹 ver蓹c蓹yik yalan莽谋 kodu yazmaq v蓹 ya yaln谋z d眉艧眉nm蓹k 眉莽眉n
bu bar蓹d蓹 - h蓹r iki 艧ey var recursive funksiyas谋 laz谋md谋r.
Bu iki 艧ey n蓹dir?
>> JACK: Bu 枚z眉 z蓹ng etm蓹k 眉莽眉n var.
>> JASON Hirschhorn: Noah?
Oh, Jack.
Durmay谋n.
>> JACK: Bu 枚z眉 z蓹ng etm蓹k 眉莽眉n var.
>> JASON Hirschhorn: Bel蓹 bir recursive funksiyas谋, bir recursive z蓹ng laz谋md谋r
枚z眉 z蓹ng.
Ki, biri.
V蓹 dig蓹r 艧ey n蓹dir?
>> JACK: A baza halda.
>> JASON Hirschhorn: A baza halda.
A baza halda biz dayand谋rmaq zaman burada edir.
Bel蓹 ki, funksiyas谋 adlan谋r olur.
臇sas birinci g蓹lir.
Siz sonunda 蓹g蓹r bilm蓹k ist蓹yir蓹m.
V蓹 siz, sonunda siz de臒ilseniz Sizin recursive z蓹ng etm蓹k.
V蓹 yen蓹 bu funksiyas谋 vasit蓹sil蓹 getm蓹k yenid蓹n sizin baza halda yoxlamaq.
Siz son de臒ilseniz, siz etm蓹k ba艧qa recursive z蓹ng,
et Cetera, Et Cetera.
>> Ona g枚r蓹 recursive funksiyalar谋 h蓹mi艧蓹 var o baza hallarda v蓹 bu ehtiyac
recursive z蓹ngl蓹r.
Bir recursive z蓹ng yoxdur, bu, bir recursive funksiyas谋 olmaz.
Bir baza halda olmasayd谋, siz 蓹b蓹di getm蓹k olard谋
He莽 sona olacaq.
V蓹 baza halda h蓹mi艧蓹 birinci g蓹lir, h蓹mi艧蓹 yoxlamaq ist蓹yir蓹m, 莽眉nki
ilk sonunda 蓹g蓹r.
Biz b蓹zi pseudocode bunu 蓹vv蓹l, niy蓹 d眉艧眉nm蓹k 眉莽眉n bir d蓹qiq蓹 etmirl蓹r
nec蓹 bir recursive fakt枚ryel funksiyas谋 yaz谋l谋 olard谋?
>> H蓹m莽inin, Siz bunu kimi bir 莽ox, yaz谋 bir ka臒谋z hesabat谋nda bu deyil
siz olacaq n蓹 sabah viktorina etm蓹k.
Etm蓹k 眉莽眉n bel蓹 y蓹qin ki, yax艧谋 t蓹cr眉b蓹 Siz yaz谋l谋 etdiyiniz kodu
ka臒谋z hesabat谋nda a艧a臒谋 -
v蓹 ya bunu ed蓹 bil蓹rsiniz.
Bu semicolons harada bilirsiniz.
Siz sintaksis xat谋rlay谋ram.
Siz ed蓹 deyilik, 莽眉nki compiler bir s蓹hv dem蓹k.
>> H蓹m莽inin, o x蓹tl蓹ri, sabah boyunca zaman 茝g蓹r siz, probleml蓹r kodla艧d谋rma var
d蓹f蓹 qa莽d谋, v蓹 ya 莽ox de臒ilseniz Siz ehtimal etdiyiniz n蓹 kimi s蓹hv
c x眉susi 艧ey yazmaq, bu, yalan莽谋 kod yazmaq 眉莽眉n siz behoove olard谋
v蓹 el蓹c蓹 d蓹 艧蓹rh yaz谋n.
Bir 眉莽眉n qism蓹n kredit var, 莽眉nki viktorina suallar 莽ox.
Bel蓹 ki, siz qa莽d谋, v蓹 ya ola bil蓹r yaln谋z qar谋艧谋q ola bil蓹r.
艦蓹rh v蓹 ya yalan莽谋 kodu Yaz谋 tez-tez yollar谋 ki,
qism蓹n kredit 蓹ld蓹 ed蓹 bil蓹rsiniz.
>> Bel蓹 ki, bir 艧ey t蓹rk etm蓹yin viktorina bo艧.
脺莽眉n he莽 bir c蓹za var daxil 艧eyi qoyulmas谋
茝slind蓹, yalan莽谋 kodu qoyulmas谋 v蓹 ya 艧蓹rh sinif 艧agirdi k枚m蓹k edir
Siz h蓹qiq蓹t蓹n bilirsinizs蓹 anlamaq n蓹 Siz b蓹lk蓹 m眉kafat b蓹hs edirik
ki, b蓹zi qism蓹n kredit.
>> H蓹m莽inin o x蓹tl蓹r boyunca, ayd谋n yaz谋n.
Biz, h蓹qiq蓹t蓹n, siz yaz谋yoruz bilm蓹z n蓹 varsa, biz siz蓹 z蓹ng etm蓹k fikrind蓹 deyilik
r蓹q蓹m midnight sabah yaz谋rd谋 n蓹.
Biz yaln谋z xal 莽谋xarmaq olacaq.
Bel蓹 ki, biz daha do臒rusu e艧itm蓹k, v蓹 ya ayd谋n yaz, biz yaz谋rd谋 n蓹 oxuya bil蓹rsiniz.
>> V蓹 bu iki c眉ml蓹 des蓹, bir paraqraf yazmaq yoxdur.
T蓹limatlar谋 izl蓹yin.
Ayd谋n yaz谋n.
V蓹 o 艧蓹rh yazmaq v蓹 ya suallara pseudocode bil蓹r ki,
m眉kafat qism蓹n kredit.
>> OK, fakt枚ryel ged蓹k.
Bel蓹likl蓹, biz bir funksiyas谋 Faktorial var.
M蓹n, h蓹qiq蓹t蓹n, C, bu yazmaq olsayd谋, n蓹 ad谋 蓹vv蓹l qoymaq laz谋md谋r
funksiyas谋?
Qaytar谋lmas谋 n枚v眉, bu olan, halda, biz int ver蓹c蓹yik.
V蓹 sonra q谋vr谋m a艧谋rma daxilind蓹 deyil, n蓹 眉莽眉n q谋vr谋m a艧谋rma daxilind蓹 gedir
bir funksiyas谋?
>> T茝L茝B茝L茝R: Argument n枚v眉.
>> JASON Hirschhorn: Onun d蓹lill蓹ri.
Bel蓹 ki, fakt枚ryel y蓹qin ki, bir m眉bahis蓹 edirl蓹r.
Bu y蓹qin ki, yaln谋z bir arqument almaq laz谋md谋r.
V蓹 biz bu almaq laz谋md谋r dem蓹k laz谋md谋r tam x 莽a臒谋r谋b.
V蓹 yen蓹, prototip yazark蓹n bir funksiyas谋 v蓹 ya funksiyas谋 yaz谋l谋
siz t蓹yin 蓹vv蓹l kodu m蓹lumat n枚v眉 v蓹 ad谋n谋 yazmaq
yaln谋z funksiyas谋 眉莽眉n d蓹yi艧蓹n.
Bel蓹 ki, bu b蓹zi say谋 ke莽蓹 bil蓹r funksiyas谋, x adland谋r谋lacaq olacaq
m蓹cburi.
>> Biz fakt枚ryel funksiyas谋 var.
Biz iki 艧eyi, bir baza i艧i laz谋md谋r v蓹 bir recursive z蓹ng.
Fakt枚ryel 眉莽眉n 蓹sas n蓹dir?
Onu yazm谋艧 v蓹 kim olan kims蓹 h蓹l蓹 dan谋艧谋q, baza n蓹
fakt枚ryel 眉莽眉n halda?
>> T茝L茝B茝: n az olduqda 2-d蓹n, 1 qay谋tmaq.
>> JASON Hirschhorn: n varsa 2-d蓹n az, 1 qay谋tmaq.
M蓹n ist蓹yir蓹m ki, 莽眉nki 0 v蓹 1 qay臒谋s谋na qal谋r.
Bel蓹 ki, biz, x <2 do 1 qay谋tmaq laz谋md谋r.
Biz almaq 蓹g蓹r biz, 0 ke莽di almaq 1 ke莽di, bu funksiya olacaq
d蓹rhal 1 qay谋tmaq.
Biz bir s谋ra Y脺KS茝L陌RD陌 ke莽di almaq d蓹n v蓹 ya 2 b蓹rab蓹r, biz olacaq
Bizim recursive z蓹ng var.
>> V蓹 nec蓹 ki, i艧 gedir?
Can bu i艧l蓹y蓹n ba艧qas谋 h蓹l蓹 dan谋艧谋q m蓹n蓹 verm蓹k
bu funksiya 眉莽眉n recursive z蓹ng edin pseudocode?
Biz bir s谋ra x ke莽di almaq v蓹 2-d蓹n b枚y眉k, n蓹
Biz n蓹 etm蓹k ist蓹yirsiniz?
Biz d蓹 n眉mun蓹 haqq谋nda yaz谋l谋 bir ipucu ver蓹 bil蓹r ki, yan.
>> T茝L茝B茝: x d蓹f蓹 z蓹ng x minus 1 fakt枚ryel?
>> JASON Hirschhorn: M蓹hz h眉ququ.
Biz x d蓹f蓹 geri olacaq x minus 1 fakt枚ryel.
V蓹 m蓹n yazd谋, baxmayaraq ki, 蓹sas蓹n, n蓹 陌ngilis deyilir,
Bu fakt枚ryel funksiyas谋 yen蓹 adl谋 olacaq.
Bu x minus 1 icra ed蓹c蓹yik.
B蓹zi tam il蓹 qay谋tmaq laz谋md谋r v蓹 sonra bu iki 莽oxaltmaq laz谋md谋r
birlikd蓹 ki, d蓹y蓹ri olacaq bu deyil蓹n n蓹 d枚nd眉
fakt枚ryel funksiyas谋 olan q眉dr蓹ti ba艧qa instansiya ola
Bu fakt枚ryel funksiyas谋.
>> Bel蓹 ki, bir recursive bir n眉mun蓹sidir funksiyas谋, bir 莽ox
sad蓹 recursive funksiyas谋.
Lakin onlar谋n 蓹ks蓹riyy蓹ti bu kimi olacaq.
Yax艧谋 bir recursive ist蓹yirsinizs蓹 viktorina 眉莽眉n etiraz, kodla艧d谋rma c蓹hd
ikili axtar谋艧 recursively.
脟眉nki sizin 眉莽眉n ikili axtar谋艧 蓹g蓹r problem 眉莽 set, siz y蓹qin ki, bunu
iteratively is蓹 loop.
>> Lakin bu da yaz谋l谋 bil蓹r recursively.
Siz 枚z yazmaq laz谋m olacaq B蓹zi edir ki, ayr谋-ayr谋 funksiyas谋
m眉xt蓹lif komanda-line d蓹lill蓹ri v蓹 ya - deyil command-line d蓹lill蓹ri, b蓹zi
m眉xt蓹lif yaln谋z m眉nt蓹z蓹m d蓹lill蓹ri.
Amma ikili axtar谋艧 yazmaq bil蓹r recursively h蓹m莽inin.
>> T茝L茝B茝: Bel蓹likl蓹, siz d蓹 yaz谋l谋 ola bil蓹r, 蓹v蓹zin蓹 x m蓹nfi 1, siz
d蓹 x minus yaz谋l谋 ola bil蓹r minus, v蓹 ya ola bil蓹r
yaz谋l谋 minus minus x.
Siz yaln谋z h蓹qiq蓹t蓹n tez izah ed蓹 bil蓹r o f蓹rqli 艧eyl蓹r ola bil蓹r,
f蓹rq aras谋nda n蓹 kimi x minus minus minus minus x?
>> JASON Hirschhorn: Xeyr, m蓹n deyil蓹m ki, getm蓹k 眉莽眉n gedir.
Amma sonra bu bar蓹d蓹 siz蓹 dan谋艧maq olacaq class. x minus minus, minus minus x
1-x azalma.
Lakin onlar bir az f蓹rqli bunu.
Amma getm蓹k ist蓹mir蓹m.
Recursion haqq谋nda dig蓹r suallar v蓹 ya bu funksiya?
Ki, h蓹qiq蓹t蓹n bel蓹 pseudocode deyil.
Bu 蓹sas蓹n d蓹 kod Bunun 眉莽眉n yazmaq olard谋 C.
>> OK, h蓹r hans谋 dig蓹r suallar burada m枚vzular up haqq谋nda?
B蓹li.
>> T茝L茝B茝: M蓹n tez rundown var 眉z蓹n point v蓹 d蓹qiq.
>> JASON Hirschhorn: 眉z蓹n point v蓹 d蓹qiq.
Can kims蓹 h蓹qiq蓹t蓹n tez M蓹n蓹 bir rundown verm蓹k
眉z蓹n point v蓹 d蓹qiq?
Siz b眉t眉n bu n蓹 idi problem m眉蓹yy蓹n, bel蓹 ki, b眉t眉n ist蓹yirik
tan谋艧.
V蓹 ya b蓹lk蓹 deyil b眉t眉n sizin.
H蓹r k蓹s?
M蓹n蓹 bir ba艧lad谋 spot verin.
脺z蓹n point v蓹 d蓹qiq.
Bu problem n蓹dir?
B蓹li.
Victoria?
>> VANESSA: Vanessa.
>> JASON Hirschhorn: Vanessa.
脺zr ist蓹yirik.
>> VANESSA: yaln谋z m蓹hdud sayda var t蓹msil oluna bil蓹r ki, n枚mr蓹l蓹ri
Bir, d蓹 ist蓹yirik, 莽眉nki bizim halda, bir 32-bit sistem.
Bel蓹likl蓹, siz c眉r var bir 蓹d蓹d t蓹艧kil edir.
>> JASON Hirschhorn: Bel蓹 ki, do臒ru.
Yaln谋z m眉蓹yy蓹n bir m蓹bl蓹臒i var t蓹msil oluna bil蓹r ki 蓹d蓹d.
Iki 莽ox b枚y眉k n枚mr蓹l蓹ri 莽oxaltmaq 蓹g蓹r, Bu m蓹bl蓹臒 da艧q谋n bil蓹r
f蓹zalar谋nda siz t蓹msil etm蓹k tam.
B蓹z蓹n biz istifad蓹 edirik bir 蓹v蓹zin蓹 int uzun uzun.
Daha bo艧luq var.
Ki, bir daha 莽ox a莽a bil蓹r.
>> 脺z蓹n point d蓹qiq n蓹 var ki, h蓹m d蓹 n蓹 var
decimal n枚mr蓹l蓹ri fakt谋 h蓹mi艧蓹 t蓹msil deyil.
脺zr ist蓹yirik.
G枚r眉nt眉l蓹rini geri up qoymaq ed蓹k.
The decimal say谋 1.0 h蓹mi艧蓹 deyil sizin kimi t蓹msil g枚zl蓹m蓹k olard谋,
1,000000000.
B蓹z蓹n kimi t蓹msil olunur 1,000000001 v蓹 ya 0,999999999.
Bu h蓹tta 89 at谋lan bil蓹r haradasa orada.
Bel蓹 ki, h蓹min decimal 蓹d蓹d deyil d蓹qiq oldu臒u kimi t蓹msil
onlara t蓹msil g枚zl蓹yirik.
>> Bel蓹 ki, problem m眉蓹yy蓹n -
iki idi? -
problem biz m蓹艧臒ul oldu臒u iki, m眉蓹yy蓹n biz ist蓹yirdi zaman 眉z蓹n point n枚mr蓹l蓹ri,
onlara biz n蓹 ist蓹diyini d蓹qiq t蓹msil etm蓹k onlara t蓹msil etm蓹k, say谋
pennies, v蓹 ya sent say谋, biz 100 onlar谋 莽oxaltmaq.
Biz onlar谋 dair蓹vi.
V蓹 sonra biz h蓹r 艧eyi k蓹sm蓹k Bu k蓹sir arxas谋nda.
T蓹min etm蓹k 眉莽眉n idi ki, onlar ki, biz n蓹 ist蓹diyini d蓹qiq h蓹qiq蓹t蓹n b蓹rab蓹r
onlara b蓹rab蓹r.
>> 茝g蓹r bir 艧ey almaq zaman ki, 莽眉nki bir float v蓹 bir int 莽evirm蓹k
sa臒 h蓹r 艧ey k蓹sm蓹k Bu k蓹sir.
B蓹zi 眉z蓹n point var, 莽眉nki qeyri-d蓹qiqlik, 100.000 ola bil蓹r
99,999999999 kimi t蓹msil.
V蓹 yaln谋z h蓹r 艧ey k蓹sm蓹k 蓹g蓹r hemen sa臒, siz olacaq
yanl谋艧 say谋 almaq.
B蓹li.
>> T茝L茝B茝: M蓹n bir sual haqq谋nda t枚km蓹.
N蓹 眉莽眉n ba艧 verir?
Siz float etm蓹k ist蓹yirsinizs蓹, m枚t蓹riz蓹d蓹, 1 b枚l眉n眉r 10, 1, 10 il蓹 b枚l眉n眉r yoxdur etmir
sonra 0.1 almaq, sonra d枚n眉b bir float daxil o?
>> JASON Hirschhorn: 茝g蓹r 10 b枚l眉n眉r 1 float -
>> T茝L茝B茝: B蓹li, v蓹 sonra b蓹rab蓹rdir -
yax艧谋, bu zamanki bu b蓹rab蓹r var -
B蓹li.
Siz bir float etm蓹k ist蓹yirsiniz?
>> JASON Hirschhorn: OK, bel蓹 ki, biz olacaq h蓹yata figuring segue istifad蓹
Bu suallara cavab kodla艧d谋rma vasit蓹sil蓹.
Siz y蓹qin ki, bir 莽ox laz谋md谋r, 莽眉nki bu d蓹qiq蓹 suallar, v蓹 yax艧谋 bir yol
onlar谋 h蓹ll etm蓹k 眉莽眉n kodla艧d谋rma vasit蓹sil蓹.
Bel蓹likl蓹, biz, indi bu h眉ququ kod olacaq sonra biz geri getm蓹k 眉莽眉n ged蓹n v蓹 edirik
Siz idi sual kodu.
>> Bel蓹 ki, ilk line -
M蓹n bunu yaz谋l谋 olmamal谋d谋r - n蓹 biz n蓹 etm蓹k ist蓹diyiniz ilk 艧ey biz
gedit yeni bir fayl a莽maq?
>> T茝L茝B茝: 蓹lav蓹 edin.
>> JASON Hirschhorn: n蓹 蓹lav蓹?
>> T茝L茝B茝: CS50 kitabxana.
>> JASON Hirschhorn: OK.
Biz n蓹 daxil olmal谋d谋r?
Biz yaln谋z n蓹 yoxlamaq olacaq Bir float 眉莽眉n bir 艧ey t枚km蓹 zaman.
Amma n蓹 biz 蓹g蓹r daxil etm蓹k laz谋md谋r C proqram yazmaq 眉莽眉n gedir?
>> T茝L茝B茝: Standard I / O.
>> JASON Hirschhorn: stdio.h.
Biz, h蓹qiq蓹t蓹n, bu, laz谋m deyil proqram, cs50.h, bu baxmayaraq
daxil h蓹mi艧蓹 faydal谋.
Amma biz h蓹mi艧蓹 stdio.h laz谋md谋r.
>> T茝L茝B茝: C kodla艧d谋rma zaman?
>> JASON Hirschhorn: C. kodla艧d谋rma zaman
>> M蓹n bu. C fayl谋 olaraq qeyd edin.
M蓹n b蓹zi g枚z蓹l sintaksis i艧谋qland谋r谋lmas谋 almaq.
M蓹n 蓹sas daxili bo艧luq yazd谋.
Void n蓹 dem蓹kdir?
>> T茝L茝B茝: hans谋 almaq deyil command-line d蓹lill蓹ri.
>> JASON Hirschhorn: bu Void vasit蓹l蓹ri, halda, 蓹sas hans谋 etmir
command-line d蓹lill蓹ri.
Dig蓹r hallarda, bu funksiyas谋 dem蓹kdir komanda-line d蓹lill蓹ri da艧谋m谋r.
V蓹 ya funksiyas谋, M蓹n 蓹g蓹r etibars谋z yazmaq 蓹sas (void) ki, 蓹sas var dey蓹rdim
bir 艧ey qaytar谋lmas谋 deyil.
Bel蓹 ki, etibars谋z yaln谋z he莽 bir 艧ey dem蓹kdir.
M蓹n 眉莽眉n, 蓹g蓹r m蓹n n蓹 yazmaq olard谋 command-line d蓹lill蓹ri almaq?
>> T茝L茝B茝: int arc c string arc qar艧谋
>> JASON Hirschhorn: int argc string argv.
Do臒rudurmu?
>> T茝L茝B茝: Bu char ulduz argv m枚t蓹riz蓹d蓹 var.
>> JASON Hirschhorn: Bel蓹likl蓹, siz yazmaq bil蓹r string argv M枚t蓹riz蓹d蓹 v蓹 ya char ulduz argv
M枚t蓹riz蓹d蓹, ancaq m枚t蓹riz蓹 laz谋md谋r.
Argv bir s谋ra edir, 莽眉nki strings, xat谋rlay谋ram.
Bu, sad蓹c蓹 bir string deyil.
Bel蓹 ki, simli argv, burada edir bir string argv adlan谋r.
String argv M枚t蓹riz蓹d蓹, burada edir strings bir s谋ra.
Bel蓹 ki, int argc string argv M枚t蓹riz蓹d蓹 bir 艧ey olard谋 ki, m蓹n
y蓹qin ki, yazmaq olard谋.
>> Bel蓹 ki, bir tam saxlamaq ist蓹yirdi?
>> T茝L茝B茝: B蓹li, tam.
V蓹 ya bir float.
>> JASON Hirschhorn: bir float ild蓹?
Kimi, float x 10 b枚l眉n眉r 1 b蓹rab蓹rdir.
>> JASON Hirschhorn: OK.
M蓹n printf bir float 莽ap edirsiniz?
N蓹?
>> T茝L茝B茝:% f.
>> JASON Hirschhorn:% f.
Bir tam n蓹 var?
d v蓹 ya i.
Bir string n蓹dir?
>> T茝L茝B茝: s.
>> JASON Hirschhorn: s.
M蓹n yeni bir x蓹tt al谋ram?
>> T茝L茝B茝: backslash n.
>> JASON Hirschhorn: M蓹n n蓹 qay谋tmaq yoxdur 蓹sas 莽al谋艧谋r do臒ru 蓹g蓹r?
>> T茝L茝B茝: 0.
M蓹n d蓹, bu x蓹tt yazmaq laz谋md谋r?
>> T茝L茝B茝: No
OK, biz sonra, onu yazmaq olmaz.
Ham谋 oxuya bil蓹rsiniz?
Bu bir az ki莽ik g枚r眉n眉r.
Ham谋 g枚rm蓹k, v蓹 ya olmal谋d谋r bil蓹r M蓹n bu b枚y眉k etm蓹k?
M蓹n kamera 眉莽眉n, biz ed蓹c蓹yik edir蓹m baxmayaraq ki, bir az daha b枚y眉k.
>> JASON Hirschhorn: M蓹n bu 莽evirm蓹k ist蓹yirsinizs蓹 . Y眉r眉t眉lebilir daxil fayl c, n蓹
M蓹n yazmaq edirsiniz?
>> T茝L茝B茝: test olun.
>> JASON Hirschhorn: Ba臒谋艧lay谋n?
>> T茝L茝B茝: test olun.
>> JASON Hirschhorn: test olun.
Biz s枚hb蓹t 蓹vv蓹ll蓹r bu x蓹tt.
Cingilti.
Cingilti n蓹dir?
Compiler ad谋.
Bu x蓹tt n蓹dir?
>> T茝L茝B茝: gdb istifad蓹 眉莽眉n bu q蓹d蓹r edir.
>> JASON Hirschhorn: Sets Bu q蓹d蓹r gdb istifad蓹 眉莽眉n.
Bu x蓹tt ki, n蓹 var?
>> T茝L茝B茝: Source kodu.
>> JASON Hirschhorn: Bu var m蓹nb蓹 fayl,. c fayl谋.
Bu iki x蓹tl蓹ri n蓹 etm蓹liy蓹m?
V蓹 ya bu iki x蓹ttl蓹ri.
>> T茝L茝B茝: Bu adlar test.
>> JASON Hirschhorn: Bel蓹 dash o deyir, f蓹rqli bir 艧ey ad谋n谋.
V蓹 burada test z蓹ng edirik.
M蓹n ki olmasayd谋, n蓹 bu ad verm蓹k olard谋?
>> T茝L茝B茝: A.out.
>> JASON Hirschhorn: A.out.
Bu n蓹 edir?
>> T茝L茝B茝: riyaziyyat kitabxana Linkl蓹r.
>> JASON Hirschhorn: Bu links riyaziyyat kitabxana.
Biz riyaziyyat kitabxana daxildir, lakin etm蓹di ki, 眉mumi var-ci ild蓹n, onlar var
yaz谋l谋 markas谋 h蓹mi艧蓹 daxil riyaziyyat kitabxana.
V蓹 bel蓹c蓹, bu daxildir CS50 kitabxana.
>> Biz siyah谋s谋n谋 蓹g蓹r OK, bel蓹 ki, biz indi test adl谋 bir proqram.
Onu icra etm蓹k, m蓹n test yazmaq.
M蓹n 眉z蓹n point g枚r眉r眉k g枚zl蓹nildiyi kimi, 0 b蓹rab蓹rdir.
Ki, yoxdur -
bel蓹 -
>> T茝L茝B茝: Sonra qoymaq 蓹g蓹r, indi float kimi float kimi salmaq -
>> JASON Hirschhorn: Y眉ng眉l lehimli bir float 1?
>> T茝L茝B茝: Xeyr, tam 艧ey t枚km蓹 -
B蓹li.
Siz yaln谋z 蓹g蓹r, ki ki, 0.1 etm蓹k?
>> JASON Hirschhorn: OK, bel蓹 ki, h蓹qiq蓹t蓹n tez 1 10 b枚l眉n眉r, o
integers b枚l眉n眉r olunur.
Siz integers b枚lm蓹k zaman Bel蓹 ki, onlar 0, v蓹 siz q蓹na蓹t etdiyiniz 0 il蓹
莽izgi 莽眉nki, float yaln谋z tam b枚lg眉s眉.
Bel蓹 ki, indi biz bir 艧ey d枚n眉艧 edirik bir float daxil.
>> N蓹 g枚rm蓹k ed蓹k.
Biz test etm蓹k laz谋md谋r.
Bel蓹 ki, indi biz slash olmad谋臒谋n谋 g枚rm蓹k tam b枚lg眉s眉, bu 眉z蓹n edilib
point b枚lm蓹.
脟眉nki onun d蓹lill蓹ri biri bir float t枚km蓹 edilmi艧dir.
Bel蓹 ki, indi bu m眉alic蓹, deyirdi b枚lm蓹 biz il蓹 m蓹艧臒ul oldu臒unuz kimi
眉z蓹n bal deyil, integers il蓹.
V蓹 bel蓹 ki, biz g枚zl蓹yirik cavab almaq.
>> N蓹 g枚rm蓹k ed蓹k -
oops.
M蓹n daha decimal 莽ap etm蓹k ist蓹di l蓹k蓹l蓹r, nec蓹 ki, bunu ed蓹 bil蓹r?
>> T茝L茝B茝: Point dot f, v蓹 ya kimi bir 莽ox Ist蓹diyiniz kimi decimal yerl蓹ri.
>> JASON Hirschhorn: M蓹n 莽ap 10 decimal l蓹k蓹l蓹r.
V蓹 biz indi 蓹ld蓹 edirik g枚r眉r眉k b蓹zi q蓹rib蓹 stuff.
V蓹 geri suala gedir haqq谋nda point qeyri-d蓹qiqlik 眉z蓹n.
Burada saxlan谋l谋r q蓹rib蓹 stuff var.
>> OK, sizin suala cavab verir?
Ba艧qa n蓹 ist蓹yirsiniz tez kod?
>> T茝L茝B茝: M蓹n yaln谋z v蓹 ya g枚rm蓹k ist蓹yirdi deyil, b蓹zi g枚st蓹rici azad 蓹g蓹r,
ki, pointer h蓹l蓹 saxlanan olub bu olmu艧dur n蓹 眉nvan谋
蓹vv蓹ll蓹r i艧ar蓹.
>> JASON Hirschhorn: OK, bel蓹 ki, n蓹 ed蓹k.
Char star Ptr, bu d蓹yi艧蓹n yarad谋r n枚v眉 char ulduz Ptr 莽a臒谋r谋b.
Nec蓹 malloc yazmaq edirsiniz?
Alden?
>> ALDEN: Just malloc.
Lakin o, 枚l莽眉s眉 olmal谋d谋r, v蓹 bu halda, siz蓹 ist蓹diyiniz tapmaq
char i艧ar蓹 etm蓹k.
Bel蓹 ki, char olar谋q.
>> JASON Hirschhorn: OK, bel蓹 ki, daha 莽ox generically, Inside -
nin edit imkan verir.
Malloc Inside, siz say谋 ist蓹yir蓹m olan y谋臒谋n bayt.
脺mumiyy蓹tl蓹, n蓹 biz ist蓹yirik ki, g枚rd眉k bunu biz malloc olacaq edir
m蓹s蓹l蓹n strings, v蓹 ya integers Diziler.
Bel蓹 ki, biz 10 integers v蓹 ya 10 ist蓹yirsinizs蓹 chars, 10 biz蓹 10 ver蓹c蓹k.
V蓹 sonra chars 枚l莽眉s眉 ver蓹c蓹k biz蓹 chars 枚l莽眉s眉 olan
Bu halda 1 byte edir.
Biz 10 bayt almaq.
Biz int 枚l莽眉s眉 yazmaq olsayd谋, biz蓹 40 bytes ver蓹c蓹k.
>> Bel蓹 ki, daha 莽ox 眉mumi, malloc daxilind蓹 ist蓹diyiniz bayt say谋.
Bu halda, biz 1 byte 蓹ld蓹 edirik.
Bir q蓹rib蓹 istifad蓹 kimi g枚r眉n眉r Hans谋 malloc, lakin bizim
m蓹qs蓹dl蓹ri 蓹h蓹miyy蓹t k蓹sb edir.
Bel蓹 ki, var.
>> Biz pulsuz z蓹ng etm蓹k olacaq.
Biz onu qurtarmaq v蓹 biz yen蓹 Ptr istifad蓹 edin.
V蓹 yoxlamaq 眉莽眉n n蓹 ist蓹yirsiniz?
>> T茝L茝B茝: M蓹n yaln谋z olub-olmad谋臒谋n谋 yoxlamaq ist蓹yirdi v蓹 ya bir 艧ey var idi
Bunun i莽蓹risind蓹.
>> JASON Hirschhorn: Bel蓹 olub bir 艧ey i艧ar蓹?
>> T茝L茝B茝: B蓹li, m蓹hz, olub h蓹l蓹 bir yadda艧 眉nvan idi.
>> JASON Hirschhorn: Bel蓹 ki, ist蓹diyiniz Ptr d蓹y蓹ri yoxlamaq 眉莽眉n?
>> T茝L茝B茝: B蓹li, d蓹qiq.
>> JASON Hirschhorn: M蓹n burada n蓹 yazmaq M蓹n d蓹y蓹ri yoxlamaq ist蓹yirsinizs蓹
point - n蓹, Jordan d蓹y蓹ri, dedi?
Yoxsa n蓹 Ptr daxilind蓹 saxlan谋l谋r?
>> T茝L茝B茝: A yadda艧 眉nvan谋.
>> JASON Hirschhorn: A yadda艧 眉nvan谋.
M蓹n yaln谋z bu yazmaq Bel蓹 ki, bu laz谋md谋r M蓹n蓹 Ptr d蓹y蓹r verir.
V蓹 nec蓹 莽ap yoxdur yadda艧 眉nvan谋?
Bu format string n蓹dir yadda艧 眉nvan 眉莽眉n?
>> T茝L茝B茝:% p.
>> JASON Hirschhorn:% p.
% S simli edir.
G枚st蓹rici% p.
Do臒rudurmu?
Bu do臒ru deyil.
Bel蓹 ki, Ptr b蓹rab蓹rdir -
Bu h蓹l蓹 d蓹 bir 艧ey var.
Bu y蓹qin ki, bir daha maraql谋 sual.
Ki line n蓹 edir?
>> T茝L茝B茝: Seg faylar.
>> JASON Hirschhorn: N蓹?
>> T茝L茝B茝: M蓹n 莽at谋艧mazl谋qlar seg d眉艧眉n眉r蓹m.
>> JASON Hirschhorn: Hm?
>> T茝L茝B茝: M蓹n bu seg g眉nah laz谋md谋r d眉艧眉n眉r蓹m.
>> JASON Hirschhorn: Bel蓹 ki, bu x蓹tt kodu, ulduz Ptr, n蓹
ulduz dem蓹kdir?
>> T茝L茝B茝: m蓹zmun.
>> JASON Hirschhorn: B蓹li.
M蓹zmununu almaq 眉莽眉n getm蓹k.
Bel蓹 ki, bu xatir蓹sin蓹 getm蓹k 眉莽眉n gedir orada h蓹ll v蓹 m蓹n蓹 verir.
M蓹n burada% c istifad蓹 莽眉nki var simvol orada saxlan谋l谋r.
Bel蓹 ki, 眉nvan谋 biz getm蓹k olacaq yaln谋z g枚rd眉m - v蓹 ya y蓹qin ki, bir olacaq
az f蓹rqli bu Biz proqram run vaxt.
Amma biz ki, 眉nvan ged蓹c蓹y蓹m biz h蓹l蓹 d蓹 m枚vcuddur bilirik olan
v蓹 var n蓹 g枚rm蓹k.
>> Bel蓹 ki, seg g眉nah etm蓹yib.
Bu, yaln谋z biz蓹 bir 艧ey verm蓹di.
Bu, h蓹qiq蓹t蓹n, biz蓹 verilmi艧 ola bil蓹r bir 艧ey, biz yaln谋z bunu g枚rm蓹k bilm蓹z.
V蓹 geri bu fikr蓹 gedir -
v蓹 biz daxil 莽ox almaq fikrind蓹 deyilik Bu ki, k蓹narda, 莽眉nki
Bu kurs daxilind蓹.
Biz 蓹g蓹r biz, burada b蓹hs t蓹r蓹find蓹n array k蓹narda getdi
1, biz 莽蓹tinliy蓹 ala bil蓹r.
>> B蓹z蓹n, yaln谋z 1-off getm蓹k zaman, Siz s蓹hv etdiyini v蓹 edirik
sorun almaq bil蓹r.
Amma h蓹mi艧蓹 莽蓹tinliy蓹 yoxdur.
Bu as谋l谋d谋r n蓹 q蓹d蓹r pis bir 艧ey siz , sorun almaq olacaq yoxdur.
Sloppy olmaq dem蓹k deyil Sizin kodu.
Lakin bu proqram deyil, dem蓹k 茝g蓹r haradasa getm蓹k, h蓹tta h蓹mi艧蓹 莽谋xmaq
Siz getm蓹k ehtimal deyilik.
>> Ki, bir yax艧谋 n眉mun蓹, bir 莽ox onlar谋n problem insanlar谋n, 3 m眉蓹yy蓹n ed蓹n
15 yoxlamaq deyildi hey蓹ti h蓹ddi.
Bel蓹likl蓹, siz baxd谋, sola baxd谋 sa臒, baxd谋, 眉st baxd谋
alt.
Amma kontrol olmasayd谋 top h蓹qiq蓹t蓹n 艧uras谋 olacaq.
V蓹 etdi insanlar谋n bir 莽ox v蓹 ki 莽谋xd谋, proqram i艧l蓹yib
m眉k蓹mm蓹l, harada ki, board idi, 莽眉nki Bir getdi 蓹g蓹r, yadda艧谋nda saxlan谋l谋r
yuxar谋da v蓹 ya yoxlan谋l谋r yadda艧 眉nvan谋, bir 艧ey yox idi
ki, x眉susil蓹 d蓹h艧蓹tli, bel蓹 ki, sizin proqram deyil
siz蓹 f蓹臒an.
>> Amma biz h蓹l蓹 xal off almaq 蓹g蓹r siz ki, yoxlamaq etm蓹di siz, 莽眉nki
Siz deyil, bir 艧ey etdikl蓹rini n蓹 etm蓹li, v蓹 siz ola bil蓹r
莽蓹tinliy蓹 kazan谋lm谋艧.
Oran siz y蓹qin ki, etm蓹di, baxmayaraq ki, var.
Bel蓹 ki, bu, b蓹li, g枚st蓹rm蓹k 眉莽眉n biz h蓹l蓹 d蓹 bil蓹rsiniz.
V蓹 biz 蓹ld蓹 deyilik bu halda narahatl谋q.
Biz oxumaq etm蓹y蓹 莽al谋艧d谋q 茝g蓹r N枚vb蓹ti 100 simvol, biz had
y蓹qin ki, sorun almaq.
V蓹 n枚vb蓹ti 100 oxu kod bil蓹r simvol b蓹zi etm蓹kl蓹 ist蓹yirsinizs蓹
sort loop 眉莽眉n.
B蓹li.
>> T茝L茝B茝: biz t蓹yin edilmi艧dir ild蓹n ki, space faktiki d蓹y蓹ri, biz deyil ki
h蓹qiq蓹t蓹n bir 艧ey g枚rm蓹k m眉mk眉n.
Biz q蓹bulu il蓹 c蓹hd etm蓹lidir ki, c v蓹 ya bir 艧ey kimi b蓹rab蓹rdir?
>> JASON Hirschhorn: B枚y眉k sual.
Nec蓹 ki, d蓹y蓹ri yoxdur -
n蓹 kodu x蓹tt I line yazmaq yeddi siz蓹 n蓹 etm蓹li?
>> T茝L茝B茝: Star Ptr vahid b蓹rab蓹rdir quote bir quote son c.
>> JASON Hirschhorn: Bel蓹 ki qoyulmas谋 bir xarakter, c, o yeri,
莽眉nki daha ki, ulduz orada getm蓹k dem蓹kdir.
V蓹 sol t蓹r蓹fd蓹n istifad蓹 ed蓹rk蓹n bir tap艧谋r谋q operator ki, b蓹rab蓹rdir
imza, biz almaq fikrind蓹 deyilik ki, d蓹y蓹r ki, d蓹y蓹ri m眉蓹yy蓹n q蓹d蓹r.
陌ndi n蓹 g枚rm蓹k ed蓹k.
>> Biz orada bir 艧ey qoymaq v蓹 orada idi.
Biz pulsuz 莽a臒谋r谋b.
B蓹zi m蓹hsullar谋 y蓹qin ki, ba艧 y谋臒谋n.
Bel蓹 ki, art谋q yoxdur.
Ancaq yen蓹 d蓹, biz 蓹ld蓹 deyilik orada ged蓹n problem.
>> M蓹n g枚st蓹rm蓹k kodu bu h蓹yata yap媒yorum ki, bu bir 莽ox
Siz ki, sual, onlar h蓹qiq蓹t蓹n maraql谋
莽ox vaxt cavab verir.
Onlar, h蓹qiq蓹t蓹n, yax艧谋 suallar ist蓹yirik.
V蓹 onlar谋 anlamaq bil蓹r 脰z 蓹g蓹r, misal 眉莽眉n,
biz b枚lm蓹sind蓹 deyilik.
B蓹li.
>> T茝L茝B茝: Siz g枚nd蓹rilm蓹si deyilik 脟眉nki yerd蓹 g枚st蓹rici, siz laz谋md谋r
malloc istifad蓹?
>> JASON Hirschhorn: Bel蓹 ki, bu geri gedir ilkin suala.
[? ?]
Yaln谋z bir yerli d蓹yi艧蓹n deyil?
Burada malloc 莽ekici deyil.
Burada malloc istifad蓹 deyil 莽眉nki 莽ekici
yaln谋z bir yerli d蓹yi艧蓹n.
>> T茝L茝B茝: Bel蓹 ki, char ed蓹 bil蓹r star Ptr salam b蓹rab蓹rdir?
>> JASON Hirschhorn: Oh.
Bel蓹likl蓹, biz indi geri almaq olacaq ilkin suala.
M蓹n siz蓹 raz谋 deyildi m蓹nim cavab.
OK?
Ki, kimi?
>> T茝L茝B茝: B蓹li.
G枚zl蓹yin.
>> JASON Hirschhorn: V蓹 Siz 莽ap ist蓹yirsiniz?
Bel蓹 ki, kimi bir string 莽ap laz谋md谋r?
>> T茝L茝B茝: Maraql谋.
>> JASON Hirschhorn: Bel蓹 ki, bu deyir m眉bahis蓹 xarakteri n枚v眉 var.
Bel蓹 ki, bu bir xarakter olmal谋d谋r.
>> T茝L茝B茝: Just ilk birini tutur.
>> JASON Hirschhorn: Bel蓹 ki, bu M蓹n 蓹vv蓹l qeyd edir.
Like M蓹n saxlan谋lmas谋 deyil, ifad蓹 d蓹yi艧蓹n g枚st蓹rici i莽蓹risind蓹 string.
Bu saxlan谋lmas谋 oldu -
>> T茝L茝B茝: ilk d蓹y蓹ri simli.
>> JASON Hirschhorn: 眉nvan simli ilk d蓹y蓹ri.
Biz bu 莽ap olsayd谋, biz ist蓹yirik g枚st蓹rici i莽蓹risind蓹 d蓹y蓹r 蓹ld蓹.
V蓹 biz, h蓹qiq蓹t蓹n, oldu臒unu g枚r蓹c蓹ksiniz bir yadda艧 眉nvan谋.
>> Ki, hissi edirmi?
脺zr ist蓹yirik.
Ki, cavab vermir, g枚zl蓹yin sual olsa?
>> T茝L茝B茝: B蓹li.
>> JASON Hirschhorn: kodu Bu x蓹tt bir simli v蓹 sonra ba艧qa bir yarad谋lmas谋
i艧ar蓹 d蓹yi艧蓹n pointer ki, simli ki, array.
B蓹li.
>> Biz bir yadda艧 getdi 蓹g蓹r: STUDENT daha m眉raci蓹t, biz h almaq olar?
Bir string kimi saxlan谋l谋r?
>> JASON Hirschhorn: kimi, biz -
Bunu 眉莽眉n qiym蓹tlidir.
Bu point arithmetic, siz u艧aqlar edir 蓹vv蓹l g枚r眉ld眉 v蓹 olmal谋d谋r
il蓹 nisb蓹t蓹n rahat.
Bu yaz谋 yax谋n edir -
biz kodu bu x蓹tt yazmaq idi, 蓹g蓹r biz 蓹vv蓹l array notation g枚rd眉m.
Bu, biz蓹 ikinci verm蓹lidir Bu array, h d蓹y蓹r.
>> Biz bunu, bu da verm蓹lidir us ki serial谋n ikinci d蓹y蓹r.
Bu yadda艧 眉莽眉n gedir, 莽眉nki ilk 艧ey 眉nvan谋, ancaq
art谋q 艧ey yadda艧 眉nvan谋.
V蓹 sonra star operator dereferences ki, pointer.
V蓹 yen蓹, g枚r蓹k.
Biz yen蓹 h almaq.
>> T茝L茝B茝: n蓹 d蓹qiq dem蓹k dereference?
>> JASON Hirschhorn: dereference getm蓹k 眉莽眉n bir x眉lya s枚z.
Ki, getm蓹k v蓹 orada n蓹 almaq bir g枚st蓹rici dereference edir.
Bu yaln谋z bir x眉lya s枚z var.
>> Biz 莽ap ist蓹yirdi: STUDENT b眉t眉n simli, ola bil蓹r biz
i艧areti g枚st蓹rici n蓹?
>> JASON Hirschhorn: OK, biz burada fasil蓹 olacaq.
Biz burada son gedir.
Ampersand bir 眉nvan谋n谋 verir yeri, bel蓹 ki, siz i艧areti etm蓹k
d蓹yi艧蓹n, siz 眉nvan谋 verir ki, d蓹yi艧蓹n saxlan谋l谋r yerl蓹艧ir.
Ampersand pointer siz ver蓹c蓹k Ptr yadda艧谋nda oldu臒u Ptr 眉nvan谋.
>> Biz getm蓹k fikrind蓹 deyilik Bu n眉mun蓹 il蓹.
Bu anlamaq bil蓹r 枚z 艧eyl蓹r.
Amma yen蓹 d蓹, bu, h蓹tta bir verging bil蓹r Sizin 眉莽眉n bilm蓹k laz谋md谋r n蓹 k蓹narda bit
bu orta m眉dd蓹tli dair蓹si -
v蓹 ya bu viktorina, olduqca.
脺zr ist蓹yirik.
>> M蓹n, 莽眉nki h蓹r蓹k蓹t edir bir kodla艧d谋rma problem etm蓹k ist蓹yir蓹m
Zaman q蓹d蓹r 蓹vv蓹l.
V蓹 biz n蓹 kod gedir Bu 蓹n 莽ekici
n眉mun蓹l蓹ri, atoi.
Bel蓹 ki, bu bir sual idi iki il 蓹vv蓹l bir viktorina.
V蓹 m蓹n burada board var.
>> 陌nsanlar viktorina soru艧uldu -
onlar bir az daha tesxt verildi sual, amma aradan
g蓹r蓹ksiz oldu臒unu m蓹tn 莽眉nki indi bizim m蓹qs蓹dl蓹ri 眉莽眉n.
Bu, yaln谋z bir fon idi n蓹 atoi haqq谋nda.
Amma b眉t眉n bilirik v蓹 莽ox ATOI il蓹 tan谋艧.
>> M蓹n siz蓹 bu kod g蓹lir ka臒谋z bir hesabat谋.
M蓹n d蓹 siz蓹 strategiya istifad蓹 g蓹lir biz art谋q getdi etdik ki,
bizim b枚lm蓹sind蓹 bir 莽ox.
Birincisi, 蓹min anlaya n蓹 atoi 蓹m蓹lind蓹ndir.
艦蓹kil 莽蓹km蓹k v蓹 ya bir il蓹 g蓹lm蓹k Ba艧谋n谋za psixi image.
Next, bu pseudocode yazmaq.
Viktorina, siz b眉t眉n 蓹g蓹r pseudocode, 蓹n az谋
bir 艧ey yazmaq.
V蓹 sonra 眉z蓹rin蓹 ki, pseudocode x蓹rit蓹si C. Siz bir 莽ek varsa sizin
pseudocode kimi yoxlamaq 蓹g蓹r bir 艧ey 1, sanki 眉z蓹rind蓹 x蓹rit蓹l蓹r edir
s v蓹ziyy蓹ti v蓹.
V蓹 n蓹hay蓹t, C. proqram谋 kod
>> Bel蓹 ki, geri ATOI getm蓹k v蓹 be艧 d蓹qiq蓹 bir hesabat谋nda bu kod
haqq谋nda y蓹qin olan ka臒谋z, Bir almaq olacaq zaman m蓹bl蓹臒i
kodu ATOI viktorina.
Be艧 15 d蓹qiq蓹, be艧 be艧, 12 10 d蓹qiq蓹, m蓹bl蓹臒i haqq谋nda
Bu s蓹rf ist蓹diyiniz zaman Viktorinada sual.
Bel蓹 ki, indi be艧 d蓹qiq蓹 xahi艧 edirik.
V蓹 h蓹r hans谋 bir sual谋n谋z varsa, qald谋rmaq 蓹l v蓹 m蓹n 蓹traf谋nda g蓹lm蓹k laz谋md谋r.
>> [SIDE S枚hb蓹tl蓹r]
>> JASON Hirschhorn: OK, bel蓹 ki, ki, be艧 d蓹qiq蓹 idi.
Bu m蓹bl蓹臒in y蓹qin idi zaman, bir viktorina ki s蓹rf ediyorum
O zaman b蓹lk蓹 a艧a臒谋 sonu.
Biz bir az Recap laz谋md谋r.
Biz蓹 bu kodla艧d谋rma ba艧lamaq ed蓹k.
V蓹 biz b眉t眉n yolu yoxdur, 蓹g蓹r, bu cavab v蓹 bu
viktorina sual yen蓹 m枚vcuddur, Fall 2011 sual zaman
viktorina 莽谋xd谋.
>> V蓹 s蓹kkiz bal d蓹y蓹r idi viktorina sonra.
S蓹kkiz xal y眉ks蓹k sonunda edir bal bir 艧ey m蓹bl蓹臒i d蓹y蓹r.
茝n suallar interval谋nda bir alt谋 xal.
Bel蓹 ki, bu bir daha 莽蓹tin 蓹min 眉莽眉n sual.
M蓹n蓹 he莽 ba艧lamaq ed蓹 bil蓹r蓹mmi?
>> 脺mumiyy蓹tl蓹, biz gedir Bu etm蓹k ist蓹yir蓹m
m蓹ntiqi, ATOI f蓹aliyy蓹t?
Biz n蓹 ist蓹yirik?
Bel蓹likl蓹, biz yazmaq olacaq b蓹zi pseudocode.
>> T茝L茝B茝: simvol Convert integers daxil.
>> JASON Hirschhorn: simvol Convert integers daxil.
OK.
Bel蓹 ki, nec蓹 莽ox simvol biz ke莽m蓹k laz谋md谋r gedir?
>> T茝L茝B茝: Onlar谋n ham谋s谋.
>> T茝L茝B茝: B眉t眉n simvol simli.
>> JASON Hirschhorn: Ham谋s谋 simli simvol.
Biz h蓹r vasit蓹sil蓹 getm蓹k ist蓹yirdi Bel蓹 ki, 蓹g蓹r simli xarakter, bir 艧ey n蓹dir
C biz imkan verdi ki, g枚rd眉m Biz蓹 h蓹r vasit蓹sil蓹 getm蓹k 眉莽眉n
simli xarakter?
>> T茝L茝B茝L茝R: loop 眉莽眉n.
>> JASON Hirschhorn: loop 眉莽眉n.
Bel蓹likl蓹, biz vasit蓹sil蓹 loop olacaq 蓹 h蓹r character.
>> Sonra biz n蓹 ist蓹yirik gedir biz x眉susi xarakter almaq zaman?
Biz 90 q蓹bul edirik deyirl蓹r.
Biz 9 almaq.
Bu bir xarakter var.
Biz n蓹 il蓹 n蓹 ist蓹yirsiniz ki, xarakter 9?
>> T茝L茝B茝: xarakter 0 onu 莽谋xar?
>> T茝L茝B茝: 0 Add?
>> JASON Hirschhorn: 莽谋xar xarakter 0 onu?
>> T茝L茝B茝: B蓹li.
>> JASON Hirschhorn: Niy蓹 Bunu etm蓹k ist蓹yirsiniz?
>> T茝L茝B茝: [i艧itilemez]
d蓹y蓹r.
Onun int d蓹y蓹r.
>> JASON Hirschhorn: OK, bel蓹 ki, biz almaq xarakter 9 d蓹n 莽谋xmaq
karakter 0 bir almaq 眉莽眉n faktiki tam 9.
Sweet.
V蓹 nec蓹 ki, karakter bilmir蓹m 9 0 minus karakter 9?
Siz n蓹 chart baxmaq idi?
>> T茝L茝B茝: doqquz m蓹ntiqi var 9 v蓹 0 aras谋nda yerl蓹ri.
V蓹 ya ASCII masa baxmaq bil蓹r.
>> JASON Hirschhorn: ASCII masa.
Amma b蓹li, siz d蓹 do臒ru dan谋艧谋rs谋n谋zsa.
Bel蓹likl蓹, biz 0 莽谋xmaq.
Bel蓹 ki, indi biz tam 9 var.
V蓹 biz n蓹 il蓹 n蓹 ist蓹yirsiniz?
Biz 90 varsa, ilk tam deyil biz n蓹 ist蓹yirik?
>> T茝L茝B茝: M蓹n m眉v蓹qq蓹ti tam qoymaq ist蓹diyiniz array, sonra ona riyaziyyat etm蓹k
sonra sona daxil etm蓹k 眉莽眉n.
>> JASON Hirschhorn: OK.
>> T茝L茝B茝: Siz sonunda ba艧laya bil蓹rsiniz sonra array v蓹 ir蓹li h蓹r蓹k蓹t
ki, ir蓹li h蓹r蓹k蓹t h蓹r zaman, Siz 10 il蓹 莽oxaltmaq.
>> JASON Hirschhorn: OK.
Ki, olduqca kimi s蓹sl蓹nir 莽ekici fikir.
Biz serial谋n sonunda ba艧laya bil蓹rsiniz, v蓹 biz strleng istifad蓹 ed蓹 bil蓹rsiniz.
Biz burada strleng istifad蓹 ed蓹 bil蓹rsiniz.
Biz simli uzunlu臒u almaq laz谋md谋r.
Biz sonunda ba艧lamaq.
V蓹 + birinci, biz yaln谋z almaq ki, tam, v蓹 b蓹lk蓹 biz kimi yaratmaq
yeni tam d蓹yi艧蓹n up top yerl蓹艧ir biz h蓹r 艧eyi saxlan谋lmas谋 edirik.
S h蓹r char vasit蓹sil蓹 Bel蓹likl蓹, biz loop geri 枚n, biz 0 莽谋xmaq v蓹
sonra biz onu, v蓹 as谋l谋 harada, biz bunu 莽oxaltmaq
10 bir g眉c t蓹r蓹find蓹n.
脟眉nki birinci, biz n蓹 rightmost xarakter 莽oxaltmaq?
>> T茝L茝B茝: The 0 10.
>> JASON Hirschhorn: The 0 10.
Biz ikinci n蓹 莽oxaltmaq yoxdur rightmost xarakter t蓹r蓹find蓹n?
>> T茝L茝B茝: [i艧itilemez].
>> JASON Hirschhorn: N蓹?
>> T茝L茝B茝: 1. 10.
>> JASON Hirschhorn: 1 眉莽眉n 10.
脺莽眉nc眉-rightmost xarakter?
>> T茝L茝B茝: 2 10.
>> JASON Hirschhorn: 2 10.
>> T茝L茝B茝: Ba臒谋艧lay谋n, m蓹n ba艧a d眉艧m眉r蓹m biz burada n蓹 edirik.
>> JASON Hirschhorn: OK, nin, sonra geri ged蓹k.
Bel蓹likl蓹, biz almaq olacaq simli ke莽di.
Biz ATOI yaz谋l谋 etdiyiniz 莽眉nki.
Bel蓹likl蓹, biz bir simli q蓹bul almaq.
Biz ke莽di 蓹ld蓹 etdiyiniz dem蓹k simli 90.
>> Biz n蓹 olacaq ilk 艧ey m眉蓹yy蓹n edilir biz ist蓹yirik ki, yeni tam d蓹yi艧蓹n
yaln谋z yaratmaq niyy蓹tind蓹dir yeni tam kimi.
Y蓹ni biz olacaq n蓹 sonunda qay谋tmaq 眉莽眉n.
Biz h蓹r bir xarakter il蓹 getm蓹k laz谋md谋r simli biz m眉蓹yy蓹n etdik, 莽眉nki
biz h蓹r bir toxunmaq laz谋md谋r ki, sonra bizim yeni tam 蓹lav蓹 edin.
>> Amma biz yaln谋z bir s谋ra 蓹lav蓹 ed蓹 bilm蓹z.
Biz yaln谋z 9 v蓹 bilm蓹z bizim tam 9 蓹lav蓹 edin.
Bu n蓹 yer as谋l谋d谋r Bu simli edir.
Biz 莽oxaltmaq laz谋m olacaq Bu 10 bir g眉c t蓹r蓹find蓹n.
Ki, 莽眉nki nec蓹 bazas谋 10 i艧l蓹ri.
>> Bel蓹 ki, biz faktiki almaq olacaq xarakter, v蓹 ya faktiki tam
say谋, xarakter 0 莽谋xar谋laraq xarakterli 9 biz oldu臒u kimi olan
xarakter kapital subtracting biz bir idi n蓹 xarakter
o probleml蓹ri.
Bel蓹 ki, biz, h蓹qiq蓹t蓹n, 0-dan bir s谋ra almaq laz谋md谋r 9 real say谋 qeyd, v蓹 biz will
as谋l谋 olaraq 10 bir g眉c il蓹 莽oxaltmaq biz simli oldu臒u haqq谋nda.
V蓹 sonra biz onu geri 蓹lav蓹 olacaq yeni tam d蓹yi艧蓹n.
>> Bel蓹 ki, n蓹 bu oldu臒u kimi g枚r眉n眉r biz burada 莽蓹km蓹k laz谋md谋r - ola.
Biz simli 90 ke莽di almaq -
>> T茝L茝B茝: [i艧itilemez].
>> JASON Hirschhorn: Amma atoi bir simli edir.
Bel蓹 ki, biz vasit蓹sil蓹 getm蓹k olacaq holdinq.
Biz 90-ci ild蓹 q蓹bul almaq laz谋md谋r.
Biz qar艧谋s谋nda geri getm蓹k.
Biz 0 almaq.
>> T茝L茝B茝: 脺zg眉n眉m.
B蓹lk蓹 bu axmaq deyil.
Biz simli q蓹bul olmaq ist蓹yirsinizs蓹, niy蓹 biz ist蓹yirik n蓹 90
ke莽di mi?
90 tam deyil.
>> JASON Hirschhorn: atoi bir tutur string v蓹 tam daxil 莽evrilir
ki, simli n眉may蓹nd蓹liyi.
Amma string 90 tam deyil 90 v蓹 ya 90.
The string 90 iki array, v蓹 ya 眉莽 simvol, daha do臒rusu, 9
xarakteri, 0 xarakteri, v蓹 backslash 0 character.
>> V蓹 biz, 莽眉nki 眉莽眉n ATOI yaz谋yoruz M蓹s蓹l蓹n, siz 蓹mri almaq zaman
line arqument v蓹 bu qeyd edir argv, bir string kimi xilas oldu.
Amma bir s谋ra kimi m眉alic蓹 etm蓹k ist蓹yirsinizs蓹, 茝g蓹r onu 莽evirm蓹k laz谋md谋r
faktiki tam.
Hans谋 biz problem d蓹std蓹n birini etdi.
Biz bir s谋ra hans谋 Bizim problem d蓹stl蓹ri.
Bir tam ald谋 ki, h蓹r k蓹s bir command line arqument kimi.
Bel蓹 ki, niy蓹 bizim atoi funksiyas谋 bir simli edir.
>> Bel蓹 ki, yen蓹 burada bizim misalda, biz ist蓹yirik son bir almaq 眉莽眉n gedir.
Biz xarakter 莽谋xmaq olacaq Bu 0, 莽眉nki simvol 0
xarakteri 0 莽谋x谋lacaq verir g枚r蓹 faktiki say谋 0,
biz ki, ASCII riyaziyyat.
>> Simvol kimi t蓹msil olunur onlar谋n faktiki f蓹rqli - burada
xarakter, m蓹s蓹l蓹n, ki莽ik bir 97 edir.
Bu deyil - oops!
Sizin g枚zl蓹m蓹k olard谋 n蓹 deyil M蓹s蓹l蓹n, 0 olacaq.
Bel蓹likl蓹, siz 莽谋xmaq 眉莽眉n var xarakter 0 almaq.
>> Bel蓹likl蓹, biz burada n蓹 olacaq faktiki say谋 almaq 眉莽眉n.
V蓹 sonra biz onu 莽oxaltmaq 眉莽眉n gedir 10 g眉c yerd蓹 as谋l谋 olaraq
simli v蓹 sonra almaq v蓹 yerin sahibi 蓹lav蓹
d蓹yi艧蓹n biz il蓹 g蓹lm蓹k olar bizim son yeni tam.
Ki, h蓹r k蓹s 眉莽眉n 蓹h蓹miyy蓹t k蓹sb edir mu?
>> Bel蓹likl蓹, biz bu kod fikrind蓹 deyilik indi, 莽眉nki biz ist蓹yirik
zaman q谋sa 蓹ld蓹.
M蓹n m眉dd蓹ti 眉莽眉n 眉zr ist蓹yirik.
Amma bu n蓹, 眉mid edir蓹m ki, siz ki, edir at - viktorina ed蓹
蓹n az谋, bu pseudocode almaq yaz谋l谋.
>> V蓹 sonra, biz 蓹g蓹r yazmaq pseudocode, h蓹qiq蓹t蓹n, biz bunu ed蓹 bil蓹r
olduqca tez.
Biz yaz谋rd谋 艧蓹rhl蓹r h蓹r line burada t蓹rc眉m蓹
C kodu bir line.
Yeni bir d蓹yi艧蓹n, yaz谋l谋 elan bir loop, b蓹zi toplama i艧lemi, b蓹zi
vurma, v蓹 b蓹zi tap艧谋r谋q.
Biz y蓹qin ki, h蓹m莽inin ist蓹yir蓹m bir qaytar谋lmas谋 line yaz谋n.
Biz d蓹 qoymaq ist蓹yir蓹m bil蓹r Burada b蓹zi yoxlay谋r.
B蓹li.
>> T茝L茝B茝: Bel蓹likl蓹, biz m眉alic蓹 ed蓹 bil蓹r faktiki string kimi s?
M蓹n bilir蓹m 莽眉nki yaln谋z bir 眉nvan谋 var.
Kimi, nec蓹 uzunlu臒u almaq olard谋 simli ke莽diyi?
>> JASON Hirschhorn: Bel蓹 ki, nec蓹 bir simli uzunlu臒u?
Strlen.
>> T茝L茝B茝: strlen, evet.
Amma kimi s qoya bil蓹r ki d蓹lil?
>> JASON Hirschhorn: Bel蓹 strlen bir char ulduz edir.
V蓹 bu char ulduz a艧a臒谋dak谋 v蓹 o, bir olur q蓹d蓹r hesablanmas谋 saxlay谋r
backslash 0. strlen 蓹slind蓹 dig蓹r proqramlar谋 biri
kodu gedirdi.
Bu kod yax艧谋 biri.
Ki, bir, bir az daha asand谋r, 莽眉nki Bu bar蓹d蓹 d眉艧眉n蓹c蓹yik
konseptual -
M蓹n yaln谋z onu y眉ks蓹k s蓹sl蓹 dedi - strlen a艧a臒谋dak谋 bir pointer v蓹 saxlay谋r ged蓹n v蓹
hesablanmas谋 v蓹 q蓹d蓹r track saxlan谋lmas谋 bir backslash 0 莽atmaq.
>> T茝L茝B茝: OK, var.
>> JASON Hirschhorn: bel蓹 ki, yax艧谋 viktorina 0 sabah u臒urlar.
茝g蓹r h蓹r hans谋 bir sual谋n谋z varsa, m蓹n will Bu sonra xaricind蓹.
M蓹n蓹 e-po莽t 莽ekinmeyin.
De臒ilseniz 枚z TF h蓹yata nail olmaq m蓹nim b枚lm蓹sind蓹, v蓹 ya almaq deyil m蓹nim
ist蓹diyiniz 蓹g蓹r e-po莽t.
>> Siz蓹 q蓹rib蓹 ist蓹yir蓹m v蓹 yaln谋z g枚nd蓹rm蓹k m蓹n蓹 bir e-po莽t, bir Freakout e-po莽t, I will
, bir smiley face, kimi, geri g枚nd蓹rm蓹k v蓹 ya kimi, bir zarafat v蓹 ya bir 艧ey.
Bel蓹 d蓹 bunu 莽ekinmeyin.
U臒urlar yenid蓹n v蓹 m蓹n will b眉t眉n g蓹l蓹n h蓹ft蓹 g枚rm蓹k.