>> DAVID Malan: B眉t眉n sa臒, geri salamlay谋ram.
Bu CS50 edir.
Bu h蓹ft蓹 yeddi ba艧lay谋n.
Bel蓹 ki, bir m眉dd蓹t olub, m蓹n, biz ist蓹diyiniz fikir oldu Biz bir qas谋r臒a tur
off t蓹rk harada v蓹 biz art谋q olacaq.
>> Bu 艧ey burada ola bil蓹r Bel蓹 ki, 陌lk b蓹zi angst s蓹b蓹b oldu.
Amma in艧allah, siz ba艧l谋yoruz burada i艧ar蓹 n蓹 acclimate -
olan g枚st蓹rici t蓹msil ulduz daha layman nin bax谋m谋ndan yaln谋z n蓹?
Bel蓹 ki, bir 眉nvan var.
>> Bel蓹 ki, onun 眉nvan谋 var yadda艧谋nda bir 艧ey.
V蓹 biz geri soymaq qat ba艧lad谋 bir ne莽蓹 h蓹ft蓹 蓹vv蓹l, h蓹r 艧eyi ist蓹yir蓹m
GetString v蓹 dig蓹r bu kimi funksiyalar谋 b眉t眉n bu vaxt qaytar谋lmas谋 edilmi艧dir
kimi yadda艧 艧eyi 眉nvanlar谋n谋, ilk xarakter 眉nvan谋
b蓹zi ard谋c谋ll谋臒谋.
>> Bel蓹likl蓹, biz d蓹, valgrind t蓹qdim ed蓹n Bu problem 眉莽眉n istifad蓹 ba艧lars谋n谋z
x眉susil蓹 n枚vb蓹ti 眉莽眉n m眉蓹yy蓹n problem h蓹m莽inin m眉蓹yy蓹n edilmi艧dir.
V蓹 valgrind bizim 眉莽眉n n蓹 edir?
Bu yadda艧 s谋z谋nt谋lar谋 眉莽眉n yoxlay谋r v蓹 bu, h蓹m莽inin yadda艧 sui-istifad蓹 眉莽眉n yoxlay谋r.
>> Ki, b蓹zi ehtimal谋 il蓹 a艧kar ed蓹 bil蓹r, 蓹g蓹r kodunuzu yadda艧 toxunmaq gedir
ki, sad蓹c蓹 deyil.
Bel蓹 ki, ba艧 m眉tl蓹q, ancaq 蓹g蓹r b蓹zi h眉dudlar谋ndan k蓹narda getm蓹k
dizi, v蓹 h蓹qiq蓹t蓹n valgrind 莽al谋艧t谋rmak v蓹 davran谋艧 vadar ed蓹rk蓹n
valgrind sizin proqram 莽al谋艧an onun daxilind蓹 莽al谋艧an, siz almaq laz谋md谋r
bu kimi mesajlar - "etibars谋z say谋lmas谋 yazmaq , bir ne莽蓹 geri olan 枚l莽眉s眉 4 "
h蓹ft蓹 bundan 蓹vv蓹l m蓹n t蓹sad眉f蓹n idi ki, n蓹z蓹rd蓹 莽ox uzaq bir int oldu臒u kimi
bir s谋ra h眉dudlar谋ndan k蓹narda.
V蓹 bel蓹 枚l莽眉s眉 4 burada 枚l莽眉s眉 dem蓹kdir x眉susi int.
>> Bel蓹 ki, 蓹slind蓹 蓹min edir ki, valgrind 莽谋x谋艧, onun format谋nda,
yaln谋z d蓹h艧蓹tli deyil.
Bu mess vasit蓹sil蓹 g枚rm蓹k h蓹qiq蓹t蓹n 莽蓹tindir maraql谋 m蓹lumat 眉莽眉n.
B蓹s biz burada etdik yaln谋z pasaj edir 蓹trafl谋 ne莽蓹 b蓹zi
maraql谋 sat谋r.
Amma d蓹rk edirik ki valgrind-nin 80% 莽谋x谋艧谋 bir az olacaq
yay谋nd谋rma.
>> M蓹hz bu kimi n眉mun蓹l蓹ri axtarmaq - sa臒 etibars谋z etibars谋z, 40 bayt oxumaq
v蓹 bloklar谋 b蓹zi n枚mr蓹si m眉tl蓹q kimi a莽ar s枚zl蓹r, itirdi.
V蓹 n蓹 眉mid g枚r眉rs眉n眉z b蓹zi funksiyas谋 n蓹 iz n枚v眉
s蓹hv daxil 蓹slind蓹
Bu halda, hans谋 x蓹tti M蓹nim kodu y蓹qin s蓹hv idi?
>> Olan memory.c adl谋 bir fayl, 26 biz oynayan n眉mun蓹
vaxt.
Bel蓹 ki, malloc y蓹qin deyil.
Bu 蓹v蓹zin蓹 m蓹nim kodu y蓹qin idi.
Bel蓹likl蓹, biz daha bu g枚r眉rs眉n眉z v蓹 yen蓹 uzun 蓹vv蓹l.
>> Scanf Bel蓹 ki, bu bir q蓹d蓹r g蓹ldi 陌ndiy蓹d蓹k formalar谋n谋n ne莽蓹.
Biz q谋sa sscanf g枚rd眉m.
Bu bir 艧ey say谋 茝g蓹r sizin daxil dived
Viktorina haz谋rl谋q.
V蓹 scanf 蓹slind蓹 n蓹 CS50 kitabxana alt谋ndak谋 istifad蓹 edilmi艧dir
眉莽眉n 莽ox bir m眉dd蓹t ba艧l谋q istifad蓹莽i daxil almaq 眉莽眉n.
>> M蓹s蓹l蓹n, m蓹n CS50 眉z蓹rind蓹 h蓹r蓹k蓹t 蓹g蓹r cihaz burada, bir m蓹ni a莽maq bildirin
scanf-0.c deyirl蓹r ki, m蓹s蓹l蓹n, bu g眉n V蓹 super sad蓹dir.
Bu, sad蓹c蓹 kodu bir ne莽蓹 x蓹tl蓹ri var.
Amma bu n眉mayi艧 etdirir h蓹qiq蓹t蓹n nec蓹 getInt Bu zaman b眉t眉n 莽al谋艧谋r.
>> Line 16 burada bu proqram olaraq, , M蓹n int b蓹yan edir ki, bildiri艧.
Bel蓹 ki, he莽 bir g枚st蓹ricil蓹rin蓹, sehirli he莽 bir 艧ey var, yaln谋z bir int.
Sonra line 17, m蓹n t蓹klif bir ne莽蓹 istifad蓹莽i, xahi艧 edirik.
Sonra gec 18, m蓹n burada scanf istifad蓹 edin.
V蓹 m蓹n m眉蓹yy蓹n n枚v kimi printf ki, M蓹n quote g枚zl蓹yirik al谋ram ki,
i d谋rna臒谋 ba臒lamaq.
>> I Bel蓹 ki, 蓹lb蓹tt蓹, bir int bildirir.
Amma hiss n蓹, ikinci scanf 眉莽眉n d蓹lildir.
Nec蓹 ikinci t蓹svir ed蓹rdiniz ki, verg眉ld蓹n sonra m眉bahis蓹?
Ki, n蓹dir?
>> Bu x 眉nvan谋 var.
Bel蓹likl蓹, bu, 莽眉nki t蓹min faydal谋d谋r x 眉nvan谋 il蓹 scanf, n蓹
Bunu ki, funksiyas谋 h蓹val蓹?
Yaln谋z getm蓹k, h蓹m d蓹 n蓹?
>> Bu bir d蓹yi艧iklik olun.
Siz orada getm蓹k bil蓹r, 莽眉nki, bu c眉r var yadda艧 bir yer 眉莽眉n bir harita kimi.
V蓹 bel蓹 uzun siz t蓹min scanf, v蓹 ya bel蓹 bir x蓹rit蓹 ki, h蓹r hans谋 bir funksiyas谋
funksiyas谋 getm蓹k olar yaln谋z d蓹y蓹ri baxmaq, lakin o, h蓹m莽inin
蓹g蓹r faydal谋 olan d蓹y蓹ri d蓹yi艧m蓹k scanf h蓹yat谋nda m蓹qs蓹di 眉莽眉n
x眉susil蓹, istifad蓹莽i daxil scan klaviatura edir.
V蓹 f kimi, bi莽imlendirilmi艧 i艧ar蓹 printf, f bi莽imlendirilmi艧 i艧ar蓹
Siz 莽ap etm蓹k ist蓹yir蓹m ki, simli.
>> Bel蓹 ki, q谋sa, bu x蓹tt 18 sad蓹c蓹 deyir ki, istifad蓹莽i bir int oxumaq 眉莽眉n c蓹hd edin
klaviatura v蓹, x daxilind蓹 saxlaya x-da ya艧amaq olur n蓹 眉nvan谋.
V蓹 sonra n蓹hay蓹t, line 19 yaln谋z deyir ki, Bu halda int 眉莽眉n t蓹艧蓹kk眉r edirik.
>> M蓹n蓹 davam v蓹 bu imkan.
Bel蓹 ki, scanf 0 olun.
M蓹n蓹 davam v蓹 daxil zoom ed蓹k
M蓹n getm蓹k v蓹 bu 莽al谋艧t谋rmak bil蓹rsiniz n枚qt蓹l蓹r scanf 0 do臒ramaq.
Say谋, xahi艧 edirik?
50.
50 眉莽眉n t蓹艧蓹kk眉r edirik.
Bel蓹 ki, kifay蓹t q蓹d蓹r sad蓹dir.
>> 陌ndi n蓹 deyil?
Bu b眉t眉n d蓹st蓹 bunu deyil s蓹hv yoxlan谋lmas谋.
M蓹s蓹l蓹n, m蓹n 蓹m蓹kda艧l谋q yoxsa, v蓹 m蓹n bir s谋ra yaz谋n deyil,
Bunun 蓹v蓹zind蓹 m蓹n "Salam" kimi bir 艧ey yazmaq ki, q蓹rib蓹 yaln谋z n枚v眉 var.
Olan 艧eyl蓹r CS50 v蓹 bel蓹 bir kitabxana b蓹zi bizim 眉莽眉n apar谋r
vaxt reprompting edir v蓹 reprompting.
>> Bu s谋namaq s枚z geri, cs50.c idi v蓹 bu getInt s蓹b蓹bi var
ki, CS50 kitabxana 蓹slind蓹 bir b眉t眉nd眉r uzun x蓹tl蓹ri d蓹st蓹, biz ist蓹yirik, 莽眉nki
bu kimi axmaq hey蓹ti 眉莽眉n yoxlan谋lmas谋.
Istifad蓹莽i verm蓹di bizim, 蓹slind蓹, bir int?
O biz蓹 bir 艧ey verdin bir 蓹lifba m蓹ktub kimi?
茝g蓹r bel蓹dirs蓹, biz a艧kar etm蓹k ist蓹yirik v蓹 onlara f蓹臒an.
>> Lakin i艧l蓹r daha maraql谋 almaq Bu n枚vb蓹ti n眉mun蓹.
M蓹n scanf-1.c getm蓹k 茝g蓹r, n蓹 biridir 蓹sasl谋 d蓹yi艧ib 艧ey
Bu n枚vb蓹ti misal?
M蓹n, 蓹lb蓹tt蓹, char * kullan谋yorum 蓹v蓹zin蓹 int.
>> 脟眉nki char * Bel蓹likl蓹, bu, maraql谋 geri, yaln谋z h蓹qiq蓹t蓹n
string kimi eyni 艧ey.
Bel蓹 ki, b蓹lk蓹 kimi bu super hiss GetString sad蓹 t蓹tbiqi.
Amma qat geri soyulmu艧 sonra ki, CS50 kitabxana, m蓹n deyil蓹m
陌ndi bu char * 莽a臒谋r谋r.
El蓹 g枚r蓹k yerl蓹艧ir, h蓹r hans谋 halda, biz yanl谋艧 getm蓹k.
>> Line 17 -
M蓹n yen蓹 m蓹n蓹 bir 艧ey verin, dem蓹k bu halda, simli.
V蓹 sonra n枚vb蓹ti olaraq, I, scanf z蓹ng yenid蓹n, bir format kodu verilm蓹si,
Ancaq bu d蓹f蓹 y眉zd蓹 s.
V蓹 bu zaman, Ben bu bufer verilm蓹si.
>> 陌ndi istifad蓹 deyil蓹m, qeyd ki, i艧areti.
Amma niy蓹 burada y蓹qin ki, OK?
Art谋q bufer n蓹 莽眉nki?
Art谋q bir g枚st蓹rici var.
Art谋q bir 眉nvan var.
>> V蓹 qoy bu s枚z眉 m蓹n蓹 bildirin "莽a艧d谋rmaq" var yaln谋z, m蓹s蓹l蓹n, bu s z蓹ng
sad蓹lik.
Amma bu bufer adl谋 etdik, 莽眉nki 眉mumi, proqramla艧d谋rma, siz var 蓹g蓹r
yadda艧 y谋臒谋n, bir string h蓹qiq蓹t蓹n yaln谋z, siz onu bir tampon z蓹ng bil蓹r olunur.
Bu m蓹lumat saxlamaq 眉莽眉n bir yer var.
>> Zaman YouTube, kimi 艧eyl蓹r ox艧ar Onlar, nec蓹 dey蓹rl蓹r, buffering edirik ki,
yaln谋z bu bit y眉kl蓹m蓹zd蓹n vasit蓹l蓹ri internet v蓹 onlar谋n saxlan谋lmas谋
yerli dizi, bel蓹 yadda艧 yerli y谋臒谋n s蓹nsiz sonra seyr ed蓹 bil蓹rsiniz ki,
bu atlama v蓹 ya asma geri oynarken.
>> Bel蓹 bir problem olsa da burada var M蓹n scanf deyir蓹m, 莽眉nki g枚zl蓹m蓹k
istifad蓹莽i string.
Burada 眉nvan谋 var yadda艧 y谋臒谋n.
Var ki, simli qoyun.
Niy蓹 bound verm蓹k deyil baxmayaraq, biz蓹 problem?
>> N蓹 olub?
M蓹n daxil olmaq 眉莽眉n icaz蓹 Am yadda艧 hiss蓹sidir?
Bilirsiniz, m蓹n bilmir蓹m.
Bufer ba艧lat谋lm谋艧 莽眉nki bir 艧ey 眉莽眉n?
Deyil, h蓹qiq蓹t蓹n.
V蓹 bel蓹 ki, biz z蓹ng oldu臒unuz var bir zibil d蓹y蓹ri, hans谋
r蓹smi bir s枚z deyil.
Bu yaln谋z biz n蓹 bit he莽 bir fikrim yoxdur dem蓹kdir ki, d枚rd bayt daxilind蓹 var
M蓹n bufer kimi ayr谋lm谋艧d谋r.
>> M蓹n malloc adl谋 yoxdur.
M蓹n m眉tl蓹q GetString axtarmad谋 etdik.
Bel蓹 ki, kim h蓹qiq蓹t蓹n n蓹 bilir bufer daxilind蓹?
V蓹 h蓹l蓹 scanf izah ed蓹n kor-koran蓹, orada getm蓹k v蓹 istifad蓹莽i yazd谋臒谋n谋z n蓹 qoydu.
>> Bel蓹 ki, s蓹b蓹b n蓹 bizim kodu biz bunu 蓹g蓹r?
Y蓹qin ki, bir segfault.
B蓹lk蓹, lakin y蓹qin ki, bir segfault.
V蓹 dem蓹k b蓹lk蓹 deyil, 莽眉nki b蓹z蓹n Siz b蓹z蓹n, n蓹
bir segfault deyil.
Bazen yaln谋z 艧ansl谋 almaq, ancaq o yen蓹 olacaq
proqram bir s蓹hv.
>> M蓹n蓹 davam v蓹 bu t蓹rtib ed蓹k.
Hesab edir蓹m ki, k枚hn蓹 m蓹kt蓹b yolu n蓹 gedir蓹m.
Bel蓹 ki, cingilti Da艧 0, scanf-1, scanf-1.c daxil edin.
Ba臒谋艧lay谋n, 莽ox k枚hn蓹 m蓹kt蓹b.
In n蓹z蓹r salaq.
M蓹n hara getdi?
Oh, char * bufer.
Oh, siz蓹 t蓹艧蓹kk眉r edir蓹m -
OK, Saxla -
莽ox k枚hn蓹 m蓹kt蓹b.
B眉t眉n sa臒, bir m眉dd蓹t oldu.
>> Bel蓹likl蓹, m蓹n yaln谋z fayl sonra xilas etdik m眉v蓹qq蓹ti edilm蓹si
bir an 蓹vv蓹l d蓹yi艧dirin.
陌ndi m蓹n onu t蓹rtib 蓹l cingilti il蓹.
陌ndi is蓹 ir蓹li getm蓹k gidiyorum v蓹 daxil edin, scanf-1 ax谋r.
String edin.
M蓹n yaz谋n laz谋md谋r "salam".
>> V蓹 indi burada printf, s蓹mimi, nerde bir az annoying bil蓹r.
Bu, faktiki olaraq ged蓹n deyil Bu halda segfault.
Printf bir az x眉susi 莽眉nki bu 眉mumi istifad蓹 bel蓹 super ki,
mahiyy蓹tc蓹 printf edir biz蓹 l眉tf v蓹 h蓹yata ke莽irilm蓹si,
ki, cari bir g枚st蓹rici deyil.
脰z眉m眉 yaln谋z 莽ap etm蓹y蓹 m蓹n蓹 ed蓹k parantez null h蓹yata, h蓹tta
m眉tl蓹q deyil, baxmayaraq n蓹 biz 枚z眉m眉z g枚zl蓹nilir.
>> Bel蓹likl蓹, biz, h蓹qiq蓹t蓹n, asanl谋qla vadar ed蓹 bilm蓹z Bu ayd谋n bu segfault, lakin
M蓹n ist蓹yirdim davran谋艧 deyil.
Bel蓹 ki, sad蓹 h蓹lli var?
Yax艧谋, scanf-2, m蓹n蓹 t蓹klif ed蓹k ki, 蓹v蓹zin蓹 faktiki olaraq yaln谋z bir b枚l眉艧d眉r眉lm蓹si
char *, m蓹n蓹 bir az asan haqq谋nda olsun Bu, m蓹ni bufer ayr谋lmas谋 bildirin
16 chars bir ard谋c谋ll谋qla kimi.
>> Bel蓹likl蓹, m蓹n yollar谋 bir ne莽蓹 bu ed蓹 bil蓹rsiniz.
M蓹n tamamil蓹 malloc istifad蓹 ed蓹 bil蓹r.
Amma h蓹ft蓹 iki geri getm蓹k zaman M蓹n b眉t眉n d蓹st蓹 laz谋m
simvol.
Bu yaln谋z bir s谋ra var.
M蓹n蓹 蓹v蓹zin蓹 bufer yenid蓹n bildirin 16 simvol bir s谋ra olacaq.
>> V蓹 indi, zaman m蓹n bufer verilib -
v蓹 bu olmad谋 bir 艧ey h蓹ft蓹 iki dan谋艧maq -
Lakin bir s谋ra kimi m眉alic蓹 ed蓹 bil蓹rsiniz bu bir 眉nvan baxmayaraq.
Biz g枚rd眉k kimi texniki, onlar etdiyiniz bir az f蓹rqli.
Siz onu ke莽m蓹k Lakin scanf a臒la deyil bir serial谋n ad谋, 莽眉nki n蓹
Bizim mahiyy蓹tc蓹 眉莽眉n cingilti ed蓹c蓹yik kimi ki, serial谋n ad谋 m眉alic蓹
16 bayt y谋臒谋n 眉nvan谋.
>> Bel蓹 ki, bu yax艧谋d谋r.
Bu indi 眉mid ed蓹 bil蓹r o dem蓹kdir ki, a艧a臒谋dak谋lar谋 edin.
M蓹n蓹 bir an Uzakla艧t谋rmak ed蓹k v蓹 OK t蓹rtib scanf-2, sarf edirik.
陌ndi m蓹ni 莽izgi scanf-2 蓹ld蓹 ed蓹k.
String edin. "Hello". V蓹 Bu i艧 g枚r眉n眉rd眉.
>> Lakin kims蓹 bir ssenari t蓹klif ed蓹 bil蓹r olan h蓹l蓹 i艧 ola bil蓹r?
B蓹li?
16 art谋q bir 艧ey.
V蓹 faktiki olaraq, biz ola bil蓹r bir az daha d蓹qiq.
Daha sonra 15 simvol bir 艧ey, h蓹qiq蓹t蓹n unutmay谋n laz谋md谋r, 莽眉nki
ki, backslash s谋f谋r laz谋md谋r ki, d枚nm蓹d蓹n simli sonunda,
bir k蓹nara scanf ad蓹t蓹n olacaq bizim 眉莽眉n qay臒谋.
>> Bel蓹 ki, m蓹nim kimi bir 艧ey ed蓹k -
b蓹z蓹n biz yaln谋z bil蓹rsiniz bel蓹 onu t蓹rk.
OK, bel蓹 ki, biz indi induksiya etdik bizim seqmentasiya g眉nah.
Niy蓹?
M蓹n 莽ox 15 tipli 脟眉nki simvol, v蓹 biz, h蓹qiq蓹t蓹n, var
toxunub yadda艧 ki, m蓹n, h蓹qiq蓹t蓹n, olmamal谋d谋r.
>> Bel蓹 ki, n蓹 h蓹qiq蓹t蓹n burada h蓹lli var?
Yax艧谋, biz uzun simli n蓹 laz谋md谋r, 蓹g蓹r?
Yax艧谋, biz b蓹lk蓹 32 bayt edir.
Yax艧谋, n蓹 kifay蓹t q蓹d蓹r uzun deyil, 蓹g蓹r?
Haqq谋nda 64 bayt?
N蓹 kifay蓹t q蓹d蓹r uzun deyil, 蓹g蓹r?
Nec蓹 128 v蓹 ya 200 bayt?
N蓹 h蓹qiq蓹t蓹n burada h蓹ll edir 眉mumi halda, biz bilmirsinizs蓹
istifad蓹莽i yaz谋n neler inki艧af?
>> Bu ass b枚y眉k bir a臒r谋 yaln谋z n枚v眉 var vicdanl谋 olmaq, bu niy蓹
CS50 kitabxana bir ne莽蓹 onlarla x蓹tl蓹ri var kollektiv h蓹yata kodu
Biz olmayan bir 艧蓹kild蓹 string GetString 蓹vv蓹lc蓹d蓹n bilm蓹k 眉莽眉n n蓹
Yuzerin tipi gedir.
X眉susil蓹, 蓹g蓹r geri baxmaq cs50.c iki h蓹ft蓹 蓹vv蓹l, g枚r蓹c蓹ksiniz
ki, GetString h蓹qiq蓹t蓹n edir bu 艧蓹kild蓹 scanf istifad蓹 etm蓹yin.
茝ksin蓹, bir xarakter oxuyur bir anda.
>> 脟眉nki haqq谋nda bir g枚z蓹l 艧ey bir xarakter oxuma biz bil蓹r
h蓹mi艧蓹 枚z眉m眉z眉 t蓹min 蓹n az谋 bir char var.
M蓹n almaq sonra char b蓹yan bil蓹r yaln谋z bu h蓹qiq蓹t蓹n k枚rp蓹 add谋mlar
a bir xarakter oxumaq klaviatura zaman.
V蓹 sonra, siz蓹 n蓹 GetString g枚r眉rs眉n眉z edir, bunun h蓹yata 莽al谋艧谋r h蓹r d蓹f蓹
, yadda艧 16 bayt dem蓹k, istifad蓹 malloc v蓹 ya cousin onun 眉莽眉n
k枚hn蓹 莽谋xarmaq, daha 莽ox yadda艧 ayr谋lmas谋 sonra yeni v蓹 s眉r眉n蓹r蓹k daxil yadda艧
yana艧谋, bir-bir xarakter 蓹ld蓹 v蓹 o h蓹yata 莽al谋艧谋r zaman
yadda艧 y谋臒谋n, Polip 眉z sal谋r yadda艧 b枚y眉k bir y谋臒谋n, k枚hn蓹 n眉sx蓹
yeni v蓹 t蓹krar daxil.
V蓹 bu h蓹qiq蓹t蓹n h蓹qiq蓹t蓹n bir a臒r谋 var kimi sad蓹 bir 艧ey h蓹yata
bir istifad蓹莽i daxil 蓹ld蓹.
>> Bel蓹likl蓹, siz scanf istifad蓹 ed蓹 bil蓹rsiniz.
Siz dig蓹r ox艧ar funksiyalar谋 istifad蓹 ed蓹 bil蓹rsiniz.
V蓹 d蓹rslikl蓹rin 莽ox v蓹 online n眉mun蓹l蓹ri, lakin onlar b眉t眉n ist蓹yirik
Bu kimi probleml蓹ri h蓹ssas.
V蓹 n蓹tic蓹d蓹, bir segfault 蓹ld蓹 c眉r annoying edir.
Bu istifad蓹莽i 眉莽眉n yax艧谋 deyil.
>> Amma 蓹n pis halda, n蓹 bu 蓹sasl谋 sizin qoymaq
riski kodu?
H眉cum bir n枚v, potensial.
Biz bel蓹 bir h眉cum haqq谋nda dan谋艧d谋 - y谋臒谋n谋 co艧臒un.
Amma, 眉mumiyy蓹tl蓹, siz蓹 icaz蓹 oldu臒unuz halda da艧q谋n bufer kimi biz etdik
yaln谋z yaz谋 il蓹 h蓹ft蓹 枚nc蓹 ne莽蓹, daha y谋臒谋n谋 haqq谋nda "salam" d蓹n, siz
h蓹qiq蓹t蓹n, potensial, 眉z蓹rin蓹 g枚t眉r蓹 bil蓹r komp眉ter, v蓹 ya 蓹n az谋 m蓹lumatlar谋 almaq
Siz蓹 aid deyil.
>> Biz niy蓹 bel蓹 q谋sa, bu bu t蓹lim t蓹k蓹rl蓹r.
Amma indi biz onlar谋 莽谋xarmaq ba艧lay谋r proqramlar art谋q ehtiyac kimi,
istifad蓹莽i m眉tl蓹q girdi.
Ancaq problem halda, alt谋 m眉蓹yy蓹n sizin giri艧 b枚y眉k g蓹l蓹c蓹k
150 l眉臒蓹t fayl b蓹zi t蓹k min s枚z.
>> Bel蓹likl蓹, siz narahat yoxdur istifad蓹莽i ixtiyari girdi.
Biz b蓹zi f蓹rziyy蓹l蓹r ver蓹c蓹k fayl haqq谋nda.
G枚st蓹ricil蓹rin蓹 v蓹 ya scanf haqq谋nda h蓹r hans谋 bir sual v蓹 ya 眉mumi istifad蓹莽i giri艧i?
>> B眉t眉n sa臒, bel蓹 bir, daha sonra bir g枚z at谋n谋z iki h蓹ft蓹 蓹vv蓹l m枚vzu arxada.
V蓹 bir struct bu anlay谋艧 idi.
Deyil - bir bu anlay谋艧谋 n蓹 olan struct?
Struct bizim 眉莽眉n n蓹 idi?
>> Define -
脺zr ist蓹yirik?
D蓹yi艧蓹n n枚v眉 tan谋mlay谋n.
Bel蓹 n枚v.
Biz, h蓹qiq蓹t蓹n, iki m枚vzu birl蓹艧蓹n edirik.
Typedef il蓹 Bel蓹 ki, biz geri bir kimi, 枚z n枚v眉 elan
char * 眉莽眉n string kimi sinonimi.
Lakin typedef v蓹 struct istifad蓹 ed蓹r蓹k, biz h蓹qiq蓹t蓹n 枚z data strukturlar谋 yaratmaq.
>> M蓹s蓹l蓹n, m蓹n geri 蓹g蓹r gedit daxil burada yaln谋z bir an, m蓹n davam
v蓹 bir 艧ey kimi etm蓹k, m蓹ni xilas ed蓹k bu, structs.c, dey蓹k
m眉v蓹qq蓹ti olaraq, m蓹n yaln谋z gedir蓹m davam v蓹 daxil
standardio.h, int 蓹sas edilsin.
V蓹 sonra burada, m蓹n ist蓹yir蓹m ki, g眉man saxlayan bir proqram yazmaq 眉莽眉n
莽ox bird蓹n 莽ox t蓹l蓹b蓹l蓹r evl蓹ri, m蓹s蓹l蓹n.
Bel蓹 ki, registrarial kimi bir n枚v m蓹lumat bazas谋.
>> M蓹n ad谋 bir t蓹l蓹b蓹 laz谋md谋r, m蓹n , char * ad谋 kimi bir 艧ey ola bil蓹r
v蓹 m蓹n kimi bir 艧ey olacaq -
h蓹qiq蓹t蓹n, 蓹n CS50 kitabxana istifad蓹 ed蓹k Yaln谋z bir an 眉莽眉n bu etm蓹k
az sad蓹, biz borc ala kodu x蓹tl蓹ri o dem蓹kdir.
V蓹 ed蓹k yaln谋z sad蓹 saxlamaq oldu.
Biz bunu simli davam ed蓹c蓹yik v蓹 indi GetString.
>> M蓹n ad谋n谋 saxlan谋l谋r etdik ki, indi iddia b蓹zi t蓹l蓹b蓹 v蓹 ev
sad蓹c蓹 d蓹yi艧蓹nl蓹r istifad蓹 ed蓹r蓹k b蓹zi t蓹l蓹b蓹s谋, Biz v蓹 h蓹ft蓹 bir. kimi
Amma indi d蓹st蓹k ist蓹yir蓹m G眉man 莽ox t蓹l蓹b蓹l蓹r.
B眉t眉n sa臒, el蓹 m蓹nim instinktl蓹rd蓹n etm蓹k 眉莽眉n string name2, GetString, simli olur
house2 GetString olur.
V蓹 sonra 眉莽眉nc眉 t蓹l蓹b蓹s谋, name3 GetString n蓹 ed蓹k.
>> B眉t眉n sa臒, bu in艧allah parlaq edir axmaq n枚v眉 kimi,
Bu proses h蓹qiq蓹t蓹n, he莽 vaxt, 莽眉nki son gedir v蓹 yaln谋z olacaq
M蓹nim kodu pis baxmaq v蓹 pis v蓹 pis.
Amma biz h蓹ft蓹 iki d蓹 bu h蓹ll.
Bizim nisb蓹t蓹n t蓹miz h蓹ll n蓹 idi biz 莽ox d蓹yi艧蓹nl蓹r var idi
eyni verileri b眉t眉n ba臒l谋 bu c眉r, lakin Biz bu d蓹h艧蓹tli mess ist蓹m蓹di
eyni adl谋 d蓹yi艧蓹nl蓹rin?
Yerine n蓹 idi?
>> Bel蓹likl蓹, m蓹n bir ne莽蓹 yerd蓹 e艧itdim edir蓹m.
Biz bir s谋ra var idi.
Siz 莽ox hallarda ist蓹yirsinizs蓹 bir 艧ey, n蓹 眉莽眉n biz b眉t眉n bu t蓹miz yoxdur
v蓹 yaln谋z m蓹n蓹 verm蓹k, dem蓹k array adlar谋 adlan谋r?
>> V蓹 indi 眉莽眉n, sabit kodu 3 bildirin.
V蓹 sonra m蓹n蓹 bir s谋ra verm蓹k evl蓹ri adlanan v蓹 m蓹n蓹 bildirin
indi a臒谋r kodu 3.
V蓹 m蓹n k眉tl蓹vi q蓹d蓹r t蓹mizl蓹nmi艧 sonra M蓹n yaln谋z yaratd谋臒谋 ortal谋q.
陌ndi m蓹n h蓹l蓹 d蓹 a臒谋r 3 kodlu, lakin sonra da 3 dinamik g蓹lir bil蓹r
istifad蓹莽i v蓹 ya argv, v蓹 ya kimi.
Y蓹ni bu onsuz da t蓹miz.
>> B蓹s bu bar蓹d蓹 annoying ki, deyil indi olsa da ad谋 el蓹 deyil
蓹sasl谋 ba臒l谋d谋r bir t蓹l蓹b蓹 evi -
ki, M蓹n, h蓹qiq蓹t蓹n, bir 艧agirdin t蓹msil etm蓹k ist蓹yir蓹m -
陌ndi paralel iki seriallarda var onlar oldu臒unuzu m蓹nada
eyni 枚l莽眉d蓹 v蓹 adlar谋 bracket 0 ev bracket 0 ehtimalla x蓹rit蓹l蓹r,
v蓹 adlar谋 bracket 1 x蓹rit蓹l蓹r ev bracket 1.
Ba艧qa s枚zl蓹, h蓹min t蓹l蓹b蓹 ya艧ay谋r ki, ev v蓹 dig蓹r t蓹l蓹b蓹
dig蓹r ev ya艧ay谋r.
Ancaq 艧眉bh蓹siz ki, bu ola bil蓹r daha temiz edilir.
>> B蓹li, ola bil蓹r, 蓹slind蓹.
V蓹 m蓹n蓹 davam v蓹 a莽谋q bildirin structs.h up, v蓹 will
Bu fikir g枚r眉r眉k.
Kimi, m蓹n typedef istifad蓹 etdiyiniz Qeyd ed蓹k ki, 蓹vv蓹l elan etm蓹k bir an alluded bizim
枚z veri n枚v眉.
Amma m蓹n d蓹 bu ba艧qa s枚z kullan谋yorum struct adlanan m蓹n蓹 yeni bir verir
data structure.
>> V蓹 m蓹n iddia Bu data strukturu gedir daxilind蓹 iki 艧eyi var
it - ad谋n谋 bir simli v蓹 ev adl谋 simli.
V蓹 gedir蓹m ad谋n谋 verm蓹k Bu data strukturu gedir
t蓹l蓹b蓹 莽a臒谋r谋lacaq.
M蓹n bunu ist蓹yir蓹m bir 艧ey z蓹ng ed蓹 bil蓹r lakin bu semantically etm蓹k
fikrimi m蓹n蓹 m蓹nada.
>> Bel蓹 ki, indi, m蓹n daha yax艧谋 versiyas谋n谋 a莽maq 蓹g蓹r Proqram谋n I yazma臒a ba艧lad谋
var, m蓹n蓹 眉st diyirl蓹yin bildirin.
V蓹 kodu bir ne莽蓹 x蓹tl蓹ri var Burada, lakin m蓹n蓹 diqq蓹t ed蓹k
bir an.
M蓹n daimi adland谋r谋lan t蓹l蓹b蓹l蓹ri elan etdik v蓹 a臒谋r indi 3 kodlu.
Amma indi hiss nec蓹 t蓹miz m蓹nim kodunu ba艧lay谋r.
>> Line 22, m蓹n b蓹yan t蓹l蓹b蓹 array.
V蓹 t蓹l蓹b蓹 y蓹qin fark 陌ndi bir veri n枚v眉.
Bu fayl谋 眉st Qeyd 脟眉nki Hesab edir蓹m ki, header file daxil etdik
M蓹n yaln谋z bir an 蓹vv蓹l q蓹d蓹r 莽蓹kdi.
V蓹 header file sad蓹c蓹 idi bir t蓹l蓹b蓹nin bu anlay谋艧.
>> Bel蓹 ki, indi, m蓹n 枚z x眉susi data yaratd谋臒谋n谋z n枚v眉 C il m眉蓹llifl蓹ri
蓹vv蓹l 蓹vv蓹lc蓹d蓹n hesab etm蓹yib.
Amma he莽 bir problem.
M蓹n bunu 枚z眉m ed蓹 bil蓹rsiniz.
Bel蓹likl蓹, bu, t蓹l蓹b蓹l蓹r adl谋 bir s谋ra edir 眉zvl蓹ri h蓹r
bir 艧agird strukturu.
V蓹 m蓹n o 眉莽 ist蓹yir蓹m serial谋n edir.
>> 陌ndi, qalan n蓹 Bu proqram n蓹?
M蓹n bir az ixtiyari bir 艧ey laz谋m idi.
Bel蓹 ki, online 24 itibaren, I 0 3 t蓹krarlamaq.
M蓹n sonra 眉莽眉n istifad蓹莽i xahi艧 艧agirdin ad谋.
V蓹 sonra 蓹vv蓹lki kimi GetString istifad蓹 edin.
Sonra, t蓹l蓹b蓹 evi 眉莽眉n xahi艧 v蓹 m蓹n 蓹vv蓹lki kimi GetString istifad蓹 edin.
>> Lakin x蓹b蓹rdarl谋q - az yeni syntax par莽as谋 -
M蓹n i-ci t蓹l蓹b蓹 h蓹l蓹 index bil蓹rsiniz amma konkret m蓹lumatlara nec蓹 蓹ld蓹 edirsiniz
ki, struct sah蓹sind蓹 daxili?
Yax艧谋, y蓹qin n蓹 var yeni sintaksis par莽as谋?
Bu, yaln谋z dot operator var.
>> Biz, h蓹qiq蓹t蓹n, 蓹vv蓹l g枚rm蓹mi艧ik etdik.
茝g蓹r varsa, Siz pset be艧 onu g枚rd眉m bitmap fayllar谋 il蓹 art谋q dived.
Amma dot yaln谋z bu daxilind蓹 dem蓹kdir struct v蓹 ya bir 莽ox sah蓹l蓹rd蓹, n枚qt蓹 verm蓹k
ad谋, ya m蓹n蓹 dot ev verir.
Ki, struct daxilind蓹 getm蓹k dem蓹kdir ki, v蓹 x眉sus蓹n sah蓹l蓹ri almaq.
>> Bu proqram谋n qalan n蓹?
Bundan sexy deyil.
M蓹n yen蓹 0 3 t蓹krarlamaq Qeyd ed蓹k ki, v蓹 m蓹n sad蓹c蓹 陌ngilis dili yaratmaq
Bunu kimi s枚z bel蓹 edir d蓹n dot ad谋 ke莽蓹n bel蓹 bir evi,
I-ci t蓹l蓹b蓹 v蓹 onlar谋n evi kimi d蓹.
>> V蓹 sonra n蓹hay蓹t, indi almaq ba艧lars谋n谋z biz ist蓹yirik indi bu bar蓹d蓹 anal,
n蓹 malloc v蓹 tan谋艧 dig蓹r funksiyalar谋 olmu艧dur
b眉t眉n bu vaxt edir.
Niy蓹 iki ad azad var v蓹 ev olsa m蓹n
malloc z蓹ng etm蓹di?
>> GetString etdi.
V蓹 ki, 莽irkli az gizli bir ne莽蓹 h蓹ft蓹, lakin GetString var
b眉t眉n 眉z蓹rind蓹 yadda艧 s谋zmas谋 edilmi艧dir 陌ndiy蓹d蓹k b眉t眉n semestr yer.
V蓹 valgrand n蓹hay蓹t olacaq biz蓹 bu g枚st蓹rir.
>> M蓹n bilir蓹m, 莽眉nki Lakin bu, b枚y眉k deyil M蓹n sad蓹c蓹 ad谋n谋 azad ed蓹 bil蓹r ki,
v蓹 ev, baxmayaraq texniki 眉莽眉n super, super t蓹hl眉k蓹siz ola, m蓹n olmal谋d谋r
b蓹zi s蓹hv bunu burada yoxlan谋lmas谋.
Sizin instinktl蓹rd蓹n N蓹 izah?
M蓹n n蓹 yoxlan谋lmas谋 laz谋m M蓹n n蓹 azad 蓹vv蓹l
simli, aka olan char *?
>> M蓹n, h蓹qiq蓹t蓹n, yoxlan谋lmas谋 laz谋m t蓹l蓹b蓹l蓹ri 蓹g蓹r bracket i dot ad谋 deyil
b蓹rab蓹r null.
Sonra ir蓹li v蓹 pulsuz getm蓹k OK olacaq ki, g枚st蓹rici v蓹 eyni v蓹 ya dig蓹r
biri kimi d蓹.
T蓹l蓹b蓹l蓹r bracket i dot ev deyils蓹 null b蓹rab蓹r, indi qoruyacaq
k眉nc眉nd蓹 halda qar艧谋 olan GetString null bir 艧ey qaytar谋r.
V蓹 biz printf olacaq, bir an 蓹vv蓹l g枚rd眉m yaln谋z s枚yl蓹y蓹r蓹k burada bizi qorumaq
null ki, bu q蓹rib蓹 baxmaq 眉莽眉n gedir.
Lakin 蓹n az谋, segfault deyil g枚rd眉y眉m眉z kimi.
>> Yax艧谋, m蓹n蓹 burada ba艧qa bir 艧ey ed蓹k. structs-0 axmaq proqram n枚v眉
M蓹n b眉t眉n bu m蓹lumatlar谋 daxil, 莽眉nki proqram ba艧a bir d蓹f蓹 m蓹臒lub oldu.
Amma m蓹n蓹 davam v蓹 bunu bildirin.
M蓹n蓹 terminal ed蓹k bir az daha b枚y眉k p蓹nc蓹r蓹.
, M蓹n蓹 structs-1 ed蓹k ki, Bu yeni versiyas谋.
>> M蓹n bir az b枚y眉tm蓹k laz谋md谋r.
V蓹 indi m蓹n蓹 dot run ed蓹k structs-1 do臒ramaq.
T蓹l蓹b蓹 ad谋 -
David Mather, Rob Kirkland n蓹 ed蓹k Lauren Leverett n蓹 ed蓹k.
N蓹 maraql谋 indi x蓹b蓹rdarl谋q edir -
v蓹 m蓹n yaln谋z bu 莽眉nki bilirik M蓹n proqram yaz谋b -
bir fayl M蓹nim cari art谋q var kataloq students.csv 莽a臒谋r谋b.
茝g蓹r b蓹zil蓹ri g枚rm眉艧蓹m bil蓹r real d眉nyada bu.
>> Bir CSV fayl谋 nedir?
D蓹y蓹rl蓹r: virg眉lle ayr谋lm谋艧.
Bu yoxsul insan kimi n枚v var Excel fayl versiyas谋.
Bu sat谋r ve s眉tun bir masa var siz, Excel kimi bir proqram a莽a bil蓹r
bir Mac v蓹 ya N枚mr蓹l蓹r.
>> V蓹 m蓹n gedit burada bu fayl谋 a莽maq 蓹g蓹r, bildiri艧 - v蓹 n枚mr蓹l蓹r yoxdur.
Yaln谋z dan谋艧anlardan gedit oldu M蓹n蓹 x蓹tt n枚mr蓹l蓹ri.
Bu ilk on line X蓹b蓹r fayl Davud v蓹 Mather edir.
N枚vb蓹ti line Rob verg眉l Kirkland edir.
V蓹 眉莽眉nc眉 x蓹tt Lauren edir verg眉l Leverett.
>> Bel蓹 ki, n蓹 yarad谋b?
陌ndi bir C proqram yazd谋q ki, s蓹m蓹r蓹li tablolar yaratmaq
bir a莽谋la Excel kimi proqram.
B眉t眉n ki, 莽ekici m蓹lumat d蓹sti, lakin Siz daha b枚y眉k chunks varsa
h蓹qiq蓹t蓹n ist蓹yir蓹m ki, m蓹lumat manipulyasiya v蓹 qrafik v蓹 etm蓹k
kimi, bu b蓹lk蓹 biridir ki, m蓹lumat yaratmaq 眉莽眉n bir yoldur.
Bundan ba艧qa, CSVs 眉mumi h蓹qiq蓹t蓹n super var yaln谋z sad蓹 data saxlan谋lmas谋 眉莽眉n -
Yahoo Maliyy蓹 M蓹s蓹l蓹n, siz almaq 蓹g蓹r onlar谋n qondarma vasit蓹sil蓹 stock quotes
API, siz imkan verir ki, pulsuz xidm蓹t cari up-to-the-tarixi fond almaq
艧irk蓹tl蓹r 眉莽眉n quotes, onlar geri verileri verm蓹k
super sad蓹 CSV format.
>> Bel蓹likl蓹, biz nec蓹 etdiniz?
B蓹li, bu proqram谋n 蓹n qeyd dem蓹k olar ki, eyni.
Lakin burada qeyd deyil, 脟ap line 35 t蓹l蓹b蓹l蓹ri out,
ir蓹li, m蓹n q蓹na蓹t al谋ram iddia edir ki, disk t蓹l蓹b蓹l蓹r, bel蓹 bir fayl q蓹na蓹t.
>> M蓹n bir file * elan al谋ram hiss -
陌ndi bu C. bir anomaliya n枚v眉 H蓹r hans谋 s蓹b蓹bd蓹n, fayl, b眉t眉n caps edir
蓹n 莽ox dig蓹r m蓹lumatlar n枚vl蓹ri kimi deyil C. Lakin bu, daxili
veri n枚v眉, fayl *.
V蓹 m蓹n, bir fayl bir g枚st蓹rici elan al谋ram ki, hesab ed蓹 bil蓹r nec蓹.
>> fopen a莽谋q fayl dem蓹kdir.
N蓹 fayl谋 a莽maq ist蓹yirsiniz?
M蓹n bir fayl谋 a莽maq ist蓹yir蓹m ed蓹c蓹k ki, 枚zba艧谋na students.csv 莽a臒谋r谋r谋q.
M蓹n ist蓹yir蓹m ki, h蓹r 艧ey z蓹ng ed蓹 bil蓹r.
>> V蓹 sonra bir tahmin edir.
陌kinci arqument n蓹 fopen y蓹qin ki, dem蓹k?
Sa臒, yazmaq 眉莽眉n w, ola bil蓹r 蓹trafl谋 r ola bil蓹r.
茝g蓹r 蓹lav蓹 etm蓹k 眉莽眉n var, siz蓹 sat谋r v蓹 蓹lav蓹 etm蓹k ist蓹diyiniz
b眉t眉n 艧ey 眉zerine.
>> Amma yaln谋z bu fayl谋 yaratmaq ist蓹yirik bir d蓹f蓹, m蓹n quote d谋rna臒谋 ba臒lamaq w istifad蓹 ed蓹c蓹yik.
V蓹 m蓹n oxumaq ed蓹r蓹k ki, yaln谋z bilirik s蓹n蓹dl蓹rin v蓹 ya insan page.
Fayl null deyils蓹 - ba艧qa s枚zl蓹, he莽 bir 艧ey yoxdur yanl谋艧 gedib 蓹g蓹r -
m蓹n蓹 眉z蓹rind蓹 t蓹krarlamaq bildirin 0 3 t蓹l蓹b蓹l蓹r.
>> 陌ndi bir 艧ey var hiss he莽 bel蓹 az f蓹rqli
Burada line 41.
Bu printf deyil.
Bu printf fayl fprintf var.
Bel蓹 ki, fayl yazmaq olacaq.
Hans谋 fayl?
Olan g枚st蓹rici belirtti臒iniz bir ilk arqument kimi.
>> Sonra format string daxil.
Sonra biz ist蓹yirik n蓹 string m眉蓹yy蓹n ilk faiz s 眉莽眉n plug, v蓹
sonra ba艧qa d蓹yi艧k蓹n v蓹 ya 陌kinci faiz s.
Sonra fclose il蓹 fayl ba臒lay谋n.
M蓹n d蓹, 蓹vv蓹lki kimi, yadda艧 azad daha M蓹n geri v蓹 蓹lav蓹 etm蓹lidir
null 眉莽眉n b蓹zi yoxlay谋r.
>> V蓹 bu.
fopen, fprintf, fclose m蓹n蓹 verir m蓹tn fayllar谋 yaratmaq bacar谋臒谋.
陌ndi, problem set be艧 g枚r眉rs眉n眉z images 蓹hat蓹 ed蓹n, istifad蓹 olacaq
ikili fayllar谋 蓹v蓹zin蓹.
Lakin 蓹sasl谋 fikir, eyni , h蓹tta will funksiyalar谋
bir az f蓹rqli oldu.
>> Qas谋r臒a tur Bel蓹 ki, ancaq siz 蓹ld蓹 ed蓹c蓹k fayl il蓹 b眉t眉n 莽ox tan谋艧 I/O--
giri艧 v蓹 莽谋x谋艧 - pset be艧 il蓹.
V蓹 haqq谋nda suallar谋n谋z Burada ilkin 蓹saslar谋?
B蓹li?
>> N蓹 bir null d蓹y蓹r pulsuz 眉莽眉n c蓹hd edin?
Pulsuz kazan谋lm谋艧 halda m蓹n hesab edir蓹m ki az daha 莽ox istifad蓹莽i dostu, siz
potensial segfault.
M蓹n n蓹 莽眉nki null ke莽蓹n pis pulsuz iman, siz yoxlamaq 眉莽眉n narahat
O potensial tullant谋lar谋n olard谋, 莽眉nki bunun 眉莽眉n 枚z眉 n蓹 眉莽眉n vaxt
d眉nyada h蓹r k蓹s.
Yax艧谋 sual olsa.
>> B眉t眉n sa臒, bu c眉r olur bel蓹 biz蓹 bir maraql谋 m枚vzu.
Problem set m枚vzusu be艧 Suclari edir.
茝n az谋 bir hiss蓹si var problem d蓹sti.
Suclari 眉mumilikd蓹 aiddir ki, bil蓹r v蓹 ya m蓹lumat b蓹rpa
silinmi艧 ola bil蓹r q蓹sd蓹n.
V蓹 m蓹n siz蓹 tez verm蓹k ist蓹diyiniz d眉艧眉nd眉m n蓹 dad谋, h蓹qiq蓹t蓹n, b眉t眉n gedir
alt谋ndak谋 bu d蓹f蓹 komp眉ter ba艧l谋q.
>> M蓹s蓹l蓹n, daxili varsa sizin laptop v蓹 ya masa 眉st眉 komp眉ter
sabit, ya mexaniki var h蓹qiq蓹t蓹n spins ki, cihaz -
platters adl谋 dair蓹vi 艧eyl蓹r var olduqca ki, kimi baxmaq n蓹
yaln谋z baxmayaraq, burada ekranda idi bunu getdikc蓹 k枚hn蓹 m蓹kt蓹b var.
Bu 眉莽 v蓹 yar谋m-d眉yml眉k edir sabit.
V蓹 眉莽 yar谋m d眉ym aiddir siz onu y眉kledi臒inizde 艧ey il蓹
bir komp眉ter.
>> 陌ndi noutbuk siz蓹 莽ox u艧aqlar , b蓹rk-d枚vl蓹t s眉r眉c眉ler, v蓹 ya SSDs var
olan hiss蓹l蓹ri h蓹r蓹k蓹t yoxdur.
Onlar RAM kimi daha 莽ox v蓹 daha az gibisin Bu mexaniki cihazlar.
Amma ideyalar谋, h蓹l蓹 d蓹 eyni 蓹lb蓹tt蓹 onlar aid
problem be艧 qurmaq 眉莽眉n.
>> V蓹 bir sabit disk 陌ndi hesab bir dair蓹 olan t蓹msil
M蓹n burada bu kimi 莽蓹km蓹k laz谋md谋r.
Siz bilgisayar谋n谋zda bir fayl yaratmaq zaman bu bir SSD, v蓹 ya olub
Bu halda, bir ya艧l谋 m蓹kt蓹b sabit disk, fayl bird蓹n 莽ox bit ibar蓹tdir.
Nin bu 0 v蓹 1 ki, dey蓹k, 0s v蓹 1s b眉t眉n d蓹st蓹.
Bel蓹 ki, bu m蓹nim b眉t眉n sabit deyil.
Bu y蓹qin olduqca b枚y眉k fayl.
V蓹 o da 0s v蓹 1s up istifad蓹 edir fiziki n枚mr蓹li hiss蓹si.
>> Yax艧谋 ki, fiziki hiss蓹si n蓹dir?
B蓹li, bu, bir sabit 莽谋x谋r ki, bu tipli 蓹n az谋 var
bu ki莽ik ki莽ik maqnit hiss蓹cikl蓹ri.
Onlar mahiyy蓹tc蓹 艧imal v蓹 onlara c蓹nub dir蓹kl蓹ri, bel蓹 ki, 蓹g蓹r
o maqnit hiss蓹cikl蓹rinin biri 莽evirm蓹k Bu yolla, siz ki, dem蓹k olar ki,
1 etdirir.
V蓹 alt眉st c蓹nub 蓹g蓹r 艧imal, siz ki, dem蓹k olar ki,
A 0 t蓹msil.
>> Bel蓹 ki, real fiziki d眉nyada var Siz bir 艧ey t蓹msil ed蓹 bil蓹r nec蓹
ikili 0 d枚vl蓹t v蓹 1.
Bel蓹 ki, b眉t眉n bir fayl edir.
Maqnit b眉t眉n d蓹st蓹 var onlar谋n bu v蓹 ya bu 艧蓹kild蓹 olan hiss蓹cikl蓹r
Bu 艧蓹kild蓹 yarad谋lmas谋 n眉mun蓹l蓹ri v蓹 0s v蓹 1s.
>> Lakin bu, bir dosyay谋 zaman 莽谋x谋r b蓹zi m蓹lumatlar ayr谋ca qeyd olunur.
Bel蓹likl蓹, bu, bir az masa bir kataloq, bel蓹 dan谋艧maq.
V蓹 m蓹n bu s眉tun ad谋n谋 z蓹ng v蓹 ed蓹c蓹yik M蓹n bu s眉tun yeri z蓹ng ed蓹c蓹yik.
>> V蓹 m蓹n g眉man, dem蓹k gidiyorum bu m蓹nim CV edir.
M蓹nim resume.doc saxlan谋l谋r yer, 123 dey蓹k.
M蓹n h蓹mi艧蓹 ki say谋 眉莽眉n gedin.
Lakin ist蓹yir蓹m ki, dem蓹k kifay蓹tdir RAM, bir sabit disk ed蓹 bil蓹rsiniz
bir gigabyte v蓹 ya 200 Gb var v蓹 ya terabayt, v蓹 siz
say谋 bayt b眉t眉n.
Siz 8 bit b眉t眉n chunks say谋.
>> Bel蓹likl蓹, biz bu dey蓹c蓹y蓹m yeri 123.
Bel蓹 ki, m蓹nim 蓹m蓹liyyat bu kataloq daxilind蓹 Sistem xat谋rlay谋r ki,
CV yeri 123 edir.
Lakin bu zaman maraql谋 olur Bir fayl谋 silm蓹k.
>> M蓹s蓹l蓹n bel蓹 -
v蓹 t蓹艧蓹kk眉rl蓹, d眉nyan谋n 蓹n 莽ox Bu 眉z蓹rind蓹 tutuldu - n蓹 olur
Siz Mac OS Zibil qutusuna bir fayl s眉r眉kleyin v蓹 ya Windows Recycle Bin?
Bunun m蓹qs蓹di n蓹dir?
Bu fayl qurtarmaq 眉莽眉n a莽谋q-ayd谋n var lakin n蓹 s眉r眉kleyerek akt yoxdur v蓹
Sizin 脟枚p v蓹 ya daxil d眉艧m蓹 眉莽眉n Recycle Bin bir komp眉ter haqq谋nda n蓹?
>> H蓹qiq蓹t蓹n tamamil蓹 he莽 bir 艧ey.
Bu, sad蓹c蓹 bir qovluq kimi.
O, 蓹min olmaq 眉莽眉n x眉susi qovluq var.
Amma bu, h蓹qiq蓹t蓹n fayl谋 silm蓹k edir?
>> Xeyr, B蓹li, 莽眉nki y蓹qin ki, b蓹zi kimi olmu艧am, l蓹n蓹tl蓹m蓹k oh, siz yox idi
Bunu etm蓹k dem蓹kdir.
Bel蓹likl蓹, siz ikiqat bas谋n 脟枚p v蓹 ya Recycle Bin.
Siz 蓹traf谋nda d眉rt眉lm蓹k etdik v蓹 b蓹rpa etdik yaln谋z s眉r眉kleyerek fayl
orada h蓹yata.
Bel蓹 ayd谋n, bu, m眉tl蓹q deyil bu t蓹mizl蓹nm蓹si.
>> OK, siz asan daha ist蓹yirik.
Bilirsiniz ki, yaln谋z daxil s眉r眉kleyerek 脟枚p v蓹 ya Recycle Bin dem蓹k deyil
Siz zibil bo艧altma edirik.
Bel蓹 ki, siz menyu gedin v蓹 dem蓹k Bo艧 脟枚p v蓹 ya Bo艧 Recycle Bin.
Sonra n蓹 olar?
>> B蓹li, bel蓹 ki, daha bel蓹 silinir.
Ancaq olur ki, b眉t眉n bu.
Komp眉ter yerl蓹艧ir unudur resume.doc idi.
>> Amma n蓹 y蓹qin d蓹yi艧m蓹yib 艧蓹kil?
Bit, m蓹n iddia edir ki, 0s v蓹 1s var b蓹zi fiziki aspekt saytda
hardware.
Onlar h蓹l蓹 d蓹 ist蓹yirik.
Bu, yaln谋z komp眉ter var var unudulmu艧 n蓹 onlar.
>> Bel蓹 ki, mahiyy蓹tc蓹 azad oldu fayl onlar yenid蓹n istifad蓹 edil蓹 bil蓹r bit ki.
Lakin, daha 莽ox fayl yaratmaq deyil q蓹d蓹r v蓹 daha 莽ox fayllar谋, v蓹 daha 莽ox fayl olacaq
probabilistically, bu 0s v蓹 1s, bu maqnetik hiss蓹cikl蓹r, t蓹krar almaq,
眉莽眉n ayaq v蓹 ya sa臒 up, dig蓹r fayllar谋 0s v蓹 1s.
>> Bel蓹 ki, vaxt bu p蓹nc蓹r蓹 var.
V蓹 g枚zl蓹nil蓹n deyil ki, uzunlu臒u, h蓹qiq蓹t蓹n.
Bu 莽蓹tin 枚l莽眉s眉nd蓹n as谋l谋d谋r s眉r眉c眉 v蓹 ne莽蓹 fayllar谋 v蓹
nec蓹 tez yeni olun.
Lakin zaman bu p蓹nc蓹r蓹sind蓹 var fayl m眉k蓹mm蓹l h蓹l蓹 olan
b蓹rpa.
>> 茝g蓹r McAfee kimi proqramlar谋 istifad蓹 蓹g蓹r v蓹 ya Norton b蓹rpa etm蓹y蓹 c蓹hd
data, onlar yap媒yorsun b眉t眉n 莽al谋艧谋r bu d谋rnaqaras谋 kataloq b蓹rpa
fayl oldu臒u anlamaq.
V蓹 b蓹z蓹n Norton v蓹 dey蓹c蓹kl蓹r fayl 93% b蓹rpa.
Yax艧谋 ki, n蓹 dem蓹kdir?
Yaln谋z o dem蓹kdir ki, ki, dig蓹r fayl t蓹sad眉f蓹n, dem蓹k, istifad蓹 sona 莽atd谋
orijinal fayl h蓹yata o bit.
>> Y蓹ni 蓹slind蓹 n蓹 c蓹lb edir data b蓹rpa?
B蓹li, sizin kimi bir 艧ey yoxdur, 蓹g蓹r Norton, komp眉ter 蓹vv蓹lc蓹d蓹n qura艧d谋r谋lm谋艧
Siz b蓹z蓹n ed蓹 bil蓹rsiniz yax艧谋 baxmaq edir b眉t眉n sabit axtar谋r at
bit n眉mun蓹l蓹ri.
V蓹 problem d蓹sti m枚vzulardan biri Be艧 axtar谋艧 ed蓹c蓹k ki,
bir sabit disk b蓹rab蓹r, m蓹hk蓹m蓹 a kompakt flash kart image
ki, 0s 眉莽眉n axtar谋艧 digital kamera, y眉ks蓹k il蓹 ad蓹t蓹n v蓹 1s,
ehtimal, t蓹msil JPEG image ba艧lay谋n.
>> V蓹 u艧aqlar h蓹min images b蓹rpa ed蓹 bil蓹rsiniz M蓹n bu model g枚r眉rs眉n眉zs蓹, h蓹rfinin
m蓹hk蓹m蓹 image bit il蓹 qeyd edir ki, y眉ks蓹k ehtimal谋,
JPEG ba艧lan臒谋c.
V蓹 m蓹n yen蓹 eyni model g枚r眉rs眉n眉zs蓹, ki, y蓹qin ki ba艧lamas谋 qeyd
ba艧qa JPEG, v蓹 ba艧qa JPEG, v蓹 dig蓹r JPEG.
Bu ad蓹t蓹n nec蓹 m蓹lumat b蓹rpa i艧l蓹y蓹c蓹k.
N蓹 JPEGs haqq谋nda g枚z蓹l bel蓹 olsa fayl format 枚z眉 q蓹d蓹r deyil
h蓹r bir bel蓹 kompleksi, 蓹vv蓹lin蓹 fayl h蓹qiq蓹t蓹n kifay蓹t q蓹d蓹r identifikasiya edir
, g枚rd眉y眉n眉z kimi, v蓹 sad蓹 Hen眉z varsa.
>> El蓹 alt谋ndan daha yax谋ndan ed蓹k oldu tam olaraq n蓹 kimi ba艧l谋q
gedir v蓹 bu 0s v蓹 1s n蓹 bir bir az daha verm蓹k var
bu problem kontekstind蓹.
>> [Video playback]
>> PC 蓹n saklar-Haradan daimi m蓹lumatlar.
Bunu etm蓹k 眉莽眉n, veri RAM-dan s蓹f蓹r dem蓹k ki, proqram siqnallar谋 il蓹 birlikd蓹
nec蓹 veri sabit.
Sabit sxeml蓹rin t蓹rc眉m蓹 g蓹rginlikli h蓹min siqnallar谋
d蓹yi艧m蓹si.
Bu, 枚z n枚vb蓹sind蓹, sabit n蓹zar蓹ti h蓹r蓹k蓹t ed蓹n hiss蓹l蓹ri, bir ne莽蓹 b蓹zi
d蓹 sol h蓹r蓹k蓹t ed蓹n hiss蓹l蓹ri m眉asir komp眉ter.
>> Siqnallar谋n b蓹zi motor n蓹zar蓹t olan metal 枚rt眉kl眉 platters spins.
Sizin data faktiki saxlan谋l谋r Bu platters haqq谋nda.
Dig蓹r siqnallar谋 oxumaq / yazmaq h蓹r蓹k蓹t oxumaq v蓹 ya r蓹hb蓹rl蓹ri
ki, platters haqq谋nda m蓹lumat yaz谋n.
Bu ma艧谋n bel蓹 d蓹qiq bir insan ki, sa莽 h蓹tta aras谋nda ke莽蓹 bilm蓹di
r蓹hb蓹rl蓹ri v蓹 iplik platters.
Lakin, b眉t眉n d蓹h艧蓹tli s眉r蓹tl蓹 i艧l蓹yir.
>> [END video playback]
>> DAVID Malan: bir az Zoom d蓹rin indi n蓹
h蓹qiq蓹t蓹n o platters haqq谋nda.
>> [Video playback]
>> G枚r眉n眉艧眉n眉-G蓹lin biz yaln谋z at yava艧 h蓹r蓹k蓹t g枚rd眉m.
Elektrik q谋sa n蓹bzini olduqda flips varsa, yazmaq / oxumaq ba艧 g枚nd蓹rilib
眉莽眉n ki莽ik elektromaqnit haqq谋nda ikinci bir qismini.
Magnet bir sah蓹 yarad谋r d蓹yi艧iklikl蓹r ki莽ik, ki莽ik v蓹 polarite
metal hiss蓹cikl蓹rin hiss蓹si olan coat h蓹r n枚mr蓹li s蓹th.
>> Bu ki莽ik bir model seriyas谋, disk t蓹hsil-up sah蓹l蓹ri
bir az t蓹msil ikili say谋 data
komp眉ter istifad蓹 sistemi.
陌ndi, cari g枚nd蓹rilir 蓹g蓹r bir yol Salt vasit蓹sil蓹 / 蓹razid蓹 ba艧 yazmaq
bir istiqam蓹td蓹 polarized edir.
Cari g枚nd蓹ril蓹n 茝g蓹r 蓹ks istiqam蓹ti,
q眉tbl蓹艧m蓹 b蓹rpa edilir.
>> 茝g蓹r sabit disk off m蓹lumat almaq nec蓹?
Yaln谋z proses t蓹rsin蓹.
Bel蓹 ki, disk haqq谋nda hiss蓹cikl蓹r var ki, cari almaq
ba艧 h蓹r蓹k蓹t yazmaq / oxumaq.
Bu milyonlarla birlikd蓹 qoyun magnetized seqmentl蓹ri v蓹
bir fayl var.
>> 陌ndi bir fayl par莽alar谋 bil蓹r b眉t眉n s眉r眉c眉 nin s蓹p蓹l蓹nmi艧 edilir
mess kimi n枚v platters, sizin masas谋 眉z蓹rind蓹 b眉lletenl蓹rinin.
Bel蓹 ki, x眉susi bir 蓹lav蓹 fayl tutar h蓹r 艧ey burada.
茝g蓹r olsayd谋 etm蓹yin bel蓹 bir 艧ey?
>> [END video playback]
>> DAVID Malan: OK, y蓹qin ki, deyil.
Bel蓹 ki, nec蓹 bir 莽ox u艧aqlar Bu il蓹 b枚y眉y眉b?
OK, bel蓹 ki, daha az v蓹 daha az var 蓹ll蓹ri h蓹r il.
Amma 蓹n az谋 tan谋艧 oldu臒unuzda sevindim onlara, bu, 莽眉nki 枚z
kitab demo, T蓹蓹ss眉f ki, bir 莽ox 枚l眉r tan谋艧l谋q burada 枚l眉m yava艧.
>> Amma bu 蓹n az谋, geri, n蓹 m蓹n y眉ks蓹k m蓹kt蓹b, yedeklemeler 眉莽眉n istifad蓹 istifad蓹.
V蓹 g枚z蓹l idi, 莽眉nki 眉zr蓹 1.4 megabayt saxlaya bil蓹r
Bu x眉susi disk.
Bu, y眉ks蓹k s谋xl谋臒谋 versiyas谋 idi kimi olan HD, g枚st蓹ril蓹n
G脺N脺N HD video 蓹vv蓹l dem蓹kdir.
>> Standard s谋xl谋臒谋 800 kilobayt idi.
V蓹 bundan 蓹vv蓹l var idi 400 kilobayt diskl蓹r.
V蓹 bundan 蓹vv蓹l, 5 v蓹 1/4 var idi h蓹qiq蓹t蓹n floppy olan inch diskl蓹r,
v蓹 bir az daha geni艧 v蓹 taller burada bu 艧eyi daha.
Amma 蓹slind蓹 s枚zd蓹 bil蓹rsiniz Bu diskl蓹r disket aspekt.
>> V蓹 funksional, onlar h蓹qiq蓹t蓹n ist蓹yirik at sabit diskler olduqca ox艧ar
az bu n枚v眉.
Yeni komp眉ter Yen蓹 SSDs f蓹rqli bir az i艧l蓹yir.
Amma siz ki, az metal ni艧an谋 h蓹r蓹k蓹t 蓹g蓹r, h蓹qiq蓹t蓹n, bir az cookie bil蓹rsiniz
v蓹 ya val.
>> Bu kimi metal deyil.
Bu, h蓹qiq蓹t蓹n, b蓹zi ucuzdur material plastik.
V蓹 rahat durmamak bu c眉r bil蓹r.
V蓹 trully yaln谋z bir off m蓹hv etdik bit v蓹 ya maqnit hiss蓹cikl蓹rinin say谋
Bu disk.
>> Bel蓹 ki, t蓹艧蓹kk眉rl蓹, bu bar蓹d蓹 he莽 bir 艧ey yoxdur.
O 艧ey yolunda varsa - v蓹 蓹hat蓹 G枚zlerinde v蓹 qon艧u o -
yaln谋z c眉r bu pull bil蓹rsiniz kimi b眉t眉n 枚rt眉k off.
Amma bir az yaz var, bel蓹 g枚z il蓹 f蓹rqind蓹yik.
Bel蓹 ki, indi siz h蓹qiq蓹t蓹n bir disket var.
>> V蓹 n蓹 bu bar蓹d蓹 蓹lam蓹tdar var bu kimi daha 莽ox oldu臒u bir
daha b枚y眉k ki莽ik miqyasl谋 n眉may蓹nd蓹liyi sabit, bu 艧eyl蓹r, super var
super sad蓹.
陌ndi, bu alt 莽imdik ki, 蓹g蓹r ki, metal 艧ey off, v蓹 t蓹mizl蓹m蓹k
onlar谋 a莽maq, orada b眉t眉n iki 蓹d蓹d hiss v蓹 s枚zd蓹 disket
daxili metal bir par莽a il蓹.
>> V蓹 yar谋m orada gedir m蓹nim disk m蓹zmunu.
Onlar谋n ba艧qa bir yar谋s谋 var gedir.
Amma bu daxili iplik ki, b眉t眉n var yesteryear sizin komp眉ter.
>> V蓹 yen蓹, perspektiv bu qoymaq nec蓹 b枚y眉k sizin 蓹n
莽蓹tin bu g眉n s眉r眉c眉ler?
500 Gb, bir terabayt, b蓹lk蓹 ild蓹 bir masa 眉st眉 komp眉ter, 2 terabayt, 3
terabayt, 4 terabayt, sa臒?
Bu megabyte deyil, verm蓹k v蓹 ya almaq h蓹tta tipik MP3 uy臒un olmayan
art谋q bu g眉n v蓹 ya b蓹zi ox艧ar musiqi fayl谋.
>> Bel蓹 ki, bir az sizin 眉莽眉n xatir蓹 bu g眉n v蓹 da n蓹 contextualize k枚m蓹k
biz veril蓹n alaraq olacaq 陌ndi problem be艧 se莽in.
Bel蓹 ki, o saxlamaq 眉莽眉n sizin edir.
Bel蓹 ki, olacaq m蓹n蓹 ke莽id bildirin n枚vb蓹ti pset s蓹rf h蓹m莽inin.
Bel蓹likl蓹, biz indi bu s蓹hif蓹 眉莽眉n m眉蓹yy蓹n sonra - oh, tez elanlar bir ne莽蓹.
>> Bu c眉m蓹, siz ist蓹yirsinizs蓹 CS50 qo艧ulmaq nahar 眉莽眉n, adi yer蓹 getm蓹k
cs50.net/rsvp.
V蓹 yekun layih蓹 -
bel蓹 proqramlar谋 ba艧谋na, biz olunub etdiyiniz art谋q yekun layih蓹 d蓹qiql蓹艧dirilm蓹si.
Dem蓹k deyil ki, h蓹yata x眉susil蓹 tezlikl蓹 g枚r蓹 var.
Bu, sad蓹c蓹 almaq 眉莽眉n, h蓹qiq蓹t蓹n, olunub oldu U艧aqlar bu bar蓹d蓹 d眉艧眉n眉r眉k.
And olsun ki, bir super 蓹h蓹miyy蓹tli Siz faiz h蓹lli olacaq
material yekun layih蓹l蓹r biz h蓹tta sinif kazan谋lm谋艧 deyil,
lakin g蓹l蓹n h蓹ft蓹 olacaq.
>> Azadl谋qlar olsa da, spec 莽a臒谋r谋r ki, ki, bir ne莽蓹 m眉xt蓹lif komponentl蓹ri
son layih蓹si.
Ilk bir ne莽蓹 h蓹ft蓹, bir pre-t蓹klifi 眉莽眉n olduqca t蓹sad眉fi e-po莽t
Sizin onu dem蓹k TF ya n蓹 ist蓹yirik il蓹, sizin layih蓹 眉莽眉n d眉艧眉n眉r
he莽 bir 枚hd蓹lik.
T蓹klif x眉susi olacaq 枚hd蓹lik dey蓹r蓹k, burada, bu n蓹dir
M蓹n layih蓹 眉莽眉n n蓹 etm蓹k ist蓹rdim.
Siz n蓹 d眉艧眉n眉rs眉n眉z?
脟ox b枚y眉k?
脟ox ki莽ik?
Bu idar蓹 mi?
V蓹 daha 莽ox 蓹trafl谋 m蓹lumat 眉莽眉n spec bax谋n.
>> H蓹ft蓹 ne莽蓹 bundan sonra v蓹ziyy蓹ti eyni olan hesabat,
nec蓹 dem蓹k 眉莽眉n TF 眉莽眉n t蓹sad眉fi e-po莽t Siz son var 莽ox gerisind蓹
t蓹qib layih蓹sinin h蓹yata ke莽irilm蓹si, ki, CS50 Hackathon olan h蓹r k蓹s
d蓹v蓹t edir, bir hadis蓹 olacaq 7:00 q蓹d蓹r bir ax艧am 8:00 PM
N枚vb蓹ti s蓹h蓹r AM.
M蓹n h蓹ft蓹d蓹 qeyd etdiyim bil蓹r Pizza, s谋f谋r, WIL, 9:00 PM xidm蓹t
1:00-da 脟in 蓹rzaq AM.
V蓹 5:00 h蓹l蓹 oyaq ist蓹yirsinizs蓹 AM, biz s蓹h蓹r yem蓹yi 眉莽眉n IHOP aparaca臒谋q.
>> Bel蓹 ki, Hackathon daha biri sinif yaddaqalan t蓹cr眉b蓹.
Sonra h蓹yata ke莽irilm蓹si v蓹 sonra iqlim CS50 yarmarkas谋.
B眉t眉n bunlar haqq谋nda daha 蓹trafl谋 m蓹lumat h蓹ft蓹l蓹rd蓹 g蓹lib.
>> Amma bir 艧ey geri gidelim k枚hn蓹 m蓹kt蓹b -
yen蓹 bir s谋ra.
O h蓹ll edir, 莽眉nki bel蓹 bir s谋ra g枚z蓹l idi biz kimi probleml蓹rin yaln谋z g枚rd眉m
t蓹l蓹b蓹 strukturlar谋 il蓹 蓹vv蓹l an n蓹zar蓹t bir az h蓹yata 蓹ld蓹 蓹g蓹r biz
t蓹l蓹b蓹 bir, t蓹l蓹b蓹 iki olsun t蓹l蓹b蓹 眉莽 t蓹l蓹b蓹 n枚qt蓹 n枚qt蓹 n枚qt蓹,
t蓹l蓹b蓹 b蓹zi 蓹sass谋z say谋.
>> Diziler Bel蓹 ki, bir ne莽蓹 h蓹ft蓹 蓹vv蓹l d蓹 swooped v蓹 h蓹ll probleml蓹rin deyil, b眉t眉n
蓹vv蓹lc蓹d蓹n bilm蓹d蓹n nec蓹 bir 莽ox 艧eyi bir n枚v眉 biz ist蓹yirik bil蓹r.
V蓹 biz structs biz蓹 k枚m蓹k ed蓹 bil蓹r ki, g枚rd眉m daha code t蓹艧kil saxlamaq
bir kimi konseptual ox艧ar D蓹yi艧蓹nl蓹r, ad v蓹 ev birlikd蓹 ki, biz
daxilind蓹 bir 艧蓹xs kimi m眉alic蓹 ed蓹 bil蓹rsiniz olan ki莽ik par莽alara var.
>> Amma seriallarda b蓹zi m蓹nfi c蓹h蓹tl蓹ri var.
M蓹nfi c蓹h蓹tl蓹ri bir hans谋lard谋r biz Kar艧谋la艧t谋臒谋n谋z
Diziler il蓹 bu g眉n蓹 q蓹d蓹r?
N蓹 olub?
Sabit 枚l莽眉s眉 - bel蓹 siz bil蓹r baxmayaraq bir yadda艧 ayr谋lmas谋 ed蓹
array, bir d蓹f蓹 nec蓹 莽ox 艧agird siz ne莽蓹 i艧ar蓹 var
istifad蓹莽i, bir d蓹f蓹 ayr谋lan sonra serial谋n, ne c眉r boyal谋 etdik
k眉nc蓹 枚z眉n眉z眉.
>> Siz yeni elementl蓹r daxil ed蓹 bilm蓹z, 莽眉nki bir s谋ra orta 莽evrildi.
Daha 莽ox elementl蓹r daxil ed蓹 bilm蓹z bir s谋ra sonunda.
H蓹qiq蓹t蓹n, bir yaratmaq 眉莽眉n m眉raci蓹t var biz m眉zakir蓹 etdik kimi b眉t眉n yeni dizi,
yeni daxil k枚hn蓹 莽谋xarmaq.
V蓹 yen蓹 ki, ba艧 a臒r谋s谋 oldu臒unu Sizin 眉莽眉n il蓹 m蓹艧臒ul GetString.
>> Ancaq yen蓹 d蓹, h蓹tta ekleyemezsiniz serial谋n ortas谋na bir 艧ey
d蓹r蓹c蓹si tamamil蓹 dolu deyil.
M蓹s蓹l蓹n, bu array 蓹g蓹r burada 枚l莽眉s眉 alt谋 yaln谋z bu be艧 艧eyi var
yax艧谋, yaln谋z tack bil蓹r sonunda 眉z蓹rin蓹 bir 艧ey.
Amma bir 艧ey 蓹lav蓹 etm蓹k 眉莽眉n n蓹 ist蓹yiriks蓹 ortas谋nda daxil
dizi, bu ola bil蓹r, baxmayaraq ki, bu alt谋 艧eyi be艧 h蓹yata?
>> Yax艧谋, biz b眉t眉n zaman n蓹 idi insan k枚n眉ll眉 s蓹hn蓹d蓹 il蓹
h蓹ft蓹 ke莽mi艧?
Biz burada kims蓹 qoymaq ist蓹yirdi, ya Bu h蓹r蓹k蓹t n蓹 bu insanlar
yol v蓹 ya bu h蓹r蓹k蓹t nec蓹 bu insanlar yolu, v蓹 bahal谋 oldu.
Bu bir daxilind蓹 insanlar谋n d蓹yi艧ir array q蓹d蓹r 蓹lav蓹 v蓹 qiym蓹tqoyma q蓹d蓹r ba艧a
biz蓹 vaxt bu s蓹b蓹bd蓹n bizim 眉莽眉n 莽ox sevindirici n kvadrat v蓹 眉莽眉n, durub sort kimi d蓹f蓹 莽al谋艧an
M蓹s蓹l蓹n, 蓹n pis halda.
Bel蓹 ki, seriallarda b枚y眉k, ancaq var ist蓹diyiniz nec蓹 b枚y眉k 蓹vv蓹lc蓹d蓹n bilirik.
>> Bel蓹 ki, OK, burada bir 莽枚z眉m var.
M蓹n 蓹vv蓹lc蓹d蓹n bilmirsinizs蓹 ne莽蓹 t蓹l蓹b蓹l蓹r M蓹n ola bil蓹r, v蓹 m蓹n bir d蓹f蓹 bilir蓹m
M蓹n q蓹rar olsa da, m蓹n ki, il蓹 vurulmu艧 al谋ram , niy蓹 yaln谋z h蓹mi艧蓹 莽ox 艧agird yoxdur
iki d蓹f蓹 莽ox yer ay谋rma臒a M蓹n hesab ed蓹 bil蓹r kimi m蓹n laz谋md谋r?
Ki, bir a臒labatan h蓹ll deyilmi?
>> Real, biz ist蓹yirik ki d眉艧眉nm眉r蓹m 50-d蓹n 莽ox yuva t蓹l蓹b edir
orta 枚l莽眉l眉 sinfi 眉莽眉n bir s谋ra, el蓹 yaln谋z d蓹yirmi bildirin.
M蓹n yaln谋z m蓹nim array 100 slots etm蓹k laz谋md谋r bel蓹 ki, biz m眉tl蓹q 蓹ld蓹 ed蓹 bil蓹rsiniz
M蓹n g枚zl蓹yirik t蓹l蓹b蓹l蓹rin say谋 B蓹zi orta sinif ola bil蓹r.
Bel蓹 ki, niy蓹 yaln谋z d蓹yirmi v蓹 ay谋rmad谋臒谋 bir s谋ra 眉莽眉n daha 莽ox yadda艧, ad蓹t蓹n,
siz h蓹tta laz谋m bil蓹r edir蓹m 莽ox?
Bu sad蓹 pushback n蓹dir ki, ideya?
>> Siz yaln谋z yadda艧 israf edirik.
茝g蓹r yazmaq s枚z眉n h蓹r proqram谋 b蓹lk蓹 iki d蓹f蓹 莽ox yadda艧 istifad蓹 edir
h蓹qiq蓹t蓹n laz谋md谋r.
V蓹 yaln谋z bir kimi hiss etmir x眉susil蓹 z蓹rif h蓹ll.
Bundan 蓹lav蓹, yaln谋z azal谋r bir problem ehtimal谋.
Bir m蓹艧hur kurs 眉莽眉n n蓹 varsa bir d枚vr v蓹 101 var
t蓹l蓹b蓹l蓹r, proqram h蓹l蓹 d蓹 蓹sasl谋 eyni m蓹s蓹l蓹 qar艧谋-qar艧谋ya.
>> Bel蓹 ki, t蓹艧蓹kk眉rl蓹, bir h蓹ll var 艧蓹klind蓹 bu reklamdan b眉t眉n probleml蓹rimizi
ki, data strukturlar谋n谋n olanlar谋 daha m眉r蓹kk蓹b
Biz indiy蓹 q蓹d蓹r g枚rd眉k.
Bu, m蓹n iddia, bir ba臒l谋 siyah谋s谋.
Bu n枚mr蓹l蓹rin siyah谋s谋 -
9, 17, 22, 26, v蓹 34 -
yolu il蓹 birlikd蓹 ba臒l谋 ki, n蓹 m蓹n oxlar kimi t蓹rtib etdik.
>> Ba艧qa s枚zl蓹, 蓹g蓹r m蓹n t蓹msil etm蓹k ist蓹di bir s谋ra, m蓹n n蓹 ed蓹 bil蓹r
bu kimi bir 艧ey.
M蓹n hava bu qoymaq laz谋md谋r yaln谋z bir anda.
M蓹n bil蓹r -
hello, b眉t眉n do臒ru.
Yan谋nday谋z.
Burada yeni komp眉ter, ayd谋n -
B眉t眉n h眉quqlar.
>> Bel蓹likl蓹, m蓹n s谋ra bu r蓹q蓹ml蓹r varsa -
9, 17, 22, 26, 24 -
t蓹r蓹ziy蓹 laz谋m deyil.
B眉t眉n sa臒, bel蓹 ki, burada m蓹nim array edir -
P蓹rv蓹rdigara.
B眉t眉n sa臒, bel蓹 ki, burada m蓹nim array edir.
P蓹rv蓹rdigara.
>> [G眉l眉艧]
>> DAVID Malan: Pretend.
Geri getm蓹k 眉莽眉n 莽ox 莽ox s蓹y var v蓹 s var ki, Fix -
26.
Bel蓹likl蓹, biz bu array var 9, 17, 22, 26, v蓹 34.
Sizin bax bil蓹r utand谋r谋c谋 s蓹hv M蓹n yaln谋z edib,
orada deyil.
>> M蓹n bu oldu臒unu iddia bir 莽ox s蓹m蓹r蓹li h蓹lli.
M蓹n 莽ox ints ayr谋lan etdik M蓹n laz谋md谋r - bir, iki, 眉莽,
d枚rd, be艧 v蓹 ya alt谋 -
v蓹 m蓹n sonra n枚mr蓹l蓹ri saxlan谋l谋r etdik Bu serial谋n i莽蓹risind蓹.
Amma g眉man, sonra m蓹n 蓹lav蓹 etm蓹k ist蓹yir蓹m say谋 8 kimi bir d蓹y蓹r?
Yax艧谋, burada getm蓹k edir?
M蓹n 蓹lav蓹 etm蓹k ist蓹yir蓹m G眉man 20 kimi bir s谋ra.
Yax艧谋, burada getm蓹k edir?
Somewhere orada ortas谋nda, v蓹 ya say谋 35 getm蓹k 眉莽眉n var
haradasa sonunda.
Amma alan b眉t眉n edir蓹m.
>> V蓹 bu fundamental problem deyil h蓹ll edir ki, seriallar谋.
M蓹n GetString bir an 蓹vv蓹l iddia bu problemi h蓹ll edir.
Bir alt谋nc谋 r蓹q蓹m daxil etm蓹k ist蓹yirsinizs蓹 Bu massivin蓹, 蓹n az谋 bir n蓹
h蓹ll siz 蓹min 眉莽眉n geri d眉艧蓹 bil蓹r yaln谋z biz GetString n蓹 kimi?
N蓹 olub?
>> B蓹li, bu b枚y眉k olun asan h蓹yata daha bildirib.
Biz m眉tl蓹q serial谋n ed蓹 bilm蓹z b枚y眉k, lakin biz n蓹 ed蓹 bil蓹r?
脰l莽眉s眉 b枚y眉kd眉r ki, yeni array etm蓹k 6, v蓹 ya b蓹lk蓹 枚l莽眉s眉 10, biz ist蓹yiriks蓹
ir蓹li 艧eyi almaq, sonra sur蓹ti k枚hn蓹 yeni daxil dizi, v蓹 sonra
k枚hn蓹 array Pulsuz.
>> Amma 莽al谋艧an zaman var indi bu prosesin?
Bu, n b枚y眉k Ey 莽眉nki sur蓹tini Siz b蓹zi kontur ba艧a gedir
biz var zaman, o q蓹d蓹r ideal halda gedir yeni dizi, ayr谋lmas谋
iki d蓹f蓹 莽ox istehlak etm蓹k m眉v蓹qq蓹ti yadda艧.
Yeni daxil k枚hn蓹 sur蓹ti -
M蓹n dem蓹k, yaln谋z bir ba艧 a臒r谋s谋, hans谋 yen蓹 niy蓹 biz yazm谋艧d谋r
Sizin 眉莽眉n GetString.
>> Yerine Bel蓹 ki, n蓹 ola bil蓹r?
Yax艧谋, n蓹 蓹g蓹r data structure h蓹qiq蓹t蓹n bo艧luqlar var?
M蓹n olan m蓹nim qol istirah蓹t G眉man yadda艧 biti艧ik chunks, harada 9
olan 17, sa臒 yan谋nda do臒ru 22 yan谋ndak谋 v蓹 s.
>> V蓹 9 Burada art谋q ola bil蓹r ki, g眉man RAM, 17, RAM burada art谋q ola bil蓹r
v蓹 22 RAM burada art谋q ola bil蓹r.
Ba艧qa s枚zl蓹, m蓹n onlara laz谋m deyil h蓹tta art谋q geri geri.
M蓹n el蓹 bir iyn蓹 m枚vzu var Bu r蓹q蓹ml蓹rin h蓹r biri v蓹 ya h蓹r vasit蓹sil蓹
Bu qov艧aqlar谋n谋n kimi biz z蓹ng ed蓹c蓹yik M蓹n onlar谋 t蓹rtib etdiyiniz kimi d眉zbucaql谋 眉莽眉n
son almaq 眉莽眉n nec蓹 yadda 陌lk bel蓹 node.
>> Bel蓹 ki, proqramla艧d谋rma tikintisi n蓹 biz kifay蓹t q蓹d蓹r yax谋nlarda g枚rd眉m ki, m蓹n
ki, m枚vzu h蓹yata, v蓹 ya , burada t蓹rtib M蓹n olan
bu oxlar h蓹yata?
Bel蓹 g枚st蓹ricil蓹r, sa臒?
M蓹n yaln谋z ayr谋lmas谋 edin int, lakin bir node - v蓹
node, yaln谋z konteyner n蓹z蓹rd蓹 tuturam.
V蓹 g枚rm蓹, bir d眉zbucaql谋 dem蓹k.
Bir node y蓹qin laz谋md谋r Bel蓹 ki, iki d蓹y蓹rl蓹r ehtiva -
ki, int 枚z眉, sonra kimi n蓹z蓹rd蓹 tutulan olan d眉zbucaql谋 alt yar谋s谋,
bir int 眉莽眉n kifay蓹t q蓹d蓹r yer.
>> Bel蓹 ki, yaln谋z, burada ir蓹li d眉艧眉n眉r Bu node bu, nec蓹 b枚y眉k
sual konteyner?
Ki, int n蓹 q蓹d蓹r bayt?
Ehtimal 4, bu halda h蓹mi艧蓹 oldu臒u kimi eyni.
V蓹 sonra ne莽蓹 bayt g枚st蓹rici 眉莽眉n?
4.
Bel蓹likl蓹, bu konteyner v蓹 ya bu node edir 8-byte qurulu艧u olacaq.
Oh, v蓹 bir xo艧b蓹xt t蓹sad眉f ki, biz yaln谋z bu anlay谋艧谋 daxil
bir struct v蓹 ya C qurulu艧u.
>> Bel蓹likl蓹, m蓹n bir add谋m etm蓹k ist蓹yir蓹m ki, iddia Bu daha m眉r蓹kk蓹b do臒ru
n枚mr蓹l蓹rin siyah谋s谋, bir h蓹yata ke莽irilm蓹si n枚mr蓹l蓹rin ba臒l谋 siyah谋, m蓹n n蓹 etm蓹k laz谋md谋r
az daha 枚n q蓹d蓹r d眉艧眉nc蓹 v蓹 yaln谋z bir int, lakin struct elan
M蓹n z蓹ng laz谋md谋r ki, 艧蓹rti burada node.
Biz bunu ist蓹yirik bir 艧ey z蓹ng, lakin bil蓹r node bir 莽ox tematik olacaq
艧eyi indi baxaraq ba艧lamaq.
>> Ki, node daxilind蓹 int n.
V蓹 sonra bu sintaksis, bir az ilk bax谋艧da q蓹rib蓹 -
struct node * g蓹l蓹c蓹k.
Yax艧谋 pictorially ki, n蓹dir?
Bu alt yar谋s谋 g枚rd眉k ki d眉zbucaql谋
yaln谋z bir an 蓹vv蓹l.
>> Amma niy蓹 I * struct node deyir蓹m kimi node * qar艧谋?
Ki, g枚st蓹rici i艧ar蓹 edir, 莽眉nki ba艧qa node da, yaln谋z var
bir node 眉nvan谋.
Biz var n蓹 il蓹 uy臒un ki, 陌ndiy蓹d蓹k g枚st蓹ricil蓹rin蓹 m眉zakir蓹.
M蓹n iddia Lakin niy蓹 bu strukturu node adl谋, m蓹n struct dem蓹k var
Burada daxili node?
>> Eynil蓹 el蓹.
Bu C. bir axmaq reall谋q sort var Bu typedef, bel蓹 dan谋艧maq deyil, var
h蓹l蓹 oldu.
C h蓹rfi super.
Bu kodu top oxuyur alt, sa臒 qalmad谋.
Q蓹d蓹r bu ki, n枚qt蓹li verg眉l edib Alt x蓹tt deyil, n蓹 tahmin
bir veri n枚v眉 kimi var?
Node, teklif d谋rna臒谋 ba臒lamaq node.
>> Lakin daha ayr谋nt谋l谋 v蓹 b蓹yannam蓹 M蓹n ilk x蓹ttind蓹 idi -
typedef struct node -
ki, 蓹vv蓹l, g蓹ldi, 莽眉nki buruq a艧谋rma kimi n枚v var ki,
pre-maarifl蓹ndirilm蓹si cingilti ki, n蓹 m蓹n蓹 struct verm蓹k
struct node 莽a臒谋r谋b.
A莽谋臒谋, m蓹n z蓹ng 艧eyi sevmir蓹m struct node, struct node b眉t眉n
M蓹nim kodu boyunca.
Amma yaln谋z, yaln谋z i莽蓹rid蓹 bir d蓹f蓹 istifad蓹 ed蓹c蓹yik bel蓹 ki, s蓹m蓹r蓹li ola bil蓹r
, dair蓹vi istinad bir n枚v deyil yaratmaq bir se ba艧谋na 枚z眉m蓹 pointer, lakin
ba艧qa to pointer eyni n枚v眉.
>> Bel蓹 莽谋x谋r ki, bir veri strukturu bar蓹d蓹 bu kimi bir ne莽蓹 var
ola bil蓹r ki, 蓹m蓹liyyatlar biz蓹 maraq.
Biz daxil ed蓹 bil蓹rsiniz bu kimi bir siyah谋s谋na daxil.
Biz silm蓹k ist蓹yir蓹m bil蓹r bu kimi bir siyah谋dan.
Biz 眉莽眉n siyah谋 axtarmaq isteyebilirsiniz d蓹y蓹rd蓹 v蓹 ya 眉mumiyy蓹tl蓹, ax谋r.
V蓹 traverse yaln谋z bir x眉lya yoludur sol start dedi v蓹 b眉t眉n h蓹r蓹k蓹t
sa臒 眉莽眉n yol.
>> V蓹 h蓹tta bu q蓹d蓹r 莽ox x蓹b蓹r t蓹cr眉b蓹li data structure, qoy
m蓹n蓹 biz b蓹zi borc bil蓹r ki, t蓹klif Bu son iki h蓹ft蓹 ideya v蓹
adl谋 bir funksiyas谋 h蓹yata Bu kimi axtar谋艧.
Bu v蓹 ya do臒ru geri olacaq , yalan ifad蓹 B蓹li v蓹 ya
Xeyr, n s谋ras谋ndad谋r.
Onun ikinci arqument bir g枚st蓹ricisidir siyah谋s谋n谋 枚z眉 眉莽眉n bel蓹 bir
bir node g枚st蓹rici.
>> M蓹n bunu gidiyorum B眉t眉n b蓹yan edir m眉v蓹qq蓹ti d蓹yi艧蓹n.
Biz konvensiya il蓹 Ptr arayaca冒媒m pointer 眉莽眉n.
M蓹n onu b蓹rab蓹r t蓹yin siyah谋 蓹vv蓹li.
>> 陌ndi is蓹 loop bil蓹rsiniz.
Bel蓹 ki, uzun g枚st蓹rici b蓹rab蓹r deyil kimi null, m蓹n yoxlamaq 眉莽眉n gedir蓹m.
Mi g枚st蓹rici arrow n b蓹rab蓹r q蓹bul ki, n?
Yeni - V蓹 bir d蓹qiq蓹 g枚zl蓹yin syntax par莽as谋.
Arrow q蓹fl蓹t蓹n n蓹dir?
B蓹li?
>> Eynil蓹 el蓹.
Bel蓹 is蓹 bir ne莽蓹 d蓹qiq蓹 蓹vv蓹l, biz istifad蓹 bir 艧ey daxil olmaq 眉莽眉n dot notation
bir struct daxilind蓹, d蓹yi艧蓹n 蓹g蓹r Siz struct deyil ki,
枚z眉, lakin struct bir g枚st蓹rici, t蓹艧蓹kk眉rl蓹, sintaksis bir par莽a ki,
n蓹hay蓹t intuitiv hissi verir.
Ok, g枚st蓹rici riay蓹t etm蓹k dem蓹kdir bizim oxlar ad蓹t蓹n dem蓹k kimi
pictorially, v蓹 getm蓹k data sah蓹sind蓹 Inside.
Bel蓹 ki, arrow n枚qt蓹 kimi eyni 艧ey, ancaq bir g枚st蓹rici var zaman istifad蓹 edin.
>> Bel蓹 ki, yaln谋z, sonra Recap 蓹g蓹r n sah蓹sind蓹 ki, struct daxilind蓹 pointer 莽a臒谋r谋b
b蓹rab蓹r n b蓹rab蓹r, do臒ru qay谋d谋rlar.
茝ks halda, burada bu x蓹tti - pointer N枚vb蓹ti g枚st蓹rici b蓹rab蓹rdir.
Bel蓹likl蓹, bu n蓹 bildiri艧, 蓹g蓹r m蓹n Hal-haz谋rda struct da i艧ar蓹 edir蓹m
9 v蓹 9 olan r蓹q蓹m deyil M蓹n ar谋yorum - M蓹n ar谋yorum G眉man
N 50 b蓹rab蓹rdir -
M蓹n m眉v蓹qq蓹ti g枚st蓹rici yenil蓹m蓹k 眉莽眉n gidiyorum Bu node da qeyd etm蓹k
art谋q, lakin pointer arrow n枚vb蓹ti, hans谋 burada m蓹n蓹 qoymaq niyy蓹tind蓹dir.
>> 陌ndi bir qas谋r臒a edir h蓹yata t蓹tbiqi.
脟蓹r艧蓹nb蓹 g眉n眉, biz, h蓹qiq蓹t蓹n bunu ed蓹c蓹yik B蓹zi insanlar v蓹 b蓹zi daha 莽ox
yava艧 bir s眉r蓹tl蓹 kodu.
Amma h蓹yata, indi bizim data edirik strukturlar谋 daha m眉r蓹kk蓹b, bel蓹 ki, bizim
alqoritml蓹r, daha s蓹m蓹r蓹li 蓹ld蓹 ed蓹 bil蓹rsiniz ki, 眉莽眉n z蓹ruri olacaq
pset alt谋, biz yen蓹 d蓹 y眉k, o 150,000 s枚zl蓹r, lakin bunu etm蓹k laz谋md谋r
s蓹m蓹r蓹li v蓹 ideal bir yaratmaq bizim istifad蓹莽il蓹r 眉莽眉n 莽al谋艧谋r proqram
x蓹tti deyil, kvadrat n, lakin ideal daimi vaxt.
>> Biz 脟蓹r艧蓹nb蓹 g眉n眉 g枚r蓹c蓹ksiniz.
>> M蓹ruz蓹莽i: N枚vb蓹ti CS50, David haz谋rda onun baza halda unudur.
>> DAVID Malan: V蓹 g枚nd蓹rm蓹k nec蓹 il蓹 m蓹tn mesajlar谋 C. n蓹 -
>> [AYRI M蓹tn mesaj谋 B陌LD陌R陌艦 SOUNDS]