>> [MUSIC PLAYING]
DAVID J. MALAN: Bu kimi birinci seminar bu g眉n.
OLDU.
H蓹yata Bel蓹 ki, 莽ox ya臒谋艧l谋.
Bu 莽蓹r艧蓹nb蓹 ba艧 莽al谋艧谋r, lakin b眉t眉n daha 莽ox imkan
suallar 眉莽眉n bu g眉n.
Bel蓹 ki, h蓹qiq蓹t蓹n ba艧lamaq ed蓹k yaln谋z bir anda film.
Amma biz h蓹r zaman oldu臒u kimi 艧蓹stl蓹 ba艧lamaq laz谋md谋r.
>> Bu CS50 v蓹 bu H蓹ft蓹 4 sonu.
茝g蓹r seyr etdik 蓹g蓹r Bel蓹 ki, TV v蓹 ya bir film 莽谋xd谋臒谋
b蓹zi komp眉ter ekspertl蓹r var v蓹 polis, v蓹 ya FBI, v蓹 ya agentliyi
b蓹zi tutmaq 眉莽眉n 莽al谋艧谋r r蓹qib, yax艧谋, siz var
y蓹qin ki, "art谋rmaq" ifad蓹sini e艧itdim vasit蓹si texnik birt蓹h蓹r
magically sonsuz zooms cinay蓹tkarlar g枚rm蓹k 眉莽眉n uzaq
艧蓹xsiyy蓹t v蓹 ya plaka n枚mr蓹si Bir g眉zg眉 bel蓹 par谋lt谋l谋
v蓹 ya kimins蓹 g枚z glint.
Bel蓹 ki, h蓹qiq蓹t蓹n, bu n蓹z蓹r ed蓹k Hollywood bir ne莽蓹 bel蓹 s蓹hn蓹l蓹ri.
[Video playback]
-Yax艧谋, Indi siz蓹 yax艧谋 bir n蓹z蓹r almaq imkan verir.
>> Onu tutun.
Geri ax谋r.
>> -Bir d蓹qiq蓹 g枚zl蓹.
Do臒ru getm蓹k.
>> -Var Ki, dondurmaq.
-Tam ekran.
-Yax艧谋 Ki, dondurmaq.
Siz ki, ed蓹c蓹k -Tighten?
Ki,-da Vector geri t蓹k蓹r il蓹 o臒lan.
Burada bu yerind蓹 olan Zoom.
Do臒ru avadanl谋q -Il蓹, image geni艧l蓹ndirilmi艧 v蓹 itil蓹nmi艧 bil蓹r.
-Bu n蓹dir?
-Bu Bir geni艧l蓹ndirilm蓹si proqram.
Q蓹d蓹r h蓹r hans谋 bir ayd谋n -Can?
M蓹n bilmir蓹m.
Nin art谋rmaq ed蓹k.
>> G眉cl蓹ndirilm蓹si b枚lm蓹 A6.
>> -M蓹n 茝trafl谋 inki艧af etmi艧, and-- M蓹n hesab edir蓹m
art谋rmaq 眉莽眉n kifay蓹t q蓹d蓹r, M蓹nim ekran 眉莽眉n azad.
M蓹n onun g枚z 蓹ks art谋rm谋艧d谋r.
>> Ba臒谋n谋n bu run video geni艧l蓹ndirilm蓹si.
-Edgar, Bu g眉cl蓹ndir蓹 bil蓹r?
>> On -Hang.
>> Bu 蓹ks i艧l蓹yir -I've.
>> -Biri Nin 蓹ks.
-Reflection.
Insan谋n 眉z 蓹ks -Var var.
-Bu 茝ks.
Bir 蓹ks -Var var.
G眉zg眉 眉zr蓹 Zoom.
-Siz Bir 蓹ks bil蓹rsiniz.
Burada image art谋rmaq ed蓹 bil蓹r蓹mmi?
Burada onu art谋rmaq ed蓹 bil蓹r蓹mmi?
Siz onu art谋rmaq ed蓹 bil蓹r蓹mmi?
Siz onu g眉cl蓹ndir蓹 bil蓹r?
>> Bu art谋rmaq ed蓹 bil蓹r蓹mmi?
>> Siz onu art谋rmaq ed蓹 bil蓹r蓹mmi?
Bir ikinci tutun, m蓹n art谋rmaq laz谋md谋r.
Qap谋n谋 da Zoom.
10 ke莽ir.
Zoom.
Da Move.
-Daha.
G枚zl蓹yin dayand谋rmaq.
Stop.
Onu -Pause.
Biz蓹 75 d蓹r蓹c蓹 qay谋t 艧aquli 蓹traf谋nda edin.
Stop.
Hiss蓹si geri d枚n yenid蓹n qap谋, haqq谋nda.
>> Bitmap bil蓹r bir image G眉cl蓹ndirici-var?
>> -Hey, B蓹lk蓹 biz Pradeep istifad蓹 ed蓹 bil蓹rsiniz Sen 眉sul Windows g枚rm蓹k.
-Bu Proqram s蓹n蓹t d枚vl蓹tdir.
>> -Bu Eigenvalue off edir.
>> Sa臒 -Il蓹 alqoritm birl蓹艧m蓹si
>> O nin q蓹bul aradan qald谋r谋lmas谋 N枚vb蓹ti s蓹viyy蓹si alqoritml蓹r,
v蓹 m蓹n onlar谋 istifad蓹 ed蓹 bil蓹rsiniz Bu foto艧蓹kil art谋rmaq.
>> On Lock v蓹 z-ox geni艧l蓹ndirm蓹k.
>> G眉cl蓹ndirilm蓹si.
Freeze v蓹 art谋rmaq.
>> [END playback]
>> DAVID J. MALAN: B眉t眉n sa臒, bel蓹 ki, o b眉t眉n h蓹qiq蓹t蓹n s枚zl蓹ri var.
Onlar yaln谋z bir birlikd蓹 sinirli edirik h蓹qiq蓹t蓹n h蓹ssas deyil yol.
Bu kimi v蓹, 蓹slind蓹, CS50 v蓹 kurslar TV v蓹 film bir 莽ox m蓹hv 莽al谋艧谋r
sizin 眉莽眉n.
O komp眉ter m眉t蓹x蓹ssisl蓹ri, 莽眉nki 艧蓹rtl蓹ri off 艧aqq谋lt谋l谋 v蓹 s枚yl蓹y蓹r蓹k
kimi x眉lya 艧eyi eigenvectors, v蓹 z ox,
v蓹 dig蓹r h蓹r hans谋 bir say谋 h蓹qiq蓹t蓹n, 莽ox texniki 艧蓹rtl蓹r,
Onlar, h蓹qiq蓹t蓹n, yaln谋z stringing edirik s枚zl蓹ri birlikd蓹 b眉t眉n 莽ox tez-tez.
Bizim 眉mid biri oldu臒unu ki, alaraq kurslar谋 bir yan t蓹siri olaraq
bu kimi olacaq daha 莽ox insan D眉nya h蓹qiq蓹t蓹n 莽蓹kin bil蓹c蓹kl蓹r
v蓹 yaln谋z he莽 bel蓹 y眉ng眉l t蓹sir keyfiyy蓹tli v蓹 h蓹min filml蓹rin d蓹qiqliyi?
>> 茝slind蓹, 蓹slind蓹 bir n蓹z蓹r salaq.
Bel蓹 ki, burada hey蓹ti 艧蓹kil Mary, bizim t蓹dris yolda艧lar谋 biridir.
O g眉man bir 艧ey 艧眉bh蓹li.
V蓹 h蓹l蓹, i艧谋臒谋 var onun g枚z d蓹lil b蓹zi par莽a,
v蓹 ya onun g枚zl眉k 蓹ks.
B蓹li, biz filml蓹rin tam olaraq 蓹g蓹r biz zoom v蓹 "art谋rmaq" orada, t蓹klif,
Bu n蓹 q蓹d蓹r m蓹lumat Mary qar艧谋s谋nda deyil
Bir 艧蓹kil 莽蓹km蓹k zaman orijinal h蓹lli il蓹.
>> V蓹 蓹slind蓹, bu n枚qt蓹l蓹r bil蓹rsiniz.
Bu, n蓹 var adl谋 piksel, P-I-X-E-L-S,
olan ad蓹t蓹n yaln谋z bir kvadrat ki, bir 艧蓹kil b蓹st蓹l蓹yir bir dot edir.
V蓹 geri g眉n, v蓹, h蓹qiq蓹t蓹n, h蓹tta Bug眉nk眉 LED TV b蓹zi bu g眉n
v蓹 ya LCD TV, siz var, 蓹g蓹r Sizin otaq v蓹 ya evd蓹 bir,
Siz bu super yax谋n getm蓹k, v蓹 蓹g蓹r Bu bir q蓹d蓹r ya艧l谋 TV var, x眉susil蓹 d蓹 蓹g蓹r,
Siz y蓹qin ki, h蓹tta bu n枚qt蓹l蓹r bil蓹rsiniz ki, bir 艧蓹kil yaratmaq budur.
>> V蓹 he莽 bir daha 莽ox var Bu daha m蓹lumat.
Biz m蓹nada, "art谋rmaq" bil蓹r 眉z蓹rind蓹 v蓹 sort 艧eyi hamarlanmas谋
n枚v, sort n蓹 inferring r蓹ng Mary g枚z yan谋nda olmal谋d谋r
ki, h蓹qiq蓹t蓹n bel蓹 pixelated deyil.
Amma yak谋nla艧t谋rma saxlamaq 蓹g蓹r orada onun g枚z pis o臒lan deyil.
Kimi b眉t眉n m蓹lumat olduq.
Siz yarada bilm蓹z he莽 bir 艧ey h蓹yata m蓹lumat.
Yaln谋z m蓹hdud var orada bit say谋.
>> Problem Set 4, bel蓹 Siz imkan谋 var
D眉nyan谋n bu c眉r oynamaq.
Problem Set 4, siz ara艧d谋rmaq laz谋md谋r qrafika, v蓹 Suclari d眉nya,
v蓹 h蓹qiq蓹t蓹n kodu yazmaq ki, itirilmi艧 images b蓹rpa.
Siz kod yazmaq laz谋md谋r ki, m枚vcud images manipulates
v蓹 n蓹tic蓹d蓹 n蓹 anlamaq ba艧l谋q alt谋nda gedir.
>> V蓹 bu, bu, h蓹qiq蓹t蓹n var, 莽谋x谋r b眉t眉n m眉r蓹kk蓹b deyil.
M蓹s蓹l蓹n, 蓹g蓹r biz ist蓹di bir smiley face burada t蓹msil
bu qara piksel il蓹, v蓹 ya bu qara n枚qt蓹l蓹r,
yax艧谋, biz sad蓹c蓹 t蓹msil ed蓹 bil蓹r onlara h蓹qiq蓹t蓹n bitmap.
茝g蓹r 茝g蓹r ki e艧itmi艧 ifad蓹 bitmap, b蓹lk蓹
indi bir etm蓹k 眉莽眉n ba艧lay谋r az daha m蓹nada bu g眉n.
>> Biz art谋q bir az n蓹.
Bu 0 v蓹 ya 1 var.
V蓹 bir x蓹rit蓹 yaln谋z bir 艧ey deyil bir ka臒谋z par莽as谋 kimi
ki, istiqam蓹tl蓹ri verir v蓹 var b蓹lk蓹 x v蓹 y koordinatlar谋 bir grid.
Bel蓹 ki, burada bir bitmap edir.
Bu bit bir x蓹rit蓹 var qovu艧durma臒谋m谋z 1 y蓹qin deyil
a臒 pixel t蓹msil gedir, v蓹 0 qara pixel t蓹msil edir.
Amma biz, 蓹lb蓹tt蓹 ki, 蓹traf谋nda flip bil蓹r.
Bu h蓹qiq蓹t蓹n bel蓹 yoxdur biz ard谋c谋l etdiyiniz kimi uzun.
V蓹 burada daxili ikili, nec蓹 komp眉ter yadda艧, v蓹 ya h蓹tta daxili
sabit bir fayl drive-- saxlamaq bil蓹r
smiley face 艧蓹kill蓹r sad蓹.
Amma biz n蓹 var, 蓹lb蓹tt蓹, Bu 艧蓹kil yoxdur?
Color, sa臒?
Bu ayd谋n n枚vb蓹ti add谋m v蓹 ya geni艧l蓹ndirilm蓹si r蓹ng il蓹 bu yax艧谋la艧d谋r谋lmas谋 眉莽眉n.
Bel蓹 ki, t蓹蓹ss眉f ki, yaln谋z bir il蓹 bit, 0 v蓹 ya 1, biz r蓹ng t蓹msil ed蓹 bil蓹r.
Ki, q谋rm谋z谋 v蓹 ya mavi, v蓹 ya bil蓹r qara, ya a臒 v蓹 ya ya艧谋l v蓹 ya 莽蓹hray谋,
ya r蓹ng h蓹r hans谋 bir c眉t.
Amma sad蓹lik namin蓹 alaca臒谋q yaln谋z qara v蓹 a臒 da艧谋m谋r.
>> Bel蓹 ki, m蓹ntiqi, biz 蓹g蓹r ehtiyac n蓹 biz bir resim r蓹ng h蓹yata ke莽irm蓹k ist蓹yirsiniz?
Biz n蓹 etm蓹k laz谋md谋r?
Burada m蓹hdudla艧d谋ran amil 蓹g蓹r kimi ki, bir bit il蓹 yaln谋z bil蓹rsiniz edir
iki d枚vl蓹t, 0 v蓹 ya 1, a臒 t蓹msil v蓹 ya qara, n蓹 etm蓹k ist蓹yirsiniz?
Auditoriya: Daha data.
DAVID J. MALAN: Daha bit, B蓹li daha 莽ox m蓹lumat, daha 莽ox bit.
V蓹 h蓹qiq蓹t蓹n, m蓹hz nec蓹 r蓹ngli g枚r眉n眉艧l蓹r t蓹msil olunur.
Bir az istifad蓹 daha 莽ox bir 0 v蓹 ya h蓹r pixel 眉莽眉n 1, h蓹r dot,
Siz yaln谋z 莽ox istifad蓹 edin.
B蓹lk蓹, b蓹lk蓹, daha 莽ox, 8 istifad蓹 Problem Set, h蓹qiq蓹t蓹n 24 istifad蓹 v蓹
4, bir fayl il蓹 oynayacaq ad蓹t蓹n 24 bit istifad蓹 format.
>> Lakin sizin 蓹ks蓹riyy蓹tiniz y蓹qin ki, JPEGs il蓹 tan谋艧.
茝g蓹r q蓹bul etdik 茝g蓹r Telefonunuzda bir 艧蓹kil,
v蓹 ya da艧谋yanlar v蓹 ya bir 艧ey g枚r眉nd眉y眉 Facebook, v蓹 ya Flickr, h蓹r hans谋 bir say谋
foto-based web, siz var y蓹qin ki, 蓹vv蓹l bir JPEG image g枚r眉ld眉.
V蓹 bu fayl谋 莽谋x谋r format biz pset 4 istifad蓹 etm蓹k olacaq
vasit蓹si siz olacaq images b蓹rpa etm蓹k
M蓹n t蓹sad眉f蓹n bir silindi etdik ki, kamera bad yadda艧 kart谋,
Siz 蓹g蓹r.
>> V蓹 bu 莽谋x谋r ki, baxmayaraq ki, JPEG olduqca sophisticated-- deyil
Bu daha 莽ox inki艧af etmi艧 var qara v蓹 a臒 n枚qt蓹l蓹r 莽ox
var, 莽眉nki biz bir an 蓹vv蓹l g枚rd眉m h蓹qiq蓹t蓹n x眉lya alqoritml蓹r ki
bel蓹 ki, JPEG kompres 眉莽眉n istifad蓹 olunur Siz h蓹qiq蓹t蓹n g枚z蓹l ola bil蓹r ki,
keyfiyy蓹tli 艧蓹kil lakin istifad蓹 nisb蓹t蓹n az bit.
V蓹 biz geri g蓹lm蓹k laz谋md谋r uzun 蓹vv蓹l s谋x谋lma.
Bu ilk 莽谋x谋r ki, bir JPEG image-- 眉莽 bytes
olursa olsun bir foto艧蓹kil q蓹bul etdiyiniz n蓹 of-- d蓹y蓹rl蓹r 255, 216, 255 var.
>> Ba艧qa s枚zl蓹, 蓹g蓹r yaln谋z bit ki, model g枚rm蓹k,
眉莽 burada t蓹msil bytes, v蓹 ya 24 bit, c蓹mi
y眉ks蓹k ehtimal谋 il蓹 ki, n蓹tic蓹 莽谋xarmaq olar Bu ilk 眉莽 onu axtar谋r
bir JPEG bytes.
Bu n蓹 m蓹lum var edir bir JPEG imzas谋 kimi.
Fayl formatlar谋 bir 莽ox ba艧lamaq 眉莽眉n var edirl蓹r h蓹yata
0s v蓹 1s m眉蓹yy蓹n n眉mun蓹l蓹ri il蓹, ki, Windows v蓹 Mac OS v蓹 iOS, bel蓹 ki,
v蓹 Android bilm蓹k fayl n蓹 c眉r s枚zd蓹 fayl 蓹lav蓹 var
uzad谋lmas谋 fayllar谋 bir 莽ox var.
Siz .jpg varsa, ki Komp眉ter 眉莽眉n ba艧qa bir ipucu.
>> Bel蓹 ki, indi bu baxmaq ed蓹k daha texniki bir az.
Biz decimal bilirik Sistem 9 0.
Biz ikili 0 v蓹 1 bilirik.
V蓹 pset geri d眉艧眉n眉yorsan谋z 0, biz, siz g眉l蓹艧m蓹k idi
bir az bir 艧ey hexadecimal adl谋,
16 r蓹q蓹m oldu臒u, 蓹v蓹zin蓹 10 v蓹 ya 蓹v蓹zin蓹 2.
V蓹 o r蓹q蓹m, Konvensiya il蓹, sonra 9 vasit蓹sil蓹 0 var
f n蓹 t蓹msil f vasit蓹sil蓹 yaln谋z bir s眉r蓹tli a臒l谋 ba艧谋nda olma kimi bu say谋,
yoxlamaq?
Bel蓹 ki, 15.
V蓹 sad蓹c蓹, 10 t蓹msil etm蓹lidir M蓹n t蓹qdim etdik sifari艧 xarakteri.
Bu, yaln谋z bir ixtiyari konvensiya var lakin kifay蓹t q蓹d蓹r standart var.
>> Bu model baxmaq Bel蓹 ki 眉莽 ed蓹k bayt
yaln谋z baxmaq ba艧lay谋r nec蓹 uy臒un bir 艧蓹kild蓹
眉mumiyy蓹tl蓹 komp眉ter aliml蓹ri baxmaq v蓹 fayllar谋 haqq谋nda d眉艧眉n眉r蓹m.
Siz 蓹lb蓹tt蓹 ki, haqq谋nda d眉艧眉nm蓹k olar 0s fayllar谋, v蓹 1s v蓹 decimal,
lakin 蓹slind蓹, biz ikili istifad蓹 edirl蓹r v蓹 ya daha 莽ox ad蓹t蓹n hexadecimal--
geri pset 0.
Bel蓹 ki, m蓹n蓹 t蓹klif ed蓹k ki, 255, 216, v蓹 255 0s v蓹 1s yaln谋z bu n眉mun蓹l蓹rind蓹ndir.
V蓹 bu yoxlamaq ed蓹 bil蓹rsiniz H蓹ft蓹 0 riyaziyyat etm蓹k ist蓹yir蓹m.
Amma indi 眉莽眉n, yaln谋z g眉man Bu, h蓹qiq蓹t蓹n do臒ru deyil.
M蓹n yaln谋z 眉莽 decimal yenid蓹n etdik 眉莽 ikili d蓹y蓹rl蓹r n枚mr蓹l蓹ri.
陌ndi m蓹n n蓹 gedir蓹m edir yaln谋z bir a臒 bo艧luq 蓹lav蓹,
yaln谋z okunabilirlik xatirin蓹.
V蓹 bildiri艧, m蓹n yaln谋z gedir蓹m 艧eyi ayr谋 h蓹r蓹k蓹t etm蓹k.
Bel蓹 ki, 蓹vv蓹l, sonra, 蓹vv蓹l, sonra.
M蓹n dig蓹r maraql谋 bir 艧ey edir蓹m yaln谋z bel蓹 艧eyi yay谋lmas谋 莽ox
ki, bildiri艧 s蓹kkiz h蓹r set bit d枚rd bit iki d蓹st var.
Bu hexadecimal 莽眉nki faydal谋d谋r x眉susil蓹 d蓹bli
莽眉nki h蓹r bir hexadecimal r蓹q蓹mli 0 vasit蓹sil蓹 f, v蓹 ya daha 莽ox x眉susi 0 vasit蓹sil蓹 15,
t蓹msil oluna bil蓹r m蓹hz d枚rd bit il蓹.
Ba艧qa s枚zl蓹, hexadecimal 蓹g蓹r yaln谋z 0000, bir 0 t蓹msil etm蓹k ist蓹yir蓹m,
D枚rd adet s谋f谋r.
V蓹 15 t蓹msil etm蓹k ist蓹yirsinizs蓹, d枚rd bit olan 1111 deyil.
V蓹 riyaziyyat 蓹g蓹r, Bu is蓹 yer oldu臒u halda,
Bu, 16'lar yer ki, S蓹ninl蓹 verm蓹k olacaq
deyil ki, olacaq sorry to--, ikili,
15 verm蓹k olacaq, olanlar谋 yeri, ikil蓹r yeri, d枚rd ayaq v蓹 s蓹kkizinci yer.
M蓹n蓹 ki, t蓹klif ed蓹k sol, d枚rd bit set
biz f z蓹ng olacaq n蓹.
Bu 蓹n b枚y眉k say谋 siz D枚rd bit il蓹 t蓹msil ed蓹 bil蓹r.
V蓹 biz art谋q hexadecimal bilirik, f hexadecimal 蓹n b枚y眉k r蓹q蓹mdir.
Biz orada bir f var iki orada daha 莽ox.
V蓹 indi 眉莽眉n, yaln谋z iman etm蓹k M蓹n riyaziyyat h眉ququ etmi艧 oldu臒umuz
ki, sol yar谋m bu bit, 1101,
hexadecimal d eyni 艧eydir.
V蓹 sa臒, 1000, yaln谋z 8 var.
>> V蓹 asan ki, bir sa臒, g枚rm蓹k 眉莽眉n?
8 represents-- do臒ru ki, s蓹kkizinci yerd蓹 alt谋nda.
Bel蓹likl蓹, biz s蓹kkizinci s眉tun bir var v蓹 d枚rd ayaq, ikil蓹r v蓹 ya olanlar谋 he莽 bir 艧ey.
Bel蓹 ki, indi daha 莽ox 艧蓹rti, insanlar edirl蓹r ox艧ar hexadecimal r蓹q蓹m yazmaq,
yaln谋z onlara birlikd蓹 squish v蓹 sonra 0x il蓹 prefiks.
Bu ba艧qa he莽 bir 艧ey dem蓹kdir bir human-- vizual ipucu
Burada hexadecimal d蓹y蓹r, 莽眉nki g蓹lir ba艧qa ayd谋n ola bil蓹r.
>> Hans谋 ki, n蓹tic蓹d蓹, dem蓹k deyil adet s谋f谋r v蓹 olanlar谋 model
v蓹 ya hexadecimal model r蓹q蓹m equivalently sen ki,
axtar谋r ba艧lamaq 眉莽眉n gedir Problem Set 4 艧eyl蓹rdir deyil
v蓹 Problem Set 4 spec g蓹zm蓹k olacaq daha detail-- bu vasit蓹sil蓹
lakin oynamas谋ndan sort kimi h蓹yata Bu, ilk bax谋艧da ola bil蓹r
Bu bir 莽ox g枚r蓹n ba艧lamaq olacaq.
V蓹 蓹slind蓹, h蓹tta gdb, ay谋klama biz bazar ert蓹si t蓹qdim
v蓹 Dan pset 3, gedir t蓹qdim tez-tez hexadecimal d蓹y蓹rl蓹ri g枚st蓹rm蓹k 眉莽眉n
yaln谋z onlar daha 莽ox olur, 莽眉nki bu v蓹 ya ikili daha 艧蓹rti
komp眉ter d眉nyada.
陌ndi kontekstind蓹 bu qoymaq bildirin.
Bir 莽ox bu xat谋rlay谋ram bil蓹r of n蓹 g蓹ldi ki, burada 艧蓹kil?
Vista, bel蓹 ki, h蓹tta daha 蓹vv蓹l ki, Windows XP bu deb眉t etdi.
Bel蓹 ki, bu bir g枚z蓹l m蓹nz蓹r蓹 var.
V蓹 蓹slind蓹, online-- 蓹traf谋nda soxmaq 蓹g蓹r M蓹n bir Wikipedia article var ki,
orada kims蓹 莽ox q蓹rib蓹 莽谋xd谋 a艧kar d眉nyada bu yer qurmaq
onun kamera d蓹qiq sa臒 place--
v蓹 bu g眉n like-- g枚r眉n眉r, ancaq Bu eyni q蓹bulu var.
Bu 艧蓹kil, baxmayaraq ki, bir fayl var format adl谋 bitmap, b-m-p.
V蓹 biz bir super almaq olacaq o dem蓹kdir ki, n蓹 tez n蓹z蓹r.
>> Amma bitmap yaln谋z bir m眉xt蓹lif yolu t蓹msil images h蓹l蓹 piksel istifad蓹
0s v蓹 1s, n蓹tic蓹d蓹.
Amma tez bax谋艧da, o daha maraql谋 imza
fayl ba艧谋nda.
Bu, yaln谋z 眉莽 deyil bytes, daha var
bayt n眉mun蓹l蓹ri b眉t眉n d蓹st蓹 ki, m蓹nas谋 m眉蓹yy蓹n edirl蓹r.
M蓹s蓹l蓹n, bir yerd蓹 bir bitmap image ilk bir ne莽蓹 bayt
枚l莽眉s眉 olacaq image image eni,
image h眉nd眉rl眉y眉, bel蓹 ki, faydal谋 metadata, siz 蓹g蓹r.
Faydal谋 m蓹lumatlar Photoshop v蓹 ya h蓹r hans谋 qrafik istifad蓹 etdiyiniz proqram
h蓹qiq蓹t蓹n qay臒谋 bil蓹r.
>> Bu bar蓹d蓹 daha 莽ox Problem 4 Set, lakin bu
ki, yaln谋z G眉n眉n sonunda
Siz istifad蓹 etdiyiniz b眉t眉n fayl formatlar谋 il 蓹rzind蓹 Microsoft Word fayllar谋,
Numbers fayllar谋, Excel fayllar谋, fayl formatlar谋 h蓹r hans谋 bir say谋
ki, bir ola bil蓹r m蓹lum fayl uzant谋s谋
ba艧l谋q alt谋nda yaln谋z 0s v蓹 1s var.
V蓹 insanlar q蓹rar谋na g蓹ldik konvensiyalar n蓹,
n蓹 0s v蓹 1s n眉mun蓹l蓹ri t蓹msil Word, Excel fayl qar艧谋 fayl
dig蓹r fayl formatlar谋 bir s谋ra qar艧谋.
Pset 4 Bel蓹 ki, bir laz谋md谋r imkan il蓹 oynamaq.
>> Amma n蓹 bir struct var dem蓹k.
Bu indi h蓹qiq蓹t蓹n g枚z蓹l segue yaln谋z bir ne莽蓹 var daxil C,
蓹lav蓹 x眉susiyy蓹tl蓹ri ki, biz h蓹l蓹 baxd谋 yoxdur.
Bu olduqca ki莽ik dil v蓹 biri C g枚z蓹l x眉susiyy蓹tl蓹ri bir struct edir.
M蓹s蓹l蓹n, 蓹g蓹r ed蓹k represent-- ist蓹di
Bir d蓹yi艧蓹n etm蓹k ist蓹yirdi deyirl蓹r ki, b蓹zi proqramda bir t蓹l蓹b蓹 t蓹msil edir.
B蓹lk蓹 bir kurs yaz谋l谋 idi qeydiyyat proqram v蓹 ya 蓹sas al谋艧-veri艧
al蓹t, v蓹 ya kimi bir 艧ey.
Ba臒l谋 m蓹lumatlar谋n 蓹d蓹d hans谋lard谋r a臒la g蓹l蓹n bir t蓹l蓹b蓹 眉莽眉n nec蓹?
T蓹l蓹b蓹 kimi d蓹y蓹rl蓹r n蓹 il蓹 t蓹msil?
Evet?
Siz bir t蓹l蓹b蓹 kimi bir ad var.
Tipik t蓹l蓹b蓹 ba艧qa n蓹 var?
>> Auditoriya: [i艧itilemez]
>> DAVID J. MALAN: Bel蓹 ki, sorry.
>> Auditoriya: Age.
>> DAVID J. MALAN: An ya艧 v蓹 ya ad equivalently, yep.
Ba艧qa?
Auditoriya: ID say谋?
DAVID J. MALAN: B蓹lk蓹 bel蓹 bir 艧蓹xsiyy蓹t n枚mr蓹si, telefon n枚mr蓹si, b蓹lk蓹 bir yurt v蓹 ya ev,
kollec, v蓹 ya kimi bir 艧ey v蓹 ya.
M蓹lumatlar谋n 蓹d蓹d h蓹r hans谋 bir say谋 ki, Siz kontaktlar siyah谋s谋nda ola bil蓹r
t蓹l蓹b蓹 m眉蓹yy蓹n ed蓹 bil蓹r n蓹.
Biz kodu, bu etm蓹k ist蓹yirdi Bel蓹 ki, Biz bu kimi sad蓹 bir 艧ey ola bil蓹r.
Biz ki, bir proqram ola bil蓹r var, dem蓹k int 蓹sas (void) bildirin.
M蓹n bir t蓹msil etm蓹k ist蓹yirsinizs蓹, M蓹n, m蓹s蓹l蓹n, ola bil蓹r, t蓹l蓹b蓹,
ki, t蓹l蓹b蓹 ad谋 adl谋 simli, ki t蓹l蓹b蓹 眉莽眉n yurt adl谋 simli,
b蓹lk蓹 bir int ki t蓹l蓹b蓹 眉莽眉n ID 莽a臒谋r谋b.
M蓹n string istifad蓹 edir蓹m, 莽眉nki m蓹n cs50.h. geri getm蓹k v蓹 qoymaq laz谋md谋r
B蓹lk蓹 stdio.h laz谋md谋r gedir蓹m.
M蓹n蓹 preemptively o bunu bildirin v蓹 m蓹n indi bu student.c z蓹ng olacaq
bu edin.
>> 陌ndi bir 艧ey ed蓹 bil蓹rsiniz bu d蓹yi艧蓹nl蓹rin.
V蓹 biz yaln谋z yazmaq olacaq ki, yalan莽谋 kodu bir comment kimi,
maraql谋 deyil, 莽眉nki biz indi 眉莽眉n n蓹.
OK, bel蓹 ki, bu bir proqramd谋r ki, el蓹 bir t蓹l蓹b蓹 saklar.
M蓹n 蓹g蓹r n蓹 ist蓹yirsiniz m蓹n iki 艧agird saxlamaq ist蓹yirsiniz?
Bel蓹 ki, m蓹nim ilk instinkt gedir bir d蓹qiq蓹 g枚zl蓹yin, b眉t眉n sa臒 olmaq,
M蓹n bir t蓹l蓹b蓹 varsa, niy蓹 m蓹n deyil yaln谋z simli ad谋 2 string yurt 2 yoxdur,
int id2.
V蓹 biz getdi etdik Bu yolun 蓹vv蓹l a艧a臒谋
v蓹 g枚r眉n眉r n蓹 眉莽眉n h蓹ll n蓹 idi bir hackish sur蓹ti pastas谋 c眉r
burada i艧?
Auditoriya: bir s谋ra.
DAVID J. MALAN: B蓹li, biz bir s谋ra istifad蓹 ed蓹 bil蓹r.
Right bu 莽ox tez y枚nd蓹msiz olur.
Siz 枚zba艧谋na d眉zm蓹k laz谋md谋r bu d蓹yi艧蓹nl蓹rin b眉t眉n adland谋rma ba艧lay谋n.
V蓹 insan, saxlamaq laz谋md谋r OK name2 uy臒undur izlemek
dorm2 il蓹 id2 il蓹 uy臒undur.
Bu, sad蓹c蓹 bir mess olur.
Bel蓹 ki, bir 莽ox asand谋r bir ne莽蓹 h蓹ft蓹 蓹vv蓹l geri,
yaln谋z adl谋 simli adlar谋 olan v蓹 b蓹lk蓹 biz蓹 bu 眉莽 verir.
V蓹 sonra b蓹lk蓹 biz string yurdda v蓹 var
o 眉莽 v蓹 ya daimi il蓹, kimlikleri int v蓹 h蓹min 眉莽 var.
Lakin h蓹tta indi bu hiss bir az sloppy, do臒ru.
Biz h蓹l蓹 t蓹l蓹b蓹 v蓹 s枚hb蓹t edirik M蓹n, h蓹qiq蓹t蓹n, a艧a臒谋 s蓹viyy蓹d蓹 ya艧ay谋艧 al谋ram
h蓹yata ke莽irilm蓹si 蓹trafl谋.
t蓹l蓹b蓹 ad谋 v蓹 bir yurt v蓹 ID edir.
>> Niy蓹 yaln谋z bir d蓹yi艧蓹n elan ed蓹 bilm蓹z t蓹l蓹b蓹 adlan谋r v蓹 bu s z蓹ng.
M蓹n bir t蓹l蓹b蓹 ist蓹yirsinizs蓹, niy蓹 yaln谋z t demirik.
V蓹 ya b眉t眉n d蓹st蓹 ist蓹yirsinizs蓹 t蓹l蓹b蓹, niy蓹 yaln谋z deyil
M蓹n b眉t眉n sinif var dem蓹k t蓹l蓹b蓹l蓹r, v蓹 onlar谋n 眉莽 var.
Ba艧qa s枚zl蓹, niy蓹 g蓹l蓹 bil蓹r adl谋 枚z data n枚v眉 il蓹 q蓹d蓹r
艦agirdl蓹r, i莽蓹risind蓹 olan var bir ad, bir ID bir yurt var,
dig蓹r sah蓹l蓹rd蓹 h蓹r hans谋 bir say谋.
V蓹 bu 莽谋x谋r m蓹hz ed蓹 bil蓹rsiniz.
>> Bel蓹 ki, C struct adlanan bu x眉susiyy蓹t var.
Ki, bir dil x眉susiyy蓹t var ki, Biz蓹 m蓹hz bunu etm蓹y蓹 imkan verir.
M蓹n ir蓹li getm蓹k 眉莽眉n gedir蓹m v蓹 structs.h a莽maq
biz g枚rm蓹k olacaq harada t蓹l蓹b蓹 anlay谋艧谋na a艧a臒谋dak谋.
Bel蓹 莽谋x谋r - v蓹 bu bir daha var ID c蓹lb bir 莽ox sad蓹
bir an 蓹vv蓹l.
Siz il蓹 g蓹lm蓹k ist蓹yirsinizs蓹 Sizin ev data type,
v蓹 int 蓹lav蓹 v蓹 char v蓹 m枚vcud v蓹 b眉t眉n bu ba艧qalar谋 sal
Siz s枚z眉n bunu ed蓹 bil蓹rsiniz typedef struct yaz谋,
sonra b蓹zi q谋vr谋m a艧谋rma, olan daxilind蓹
Ist蓹diyiniz d蓹yi艧蓹nl蓹rin siyah谋s谋 Bu yeni x眉susi data 艧蓹rik
bir ad谋 v蓹 bir yurt kimi yaz谋n, v蓹 sonra q谋vr谋m a艧谋rma sonra
Yeni data n枚v眉 bir ad verin.
Bel蓹 ki, m蓹s蓹l蓹n, t蓹l蓹b蓹.
>> V蓹 indi bu bar蓹d蓹 g枚z蓹l ki, biz m眉vafiq kodu baxsaq,
ilk konqres, b眉t眉n bu qoymaq 眉莽眉n
bir fayl deyil蓹n bir 艧ey dot saat, biz bir header file,
莽ox 枚z眉m眉z眉 istifad蓹 ed蓹r蓹k ba艧lad谋.
Amma biz ba艧lamaq olacaq 陌ndi bir q蓹d蓹r istifad蓹.
V蓹 biz bu n蓹 ed蓹 bil蓹r, n蓹tic蓹d蓹, kodu bu bir ne莽蓹 x蓹tl蓹ri
d蓹qiq b蓹yan edir data type, t蓹l蓹b蓹.
陌ndi onu istifad蓹 ed蓹k.
>> 陌ndi getm蓹k 眉莽眉n gedir蓹m bir fayl structs1.c 莽a臒谋r谋b.
V蓹 bir n蓹z蓹r ed蓹k Burada bir ne莽蓹 x眉susiyy蓹tl蓹ri.
Bel蓹 ki, burada stuff deyil 蓹sas蓹n tan谋艧, v蓹 biz laz谋md谋r
n蓹 deyil qay谋da yaln谋z bir anda tan谋艧.
茝lb蓹tt蓹, bu m蓹nim 枚z daxil edir el蓹c蓹 d蓹 yeni header file,
pset 3 istisna olmaqla, Xat谋rladaq ki, biz helpers.h var.
Bel蓹 ki, # daxildir helpers.h xat谋rlay谋ram bil蓹r.
>> Niy蓹 olsa quotes istifad蓹 edir蓹m 蓹v蓹zin蓹 bucaql谋 m枚t蓹riz蓹l蓹r?
M蓹n onlar谋n aras谋nda se莽im ed蓹 bil蓹r蓹m?
Dem蓹k olar ki, h蓹mi艧蓹 g枚r眉n眉r bucaql谋 M枚t蓹riz蓹d蓹 istifad蓹 etm蓹k.
V蓹 sonra, bir b眉t眉n q蓹fl蓹t蓹n line alt谋 M蓹n ikiqat quotes istifad蓹 edir蓹m.
N蓹 ola bil蓹r?
Evet?
>> Auditoriya: [i艧itilemez]
DAVID J. MALAN: Bu, n蓹 faktiki var?
Auditoriya: Ki, IDE var.
DAVID J. MALAN: B蓹li, ki, m蓹nim faktiki IDE var.
V蓹 莽眉nki IDE dayanmaq deyil bildirin ki, yaln谋z m蓹n istifad蓹 edir蓹m bir arac谋d谋r.
M蓹nim cari var directory, x眉susi.
Bel蓹 ki, structs.h 枚z fayl IDE y眉kl眉 deyil,
蓹m蓹liyyat sistemi 枚z眉, 蓹ksin蓹 m蓹nim cari kataloq var.
Bel蓹 ki, Konvensiyan谋n ist蓹yirsinizs蓹 deyil 脰z header fayl daxil,
Yaln谋z ikiqat quotes istifad蓹 edin.
>> Biz bu 艧ey z蓹ng n蓹 line 8, 眉mumiyy蓹tl蓹?
Bu n蓹dir?
# m眉蓹yy蓹n bir 艧ey.
Bu h眉quq, sabitl蓹ri t蓹msil?
Bir ist蓹yirsinizs蓹 Proqram d蓹y蓹ri
Bir b眉t眉n istifad蓹 d蓹f蓹 d蓹st蓹, bu
onu amil Konvensiyan谋n yax艧谋 hash simvolu il蓹, b蓹yan
b眉t眉n konvensiya, sonra m眉蓹yy蓹n bu deyil, baxmayaraq word-- b枚y眉k v蓹
ciddi z蓹ruri, lakin insan konvensiya var
sabitl蓹ri kapitalla艧d谋rmaq onlar s谋莽ramaq ki
Siz yer visually-- v蓹 sonra ist蓹diyiniz d蓹y蓹r olmaq
ki, daimi ad谋 ekvivalent.
No n枚qt蓹li verg眉l, sad蓹c蓹 orada model edin.
>> Bel蓹 ki, n蓹 bu faktiki kodu edir蓹m.
Bel蓹 ki, bir n蓹z蓹r salaq Burada 蓹sas proqram.
Line 12 脟眉nki structs.h daxil,
M蓹n indi magically m蓹nim silinm蓹 yeni data n枚v眉.
M蓹n yaln谋z int 莽谋x谋艧谋 yoxdur v蓹 char v蓹 float, v蓹 simli,
v蓹 mavi v蓹 s.
陌ndi etm蓹k imkan谋 var t蓹l蓹b蓹 data type.
Line 12, m蓹n iki birl蓹艧蓹n al谋ram So , bir x眉susi data n枚v眉 v蓹 iki ideas--
bir s谋ra istifad蓹 ed蓹r蓹k.
V蓹 bu proqram 蓹g蓹r M蓹n, h蓹qiq蓹t蓹n, d蓹st蓹k ist蓹yir蓹m
脺莽 m眉xt蓹lif t蓹l蓹b蓹l蓹r m蓹nim proqram, m蓹n
M蓹n蓹 bir d蓹yi艧蓹n verm蓹k dem蓹k sad蓹c蓹 bil蓹r h蓹r biri adl谋 t蓹l蓹b蓹l蓹r,
n枚v眉 t蓹l蓹b蓹 olan M蓹nim x眉susi data n枚v眉d眉r.
V蓹, x眉susil蓹, m蓹n蓹 verm蓹k M蓹nim array h蓹min 眉莽.
>> Bel蓹 ki, indi biz bu proqram谋 n蓹 etm蓹liy蓹m?
Burada yaln谋z bir loop iterating 眉莽眉n var ki, 莽眉nki, 3 0
t蓹l蓹b蓹 d蓹y蓹ri n蓹.
M蓹n yaln谋z istifad蓹莽i isteyen al谋ram M蓹n蓹 t蓹l蓹b蓹 ad谋n谋 verir.
V蓹 sonra line 17, biz 蓹sas蓹n tan谋艧 x蓹tt var.
Bizim k枚hn蓹 dostumuz var Sa臒 GetString.
Sintaksis v蓹 n蓹 par莽a , y蓹qin yeni
茝vv蓹l C proqramla艧d谋r谋lm谋艧 he莽 vaxt varsa, v蓹 structs istifad蓹 he莽 vaxt?
Evet?
>> Auditoriya: .Ad谋.
DAVID J. MALAN: .Ad谋.
Amma bu, bir s谋莽ray谋艧 莽ox deyil 陌ndi t蓹l蓹b蓹l蓹r i bracket, 莽眉nki
siz i-ci t蓹l蓹b蓹 verir.
V蓹 dal谋艧 ist蓹yirsinizs蓹 ki, strukturu daxilind蓹,
Siz yaln谋z bir m眉dd蓹t istifad蓹 v蓹 sonra daxili d蓹yi艧蓹n ad谋,
v蓹 ya daxili 蓹mlak Siz 蓹ld蓹 etm蓹k ist蓹yir蓹m.
Eynil蓹 sonra, m蓹n sonra t蓹klif, 蓹g蓹r istifad蓹莽i m蓹n蓹 t蓹l蓹b蓹 yurd verm蓹k,
Siz eyni ki, bil蓹rsiniz daxili yurt d蓹yi艧蓹n string
t蓹l蓹b蓹 strukturunun.
>> 陌ndi h蓹r 艧eyi bir az x眉lya almaq.
Bu baxmaq 眉莽眉n gedir b蓹lk蓹 bir 莽ox olduqca tezlikl蓹.
Amma pset bu q蓹d蓹r daha 莽ox olacaq 4, bel蓹 ki, indi yaln谋z n蓹z蓹r ed蓹k.
Bu x蓹tt 23 vasit蓹sil蓹 莽谋x谋r ki, 38, m蓹n b蓹lk蓹 edir蓹m n蓹 d眉艧眉n眉rs眉n眉z?
M蓹n 艧蓹rh xaric etdik Bu g眉n, lakin versiyas谋
眉莽眉n online kod reference b眉t眉n yap谋lan yorumlar.
M蓹n bunu n蓹 g枚r眉n眉r?
>> Auditoriya: b眉t眉n fayl Saving istifad蓹莽i daxil m蓹lumat.
>> DAVID J. MALAN: B蓹li, m蓹hz, bu yeni bir yoldur
biz iki g枚rd眉kd蓹 ki, C ba艧qa bir x眉susiyy蓹t,
vasit蓹si M蓹n 枚z fayllar谋 yarada.
Bu g眉n蓹 q蓹d蓹r, dem蓹k olar ki, h蓹r bir proqram yazd谋q Siz v蓹t蓹nda艧l谋臒谋 olmayan edir.
Kimi tezlikl蓹 莽al谋艧an h蓹yata kimi, ki, var.
He莽 bir yadda艧 v蓹 ya onun xatir蓹 var.
Xilas he莽 bir fayl var.
Amma ist蓹yirsiniz 蓹g蓹r var daxil saxlamaq
Bir oyun v蓹 ya bir proqram kimi, ba艧 Bu kimi, biz bunu ed蓹 bil蓹rsiniz 莽谋x谋r.
V蓹 bu daha 莽ox laz谋md谋r pset 4 v蓹 B枚lm蓹.
Amma bu x蓹tt 23 mahiyy蓹tc蓹 students.csv adl谋 bir fayl yarad谋r.
V蓹 蓹vv蓹l bu g枚rm眉艧蓹m bil蓹r.
茝vv蓹l CS t蓹dqiq he莽 etdik, h蓹tta, CSV virg眉lle ayr谋lm谋艧 d蓹yi艧蓹nl蓹r var.
Bu, 莽ox yoxsul insan谋n kimi Excel fayl versiyas谋
bu da a莽谋la bil蓹r o dem蓹kdir ki, Excel v蓹 Apple N枚mr蓹l蓹r,
v蓹 sat谋r ve s眉tun var.
Amma bu x眉susi deyil Microsoft v蓹 ya Apple kimi format.
Bu ay谋ran yaln谋z verg眉ll蓹ri var biz bir anda g枚r蓹c蓹ksiniz d蓹y蓹rl蓹r.
>> V蓹 yaln谋z bir tahmin edir.
脟ox x蓹tti 23-da sonunda, m蓹nim ikinci d蓹lil
adlanan bu yeni funksiya f fayl谋 a莽maq 眉莽眉n a莽谋qd谋r w edir.
W n蓹 i艧ar蓹 ola bil蓹r?
Evet?
>> Auditoriya: Bu fayl yazmaq imkan verir?
>> DAVID J. MALAN: Bu imkan verir Siz fayl yazmaq.
Bel蓹 ki, variantlar bir ne莽蓹 var ki, biz burada plug bil蓹r.
Amma yaln谋z oxumaq ist蓹yirsinizs蓹 fayl ki, ona baxmaq
v蓹 yadda艧 onu oxumaq yaln谋z quote d谋rna臒谋 ba臒lamaq "r" istifad蓹 edin.
Siz yazmaq ist蓹yirsinizs蓹, fayl, siz "w" d谋rna臒谋 ba臒lamaq quote istifad蓹 edin.
Orada da 蓹lav蓹 edir v蓹 dig蓹r 艧eyi bir ne莽蓹
m枚vcud fayllar谋 d蓹yi艧dirm蓹k ist蓹yirsinizs蓹.
陌ndi biz bu g枚r蓹n saxlamaq olacaq 24 s谋ralamaq 眉莽眉n bir 艧ey, biz geri g蓹lm蓹k laz谋md谋r.
NULL, bu 莽谋x谋r, var x眉susi d蓹y蓹r ki,
m眉蓹yy蓹n funksiyalar谋 il蓹 geri bil蓹r bir 艧ey wrong-- getdi 蓹g蓹r
fayl m枚vcud deyil, 蓹g蓹r, yadda艧 t枚k眉lm蓹k olsan谋z,
dig蓹r s蓹hvl蓹r v蓹 ya bir d蓹st蓹.
Amma indi 眉莽眉n, yaln谋z bu ki, g眉man ed蓹k yaln谋z 艧蓹rti s蓹hv yoxlan谋lmas谋 edir.
Burada line 26, m蓹n iterating al谋ram 0-dan b眉t眉n t蓹l蓹b蓹l蓹r 眉z蓹rind蓹 3.
V蓹 bu sort c眉r yeni funksiyas谋, fprintf,
lakin yaln谋z bir tahmin edir.
Printf yaln谋z 莽ap 蓹g蓹r bi莽imlendirilmi艧 string,
fprintf y蓹qin ki, n蓹 dem蓹kdir?
Auditoriya: bir fayl yazd谋r谋n.
DAVID J. MALAN: Print bir fayl bi莽imlendirilmi艧 string.
茝lav蓹 n蓹 var f dem蓹kdir fayl.
V蓹 yeni ilk d蓹lil olmal谋d谋r fayl t蓹msil d蓹yi艧蓹n.
Sonra biz yaln谋z bir format var yaln谋z printf kimi string.
V蓹 h蓹tta bu olsa syntax bu yaln谋z yeni,
t蓹l蓹b蓹 ad谋 plug dem蓹kdir, t蓹l蓹b蓹 yurt plug-in, sonra
fclose il蓹, fayl ba臒lay谋n.
V蓹 sonra bu yeni lastly-- v蓹 biz bu geri g蓹lm蓹k laz谋md谋r
M蓹n azad edir蓹m long-- 蓹vv蓹l s蓹b蓹bl蓹rd蓹n t蓹l蓹b蓹
ki, orada yuxar谋da ba艧 verib.
Amma biz geri g蓹lm蓹k laz谋md谋r ki, long-- 蓹vv蓹l
莽眉nki GetString n蓹 q蓹d蓹r var h蓹qiq蓹t蓹n ba艧l谋q alt谋nda 莽al谋艧谋r.
>> Bel蓹 ki, burada tez n蓹z蓹r salaq.
M蓹n kataloq ls yaz谋n 蓹g蓹r, M蓹n bunu ki, qeyd
, students.csv adl谋 bir fayl var yaln谋z orada yoxdur.
M蓹n indi bu proqram t蓹rtib Bel蓹 ki, , structs-1 olun. / Structs-1,
M蓹n ir蓹li getm蓹k v蓹 yaz谋n gedir蓹m Yale Berkeley ya艧ay谋r Andi.
Biz Rob olacaq olan bu g眉n Thayer ya艧ay谋r.
V蓹 burada il蓹 g蓹lm蓹k imkan , m蓹n hesab edir蓹m ki, Maria, Mather edir
蓹g蓹r m蓹n do臒ru xat谋rlad谋m.
>> Bel蓹 ki, he莽 bir 艧ey ba艧 g枚r眉n眉r.
Amma indi ls yaz谋n 蓹g蓹r, students.csv var.
Nin ir蓹li v蓹 a莽谋q students.csv ged蓹k.
Bu yenid蓹n 莽ox deyil y眉ng眉l fayl format.
Amma sad蓹c蓹 bir konvensiya q蓹bul etdik ki, m蓹n burada iki sat谋r ve s眉tun var.
ilk s眉tun edir insanlar谋n adlar谋.
陌kinci s眉tun t蓹l蓹b蓹 deyil yurt, v蓹 ya kollec, v蓹 ya ev v蓹 ya etajer.
V蓹 indi bu xilas etdik daimi bir fayl.
>> Bel蓹 ki, b眉t眉n maraql谋 deyil.
Amma bu yaln谋z bir step da艧 indi m蓹lumat davam ed蓹 olan
daimi.
Bel蓹 ki, indi n蓹 daha biz g枚r蓹k bu v蓹 dig蓹r x眉susiyy蓹tl蓹ri il蓹.
Lakin ilk, h蓹r hans谋 bir sual谋n谋z?
Ki, bir 莽ox idi ki, s眉r蓹tli idi.
Amma bir 莽ox g枚r蓹c蓹ksiniz pset 4 daha, h蓹m d蓹.
Evet?
>> Auditoriya: bir yol var ki, fayl adlar谋 蓹lav蓹 davam?
>> DAVID J. MALAN: Yax艧谋 suald谋r.
Davam etm蓹k 眉莽眉n bir yolu var m谋 ki, fayl adlar谋 蓹lav蓹?
B蓹li.
V蓹 蓹slind蓹, ba艧a 蓹g蓹r up, fayl谋 a莽谋lmas谋
Siz quote istifad蓹 edir d谋rna臒谋 ba臒lamaq "a" 蓹lav蓹 etm蓹k 眉莽眉n,
olan yaln谋z yeni x蓹tt 蓹lav蓹 ed蓹c蓹k bir yeni x蓹tt t蓹krar, d蓹qiq.
Yax艧谋 suald谋r.
Dig蓹r suallar?
Evet?
Auditoriya: siz qa莽d谋 varsa proqram谋 yenid蓹n indi,
bu adlar谋 蓹lav蓹 saxlamaq olard谋 fayl v蓹 ya yeni bir fayl a莽maq olar?
>> DAVID J. MALAN: Ah, yax艧谋 sual.
Siz yen蓹 sa臒 proqram qa莽d谋 蓹g蓹r 陌ndi, b蓹lk蓹 yeni adlar tipli,
Bu fayl 蓹lav蓹 ed蓹c蓹k v蓹 ya fayl 眉zerine?
Sonuncu, m蓹n deyil蓹m, 莽眉nki 茝lav蓹 rejimi istifad蓹.
M蓹n yaln谋z kor-koran蓹 deyil蓹m, 莽眉nki yazmaq 眉莽眉n fayl谋 a莽谋lmas谋,
yaln谋z fayl 眉zerine olacaq.
Bel蓹likl蓹, m蓹n, h蓹qiq蓹t蓹n, 蓹lav蓹 n蓹 etm蓹k laz谋md谋r ki, M蓹n, h蓹qiq蓹t蓹n, uzun m眉dd蓹t etm蓹k ist蓹yirsinizs蓹
veril蓹nl蓹r bazas谋.
>> 陌ndi CSV h蓹tta s蓹mimi, faydal谋 kimi de臒ilseniz writing--
v蓹 biz n蓹hay蓹t bu g枚r眉rs眉n眉z sonra zaman d枚vr
dig蓹r m蓹qs蓹dl蓹r 眉莽眉n CSVs istifad蓹 edin.
Siz insanlar谋n b眉t眉n saxlamaq ist蓹yirsinizs蓹 olan b蓹zi hadis蓹 眉莽眉n qeydiyyatdan
v蓹 ya t蓹l蓹b蓹 眉莽眉n imzalanm谋艧 qrup, v蓹 ya kimi bir 艧ey,
bu c眉r m蓹lumatlar谋n saxlan谋lmas谋 format super rahatd谋r.
S枚z眉n 脟眉nki, m蓹n 蓹g蓹r Bu fayl谋 y眉kl蓹m蓹k 眉莽眉n idi.
M蓹n double-- bil蓹r v蓹 nin 蓹slind蓹 bu c蓹hd ed蓹k
M蓹n burada Excel v蓹 ya N枚mr蓹l蓹r varsa.
>> M蓹n sa臒-klik gedir蓹m v蓹 ya fayl n蓹zar蓹t bas谋n.
Whoops.
Sa臒 bas谋n v蓹 ya fayl n蓹zar蓹t bas谋n.
Hadi, m蓹nim si莽an 蓹m蓹kda艧l谋q deyil.
M蓹n gedir蓹m DOWNLOAD bel蓹 ki, burada b眉t眉n fayllar谋 y眉kl蓹m蓹k
yaln谋z m蓹n bu bir qamarlamaq bil蓹r.
Bu i艧l蓹ri nin g枚r蓹k students.csv-- ilk d蓹f蓹
M蓹n aktiv etdik.
陌ndi onlar m蓹nim 蓹laq蓹 g枚rm蓹k ist蓹yirik.
陌ndi qeydiyyatdan laz谋md谋r.
Bu CSVs istifad蓹 etm蓹k n蓹 q蓹d蓹r asan oldu?
B蓹li, bu g眉n蓹 q蓹d蓹r saxlamaq.
OK, indi biz sinfi 眉莽眉n haz谋r谋q.
Oh, OK, yeni n蓹 var?
OK, yax谋n.
Ki, sehrli idi.
OK, indi biz yenil蓹m蓹 var.
V蓹 indi, bu unuttum n蓹 M蓹n ilk a莽谋lan fayl,
lakin a-- biz getm蓹k.
OK, bel蓹 ki, indi biz bir Excel fayl var.
T蓹艧蓹kk眉r edir蓹m.
>> OK, m蓹n bel蓹 n蓹 asan hiss蓹si idi.
T蓹bii ki 枚nceden g枚t眉rm眉艧 ola bil蓹r Excel, v蓹 ya N枚mr蓹l蓹r, v蓹 ya h蓹r hans谋 proqram.
Amma bu, 莽眉nki, g枚z蓹l indi manipulyasiya ed蓹 bil蓹r
standart formatda data.
>> Bel蓹 ki, indi ed蓹k kontekstind蓹 biz off sol harada ke莽m蓹k
ba艧lamaq 眉莽眉n idi son d蓹f蓹, t蓹lim t蓹k蓹rl蓹r 莽谋xarmaq.
Amma ilk, siz etm蓹di Bu 蓹vv蓹ll蓹r nahar g枚rm蓹k
yenid蓹n Yan臒谋n burada ba艧 v蓹 New Haven Cambridge, Sitar buz.
ASAP CS50s sayt谋nda qeydiyyatdan CS50 t蓹l蓹b蓹 v蓹 hey蓹tin蓹 qatmaq 眉莽眉n.
>> Bel蓹likl蓹, biz t蓹lim t蓹k蓹rl蓹r etdi bazar ert蓹si off Bu a艧a臒谋dak谋 kimi
string elan edildi Bir m眉dd蓹t CS50s kitabxana.
Bu imkan verir, 莽眉nki bu, g枚z蓹l Biz蓹 kimi d蓹yi艧蓹nl蓹r haqq谋nda dan谋艧maq
tam s枚z v蓹 c眉ml蓹l蓹r v蓹 daha 莽ox.
Amma bu m枚vcud deyil simli 莽谋x谋r.
Bu yaln谋z bir sinonimi v蓹 ya l蓹q蓹bidir, biz bir 艧ey yaratd谋q ki,
蓹slind蓹 bir az daha 莽ox texniki * Bir char 莽a臒谋r谋b.
>> H蓹qiq蓹t蓹n, biz n眉mun蓹 g枚rd眉m bazar ert蓹si proqram谋
ki, g枚zl蓹diyimiz olduqca kimi davranmaq etm蓹yib.
Bu m眉qayis蓹-0, fayl idi.
V蓹 蓹g蓹r m眉qayis蓹-0 geri M蓹n Bazar ert蓹si proqram derleyece臒iz
v蓹 run-0 m眉qayis蓹 v蓹 ana yaz谋n daha ki莽ik ki莽ik v蓹 ana.
Proqram I israr f蓹rqli 艧eyl蓹r yaz谋n,
h蓹tta ana, b眉t眉n baxmayaraq ki莽ik, vizual eynidir.
Bel蓹 ki, q谋sa cavab n蓹 idi komp眉ter d眉艧眉n眉r n蓹 眉莽眉n
bu iki strings m眉xt蓹lif var?
Evet?
>> Auditoriya: [i艧itilemez]
DAVID J. MALAN: Sa臒.
Bel蓹 ki, ana, first time M蓹n olunur, onu yaz谋n
m蓹nim komp眉ter yerd蓹 saxlan谋l谋r yadda艧 lakin m眉xt蓹lif yerd蓹
ikinci d蓹f蓹 daha m蓹n ana yaz谋n.
陌ndi 蓹lb蓹tt蓹 optimize bil蓹r.
komp眉ter a臒谋ll谋 ola bil蓹r v蓹 , hey, bu iki strings h蓹yata
Onlar eyni ist蓹yirik.
M蓹n蓹 redundantly onu saxlamaq ed蓹k.
Lakin komp眉ter bunu etm蓹yin optimalla艧d谋r谋lmas谋 onlara dem蓹k halda.
Bel蓹 ki, ismar谋clar谋, onlar yaln谋z ba艧a gedir
yadda艧谋nda iki m眉xt蓹lif yerl蓹rd蓹.
Bel蓹 ki, daha 莽ox ayd谋n olmaq biz iki strings m眉qayis蓹
ilk 莽a臒谋r谋ld谋 s, ikinci 莽a臒谋r谋ld谋
t, x眉susil蓹 m蓹n n蓹 idi line 13-d蓹 burada m眉qayis蓹?
B蓹li.
>> Auditoriya: Bu yadda艧 yer d蓹yi艧蓹n qeyd ed蓹c蓹k.
>> DAVID J. MALAN: M蓹hz, m蓹n yadda艧 yer m眉qayis蓹
ki, h蓹min d蓹yi艧蓹nl蓹rin i艧ar蓹 etdi.
Bel蓹 ki, x眉susil蓹, 蓹g蓹r ana idi byte say谋 1, 2 v蓹 3,
v蓹 4-- 莽眉nki backslash xat谋rlay谋ram 0 sonunda b眉t眉n yol olmal谋d谋r.
V蓹 ana, m-o-metr dig蓹r instansiya, 10, 11, 12, v蓹 13 idi.
I 1 m眉qayis蓹 olunmu艧dur ki, 眉nvan, yadda艧 ki, yeri,
10 qar艧谋 olan a莽谋q-ayd谋n deyil, eyni.
1 10 deyil.
>> Bel蓹 ki, bu ki, g枚z蓹l bu, olduqca sad蓹.
Amma bu kimi insofar problem var biz strings m眉qayis蓹 眉莽眉n g枚r眉n蓹 bilm蓹z.
Bel蓹 ki, fundamentally-- v蓹 bu a艧a臒谋 s蓹viyy蓹d蓹,
Siz h蓹yata ke莽irm蓹k ist蓹yirdi bir proqram m眉qayis蓹 etm蓹k
iki ayr谋 s枚zl蓹ri istifad蓹莽i keyfiyy蓹ti tipli
Onlar 眉莽眉n char x蓹tti yoxdur yaln谋z 眉mumi bax谋m谋ndan char,
n蓹 biz, y蓹qin, n蓹 etm蓹k laz谋md谋r?
Bu, sad蓹c蓹 kifay蓹t q蓹d蓹r deyil bu iki 眉nvana bax谋n.
Biz n蓹 etm蓹k laz谋md谋r?
Evet?
>> Auditoriya: vasit蓹sil蓹 t蓹krarlamaq string [i艧itilemez].
>> DAVID J. MALAN: B蓹li, ed蓹k simli vasit蓹sil蓹 t蓹krarlamaq.
Nin loop, bir m眉dd蓹t loop 眉莽眉n istifad蓹 ed蓹k, v蓹 ya Siz 蓹n rahat oldu臒unuz n蓹.
V蓹 biz bir yerd蓹 iki strings var, 蓹g蓹r yadda艧, bir-birinin baxaq
ilk xarakteri, sonra h蓹r ikinci var xarakteri, sonra 眉莽眉nc眉 v蓹 d枚rd眉nc眉,
v蓹 be艧inci biz hit q蓹d蓹r n蓹 x眉susi sentinel d蓹y蓹r?
Auditoriya: [i艧itilemez]
DAVID J. MALAN: B蓹li, backslash s谋f谋r ya simli hans谋 n枚qt蓹d蓹
biz ki, var se莽蓹 bil蓹rsiniz.
Biz h蓹r bir xarakter e艧lemeli var?
茝g蓹r, saxta qay谋tmaq.
茝g蓹r bel蓹dirs蓹, do臒ru qay谋tmaq.
V蓹 bel蓹 ki, n蓹 bu versiyas谋 d蓹qiq Proqram谋n m眉qayis蓹-1.c yoxdur.
Bu eynidir biz M蓹n var istisna olmaqla, Bazar ert蓹si baxd谋
baxmayaraq s枚z string xilas kazan谋lm谋艧 ki, he莽 bir funksional impact-- var
陌ndi edir蓹m qald谋r谋r b蓹zi vizual t蓹lim diskl蓹r,
lakin ayd谋n g枚rm蓹k s v蓹 t 眉nvanlar谋 var.
V蓹 n蓹 ulduz var ulduz, t蓹msil
bir 眉nvan ba艧qa tan谋nan, daha texniki bir g枚st蓹rici kimi.
>> Bel蓹 ki, m蓹n s b蓹yan zaman line 9 v蓹 char * s dem蓹k,
m蓹n蓹 bir string verm蓹k dem蓹k deyil.
M蓹n蓹 onun bir d蓹yi艧蓹n verm蓹k dem蓹kdir h蓹yat m蓹qs蓹di 眉nvan saxlamaq 眉莽眉n.
M蓹n qoymaq haqq谋nda am 莽眉nki bu bir simli 眉nvan谋.
H蓹qiq蓹t蓹n, GetString olmaq ayd谋n, bir simli qay谋tmaq deyil.
Bu ana qay谋tmaq deyil backslash s谋f谋r, 枚zl眉y眉nd蓹.
X眉susi n蓹 GetString edir v蓹 d蓹qiq qay谋tmaq?
Auditoriya: [i艧itilemez]
DAVID J. MALAN: An 眉nvan, ilk xarakterli 眉nvan谋
b蓹zi simli bu kazan谋lm谋艧 etmi艧dir.
V蓹 indi biz g枚rd眉kd蓹 daha x眉susi bir s枚z.
V蓹 m蓹n bu 蓹vv蓹ll蓹r 眉莽眉n alluded.
Bu yax艧谋 konqres olacaq indi t蓹krar g枚r蓹c蓹ksiniz ki.
Hesab edir蓹m ki, 蓹min etm蓹k yoxlan谋lmas谋 al谋ram s null deyil v蓹 t null deyil.
H蓹qiq蓹t蓹n, m蓹nim 蓹sas谋nda 脟眉nki tez qeyd 蓹vv蓹l,
GetString deyil qaytar谋r 蓹g蓹r dem蓹k bil蓹r n蓹 bir 眉nvan lakin yen蓹 N-U-L-L,
b蓹zi x眉susi d蓹y蓹r?
>> Auditoriya: Error.
>> DAVID J. MALAN: Bu bir s蓹hv deyil.
Bir 艧ey yanl谋艧 getdi.
V蓹 n蓹 ad蓹t蓹n x眉susil蓹, ba艧 ver蓹 bil蓹r
strings-- olan ola bil蓹r advance-- nam蓹lum uzunlu臒u
b蓹lk蓹 komp眉ter " yadda艧, b蓹lk蓹
Siz bel蓹 bir Y谋臒d谋臒谋n谋z Uzun s枚z v蓹 ya c眉ml蓹
v蓹 ya bel蓹 b枚y眉k bir esse yap谋艧d谋r谋l谋r yaln谋z kifay蓹t q蓹d蓹r yadda艧 var.
V蓹 bel蓹 GetString geri bilm蓹z b眉t眉n 艧ey 眉nvan,
bel蓹 ki, yaln谋z bir 艧ey qaytar谋r.
V蓹 bir s蓹hv ba艧 verib x眉susi NULL d蓹y蓹ri qaytar谋lmas谋 il蓹.
Bu, bel蓹 dan谋艧maq, s谋f谋r 眉nvan谋 var.
>> 陌ndi 莽谋x谋r C il蓹 g蓹lir ki, iteration yoxdur f蓹aliyy蓹t g枚st蓹rir.
Biz bu h蓹yata yoxdur loop v蓹 ya bir m眉dd蓹t loop 枚z眉m眉z 眉莽眉n.
Biz bir funksiyas谋 istifad蓹 ed蓹 bil蓹rsiniz, m眉f蓹ss蓹l adl谋,
kimin, comp t蓹rp蓹nm蓹k, v蓹 ya simli m眉qayis蓹 h蓹yat m蓹qs蓹di m蓹hz bunu edir.
Siz bu iki g枚st蓹ricil蓹rin蓹, iki 眉nvanlar谋n谋 verir, v蓹 bu 眉nvanlara ged蓹c蓹k
v蓹 sonra 眉莽眉n m蓹ktub m眉qayis蓹 keyfiyy蓹ti h蓹rf 眉莽眉n m蓹ktub,
do臒ru n蓹 yaln谋z dayand谋r谋lmas谋?
Daxil蓹n comp t蓹rp蓹nm蓹k laz谋md谋r zaman , yaln谋z ayd谋n iterating olmaq dayand谋rmaq?
Bu bir backslash 0 xit zaman bil蓹rsiniz simli, hans谋 n枚qt蓹d蓹 bu q蓹rar q蓹bul ed蓹 bil蓹r
h蓹r 艧ey, e艧lemeli v蓹 ya bir uy臒unsuzluq olmu艧dur?
>> Biz indi bu run 蓹g蓹r Bel蓹 ki, c蓹hd Bizim ki莽ik kapitalla艧ma oyun
bel蓹 m眉qayis蓹-1, ./compare-1 etm蓹k v蓹 ki莽ik iki d蓹f蓹 ana yaz谋n.
陌ndi eyni 艧ey.
V蓹 m蓹n bir daha bunu 蓹g蓹r ki莽ik v蓹 sonra b蓹lk蓹 b枚y眉k.
陌ndi h蓹qiq蓹t蓹n f蓹rql蓹ndirir yuxar谋 v蓹 ki莽ik aras谋nda.
Bel蓹 ki, b眉t眉n a臒谋r ya sehrli, lakin indi izah edir
n蓹 ba艧l谋q alt谋nda olacaq.
>> Bel蓹 ki, daha biz 莽谋xar谋艧 bil蓹r n蓹 D蓹rsin bu c眉r?
Bel蓹 ki, bu n蓹z蓹r salaq.
M蓹n ir蓹li getm蓹k v蓹 bir yazmaq 眉莽眉n gedir蓹m s眉r蓹tli proqram burada sur蓹ti 0 莽a臒谋r谋b.
陌ndi ir蓹li v蓹 h蓹qiq蓹t蓹n ged蓹k , sur蓹ti-0 艧eyl蓹rdir ed蓹k
M蓹n burada var n蓹 bir g枚z at谋n.
M蓹n ilk istifad蓹莽i dem蓹k, bir 艧ey dem蓹k.
Sonra m蓹n bir string almaq v蓹 m蓹n s saxlan谋l谋r.
S b蓹rab蓹rdir 蓹g蓹r m蓹n yoxlamaq NULL b蓹rab蓹rdir, yaln谋z 1 qay谋tmaq.
Bel蓹 ki, bu yaln谋z standart s蓹hv yoxlan谋lmas谋 edir.
Maraql谋 bir 艧ey ba艧 verib.
V蓹 蓹slind蓹, biz s蓹hv xilas 蓹g蓹r yoxlan谋lmas谋, bu h蓹ft蓹 1 kodu kimi g枚r眉n眉r
bu anda.
Amma bir almaq 眉莽眉n a莽谋lm谋艧 etdik bu bar蓹d蓹 daha az.
>> 陌ndi line 16, bir h蓹ft蓹 蓹vv蓹l, b蓹lk蓹 h蓹tta bir ne莽蓹 g眉n v蓹 ya d蓹qiq蓹 蓹vv蓹l,
Siz line 16 dey蓹 bil蓹r adl谋 d蓹yi艧蓹n t yarad谋lmas谋
v蓹 莽谋xarmaq onu s.
V蓹 bir m眉k蓹mm蓹l var a臒labatan paket.
Amma indi daha d蓹qiq ola bil蓹r.
Line 16 n蓹 ba艧 verir?
N蓹 sitemizi olur sa臒 sol?
Evet?
Auditoriya: t s 眉nvan谋 蓹ld蓹 edilir?
>> DAVID J. MALAN: M蓹hz, t s 眉nvan谋 olur.
M蓹n getm蓹k 蓹g蓹r Bel蓹 ki, indi ayd谋n olmaq geri ki, 蓹vv蓹ll蓹r M蓹s蓹l蓹n
v蓹 m蓹n 莽ap etdik 艧ey c蓹lb edir.
M蓹n tipli n蓹 in-- burada, v蓹 burada
M蓹n haradasa 莽ap etdik n蓹 yadda艧, mom and sonra backslash
M蓹nim 眉莽眉n 蓹lav蓹 edib 0.
M蓹n burada saxlan谋l谋r, geri Bu, yeri 1, 2, 3, 4 edir
bu s haz谋rda n蓹.
Line 16 Bel蓹 ki, m蓹n蓹 verm蓹k dem蓹k ba艧qa d蓹yi艧蓹n adl谋 t v蓹 ma臒aza
s d蓹y蓹ri il蓹, n蓹 burada saxlan谋l谋r olur ana olmayacaq
deyil, yaln谋z 1 n枚mr蓹li.
>> Bu proqramda ir蓹li baxmaq Bel蓹 ki 陌ndi n蓹 ba艧 ver蓹c蓹k?
Bel蓹 ki, var ki, qeyd Bu funksiya bil蓹r
Sezar 眉莽眉n bir m眉dd蓹t 蓹vv蓹l bu istifad蓹, v蓹 ya Vigenere, v蓹 ya b蓹lk蓹 deyil, b眉t眉n.
M蓹n deyil蓹m, m蓹nim printf il蓹 iddia sur蓹ti t kapitalla艧d谋rmaq gedir.
Birinci x蓹tt 19, s眉r蓹tli a臒l谋 ba艧谋nda olma il蓹 , t strlen yoxlay谋r uzunlu臒u edin.
M蓹n ist蓹mir蓹m, 莽眉nki bir kapitalla艧d谋rmaq 眉莽眉n c蓹hd edin
蓹g蓹r he莽 bir string var.
Istifad蓹莽i yaln谋z Enter hit varsa, kapitalla艧d谋rmaq 眉莽眉n he莽 bir 艧ey yoxdur.
Bel蓹 ki, x蓹tt 21 etm蓹k ist蓹mir蓹m.
Bel蓹 ki, line 21 h蓹rfl蓹 olan y蓹qin m蓹ktub, t?
>> Auditoriya: m?
DAVID J. MALAN: g枚r眉n眉r kimi 莽谋xarmaq olan biri?
Auditoriya: m.
DAVID J. MALAN: Uh, m.
OK, ilk m ki, M蓹n x蓹b蓹ri 莽眉nki
, toupper 眉莽眉n ke莽蓹n hans谋 Siz onu g枚rm蓹mi艧蓹m, 蓹g蓹r bu
yaln谋z bir funksiyas谋 onun giri艧 kimi kapitalla艧d谋rmaq.
t bracket s谋f谋r verm蓹k dem蓹kdir M蓹n蓹 t s谋f谋r xarakter.
V蓹 bel蓹 ki, nec蓹 bu yoxdur 艧蓹kil d蓹yi艧ikliyi, ayd谋n olmaq?
N蓹 yenid蓹n v蓹 ya d蓹yi艧diril蓹 almaq laz谋md谋r s h枚rm蓹t v蓹 t v蓹 anas谋 il蓹
backslash s谋f谋r.
>> Auditoriya: [i艧itilemez]
>> DAVID J. MALAN: B蓹li, bu bir burada sad蓹c蓹
艧eyl蓹rdir d眉zeltmek to-- d蓹yi艧di almaq laz谋md谋r kapital m d蓹yi艧ib almaq laz谋md谋r.
Amma indi, sonra baxmaq proqram, M蓹n 莽ap 蓹g蓹r
M蓹n burada t蓹miz kimi v蓹 t, n蓹 bax谋n s v蓹 t 莽ap ba艧 ver蓹c蓹k.
Bel蓹 ki, sur蓹ti-0, ./copy-0 edir.
M蓹n蓹 davam v蓹 yaz谋n imkan b眉t眉n ki莽ik ana.
Qeyd ed蓹k, h蓹m d蓹 orijinal v蓹 sur蓹ti kapitalla艧d谋r谋l谋r edilmi艧dir.
Niy蓹?
Yax艧谋, s v蓹 t, h蓹m d蓹 i艧ar蓹 olunur, Siz, yadda艧 eyni y谋臒谋n.
V蓹 s蓹mimi, bu olur H蓹qiq蓹t蓹n fakt谋 uninteresting--
Biz burada 眉nvan s谋f谋r istifad蓹 etdiyiniz.
M蓹n dem蓹k, m蓹n, h蓹qiq蓹t蓹n, qay臒谋 yoxdur burada stuff yadda艧 var.
Ba臒谋艧lay谋n m蓹n bir az 莽ox pozulma, qaralama edir蓹m.
Lakin m蓹n, h蓹qiq蓹t蓹n, qay臒谋 yoxdur h蓹r 艧eyi yadda艧谋nda oldu臒u.
Bel蓹 ki, h蓹qiq蓹t蓹n n蓹 proqram莽谋lar haqq谋nda hesab edirl蓹r
Siz haqq谋nda dan谋艧maq zaman ki, bir 眉nvan谋 v蓹 ya bir g枚st蓹rici,
bu yadda艧 oldu臒u kimin umurunda.
Bu da var, 蓹g蓹r m蓹n qay臒谋 yoxdur byte bir v蓹 ya bir milyard.
M蓹n yaln谋z bu ki, qay臒谋 d蓹yi艧蓹n s蓹m蓹r蓹li
yadda艧 ki, y谋臒谋n i艧ar蓹.
Bel蓹 ki, bundan sonra, daha 莽ox s枚z oyunu ixtiyari yadda艧 眉nvanlar谋 眉z蓹rind蓹 ed蓹k
yaln谋z g枚st蓹ricil蓹rin蓹 莽蓹km蓹k ba艧lamaq oxlar kimi g枚st蓹ricil蓹r kimi.
Bel蓹 ki, t h蓹qiq蓹t蓹n, n蓹 oldu Bu proqrama 蓹sas蓹n,
M蓹n t yarad谋lm谋艧d谋r nec蓹 g枚r蓹 yaln谋z iki ayr谋 d蓹yi艧蓹nl蓹r var
yadda艧 eyni y谋臒谋n i艧ar蓹.
Onlar harada v蓹 biz qay臒谋 yoxdur.
Bel蓹likl蓹, biz m眉c蓹rr蓹d 眉z ki, 蓹trafl谋 bil蓹rsiniz.
>> Bel蓹 ki, nec蓹 bu d眉zeltmek edirsiniz?
M蓹n sur蓹ti bir versiyas谋 yazmaq ist蓹yirsinizs蓹 Proqram 蓹slind蓹 n眉sx蓹 string
v蓹 yaln谋z capitalizes sur蓹ti, yaln谋z daxil蓹n,
n蓹 var ki, bir olmaq Bizim h蓹ll t蓹rkib?
Auditoriya: [i艧itilemez]
DAVID J. MALAN: Biz n蓹 laz谋md谋r?
Auditoriya: yadda艧 Chunk.
DAVID J. MALAN: Biz laz谋md谋r yadda艧 bir y谋臒谋n, sa臒?
Biz bilmirik nec蓹 m眉tl蓹q h蓹l蓹 bunu.
Amma c眉r bel蓹 bu ba艧 laz谋md谋r ki, a艧a臒谋 halda orijinal ana
yadda艧 蓹lav蓹 y谋臒谋n ild蓹 ba艧a 莽at谋r.
V蓹 sonra m蓹n sur蓹ti d蓹yi艧dirm蓹k zaman, m蓹n Burada bu sur蓹ti d蓹yi艧dirm蓹k ist蓹mir蓹m.
M蓹n 蓹v蓹zin蓹 yaln谋z bu d蓹yi艧m蓹k ist蓹yirsinizs蓹 sur蓹ti ki, orijinal d蓹yi艧m蓹z.
>> Bel蓹 ki, biz bunu ed蓹 bil蓹r nec蓹 ed蓹k.
Sur蓹ti-1, art谋q 艧蓹rh l眉t edilmi艧dir,
lakin online 艧蓹rh olunur.
Biz yerin蓹 a艧a臒谋dak谋lar谋 edin bu n蓹 x蓹tl蓹ri eyni, m蓹n蓹 bir string almaq
v蓹 s z蓹ng.
Amma indi bizim 蓹n biri baxaq kompleks lakin m眉r蓹kk蓹bliyi son
biraz 眉莽眉n, line 16 m蓹hz bu yoxdur.
Il蓹 rahat, 蓹g蓹r bel蓹 艧蓹kil biz yaln谋z drew--
m蓹n蓹 yadda艧 yeni bir y谋臒谋n verm蓹k onu h蓹r 艧eyi sur蓹ti
Biz kodu ki, t蓹rc眉m蓹 nec蓹 ed蓹k.
>> Bel蓹 ki, line 16, sol t蓹r蓹find蓹, char * t burada m蓹n蓹 bu kutuyu verir.
Bu n蓹 b眉t眉n var.
Sa臒 t蓹r蓹find蓹, m alloc v蓹 ya malloc,
super x眉lya yadda艧 ayr谋lmas谋 deyil, yaln谋z dey蓹r蓹k bir sirli yol
M蓹n蓹 yadda艧 y谋臒谋n verir.
Biz n蓹 q蓹d蓹r yadda艧 laz谋md谋r?
B蓹li, b枚y眉k bir ifad蓹 n枚v眉d眉r.
Amma burada deyir n蓹 ed蓹k.
Bel蓹 ki, bu, 蓹lb蓹tt蓹, verir M蓹n蓹 s simli uzunlu臒u.
Bel蓹 ki, ana n蓹 olmal谋d谋r?
Bel蓹 ki, yaln谋z 眉莽, sa臒? ana 眉莽 simvol var.
Siz say谋lmaz backslash s谋f谋r siz蓹
bu bir simli uzunlu臒u haqq谋nda dan谋艧maq h蓹qiq蓹t蓹n insan g枚r眉n蓹n m蓹ktublar.
Bel蓹 ki, ana, bel蓹 ki, bu 3 m蓹n蓹 verir.
Amma indi 1 蓹lav蓹 edir蓹m, bir d蓹qiq蓹 g枚zl蓹yin.
Niy蓹 h蓹qiq蓹t蓹n ist蓹yir蓹m 4 bayt v蓹 yaln谋z 3 ay谋racaq?
Evet?
>> Auditoriya: sentinel d蓹y蓹r 眉莽眉n?
>> DAVID J. MALAN: M蓹hz, ki sentinel d蓹y蓹r.
Backslash s谋f谋r 眉莽眉n, I 4 bayt c蓹mi laz谋md谋r.
Bel蓹 ki, uzunlu臒u laz谋md谋r simli plus 1.
V蓹 sonra yaln谋z yax艧谋 measure-- 眉莽眉n h蓹tta bu sistemi olsa da,
Bu h蓹mi艧蓹 m蓹n deyir蓹m 1 var olacaq bir char 枚l莽眉s眉 bu 莽oxaltmaq.
Sizeof 莽谋x谋r C operator ki
yaln谋z siz蓹 deyir var bayt say谋
m眉蓹yy蓹n bir veri n枚v眉 眉莽眉n t蓹l蓹b olunur.
Bu seriallar谋n 眉莽眉n i艧 deyil, ad蓹t蓹n, b蓹z蓹n bunu edir.
Amma 眉mumi halda, no.
脟ox bytes nec蓹 Amma bu m蓹n蓹 izah ed蓹c蓹k 莽谋x谋r char, h蓹mi艧蓹 1-dir.
Bel蓹 ki, bu 1-vurulmas谋 kimi.
>> Kod Bel蓹 ki, super sirli axtar谋r line.
Amma bunu b眉t眉n verir M蓹n蓹 yadda艧 y谋臒谋n.
Amma bu 莽谋xarmaq g枚r眉n眉r deyil ki, yadda艧 daxil bir 艧ey?
H蓹l蓹 yox.
V蓹 bel蓹 x蓹tt 22-d蓹 m蓹n n蓹, v蓹 23, 24, 25, yax艧谋, m蓹n sad蓹c蓹 bunu.
Bu sort edir 陌ndi k枚hn蓹 m蓹kt蓹b stuff.
Bu pset 2, kimi Siz 艧eyi h蓹r蓹k蓹t edirik
蓹traf谋nda yadda艧, daha do臒rusu strings.
>> Bel蓹 ki, 0-dan iterating al谋ram string s uzunlu臒u.
M蓹n i-ci xarakter 莽谋xarmaq al谋ram t i-ci xarakter s.
V蓹 m蓹n, 莽眉nki, proqram莽谋 etdi tam olaraq bir 莽ox bayt ayr谋lmas谋 蓹min
M蓹n laz谋m kimi, m眉k蓹mm蓹l bir-bir 蓹laq蓹l蓹r.
V蓹 m蓹n ana sur蓹ti yeni bir ki莽ik.
V蓹 sonra n蓹hay蓹t, m蓹n bu x蓹tti yoxdur.
V蓹 bel蓹 t蓹siri yaln谋z Burada bu t kapitalla艧d谋rmaq.
Bel蓹 ki, bir 莽ox udmaq, lakin Yaln谋z n蓹z蓹r蓹 alsaq
h蓹qiq蓹t蓹n n蓹 olacaq ba艧l谋q alt谋nda
yaln谋z bu h蓹r蓹k蓹t edir b眉t眉n 蓹traf谋nda bayt
Bu problem h蓹ll etm蓹k 眉莽眉n t蓹l蓹b olunur yaln谋z biz蓹 yadda艧 bu y谋臒谋n verm蓹k.
陌ndi riski b枚y眉k, m蓹n蓹 g枚st蓹rm蓹k bildirin
dem蓹k olar ki, var bir ba艧qa n眉mun蓹 bu bir istisna olmaqla, eyni
kod line.
Bel蓹 ki, bu hacker versiyas谋 Bu proqram, siz olacaq.
Amma yaln谋z 莽蓹km蓹k imkan Bu neler daxil.
Line 24 Bu t olmaq 眉莽眉n istifad蓹 bracket i s bracket i al谋r.
陌ndi bu d蓹yi艧蓹n al谋ram daha 莽ox sirli ulduz t
plus 1 ulduz s plus 1 b蓹rab蓹rdir.
>> Bel蓹 ki, n蓹 v蓹 niy蓹 biz bir ulduz xarakter var?
Biz 蓹vv蓹l ulduz g枚rd眉m, Bu f蓹rqli burada istifad蓹 olunur.
Biz 蓹vv蓹ll蓹r indi g枚r眉r蓹m, char * g枚rd眉m Bir 蓹vv蓹lind蓹 ulduz, v蓹 OK.
Biz 莽谋x谋r, 莽眉nki c眉r yaln谋z n蓹tic蓹 莽谋xarmaq olar
o ilk prinsipl蓹ri neler.
Bel蓹 ki, yaln谋z ayd谋n olmaq, s n蓹dir?
脰t蓹n h蓹ft蓹, bir string idi.
Ki, art谋q kifay蓹t deyil.
X眉susi, s n蓹dir?
>> Auditoriya: [i艧itilemez]
>> DAVID J. MALAN: Bu bir g枚st蓹rici var.
Bu 眉nvan谋 var ilk xarakter biz yaz谋lm谋艧.
OK, t n蓹dir?
>> Auditoriya: [i艧itilemez]
>> DAVID J. MALAN: ilk byte 眉nvan谋
t, yadda艧 ki, y谋臒谋n yenid蓹n b枚l眉艧d眉r眉l眉r.
Bel蓹 ki, 莽谋x谋r ki, zaman simli q蓹d蓹r 0 t蓹krarlamaq
uzunlu臒u ilk n枚vb蓹d蓹, i 莽眉nki 0 off ba艧lay谋r
loop 艧ey 眉莽眉n bu k枚hn蓹 m蓹kt蓹b.
Bel蓹 ki, yaln谋z sad蓹lik 眉莽眉n, ed蓹k kodu ilk x蓹tti g眉man
h蓹qiq蓹t蓹n, yaln谋z bu, do臒ru deyil.
I s谋f谋r 蓹lav蓹, s谋f谋r olarsa bir 艧ey ehtimalla
t蓹sir etm蓹k niyy蓹tind蓹 deyil.
>> Bel蓹 ki, bu s枚z n蓹dir?
Bu ulduz 莽谋x谋r ki, bu 莽蓹r莽iv蓹d蓹 operator
dereference edir yaln谋z operator,
getm蓹k dey蓹r蓹k bir x眉lya yolu a艧a臒谋dak谋 眉nvana.
Bel蓹 ki, 蓹g蓹r ilk 眉nvan谋 yadda艧 bu y谋臒谋n xarakter,
* s dem蓹kdir getm蓹k.
V蓹 biz t蓹rtib etdik, 莽眉nki bu 艧蓹kild蓹 艧蓹kil,
Siz q蓹bul ed蓹 bil蓹r ruhi model a艧a臒谋dak谋.
Bu s, v蓹 * s * s dem蓹k olarsa c眉r oluklar v蓹 N蓹rdivanlar kimi,
Siz u艧aql谋qdan oyun xat谋rlay谋ram, ki arrow edin v蓹 getm蓹k kimi
眉nvana.
>> * T eyni 艧eydir.
Bel蓹 ki, burada ba艧lamaq, onun y谋臒谋n gedin.
M蓹n yaln谋z c蓹lb ed蓹 bilm蓹z Bu ekran ki, yol.
* T burada getm蓹k dem蓹kdir.
V蓹 sonra, loop 眉莽眉n yaln谋z , burada bu xarakter h蓹r蓹k蓹t s枚yl蓹y蓹r蓹k
Burada bu xarakter h蓹r蓹k蓹t, Burada bu xarakter h蓹r蓹k蓹t.
Amma nec蓹 ki, incrementation etm蓹liy蓹m?
M蓹n yaln谋z silindi n蓹 geri laz谋md谋r.
Bu ad蓹t蓹n deyirl蓹r n蓹 g枚st蓹rici hesab olan
眉nvanlar谋 il蓹 riyaziyyat dem蓹kdir.
>> 茝g蓹r, bu loop 眉莽眉n, M蓹n incrementing saxlamaq
v蓹 s bir 眉nvan谋 v蓹 t bir deyil 眉nvan, m蓹n yaln谋z 1 蓹lav蓹 saxlamaq 蓹g蓹r,
yaln谋z ir蓹li h蓹r蓹k蓹t saxlamaq dem蓹kdir, v蓹 ir蓹li, v蓹 yadda艧 ir蓹li.
Bu Oxford Street kimi, CS bina edir k眉莽.
CS binalar 33 Oxford Street edir.
Bel蓹 ki, 蓹g蓹r 33 etm蓹k idi Oxford Street plus 1,
34 Oxford sizi g蓹tirir Street, sonra 35 Oxford Street,
sonra 36 Oxford Street, n蓹 o binalar, h蓹qiq蓹t蓹n, - onlar varsa.
V蓹 bel蓹 ki, biz yap媒yorsun b眉t眉n var burada g枚st蓹rici hesab il蓹.
>> Bel蓹 ki, bir super gizli yoldur 枚z眉m眉z眉 ifad蓹.
Lakin b眉t眉n ba艧 ver蓹n ba艧l谋q alt谋nda
yaln谋z bu 眉nvanlar谋 izl蓹yir, bir x蓹rit蓹 a艧a臒谋dak谋 kimi Siz,
v蓹 ya kimi oxlar a艧a臒谋dak谋 biz ekranda t蓹rtib etdik.
OK, bir 莽ox h蓹zm.
Sintaksis haqq谋nda sual, anlay谋艧lar, g枚st蓹ricil蓹r, malloc, v蓹 ya kimi.
B蓹li, burada ilk.
>> Auditoriya: Bel蓹 ki, burada * t toupper * t b蓹rab蓹rdir deyir
kapitalla艧d谋rmaq gedir ki, b眉t眉n m蓹ktublar v蓹 ya izlersin
>> DAVID J. MALAN: Ah, h蓹qiq蓹t蓹n yax艧谋 sual.
Burada bu x蓹tt Bel蓹 ki, 31, bu kapitalla艧d谋rmaq gedir
ilk m蓹ktubu v蓹 ya m蓹ktublar b眉t眉n.
Bel蓹 ki, gedir ki, cavab ver蓹k geri ilk prinsipl蓹rin蓹.
V蓹 burada ilk prinsipl蓹ri dem蓹k yaln谋z 蓹sas anlay谋艧lar getm蓹k
c蓹lb n蓹.
Bel蓹 ki, toupper bir funksiyas谋 var ki, bir char capitalizes.
Bu ham谋s谋d谋r.
* T first-- getm蓹k dem蓹kdir t 脺nvan gedin.
Bel蓹 ki, 艧蓹kil, bu y谋臒谋n 蓹g蓹r yadda艧 biz malloc il蓹 ayr谋lan,
bu t * t burada getm蓹k dem蓹kdir edir.
>> Bu arada, siz ke莽蓹n edirik ki, d蓹y蓹ri, ki莽ik m
toupper 眉莽眉n, geri al谋r谋q kapital M, harada qoyulmas谋 olunur?
Siz eyni yerd蓹 onu qoyulmas谋 edirik.
V蓹 h蓹min o m蓹ntiqi il蓹 茝sas anlay谋艧lar yaln谋z var
ilk m蓹ktub h蓹rfl蓹 Siz i v蓹 ya A t蓹krarlamaq halda
loop v蓹 ya bir m眉dd蓹t loop 眉莽眉n, bu niyy蓹tind蓹 deyil Siz xahi艧 daha 莽ox 艧ey etm蓹k.
Yax艧谋 suald谋r.
Evet?
>> Auditoriya: Niy蓹 istifad蓹 etm蓹di metodu daha 莽ox dereference
array?
>> DAVID J. MALAN: Ah, yax艧谋 sual.
Niy蓹 dereference istifad蓹 edir 蓹v蓹zin蓹 array metodu?
No x眉susi s蓹b蓹b vicdanl谋 olmal谋d谋r.
V蓹 蓹slind蓹, bu M蓹s蓹l蓹n c眉r, sa臒,
M蓹n yaln谋z edilm蓹si m眉bahis蓹 al谋ram daha m眉r蓹kk蓹b proqram,
daha g枚zl蓹r 眉z蓹rind蓹 cam olunur insanlar h蓹yata yoxlan谋lmas谋
Bu, super gizli g枚r眉n眉r, 莽眉nki h蓹tta eyni 艧ey bunu baxmayaraq.
Bel蓹 ki, s蓹mimi, bu bir laz谋ms谋z vizual kompleks h蓹lli
problemin.
>> Bu, h蓹l蓹 yax艧谋 dizayn var Be艧 dizayn be艧 h蓹yata,
Bu bracket olub notation v蓹 ya g枚st蓹rici notation.
Biz almaq zaman, x眉susil蓹 d蓹 ancaq sonra kurs pset 5
ki, l眉臒蓹t h蓹yata zaman ki, M蓹n d蓹f蓹 t蓹krar bir ne莽蓹 qeyd etdik
biz, h蓹qiq蓹t蓹n, qay臒谋 laz谋md谋r a艧a臒谋 s蓹viyy蓹d蓹 yadda艧 眉nvanlar谋
Biz, h蓹qiq蓹t蓹n, ba艧a d眉艧眉r眉k ki, n蓹 ba艧 verir.
>> Amma indi 眉莽眉n, bu 莽谋x谋r ki, code burada kvadrat m枚t蓹riz蓹d蓹 x蓹tti
h蓹qiq蓹t蓹n yoxdur.
Onlar deyirl蓹r n蓹 var sintaktik 艧蓹k蓹r olan
dey蓹r蓹k bir weirdly s蓹rin yoldur compiler kvadrat m枚t蓹riz蓹d蓹 olmaq 莽evirir
ki, riyazi ifad蓹sidir.
Bel蓹 ki, bir insan konvensiya var yaln谋z yazmaq etm蓹k
bu 莽ox istifad蓹莽i dostu m枚t蓹riz蓹d蓹.
Amma n蓹 compiler, cingilti, h蓹qiq蓹t蓹n he莽 bir zaman edir
Siz line qeyd n蓹 yazmaq 24 ba艧l谋q alt谋nda bu, h蓹qiq蓹t蓹n var
Bu konvertasiya.
Bu bir insan kimi yaln谋z daha l蓹zz蓹tli var oxumaq v蓹 line 24 kimi kod yazmaq 眉莽眉n.
Amma n蓹tic蓹d蓹 o t蓹lim t蓹k蓹rl蓹r 莽ox off g蓹lib
枚z rahatl谋q g眉cl眉 olur zaman.
>> B眉t眉n h眉quqlar, bel蓹 ki, bu geri 蓹n b枚y眉k problem c眉r idi
biz qa莽d谋.
V蓹 bu b眉t眉n s蓹b蓹b n蓹 g枚st蓹ricil蓹r haqq谋nda l蓹n蓹tl蓹m蓹k s枚hb蓹t,
v蓹 眉nvanlar谋, v蓹 莽谋xarmaq 艧eyl蓹r.
Biz art谋q tak谋ld谋m 莽眉nki bu idi Bu axmaq, axmaq m蓹s蓹l蓹 vasit蓹si
M蓹n Lauren il蓹 logically-- h蓹yata burada demo v蓹 porta臒al 艧ir蓹si q蓹d蓹r
milk-- bir m眉k蓹mm蓹l algorithmically d眉zg眉n funksiyas谋
iki d蓹yi艧蓹nl蓹rin "d蓹yi艧dirm蓹 眉莽眉n d蓹y蓹rl蓹r, lakin l蓹n蓹tl蓹m蓹k 艧ey
H蓹r hans谋 bir davaml谋 v蓹 ya etm蓹yib m蓹nim kodu daimi, t蓹siri.
>> V蓹 niy蓹 n蓹 idi?
脰zetle, niy蓹 bu svop h蓹yata ke莽irilm蓹si
m蓹ntiqi do臒ru, lakin he莽 bir t蓹siri var bu q蓹bul olunur d蓹yi艧蓹nl蓹rin,
蓹sas 眉莽眉n x v蓹 y kimi?
M蓹s蓹l蓹nin mahiyy蓹t n蓹 idi?
Evet?
Auditoriya: d蓹yi艧蓹n etdi, 莽眉nki pass d蓹yi艧蓹n sur蓹tl蓹ri
funksiyas谋 vasit蓹sil蓹.
>> DAVID J. MALAN: M蓹hz, zaman ke莽ir funksiyas谋 daxil d蓹yi艧蓹nl蓹r, v蓹 ya d蓹lill蓹ri
funksiyas谋 daxil, onlar sur蓹ti, ke莽diyi hans谋
Siz axtar谋r eyni almaq dem蓹kdir x v蓹 y 眉莽眉n bit model,
bir v蓹 b burada 莽a臒谋r谋b.
V蓹 bir 艧ey ed蓹 bil蓹rsiniz bu n眉sx蓹 il蓹 ist蓹diyiniz,
lakin onlar he莽 bir olacaq z蓹ng funksiyas谋 t蓹sir.
V蓹 蓹slind蓹, biz 莽蓹kdi ekran, geri 艧蓹kil
Sonuncu d蓹f蓹 vasit蓹si 蓹g蓹r h蓹qiq蓹t蓹n n蓹 haqq谋nda d眉艧眉nm蓹k
蓹g蓹r hood-- alt谋nda gedir bu, komp眉ter yadda艧
v蓹 a艧a臒谋 y谋臒谋n yadda艧, 蓹sas 眉莽眉n istifad蓹 olunur
Bu y谋臒谋n yadda艧, svop 眉莽眉n istifad蓹 olunur
v蓹 bel蓹 olsa 蓹sas var iki d蓹yi艧蓹nl蓹rin, x v蓹 y,
svop eyni axtar谋r ola bil蓹r 1 v蓹 2 h蓹m olan d蓹y蓹rl蓹ri,
lakin onlar tamamil蓹 ist蓹yirik yadda艧 m眉xt蓹lif chunks.
>> Bel蓹likl蓹, biz bu h蓹ll laz谋md谋r.
V蓹 s蓹mimi, indi biz ki, g枚r眉n眉r sa臒, bu problemin h蓹lli var.
Biz indi imkan谋 varsa URL yolu il蓹 艧eyi manipulyasiya
v蓹 sort oluklar v蓹 N蓹rdivanlar style, bu oklar谋 edin
v蓹 biz ist蓹yirik h蓹r yerd蓹 getm蓹k yadda艧, biz bilm蓹di
bu problemi h蓹ll 茝sas ke莽蓹n d蓹yi艧dirm蓹k 眉莽眉n
Biz d蓹y蓹rl蓹r ist蓹yirik svop, ancaq daxil蓹n
biz 蓹v蓹zin蓹 d蓹yi艧dirm蓹k ke莽蓹 bil蓹r?
>> [S茝SL茝R陌 INTERPOSING]
>> DAVID J. MALAN: Niy蓹 biz yaln谋z deyil sa臒 眉nvanlar谋 ke莽m蓹k?
Niy蓹 biz m眉badil蓹 a vermir x蓹zin蓹 x蓹rit蓹, Siz,
ki, ona r蓹hb蓹rlik edir faktiki d蓹y蓹rl蓹r x v蓹 y.
G蓹lin svop, h蓹qiq蓹t蓹n d蓹yi艧蓹 o orijinal bit deyil,
yaln谋z bit sur蓹tl蓹rini ke莽蓹n.
Bel蓹 ki, 蓹slind蓹, n蓹 var ged蓹n h蓹ll olmal谋d谋r.
Bu versiya burada ayd谋n pis v蓹 flawed.
陌ndi, ilk bax谋艧dan, bu, yaln谋z g枚r眉n眉r kimi biz t蓹sad眉fi ulduz bir d蓹st蓹 蓹lav蓹
v蓹 barmaqlar谋n谋 ke莽di Bu t蓹rtib ki.
Lakin, indi t蓹rtib olard谋.
>> Amma bunlar谋n m蓹nas谋n谋 n蓹 ed蓹k.
V蓹 t蓹蓹ss眉f ki, m眉蓹llifl蓹r C bir simvolu se莽ilmi艧 ola bil蓹r
bu bir az etm蓹k t蓹miz, lakin star operator
m眉xt蓹lif m蓹nas谋 var iki m眉xt蓹lif kontekstl蓹rd蓹.
V蓹 biz d蓹 g枚rd眉m, amma ay谋rmaq imkan verir.
>> Orada 眉st q蓹d蓹r So M蓹n A v蓹 B d蓹yi艧ib zaman
pis int nin olan version ulduz, a v蓹 b int,
蓹vv蓹ll蓹r integers idi.
陌ndi bir v蓹 b hans谋lard谋r yax艧谋, ya艧谋l versiyas谋?
Onlar URL ist蓹yirik.
N蓹, 眉nvanlar谋 ayd谋n olacaq?
Integers 眉nvanlar谋.
M蓹n ki, bel蓹 int ulduz vasit蓹l蓹ri s枚yl蓹y蓹r蓹k
bu 眉nvan谋 tam, x眉susi.
>> Bel蓹 ki, indi kodu x蓹tl蓹ri qeyd, ba艧qa bir 艧ey 莽ox d蓹yi艧di.
tmp, 莽眉nki eyni qal谋r yaln谋z m眉v蓹qq蓹ti tam var,
he莽 bir yadda艧 sehrli.
Amma indi bir ulduz laz谋md谋r.
V蓹 蓹slind蓹, h蓹r bir v蓹 b dig蓹r qeyd
b眉t眉n var ki, qeyd ya艧谋l q谋rm谋z谋 d蓹yi艧蓹n
M蓹n prefixing edir蓹m ki, ulduzlar谋 il蓹 o d蓹yi艧蓹nl蓹r.
M蓹n v蓹 b sur蓹ti ist蓹mir蓹m, 莽眉nki.
脟眉nki M蓹n yaln谋z bir v蓹 b v蓹 svop sur蓹ti 蓹g蓹r bir v蓹 b, m蓹n, h蓹qiq蓹t蓹n n蓹 d蓹yi艧dirm蓹 edir蓹m?
Just 眉nvanlar谋, m蓹n d蓹yi艧dirm蓹k ist蓹yir蓹m n蓹 o 眉nvanlarda var.
M蓹n orada getm蓹k ist蓹yir蓹m.
V蓹 bel蓹 star operator M蓹nim funksiyas谋 daxilind蓹,
Biz parametri siyah谋 daxilind蓹, bu 眉nvanlara getm蓹k dem蓹kdir
v蓹 h蓹qiq蓹t蓹n o d蓹y蓹rl蓹ri d蓹yi艧dirm蓹k.
>> Bel蓹 ki, n蓹 艧蓹kil yoxdur 陌ndi 蓹v蓹zin蓹 kimi g枚r眉n眉r.
B蓹li, 蓹v蓹zin蓹, m蓹n ke莽蓹n al谋ram bir 眉莽眉n deyil, 1 v蓹 b 2--
M蓹n, h蓹qiq蓹t蓹n, 蓹lav蓹 etm蓹k laz谋md谋r Burada ba艧qa bir m眉蓹yy蓹n.
Bel蓹 ki, bu y谋臒谋n G眉man yadda艧 yeri 10 edir.
>> Bu yerd蓹 11, lakin bu bir sad蓹l蓹艧dirilm蓹si bir az,
陌ndi x iki se莽im I ke莽m蓹k n蓹 var v蓹 y v蓹 ya onlar谋n 眉nvanlar谋 ke莽m蓹k edirsiniz?
M蓹n onlar谋n 眉nvanlar谋n谋 ke莽m蓹k 蓹g蓹r bu kimi m蓹n yaln谋z
indi h蓹yata ke莽irm蓹k laz谋md谋r Ya艧谋l kodu ba艧谋na swap
ki, g枚rd眉y眉 zaman bel蓹 bir v蓹 zaman b, yaln谋z bir v蓹 b sur蓹ti deyil g枚r眉r
v蓹 s眉d v蓹 porta臒al 艧ir蓹si h蓹r蓹k蓹t.
s眉d v蓹 porta臒al 艧ir蓹si m蓹caz indi a艧a臒谋 pozur
o, 莽眉nki fincan var maye v蓹 x蓹rit蓹l蓹r.
Biz yerin蓹 getm蓹k laz谋md谋r 10 v蓹 biz 眉莽眉n
11 眉nvana getm蓹k laz谋md谋r, v蓹 o d蓹yi艧dirm蓹 m蓹ntiq h蓹yata ke莽irir.
>> Bel蓹 ki, m蓹ntiq, eyni, lakin biz bir az f蓹rqli yol laz谋md谋r
o d蓹yi艧蓹nl蓹r daxil.
V蓹 bel蓹 sonunda, n蓹 proqram bu kimi baxmaq var.
Swap.c s枚z眉n sitemizi v蓹 ya艧谋l versiyas谋 yap谋艧d谋r谋l谋r.
Amma bir d蓹yi艧iklik etm蓹k laz谋md谋r.
Bu, sad蓹c蓹 svop d蓹yi艧dirm蓹k 眉莽眉n kifay蓹t deyil.
N蓹 kodu dig蓹r line M蓹n d蓹yi艧m蓹k laz谋md谋r?
Evet?
>> Auditoriya: d蓹lill蓹ri.
>> DAVID J. MALAN: onun m眉bahis蓹 edir.
Bel蓹likl蓹, m蓹n 蓹sas diyirl蓹yin, m蓹n yaln谋z x v蓹 y ke莽m蓹k bilm蓹z,
v蓹 m蓹n son s枚z yeni sintaksis par莽a bu g眉n.
M蓹n x ke莽m蓹k laz谋md谋r v蓹 y lakin x v蓹 y 眉nvan谋.
V蓹 bu, r蓹mzi 莽谋x谋r C m眉蓹llifl蓹ri se莽di ki,
burada bir i艧areti istifad蓹 蓹g蓹r deyil, deyil bitwise i艧areti il蓹 s蓹hv,
Bir i艧areti istifad蓹 蓹g蓹r burada v蓹 burada bir i艧areti,
Bu, sizin 眉莽眉n r蓹q蓹ml蓹r x 眉nvan谋 n蓹 var,
b蓹lk蓹 10 var, n蓹 var y 眉nvan谋, b蓹lk蓹 bu
11, 蓹v蓹zin蓹 h蓹min ke莽ir.
>> Bel蓹 ki, bir 莽ox d蓹f蓹 b眉t眉n udmaq.
Amma tez indi g枚r蓹k Qalan d枚rd d蓹qiq蓹
burada 艧eyi 蓹yri getm蓹k bil蓹r.
V蓹 bir k蓹nara, h蓹qiq蓹t蓹n M蓹n bu 艧蓹kil ald谋,
TF bir il v蓹 ya iki 蓹vv蓹l 艧蓹kil ald谋.
Bel蓹 ki, bu geri k眉nc edir Eliot Dining Hall.
Pointers b蓹lk蓹 莽蓹tin olur biz CS50 蓹hat蓹 m枚vzu.
Siz sort narahat 蓹g蓹r Bel蓹 ki, b蓹lk蓹 bu kimi yamac谋nda edir
bir xokkey a臒ac谋 daha bu kimi h蓹yata
biz n枚v zirv蓹si olan 眉zr蓹dir edirik konseptual m眉r蓹kk蓹bliyi 艧蓹rtl蓹ri.
>> V蓹 m蓹n bu g蓹tirm蓹k foto, m蓹n and olsun, 莽眉nki
Pay谋z 1996-ci ild蓹 Allaha, m蓹n ald谋 M蓹nim t蓹dris fellow il蓹 CS50,
Nishat Mehta, o, m蓹n蓹 oturdu nahar 眉z蓹rind蓹 Eliot D. Hall k眉nc眉nd蓹,
v蓹 ya nahar, v蓹 ya bir 艧ey c蓹hd M蓹n蓹 g枚st蓹ricil蓹rin蓹 anlamaq k枚m蓹k.
M蓹n h蓹ft蓹 sonra oldu臒u v蓹 bu Bu m眉hazir蓹 zaman t蓹qdim edilib
M蓹n n蓹hay蓹t g枚st蓹ricil蓹rin蓹 ba艧a d眉艧眉l眉r.
M蓹n bu 眉mid edir蓹m ki, q蓹d蓹r tez sizin 眉莽眉n bas谋n olacaq.
Lakin tamamil蓹 aras谋nda h蓹yata daha m眉r蓹kk蓹b m枚vzular
biz baxd谋 etdik.
Amma bu 蓹n g眉cl眉 aras谋nda var.
Siz onu almaq zaman, h蓹qiq蓹t蓹n b眉t眉n yaln谋z n蓹hay蓹t bir araya g蓹lib gedir.
Bel蓹 ki, qalan bu deyil arxay谋n Bu g眉n b眉t眉n sink laz谋md谋r.
>> Bel蓹 ki, burada son proqram Biz baxmaq olacaq.
V蓹 biz bir il蓹 son olacaq claymation tez 眉莽 d蓹qiq蓹
bizim dostumuz, Nick Parlante t蓹r蓹find蓹n.
Burada bir proqram 眉st iki ki, var x蓹tl蓹ri d蓹yi艧蓹n x v蓹 y b蓹yan edir.
H蓹m d蓹 olan 眉nvanlar谋 integers, AKA g枚st蓹ricil蓹r.
Biz sonra kifay蓹t q蓹d蓹r v蓹sait ay谋racaq yadda艧 int saxlamaq 眉莽眉n
v蓹 眉nvan谋 saxlamaq x ki, yadda艧.
Bel蓹 ki, h蓹tta sad蓹 deyil 蓹vv蓹l, m蓹s蓹l蓹n daha.
M蓹n蓹 yadda艧 d枚rd bayt verin ki, bir int 枚l莽眉s眉 var,
v蓹 x ki 眉nvan谋n谋 qoydu.
Bu x蓹tt burada dem蓹kdir x 眉nvana getm蓹k
v蓹 m蓹nas谋n谋 qoymaq h蓹yat, orada say谋 42.
Amma bu x蓹tt m蓹ni narahat edir.
Y y 脺nvan getm蓹k dem蓹kdir ulduz, v蓹 orada u臒ursuz say谋 13 qoydu.
Niy蓹 bu n枚qt蓹d蓹, bu t蓹hl眉k蓹lidir story-- olsa s眉r蓹tl蓹 bildirib
Bizim 莽谋xmas谋 d蓹qiq蓹 burada niy蓹 pis
M蓹n蓹 dem蓹k 眉莽眉n, y 眉nvana getm蓹k?
>> Auditoriya: Siz yoxdur [i艧itilemez].
DAVID J. MALAN: M蓹n var y 艧ey qoymaq.
Bel蓹 ki, y d蓹y蓹ri n蓹, hekay蓹 bu n枚qt蓹d蓹?
Biz he莽 bir fikrim yoxdur.
B蓹zi zibil d蓹y蓹ri var v蓹 n蓹 d蓹 Binky bilir.
Bu qeyd bitirm蓹k bil蓹r.
>> [Video playback]
>> -Hey, Binky, oyanmaq.
Bu g枚st蓹rici 蓹yl蓹nc蓹 眉莽眉n vaxt var.
>> -Bu n蓹dir?
G枚st蓹ricil蓹r haqq谋nda m蓹lumat 蓹ld蓹 edin?
Oh, goody.
>> -Yax艧谋, Ba艧lamaq 眉莽眉n, biz ist蓹yirik tapmaq bir ne莽蓹 g枚st蓹ricil蓹rin蓹 laz谋m olacaq.
>> -OLDU.
Bu kodu iki g枚st蓹ricil蓹rin蓹 ay谋r谋r olan integers qeyd ed蓹 bil蓹rsiniz.
>> -Yax艧谋, Yax艧谋 g枚r眉r蓹m iki g枚st蓹ricil蓹rin蓹, lakin onlar
bir 艧ey i艧ar蓹 ola g枚r眉nm眉r.
>> -D眉zd眉r.
茝vv蓹lc蓹 g枚st蓹ricil蓹r bir 艧ey qeyd yoxdur.
Onlar qeyd 艧eyl蓹r pointees adlan谋r v蓹 onlara yarad谋lmas谋
ayr谋 add谋md谋r.
>> Sa臒, sa臒, -Oh.
Hesab edir蓹m ki, bilirdi.
pointees ayr谋d谋r.
Bel蓹 ki, nec蓹 bir pointee ayr谋lmas谋 edirsiniz?
>> -Yax艧谋, Yax艧谋 bu kodu ay谋r谋b yeni tam pointee,
v蓹 bu hiss蓹si d蓹stl蓹ri x onu qeyd etm蓹k.
>> -Hey, Daha yax艧谋 g枚r眉n眉r.
Bel蓹 ki, bir 艧ey etm蓹k.
>> -Yax艧谋, M蓹n g枚st蓹rici x dereference onun pointee daxil say谋 42 saxlamay谋n.
Bu oyun, m蓹n laz谋md谋r m蓹nim dereferencing sehrli wand.
>> Dereferencing -Sizin sehrli wand?
Uh ki, b枚y眉k deyil.
>> -Bu Code kimi g枚r眉n眉r.
M蓹n yaln谋z say谋 qurmaq laz谋md谋r and--
>> [POP SES]
>> -Hey, Gedir orada baxmaq.
Bel蓹 ki, x bir dereference bunu bel蓹 arrow onun pointee daxil olmaq 眉莽眉n.
Bu halda, orada 42 saxlamaq 眉莽眉n.
Hey, say谋 saxlamaq 眉莽眉n istifad蓹 edin Dig蓹r g枚st蓹rici vasit蓹sil蓹 13 y.
>> -OLDU.
M蓹n y burada art谋q getm蓹k laz谋md谋r, v蓹 say谋 13 set up almaq.
V蓹 sonra 莽ubuq almaq dereferencing v蓹 yaln谋z
>> [Buzzer s蓹s]
>> -Oh, Hey ki, i艧 deyildi.
, Binky uh, m蓹n deyil, dem蓹k dereferencing edir蓹m
q蓹bulu, 莽眉nki y, yax艧谋 bir fikirdir pointee q蓹d蓹r ayr谋 add谋md谋r.
M蓹n biz he莽 bunu d眉艧眉nm眉r蓹m.
>> -Hmm, Yax艧谋 bir n枚qt蓹y蓹.
>> -B蓹li, Biz g枚st蓹rici, y ayr谋lan amma bir pointee qeyd etm蓹k m眉蓹yy蓹n he莽 vaxt.
>> -Hmm, 脟ox m眉艧ahid蓹莽i.
-Hey, Siz orada Binky yax艧谋 axtar谋r edirik.
Siz ki, bunu d眉zeltmek y xal x eyni pointee.
>> -茝lb蓹tt蓹, M蓹n sehrli wand istifad蓹 pointer t蓹yin.
>> Bir olacaq ki edirmi problem, 蓹vv蓹l kimi?
>> Xeyr, bu pointees toxunmaq deyil.
Bu, sad蓹c蓹 bir g枚st蓹rici d蓹yi艧iklikl蓹r eyni 艧ey qeyd etm蓹k
>> [Yaratma SES]
ba艧qa i艧ar蓹si.
>> -Oh G枚r眉r蓹m.
X eyni yer蓹 陌ndi y xal.
Bel蓹 ki, indi y m眉蓹yy蓹n edilir, g枚zl蓹yin.
Bu pointee var.
Bel蓹 ki, 莽ubuq c蓹hd ed蓹 bil蓹rsiniz 13 g枚nd蓹rm蓹k 眉莽眉n yenid蓹n dereferencing.
>> -Oh, OK, burada gedir.
>> -Hey Ki, oldu.
陌ndi y 眉zr蓹 i艧l蓹ri dereferencing.
V蓹 g枚st蓹ricil蓹r m眉badil蓹si, 莽眉nki bir pointee ki, onlar h蓹m 13 g枚r眉r眉k.
>> -B蓹li, M眉badil蓹si, uh, n蓹.
Bel蓹 ki, biz indi yerl蓹rd蓹 ke莽id gedir?
>> -Oh, Biz vaxt bitti baxmaq.
>> -But--
>> 脺莽 pointer qaydalar谋 xat谋rlamaq -Yaln谋z.
Number 1, 蓹sas struktur bir g枚st蓹rici var ki,
v蓹 bir pointee 眉z蓹rind蓹 g枚st蓹rir.
Amma pointer v蓹 pointee ayr谋d谋r.
V蓹 眉mumi s蓹hv bir g枚st蓹rici qurmaq 眉莽眉n
lakin bir pointee verm蓹k unutmaq.
>> Number 2, pointer dereferencing g枚st蓹rici ba艧lay谋r
v蓹 眉z蓹rind蓹 arrow a艧a臒谋dak谋 onun pointee daxil olmaq 眉莽眉n.
Biz b眉t眉n Bildiyiniz kimi, bu, yaln谋z orada 莽al谋艧谋r c眉r geri al谋r bir pointee edir
1 n枚mr蓹li idar蓹 etm蓹k.
>> Say谋 3, pointer t蓹yin edir bir pointer
v蓹 qeyd etm蓹k d蓹yi艧ir ba艧qa g枚st蓹rici eyni pointee.
Tap艧谋r谋q sonra bel蓹, iki g枚st蓹ricil蓹rin蓹
eyni pointee qeyd ed蓹c蓹k, b蓹z蓹n m眉badil蓹si deyirl蓹r.
V蓹 h蓹qiq蓹t蓹n, bu var b眉t眉n var.
Bye-bye indi.
>> [END playback]
>> DAVID J. MALAN: Bu CS50 眉莽眉n var.
Professor Nick Parlante 眉莽眉n t蓹艧蓹kk眉r edirik.
Biz g蓹l蓹n h蓹ft蓹 g枚r蓹c蓹ksiniz.
>> [ELECTRONIC MUSIC PLAYING]