[MUSIC ifa]
>> DAVID J. MALAN: B眉t眉n h眉ququ.
Bu CS50 edir.
V蓹 bu h蓹ft蓹 5 ba艧lan臒谋c.
V蓹 qeyd ola bil蓹r kimi, maddi b蓹zi
bir az daha art谋r kompleks, ki莽ik s谋x.
>> V蓹 x眉susil蓹 d蓹 蓹g蓹r, 莽ox asand谋r Siz, bir m眉dd蓹t v蓹rdi艧 oldum
蓹n a艧a臒谋 c谋zmaq 眉莽眉n 莽al谋艧谋r谋q biz bir 艧ey, biz sinif dey蓹r蓹k edirik.
Amma b蓹lk蓹 deyil, h蓹yata ideal pedaqoji yana艧ma
material bu c眉r 枚yr蓹nm蓹k 眉莽眉n, v蓹 material 眉mumiyy蓹tl蓹.
V蓹 bel蓹 ki, biz edirik ki, CS50 枚z Gheng elan
Gong haz谋rlamaq ba艧lay谋b Notlar谋n canonical d蓹sti
kurs 眉莽眉n, 眉mid bu ki, biri
yaln谋z kimi xidm蓹t aray谋艧 v蓹 resurs
material n蓹z蓹rd蓹n v蓹 ged蓹n 眉莽眉n geri material vasit蓹sil蓹 ola bil蓹r ki,
, 蓹traf谋nda ilk d蓹f蓹 qa莽d谋 lakin d蓹 ki, sizin r蓹hb蓹rl蓹ri ola bil蓹r daha 莽ox
a艧a臒谋, zaman daha q蓹d蓹r m眉hazir蓹 眉莽眉n vaxt g蓹lir,
Siz m蓹艧臒ul ola bil蓹r ki, daha fikirli, kimi
daha scribbly qar艧谋.
>> Dedi ki, siz tapa bil蓹rsiniz n蓹 veb bu kimi s蓹n蓹dl蓹r.
V蓹 bildiri艧, sol 眉st, var yaln谋z m蓹zmunu bir masa,
h蓹m d蓹 vaxt kodlar谋 ki, d蓹rhal jump ed蓹c蓹k
m眉vafiq hiss蓹si video online.
V蓹 burada n蓹 Chang g枚rm眉艧d眉r , mahiyy蓹tc蓹, s蓹n蓹dl蓹艧dirilmi艧
n蓹 bu ba艧 x眉susi m眉hazir蓹.
V蓹 m眉hazir蓹l蓹r 莽ox art谋q online indi bu URL.
V蓹 biz qalan g枚nd蓹rm蓹k 眉莽眉n davam ed蓹c蓹yik bu h蓹ft蓹 sonuna q蓹d蓹r o,
ki, resurs istifad蓹 etm蓹k yoxdur.
>> Bel蓹 ki, daha ADO olmadan, biz geri soymaq ba艧lad谋
olmu艧dur ki, lay bir m眉dd蓹t string.
V蓹 biz bir string n蓹 dem蓹k idi 蓹slind蓹 ke莽蓹n h蓹ft蓹?
Bel蓹 ki, char star.
V蓹 char ulduz, yax艧谋, n蓹 ki, h蓹qiq蓹t蓹n dem蓹k idi?
Yax艧谋, b眉t眉n bu vaxt, biz 蓹g蓹r bir funksiyas谋 z蓹ng edilmi艧dir,
GetString v蓹 saxlan谋lmas谋 kimi s枚zd蓹 geri
bir GetString d蓹y蓹ri d蓹yi艧蓹n deyirl蓹r
biz yaz谋l谋 oldu臒unuz string s type up Yuxar谋da kod line.
M蓹n g枚r蓹nd蓹 v蓹 yaln谋z m蓹nim yaz谋 burada b枚y眉d眉l蓹c蓹k
M蓹n bu nec蓹 d蓹h艧蓹tli h蓹yata yoxdur.
>> Lakin, ki, f蓹rz ed蓹k, sa臒 t蓹r蓹find蓹
, yen蓹, bir a臒labatan deyil n蓹 t蓹sviri
B眉t眉n bu davam GetString vaxt.
getString, 蓹lb蓹tt蓹, bir simli olur.
Amma h蓹qiq蓹t蓹n n蓹 dem蓹kdir?
Bu bir y谋臒谋n olur dem蓹kdir 蓹m蓹liyyat sistemi yadda艧
bir funksiyas谋 z蓹ng, malloc 莽a臒谋r谋b.
Lakin daha sonra.
V蓹 sonra populates yadda艧 ki, y谋臒谋n
h蓹rfl蓹ri il蓹 istifad蓹莽i var , 莽ap izl蓹di, 蓹lb蓹tt蓹,
bir null xarakteri, v蓹 ya backslash 莽ox sonunda s谋f谋r.
>> Eyni zamanda, sol t蓹r蓹find蓹 Bu hekay蓹, b眉t眉n bu vaxt,
biz s kimi bir d蓹yi艧蓹n elan etdik.
V蓹 d蓹yi艧蓹n indi n蓹 edir Bir g枚st蓹rici z蓹ng ba艧layacaq.
Bu, daxilind蓹 bir qutusu deyil biz string qoymaq Daven, 枚zl眉y眉nd蓹,
lakin biz ki, kvadrat qoymaq sol n蓹 d蓹qiq qutusu?
B蓹li?
>> Auditoriya: 眉nvan谋 harada yadda艧 yerl蓹艧ir oldu.
>> DAVID J. MALAN: Exactly.
Daven harada 眉nvan谋 yadda艧 yerl蓹艧ir.
V蓹 Daven b眉t眉n yerl蓹艧ir harada 枚zl眉y眉nd蓹, lakin x眉susi olaraq 眉nvan谋
N蓹?
B蓹li?
>> Auditoriya: First character.
>> DAVID J. MALAN: 陌lk xarakter Bu halda Daven, olan,
M蓹n 蓹sass谋z idi t蓹klif v蓹 unrealistically 1, OX1,
olan yaln谋z dem蓹kdir 1 hexadecimal say谋.
Amma y蓹qin ki, olacaq daha b枚y眉k say谋 眉莽眉n
biz c蓹lb ed蓹 bil蓹r ki, bir prefiks kimi bir 0x il蓹,
bir hexadecimal xarakter t蓹msil.
V蓹 biz bilm蓹k laz谋m deyil, 莽眉nki Daven simvol qalan
莽眉nki, n蓹 sad蓹 dizayn q蓹rar谋 bir 莽ox il 蓹vv蓹l idi?
B蓹li?
>> Auditoriya: Backslash 0.
DAVID J. MALAN: B蓹li, d蓹qiq.
The backslash 0 olsa da, siz蓹 imkan verir x蓹tti vaxt, simli ax谋r,
soldan sa臒a g蓹zm蓹k, bir loop 眉莽眉n, v蓹 ya bir m眉dd蓹t il蓹
loop, v蓹 ya bir 艧ey kimi ki, burada, oh, m眉蓹yy蓹n
bu simli sonu.
Yaln谋z bu 眉nvan谋, simli ba艧lan臒谋c谋,
biz tam 蓹ld蓹 ed蓹 bil蓹rsiniz Bu, b眉t眉n bu m眉dd蓹t, 莽眉nki,
bir string bir char ulduz olmu艧dur.
>> Bel蓹 ki, istifad蓹 davam etm蓹k 蓹lb蓹tt蓹 ki, g枚z蓹l var Bu CS50 kitabxana v蓹 bu abstraksiya,
bel蓹 ki, dan谋艧maq, lakin biz will 眉莽眉n d蓹qiq g枚rm蓹k ba艧layacaq
neler oldu B眉t眉n bu vaxt alt谋ndan.
Bel蓹 ki, bu n眉mun蓹 geri bil蓹r, d蓹 son d蓹f蓹, 0 m眉qayis蓹,
faktiki m眉qayis蓹 etm蓹di.
Amma biz bu h蓹ll etm蓹y蓹 ba艧lad谋.
>> Amma b蓹lk蓹 d蓹 ixtisasart谋rma, M蓹n kims蓹 maraq ola bil蓹r
莽蓹hray谋 fil g眉n, da Chang etdi?
Nec蓹 qar艧谋s谋nda haqq谋nda? [I艧itilemez].
Q蓹d蓹r Hadi.
>> V蓹 bu arada, Siz g蓹lm蓹k kimi, ed蓹k
yaln谋z bir an 眉莽眉n hesab n蓹 Bu kodu h蓹qiq蓹t蓹n edirdi.
Bu iki d蓹yi艧蓹nl蓹rin q蓹d蓹r elan edir top, s v蓹 t v蓹 getString z蓹ng.
Bu, bir 莽ox istifad蓹莽i dostu proqram deyil Bu dem蓹k deyil, 莽眉nki n蓹.
Lakin biz ist蓹yirik g眉man ed蓹k sulu hiss蓹si 眉z蓹rind蓹 dayan谋l谋r.
S b蓹rab蓹rdir 蓹g蓹r v蓹 sonra biz bunu ki, printf dem蓹k laz谋md谋r t b蓹rab蓹rdir,
Siz eyni 艧ey tipli.
Hello.
Sizin ad谋n谋z n蓹dir?
>> Janelle: Janelle.
DAVID J. MALAN: Janelle, g枚r眉艧m蓹k 眉莽眉n g枚z蓹l.
Sizin problem bel蓹 Bu fil 蓹l
ilk biz蓹 n蓹 bir 艧蓹kil 莽蓹km蓹k 眉莽眉n o ilk iki t蓹msil olunur
x蓹tl蓹ri.
Bel蓹 ki, s v蓹 t ola bil蓹r nec蓹 ekranda t蓹msil?
V蓹 yaln谋z bu c蓹lb ed蓹 bil蓹r Bu b枚y眉k ekranda barmaq.
>> Bel蓹 ki, iki yar谋ya indirir var t蓹nlik h蓹r t蓹r蓹fi.
Bel蓹 ki, orada sol s, v蓹 sonra sa臒 getString.
V蓹 sonra t, sol var v蓹 sonra sa臒 getString.
Bel蓹 ki, nec蓹 ba艧laya bil蓹r bir 艧蓹kil r蓹sm ki,
neler t蓹msil Burada yadda艧, siz dey蓹c蓹ksiniz?
V蓹 m蓹n蓹 izah ed蓹k Siz getm蓹k kimi n蓹 edirik.
>> Janelle: OK.
B蓹li, ilk, xahi艧 olunacaq Siz giri艧 string almaq.
V蓹 t蓹蓹ss眉f, oh store-- olard谋.
DAVID J. MALAN: OK.
Yax艧谋.
V蓹 bu n蓹 adlan谋r?
OK, Oh.
Davam edin.
M蓹n dayand谋rmaq dem蓹k deyil.
Janelle: Sorry.
Bel蓹 ki, daxil onu daxil ed蓹c蓹kl蓹rini 脺nvan 蓹min kontormerinin T蓹f蓹rr眉atlar.
M蓹n d蓹qiq say谋 xat谋rlay谋ram bilm蓹z, lakin m蓹n 0 ba艧layaraq inan谋ram.
>> DAVID J. MALAN: Y蓹ni b眉t眉n do臒ru M蓹n n枚mr蓹l蓹ri 莽眉nki,
bel蓹 ki, he莽 d眉zg眉n cavab var.
>> Janelle: 0 q枚vs il蓹 ba艧layaraq.
>> DAVID J. MALAN: OK, bel蓹 ki, element 0.
Sure.
>> Janelle: V蓹 sonra, 蓹g蓹r yaln谋z iki m蓹ktub kimi
>> DAVID J. MALAN: OK, geri.
>> Janelle: Bel蓹 element 0 v蓹 sonra element 1 v蓹 ya element 2.
Par莽a V蓹: DAVID J. MALAN 艧蓹kil indi r蓹sm?
GetString z蓹ng?
Ya s b蓹yannam蓹?
>> Janelle: B蓹yannam蓹 s, inan谋ram.
Oh, getString, bu ki, 莽眉nki h蓹r [daxil inputted? sah蓹si. ?]
>> DAVID J. MALAN: Yax艧谋.
D蓹qiq.
H蓹tta bu s蓹m蓹r蓹li olsa bir s谋ra, geri qaytar谋r,
biz bir string geri almaq zaman, biz 01 v蓹 2 istifad蓹 ed蓹r蓹k simli index.
Texniki, bu y蓹qin ki, F蓹rdi 眉nvanlar谋 t蓹msil,
lakin g枚z蓹l var.
>> Bel蓹 ki, g眉man, m蓹n yaln谋z s眉r蓹tli bil蓹rsiniz biz off sol harada ir蓹li
Sonuncu d蓹f蓹 biri 蓹g蓹r strings, bir b e g idi
backslash 0, bununla t蓹msil gabe Agentliyi Giri艧, nec蓹 biz indi ola bil蓹r?
Bu ki, yadda艧 蓹g蓹r GetString geri edilmi艧dir?
>> Janelle: bu olacaq Bir q枚vs t蓹msil?
>> DAVID J. MALAN: bir q枚vs By?
He莽 bir, yax艧谋.
, Yaln谋z pictorially, deyirl蓹r M蓹n蓹 yaln谋z ir蓹li getm蓹k
Bu s, 蓹g蓹r, ki, bu t蓹klif GetString qaytar谋lmas谋 d蓹y蓹ri.
V蓹 0, 1, 2, bu t蓹rtib etdiyiniz , m眉k蓹mm蓹l a臒labatan deyil 脟眉nki
kimi simli index bil蓹rsiniz.
Amma yaln谋z uy臒un olmaq Sonuncu d蓹f蓹 m蓹n蓹 ir蓹li ged蓹k
v蓹 枚zba艧谋na bu t蓹klif 眉nvan, 1 bu 眉nvan谋 2,
Bu s 眉nvan谋 3 v蓹.
Bel蓹 ki, yaln谋z super olmaq ayd谋n, n蓹 olacaq
ki, n蓹tic蓹sind蓹 s getm蓹k 眉莽眉n kodu ilk line, siz dey蓹c蓹ksiniz?
>> Janelle: 脺nvan 1?
>> DAVID J. MALAN: Exactly.
Bel蓹 ki, 0x1 m眉raci蓹t.
V蓹 eyni zamanda, m蓹n蓹 ir蓹li ged蓹k v蓹 Siz etdiyiniz n蓹 q蓹d蓹r dublikat
v蓹 burada 枚z t 蓹lav蓹 edin.
M蓹n g蓹b蓹 yaz谋n olsayd谋 yen蓹 ikinci d蓹f蓹,
GetString il蓹 istenir zaman, harada, 茝lb蓹tt蓹, gabe getm蓹k 眉莽眉n gedir?
Yax艧谋, presumably--
>> Janelle: burada Like?
DAVID J. MALAN: B蓹li.
Janelle: Yoxsa eyni qutular谋 da var?
DAVID J. MALAN: M蓹n蓹 B蓹li, t蓹klif ed蓹k d蓹qiq, bu 蓹lav蓹 qutular谋 bel蓹.
Amma indi n蓹 蓹sas var bel蓹 ki, M蓹n bu olduqca yax谋n t蓹rtib etdik baxmayaraq
together-- 0x1, bu 蓹slind蓹 0x2-- olunur,
bu art谋q, 眉nvan谋 0x10 ola bil蓹r M蓹s蓹l蓹n, v蓹 0x11, v蓹 0x12,
v蓹 s.
V蓹 bel蓹 ki, bu halda, n蓹 t burada sona olacaq?
>> Janelle: 0x10?
DAVID J. MALAN: Exactly.
Bel蓹 ki, 0x10.
V蓹 indi, son sual.
Siz uzaq, i艧 var g眉n蓹 q蓹d蓹r bir fil 眉莽眉n 蓹n a臒谋r.
陌ndi, m蓹n kodu qoparmaq 蓹g蓹r yen蓹 n蓹 zaman, x蓹tti 眉莽,
s b蓹rab蓹rdir t b蓹rab蓹rdir 蓹g蓹r, M蓹n, h蓹qiq蓹t蓹n, n蓹 am biz burada t蓹rtib etdik m眉qayis蓹 ki?
>> Janelle: 陌ki URL?
DAVID J. MALAN: Exactly.
M蓹n t b蓹rab蓹r b蓹rab蓹r oldu dedi al谋ram?
Ba艧qa s枚zl蓹, 10 b蓹rab蓹r b蓹rab蓹r 1?
V蓹 蓹lb蓹tt蓹, A艧kar cavab indi he莽 edir.
V蓹 bu proqram n蓹tic蓹d蓹 Siz dem蓹k n蓹, 莽ap olacaq?
>> Janelle: bu, ola bil蓹r Siz eyni 艧ey tipli?
>> DAVID J. MALAN: Bel蓹 ki s 1 v蓹 t 10?
>> Janelle: Siz m眉xt蓹lif 艧eyl蓹ri yaz谋lm谋艧.
>> DAVID J. MALAN: Exactly.
Siz m眉xt蓹lif 艧eyl蓹ri yaz谋lm谋艧.
B眉t眉n h眉quqlar.
Bel蓹 ki, bir alq谋艧, Burada, biz bil蓹r.
[Alq谋艧]
Ki, a臒r谋l谋 idi.
M蓹n bilir蓹m.
G枚z蓹l i艧l蓹r.
Bel蓹 ki, indi g枚r蓹k, 蓹g蓹r biz bilm蓹z fix n蓹 ayr谋 tease.
V蓹 蓹lb蓹tt蓹, biz bunu m眉蓹yy蓹n zaman m蓹n indi green-- t蓹msil ed蓹c蓹yik
Biz burada aksesuarlar谋n bir ne莽蓹 etdi.
Birincisi, bir a臒l谋 ba艧谋nda olma kimi M蓹n ilk yoxlan谋lmas谋 al谋ram, yoxlamaq
s null b蓹rab蓹rdir v蓹 t null b蓹rab蓹rdir 蓹g蓹r.
V蓹 yaln谋z ayd谋n olmaq, zaman g眉c ya t ox艧ar kodu null olacaq?
Zaman v蓹 ya t null ola bil蓹r.
B蓹li?
>> Auditoriya: [i艧itilemez].
>> DAVID J. MALAN: Exactly.
Simli istifad蓹莽i ki, 蓹g蓹r Y谋臒d谋臒谋n谋z yol 莽ox uzun
yadda艧 uy臒un, v蓹 ya b蓹zi kimi q蓹rib蓹 k眉nc halda,
biz g枚r蓹c蓹ksiniz kimi, sanki, getString Bu g眉n, onun s蓹n蓹dl蓹rin,
kimi null qay谋dacaq deyir x眉susi sentinel d蓹y蓹ri,
v蓹 ya yaln谋z sort x眉susi simvolu ki, bir 艧ey yanl谋艧 getdi dem蓹kdir.
Bel蓹 ki, biz check ist蓹diyiniz bu 莽谋x谋r, 莽眉nki
ki, null 莽ox t蓹hl眉k蓹li d蓹y蓹ri n蓹.
>> Tez-tez, bir 艧ey etm蓹k 眉莽眉n c蓹hd edin null ke莽蓹n bir funksiyas谋 c蓹lb
giri艧 kimi ki, funksiyas谋 instance-- 眉莽眉n 莽ox bu, q蓹za v蓹 bil蓹r,
b眉t眉n proqram yazmaq.
Bel蓹 ki, bu 眉莽眉nc眉 x蓹tt indi yaln谋z bir a臒l谋 ba艧谋nda olma deyil Siz 蓹g蓹r, s蓹hv yoxlan谋lmas谋 yoxlay谋n.
Ki, indi yax艧谋 v蓹rdi艧 var Biz蓹 h蓹r zaman almaq 眉莽眉n biz
bir d蓹y蓹ri istifad蓹 etm蓹y蓹 c蓹hd ki, , potensial, null ola bil蓹r.
>> 陌ndi burada d枚rd眉nc眉 x蓹tti, "茝g蓹r strcmp (s, t)," yax艧谋,
n蓹 istinad蓹n var?
B蓹li, biz bu 莽ox m眉f蓹ss蓹l a bildirib string m眉qayis蓹 眉莽眉n adl谋 funksiyas谋.
V蓹 h蓹yat onun m蓹qs蓹di m眉qayis蓹 etm蓹k ikinci buna qar艧谋 ilk d蓹lil,
lakin onlar谋n 眉nvanlar谋 bax谋m谋ndan, biz bir an t蓹sad眉f蓹n etdi
蓹vv蓹l q谋rm谋z谋 kodu il蓹, lakin deyil, h蓹min iki m眉qayis蓹
Bu humanly intuitiv strings Buna qar艧谋, bu m眉qayis蓹 il蓹 yol,
bu, qar艧谋 v蓹 qar艧谋 sonra dayand谋r谋lmas谋 zaman 蓹g蓹r bir v蓹
v蓹 ya barmaqlar谋 h蓹r bir backslash 0 edib.
Bel蓹 ki, kims蓹 il 蓹vv蓹l h蓹yata ke莽iril蓹n strcmp Funksional谋臒谋na bizim 眉莽眉n h蓹yata
biz kazan谋lm谋艧 olard谋 眉mid etdiyini yaln谋z iki sad蓹 d蓹y蓹rl蓹ri m眉qayis蓹.
>> 陌ndi s蓹mimi, m蓹n r蓹sm saxlamaq Bu m眉xt蓹lif 蓹d蓹d b眉t眉n.
Amma reall谋q oldum ki, b眉t眉n vaxt bu q蓹d蓹r edilm蓹si.
V蓹 m蓹n蓹 yaln谋z ir蓹li getm蓹k v蓹 bu h蓹yata c谋zmaq
bir point etm蓹k ki, sonunda g眉n v蓹 ir蓹li h蓹r蓹k蓹t,
biz, h蓹qiq蓹t蓹n qay臒谋 fikrind蓹 deyilik n蓹 艧eyl蓹r 蓹slind蓹 m眉raci蓹t
yadda艧.
M蓹n bu 莽蓹km蓹k fikrind蓹 deyil蓹m q蓹d蓹r art谋q n枚mr蓹l蓹ri n枚v,
M蓹n uzaq bir bu yaln谋z m眉c蓹rr蓹d deyil蓹m yaln谋z oxlar谋 il蓹 莽ox dostluq az.
>> Ba艧qa s枚zl蓹, bir pointer 蓹g蓹r, yax艧谋, yaln谋z, sanki 莽蓹km蓹k imkan
bir g枚st蓹rici kimi, bir arrow i艧ar蓹 , ba艧qa bir 艧ey 枚z眉
v蓹 莽ox daha 莽ox narahat Bu 眉nvanlar谋 minutia
ki, yen蓹, m蓹n h蓹r halda t蓹艧kil edib.
Amma biz o 眉nvanlar谋 g枚rm蓹k laz谋md谋r, b蓹z蓹n kodu hata zaman.
>> 陌ndi is蓹, bu proqram burada d眉zeltmelerini, 蓹lb蓹tt蓹,
m眉qayis蓹 ki, problem bu iki strings.
Amma biz ba艧qa problem qa莽d谋.
Bu sur蓹ti idi son d蓹f蓹 proqram
vasit蓹si, M蓹n kapitalla艧d谋rmaq 莽al谋艧谋r simli yaln谋z ilk character.
Amma simptom n蓹 idi biz zaman sonuncu d蓹f蓹 g枚rd眉m
bir istifad蓹莽i kimi, bir d蓹y蓹r tipli ki莽ik gabe, s,
sonra biz t daxil s verildi orada 眉莽眉nc眉 x蓹tti kimi,
v蓹 sonra m蓹n 莽al谋艧d谋 t bracket 0 kapitalla艧d谋rmaq?
T蓹siri n蓹 idi t bracket 0 burada d蓹yi艧ir?
>> Auditoriya: Bu s d蓹yi艧di.
>> DAVID J. MALAN: B蓹li, M蓹n d蓹, s d蓹yi艧di.
H蓹qiq蓹t蓹n gedir n蓹 莽眉nki?
B蓹li, m蓹n t蓹miz olar, 蓹g蓹r m蓹n蓹 g枚r蓹k Bu 艧蓹kil up, a艧a臒谋dak谋 kimi.
>> S varsa, yen蓹 s枚z g, a, b, e, backslash, 0, s
biz bir qutu kimi r蓹sm davam ed蓹c蓹yik Burada, lakin daha 莽ox 眉nvanlar谋.
Nin 艧eyi edilm蓹si dayand谋rmaq bildirin.
Yaln谋z bir 艧蓹kil 莽蓹km蓹k ed蓹k d眉nya sad蓹l蓹艧dirm蓹k.
>> M蓹n string t il蓹 t b蓹yan ed蓹rk蓹n, ki, yadda艧 ki, y谋臒谋n yarad谋r.
Square 32 olur 蓹n komp眉ter bit.
茝slind蓹, 蓹g蓹r he莽 bir e艧itdim komp眉ter, 32-bit memarl谋q olan
h蓹qiq蓹t蓹n fantezi-dan谋艧maq, yaln谋z 32-bit 眉nvanlar谋n谋 istifad蓹 edir dem蓹kdir.
V蓹 bir k蓹nara texniki, 茝g蓹r merak etdiyiniz 蓹g蓹r
niy蓹 k枚hn蓹 komp眉ter, h蓹qiq蓹t蓹n 蓹g蓹r RAM 莽ox 艧orbas谋 onlar谋 莽al谋艧d谋,
yaln谋z maksimum ola bil蓹r RAM d枚rd gigabayt,
yax艧谋 s枚z眉n, 莽眉nki, K枚hn蓹 komp眉ter ola bil蓹r yaln谋z
4 kimi y眉ks蓹k saymaq milyard, 4 milyard bayt,
脟眉nki 32-bit istifad蓹 URL 眉莽眉n n枚mr蓹l蓹ri.
>> Amma h蓹r halda, bu M蓹s蓹l蓹n, hekay蓹 莽ox sad蓹.
t yaln谋z ba艧qa g枚st蓹rici, v蓹 ya h蓹qiq蓹t蓹n char ulduz, aka string.
V蓹 nec蓹 bu 艧蓹kil yenil蓹m蓹k ist蓹yir蓹m 陌ndi kod ikinci x蓹tti il蓹,
sa臒da, n枚qt蓹, n枚qt蓹?
M蓹n n蓹 zaman string t, s n枚qt蓹li verg眉l b蓹rab蓹rdir bu 艧蓹kil nec蓹 d蓹yi艧蓹 bil蓹r?
B蓹li?
>> Auditoriya: [i艧itilemez].
>> DAVID J. MALAN: B蓹li.
D蓹qiq.
M蓹n yaln谋z bir arrow qoymaq eyni 眉nvana t qutusu,
eyni ilk m蓹ktubu verdi.
V蓹 ya texniki, 蓹g蓹r bu guy, 0x1 h蓹l蓹 ki
I baxmayaraq kimi bu Burada 0x1 v蓹 burada 0x1.
Ancaq yen蓹 d蓹, kimin umurunda URL haqq谋nda?
陌ndi m蓹s蓹l蓹 ki, yaln谋z bir fikirdir.
Bel蓹 ki, burada n蓹 edir.
茝lb蓹tt蓹, 蓹g蓹r t bracket Bel蓹 ki, Array notation olan 0,
of kursu v蓹 s蓹mimi, g枚r眉n眉r burada bir s谋ra var kimi,
lakin indi bu q蓹rib蓹 艧ey var.
Proqramla艧d谋rma dilini bilm蓹k, C, bu x眉susiyy蓹t t蓹klif edir
vasit蓹si, t bir olsa pointer, v蓹 ya bir g枚st蓹rici,
Siz h蓹l蓹 ki, tan谋艧 istifad蓹 ed蓹 bil蓹rsiniz rahat kvadrat m枚t蓹riz蓹
notation ilk element getm蓹k 眉莽眉n, 陌kinci element, v蓹 ya h蓹r hans谋 element v蓹 ya
ki, pointer i艧ar蓹 edir ki, ehtimalla, 莽眉nki
, bu halda kimi, b蓹zi array i艧ar蓹.
>> Bel蓹 ki, nec蓹 biz bu d眉zeltmek edirsiniz?
Bir ald谋臒谋 s蓹mimi, bu ilk bax谋艧da az b枚y眉k.
Amma burada bir yeni v蓹 t蓹kmill蓹艧dirilmi艧 versiyas谋.
>> Bel蓹 ki, ilk al谋ram Bu CS50 kitabxana xilas,
yaln谋z h蓹qiq蓹t蓹n ki, var edir if艧a bir char ulduz, yaln谋z bir sinonimi.
V蓹 t da char ulduz edir.
Amma haqq谋nda n蓹 gedir ki, x蓹tti sa臒 t蓹r蓹fd蓹n
t bir d蓹y蓹r t蓹yin olunur?
>> Malloc n蓹dir?
N蓹 strlen?
Sizeof (char) n蓹dir?
N蓹 heck bu yoxdur line baxmaq bel蓹 kompleks?
N蓹 y眉ks蓹k s蓹viyy蓹d蓹 edir?
N蓹 t saxlan谋lmas谋?
B蓹li?
Auditoriya: Bu ayr谋lmas谋 oldu bir yadda艧 alan谋 m眉蓹yy蓹n m蓹bl蓹臒i.
Bu, saxlamaq 眉莽眉n var h蓹rhalda, m蓹ktublar [I艧itilemez].
>> DAVID J. MALAN: Perfect.
Perfect.
Bu m眉蓹yy蓹n ayr谋lmas谋 oldu yadda艧 alan谋 m蓹bl蓹臒i
, ehtimalla, g蓹l蓹c蓹k m蓹ktublar saxlamaq 眉莽眉n.
V蓹 x眉susil蓹, malloc Buna g枚r蓹 d蓹 n蓹 qay谋d谋r?
>> Auditoriya: [i艧itilemez] olmusunuz?
DAVID J. MALAN: Exactly.
Ki, yadda艧 眉nvan qaytar谋lmas谋, olan dey蓹r蓹k bir x眉lya yoludur,
Bu 眉nvan qaytar谋r ki, yadda艧 ilk byte.
M蓹n蓹 yadda 眉zr蓹 onus edir n蓹 q蓹d蓹r yadda艧 M蓹n, h蓹qiq蓹t蓹n,
ayr谋lm谋艧 v蓹 ya malloc ist蓹di.
>> 陌ndi n蓹 q蓹d蓹r?
B蓹li, var, baxmayaraq ki, Burada m枚t蓹riz蓹d蓹 bir 莽ox,
malloc yaln谋z bir m眉bahis蓹 edir.
M蓹n s strlen ifad蓹 verm蓹k bel蓹 al谋ram M蓹n蓹 莽ox bytes s var kimi,
lakin bir 蓹lav蓹.
Niy蓹?
B蓹li?
>> Auditoriya: backslash 0.
DAVID J. MALAN: Exactly.
Biz bir az Ev t蓹s蓹rr眉fat谋 n蓹 var.
Bir backslash var, 莽眉nki Bel蓹 ki, 0, biz daha yax艧谋 xat谋rlay谋ram ediyorum.
茝ks halda, biz gedirik bir string yaratmaq 眉莽眉n
x眉susi terminator yoxdur.
>> Eyni zamanda, yaln谋z super olmaq anal, I, sizeof (char) var
yaln谋z halda kims蓹 m蓹nim 莽al谋艧谋r deyil CS50 cihaz kodu,
lakin b蓹lk蓹 m眉xt蓹lif komp眉ter c蓹mi yerl蓹艧ir chars
Konvensiya il蓹 bir byte var, lakin iki bytes, v蓹 ya daha b枚y眉k bir 艧ey.
Bu, sad蓹c蓹 super olmaq 眉莽眉n var, s蓹hvl蓹r super qar艧谋.
Baxmayaraq ki, 蓹slind蓹, bu 莽ox g眉man ki, 1 olacaq.
>> 陌ndi is蓹, m蓹n ir蓹li getm蓹k v蓹 sur蓹ti simli, t bracket i t bracket s b蓹rab蓹rdir.
M蓹n ke莽蓹n h蓹ft蓹 眉莽眉n t蓹xir蓹 salmaq olacaq m蓹nb蓹 kodu neler g枚rmek 眉莽眉n.
茝sas paket v蓹 ancaq s蓹b蓹bi, ya艧谋l, indi kodu qoymaq
ki, son line 莽眉nki t bracket 0, toupper b蓹rab蓹rdir
t蓹siri var h蓹rfl蓹 olan string?
t v蓹 / v蓹 ya s?
Kodu ki, son line.
>> N蓹 莽眉nki Just t, , bu d蓹f蓹 ba艧
M蓹n bir az ki, son add谋m geri 蓹g蓹r, M蓹n malloc z蓹ng zaman, n蓹 edir, ba艧
M蓹n mahiyy蓹tc蓹 yadda艧 y谋臒谋n almaq ki, orijinal kimi eyni 枚l莽眉s眉,
ki, hesab 莽眉nki etdim.
M蓹n 眉nvan t saxlan谋lmas谋 al谋ram yadda艧 ki, y谋臒谋n.
H蓹tta bu g枚z蓹l g枚r眉n眉r baxmayaraq v蓹 olduqca g枚z蓹l v蓹 bo艧,
reall谋q n蓹 biz will var edir Burada, z蓹ng zibil d蓹y蓹rl蓹r saxlamaq.
Yadda艧 ki, y谋臒谋n bil蓹c蓹k 莽ox d蓹 蓹vv蓹l istifad蓹 edilmi艧dir,
bir ne莽蓹 saniy蓹, bir ne莽蓹 d蓹qiq蓹 蓹vv蓹l.
Bel蓹 ki, tamamil蓹 n枚mr蓹l蓹ri ola bil蓹r yaln谋z q蓹za var v蓹 ya m蓹ktublar,.
Amma onlar q蓹d蓹r etibarl谋 deyilik 枚z眉m眉 yadda艧 bu y谋臒谋n ya艧ay谋r
faktiki chars il蓹 kimi orada loop 眉莽眉n yoxdur.
B眉t眉n h眉quqlar?
>> Bel蓹 ki, indi orgasm Bu 眉莽 n眉mun蓹l蓹ri
ki, zahir蓹n, son d蓹f蓹 s谋n谋q idi Bu Swap M蓹s蓹l蓹n, bu funksiya
m蓹nada i艧l蓹yib Bu bir v蓹 b d蓹yi艧dirildikd蓹 ki.
Amma n蓹 dig蓹r m蓹nada i艧 deyil?
B蓹li?
>> Auditoriya: [i艧itilemez].
>> DAVID J. MALAN: Exactly.
M蓹n bu funksiya z蓹ng idi 蓹g蓹r M蓹s蓹l蓹n another-- d蓹n,
, burada 蓹sas kimi bir funksiya I I, d蓹yi艧蓹n, x v蓹 y
Ke莽蓹n h蓹ft蓹 oldu臒u, eyni kodu, v蓹 m蓹n x v蓹 y ke莽m蓹k
Swap, sonra Swap-- z蓹ng etm蓹k 眉莽眉n, 蓹lb蓹tt蓹, d眉zg眉n versiyas谋
biz ist蓹yirik n蓹 edir see-- bunu etm蓹yib.
Bel蓹 ki, fix n蓹dir?
>> Yax艧谋, bel蓹 ki, yaln谋z olmaq ayd谋n, m蓹n蓹 ir蓹li ged蓹k
and-- ikinci burada m蓹n蓹 verm蓹k, v蓹 g枚rm蓹k M蓹n siz蓹 son bir g枚st蓹r蓹 bil蓹r 蓹g蓹r
M蓹n tapa bil蓹rsiniz 蓹g蓹r in g枚r蓹k in-- olacaq Bu real fast-- OK, [I艧itilemez].
OK, orada deyil.
M蓹n yaln谋z yazaraq al谋ram 蓹mrl蓹ri bilm蓹z.
M蓹n bunu almaq ist蓹yir蓹m son d蓹qiq蓹 n眉mun蓹
Son d蓹f蓹, hans谋 indi he莽 bir Swap adlan谋r.
>> Bel蓹 ki, he莽 Swap oldu臒u Biz son d蓹f蓹 off sol
vasit蓹si, I ba艧lat谋lm谋艧 1 x v蓹 2 y.
M蓹n sonra 1 v蓹 2 ke莽蓹n Swap z蓹ng.
V蓹 sonra bu funksiya m眉蓹yy蓹n m蓹nada i艧l蓹yib,
lakin he莽 daimi idi x v蓹 y t蓹sir.
Bel蓹 ki, 蓹l-da m蓹s蓹l蓹 nec蓹 indi, n蓹 Biz h蓹qiq蓹t蓹n bu problemi h蓹ll edirsiniz?
茝l h蓹lli n蓹dir?
>> B蓹li, bu g眉n yeni olan swap.c da, f蓹rql蓹r bir ne莽蓹 bildiri艧.
x v蓹 y eynidir.
Amma n蓹 ayd谋n deyil line 25 haqq谋nda m眉xt蓹lif var?
Yad谋n谋zdad谋rsa, n蓹 var yeni ikinci bir 蓹vv蓹l kimi baxd谋 n蓹?
>> Auditoriya: [i艧itilemez].
>> DAVID J. MALAN: B蓹li.
Bel蓹 ki, Ampersands yeni par莽a var sintaksis yaln谋z bu proqram,
h蓹m d蓹 眉mumiyy蓹tl蓹 CS50.
Tarix, m蓹n d眉艧眉nm眉r蓹m Biz h蓹r hans谋 bir 枚rnekler g枚rd眉m
v蓹 ya, h蓹qiq蓹t蓹n, h蓹r hans谋 onlara dan谋艧d谋 b蓹lk蓹, preemptively ba艧qa detal,
b枚lm蓹sind蓹, bu kimi bir i艧areti.
B蓹li, bu i艧areti bir 莽谋x谋r yeni sintaksis son 蓹d蓹d
biz 枚yr蓹nm蓹k olacaq.
O dem蓹kdir ki, bu B蓹zi d蓹yi艧蓹n 眉nvan谋.
N蓹 眉nvan At x ya艧ay谋r?
Amma y n蓹 眉nvan谋 ya艧ay谋r?
脟眉nki 蓹g蓹r 蓹vv蓹l fundamental problem
ki, x v蓹 y ke莽ib edildi biz h蓹qiq蓹t蓹n etm蓹k ist蓹yir蓹m n蓹 n眉sx蓹 kimi
bir x蓹zin蓹 kimi il蓹 Swap t蓹min edir harada x v蓹 h蓹qiq蓹t蓹n y g蓹tirib 莽谋xar谋r ki, x蓹rit蓹
ki, RAM var Swap x蓹rit蓹si t蓹qib ed蓹 bil蓹rsiniz
x v蓹 ya y spot qeyd yerd蓹 v蓹 getm蓹k v蓹 faktiki d蓹y蓹rl蓹ri d蓹yi艧dirm蓹k 1 v蓹 2
var.
>> Bel蓹 ki, Swap 莽ox az d蓹yi艧dirm蓹k laz谋md谋r.
V蓹 ilk bax谋艧dan, bu q眉dr蓹t char ulduz bir az ox艧ar g枚r眉n眉r.
V蓹 h蓹qiq蓹t蓹n deyil.
Bel蓹 ki, m蓹lumatlar谋n hans谋 n枚v bir g枚st蓹rici, Bu qeyd hiss蓹si 蓹saslan谋r?
Bel蓹 ki, bir int var.
>> Bel蓹 bir art谋q int edir, bir int 眉nvan谋 var.
V蓹 eyni, b indi gedir bir int 眉nvan谋 olacaq.
M蓹n indi 茝sas olan Swap z蓹ng zaman, M蓹n d蓹yi艧dirm蓹k 1 v蓹 2 verm蓹k fikrind蓹 deyil蓹m.
M蓹n kimi verm蓹k gedir蓹m Ox-bir v蓹 枚k眉z bir 艧ey,
s蓹b蓹b olacaq ki, iki 眉nvanlar谋 Onlar谋n faktiki yerl蓹rd蓹 Swap
m蓹nim komp眉ter yadda艧.
>> Bel蓹 ki, indi m蓹nim qalan h蓹yata ke莽irilm蓹si bir TAD d蓹yi艧dirm蓹k laz谋md谋r.
N蓹 indi a莽谋q-ayd谋n m眉xt蓹lif kod bu 眉莽 x蓹tl蓹ri?
B眉t眉n bu l蓹n蓹tl蓹m蓹k stars var yer 眉z蓹rind蓹, b眉t眉n sa臒?
B蓹s burada olub?
B蓹li?
>> Auditoriya: Bu [I艧itilemez] a莽谋q-ayd谋n var.
>> DAVID J. MALAN: Exactly.
Bu kontekstd蓹 bel蓹 v蓹 bu idi 茝n yax艧谋 dizayn q蓹rar, etiraf,
il 蓹vv蓹l.
Bu 莽蓹r莽iv蓹d蓹, oldu臒u Siz yaln谋z bir ulduz var,
v蓹 bir veri n枚v眉 yoxdur, int kimi, d蓹rhal sol,
蓹v蓹zin蓹 ayd谋n, b蓹rab蓹r i艧ar蓹si var, Bu 莽蓹r莽iv蓹d蓹, siz dey蓹nd蓹 bir ulduz,
ki, getm蓹k dem蓹kdir bir var ki, 眉nvan谋.
Bel蓹 ki, dan谋艧maq, x蓹zin蓹 x蓹rit蓹 edin.
>> V蓹 eyni zamanda, x蓹tt 37, eyni 艧ey dem蓹kdir.
脺nvan a getm蓹k v蓹 orada n蓹 qoymaq?
N蓹 olursa olsun edir b ifad蓹 ed蓹n yer.
Ba艧qa s枚zl蓹, b gedin.
Ki, d蓹y蓹ri al谋n.
B蓹rab蓹r ba艧谋na bir gedin v蓹 imza, atama operator,
var ki, d蓹y蓹ri qoydu.
>> Eynil蓹, int temp yaln谋z bir int edir.
He莽 temp haqq谋nda d蓹yi艧dirm蓹k laz谋md谋r.
Bu Annenberg yaln谋z bir ehtiyat 艧眉艧蓹 var B蓹zi s眉d v蓹 ya porta臒al 艧ir蓹si 眉莽眉n.
Amma, dem蓹k b getm蓹k laz谋md谋r.
Ki, hedef gedin v蓹 orada temp d蓹y蓹ri qoydu.
Bel蓹likl蓹 n蓹?
M蓹n, h蓹qiq蓹t蓹n, bu d蓹f蓹 Swap z蓹ng zaman Bu ilk tray burada Main t蓹msil
bu ikinci tray Swap t蓹msil zaman M蓹n i艧areti x v蓹 i艧areti y ke莽m蓹k
Main Swap, yaln谋z, ayd谋n olmaq bu y谋臒谋n谋 莽蓹r莽iv蓹sind蓹 q蓹bul n蓹dir?
B蓹li?
>> Auditoriya: [i艧itilemez].
DAVID J. MALAN: Exactly.
X 眉nvan谋 v蓹 y 眉nvan谋.
V蓹 bu hesab ed蓹 bil蓹r po莽t 眉nvanlar谋 kimi.
33 Oxford Street v蓹 35 Oxford Street, v蓹 siz
iki bina h蓹r蓹k蓹t etm蓹k ist蓹yir蓹m h蓹min yerl蓹rd蓹 var.
>> Bu g眉l眉nc ideya sort var, lakin biz 眉nvan dem蓹k b眉t眉n var.
D眉nyan谋n haras谋nda bil蓹rsiniz Bu iki ints tapmaq?
D眉nyan谋n haras谋nda siz Bu iki bina tapmaq?
Bel蓹 ki, n蓹hay蓹t, 蓹g蓹r b眉t眉n bu vaxt I sonra bug眉nk眉 m蓹nb蓹 kodu daxil v蓹 t蓹rtib
Swap v蓹 run ./swap, n蓹hay蓹t, 眉莽眉n 陌lk d蓹f蓹 biz, h蓹qiq蓹t蓹n, g枚r眉rs眉n眉z
m蓹nim d蓹y蓹rl蓹r h蓹qiq蓹t蓹n var u臒urla de臒i艧tirilecek.
陌ndi, biz h蓹tta bil蓹r bu, dem蓹k, gdb qeyd.
>> Bel蓹 ki, m蓹n蓹 eyni fayl daxil ed蓹k.
M蓹n蓹 ir蓹li getm蓹k v蓹 ./swap v蓹 gdb run ed蓹k.
陌ndi, Swap, m蓹n getm蓹k 眉莽眉n gedir蓹m ir蓹li v蓹 茝sas bir fasil蓹 n枚qt蓹sini qurmaq.
V蓹 indi m蓹n getm蓹k 眉莽眉n gedir蓹m ir蓹li v蓹 proqram谋.
V蓹 indi m蓹nim kodu g枚r蓹c蓹ksiniz x蓹tt durduruldu.
>> M蓹n ir蓹li v蓹 莽ap getm蓹k 蓹g蓹r x, m蓹n burada n蓹 g枚r眉rs眉n眉z?
Bu bir sual var.
Daha dem蓹k?
>> Auditoriya: [i艧itilemez].
>> DAVID J. MALAN: Bel蓹 ki, t蓹sad眉fi n枚mr蓹l蓹ri, b蓹lk蓹.
B蓹lk蓹 m蓹n xo艧b蓹xt almaq v蓹 bu 0 kimi, g枚z蓹l v蓹 sad蓹.
Amma b蓹lk蓹 bir t蓹sad眉fi say谋 var.
Bu halda, m蓹n xo艧b蓹xt var.
Bu, yaln谋z 0 olur.
Amma bu, h蓹qiq蓹t蓹n u臒urlar deyil q蓹d蓹r, 莽眉nki m蓹n
n枚vb蓹ti yaz谋n v蓹 sonra 莽ap x ki var kod line, line 19, edam olunub.
>> Eyni zamanda, m蓹n yaz谋n 蓹g蓹r daha sonrak谋 v蓹 indi 2 gedir蓹m, y 莽ap.
M蓹n n枚vb蓹ti yaz谋n 蓹g蓹r 陌ndi, bu olacaq bir az confusing almaq, indi,
printf g枚r眉n眉r gedir ekran bunu kimi. x 1.
>> Yen蓹 bunu ed蓹k.
陌ndi, burada harada 艧eyl蓹r maraql谋 almaq.
M蓹n Swap v蓹 ya h蓹tta bir add谋m z蓹ng 蓹vv蓹l onu, bir az peek almaq ed蓹k.
x, yen蓹 1.
Y, 蓹lb蓹tt蓹, tez a臒l谋 ba艧谋nda olma edir bel蓹 a臒谋r oldu臒unu, 2 yoxlay谋n.
Amma i艧areti x n蓹dir?
Cavab, bu c眉r funky axtar谋r.
Amma parantez int ulduz yaln谋z Bu s枚zl蓹ri 脺DM yolu bir 眉nvan.
Bu, bir bir g枚st蓹rici bir int var deyil int, v蓹 ya ba艧qa bir 眉nvan kimi tan谋n谋r.
>> Bu crazy 艧ey n蓹dir?
Biz bir 艧ey g枚rm蓹mi艧蓹m olduqca 蓹vv蓹l ki, kimi.
Bel蓹 ki, bu m蓹nim komp眉ter-in 眉nvan谋 x ya艧amaq olur harada yadda艧.
Bu Ox-bir 艧ey var.
V蓹 bu s蓹mimi, n蓹, M蓹n oklar谋 r蓹sm a莽谋lm谋艧 etdik,
蓹v蓹zin蓹 n枚mr蓹l蓹ri, h蓹qiq蓹t蓹n qay臒谋 莽眉nki
Sizin int x眉susi edir ki, big ki, ki, 眉nvan谋.
Amma bffff0c4, bu b眉t眉n var h蓹qiq蓹t蓹n hexadecimal r蓹q蓹m,
f vasit蓹sil蓹 0 olan.
>> Bel蓹likl蓹, biz 莽ox qalacaqlar fikrind蓹 deyilik O 艧eyi n蓹 uzun.
Amma y 莽ap 蓹g蓹r, 茝lb蓹tt蓹, m蓹n 2 g枚r眉r眉k.
Amma i艧areti y, m蓹n bu 眉nvan谋 g枚r眉r眉k.
V蓹 bildiri艧, maraql谋 眉莽眉n, ayr谋 x v蓹 y n蓹 q蓹d蓹r var?
Siz 眉nvan 蓹n iqnor ed蓹 bil蓹r.
D枚rd bytes.
V蓹 uy臒un deyil bizim 蓹vv蓹ll蓹r int nec蓹 b枚y眉k oldu臒unu iddia?
D枚rd bytes.
Bel蓹 ki, h蓹r 艧ey astarl谋 up kimi g枚r眉n眉r q蓹艧蓹ng, yadda艧, 眉mid ed蓹 bil蓹r kimi.
>> Bel蓹 ki, indi yaln谋z s眉r蓹tli ir蓹li ed蓹k Bu hekay蓹 sonuna.
Nin ir蓹li getm蓹k v蓹 add谋m yaz谋n imkan Swap funksiyas谋 daxil dal谋艧.
陌ndi m蓹n bir yaz谋n 蓹g蓹r, bu, qeyd x 眉nvan谋 眉莽眉n eyni.
I b yaz谋n 蓹g蓹r, bu eyni deyil y 眉nvan 眉莽眉n.
M蓹n 蓹g蓹r n蓹 g枚r眉rs眉n眉z bir 眉nvana getm蓹k dem蓹k?
Bel蓹 ki, bir ulduz 莽ap.
Bel蓹 ki, ulduz bu 莽蓹r莽iv蓹d蓹, orada getm蓹k dem蓹kdir.
Ampersand 眉nvan谋 n蓹 dem蓹kdir.
Bel蓹 bir vasit蓹 1 ulduz.
V蓹 莽ap star b m蓹n蓹 2 verir.
>> V蓹 m蓹n蓹 bu an 眉莽眉n, f蓹rz ed蓹k, 蓹n az谋 kodu ki,
ola bil蓹r indi icra g蓹lir yol vasit蓹sil蓹 蓹sasland谋r谋lmas谋.
Amma biz uzun 蓹vv蓹l bu fikir yenid蓹n laz谋md谋r.
Swap Bel蓹 ki, bu versiya indi d眉zg眉n v蓹 imkan verir
us bu veri n枚v眉 d蓹yi艧dirm蓹k 眉莽眉n.
>> Bel蓹 ki, h蓹r hans谋 bir sual谋n谋z sonra Swap?
Ulduz?
脺nvan谋 haqq谋nda?
V蓹 il蓹, siz g枚r蓹c蓹ksiniz problem, sort, 4 qurmaq
lakin problem 5, m眉tl蓹q, nec蓹 bu m眉蓹yy蓹n 艧eyl蓹r faydal谋 v蓹 daha 莽ox almaq
n蓹tic蓹sind蓹, onlarla rahat.
B眉t眉n 艧ey?
B眉t眉n h眉quqlar.
Bel蓹 ki, malloc, bu funksiya yenid蓹n, yaln谋z yadda艧, yadda艧 ay谋r谋r
ayr谋lmas谋.
V蓹 niy蓹 bu faydal谋d谋r?
Yax艧谋, b眉t眉n bu vaxt, Siz malloc istifad蓹 etdik.
陌ndi nec蓹 hesab 蓹g蓹r i艧l蓹ri getString, ehtimalla, bu
bir y谋臒谋n 眉莽眉n kims蓹 xahi艧 yadda艧, zaman istifad蓹莽i bir string
, 蓹lb蓹tt蓹 ki, biz, 莽眉nki bilmir蓹m, CS50 hey蓹ti,
nec蓹 b枚y眉k o strings ki, insanlar ola bil蓹r yaz谋n gedir.
>> Bel蓹 ki, ilk d蓹f蓹, ba艧lamaq ed蓹k peel geri nec蓹 CS50 kitabxana i艧l蓹ri,
n眉mun蓹l蓹ri bir ne莽蓹 yolu il蓹 ki, biz蓹 r蓹hb蓹rlik ed蓹c蓹k.
M蓹n gedit a莽maq Bel蓹 ki, v蓹 scanf 0 a莽maq
biz a艧a臒谋dak谋 kodu g枚rm蓹k olacaq.
脺莽眉n web m枚vcuddur Scanf 0, bu g眉n kodu nisb蓹t蓹n ne莽蓹 x蓹tl蓹ri var
Burada 20 vasit蓹sil蓹 14.
V蓹 bunu n蓹 g枚rm蓹k bildirin.
Bu int adl谋 x b蓹yan edir.
Bu kimi bir 艧ey, say谋 edin deyir.
V蓹 indi scanf% i, x, deyir.
Bel蓹 ki, yeni m蓹hsullar谋n谋n bir d蓹st蓹 var.
>> Amma scanf, siz c眉r hesab ed蓹 bil蓹r olan printf qar艧谋 kimi.
printf, 蓹lb蓹tt蓹, ekran bask谋.
istifad蓹莽i olan trans scanf sort klaviatura bir 艧ey o yazd谋臒谋n谋z.
>> % I yaln谋z printf kimi.
Bu g枚zl蓹m蓹k dem蓹kdir istifad蓹莽i int yaz谋n.
V蓹 indi, niy蓹 m蓹n d眉艧眉n眉rs眉n眉z scanf & x ke莽蓹n ola bil蓹r?
茝g蓹r scanf h蓹yat谋nda m蓹qs蓹di istifad蓹莽i bir 艧ey almaq 眉莽眉n,
m蓹nas谋 n蓹dir indi bunu q蓹bul v蓹 x?
B蓹li?
>> Auditoriya: [i艧itilemez].
DAVID J. MALAN: Exactly.
N蓹 m蓹n, insan, m蓹nim giri艧 yaz谋n ki, yer xilas olacaq.
Bu yaln谋z, geri, kifay蓹t q蓹d蓹r deyil biz art谋q g枚rd眉m, 莽眉nki, x ke莽m蓹k,
ist蓹nil蓹n vaxt, yaln谋z bir xam d蓹yi艧蓹n ke莽m蓹k bir int kimi, b蓹zi dig蓹r funksiyas谋,
蓹min, bu d蓹yi艧蓹 bil蓹rsiniz d蓹yi艧蓹n, lakin daimi.
Bu 茝sas t蓹sir ed蓹 bilm蓹z.
Bu, yaln谋z 枚z yerli sur蓹ti d蓹yi艧蓹 bil蓹rsiniz.
Lakin, 蓹v蓹zin蓹, siz deyil M蓹n蓹 faktiki int verm蓹k,
ancaq m蓹n蓹 istiqam蓹tl蓹ri verm蓹k ki, int, m蓹n indi, scanf olan
艧眉bh蓹siz ki, m蓹n t蓹qib ed蓹 bil蓹rsiniz m眉raci蓹t v蓹 bir s谋ra qoymaq
bel蓹, siz d蓹 onu 蓹ld蓹 etm蓹k.
>> Bu proqram 莽al谋艧t谋rd谋臒谋n谋zda, g枚r蓹k.
Scanf 0 dot 莽izgi olun, 0 scanf.
V蓹 m蓹n indi bir s谋ra yaz谋n 蓹g蓹r 50 kimi, 50 眉莽眉n t蓹艧蓹kk眉r edirik.
陌ndi kimi bir s谋ra yaz谋n 蓹g蓹r m蓹nfi 1, 1 m蓹nfi.
M蓹n indi hm, 1,5 kimi bir s谋ra yaz谋n.
Niy蓹 m蓹nim proqram m蓹n蓹 ignore idi?
B蓹li, 莽眉nki sad蓹c蓹, m蓹n bildirib bir int yaln谋z g枚zl蓹m蓹k.
B眉t眉n h眉quqlar.
Bel蓹 ki, bu bir versiyas谋 var.
Nin bir pill蓹 q蓹d蓹r 艧eyl蓹r g枚t眉r蓹k v蓹 Bu yax艧谋 deyil ki, t蓹klif.
V蓹 burada 莽ox sad蓹 n眉mun蓹 yat谋r biz yaz谋l谋 kodu ba艧laya bil蓹rsiniz nec蓹
dig蓹r insanlar istifad蓹 ed蓹 bil蓹rsiniz v蓹 ya pis 艧eyler g眉z蓹艧t蓹.
Bel蓹 ki, line 16, bel蓹 ki, ox艧ar ruhunda 蓹vv蓹l,
amma bu d蓹f蓹 int b蓹yan deyil蓹m.
M蓹n simli aka, bu char ulduz elan edir蓹m.
>> Amma h蓹qiq蓹t蓹n n蓹 dem蓹kdir?
M蓹n bir address-- m眉蓹yy蓹n etmir 蓹g蓹r M蓹n 枚zba艧谋na z蓹ng al谋ram, bufer,
amma simple-- olmaq, s z蓹ng ed蓹 bil蓹r v蓹 sonra m蓹n bunu m蓹n蓹 izah,
Siz 蓹vv蓹lki 蓹sas谋nda ola bil蓹r, m蓹ntiq, scanf line 18 n蓹,
pass% s v蓹 bufer 蓹g蓹r, 眉nvan谋 hans谋d谋r?
Siz m眉raci蓹t 蓹g蓹r scanf, n蓹 versiyas谋 0 kimi eyni m蓹ntiq,
burada n蓹 眉莽眉n c蓹hd edir, zaman istifad蓹莽i n枚vl蓹ri bir 艧ey?
B蓹li?
>> Auditoriya: [i艧itilemez].
>> DAVID J. MALAN: Exactly.
Scanf, m蓹ntiq daha 蓹vv蓹l, simli etm蓹k niyy蓹tind蓹dir
insan tipli ki , indi bir simli var in--
Bu, g眉man ki, bir s谋ra deyil o cooperates-- 蓹g蓹r
v蓹 bu qoymaq 眉莽眉n c蓹hd olacaq n蓹 眉nvanda yadda艧 string
bufer m眉蓹yy蓹nl蓹艧dirir.
V蓹 bu, b枚y眉k bufer 莽眉nki h蓹qiq蓹t蓹n bir 眉nvan dem蓹kdir.
>> Amma bu proqram il蓹 arabas谋 iddia 莽ox ciddi bir 艧蓹kild蓹, d蓹y蓹ri n蓹 莽眉nki
default bufer?
M蓹n n蓹 daxil ba艧lat谋lm谋艧 var?
Yadda艧 n蓹 y谋臒谋n?
M蓹n, sa臒?
>> M蓹n t蓹sis etdik baxmayaraq art谋q s deyirl蓹r ki char ulduz,
蓹v蓹zin蓹 deyirl蓹r ki, buffer-- Nin d蓹yi艧蓹n ad谋 莽蓹km蓹k imkan
M蓹n 蓹g蓹r indi buffer-- burada getString ya malloc adl谋,
s蓹m蓹r蓹li o dem蓹kdir ki, bufer yaln谋z b蓹zi zibil d蓹y蓹ri.
>> 陌ndi n蓹 dem蓹kdir?
M蓹n scanf demi艧蓹m o dem蓹kdir ki, istifad蓹莽i bir string g枚zl蓹yirik.
V蓹 n蓹 bilirik?
N蓹 olursa olsun bu 艧ey i艧ar蓹 edir to-- v蓹 m蓹n sual i艧ar蓹si 莽蓹km蓹k,
lakin 蓹slind蓹, bu olacaq OX1, 2, 3, kimi bir 艧ey do臒ru?
B蓹zi saxta d蓹y蓹ri var ki, yaln谋z 蓹vv蓹l orada olmaq olur.
Bel蓹 ki, ba艧qa bir yol qoymaq, bu bufer yaln谋z sanki
yadda艧 bir 艧ey i艧ar蓹.
M蓹n n蓹 he莽 bir fikrim yoxdur.
>> 陌ndi Gabe yaz谋n Bel蓹 ki, gedir orada g-a-b-e / 0 qoymaq 眉莽眉n c蓹hd.
Amma kim n蓹 bilir?
V蓹 ke莽mi艧d蓹, h蓹r hans谋 bir toxunmaq c蓹hd etdik vaxt
aid deyil ki, yadda艧 Biz蓹 n蓹 oldu?
V蓹 ya dem蓹k olar ki, h蓹r zaman.
Seqmentasiya g眉nah, sa臒?
>> Bu bu arrow, he莽 bir fikrim yoxdur i艧ar蓹. Bu yaln谋z bir t蓹sad眉fi d蓹y蓹ri var.
V蓹 蓹lb蓹tt蓹, siz 艧蓹rh 蓹g蓹r 眉nvan olaraq bir t蓹sad眉fi d蓹y蓹ri,
Siz getm蓹k olacaq b蓹zi t蓹sad眉fi t蓹yinat.
Bel蓹 ki, gabe crash h蓹qiq蓹t蓹n bil蓹r burada bu halda m蓹nim program.
>> Bel蓹likl蓹, biz dem蓹k olar ki, kimi pis n蓹 ed蓹 bil蓹r?
Bu 眉莽眉nc眉 d眉艧眉n眉n v蓹 scanf son n眉mun蓹sidir.
Bu versiya n蓹 m蓹nada yax艧谋d谋r?
Siz il蓹 rahat, 蓹g蓹r 茝vv蓹lki problem, bu daha yax艧谋d谋r.
Niy蓹?
>> Auditoriya: [i艧itilemez].
DAVID J. MALAN: Yax艧谋.
Line 16 Bel蓹 ki, bu halda Bu m蓹nada, yax艧谋d谋r
biz ayd谋n 艧蓹kild蓹 ist蓹yirik ki, b蓹zi yadda艧 ayr谋lmas谋.
Biz malloc istifad蓹 edirik biz h蓹ft蓹d蓹 2 istifad蓹 etdiyiniz
yaln谋z bir s谋ra elan yana艧ma.
V蓹 biz bir string 蓹vv蓹l bildirib etdiyiniz yaln谋z simvol bir s谋ra,
bu tamamil蓹 qanunidir.
Amma bu kimi, 蓹lb蓹tt蓹, var 16, sabit 枚l莽眉s眉 unutmay谋n.
>> Bel蓹 ki, bu proqram tamamil蓹 t蓹hl眉k蓹siz, m蓹n yaz谋n 蓹g蓹r
bir xarakter strings, iki xarakter strings, 15 xarakter strings.
Amma tezlikl蓹 m蓹n 16 yazaraq ba艧lamaq kimi, 17, 18, 1000 xarakter strings,
harada ki, simli ba艧a gedir?
Bu qism蓹n burada sona olacaq.
Amma sonra kim hans谋 ba艧qa bilir s蓹rh蓹dl蓹ri k蓹narda
bu serial谋n?
>> M蓹n var kimi olsa var Burada 16 qutular谋 elan etdi.
Bel蓹 ki, b眉t眉n 16 莽谋xartmaq deyil, biz will yaln谋z m蓹n 16 t蓹rtib etdik ki, iddia.
Amma sonra bir string oxumaq 眉莽眉n c蓹hd edin 50 simvol kimi, 莽ox uzun deyil,
M蓹n qoyulmas谋 ba艧lamaq 眉莽眉n gedir蓹m a, b, c, d, x, y, z.
V蓹 bu g眉man edir b蓹zi dig蓹r yadda艧 seqment
ki, yen蓹 s蓹b蓹b ola M蓹nim proqram, q蓹za
M蓹n xahi艧 etdik, 莽眉nki yaln谋z 16 bayt daha bir 艧ey.
>> Bel蓹 ki, kimin umurunda?
Yax艧谋, burada CS50 kitabxana var.
V蓹 bu 莽ox yaln谋z 眉st q蓹d蓹r t蓹limat kimi.
Bu CS50 kitabxana, b眉t眉n bu vaxt, line 52 bu x蓹tti var.
Biz typedef g枚r眉ld眉, v蓹 ya etdik Siz typedef g枚r蓹c蓹ksiniz
yaln谋z bir yarad谋r pset 4, sinonimi char ulduz daha ola bil蓹r qovu艧durma臒谋m谋z
sad蓹c蓹 string kimi istinad.
Bel蓹 ki, bu biridir bir ne莽蓹 t蓹lim t蓹k蓹rl蓹r
biz ba艧l谋q alt谋nda gizli istifad蓹 etdik.
>> Eyni zamanda, burada getchar, funksiyas谋 var.
陌ndi y蓹qin, ona he莽 bir orqan var.
V蓹 蓹slind蓹, m蓹n saxlamaq 蓹g蓹r scrolling, M蓹n, h蓹qiq蓹t蓹n, yoxdur
h蓹r hans谋 bir t蓹tbiq g枚rm蓹k Bu funksiyalar谋n.
Bir a臒l谋 ba艧谋nda olma 莽ek kimi, niy蓹 ki?
>> Auditoriya: [i艧itilemez].
DAVID J. MALAN: B蓹li.
Bel蓹 ki, bu m枚vzu fayl.
V蓹 header fayllar谋 prototipl蓹ri ehtiva, plus b蓹zi dig蓹r stuff, g枚r眉n眉r,
typedefs kimi.
Amma CS50.c, biz var olan a莽谋q siz蓹 he莽 vaxt,
lakin CS50 cihaz olmu艧dur b眉t眉n bu d蓹f蓹, d蓹rin qovluq daxilind蓹,
b眉t眉n var fark burada funksiyalar谋 d蓹st蓹.
>> 茝slind蓹 is蓹 a艧a臒谋 diyirl蓹yin bildirin.
Indi 眉莽眉n, onlar谋n 蓹ks蓹riyy蓹ti ignore ed蓹k.
Amma GetInt 眉莽眉n a艧a臒谋ya f谋rlad谋n v蓹 getInt nec蓹 i艧l蓹diyini g枚rm蓹k.
Bel蓹 ki, burada getInt edir.
茝g蓹r, h蓹qiq蓹t蓹n, qay臒谋 蓹g蓹r nec蓹 almaq int burada 莽al谋艧谋r, s蓹n蓹dl蓹rin deyil.
V蓹 艧eyl蓹r aras谋nda bu siz蓹 deyir deyir
d蓹y蓹rl蓹rin silsil蓹l蓹ri Bu qay谋da bil蓹r n蓹.
Bu mahiyy蓹tc蓹 m蓹nfi 2 milyard m眉sb蓹t 2 milyard, verm蓹k v蓹 ya almaq.
>> V蓹 b眉t眉n bu 莽谋x谋r, zaman, biz he莽 etdik baxmayaraq
Siz onu yoxlamaq idi, bir 艧ey yanl谋艧 gedir 蓹g蓹r,
b眉t眉n 莽谋x谋r ki, bu d蓹f蓹, getInt var
x眉susi qaytar谋lmas谋 edilmi艧dir , null, daimi deyil
蓹ksin蓹 olan INT_MAX yaln谋z proqram莽谋-nin Konvensiyas谋.
Burada dem蓹kdir x眉susi d蓹y蓹ri n蓹.
Yaln谋z bu yoxlamaq 眉莽眉n 蓹min olun halda bir 艧ey yanl谋艧 gedir.
Amma biz narahat he莽 etdik g眉n蓹 ki,
yenid蓹n, bu, 莽眉nki asanla艧d谋rmaq 眉莽眉n n蓹z蓹rd蓹 tutulmu艧dur.
>> Amma nec蓹 getInt h蓹yata almaq deyil?
Yax艧谋, bir, he莽 bir d蓹lill蓹ri edir.
Biz bilirik ki,.
Bu int qaytar谋r.
Biz bilirik ki,.
Bel蓹 ki, nec蓹 bu ba艧l谋q alt谋nda i艧l蓹yir?
>> Bel蓹 ki, y蓹qin sonsuz var loop, 蓹n az谋 g枚r眉n眉艧眉.
Biz getString istifad蓹 edirik ki, g枚r眉rs眉n眉z.
Bel蓹 ki, maraql谋 deyil. getInt 枚z funksiyas谋, getString 莽a臒谋r谋r.
陌ndi niy蓹 bu halda ola bil蓹r?
Niy蓹 m眉dafi蓹 olmaqdan burada line 165 ild蓹?
N蓹 x蓹tti ola bil蓹r 164, yaln谋z ayd谋n olmaq?
Bu 蓹vv蓹lki kimi eyni cavab谋 var.
Yaln谋z yadda艧 ola bil蓹r.
Something, GetString il蓹 yanl谋艧 gedir ki, idar蓹 etm蓹k 眉莽眉n var.
V蓹 s蓹b蓹bi null qay谋tmaq yoxdur ki, texniki, null bir g枚st蓹ricisidir.
getInt bir int geri var.
M蓹n, 枚zba艧谋na var , mahiyy蓹tc蓹, q蓹rar
2 milyard gedir, verm蓹k v蓹 ya almaq x眉susi d蓹y蓹r olmas谋 he莽 vaxt ed蓹 bil蓹rsiniz
h蓹qiq蓹t蓹n, istifad蓹莽i almaq.
M蓹n gedir蓹m yaln谋z bir d蓹y蓹ri var bir s蓹hv ba艧 kodu t蓹msil s蓹rf.
>> Bel蓹 ki, indi h蓹r 艧eyi bir az x眉lya almaq.
V蓹 莽ox eyni funksiyas谋 deyil 蓹vv蓹l, lakin 莽ox ox艧ar.
M蓹n line burada elan bildiri艧 172, bir int n v蓹 char c h蓹m d蓹.
V蓹 sonra m蓹n bu funky line istifad蓹 Bu 莽谋x谋r sscanf,
klaviatura bir string scan deyil.
Bu m枚vcud simli dayan谋r ki, istifad蓹莽i art谋q 莽ap etmi艧dir.
M蓹n art谋q getString, adlanan m蓹n yadda艧 bir string var dem蓹kdir.
sscanf n蓹 had edir bir t蓹hlil funksiyas谋 z蓹ng.
M蓹n var simli bax谋r , xarakteri il蓹 xarakter tipli
v蓹 faydal谋 bir 艧ey yoxdur.
Ki, string line saxlan谋l谋r.
M蓹n yaln谋z gedir bilirik ki, OK, oh, burada dey蓹r蓹k geri,
M蓹n bu vaxt, lakin line 莽a臒谋r谋b.
>> 陌ndi bu bir az f蓹rqlidir.
Amma bu s蓹m蓹r蓹li s蓹b蓹bl蓹rd蓹n dem蓹kdir biz q蓹d蓹r, bu g眉n bizim 蓹ll蓹ri dal臒a laz谋md谋r
biz yoxlaman谋n istifad蓹莽i 莽ap g枚rmek
v蓹 int v蓹 b蓹lk蓹 ba艧qa xarakter.
Istifad蓹莽i int tipli varsa, bu M蓹n deyil蓹m, 莽眉nki gedir, n saxlan谋lmal谋d谋r
眉nvan bu ke莽蓹n biz bu g眉n g枚rd眉m yeni oyun.
Istifad蓹莽i da 莽ap 蓹g蓹r kimi 123x, o x
bir ba艧a gedir karakter c m蓹ktubu.
>> 陌ndi ki sscanf 莽谋x谋r a臒谋ll谋, m蓹n蓹 izah ed蓹c蓹k,
ne莽蓹 d蓹yi艧蓹nl蓹r sscanf edilib doldurmaq u臒urla ed蓹.
Bu m蓹ntiq, 蓹g蓹r bel蓹 funksiyas谋 M蓹n GetInt h蓹yata ke莽irilm蓹si 莽ox al谋ram
amma yoxlan谋lmas谋 al谋ram, potensial, istifad蓹莽i 眉莽眉n
int tipli var ba艧qa bir 艧ey izl蓹di,
n蓹 m蓹n sscanf Agentliyi ist蓹yir蓹m qaytar谋lmas谋 d蓹y蓹ri h蓹qiq蓹t蓹n olacaq?
M蓹qs蓹di almaq 蓹g蓹r yaln谋z istifad蓹莽i bir int?
>> Bel蓹 sscanf yekunlar谋 蓹g蓹r 2 ki, n蓹 dem蓹kdir?
Y谋臒d谋臒谋n谋z istifad蓹莽i kimi bir 艧ey, sanki,
Yaln谋z c蓹f蓹ngiyatd谋r olan 123x.
Bu bir s蓹hv v蓹ziyy蓹t var, v蓹 M蓹n ki, yoxlamaq ist蓹yir蓹m.
>> Bel蓹 ki, bu istifad蓹莽i n枚vl蓹ri 蓹g蓹r t蓹r蓹find蓹n Bu m蓹ntiql蓹 qay谋tmaq sscanf n蓹,
Siz dey蓹c蓹ksiniz?
Bel蓹 ki, 莽眉nki 2 geri olacaq 123, burada getm蓹k niyy蓹tind蓹dir
v蓹 x burada sona gedir.
Amma x dolu almaq ist蓹mir蓹m.
M蓹n yaln谋z u臒ur qazanmaq 眉莽眉n sscanf ist蓹yir蓹m onun d蓹yi艧蓹nl蓹ri doldurulmas谋.
V蓹 bel蓹 ki, niy蓹 m蓹n sscanf 1 qay谋tmaq ist蓹yir蓹m.
>> V蓹 bu ba艧 眉z蓹rind蓹 bir az olduqda Bu an 眉莽眉n, ki, tamamil蓹 g枚z蓹l var.
, Baxmayaraq ki, bir h蓹yata GetInt v蓹 GetString d蓹y蓹rl蓹r
biz bir heck edirik ki, Bu bel蓹 kimi s蓹hv yoxlan谋lmas谋 莽ox
ki, tarixi, olduqca 莽ox bil蓹rsiniz klaviatura bir 艧ey yaz谋n,
v蓹 biz bunu tutmaq olacaq.
V蓹 biz 蓹lb蓹tt蓹 ki, hey蓹ti deyil, m眉tl蓹q olacaq
bir s蓹hv m蓹nb蓹yi ola sizin proqram, biz m眉dafi蓹 edirik, 莽眉nki
axmaq b眉t眉n yoxlan谋lmas谋 bir istifad蓹莽i ed蓹 bil蓹r ki, h蓹r 艧eyi,
, bir string yazaraq kimi Siz, h蓹qiq蓹t蓹n, int ist蓹di.
Bel蓹likl蓹, biz g蓹lm蓹k laz谋md谋r now-- 眉莽眉n bu geri long-- 蓹vv蓹l
lakin b眉t眉n bu vaxt, getString v蓹 getInt var
Bu istifad蓹 ba艧l谋q alt谋nda olub yadda艧 眉nvanlar谋 蓹sas fikir.
>> Bel蓹 ki, indi bir 艦eyi ed蓹k istifad蓹莽i dostu az daha 莽ox.
Siz Binky sonuncu geri bil蓹r time-- m蓹nim si莽an bel蓹 cooperate-- 蓹g蓹r
Biz bu kodu, olan s蓹mimi, kifay蓹t q蓹d蓹r c蓹f蓹ngdir.
Bu kodu bir 艧ey 蓹ld蓹 faydal谋, ancaq n眉mun蓹si idi
ki, professor Parlante t蓹msil etm蓹k 眉莽眉n istifad蓹
n蓹 ged蓹n yadda艧 c蓹lb program.
>> Bel蓹 ki, bu tekrar anlatmak ed蓹k hekay蓹 super q谋sa.
Bu ilk iki x蓹tl蓹ri,-da English, n蓹 dey蓹rdim ki, yoxdur?
Yaln谋z 蓹sasl谋 insan, lakin az texniki 艧蓹rtl蓹r, bir z蓹rb蓹 almaq.
Auditoriya: [i艧itilemez].
>> DAVID J. MALAN: OK, siz yarad谋lmas谋 edirik Sizin x v蓹 y d蓹yi艧蓹nl蓹rin 眉nvanlar谋.
Olduqca, x v蓹 y deyil, 莽眉nki 蓹n蓹n蓹vi m蓹nada d蓹yi艧蓹nl蓹r.
x v蓹 y 眉nvanlar v蓹 ya 眉nvan saxlamaq olacaq.
Bel蓹 ki, bu bir daha c蓹hd ed蓹k.
Bir pis ba艧lan臒谋c olsa da.
B蓹li?
>> Auditoriya: [i艧itilemez].
DAVID J. MALAN: Yax艧谋.
M蓹n bir az t蓹miz hesab edir蓹m.
Iki g枚st蓹ricil蓹rin蓹, iki integers elan.
V蓹 biz onlara x v蓹 y z蓹ng edirik.
Yoxsa biz 蓹g蓹r 莽蓹km蓹k bu 艧蓹kil kimi, yen蓹,
sad蓹c蓹 b眉t眉n geri ki, birinci x蓹tti il蓹 edirik
bu kimi bir qutu 莽蓹k蓹r蓹k, bu bir zibil d蓹y蓹ri il蓹,
v蓹 sonra x z蓹ng, v蓹 bu kimi ba艧qa box,
bir zibil d蓹y蓹ri il蓹 bu, y z蓹ng.
Biz iki elan etdik g枚st蓹ricil蓹rin蓹 ki, son n蓹tic蓹d蓹
bir int 眉莽眉n 眉nvan saxlamaq olacaq.
Bel蓹 ki, b眉t眉n var.
>> Binky bunu bel蓹 zaman, gil yaln谋z bu kimi baxd谋.
V蓹 Nick yaln谋z c眉r oklar谋 b眉k眉l眉,
sanki onlar h蓹r hans谋 bir i艧ar蓹 deyilik x眉susil蓹, 莽眉nki onlar yaln谋z
zibil d蓹y蓹rl蓹r.
Onlar a莽谋q-a艧kar ba艧lat谋lm谋艧 deyilik h蓹r yerd蓹 x眉susil蓹.
>> 陌ndi n枚vb蓹ti line kodu, geri, bu idi.
, 茝sasl谋 istifad蓹莽i dostu bel蓹 lakin bir q蓹d蓹r texniki English,
kodu edir bu x蓹tt n蓹dir?
B蓹li?
>> Auditoriya: [i艧itilemez].
>> DAVID J. MALAN: Perfect.
Bu y谋臒谋n ayr谋lmas谋 oldu bir int 枚l莽眉s眉 ki, yadda艧.
V蓹 yar谋m cavab var.
Siz h眉ququ cavab ifad蓹 yar谋s谋.
N蓹 ba艧 b蓹rab蓹r i艧ar蓹si sol t蓹r蓹find蓹?
B蓹li?
Auditoriya: V蓹 varisl蓹ri bu d蓹yi艧蓹n x?
>> DAVID J. MALAN: And varisl蓹ri bu d蓹yi艧蓹n x.
Recap, sa臒 t蓹r蓹fd蓹n ay谋rd谋臒谋 Bel蓹 kifay蓹t q蓹d蓹r yadda艧 int saxlamaq 眉莽眉n.
Amma malloc x眉susi 眉nvan qaytar谋r
Siz var olan yadda艧 ki, y谋臒谋n ki, yaln谋z x saxlan谋l谋r olur t蓹klif edib.
>> Bel蓹 ki, n蓹 Nick Binky il蓹 son d蓹f蓹 etdim o pointer h蓹yata s眉r眉kl蓹n蓹c蓹kl蓹r, gil,
yadda艧 a臒 y谋臒谋n indi qeyd etm蓹k ki, bir int 枚l莽眉s眉 b蓹rab蓹rdir.
And olsun ki, n蓹z蓹rd蓹 d枚rd bayt t蓹msil etm蓹k.
>> Kod 陌ndi n枚vb蓹ti line bunu, star x 42 olur.
Bel蓹 ki, 42-d蓹 sad蓹 deyil sa臒 t蓹r蓹fd蓹n, h蓹yat m蓹nas谋.
Sol t蓹r蓹fd蓹n, ulduz x n蓹 dem蓹kdir?
OK ki gone-- 莽ox ola bil蓹r.
OK.
>> Auditoriya: 茝sas蓹n, [I艧itilemez] getm蓹k
DAVID J. MALAN: Yax艧谋.
Auditoriya: [i艧itilemez].
DAVID J. MALAN: Exactly.
Sol t蓹r蓹fd蓹n x getm蓹k dem蓹kdir.
x 眉nvan谋.
33 Oxford Street, v蓹 ya OX1 kimi.
V蓹 ulduz x ki, getm蓹k dem蓹kdir m眉raci蓹t v蓹 orada n蓹 qoymaq?
42.
>> Bel蓹 ki, h蓹qiq蓹t蓹n ki, Nick n蓹 d蓹qiq var.
O, by il蓹 ba艧lad谋 mahiyy蓹tc蓹, 蓹qli
bir barmaq i艧ar蓹 x, arrow a艧a臒谋dak谋
sa臒 t蓹r蓹fd蓹n a臒 qutusu yan v蓹 say谋 42 qoyulmas谋.
Lakin sonra h蓹r 艧eyi var, bir az t蓹hl眉k蓹li, sa臒?
Binky nin ba艧谋n谋 itirm蓹k.
>> Star y n蓹 dem蓹kdir, 13, pis luck b蓹rab蓹rdir?
Bel蓹 ki, ulduz y vasit蓹l蓹ri y 眉nvan getm蓹k.
Amma y 眉nvan n蓹dir?
B眉t眉n sa臒, zibil d蓹y蓹ri, sa臒?
M蓹n bir sual i艧ar蓹si olaraq qald谋.
Nick bir q蓹d蓹r buruq arrow kimi 莽蓹kdi.
V蓹 tezlikl蓹 siz c蓹hd kimi orada getm蓹k dey蓹r蓹k, star y yoxdur,
lakin qanuni yoxdur 眉nvan谋, b蓹zi saxta yer var,
proqram q蓹za olacaq.
V蓹 Binky nin ba艧 gedir bunu kimi, burada off u莽maq.
>> Sonunda, bu proqram bel蓹 yaln谋z d眉z h蓹yata q眉sur idi.
Bu arabas谋 proqram idi.
V蓹 m眉蓹yy蓹n etm蓹k laz谋md谋r.
V蓹 yegan蓹 yolu, h蓹qiq蓹t蓹n, d眉zeltmek 眉莽眉n olard谋, m蓹s蓹l蓹n, bu x蓹tt,
biz h蓹tta almaq olmayan, 莽眉nki Proqram 莽ox tezlikl蓹 q蓹zaya u臒ray谋b.
Amma biz bu d眉zeltmek 眉莽眉n olsayd谋, n蓹 t蓹siri y b蓹rab蓹r x var bunu edir?
B蓹li, bu, mahiyy蓹tc蓹 da y g枚st蓹rir n蓹 d蓹y蓹ri x i艧ar蓹 edir.
>> Nick hekay蓹 Bel蓹 ki, v蓹 ya Binky nin hekay蓹, h蓹m d蓹
x v蓹 y i艧ar蓹 edilmi艧dir yadda艧 a臒 y谋臒谋n,
bel蓹 ki, n蓹hay蓹t, zaman y yenid蓹n 13 b蓹rab蓹rdir ulduz yoxdur,
Siz 13 qoyulmas谋 ba艧a m眉vafiq yer.
Bel蓹 ki, bu x蓹tl蓹ri b眉t眉n m眉k蓹mm蓹l qanuni, bu istisna olmaqla,
siz 蓹vv蓹l ba艧 ver蓹n zaman h蓹qiq蓹t蓹n y b蓹zi d蓹y蓹ri t蓹yin.
>> 陌ndi 艧眉k眉rl蓹r olsun ki, siz deyil b眉t眉n vasit蓹sil蓹 s蓹b蓹b var
枚z m蓹s蓹l蓹l蓹ri bu c眉r.
M蓹n蓹 ir蓹li getm蓹k v蓹 a莽maq burada terminal p蓹nc蓹r蓹 up
v蓹 yaln谋z bir an 眉莽眉n, a莽maq, super q谋sa proqram谋
d蓹 n枚v m蓹nas谋zd谋r.
Bu 莽irkin var.
Bu faydal谋 bir 艧ey 蓹ld蓹 etmir.
Amma bu m蓹s蓹l蓹l蓹ri n眉mayi艧 etmir yadda艧, bel蓹 ki, bir n蓹z蓹r salaq.
>> Main, super sad蓹.
Bu y蓹qin funksiyas谋 莽a臒谋r谋r, f, v蓹 sonra 0 qaytar谋r.
Bu mess bu q蓹d蓹r a臒谋r n枚v眉 var.
Bel蓹 ki, Main g眉n蓹 q蓹d蓹r olduqca yax艧谋.
>> Bel蓹 ki, f problemlidir.
V蓹 yaln谋z 莽ox qoymad谋 adland谋rma daxil s蓹y
burada kodunu diqq蓹t m蓹rk蓹zind蓹 saxlamaq 眉莽眉n.
f iki x蓹tl蓹ri var.
V蓹 indi neler g枚rm蓹k bildirin.
Bel蓹 ki, bir t蓹r蓹fd蓹n burada v蓹 m蓹n蓹 ed蓹k
茝vv蓹lki il蓹 bu ard谋c谋l bir t蓹r蓹fd蓹n example--,
Sol t蓹r蓹find蓹 陌ngilis, n蓹?
Bu That
Auditoriya: bir g枚st蓹rici yarad谋lmas谋.
DAVID J. MALAN: bir pointer yaratmaq bir int v蓹 axtard谋臒谋n谋 x.
Bel蓹 ki, bu qutular谋 yarad谋lmas谋 oldu M蓹n sensor ekran 眉z蓹rind蓹 r蓹sm saxlamaq.
陌ndi, sa臒 t蓹r蓹fd蓹n yan, malloc, 蓹lb蓹tt蓹,
yadda艧 y谋臒谋n ay谋r谋r.
V蓹 yaln谋z ayd谋n olmaq, nec蓹 莽ox yadda艧 y蓹qin onu edir
ayr谋lmas谋, 蓹g蓹r yaln谋z c眉r burada riyaziyyat etm蓹k?
>> Bel蓹 ki, 40 bytes var.
V蓹 m蓹n bilir蓹m ki, m蓹n bir bilm蓹k yaln谋z, 莽眉nki int, bu CS50 cihaz, 蓹n az谋,
d枚rd bayt edir.
Bel蓹 ki, 10 d蓹f蓹 4 40.
Bel蓹 ki, bu x saxlan谋lmas谋, 眉nvan谋 40 ints ilk out ki,
geri yer ayr谋l谋b, geri, geri, geri.
>> V蓹 malloc haqq谋nda 蓹sas n蓹 var.
Bu bir az yadda艧 da艧谋m谋r Burada, bir burada ki莽ik bir az burada.
Bu, yadda艧 bir y谋臒谋n verir contiguously, 茝m蓹liyyat d蓹n
sistemi.
>> 陌ndi bu bar蓹d蓹 n蓹, x bracket 10 0 b蓹rab蓹rdir?
Kod ixtiyari line.
Bu faydal谋 bir 艧ey 蓹ld蓹 etmir.
Amma bu, maraql谋 x bracket 10-- 莽眉nki?
B蓹li?
>> Auditoriya: [I艧itilemez]?
>> DAVID J. MALAN: x bracket 10 null olmal谋d谋r deyil.
The null 蓹trafl谋 yaln谋z d枚vr蓹y蓹 girir strings il蓹 bir simli sonunda.
Amma yax艧谋 bir fikir.
>> N蓹 q蓹d蓹r b枚y眉k, h蓹tta bu array edir I 40 bayt ayr谋lan etdik baxmayaraq?
Bu do臒ru, doqquz vasit蓹sil蓹 0 var?
Bu m蓹lumat, 10 ints var.
40 bytes, lakin 10 ints, 0 0-dizine.
>> Bel蓹 ki, x bracket 10 n蓹dir?
Bu, h蓹qiq蓹t蓹n, b蓹zi unknown zibil d蓹y蓹ri.
Bu m蓹n蓹 aid deyil ki, yadda艧 var.
M蓹n toxunan laz谋m deyil byte say谋 41, 42, 43, 44.
M蓹n 莽ox az gedir蓹m.
>> V蓹 h蓹qiq蓹t蓹n, M蓹n run 蓹g蓹r bu proqram, bu, 莽ox yax艧谋 avariya bil蓹r.
Amma b蓹z蓹n, biz xo艧b蓹xt almaq laz谋md谋r.
V蓹 bel蓹 ki, yaln谋z n眉mayi艧 眉莽眉n H蓹l蓹 v蓹 s蓹mimi,
Siz 蓹vv蓹l bilirsiniz, he莽 vaxt it-- bu run bildirin yoxdur.
Bu, h蓹qiq蓹t蓹n q蓹za verm蓹di.
>> Amma bu, d蓹yi艧dirm蓹k 蓹g蓹r M蓹s蓹l蓹n, 1000 kimi olmaq
h蓹qiq蓹t蓹n bu etm蓹k q蓹sd蓹n, g枚r蓹k
biz 蓹ld蓹 ed蓹 bil蓹rsiniz 蓹g蓹r bu d蓹f蓹 q蓹za.
OK, bu, q蓹za etm蓹yib.
Nec蓹 100.000 haqq谋nda?
Onu yeniden yapmak ed蓹k, v蓹 indi t蓹krar.
OK.
Phew.
B眉t眉n h眉quqlar.
Bel蓹 g枚r眉n眉r, yen蓹 bu yadda艧 seqmentl蓹ri, bel蓹 ki, dan谋艧maq
bel蓹 biz, m蓹ntiqi b枚y眉k t蓹krar u臒urlu olsun.
Amma n蓹hay蓹t, bir d蓹f蓹 g眉l眉nc almaq v蓹 h蓹qiq蓹t蓹n, ekranda uzaq 莽谋xmaq
Siz, h蓹qiq蓹t蓹n yadda艧 toxunmaq h蓹qiq蓹t蓹n siz蓹 aid deyil.
>> Amma s蓹mimi, bu S蓹hvl蓹rind蓹n n枚v gedir
莽蓹tindir v蓹 daha olacaq 枚z anlamaq 眉莽眉n.
Amma 艧眉k眉rl蓹r olsun ki, proqram莽谋lar kimi, biz Biz蓹 bu imkan verir ki al蓹tl蓹ri.
Bel蓹 ki, bu, b蓹lk蓹, bir ugliest proqramlar谋,
gdb nin 莽谋x谋艧 daha uglier.
Amma bu h蓹mi艧蓹 bir x蓹tt var v蓹 ya super faydal谋 olan iki.
>> Valgrind k枚m蓹k edir ki, bir proqramd谋r Bir proqram debug deyil, 枚zl眉y眉nd蓹,
lakin yadda艧 ba臒l谋 tapmaq probleml蓹r, x眉susil蓹.
Bu avtomatik olaraq 眉莽眉n kod davam ed蓹c蓹k Siz 蓹n az谋 iki 艧ey 眉莽眉n baxmaq.
One, bir 艧ey n蓹 idi touch yadda艧 kimi t蓹sad眉fi
ki, siz蓹 aid deyil?
Bu o hallarda tapmaq k枚m蓹k ed蓹c蓹k.
>> V蓹 iki, k枚m蓹k ed蓹c蓹k deyil蓹n bir 艧ey tapmaq
yadda艧 s谋z谋nt谋lar谋, biz malik olan tamamil蓹 r蓹dd, naively,
bir m眉dd蓹t 眉莽眉n v蓹 z枚vql蓹.
Amma b眉t眉n 莽谋x谋r bu d蓹f蓹, zaman
Siz getString adl谋 etdik bizim proqramlar谋 莽ox,
Siz 蓹m蓹liyyat xahi艧 edirik yadda艧 sistemi,
lakin h蓹r hans谋 bir xatir蓹 var he莽 verilm蓹si
geri, bunu unalloc, v蓹 ya pulsuz bu deyil蓹n kimi.
Xeyr, 莽眉nki biz he莽 etdik bunu ist蓹di.
>> Lakin b眉t眉n bu zaman, proqramlar C yaz谋l谋 oldu臒unuz
yadda艧 s谋zan edilmi艧dir, Bu 蓹m蓹liyyat xahi艧
daha sistem strings v蓹 etajer 眉莽眉n yadda艧,
lakin geri verilm蓹si he莽 vaxt.
V蓹 indi bu bir az bir oversimplification,
lakin he莽 olsan谋z Mac 莽al谋艧t谋rmak v蓹 ya 莽ox vaxt, a莽谋l谋艧 眉莽眉n PC
proqramlar谋 莽ox, b蓹lk蓹, proqramlar谋 ba臒lanmas谋
v蓹 h蓹tta sizin komp眉ter q蓹zaya deyil,
Bu, 莽ox gec 蓹ld蓹 edir Bu h蓹qiq蓹t蓹n sanki
yadda艧 bir 莽ox istifad蓹 v蓹 ya resurslar谋, baxmayaraq ki,
Siz de臒ilseniz, h蓹tta klaviatura toxunmadan,
ki be-- lakin always-- bilm蓹di bil蓹r proqramlar siz yay谋nl谋yorsan谋z ki,
枚zl蓹rini yadda艧 s谋z谋nt谋lar谋.
V蓹 onlar daha v蓹 OS xahi艧 saxlamaq daha 莽ox yadda艧, lakin bu bar蓹d蓹 unutmadan,
h蓹qiq蓹t蓹n, istifad蓹, lakin Buna g枚r蓹 d蓹 uzaq yadda艧 alaraq
ist蓹diyiniz bil蓹r ki, dig蓹r proqramlar谋.
Bel蓹 ki, 眉mumi izah edir.
陌ndi burada tapa Valgrind-nin deyil 莽谋x谋艧 tamamil蓹
o az m蓹nfur v蓹 eyni daha rahat.
Lakin maraql谋 stuff burada sa臒 q蓹d蓹r.
Bu m蓹n蓹 yaln谋艧 yazmaq izah 枚l莽眉s眉 d枚rd, bu proqram olur
X眉susil蓹, memory.c line 21.
>> M蓹n hm, orada h蓹qiq蓹t蓹n, line 21 getm蓹k 蓹g蓹r 枚l莽眉s眉 d枚rd yaln谋艧 yazmaq.
Niy蓹 size d枚rd?
B蓹li, bu bir say谋 v蓹 anything-- ola bil蓹r bir int edir.
Bel蓹 ki, d枚rd bayt var.
M蓹n d枚rd bayt qoyulmas谋 al谋ram onlar aid deyil.
N蓹 Valgrind var h蓹qiq蓹t蓹n m蓹n蓹 izah olunur.
Bundan ba艧qa, bu da olacaq biz g枚r蓹c蓹ksiniz kimi, m蓹n蓹,
Bu g蓹l蓹c蓹k pset run kimi, 蓹g蓹r siz h蓹qiq蓹t蓹n yadda艧 s谋zan etdiyiniz zaman
M蓹n adl谋 etdik, 莽眉nki m蓹n, malloc, lakin m蓹n, h蓹qiq蓹t蓹n yoxdur
pulsuz, bu halda, adl谋, biz n蓹hay蓹t g枚r眉rs眉n眉z
malloc 蓹ks edir.
>> Bel蓹 ki, indi m蓹n bir final n眉mun蓹 hesab edir蓹m.
Bel蓹 ki, bu bir az daha 莽ox gizli, lakin b蓹lk蓹 var
蓹n b枚y眉k s蓹b蓹bi , yadda艧l谋 ehtiyatl谋 olun
v蓹 s蓹b蓹b 莽ox proqramlar v蓹 h蓹tta bu g眉n / v蓹 ya web server,
haradasa pis u艧aqlar t蓹r蓹find蓹n q蓹bul edilir internet birt蓹h蓹r olan
Sizin server saxta paketl蓹rin g枚nd蓹rilm蓹si hesab谋 g眉z蓹艧t蓹 莽al谋艧谋r,
v蓹 ya m蓹lumat almaq, v蓹 ya yaln谋z 眉mumiyy蓹tl蓹 ma艧谋n 眉z蓹rind蓹.
Bufer da艧q谋n kimi ad谋, vasit蓹l蓹ri t蓹klif
bir int, lakin bufer co艧臒un.
V蓹 bir tampon bir x眉lya yoludur dey蓹r蓹k bu yadda艧 bir d蓹st蓹 var.
>> V蓹 h蓹qiq蓹t蓹n, M蓹n bir string adlan谋r 蓹v蓹zin蓹 s bufer 蓹vv蓹l.
Bir bufer 蓹g蓹r 莽眉nki, YouTube m蓹nada kimi,
v蓹 ya video seyr etdiyiniz ist蓹nil蓹n vaxt, S枚z眉 buffering g枚rm眉艧蓹m bil蓹r,
dot, n枚qt蓹 n枚qt蓹.
Bu inan谋lmaz annoying var.
V蓹 yaln谋z dem蓹kdir Sizin video player ki,
莽ox download 莽al谋艧谋r bayt bytes, 莽ox
internet bir video.
Amma yava艧 var, bel蓹 ki, 莽al谋艧谋r谋q Onlardan bir d蓹st蓹 download
ki, bir tampon, bir konteyner doldurmaq 眉莽眉n Siz ki, sonra bil蓹rsiniz kifay蓹t q蓹d蓹r bytes var
siz video g枚st蓹rm蓹k daim duraklatarak olmadan.
Amma siz 莽谋x谋r Bu b枚y眉k bufer.
Amma bu q蓹d蓹r m蓹lumat qoymaq 眉莽眉n c蓹hd edin Bu, 莽ox pis 艧eyl蓹r ola bil蓹r.
Bel蓹 ki, m蓹s蓹l蓹n, baxaq M蓹s蓹l蓹n bu son teaser.
Bu ba艧qa bir proqram ki, ilk bax谋艧da,
super faydal谋 bir 艧ey deyil.
Bu 茝sas funksiyas谋 var ki f ki, funksiyas谋 莽a臒谋r谋r.
V蓹 funksiyas谋, f, burada var bir char array 枚l莽眉s眉 12, c 莽a臒谋r谋b.
V蓹 sonra bu istifad蓹 edir Yeni funksiyas谋 strncpy 莽a臒谋r谋b.
>> Bu, bu sad蓹 ki, h蓹yata 莽evirir kodu sad蓹 x蓹tti, yaln谋z iki x蓹tl蓹ri,
biz, m蓹nim b眉t眉n proqram谋 etdik v蓹 buna g枚r蓹 d蓹, m蓹nim b眉t眉n komp眉ter,
v蓹 istifad蓹莽i hesab谋, v蓹 m蓹nim a臒谋r h蓹r k蓹s 眉莽眉n potensial h蓹ssas s眉r眉c眉
kim bilir v蓹 莽al谋艧t谋rmak 眉莽眉n kifay蓹t q蓹d蓹r yax艧谋 m眉蓹yy蓹n bir command line il蓹 bu proqram
arqument.
Ba艧qa s枚zl蓹, 蓹g蓹r bu pis o臒lan yazaraq argvargv [1] daxilind蓹 qoyur
klaviatura bir 莽ox x眉susi haz谋rlanm谋艧 at simli, abc, 123, lakin mahiyy蓹tc蓹,
y眉r眉t眉lebilir t蓹msil ed蓹n ikili r蓹mzl蓹ri kodu, o yaz谋rd谋 ki, bir proqram,
olan bu sad蓹 proqram il蓹 proqramlar谋 minl蓹rl蓹 n眉may蓹nd蓹si
ki, daresay, eyni d蓹r蓹c蓹d蓹 h蓹ssasd谋rlar o, son n蓹tic蓹d蓹 b眉t眉n d眉z蓹li艧l蓹r ed蓹 bil蓹rsiniz
sabit fayllar谋, bir almaq o bil蓹r ki, tez yan谋b-s枚n蓹n
枚z komutlar谋 yaz谋n 枚z眉m 眉莽眉n b眉t眉n fayllar谋 e-po莽t.
M蓹n n蓹 ed蓹 bil蓹r ki, bir 艧ey, o v蓹 ya bu kodu il蓹 ed蓹 bil蓹rsiniz.
>> Biz olduqca h蓹l蓹 bu h蓹ll deyil.
V蓹 蓹slind蓹, bu, olacaq bir az 艧蓹kil c蓹lb
Bu kimi, biz tezlikl蓹 g蓹lm蓹k laz谋md谋r olan b眉t眉n yax艧谋 anlamaq 眉莽眉n.
Amma bu g眉n 眉莽眉n, 眉zr蓹 son qoy , bir az daha 眉mid edir蓹m ki, n蓹
ayd谋n XKCD zarafat, biz n枚vb蓹ti d蓹f蓹 davam q蓹d蓹r.
B眉t眉n h眉quqlar.
脟蓹r艧蓹nb蓹 g眉n眉 g枚r蓹c蓹ksiniz.
>> [MUSIC ifa]
>> HOPARL脰R: 陌ndi, d蓹rin Daven Farnham t蓹r蓹find蓹n fikirl蓹r.
Yadda艧 bir qalaq daxil jumping kimi Bazar g眉nortadan q谋z谋l yarpaqlar谋.
K眉l蓹k 蓹sir, tossing sizin oh hair--, m蓹n g眉n when-- miss
>> [G眉l眉艧]