[MUSIC Playing]
DAVID J. Malan: NĂ« rregull.
Kjo Ă«shtĂ« CS50.
Kjo Ă«shtĂ« javĂ« pesĂ« vazhdoi, dhe ne tĂ« ketĂ« njĂ« lajm tĂ« mirĂ« dhe njĂ« lajm i keq.
Pra, njĂ« lajm i mirĂ« Ă«shtĂ« se CS50 nis tĂ« premten.
NĂ«se ju do tĂ« donte tĂ« bashkohen me ne, shkojnĂ« nĂ« URL e zakonshme kĂ«tu.
Lajme edhe mĂ« tĂ« mirĂ«, asnjĂ« leksion kjo vjen e hĂ«nĂ« 13.
Pak mĂ« pak lajme mĂ« tĂ« mirĂ«, quiz zero Ă«shtĂ« tĂ« mĂ«rkurĂ«n e ardhshme.
MĂ« shumĂ« detaje mund tĂ« jetĂ« gjenden nĂ« kĂ«tĂ« URL kĂ«tu.
Dhe gjatĂ« ditĂ«ve tĂ« ardhshme Ă§ift ne do tĂ« plotĂ«sojĂ« vendet bosh
nĂ« lidhje me dhomat se ne do tĂ« kemi tĂ« rezervuara.
Lajm i mirĂ« Ă«shtĂ« se nuk do tĂ« tĂ« jetĂ« njĂ« pĂ«rmbledhje kurs tĂ« gjerĂ«
Sesioni kjo vjen TĂ« hĂ«nĂ«n nĂ« mbrĂ«mje.
Stay tuned pĂ«r kurs tĂ« Faqja e internetit pĂ«r vendndodhjen dhe detaje.
Seksione, edhe pse ajo Ă«shtĂ« njĂ« pushime, do tĂ« takohet edhe si.
Lajmi mĂ« i mirĂ«, leksion tĂ« premten tjetĂ«r.
Pra, kjo Ă«shtĂ« njĂ« traditĂ« qĂ« kanĂ«, si pĂ«r planin mĂ«simor.
Just-- ajo do tĂ« jetĂ« e mahnitshme.
Ju do tĂ« shihni gjĂ«ra tĂ« tilla si strukturat e tĂ« dhĂ«nave kohĂ« konstante
dhe tavolina hash dhe pemĂ« dhe mundohet.
Dhe ne do tĂ« flasim pĂ«r problemet ditĂ«lindjen.
NjĂ« bandĂ« e tĂ«rĂ« e gjĂ«ra pret tĂ« premten tjetĂ«r.
OK.
Gjithsesi.
>> Pra, kujtoj se ne kemi qenĂ« duke u fokusuar nĂ« kĂ«tĂ« foto tĂ« asaj qĂ« Ă«shtĂ«
brenda e kujtesĂ«s e kompjuterit tonĂ«.
Pra kujtesĂ«s ose RAM Ă«shtĂ« ku programet ekzistojnĂ« ndĂ«rkohĂ« qĂ« jeni drejtimin e tyre.
NĂ«se ju klikoni dy herĂ« njĂ« ikonĂ« pĂ«r tĂ« drejtuar ndonjĂ« program
ose klikoni dy herĂ« njĂ« icon pĂ«r tĂ« hapur disa fotografi,
Ă«shtĂ« e ngarkuar nga hard juaj makinĂ« apo makinĂ« tĂ« ngurta shtet
nĂ« RAM, Random Access Memory, ku ajo jeton deri sa pushteti shkon jashtĂ«,
kapak laptop mbyllet, ose ju lĂ« programin.
>> Tani se kujtesa, e tĂ« cilat ju ndoshta keni
1 Gigabyte kĂ«to ditĂ«, 2 gigabajt, apo edhe shumĂ« mĂ« tepĂ«r,
Ă«shtĂ« hedhur nĂ« pĂ«rgjithĂ«si nga pĂ«r njĂ« program tĂ« caktuar
nĂ« kĂ«tĂ« lloj drejtkĂ«ndĂ«she Modeli konceptual
ku ne kemi rafte nĂ« fund dhe njĂ« bandĂ« e sende tĂ« tjera nĂ« krye.
GjĂ« nĂ« krye ne kemi parĂ« nĂ« kĂ«tĂ« foto
mĂ« parĂ«, por kurrĂ« nuk ka folur pĂ«r Ă«shtĂ« e ashtuquajtura segment tekst.
Segment Tekst Ă«shtĂ« vetĂ«m njĂ« mĂ«nyrĂ« e sofistikuar i thĂ«nĂ« zero dhe ato qĂ«
kompozoj programin tuaj aktual hartuar.
>> Pra, kur ju klikoni dy herĂ« Microsoft Word pĂ«r Mac apo PC,
ose kur ju drejtuar dot Ă§aj Mario nĂ« njĂ« Kompjuter Linux nĂ« dritaren tuaj terminalit,
zero dhe ato qĂ« pĂ«rbĂ«jnĂ« Fjala apo Mario ruhen pĂ«rkohĂ«sisht
nĂ« RAM kompjuterit tuaj nĂ« tĂ« ashtuquajturin segment tekst pĂ«r njĂ« program tĂ« veĂ§antĂ«.
MĂ« poshtĂ« se shkon initialized dhe tĂ« dhĂ«nat uninitialized.
Kjo Ă«shtĂ« stuff like variablave globale, se ne nuk e kam pĂ«rdorur shumĂ«,
por nĂ« disa raste ne kemi kishte variablave globale
ose statike pĂ«rcaktuar vargjet qĂ« Ă«shtĂ« fjalĂ« tĂ« tilla si "hello" vĂ«shtirĂ« koduar
qĂ« nuk janĂ« marrĂ« nĂ« nga pĂ«rdoruesit qĂ« janĂ« tĂ« vĂ«shtirĂ«-koduar nĂ« programin tuaj.
>> Tani, poshtĂ« nĂ« pjesĂ«n e poshtme ne kanĂ« tĂ« ashtuquajturin rafte.
Dhe rafte, deri tani, ne kemi qenĂ« duke pĂ«rdorur pĂ«r atĂ« qĂ« llojet e qĂ«llime?
Ă‡farĂ« Ă«shtĂ« Ă«shtĂ« pĂ«rdorur rafte pĂ«r?
Po?
>> Audienca: Funksionet.
>> DAVID J. Malan: PĂ«r funksionet?
NĂ« atĂ« kuptim pĂ«r funksione?
>> Audienca: Kur ju telefononi njĂ« funksion, Argumentet janĂ« tĂ« kopjohen nĂ« rafte.
>> DAVID J. Malan: PikĂ«risht.
Kur ju telefononi njĂ« funksion, e saj Argumentet janĂ« tĂ« kopjohen nĂ« rafte.
KĂ«shtu qĂ« Ă§do X-sĂ« apo Y apo A apo B-sĂ« qĂ« ju jeni duke kaluar nĂ« njĂ« funksion
janĂ« vĂ«nĂ« pĂ«rkohĂ«sisht nĂ« ashtu-quajtur rafte,
ashtu si njĂ« nga Annenberg tabaka sallĂ« ngrĂ«nie, dhe gjithashtu gjĂ«rat
si variabla lokale.
NĂ«se funksioni juaj foo ose swap tuaj Funksioni kanĂ« variablave lokale,
si temp, ata tĂ« dy pĂ«rfundojnĂ« nĂ« rafte.
Tani, ne nuk do tĂ« flasim shumĂ« pĂ«r ata, por kĂ«to mjedisit tĂ« ndryshueshĂ«m
nĂ« fund ne pamĂ« njĂ« kohĂ« mĂ« parĂ«, kur UnĂ« u futzing nĂ« tastierĂ« njĂ« ditĂ«
dhe kam filluar qasjen gjĂ«ra si argv 100 ose argv 1000,
vetĂ«m elements-- harroj numbers-- por qĂ«
nuk Ă«shtĂ« dashur tĂ« arrihen nga mua.
Ne kemi filluar duke parĂ« disa simbolet shokuar nĂ« ekran.
Ata ishin tĂ« ashtuquajturit mjedisit tĂ« ndryshueshĂ«m
si parametrat globale pĂ«r tim program ose pĂ«r kompjuterin tim, e jo
pa lidhje tĂ« fundit bug qĂ« kemi diskutuar,
Shellshock, qĂ« ka qenĂ« rĂ«ndojnĂ« mjaft disa kompjutera.
>> Tani sĂ« fundi, nĂ« fokusin e sotme ne nĂ« fund tĂ« fundit do tĂ« jetĂ« nĂ« grumbull.
Ky Ă«shtĂ« njĂ« tjetĂ«r copĂ« e kujtesĂ«s.
Dhe nĂ« thelb e gjithĂ« kjo memorie Ă«shtĂ« e njĂ«jtĂ« stuff.
Ă‹shtĂ« e njĂ«jta hardware.
Ne jemi vetĂ«m lloj i trajtimin e grupimeve tĂ« ndryshme
i bytes pĂ«r qĂ«llime tĂ« ndryshme.
Tog Ă«shtĂ« gjithashtu do tĂ« jetĂ« aty ku Variablat dhe kujtesĂ«s qĂ« ju kĂ«rkojnĂ«
nga sistemi operativ Ă«shtĂ« ruajtur pĂ«rkohĂ«sisht.
>> Por nuk Ă«shtĂ« lloj i njĂ« problemi kĂ«tu, si foto nĂ«nkupton.
Ne kemi dy lloj anije pĂ«r tĂ« pĂ«rplasen.
PĂ«r shkak se si ju pĂ«rdorni mĂ« shumĂ« dhe mĂ« shumĂ« i rafte, dhe si ne e shohim sot
tutje, si ju pĂ«rdorni mĂ« shumĂ« dhe mĂ« shumĂ« nga grumbull, me siguri gjĂ«ra tĂ« kĂ«qija mund tĂ« ndodhĂ«.
Dhe me tĂ« vĂ«rtetĂ«, ne mund tĂ« shkaktoj qĂ« me qĂ«llim apo pa qĂ«llim.
Pra, tĂ« cliffhanger fundit Ora ishte ky program,
tĂ« cilat nuk i ke shĂ«rbyer Ă§do funksional QĂ«llimi tjetĂ«r se sa pĂ«r tĂ« demonstruar
se si ju si njĂ« djalĂ« i keq nĂ« fakt mund tĂ« marrĂ« PĂ«rparĂ«sia e mete nĂ« programin e dikujt
dhe tĂ« marrĂ« pĂ«rsipĂ«r njĂ« program apo edhe njĂ« sistem i tĂ«rĂ« kompjuter ose server.
Pra, vetĂ«m pĂ«r shikim shkurtimisht, ju njoftim se kryesor nĂ« pjesĂ«n e poshtme
merr nĂ« command line argumente, sipas argv.
Dhe kjo ka njĂ« thirrje pĂ«r njĂ« funksion f, nĂ« thelb njĂ« funksion tĂ« panjohur tĂ« quajtur
f, dhe Ă«shtĂ« duke kaluar nĂ« argv [1].
>> Pra, pavarĂ«sisht fjala lloje pĂ«rdorues nĂ« nĂ« shpejtĂ« pas emrit tĂ« kĂ«tij programit,
dhe pastaj ky funksion arbitrare deri lartĂ«, f, merr nĂ« njĂ« varg, AKA char *,
si ne kemi filluar pĂ«r tĂ« diskutuar, dhe vetĂ«m ajo e quan atĂ« "bar."
Por ne mund ta quajmĂ« atĂ« gjĂ«.
Dhe atĂ«herĂ« ajo deklaron, brenda i f, njĂ« grup tĂ« karaktereve
quajtur c-- 12 karaktere tĂ« tilla.
>> Tani, nga histori unĂ« u thĂ«nĂ« njĂ« moment mĂ« parĂ«, ku nĂ« kujtesĂ«
Ă«shtĂ« c, apo janĂ« ato 12 karaktere do tĂ« pĂ«rfundojĂ«?
VetĂ«m tĂ« jetĂ« i qartĂ«.
Po?
>> Audienca: NĂ« rafte.
>> DAVID J. Malan: NĂ« rafte.
Pra, c Ă«shtĂ« njĂ« variabĂ«l lokale.
Ne jemi duke kĂ«rkuar pĂ«r 12 karaktere ose 12 bytes.
Ata do tĂ« pĂ«rfundojĂ« deri nĂ« tĂ« ashtu-quajtur rafte.
Tani mĂ« nĂ« fund Ă«shtĂ« ky funksion tjetĂ«r kjo Ă«shtĂ« nĂ« fakt shumĂ« e dobishme,
por ne nuk e kam pĂ«rdorur me tĂ« vĂ«rtetĂ« ajo veten, strncopy.
Kjo do tĂ« thotĂ« kopje string, por vetĂ«m n letra, karaktere n.
Pra karaktere n do tĂ« jetĂ« e kopjuar nga bar nĂ« c.
Dhe sa?
GjatĂ«sia e bar.
Pra, me fjalĂ« tĂ« tjera, qĂ« njĂ« linjĂ«, strncopy,
do tĂ« kopje efektive bar nĂ« tĂ« c.
>> Tani, vetĂ«m pĂ«r tĂ« lloj tĂ« parashikojnĂ« Morali i kĂ«saj historie,
ajo Ă«shtĂ« potencialisht problematike kĂ«tu?
Edhe pse ne jemi duke kontrolluar gjatĂ«sinĂ« e bar dhe duke kaluar atĂ« nĂ« strncopy,
Ă§farĂ« Ă«shtĂ« gut juaj thĂ«nĂ« ju Ă«shtĂ« ende thyer nĂ« lidhje me kĂ«tĂ« program?
Po?
>> Audienca: A nuk pĂ«rfshijnĂ« vend pĂ«r karakterin null.
DAVID J. Malan: A nuk pĂ«rfshijnĂ« vend pĂ«r karakterin null.
Potencialisht, ndryshe nga nĂ« praktika e kaluar ne nuk bĂ«jmĂ« edhe
kanĂ« aq shumĂ« si njĂ« plus 1 nĂ« strehojĂ« kĂ«tĂ« karakter null.
Por kjo Ă«shtĂ« edhe mĂ« keq se kaq.
Ă‡farĂ« tjetĂ«r jemi duke dĂ«shtuar pĂ«r tĂ« bĂ«rĂ«?
Po?
>> Audienca: [padĂ«gjueshme]
DAVID J. Malan: Perfect.
Ne e kemi koduar vĂ«shtirĂ« 12 goxha arbitrare.
Kjo nuk Ă«shtĂ« aq shumĂ« problem, por fakti
qĂ« ne nuk jemi edhe tĂ« kontrolluar nĂ«se gjatĂ«sia e bar Ă«shtĂ« mĂ« pak se 12,
nĂ« tĂ« cilin rast ajo do tĂ« jetĂ« e tĂ« sigurt pĂ«r tĂ« vĂ«nĂ« atĂ« nĂ« kujtesĂ«n
quajtur c se ne kemi ndarĂ«.
NĂ« tĂ« vĂ«rtetĂ«, nĂ« qoftĂ« se bar Ă«shtĂ« si 20 karaktere tĂ« gjatĂ«,
ky funksion duket tĂ« jetĂ« kopjuar 20 karaktere nga bar nĂ« c, duke
marrĂ« tĂ« paktĂ«n 8 bajt se ajo nuk duhet tĂ« jetĂ«.
Kjo Ă«shtĂ« implikimi kĂ«tu.
>> Pra, nĂ« tĂ« shkurtĂ«r programin, thyer.
Nuk Ă«shtĂ« e tillĂ« njĂ« punĂ« e madhe.
Ndoshta ju merrni njĂ« defekt segmentimit.
Ne kemi tĂ« gjithĂ« e kishin tĂ« mete nĂ« programet.
Ne tĂ« gjithĂ« mund tĂ« ketĂ« mete nĂ« programet e drejtĂ« tani.
Por Ă§farĂ« Ă«shtĂ« implikimi?
E pra, kĂ«tu Ă«shtĂ« njĂ« version zoomed-nĂ« e se foto e kujtesĂ« tĂ« kompjuterit tim.
Kjo Ă«shtĂ« nĂ« fund tĂ« rafte tim.
Dhe me tĂ« vĂ«rtetĂ«, nĂ« fund fare Ă«shtĂ« ajo qĂ« Ă«shtĂ« quajtur rafte prind rutinĂ«, mĂ«nyrĂ« e sofistikuar
i thĂ«nĂ« qĂ« Ă«shtĂ« kryesore.
KĂ«shtu qĂ« kushdo qĂ« quhet funksioni f qĂ« ne jemi duke folur rreth.
Pra, kjo Ă«shtĂ« nĂ« fund tĂ« rafte.
Adresa e kthimit Ă«shtĂ« diĂ§ka e re.
Ka qenĂ« gjithmonĂ« atje, qenĂ« gjithmonĂ« nĂ« atĂ« foto.
Ne vetĂ«m kurrĂ« nuk tĂ«rhoqi vĂ«mendjen pĂ«r tĂ«.
PĂ«r shkak se ajo rezulton mĂ«nyra c punon Ă«shtĂ« se kur njĂ« funksion e quan njĂ« tjetĂ«r,
jo vetĂ«m qĂ« argumentet tĂ« cilat funksion tĂ« shtyrĂ« mbi rafte,
jo vetĂ«m qĂ« lokal funksion tĂ« variabla tĂ« shtyrĂ« mbi rafte,
diĂ§ka qĂ« quhet njĂ« adresĂ« e kthimit gjithashtu merr vĂ«nĂ« mbi rafte.
NĂ« mĂ«nyrĂ« tĂ« veĂ§antĂ«, nĂ«se thirrjet kryesore foo, e kryesore Adresa e vet nĂ« kujtesĂ«n, kau diĂ§ka,
nĂ« mĂ«nyrĂ« efektive merr vĂ«nĂ« mbi rafte kĂ«shtu qĂ« kur f Ă«shtĂ« bĂ«rĂ« ekzekutimin e tij
e di se ku tĂ« hidhen pĂ«rsĂ«ri nĂ« nĂ« tekst segment nĂ« mĂ«nyrĂ« qĂ« tĂ« vazhdojĂ« ekzekutimin.
>> Pra, nĂ«se ne jemi kĂ«tu konceptualisht, nĂ« kryesore, atĂ«herĂ« f merr quajtur.
Si e f di kush pĂ«r kontrollin e dorĂ«s prapa?
E pra, kjo pak Breadcrumb nĂ« tĂ« kuqe kĂ«tu,
quajtur adresa e kthimit, ajo vetĂ«m kontrolle, Ă§farĂ« Ă«shtĂ« qĂ« adresa e kthimit?
Oh, mĂ« lejoni tĂ« hidhen pĂ«rsĂ«ri nĂ« kryesore kĂ«tu.
Dhe kjo Ă«shtĂ« pak i njĂ« oversimplification,
sepse e zero dhe ato pĂ«r kryesore janĂ« teknikisht
deri kĂ«tu nĂ« segmentin e teknologjisĂ«.
Por kjo Ă«shtĂ« ideja. f vetĂ«m duhet tĂ« dini se Ă§farĂ«
pĂ«r ku kontrolli nĂ« fund tĂ« fundit shkon prapa.
>> Por mĂ«nyra kompjutera kanĂ« hedhur gjatĂ« gjĂ«ra
si variabla lokale dhe Argumentet Ă«shtĂ« si kjo.
Pra, nĂ« krye tĂ« kĂ«saj foto nĂ« blu Ă«shtĂ« kornizĂ« rafte pĂ«r f, kĂ«shtu qĂ« tĂ« gjithĂ«
e kujtesĂ«s qĂ« f nĂ« mĂ«nyrĂ« specifike Ă«shtĂ« duke pĂ«rdorur.
Pra nĂ« pĂ«rputhje me rrethanat, vĂ«rejmĂ« se bar Ă«shtĂ« nĂ« kĂ«tĂ« foto.
Bar ishte argumenti i tij.
Dhe ne pohoi se argumentet pĂ«r Funksionet tĂ« shtyrĂ« mbi rafte.
Dhe c, sigurisht, Ă«shtĂ« e edhe nĂ« kĂ«tĂ« foto.
>> Dhe vetĂ«m pĂ«r qĂ«llime notational, njoftim nĂ« qoshe tĂ« lartĂ« e majtĂ«
Ă«shtĂ« se Ă§farĂ« do tĂ« jetĂ« c kllapa 0 dhe pastaj pak mĂ« poshtĂ« nĂ« tĂ« djathtĂ«
Ă«shtĂ« c kllapa 11.
Pra, me fjalĂ« tĂ« tjera, ju mund tĂ« imagjinoni se ka njĂ« rrjet prej bytes
aty, parĂ« e cila Ă«shtĂ« tĂ« lartĂ« tĂ« majtĂ«, e poshtme e cila
Ă«shtĂ« i fundit i kĂ«tyre 12 bytes.
>> Por tani tĂ« pĂ«rpiqet tĂ« agjĂ«rojĂ« pĂ«rpara.
Ajo qĂ« Ă«shtĂ« gati tĂ« ndodhĂ« nĂ« qoftĂ« se ne tĂ« kalojĂ« nĂ« njĂ« bar varg qĂ« Ă«shtĂ« mĂ« shumĂ« se c?
Dhe ne nuk jemi duke kontrolluar nĂ«se kjo Ă«shtĂ« me tĂ« vĂ«rtetĂ« mĂ« shumĂ« se 12.
Cila pjesĂ« e kĂ«saj tabloje do tĂ« marrĂ« overwritten nga bajt 0, 1, 2, 3,
dot dot dot, 11, dhe pastaj keq, 12, 13 deri 19?
Ă‡farĂ« do tĂ« ndodhĂ« kĂ«tu, nĂ« qoftĂ« se ju tĂ« konkludoj nga urdhĂ«rimin
qĂ« c grupim 0 Ă«shtĂ« nĂ« krye dhe c kllapa 11 Ă«shtĂ« lloj i poshtĂ«
tĂ« drejtĂ«?
Po?
>> Audienca: E pra, ajo do tĂ« prishĂ«sh char * bar.
>> DAVID J. Malan: Po, ajo duket si ju jeni do tĂ« prishĂ«sh char * bar.
Dhe mĂ« keq, nĂ« qoftĂ« se ju dĂ«rgoni nĂ« njĂ« tĂ« vĂ«rtetĂ« tĂ« gjatĂ« string, ju mund tĂ« prishĂ«sh edhe ajo?
Adresa e kthimit.
Cili pĂ«rsĂ«ri, Ă«shtĂ« vetĂ«m si njĂ« Breadcrumb pĂ«r tĂ« tĂ« treguar programin ku
pĂ«r tĂ« shkuar pĂ«rsĂ«ri nĂ« kur f Ă«shtĂ« bĂ«rĂ« duke u thirrur.
>> Pra, Ă§farĂ« liq nĂ« mĂ«nyrĂ« tipike tĂ« bĂ«jĂ« Ă«shtĂ« nĂ«se ata vijnĂ« tĂ« gjithĂ« njĂ« program
se ata janĂ« kurioz se a Ă«shtĂ« shfrytĂ«zueshĂ«m, buggy nĂ« mĂ«nyrĂ« tĂ« tillĂ«
se ai ose ajo mund tĂ« marrĂ« Avantazhi i kĂ«saj bug,
nĂ« pĂ«rgjithĂ«si ata nuk e marrin kjo e drejtĂ« herĂ« tĂ« parĂ«.
Ata vetĂ«m tĂ« fillojĂ« dĂ«rgimin e, pĂ«r shembull, vargjet rastit nĂ« programin tuaj,
nĂ«se nĂ« tastierĂ«, ose sinqerisht ata ndoshta
shkruani njĂ« program tĂ« vogĂ«l pĂ«r vetĂ«m automatikisht gjenerojnĂ« vargjet,
dhe tĂ« fillojnĂ« banging nĂ« programin tuaj duke dĂ«rguar nĂ« shumĂ« inpute tĂ« ndryshme
nĂ« gjatesite e ndryshme.
>> Sa mĂ« shpejt qĂ« crashes tuaj tĂ« programit, kjo Ă«shtĂ« njĂ« gjĂ« e mahnitshme.
PĂ«r shkak se kjo do tĂ« thotĂ« se ai ose ajo ka zbuluar
ajo Ă«shtĂ« ndoshta me tĂ« vĂ«rtetĂ« njĂ« bug.
Dhe pastaj ata mund tĂ« merrni mĂ« tĂ« zgjuar dhe tĂ« fillojnĂ« duke u fokusuar mĂ« tĂ« ngushtĂ«
se si pĂ«r tĂ« shfrytĂ«zuar kĂ«tĂ« bug.
NĂ« veĂ§anti, atĂ« qĂ« ai ose ajo mund bĂ«ni Ă«shtĂ« tĂ« dĂ«rgoni, nĂ« rastin mĂ« tĂ« mirĂ«, pĂ«rshĂ«ndetje.
Nuk ka punĂ« e madhe.
Ă‹shtĂ« njĂ« varg qĂ« Ă«shtĂ« mjaft e shkurtĂ«r.
Por, Ă§ka nĂ«se ai ose ajo dĂ«rgon, dhe ne do tĂ« pĂ«rgjithĂ«sojmĂ« atĂ« si,
Sulmi code-- kĂ«shtu zero dhe ato qĂ« bĂ«jnĂ« gjĂ«ra tĂ«
si rm-RF, qĂ« hiqni Ă§do gjĂ« nga hard drive ose tĂ« dĂ«rguar spam
ose disi sulmojnĂ« makinĂ«?
>> Pra, nĂ« qoftĂ« se secili prej kĂ«tyre Letrat A vetĂ«m pĂ«rfaqĂ«son,
konceptualisht, sulm, sulm, sulm, sulm, disa kodi i keq
qĂ« dikush tjetĂ«r ka shkruar, por nĂ«se ai person Ă«shtĂ« mjaft i zgjuar
pĂ«r tĂ« jo vetĂ«m tĂ« pĂ«rfshijĂ« tĂ« gjithĂ« prej atyre rm-rfs, por edhe
kanĂ« pak bytes tij ose tĂ« saj tĂ« fundit tĂ« jetĂ« njĂ« numĂ«r qĂ« korrespondon
nĂ« adresĂ«n e tij ose Kodi vet e saj sulm
se ai ose ajo kaloi nĂ« vetĂ«m duke siguruar atĂ« me tĂ« shpejtĂ«,
ju nĂ« mĂ«nyrĂ« efektive mund tĂ« gĂ«njejnĂ« kompjuterin nĂ« vĂ«rejtur kur f Ă«shtĂ« bĂ«rĂ« ekzekutimin,
oh, Ă«shtĂ« koha pĂ«r mua qĂ« tĂ« hidhen pĂ«rsĂ«ri nĂ« adresĂ«n e kuqe e kthimit.
Por pĂ«r shkak se ai ose ajo ka disi pĂ«rkime atĂ« adresĂ« e kthimit
me numrin e tyre, dhe ata janĂ« mjaft tĂ« zgjuar
qĂ« kanĂ« konfiguruar qĂ« numĂ«r pĂ«r tĂ« referuar, si ju
shihni nĂ« super krye qoshe majtĂ« atje,
adresa aktuale nĂ« kompjuter-sĂ« kujtimi i disa prej kodin e tyre sulmit,
njĂ« djalĂ« i keq mund tĂ« gĂ«njejnĂ« kompjuterin nĂ« ekzekutimin kodin e tij ose tĂ« saj.
>> Dhe qĂ« kodi, pĂ«rsĂ«ri, mund tĂ« jetĂ« Ă§do gjĂ«.
Ă‹shtĂ« quajtur pĂ«rgjithĂ«sisht kodi predhĂ«, e cila Ă«shtĂ« vetĂ«m
njĂ« mĂ«nyrĂ« pĂ«r tĂ« thĂ«nĂ« se kjo nuk Ă«shtĂ« pĂ«rgjithĂ«sisht diĂ§ka e thjeshtĂ« si rm-RF.
Ă‹shtĂ« nĂ« fakt diĂ§ka si Bash, apo njĂ« program i vĂ«rtetĂ« qĂ« i jep atij
ose kontrollin e saj programatike pĂ«r tĂ« ekzekutuar Ă§do gjĂ« tjetĂ«r qĂ« ata duan tĂ«.
Pra me pak fjalĂ«, kĂ«tĂ« tĂ« gjithĂ« buron nga fakti i thjeshtĂ«
se ky bug pĂ«rfshirĂ« jo kontrolluar kufijtĂ« e array tuaj.
Dhe pĂ«r shkak tĂ« rrugĂ«s kompjutera puna Ă«shtĂ« se ata
pĂ«rdorin rafte nga mĂ«nyrĂ« efektive, konceptualisht,
fund mĂ« lart, por pastaj elementet ju shtyjnĂ« mbi rafte tĂ« rritet lartĂ« poshtĂ«,
kjo Ă«shtĂ« tepĂ«r problematike.
Tani, ka mĂ«nyra pĂ«r tĂ« punuar rreth kĂ«saj.
Dhe sinqerisht, ka gjuhĂ« me tĂ« cilĂ«n pĂ«r tĂ« punuar rreth kĂ«saj.
Java Ă«shtĂ« imun, pĂ«r shembull, pĂ«r kĂ«tĂ« Ă§Ă«shtje tĂ« veĂ§antĂ«.
PĂ«r shkak se ata nuk ju japin pointers.
Ata nuk ju japin Adresat direkte kujtesĂ«s.
Pra, me kĂ«tĂ« fuqi qĂ« kemi pĂ«r tĂ« prekur asgjĂ« nĂ« kujtesĂ«
duam tĂ« vijĂ«, pa dyshim, rrezik i madh.
>> KĂ«shtu qĂ« tĂ« mbajĂ« njĂ« sy jashtĂ«.
NĂ«se, sinqerisht, nĂ« muajt apo vitet qĂ« vijnĂ«, nĂ« Ă§do kohĂ«
ju lexuar nĂ« lidhje me disa shfrytĂ«zimit e njĂ« programi ose njĂ« server,
nĂ«se ju shihni ndonjĂ«herĂ« njĂ« aluzion e diĂ§ka si njĂ« sulm tampon del nga shtrati,
ose rafte del nga shtrati Ă«shtĂ« njĂ« lloj tjetĂ«r i sulmit, tĂ« ngjashme nĂ« frymĂ«,
mĂ« shumĂ« tĂ« frymĂ«zon website-sĂ« emrin, nĂ« qoftĂ« se ju e dini atĂ«,
kjo Ă«shtĂ« e gjitha duke folur pĂ«r vetĂ«m tejmbushur madhĂ«sinĂ« e njĂ« karakter
grup ose disa array nĂ« pĂ«rgjithĂ«si.
Ă‡farĂ«do pyetjeje, atĂ«herĂ«, nĂ« kĂ«tĂ«?
Mos provoni kĂ«tĂ« nĂ« shtĂ«pi.
>> TĂ« gjithĂ« tĂ« drejtĂ«.
Deri malloc deri mĂ« tani ka qenĂ« e tonĂ« tĂ« re mik nĂ« tĂ« cilat ne mund tĂ« siguroj kujtesĂ«
se ne nuk e dimĂ« me domosdo nĂ« tĂ« avancuar se ne duam kĂ«shtu qĂ« ne nuk kemi
tĂ« kodit tĂ« vĂ«shtirĂ« nĂ« tonĂ« Numrat program si 12.
Pasi pĂ«rdoruesi na tregon se sa shumĂ« tĂ« dhĂ«nat qĂ« ai apo ajo dĂ«shiron tĂ« dhĂ«na,
ne mund tĂ« malloc atĂ« shumĂ« memorie.
>> Pra malloc ajo rezulton, qĂ« tĂ« mase ne kemi qenĂ« duke e pĂ«rdorur atĂ«,
nĂ« mĂ«nyrĂ« tĂ« qartĂ« pĂ«r herĂ« tĂ« fundit, dhe pastaj ju djema janĂ« duke e pĂ«rdorur atĂ«
pĂ«r getstring unknowingly pĂ«r disa javĂ«, tĂ« gjitha tĂ« kujtesĂ«s malloc-sĂ«
vjen nga i ashtuquajturi grumbull.
Dhe kjo Ă«shtĂ« arsyeja pse getstring, pĂ«r shembull, mund tĂ« kujtesĂ«s dinamike
pa e ditur se Ă§farĂ« ju jeni tĂ« do tĂ« shkruani mĂ« parĂ«,
ju dorĂ«zojnĂ« njĂ« tregues pĂ«r atĂ« kujtim, dhe se kujtesa Ă«shtĂ« ende e juaja pĂ«r tĂ« mbajtur,
edhe pas getstring kthimit.
Sepse kujtojnĂ« pas tĂ« gjitha qĂ« rafte Ă«shtĂ« vazhdimisht duke shkuar lart e poshtĂ«,
lart e poshtĂ«.
Dhe, sa mĂ« shpejt qĂ« ajo shkon poshtĂ«, qĂ« do tĂ« thotĂ« asnjĂ« kujtim
kĂ«tĂ« funksion e pĂ«rdorur duhet nuk do tĂ« pĂ«rdoret nga dikush tjetĂ«r.
Ă‹shtĂ« vlerat mbeturinash tani.
>> Por tog Ă«shtĂ« kĂ«tu.
Dhe Ă§farĂ« Ă«shtĂ« e mirĂ« pĂ«r malloc Ă«shtĂ« se kur malloc ndan memorie deri kĂ«tu,
nuk Ă«shtĂ« ndikuar, pĂ«r Pjesa mĂ«, nga rafte.
Dhe kĂ«shtu Ă§do funksion mund tĂ« hyni kujtesĂ«s qĂ« Ă«shtĂ« malloc'd,
edhe nga njĂ« funksion si getstring, edhe pasi ajo Ă«shtĂ« kthyer.
>> Tani, bisedoj e malloc Ă«shtĂ« falas.
Dhe me tĂ« vĂ«rtetĂ«, rregull ju duhet tĂ« fillojĂ« miratimin
Ă«shtĂ« Ă§do, Ă§do, Ă§do herĂ« qĂ« ju pĂ«rdorni malloc ju duhet tĂ« pĂ«rdorni tĂ« lirĂ« veten, pĂ«rfundimisht,
nĂ« tĂ« njĂ«jtĂ«n akrep.
E gjithĂ« kjo kohĂ« ne kemi qenĂ« tĂ« shkruar buggy, kodin buggy, pĂ«r shumĂ« arsye.
Por njĂ« nga tĂ« cilat ka qenĂ« e pĂ«rdorur bibliotekĂ«n CS50, e cila
vetvete Ă«shtĂ« qĂ«llimisht buggy, ajo rrjedhjet e kujtesĂ«s.
Ă‡do herĂ« qĂ« e kam quajtur getstring gjatĂ« disa javĂ«ve tĂ« fundit
ne jemi duke i kĂ«rkuar operative sistem, Linux, pĂ«r kujtesĂ«n.
Dhe ju kurrĂ« nuk kanĂ« dhĂ«nĂ« njĂ« herĂ« atĂ«.
Dhe kjo nuk Ă«shtĂ«, nĂ« praktikĂ«, njĂ« gjĂ« e mirĂ«.
>> Dhe Valgrind, njĂ« nga mjete futur nĂ« Pset 4,
Ă«shtĂ« e gjitha pĂ«r tĂ« ndihmuar ju tani gjeni mete si kjo.
Por, fatmirĂ«sisht pĂ«r Pset 4 ju nuk keni nevojĂ« pĂ«r tĂ« pĂ«rdorur bibliotekĂ«n CS50 ose getstring.
KĂ«shtu qĂ« Ă§do tĂ« mete qĂ« lidhen me kujtesĂ«n janĂ« nĂ« fund tĂ« fundit do tĂ« jenĂ« tuajat.
>> Pra malloc Ă«shtĂ« mĂ« shumĂ« se vetĂ«m i pĂ«rshtatshĂ«m pĂ«r kĂ«tĂ« qĂ«llim.
Ne mund tĂ« vĂ«rtetĂ« tani zgjidhin probleme krejtĂ«sisht tĂ« ndryshme,
dhe krejtĂ«sisht tĂ« zgjidhur problemet mĂ« tĂ« nĂ« mĂ«nyrĂ« efektive si pĂ«r premtimin javĂ« zero-sĂ«.
Deri tani kjo Ă«shtĂ« sexiest Struktura e tĂ« dhĂ«nave ne kemi pasur.
Dhe nga struktura e tĂ« dhĂ«nave unĂ« vetĂ«m do tĂ« thotĂ« njĂ« mĂ«nyrĂ« e konceptualizimit kujtesĂ«s
nĂ« njĂ« mĂ«nyrĂ« qĂ« shkon pĂ«rtej vetĂ«m duke thĂ«nĂ«, kjo Ă«shtĂ« njĂ« int, kjo Ă«shtĂ« njĂ« char.
Ne mund tĂ« fillojĂ« tĂ« gjĂ«ra grumbull sĂ« bashku.
>> Pra, njĂ« grup dukej si kjo.
Dhe Ă§farĂ« ishte kyĂ§ nĂ« lidhje me njĂ« array Ă«shtĂ« se ajo ju jep
back-to-back chunks e memorie, secila prej tĂ« cilave
do tĂ« jetĂ« e tĂ« njĂ«jtit lloj, int, int, int, int, ose char, char, char,
char.
Por ka disa dobĂ«si.
Kjo pĂ«r shembull, Ă«shtĂ« njĂ« grup tĂ« madhĂ«sisĂ« sĂ« gjashtĂ«.
Supozoni se ju plotĂ«soni kĂ«tĂ« grup me gjashtĂ« numra dhe pastaj, pĂ«r Ă§farĂ«do arsye,
PĂ«rdorues juaj dĂ«shiron tĂ« japĂ« ju njĂ« numĂ«r shtatĂ«.
Ku e keni vĂ«nĂ« atĂ«?
>> Ă‡farĂ« Ă«shtĂ« zgjidhja, nĂ«se ju keni krijuar njĂ« rrjet nĂ« rafte,
pĂ«r shembull, vetĂ«m me tĂ« javĂ«s dy simbol qĂ« ne kemi prezantuar,
i kllapa katrore me njĂ« numĂ«r brenda?
E pra, ju keni marrĂ« gjashtĂ« Numrat nĂ« kĂ«to kuti.
Ă‡farĂ« do tĂ« jetĂ« instinktet tuaja?
Ku do tĂ« doni tĂ« vĂ«nĂ« atĂ«?
>> Audienca: [padĂ«gjueshme]
>> DAVID J. Malan: Na vjen keq?
>> Audienca: Vendoseni atĂ« nĂ« fund.
>> DAVID J. Malan: Vendoseni atĂ« nĂ« fund.
Pra, vetĂ«m mbi tĂ« drejtĂ«n, jashtĂ« kĂ«tij kuti.
Cili do tĂ« ishte mirĂ«, por ajo rezulton nga ju nuk mund ta bĂ«jĂ« kĂ«tĂ«.
Sepse nĂ« qoftĂ« se ju nuk e keni kĂ«rkuar pĂ«r kĂ«tĂ« copĂ« e kujtesĂ«s,
ajo mund tĂ« jetĂ« rastĂ«sisht se ky Ă«shtĂ« duke u pĂ«rdorur nga disa variabla tĂ« tjerĂ«
krejt.
Mendoni pĂ«rsĂ«ri njĂ« javĂ« apo mĂ« shumĂ« kur kemi hedhur nga emrat Zamyla dhe Davin dhe Gabe-sĂ«
nĂ« kujtesĂ«n.
Ata ishin fjalĂ« pĂ«r fjalĂ« tĂ« kthyer prapa nĂ« shpinĂ«.
Pra, ne nuk mund domosdoshmĂ«risht besojnĂ« se Ă§do gjĂ«-sĂ«
kĂ«tu Ă«shtĂ« nĂ« dispozicion pĂ«r mua qĂ« tĂ« pĂ«rdorni.
>> Pra, Ă§farĂ« tjetĂ«r mund tĂ« bĂ«ni?
E pra, njĂ« herĂ« e kuptuar ju nevojĂ« pĂ«r njĂ« rrjet tĂ« madhĂ«sisĂ« shtatĂ«,
ju mund tĂ« krijojĂ« vetĂ«m njĂ« grup tĂ« madhĂ«sisĂ« shtatĂ« atĂ«herĂ« pĂ«rdorni
njĂ« pĂ«r lak ose njĂ« lak, ndĂ«rsa, kopje atĂ« nĂ« grup tĂ« ri,
dhe pastaj disi vetĂ«m tĂ« shpĂ«toj prej ky grup ose vetĂ«m tĂ« ndaluar duke e pĂ«rdorur atĂ«.
Por kjo nuk Ă«shtĂ« veĂ§anĂ«risht e efektshme.
Me pak fjalĂ«, vargjeve nuk e le ju dinamike resize.
>> Pra, nĂ« njĂ«rĂ«n anĂ« ju merrni e gjallĂ«, e cila Ă«shtĂ« e mahnitshme.
PĂ«r shkak se ajo na lejon tĂ« bĂ«jmĂ« gjĂ«ra tĂ« si pĂ«rĂ§a dhe sundo,
kĂ«rko binar, tĂ« cilat ne kemi biseduar rreth nĂ« ekran kĂ«tu.
Por ju pĂ«rshkruaj veten nĂ« njĂ« qoshe.
Sa mĂ« shpejt qĂ« ju goditi fundi i array tuaj,
ju duhet tĂ« bĂ«ni njĂ« shumĂ« tĂ« operacion tĂ« shtrenjtĂ«
ose shkruaj njĂ« bandĂ« e tĂ«rĂ« e kodit pĂ«r tani merren me kĂ«tĂ« problem.
>> Pra, Ă§farĂ« nĂ«se nĂ« vend tĂ« kĂ«saj ne kishim diĂ§ka qĂ« quhet njĂ« listĂ«,
ose njĂ« listĂ« e lidhur nĂ« mĂ«nyrĂ« tĂ« veĂ§antĂ«?
Ă‡ka nĂ«se nĂ« vend qĂ« rectangles tĂ« kthyer prapa pĂ«r tĂ« mbĂ«shtetur,
ne kemi rectangles qĂ« lĂ«nĂ« pak bit e dhoma luaj nĂ« mes tyre?
Dhe, edhe pse unĂ« e kam tĂ«rhequr kĂ«tĂ« foto apo pĂ«rshtatur kĂ«tĂ« foto
nga njĂ« prej teksteve kĂ«tu pĂ«r tĂ« kthehet nĂ« tĂ« kthyer prapa shumĂ« tĂ« rregullt, nĂ« tĂ« vĂ«rtetĂ«,
njĂ« nga ato rectangles mund tĂ« jetĂ« deri kĂ«tu nĂ« kujtesĂ«.
NjĂ« prej tyre mund tĂ« jetĂ« deri kĂ«tu.
NjĂ« prej tyre mund tĂ« jetĂ« deri kĂ«tu, mbi kĂ«tu, dhe kĂ«shtu me radhĂ«.
>> Por, Ă§farĂ« nĂ«se ne tĂ«rhoqi, nĂ« kĂ«tĂ« rast, shigjeta
qĂ« nĂ« njĂ«farĂ« mĂ«nyre lidhjen e kĂ«tyre rectangles sĂ« bashku?
NĂ« tĂ« vĂ«rtetĂ«, ne kemi parĂ« njĂ« teknik mishĂ«rimi i njĂ« shigjetĂ«.
Ă‡farĂ« kemi pĂ«rdorur nĂ« tĂ« fundit ditĂ« qĂ«, nĂ«n kapuĂ§,
Ă«shtĂ« pĂ«rfaqĂ«sues i njĂ« shigjetĂ«?
NjĂ« akrep, e drejtĂ«?
>> Pra, Ă§farĂ« nĂ«se, nĂ« vend tĂ« vetĂ«m ruajtjen numrat,
si 9, 17, 22, 26, 34, Ă§farĂ« nĂ«se ne nuk ruhen
vetĂ«m njĂ« numĂ«r, por njĂ« akrep pranĂ« Ă§do numĂ«r tĂ« tillĂ«?
KĂ«shtu qĂ« shumĂ« si ju do tĂ« thread njĂ« gjilpĂ«rĂ« pĂ«rmes njĂ« bandĂ« e tĂ«rĂ« e rrobave,
gjĂ«rat disi i lidhur sĂ« bashku, nĂ« mĂ«nyrĂ« tĂ« ngjashme mund tĂ«
ne me pointers, si misheruar nga shigjeta kĂ«tu,
lloj endje sĂ« bashku kĂ«to rectangles individuale
duke nĂ« mĂ«nyrĂ« efektive duke pĂ«rdorur njĂ« tregues pranĂ« Ă§do numĂ«r qĂ«
vĂ« nĂ« njĂ« numĂ«r tjetĂ«r, qĂ« thekson, nga ana tjetĂ«r, disa numri i ardhshĂ«m?
Pra, me fjalĂ« tĂ« tjera, ajo qĂ« nĂ« qoftĂ« se ne tĂ« vĂ«rtetĂ« tĂ« kĂ«rkuar
pĂ«r tĂ« zbatuar diĂ§ka si kjo?
E pra pĂ«r fat tĂ« keq, kĂ«to rectangles, TĂ« paktĂ«n njĂ« me 9, 17, 22,
dhe kĂ«shtu me radhĂ«, kĂ«to nuk janĂ« mĂ« tĂ« Sheshet e bukur me numra tĂ« vetme.
Fund, drejtkĂ«ndĂ«sh mĂ« poshtĂ« 9, pĂ«r shembull,
pĂ«rfaqĂ«son atĂ« qĂ« duhet tĂ« jetĂ« njĂ« tregues, 32 bit.
Tani, unĂ« nuk jam ende nĂ« dijeni tĂ« ndonjĂ« lloji tĂ« dhĂ«nave nĂ« C qĂ« ju jep jo vetĂ«m njĂ« int
por njĂ« akrep krejt.
>> Pra, Ă§farĂ« Ă«shtĂ« zgjidhje nĂ«se duam tĂ« shpikĂ« pĂ«rgjigjen tonĂ« ndaj kĂ«saj?
Po?
>> Audienca: [padĂ«gjueshme]
>> DAVID J. Malan: Ă‡farĂ« Ă«shtĂ« ajo?
>> Audienca: Struktura e re.
>> DAVID J. Malan: Yeah, kĂ«shtu qĂ« pse tĂ« nuk kemi krijuar njĂ« strukturĂ« tĂ« re,
ose nĂ« C, strukturĂ«?
Ne e kemi parĂ« structs mĂ« parĂ«, nĂ« qoftĂ« se njĂ« kohĂ« tĂ« shkurtĂ«r, ku kemi marrĂ« me njĂ« strukturĂ« tĂ« studentĂ«ve
si ky, i cili kishte njĂ« emĂ«r dhe njĂ« shtĂ«pi.
NĂ« Pset 3 Breakout keni pĂ«rdorur njĂ« e tĂ«rĂ« bandĂ« e GRect structs-- dhe GOvals
qĂ« Stanford krijuar pĂ«r tĂ« Informacioni grumbull sĂ« bashku.
Pra, Ă§farĂ« nĂ«se kemi marrĂ« kĂ«tĂ« ide tĂ« njĂ«jtĂ« tĂ« fjalĂ« kyĂ§e "typedef" dhe "struct,"
dhe pastaj disa sende nxĂ«nĂ«s specifike, dhe ky zhvillohet nĂ« vijim:
typedef struct node-- dhe nyje Ă«shtĂ« vetĂ«m njĂ« shkencĂ« shumĂ« e pĂ«rgjithshme kompjuterike
Termi pĂ«r diĂ§ka nĂ« njĂ« strukturĂ« tĂ« tĂ« dhĂ«nave, njĂ« enĂ« nĂ« njĂ« strukturĂ« tĂ« dhĂ«nave.
NjĂ« nyjĂ« UnĂ« pretendojnĂ« do tĂ« ketĂ« njĂ« n int, tĂ«rĂ«sisht i hapur,
dhe pastaj pak mĂ« shumĂ« cryptically, kjo linjĂ« e dytĂ«, nyje struct * tjetĂ«r.
Por, nĂ« terma mĂ« pak teknike, Ă§farĂ« Ă«shtĂ« kjo linjĂ« e dytĂ«
e kodit brenda formatimin e teksteve kaĂ§urrel?
Po?
>> Audienca: [padĂ«gjueshme]
DAVID J. Malan: NjĂ« tregues pĂ«r njĂ« tjetĂ«r nyje.
Pra pa dyshim, sintaksĂ«s pak i fshehtĂ«.
Por nĂ« qoftĂ« se ju lexoni atĂ« fjalĂ« pĂ«r fjalĂ«, tjetĂ«r Ă«shtĂ« emri i njĂ« ndryshore.
Cili Ă«shtĂ« lloji i saj tĂ« dhĂ«nat?
Kjo Ă«shtĂ« njĂ« fjalĂ«shumĂ« pak kĂ«tĂ« herĂ«, por kjo Ă«shtĂ« e tipit struct nyje *.
Ă‡do herĂ« qĂ« ne kemi parĂ« diĂ§ka yll, qĂ« do tĂ« thotĂ« se Ă«shtĂ« njĂ« tregues pĂ«r atĂ« lloj tĂ« tĂ« dhĂ«nave.
Pra, tjetĂ«r Ă«shtĂ« me sa duket njĂ« tregues pĂ«r njĂ« nyje struct.
>> Tani, ajo qĂ« Ă«shtĂ« njĂ« nyje struct?
E pra, vini re e shihni ato njĂ«jtat fjalĂ« nĂ« krye tĂ« drejtĂ«.
Dhe me tĂ« vĂ«rtetĂ«, ju tĂ« shihni fjalĂ«n "Nyje" kĂ«tu poshtĂ« nĂ« pjesĂ«n e poshtme tĂ« majtĂ«.
Dhe kjo Ă«shtĂ« nĂ« fakt vetĂ«m njĂ« lehtĂ«si.
Vini re se nĂ« pĂ«rkufizimin tonĂ« tĂ« studentĂ«ve ka fjala "studenti" vetĂ«m njĂ« herĂ«.
Dhe kjo Ă«shtĂ« pĂ«r shkak se njĂ« student objekti nuk ishte vetĂ«-referues.
Nuk ka asgjĂ« nĂ« brendĂ«si tĂ« njĂ« studenti qĂ« ka nevojĂ« pĂ«r pikĂ« nĂ« njĂ« tjetĂ«r student,
persay.
Kjo do tĂ« jetĂ« lloj i pazakontĂ« nĂ« botĂ«n e vĂ«rtetĂ«.
>> Por, me njĂ« nyje nĂ« njĂ« lidhje lista, ne duam njĂ« nyje
tĂ« jetĂ« referues nĂ« njĂ« objekt tĂ« ngjashme.
Dhe kĂ«shtu njoftim ndryshimi kĂ«tu nuk Ă«shtĂ« vetĂ«m atĂ« qĂ« Ă«shtĂ« brenda formatimin e teksteve kaĂ§urrel.
Por ne e shtuar fjalĂ«n "nyje" nĂ« majĂ« si dhe
duke shtuar atĂ« tĂ« poshtme nĂ« vend tĂ« "studenti".
Dhe kjo Ă«shtĂ« vetĂ«m njĂ« detaj teknik kĂ«shtu qĂ«, pĂ«rsĂ«ri, strukturĂ« e tĂ« dhĂ«nave tuaja
mund tĂ« jenĂ« tĂ« vetĂ«-referues, nĂ« mĂ«nyrĂ« qĂ« njĂ« nyje mund tĂ« tregojnĂ« pĂ«r njĂ« tjetĂ«r nyje tĂ« tillĂ«.
>> Pra, Ă§farĂ« Ă«shtĂ« kjo nĂ« fund tĂ« fundit do tĂ« thotĂ« pĂ«r ne?
E pra, e, kjo stuff brenda Ă«shtĂ« pĂ«rmbajtja e nyje tonĂ«.
Kjo gjĂ« deri kĂ«tu, e drejtĂ« tĂ« lartĂ«, Ă«shtĂ« vetĂ«m aq
qĂ«, pĂ«rsĂ«ri, ne mund tĂ« referohen veten.
Dhe pastaj sende outermost, edhe pse nyje Ă«shtĂ« njĂ« term i ri,
ndoshta, Ă«shtĂ« ende njĂ«jtĂ« si nxĂ«nĂ«s dhe Ă§farĂ«
ishte nĂ«n kapuĂ§ nĂ« SPL.
>> Pra, nĂ«se ne tani kĂ«rkuar pĂ«r tĂ« filluar zbatimin e kĂ«saj liste tĂ« lidhur,
se si mund qĂ« ne tĂ« pĂ«rkthehet diĂ§ka si kjo pĂ«r kodin?
E pra, le tĂ« shohim vetĂ«m njĂ« shembull i njĂ« programi qĂ«
nĂ« fakt pĂ«rdor njĂ« listĂ« e lidhur.
NdĂ«r kodin e sotme tĂ« shpĂ«rndarjes Ă«shtĂ« njĂ« program i quajtur Lista Zero.
Dhe nĂ« qoftĂ« se unĂ« tĂ« drejtuar kĂ«tĂ« unĂ« krijuar njĂ« super GUI e thjeshtĂ«, Graphical User Interface,
por Ă«shtĂ« e vĂ«rtetĂ« vetĂ«m printf.
Dhe tani unĂ« kam dhĂ«nĂ« vetes njĂ« menu pak options-- Fshij, Insert, Search,
dhe kundĂ«rvĂ«nie.
Dhe Quit.
KĂ«to janĂ« vetĂ«m operacionet e pĂ«rbashkĂ«ta nĂ« njĂ« Struktura e tĂ« dhĂ«nave e njohur si njĂ« listĂ« link.
>> Tani, Fshij do tĂ« tĂ« fshirĂ« njĂ« numĂ«r nga lista.
Fut do tĂ« shtojĂ« njĂ« numĂ«r nĂ« listĂ«.
KĂ«rkimi do tĂ« shikojmĂ« pĂ«r numrin nĂ« listĂ«.
Dhe KundĂ«rvĂ«nie Ă«shtĂ« vetĂ«m njĂ« mĂ«nyrĂ« e sofistikuar pĂ«r tĂ« thĂ«nĂ«, tĂ« ecin nĂ«pĂ«r lista,
print it out, por kjo Ă«shtĂ« ajo.
Mos e ndryshoni atĂ« nĂ« asnjĂ« mĂ«nyrĂ«.
>> Pra, le tĂ« provoni kĂ«tĂ«.
Le tĂ« shkojnĂ« pĂ«rpara dhe tĂ« tipit 2.
Dhe atĂ«herĂ« unĂ« jam duke shkuar pĂ«r tĂ« futur numrin, thonĂ« 9.
Shkruani.
Dhe tani programi im Ă«shtĂ« vetĂ«m programuar pĂ«r tĂ« thĂ«nĂ«, lista Ă«shtĂ« tani 9.
Tani, kur tĂ« shkoj pĂ«rpara dhe tĂ« e Fut pĂ«rsĂ«ri, le
shkoj pĂ«rpara dhe zoom jashtĂ« dhe shkruani nĂ« 17.
Tani lista ime Ă«shtĂ« 9, pastaj 17.
NĂ«se unĂ« bĂ«j futur pĂ«rsĂ«ri, le tĂ« kaloni njĂ« tĂ« tillĂ«.
NĂ« vend tĂ« 22, si pĂ«r foto ne kemi qenĂ« nĂ« kĂ«rkim nĂ« kĂ«tu, mĂ« lejoni tĂ« kĂ«rcejnĂ« pĂ«rpara
dhe futur 26 tĂ« ardhshĂ«m.
KĂ«shtu qĂ« unĂ« jam duke shkuar pĂ«r tĂ« tipit 26.
Lista Ă«shtĂ« si unĂ« pres.
Por tani, vetĂ«m pĂ«r tĂ« parĂ« nĂ«se kĂ«tĂ« kod do tĂ« jetĂ« fleksibĂ«l, mĂ« lejoni tani
type 22, e cila tĂ« paktĂ«n konceptualisht, nĂ« qoftĂ« se ne jemi
mbajtur kĂ«tĂ« renditura, e cila Ă«shtĂ« me tĂ« vĂ«rtetĂ« do tĂ« jetĂ« njĂ« tjetĂ«r objektiv tĂ« drejtĂ« tani,
duhet tĂ« shkojnĂ« nĂ« mes tĂ« 17 dhe 26.
KĂ«shtu qĂ« unĂ« hit Enter.
NĂ« tĂ« vĂ«rtetĂ«, qĂ« punon.
Dhe kĂ«shtu qĂ« tani mĂ« lejoni tĂ« futur fundit, per foto, 34.
>> TĂ« gjithĂ« tĂ« drejtĂ«.
KĂ«shtu qĂ« tani pĂ«r tani mĂ« lejoni tĂ« pĂ«rcaktojnĂ« se Delete dhe kundĂ«rvĂ«nie dhe KĂ«rkimi bĂ«jĂ«,
nĂ« fakt, tĂ« punuar.
NĂ« fakt, nĂ« qoftĂ« se unĂ« do tĂ« kandidojĂ« KĂ«rko, le tĂ« kĂ«rkoni pĂ«r numrin 22, Enter.
Ajo gjeti 22.
Pra, kjo Ă«shtĂ« ajo qĂ« kjo Programi Lista Zero bĂ«n.
>> Por Ă§farĂ« Ă«shtĂ« nĂ« tĂ« vĂ«rtetĂ« ndodh nĂ« qĂ« zbaton kjo?
E pra, sĂ« pari unĂ« mund tĂ« ketĂ«, dhe nĂ« tĂ« vĂ«rtetĂ« UnĂ« kam njĂ« skedar tĂ« quajtur list0.h.
Dhe diku nĂ« atje Ă«shtĂ« ky line, typedef, nyje struct,
atĂ«herĂ« unĂ« kam formatimin e teksteve e mia kaĂ§urrel, int n, dhe pastaj struct-- Ă§farĂ« ishte pĂ«rkufizimi?
Nyje struct tjetĂ«r.
Pra, ne kemi nevojĂ« pĂ«r yllin.
Tani teknikisht tĂ« marrim nĂ« zakon i tĂ«rhequr kĂ«tu.
Ju mund tĂ« shihni tekstet dhe Referencat ne linje bĂ«jĂ« atĂ« atje.
Ă‹shtĂ« funksionalisht ekuivalente.
NĂ« fakt, kjo Ă«shtĂ« pak mĂ« tipike.
Por unĂ« do tĂ« jetĂ« nĂ« pĂ«rputhje me atĂ« qĂ« ne e bĂ«mĂ« pĂ«r herĂ« tĂ« fundit dhe tĂ« bĂ«jĂ« kĂ«tĂ«.
Dhe pastaj sĂ« fundi, unĂ« jam duke shkuar pĂ«r tĂ« bĂ«rĂ« kĂ«tĂ«.
>> Pra, nĂ« njĂ« header fotografi diku, nĂ« list0.h
sot Ă«shtĂ« ky pĂ«rkufizim struct, dhe ndoshta disa sende tĂ« tjera.
NdĂ«rkohĂ« nĂ« list0c ka do tĂ« jetĂ« disa gjĂ«ra.
Por ne jemi duke shkuar pĂ«r tĂ« vetĂ«m fillojnĂ« dhe nuk mbarojnĂ« kĂ«tĂ«.
List0.h Ă«shtĂ« njĂ« fotografi qĂ« unĂ« dua tĂ« pĂ«rfshijĂ« nĂ« dosjen time C.
Dhe pastaj nĂ« njĂ« pikĂ« unĂ« jam do tĂ« ketĂ« int, kryesor, tĂ« pavlefshme.
Dhe atĂ«herĂ« unĂ« jam duke shkuar pĂ«r tĂ« kanĂ« disa pĂ«r-bĂ«rĂ« Ă«shtĂ« kĂ«tu.
UnĂ« jam gjithashtu do tĂ« ketĂ« njĂ« prototip, si pavlefshĂ«m, kĂ«rkimi, int,
n, qĂ«llimi i tĂ« cilit nĂ« jetĂ« Ă«shtĂ« pĂ«r tĂ« kĂ«rkuar pĂ«r njĂ« element.
Dhe pastaj kĂ«tu kam tĂ« drejtĂ« nĂ« Kodi i sotĂ«m, i pavlefshĂ«m, kĂ«rko, int, n,
asnjĂ« presje por formatimin e teksteve tĂ« hapur kaĂ§urrel.
Dhe tani unĂ« dua tĂ« disi tĂ« kĂ«rkuar pĂ«r njĂ« element nĂ« kĂ«tĂ« listĂ«.
Por ne nuk kemi mjaft Informacioni nĂ« ekran ende.
UnĂ« nuk e kanĂ« nĂ« tĂ« vĂ«rtetĂ« pĂ«rfaqĂ«suar listĂ« vetĂ«.
Pra, njĂ« mĂ«nyrĂ« qĂ« ne mund tĂ« zbatojĂ« njĂ« listĂ« tĂ« lidhura nĂ« njĂ« program
po unĂ« lloj i duan tĂ« bĂ«jnĂ« diĂ§ka si deklarojĂ« lidhur listĂ«n deri kĂ«tu.
PĂ«r thjeshtĂ«si, unĂ« jam duke shkuar pĂ«r tĂ« bĂ«rĂ« ky globale, edhe pse nĂ« ne pĂ«rgjithshme
nuk duhet ta bĂ«jĂ« kĂ«tĂ« shumĂ«.
Por kjo do tĂ« thjeshtojĂ« kĂ«tĂ« shembull.
KĂ«shtu qĂ« unĂ« dua tĂ« deklaroj njĂ« listĂ« tĂ« lidhura deri kĂ«tu.
Tani, se si mund tĂ« bĂ«j se?
>> Ja foto e njĂ« listĂ« tĂ« lidhura.
Dhe unĂ« nuk e bĂ«j tĂ« vĂ«rtetĂ« e di se nĂ« kĂ«tĂ« moment se si
UnĂ« jam duke shkuar pĂ«r tĂ« shkuar nĂ« lidhje me pĂ«rfaqĂ«simin e kaq shumĂ« gjĂ«ra me vetĂ«m njĂ«
ndryshueshme nĂ« kujtesĂ«n.
Por mendoj se pĂ«rsĂ«ri njĂ« moment.
E gjithĂ« kjo kohĂ« ne kemi pasur vargjet, tĂ« cilat ne pastaj
shpallur tĂ« jetĂ« vargjeve tĂ« karaktere, tĂ« cilat ne pastaj
zbuluar tĂ« jetĂ« vetĂ«m njĂ« akrep tĂ« karakterit tĂ« parĂ«
nĂ« njĂ« grup tĂ« karaktereve qĂ« Ă«shtĂ« ndĂ«rprerĂ« null.
Pra, nga kjo logjikĂ«, dhe me kĂ«tĂ« lloj foto e mbjellĂ«se mendimet tuaja,
Ă§farĂ« duhet ne fakt shkruani nĂ« tonĂ« Kodi pĂ«r tĂ« pĂ«rfaqĂ«suar njĂ« listĂ« e lidhur?
Sa i kĂ«tij informacioni nuk kemi nevojĂ« pĂ«r tĂ« kapur nĂ« kodin e C, do tĂ« thoni?
Po?
>> Audienca: Ne kemi nevojĂ« pĂ«r njĂ« tregues pĂ«r njĂ« nyje.
DAVID J. Malan: NjĂ« tregues pĂ«r njĂ« nyje.
NĂ« mĂ«nyrĂ« tĂ« veĂ§antĂ«, e cila do nyje tuaj Instinktet jetĂ« pĂ«r tĂ« mbajtur njĂ« tregues pĂ«r tĂ«?
>> Audienca: nyja e parĂ«.
>> DAVID J. Malan: Po, ndoshta vetĂ«m i pari.
Dhe vini re, i pari Nyja Ă«shtĂ« njĂ« formĂ« tĂ« ndryshme.
Ă‹shtĂ« vetĂ«m gjysma e madhĂ«sisĂ« sĂ« struct, sepse kjo Ă«shtĂ« nĂ« tĂ« vĂ«rtetĂ« vetĂ«m njĂ« akrep.
Pra, Ă§farĂ« ju mund tĂ« vĂ«rtetĂ« tĂ« bĂ«ni Ă«shtĂ« tĂ« deklarojĂ« njĂ« listĂ« tĂ« lidhura tĂ« jenĂ« tĂ« tipit nyje *.
Dhe le tĂ« vetĂ«m e quajti atĂ« mĂ« parĂ« dhe nisja atĂ« tĂ« null.
Pra null, pĂ«rsĂ«ri, Ă«shtĂ« duke ardhur nĂ« foto kĂ«tu.
Jo vetĂ«m qĂ« Ă«shtĂ« pĂ«rdorur null si si njĂ« tĂ« veĂ§antĂ« Vlera e kthyer pĂ«r gjĂ«ra tĂ« tilla si getstring
dhe malloc, null Ă«shtĂ« gjithashtu zero akrep, mungesa e njĂ« akrep,
nĂ«se ju do.
Ajo thjesht do tĂ« thotĂ« asgjĂ« nuk Ă«shtĂ« ende kĂ«tu.
Tani sĂ« pari, unĂ« mund tĂ« kemi e quajti kĂ«tĂ« gjĂ«.
UnĂ« mund tĂ« ketĂ« e quajti atĂ« "lista" ose ndonjĂ« numĂ«r tĂ« gjĂ«ra tĂ« tjera.
Por unĂ« jam duke e quajtur atĂ« "e parĂ«" nĂ« mĂ«nyrĂ« qĂ« Linjat atĂ« me kĂ«tĂ« foto.
Pra, ashtu si njĂ« varg mund tĂ« pĂ«rfaqĂ«sohen me adresĂ«n e bajt saj tĂ« parĂ«,
kĂ«shtu qĂ« mund njĂ« listĂ« e lidhur.
Dhe ne do tĂ« shohim tĂ« dhĂ«na tĂ« tjera struktura tĂ« pĂ«rfaqĂ«sohet
me vetĂ«m njĂ« akrep, njĂ« shigjetĂ« 32-bit, duke treguar
nĂ« nyjen e parĂ« nĂ« strukturĂ«n.
>> Por tani le tĂ« presin njĂ« problem.
NĂ«se unĂ« jam vetĂ«m duke kujtuar nĂ« programin tim tĂ« adresave
i nyjĂ«s sĂ« parĂ«, i pari drejtkĂ«ndĂ«sh nĂ« kĂ«tĂ« strukturĂ« tĂ« tĂ« dhĂ«nave,
ajo qĂ« mĂ« mirĂ« e kishte tĂ« jetĂ« rasti pĂ«r Zbatimi i pjesĂ«s tjetĂ«r tĂ« listĂ«s sime?
Ă‡farĂ« Ă«shtĂ« njĂ« detaj i rĂ«ndĂ«sishĂ«m qĂ« do pĂ«r tĂ« siguruar kĂ«tĂ« tĂ« vĂ«rtetĂ« punon?
Dhe nga "tĂ« vĂ«rtetĂ« punon" UnĂ« do tĂ« thotĂ«, shumĂ« si njĂ« varg,
na lejon tĂ« shkojnĂ« nga karakteri i parĂ« nĂ« emĂ«r Davin ndaj tĂ« dytĂ«,
tĂ« tretĂ«, pĂ«r tĂ« katĂ«rt, deri nĂ« fund,
si mund ta dimĂ« kur jemi nĂ« fund nga njĂ« listĂ« e lidhur qĂ« duket si kjo?
Kur Ă«shtĂ« null.
Dhe unĂ« e kam pĂ«rfaqĂ«suar kĂ«tĂ« lloj tĂ« si si njĂ« fuqinĂ« inxhinier elektrik,
me argumentim pak simbol, nĂ« terezi.
Por kjo vetĂ«m do tĂ« thotĂ« null nĂ« kĂ«tĂ« rast.
Ju mund tĂ« tĂ«rheqĂ« atĂ« Ă§do numĂ«r mĂ«nyra, por ky autor
ndodhur pĂ«r tĂ« pĂ«rdorur kĂ«tĂ« simbol kĂ«tu.
>> PĂ«r sa kohĂ« qĂ« ne jemi stringing tĂ« gjitha kĂ«to nyje bashku,
vetĂ«m duke kujtuar se ku e para Ă«shtĂ«, aq e gjatĂ«
si ne kemi vĂ«nĂ« njĂ« simbol tĂ« veĂ§antĂ« nĂ« nyje shumĂ« tĂ« fundit nĂ« listĂ«,
dhe ne do tĂ« pĂ«rdorim null, sepse kjo Ă«shtĂ« atĂ« qĂ« kemi nĂ« dispozicion pĂ«r ne,
kjo listĂ« Ă«shtĂ« e plotĂ«.
Dhe edhe nĂ« qoftĂ« se unĂ« vetĂ«m tĂ« ju jap njĂ« tregues pĂ«r elementi i parĂ«, ju, programues,
me siguri mund tĂ« hyni nĂ« pjesĂ«n tjetĂ«r tĂ« saj.
Por le tĂ« le mendjen tuaj bredhin pak,
nĂ« qoftĂ« se ata nuk janĂ« tashmĂ« tĂ« mjaft wandered-- Ă§farĂ« Ă«shtĂ«
do tĂ« jetĂ« hera e drejtimin e gjetur ndonjĂ« gjĂ« nĂ« kĂ«tĂ« listĂ«?
Damn ajo, kjo Ă«shtĂ« O e madhe e n, i cili nuk Ă«shtĂ« i keq, ne paanĂ«sisĂ«.
Por Ă«shtĂ« linear.
Ne kemi hequr dorĂ« atĂ« tipar i vargjeve duke lĂ«vizur mĂ« shumĂ«
drejt kĂ«tĂ« foto e dinamik endura sĂ« bashku apo nyje tĂ« lidhura?
Ne kemi hequr dorĂ« qasje tĂ« rastit.
NjĂ« grup Ă«shtĂ« e mirĂ« pĂ«r shkak se gjithĂ§ka matematikisht
Ă«shtĂ« kthyer prapa pĂ«r tĂ« kthyer prapa.
Edhe pse kĂ«tĂ« foto duket goxha, dhe madje edhe
edhe pse kjo duket si kĂ«to nyje janĂ« Spaced bukur larg, nĂ« realitet
ata mund tĂ« jenĂ« kudo.
OX1, Ox50, Ox123, Ox99, kĂ«to nyje mund tĂ« jetĂ« kudo.
Sepse malloc bĂ«n kujtesĂ«s nga plehrat, por kudo nĂ« grumbull.
Ju nuk domosdoshmĂ«risht e di se Ă«shtĂ« e do tĂ« jetĂ« pĂ«r tĂ« kthyer prapa nĂ« shpinĂ«.
Dhe kĂ«shtu kjo foto nĂ« realitet tĂ« nuk do tĂ« jetĂ« mjaft e kjo goxha.
>> Pra, ajo do tĂ« marrĂ« njĂ« grimĂ« e punojnĂ« pĂ«r tĂ« zbatuar kĂ«tĂ« funksion.
Pra, le tĂ« zbatojĂ« kĂ«rkim tani.
Dhe ne do tĂ« shohim lloj a mĂ«nyrĂ« e zgjuar pĂ«r tĂ« bĂ«rĂ« kĂ«tĂ«.
Pra, nĂ«se unĂ« jam njĂ« funksion kĂ«rko dhe UnĂ« jam duke dhĂ«nĂ« njĂ« ndryshueshme, numĂ«r i plotĂ« n
pĂ«r tĂ« kĂ«rkuar, unĂ« duhet tĂ« dini Sintaksa e re pĂ«r kĂ«rkim brenda
e njĂ« strukture qĂ« Ă«shtĂ« vuri nĂ« dukje, pĂ«r tĂ« gjetur n.
Pra, le ta bĂ«jmĂ« kĂ«tĂ«.
>> Pra, sĂ« pari unĂ« jam duke shkuar pĂ«r tĂ« shkuar pĂ«rpara dhe tĂ« deklarojĂ« njĂ« nyje *.
Dhe unĂ« jam duke shkuar pĂ«r tĂ« thirrur atĂ« akrep, vetĂ«m nga konventa.
Dhe unĂ« jam duke shkuar pĂ«r tĂ« nisja atĂ« tĂ« parĂ«.
Dhe tani unĂ« mund ta bĂ«jĂ« kĂ«tĂ« nĂ« njĂ« numĂ«r mĂ«nyrash.
Por unĂ« jam duke shkuar pĂ«r tĂ« marrĂ« njĂ« qasje tĂ« pĂ«rbashkĂ«t.
NdĂ«rsa akrep nuk Ă«shtĂ« e barabartĂ« me null, dhe kjo Ă«shtĂ« sintaksĂ« e vlefshme.
Dhe ai thjesht do tĂ« thotĂ« tĂ« bĂ«jĂ« tĂ« mĂ«poshtme, nĂ« mĂ«nyrĂ« kohĂ« sa ju nuk jeni duke treguar asgjĂ«.
Ă‡farĂ« doni tĂ« bĂ«ni?
>> NĂ«se akrep dot n, mĂ« lejoni tĂ« kthehem pĂ«r tĂ« qĂ«, equals-- barabartĂ« Ă§farĂ«?
Ă‡farĂ« vlera jam duke kĂ«rkuar pĂ«r?
N aktuale qĂ« u miratua nĂ«.
KĂ«shtu qĂ« kĂ«tu Ă«shtĂ« njĂ« tjetĂ«r tipar i C dhe shumĂ« gjuhĂ«.
Edhe pse struktura tĂ« quajtur nyja ka njĂ« n vlerĂ«n, krejtĂ«sisht legjitime
tĂ« kemi gjithashtu njĂ« argument lokale ose tĂ« ndryshueshme quajtur n.
Sepse edhe ne, me sytĂ« e njeriut, mund tĂ« dallojĂ«
se ky n Ă«shtĂ« me sa duket ndryshĂ«m nga kjo n.
PĂ«r shkak se sintaksa Ă«shtĂ« e ndryshme.
Ju keni marrĂ« njĂ« pikĂ« dhe njĂ« tregues, ndĂ«rsa ky nuk ka gjĂ« tĂ« tillĂ«.
Pra, kjo Ă«shtĂ« nĂ« rregull.
Kjo Ă«shtĂ« nĂ« rregull pĂ«r tĂ« thirrur ata tĂ« njĂ«jtat gjĂ«ra.
>> NĂ«se unĂ« do ti gjeni kĂ«tĂ«, unĂ« jam i do tĂ« duan tĂ« bĂ«jnĂ« diĂ§ka
si tĂ« njoftuar se ne kemi gjetur n.
Dhe ne do tĂ« iki se si njĂ« komentoni ose kod pseudokod.
TjetĂ«r, dhe kĂ«tu Ă«shtĂ« Pjesa interesante, Ă§farĂ«
bĂ«j qĂ« unĂ« dua tĂ« bĂ«j nĂ« qoftĂ« se nyja e tanishme nuk pĂ«rmban n qĂ« unĂ« intereson?
Si mund tĂ« arrihet nĂ« vijim?
NĂ«se gishtin tim nĂ« moment Ă«shtĂ« PTR, dhe kjo Ă«shtĂ«
duke treguar nĂ« Ă§farĂ«do parĂ« Ă«shtĂ« vĂ«nĂ« nĂ«,
si mund tĂ« lĂ«vizĂ« gishtin tim pĂ«r nyjen e ardhshĂ«m nĂ« kod?
E pra, Ă§farĂ« Ă«shtĂ« Breadcrumb ne jemi duke shkuar pĂ«r tĂ« ndjekur nĂ« kĂ«tĂ« rast?
Audienca: [padĂ«gjueshme].
DAVID J. Malan: Po, kĂ«shtu e ardhshme.
Pra, nĂ«se unĂ« kthehem nĂ« tim Kodi kĂ«tu, nĂ« tĂ« vĂ«rtetĂ«, unĂ« jam
do tĂ« shkojnĂ« pĂ«rpara dhe tĂ« thonĂ« treguesin, i cili Ă«shtĂ« vetĂ«m njĂ« variable-- pĂ«rkohshme Ă«shtĂ«
njĂ« emĂ«r tĂ« Ă§uditshĂ«m, ptr, por kjo Ă«shtĂ« vetĂ«m si temp--
UnĂ« jam duke shkuar pĂ«r tĂ« vendosur treguesin barabartĂ« me Ă§farĂ«do is-- akrep
dhe pĂ«rsĂ«ri, kjo do tĂ« jetĂ« njĂ« pak buggy pĂ«r njĂ« pikĂ« moment-- ardhshĂ«m.
Me fjalĂ« tĂ« tjera, unĂ« jam duke shkuar pĂ«r tĂ« marrĂ« tim Gishti qĂ« Ă«shtĂ« duke treguar nĂ« kĂ«tĂ« nyje
kĂ«tu dhe unĂ« jam duke shkuar pĂ«r tĂ« thĂ«nĂ«, ju e dini atĂ«, tĂ« marrĂ« njĂ« sy nĂ« fushĂ«n e ardhshme
dhe lĂ«vizin gishtin tuaj pĂ«r tĂ« Ă§farĂ«do qoftĂ« ajo Ă«shtĂ« duke treguar.
Dhe kjo do tĂ« pĂ«rsĂ«ritur, tĂ« pĂ«rsĂ«ritur, tĂ« pĂ«rsĂ«ritur.
Por kur bĂ«n gishtin tim ndaluar duke bĂ«rĂ« asgjĂ« nĂ« tĂ« gjitha?
Sa mĂ« shpejt qĂ« ajo linjĂ« e kodit nĂ« shkelma?
Audienca: [padĂ«gjueshme]
DAVID J. Malan: NĂ«se pikĂ« ndĂ«rsa tregues nuk Ă«shtĂ« e barabartĂ« me null.
NĂ« njĂ« moment gisht My do tĂ« jetĂ« duke treguar null
dhe unĂ« jam duke shkuar pĂ«r tĂ« realizuar qĂ« Ă«shtĂ« fundi i kĂ«saj liste.
Tani, kjo Ă«shtĂ« pak gĂ«njeshtĂ«r e bardhĂ« pĂ«r thjeshtĂ«si.
Ajo rezulton se edhe pse ne vetĂ«m mĂ«suar kĂ«tĂ« dot simbol
pĂ«r strukturat, akrep nuk Ă«shtĂ« njĂ« struct.
ptr Ă«shtĂ« ajo?
VetĂ«m tĂ« jenĂ« mĂ« nitpicky.
Ă‹shtĂ« njĂ« tregues pĂ«r njĂ« nyje.
Kjo nuk Ă«shtĂ« njĂ« nyje nĂ« vetvete.
NĂ«se unĂ« nuk kishte asnjĂ« yll kĂ«tu, akrep absolutely-- kjo Ă«shtĂ« njĂ« nyje.
Kjo Ă«shtĂ« si njĂ« javĂ« Deklarata e njĂ« ndryshore,
edhe pse fjala "nyja" Ă«shtĂ« e re.
>> Por sa mĂ« shpejt qĂ« ne tĂ« futur njĂ« yll, kjo Ă«shtĂ« tani njĂ« tregues pĂ«r njĂ« nyje.
Dhe pĂ«r fat tĂ« keq ju nuk mund tĂ« pĂ«rdorni dot simbol pĂ«r njĂ« akrep.
Ju duhet tĂ« pĂ«rdorni arrow simbol, i cili, habitshme,
Ă«shtĂ« hera e parĂ« Ă§do pjesĂ« i sintaksĂ«s duket intuitive.
Kjo fjalĂ« pĂ«r fjalĂ« duket si njĂ« shigjetĂ«.
Dhe kĂ«shtu kjo Ă«shtĂ« njĂ« gjĂ« e mirĂ«.
Dhe kĂ«tu fjalĂ« pĂ«r fjalĂ« duket si njĂ« shigjetĂ«.
KĂ«shtu qĂ« unĂ« mendoj se Ă«shtĂ« la-- unĂ« nuk bĂ«j mendoni se unĂ« jam mbi-kryerjen here-- I
mendoj se kjo Ă«shtĂ« pjesa e fundit e re i sintaksĂ«s ne jemi duke shkuar pĂ«r tĂ« parĂ«.
Dhe fatmirĂ«sisht, Ă«shtĂ« e vĂ«rtetĂ« pak mĂ« shumĂ« intuitiv.
>> Tani, pĂ«r ato prej jush qĂ« mund tĂ« preferojnĂ« rrugĂ«n e vjetĂ«r,
ju ende mund tĂ« pĂ«rdorni dot simbol.
Por si pĂ«r sesionin e sĂ« hĂ«nĂ«s bisedĂ«, kemi parĂ«
nevojĂ« pĂ«r tĂ« shkuar atje, shkoni nĂ« se adresuar, dhe pastaj tĂ« hyrĂ« nĂ« fushĂ«.
Pra, kjo Ă«shtĂ« edhe e saktĂ«.
Dhe sinqerisht, ky Ă«shtĂ« njĂ« pak mĂ« shumĂ« pedant.
Ju jeni fjalĂ« pĂ«r fjalĂ« duke thĂ«nĂ«, dereference tregues dhe shkoni atje.
Pastaj kap .n, fushĂ« e quajtur n.
Por sinqerisht, askush nuk dĂ«shiron tĂ« shkruani apo lexoni kĂ«tĂ«.
Dhe kĂ«shtu bota shpikur simbol shigjeta, tĂ« cilat
Ă«shtĂ« ekuivalent, identike, kjo Ă«shtĂ« vetĂ«m sheqeri sintaktik.
Pra, njĂ« mĂ«nyrĂ« e sofistikuar pĂ«r tĂ« thĂ«nĂ« kĂ«tĂ« duket mĂ« mirĂ«, ose tĂ« duket e thjeshtĂ«.
>> Deri tani unĂ« jam duke shkuar pĂ«r tĂ« bĂ«rĂ« njĂ« gjĂ« tjetĂ«r.
UnĂ« jam duke shkuar pĂ«r tĂ« thĂ«nĂ« "pushim" edhe unĂ« kam gjetur atĂ« kĂ«shtu qĂ« unĂ« nuk e mbaj nĂ« kĂ«rkim pĂ«r tĂ«.
Por kjo Ă«shtĂ« esencĂ« e njĂ« funksion kĂ«rkimi.
Por kjo Ă«shtĂ« njĂ« shumĂ« mĂ« e lehtĂ«, nĂ« fund, pĂ«r tĂ« mos ecin nĂ«pĂ«r kodit.
Kjo Ă«shtĂ« me tĂ« vĂ«rtetĂ« zbatimi formal e kĂ«rkimit nĂ« kodin e sotme tĂ« shpĂ«rndarjes.
UnĂ« guxoj tĂ« them se nuk Ă«shtĂ« futur veĂ§anĂ«risht e bukur pĂ«r tĂ« ecur nĂ«pĂ«r
me sy, as nuk Ă«shtĂ« fshirĂ«, madje edhe megjithĂ«se nĂ« fund tĂ« ditĂ«s
ata avulloj nĂ« mĂ«nyrĂ« tĂ« drejtĂ« heuristics thjeshtĂ«.
>> Pra, le ta bĂ«jmĂ« kĂ«tĂ«.
NĂ«se ju do humor kĂ«tu, kam bĂ«rĂ« tĂ« sjellĂ« njĂ« bandĂ« e topa stresit.
I sollĂ«n njĂ« bandĂ« tĂ« numrave.
Dhe mund tĂ« marrim vetĂ«m disa vullnetarĂ« tĂ« pĂ«rfaqĂ«sojĂ« 9, 17, 20, 22, 29, dhe 34?
Pra, nĂ« thelb tĂ« gjithĂ« qĂ« Ă«shtĂ« sot kĂ«tu.
Kjo ishte njĂ«, dy, tre, katĂ«r, pesĂ«, gjashtĂ« njerĂ«z.
Dhe unĂ« kam qenĂ« i kĂ«rkuar pĂ«r tĂ« go-- tĂ« parĂ«, nuk ka njĂ« nĂ« pjesĂ«n e pasme ngre duart e tyre.
OK, njĂ«, dy, tre, katĂ«r, five-- lejoni tĂ« ngarkesĂ«s balance-- gjashtĂ«.
OK, ju gjashtĂ« vijnĂ« mĂ« lart.
Ne do tĂ« duhet njerĂ«zit e tjerĂ«.
Ne sjellĂ« topa stresit shtesĂ«.
Dhe nĂ« qoftĂ« se ju mund tĂ«, pĂ«r vetĂ«m njĂ« moment, linjĂ«
veten deri vetĂ«m si kjo foto kĂ«tu.
>> TĂ« gjithĂ« tĂ« drejtĂ«.
Le tĂ« shohim, si e ke emrin?
>> Audienca: Andrew.
>> DAVID J. Malan: Andrew, ju jeni numĂ«r 9.
GĂ«zohem qĂ« u njohĂ«m.
KĂ«tu ju shkoni.
Audienca: Jen.
DAVID J. Malan: Jen.
David.
Numri 17.
Po?
>> Audienca: Jam Julia.
>> DAVID J. Malan: Julia, David.
Numri 20.
Audienca: krishterĂ«.
DAVID J. Malan: krishterĂ«, David.
Numri 22.
Dhe?
>> Audienca: JP.
DAVID J. Malan: JP.
Numri 29.
KĂ«shtu qĂ« tĂ« shkojnĂ« pĂ«rpara dhe pĂ«r tĂ« marrĂ« in-- Uh oh.
Uh oh.
Koha e pritjes.
20.
A ka dikush njĂ« shĂ«nues?
Audienca: UnĂ« kam marrĂ« njĂ« sharpie.
DAVID J. Malan: Ju mori njĂ« sharpie?
OK.
Dhe ka njeri tĂ« ketĂ« njĂ« copĂ« letĂ«r?
Ruaj leksion.
Hajde.
Audienca: Ne kemi marrĂ« atĂ«.
DAVID J. Malan: Ne e mori atĂ«?
NĂ« rregull, ju faleminderit.
KĂ«tu ne do tĂ« shkojmĂ«.
A ishte kjo nga ju?
Ju vetĂ«m ruajtur ditĂ«.
Pra 29.
TĂ« gjithĂ« tĂ« drejtĂ«.
UnĂ« misspelled 29, por OK.
Shkoni pĂ«rpara.
NĂ« rregull, unĂ« do tĂ« ju jap stilolaps tuaj mbrapa Ă§ast.
Pra, ne kemi kĂ«to folks kĂ«tu.
Le tĂ« ketĂ« njĂ« tjetĂ«r.
Gabe, nuk ju duan tĂ« luajnĂ« elementi i parĂ« kĂ«tu?
Ne do tĂ« duhet tĂ« ju pĂ«r pikĂ« nĂ« kĂ«to folks gjobĂ«.
Pra 9, 17, 20, 22, lloj e 29, dhe pastaj 34.
A e kemi humbur dikĂ«?
UnĂ« kam njĂ« 34.
Ku did-- OK, i cili dĂ«shiron tĂ« jetĂ« 34?
OK, eja lart, 34.
NĂ« rregull, kjo do tĂ« jetĂ« edhe vlerĂ« kulm.
Si e keni emrin?
>> Audienca: Peter.
>> DAVID J. Malan: Peter, hajde lart.
TĂ« gjithĂ« tĂ« drejtĂ«, kĂ«shtu qĂ« kĂ«tu Ă«shtĂ« njĂ« tĂ«rĂ« bandĂ« e nyjeve.
Secili nga ju djema pĂ«rfaqĂ«son njĂ«ra nga kĂ«to drejtkĂ«ndĂ«she.
Dhe Gabe, pak e Ă§uditshme njeri jashtĂ«, paraqet parĂ«.
Pra, akrep i tij Ă«shtĂ« pak mĂ« e vogĂ«l nĂ« ekran se tĂ« gjithĂ« tĂ« tjerĂ«t.
Dhe nĂ« kĂ«tĂ« rast, secili prej tuaj tĂ« majtĂ« Duart do tĂ« ose pikĂ« poshtĂ«,
duke pĂ«rfaqĂ«suar null, kĂ«shtu vetĂ«m mungesa e njĂ« akrep,
ose ajo do tĂ« jetĂ« duke treguar nĂ« njĂ« nyje tjetĂ«r pĂ«r ju.
>> Deri tani, nĂ«se ju zbukuro veten si foto
kĂ«tu, tĂ« shkojnĂ« pĂ«rpara dhe pikĂ« nĂ« njĂ«ri-tjetrin, me Gabe
nĂ« veĂ§anti duke treguar nĂ« numĂ«r 9 tĂ« pĂ«rfaqĂ«suar listĂ«n.
OK, dhe numrin 34, dorĂ«n tuaj tĂ« majtĂ« duhet vetĂ«m tĂ« vĂ«nĂ« nĂ« dysheme.
>> OK, kĂ«shtu qĂ« kjo Ă«shtĂ« lista e lidhur.
Pra, kjo Ă«shtĂ« skenari nĂ« fjalĂ«.
Dhe nĂ« tĂ« vĂ«rtetĂ«, kjo Ă«shtĂ« pĂ«rfaqĂ«sues e njĂ« klasĂ« tĂ« problemeve
qĂ« ju mund tĂ« pĂ«rpiqet pĂ«r tĂ« zgjidhur me kodin.
Ju dĂ«shironi pĂ«r tĂ« nĂ« fund tĂ« fundit futur njĂ« element i ri nĂ« listĂ«.
NĂ« kĂ«tĂ« rast, ne do tĂ« provoni futur numrin 55.
Por nuk do tĂ« jetĂ« raste tĂ« ndryshme tĂ« marrin nĂ« konsideratĂ«.
Dhe nĂ« tĂ« vĂ«rtetĂ«, kjo do tĂ« jetĂ« njĂ« i madh-foto takeaways kĂ«tu, Ă«shtĂ«,
cilat janĂ« raste tĂ« ndryshme.
Cilat janĂ« tĂ« ndryshme nĂ«se kushteve ose DegĂ«t qĂ« programi juaj mund tĂ« kenĂ«?
>> E pra, numri qĂ« ju jeni duke u pĂ«rpjekur pĂ«r tĂ« insert, tĂ« cilat ne e dimĂ« tani qĂ« tĂ« jetĂ« 55,
por nĂ« qoftĂ« se ju nuk e dini paraprakisht, unĂ« guxoj tĂ« them
bie nĂ« tĂ« paktĂ«n tre situatat e mundshme.
Ku mund tĂ« jetĂ« njĂ« element i ri?
Audienca: Dhe nĂ« fund apo tĂ« mesme.
DAVID J. Malan: NĂ« fund, nĂ« mesme, ose nĂ« fillim.
KĂ«shtu qĂ« unĂ« pretendojnĂ« se ka tĂ« paktĂ«n Tre probleme ne kemi nevojĂ« pĂ«r tĂ« zgjidhur.
Le tĂ« zgjedhin atĂ« qĂ« Ă«shtĂ« ndoshta ndoshta mĂ« e thjeshtĂ«
njĂ«, ku elementi ri takon nĂ« fillim.
KĂ«shtu qĂ« unĂ« jam do tĂ« ketĂ« kodin mjaft si tĂ« kĂ«rkoni, tĂ« cilĂ«n unĂ« vetĂ«m shkroi.
Dhe unĂ« jam duke shkuar tĂ« ketĂ« PTR, e cila UnĂ« do tĂ« pĂ«rfaqĂ«soj kĂ«tu me gishtin tim,
si zakonisht.
>> Dhe mbani mend, se Ă§farĂ« vlerĂ« nuk e kemi nisja ptr tĂ«?
Pra, ne e firmosur atĂ« null fillimisht.
Por atĂ«herĂ« Ă§farĂ« bĂ«ri qĂ« ne tĂ« bĂ«jmĂ« njĂ« herĂ« ne ishin brenda funksionin tonĂ« tĂ« kĂ«rkimit?
Ne kemi vendosur tĂ« barabartĂ« me parĂ«, e cila nuk do tĂ« thotĂ« duke bĂ«rĂ« kĂ«tĂ«.
NĂ«se unĂ« vĂ«nĂ« PTR barabartĂ« pĂ«r tĂ« parĂ«, se Ă§farĂ« duhet dora ime tĂ« vĂ«rtetĂ« tĂ« jetĂ« duke treguar?
Drejta.
Pra, nĂ«se Gabe dhe unĂ« do tĂ« jenĂ« vlera tĂ« barabarta kĂ«tu,
ne kemi nevojĂ« pĂ«r tĂ« dy pikĂ« nĂ« numrin 9.
>> Pra, ky ishte fillimi i historisĂ« sonĂ«.
Dhe tani kjo Ă«shtĂ« vetĂ«m i hapur, edhe pse Sintaksa Ă«shtĂ« e re.
Konceptualisht kjo Ă«shtĂ« vetĂ«m kĂ«rkimi linear.
55 Ă«shtĂ« e barabartĂ« me 9?
Ose mĂ« mirĂ«, le tĂ« thonĂ« se mĂ« pak se 9.
Sepse unĂ« jam duke u pĂ«rpjekur pĂ«r tĂ« kuptoj se ku pĂ«r tĂ« vĂ«nĂ« 55.
MĂ« pak se 9, mĂ« pak se 17, me pak se 20, me pak se 22, me pak se 29,
mĂ« pak se 34, nr.
Deri tani ne jemi nĂ« rast njĂ« nga tĂ« paktĂ«n tre.
>> NĂ«se unĂ« dua tĂ« futur 55 mbi kĂ«tu, Ă§farĂ« rreshta tĂ« kodit duhet tĂ« merrni ekzekutuar?
Si e bĂ«n kĂ«tĂ« foto tĂ« njerĂ«zit kanĂ« nevojĂ« pĂ«r tĂ« ndryshuar?
Ă‡farĂ« duhet tĂ« bĂ«j me dorĂ«n time tĂ« majtĂ«?
Kjo duhet tĂ« jetĂ« null fillimisht, sepse I vjen ne fund te lista.
Dhe Ă§farĂ« duhet tĂ« ndodhĂ« kĂ«tu me Pjetrin, ishte ajo?
Ai Ă«shtĂ« padyshim do tĂ« tregojnĂ« pĂ«r mua.
KĂ«shtu qĂ« unĂ« pretendojnĂ« se ka tĂ« paktĂ«n dy linja i kodit nĂ« kodin mostĂ«r nga sot
qĂ« do tĂ« zbatojĂ« kĂ«tĂ« Skenari i shtuar 55 nĂ« bisht.
Dhe mund tĂ« ketĂ« dikush hop dhe vetĂ«m pĂ«rfaqĂ«sojnĂ« 55?
NĂ« rregull, ti je 55 tĂ« reja.
>> Pra, tani Ă§ka nĂ«se e ardhshme Skenari vjen sĂ« bashku,
dhe ne duam tĂ« futur nĂ« filluar ose kreu i kĂ«saj liste?
Dhe si e ke emrin, numrin 55?
>> Audienca: Jack.
>> DAVID J. Malan: Jack?
OK, nice to meet you.
MirĂ«sevini nĂ« fluturake.
Deri tani ne jemi duke shkuar pĂ«r tĂ« futur, tĂ« themi, numrin 5.
KĂ«tu Ă«shtĂ« rasti i dytĂ« i tre kemi ardhur me para.
Pra, nĂ«se 5 i takon nĂ« fillim, le tĂ« shohim se si ne tĂ« gjeni se nga.
UnĂ« nisja PTR tim tregues pĂ«r numrin 9 pĂ«rsĂ«ri.
Dhe e kuptova, oh, 5 Ă«shtĂ« mĂ« pak se 9.
Pra, tĂ« rregulluar kĂ«tĂ« fotografi pĂ«r ne.
Duart e tĂ« cilit, Gabe apo David or-- si e ke emrin numĂ«r 9-sĂ«?
>> Audienca: Jen.
>> DAVID J. Malan: hands-- Jen e cila e duarve tona duhet tĂ« ndryshojĂ«?
OK, kĂ«shtu qĂ« Gabe tregon nĂ« Ă§farĂ« tani?
NĂ« mua.
UnĂ« jam nyja e re.
KĂ«shtu qĂ« unĂ« vetĂ«m do lloj lĂ«vizje kĂ«tu pĂ«r tĂ« parĂ« atĂ« me sy.
Dhe ndĂ«rkohĂ« Ă§farĂ« mund tĂ« theksoj se?
Ende ku unĂ« jam treguar.
Pra, kjo Ă«shtĂ« ajo.
Pra, vetĂ«m tĂ« vĂ«rtetĂ« njĂ« linjĂ« e kodit fixes kjo Ă§Ă«shtje tĂ« veĂ§antĂ«, ajo do tĂ« duket.
NĂ« rregull, kĂ«shtu qĂ« Ă«shtĂ« e mirĂ«.
Dhe mund dikush tĂ« jetĂ« njĂ« placeholder pĂ«r 5?
Eja lart.
Ne do tĂ« merrni ju herĂ«n tjetĂ«r.
>> NĂ« rregull, kĂ«shtu now-- dhe Si njĂ« mĂ«njanĂ«, emrat
UnĂ« nuk jam duke tĂ« kujtuar tĂ« qartĂ« tĂ« sĂ« drejtĂ«s sĂ« tani, akrep pred, akrep paraardhĂ«si
dhe tregues i ri, qĂ« Ă«shtĂ« vetĂ«m emrat dhĂ«nĂ«
nĂ« kodin mostĂ«r me pointers ose duart e mia qĂ« Ă«shtĂ« lloj duke treguar pĂ«rreth.
Si e keni emrin?
>> Audienca: Christine.
>> DAVID J. Malan: Christine.
MirĂ«sevini nĂ« fluturake.
NĂ« rregull, kĂ«shtu qĂ« le tĂ« konsiderojnĂ« tani njĂ« skenar pak mĂ« tĂ« bezdisshĂ«m,
ku unĂ« dua tĂ« futur diĂ§ka si 26 nĂ« kĂ«tĂ«.
20?
Ă‡farĂ«?
KĂ«to are-- gjĂ« tĂ« mirĂ« qĂ« ne kemi kĂ«tĂ« stilolaps.
TĂ« gjithĂ« tĂ« drejtĂ«, 20.
NĂ«se dikush mund tĂ« marrĂ« njĂ« copĂ« e letĂ«r gati, vetĂ«m nĂ« case-- tĂ« gjithĂ« tĂ« drejtĂ«.
Oh, interesante.
E pra ky Ă«shtĂ« njĂ« shembull e njĂ« bug leksion.
OK kĂ«shtu qĂ« Ă§farĂ« Ă«shtĂ« emri juaj pĂ«rsĂ«ri?
Audienca: Julia.
DAVID J. Malan: Julia, mund tĂ« ju pop jashtĂ« dhe tĂ« pretendojĂ« keni qenĂ« kurrĂ« atje?
OK, kjo nuk ndodhi kurrĂ«.
Ju faleminderit.
Pra, mendoj qĂ« ne duam tĂ« futur Julia nĂ« kĂ«tĂ« listĂ« e lidhur.
Ajo Ă«shtĂ« numri 20.
Dhe sigurisht qĂ« ajo Ă«shtĂ« do tĂ« bĂ«jĂ« pjesĂ« nĂ«
begin-- nuk pikĂ« nĂ« Ă§do gjĂ« ende.
Pra, dora jote mund tĂ« lloj tĂ« jetĂ« poshtĂ« null ose disa vlera e mbeturinave.
Le tĂ« tregojnĂ« historinĂ« shpejtĂ«.
UnĂ« jam duke treguar nĂ« numrin 5 kĂ«tĂ« kohĂ«.
Pastaj unĂ« kontrolloni 9.
Pastaj unĂ« kontrolloni 17.
Pastaj unĂ« kontrolloni 22.
Dhe UnĂ« tĂ« kuptojĂ«, Ooh, Julia ka nevojĂ« pĂ«r tĂ« shkuar pĂ«rpara 22.
Pra, Ă§farĂ« duhet tĂ« ndodhĂ«?
Duart e kujt duhet tĂ« ndryshojĂ«?
Julia-sĂ«, minave, or-- Ă§farĂ« Ă«shtĂ« emri juaj pĂ«rsĂ«ri?
>> Audienca: krishterĂ«.
>> DAVID J. Malan: krishterĂ« apo?
>> Audienca: Andy.
>> DAVID J. Malan: Andy.
KrishterĂ« apo Andy?
Andy ka nevojĂ« pĂ«r pikĂ« nĂ«?
Julia.
TĂ« gjithĂ« tĂ« drejtĂ«.
Pra Andy, nuk ju duan tĂ« tregojnĂ« nĂ« Julia?
Por prisni njĂ« minutĂ«.
NĂ« histori deri mĂ« tani, UnĂ« jam lloj i njĂ«
pĂ«rgjegjĂ«s, nĂ« kuptimin qĂ« akrep Ă«shtĂ« gjĂ« qĂ« Ă«shtĂ«
lĂ«viz nĂ«pĂ«r lista.
Ne mund tĂ« kemi njĂ« emĂ«r pĂ«r Andy, por nuk ka ndryshore tĂ« quajtur Andy.
I vetmi variabĂ«l tjetĂ«r qĂ« kemi Ă«shtĂ« i parĂ«, i cili Ă«shtĂ« pĂ«rfaqĂ«suar nga Gabe.
>> Pra, kjo Ă«shtĂ« nĂ« fakt arsyeja pse nĂ« kĂ«tĂ« mĂ«nyrĂ« tani ne nuk kemi nevojĂ« pĂ«r kĂ«tĂ«.
Por tani nĂ« ekran ka pĂ«rmend pĂ«rsĂ«ri i pointer pred.
Pra mĂ« lejoni tĂ« jetĂ« mĂ« i qartĂ«.
NĂ«se kjo Ă«shtĂ« akrep, kam pasur mĂ« tĂ« mirĂ« merrni pak mĂ« inteligjent
pĂ«r pĂ«rsĂ«ritje tim.
NĂ«se ju nuk e mendjes duke e mia nĂ«pĂ«r kĂ«tu pĂ«rsĂ«ri, duke theksuar kĂ«tu, duke treguar kĂ«tu.
Por mĂ« lejoni tĂ« ketĂ« njĂ« tregues pred, akrep paraardhĂ«si, qĂ« Ă«shtĂ«
lloj i vĂ«nĂ« nĂ« element UnĂ« kam qenĂ« vetĂ«m nĂ«.
KĂ«shtu qĂ« kur tĂ« shkoj kĂ«tu, tani pĂ«rditĂ«sime mia majtĂ«.
Kur tĂ« shkoj kĂ«tu pĂ«rditĂ«simet e mia majtĂ«.
Dhe tani unĂ« kam jo vetĂ«m njĂ« tregues pĂ«r element qĂ« shkon pas Julia,
UnĂ« ende kanĂ« njĂ« tregues pĂ«r Andy, elementi mĂ« parĂ«.
Pra, ju keni qasje, nĂ« thelb, breadcrumbs, nĂ«se do,
tĂ« gjitha pointers nevojshme.
>> Pra, nĂ«se unĂ« jam duke treguar Andy dhe unĂ« jam gjithashtu duke
nĂ« tĂ« krishterĂ«, duart e tĂ« cilit tani duhet cekur diku tjetĂ«r?
Pra Andy tani mund tĂ« nxjerr nĂ« Julia.
Julia tani mund tĂ« tregojnĂ« nĂ« tĂ« krishterĂ«.
PĂ«r shkak se ajo mund tĂ« kopjoni tim tregues tĂ« djathtĂ«-sĂ«.
Dhe qĂ« nĂ« mĂ«nyrĂ« efektive ju vĂ« kthehen nĂ« kĂ«tĂ« vend kĂ«tu.
Pra me pak fjalĂ«, edhe pse kjo Ă«shtĂ« duke na lloj pĂ«rgjithmonĂ«
qĂ« nĂ« fakt tĂ« rinovuar njĂ« listĂ« tĂ« lidhura, tĂ« realizuar
se operacionet janĂ« relativisht tĂ« thjeshta.
Ă‹shtĂ« e njĂ«, dy, tre rreshta tĂ« kodit nĂ« fund tĂ« fundit.
Por pĂ«rfundoi rreth atyre rreshta tĂ« kodit me sa duket
Ă«shtĂ« pak e logjikĂ«s qĂ« nĂ« mĂ«nyrĂ« efektive pyet pyetjen, ku jemi ne?
A jemi nĂ« fillim, mesme, ose nĂ« fund?
>> Tani, ka sigurisht disa tĂ« tjera Operacionet ne mund tĂ« zbatojĂ«.
Dhe kĂ«to foto kĂ«tu vetĂ«m tĂ« pĂ«rshkruaj ajo qĂ« ne vetĂ«m e bĂ«ri me njerĂ«zit.
Po nĂ« lidhje me heqjen?
NĂ«se unĂ« dua tĂ«, pĂ«r shembull, hequr numrin 34 ose 55,
UnĂ« mund tĂ« ketĂ« tĂ« njĂ«jtin lloj tĂ« kodit, por unĂ« jam duke shkuar pĂ«r tĂ« duhet njĂ« ose dy hapa.
PĂ«r shkak se Ă§farĂ« ka tĂ« re?
NĂ«se unĂ« hiqni dikĂ« nĂ« fund, si numĂ«r 55 dhe pastaj 34,
ajo gjithashtu duhet tĂ« ndryshojĂ« si bĂ«j unĂ« kĂ«tĂ«?
UnĂ« kam pĂ«r tĂ« nuk evict-- Ă§farĂ« Ă«shtĂ« emri juaj pĂ«rsĂ«ri?
>> Audienca: Jack.
>> DAVID J. Malan: Jack.
UnĂ« kam pĂ«r tĂ«, jo vetĂ«m evict-- Jack pa pagesĂ«, kĂ«shtu qĂ« fjalĂ« pĂ«r fjalĂ« e quajnĂ« Jack tĂ« lirĂ«, ose tĂ« paktĂ«n
akrep atje, por tani Ă§farĂ« duhet tĂ« ndryshojĂ« me Pjetrin?
Dora e tij mĂ« mirĂ« tĂ« fillojĂ« duke treguar poshtĂ«.
Sepse sa mĂ« shpejt qĂ« unĂ« e quaj tĂ« lirĂ« nĂ« Jack, nĂ«se Pjetrit ende duke treguar Jack
dhe unĂ« pĂ«r kĂ«tĂ« arsye tĂ« mbajtur traversing lista dhe qasje kjo akrep,
kjo Ă«shtĂ« kur segmentimi ynĂ« i vjetĂ«r shoku faji mund tĂ« vĂ«rtetĂ« tĂ« fillojĂ« nĂ«.
Sepse ne kemi dhĂ«nĂ« prapa kujtesĂ«s pĂ«r Jack.
>> Ju mund tĂ« qĂ«ndrojnĂ« atje fundore pĂ«r vetĂ«m njĂ« moment.
Sepse ne kemi vetĂ«m njĂ« Ă§ift operacionet e fundit tĂ« marrin nĂ« konsideratĂ«.
Heqja kreun e listĂ«s, ose beginning-- dhe kjo tĂ«
pak i bezdisshĂ«m.
Sepse ne duhet tĂ« dimĂ« se Gabe Ă«shtĂ« lloj i veĂ§antĂ« nĂ« kĂ«tĂ« program.
Sepse nĂ« tĂ« vĂ«rtetĂ«, ai e ka treguesin e vet.
Ai nuk Ă«shtĂ« vetĂ«m duke u vuri nĂ«, si Ă«shtĂ« pothuajse tĂ« gjithĂ« tĂ« tjerĂ«t kĂ«tu.
>> Pra, kur kreu i listĂ«s Ă«shtĂ« hequr, duart e tĂ« cilit duhet tĂ« ndryshojĂ« tani?
Si e keni emrin pĂ«rsĂ«ri?
>> Audienca: Christine.
>> DAVID J. Malan: UnĂ« jam e tmerrshme nĂ« emra, me sa duket.
Pra, Christine dhe Gabe, duart e tĂ« cilit duhet tĂ« ndryshojĂ«
kur ne pĂ«rpiqemi pĂ«r tĂ« hequr Christine, Numri 5, nga foto?
OK, kĂ«shtu qĂ« le tĂ« bĂ«jĂ« Gabe.
Gabe do tĂ« vinte, me sa duket, me numĂ«r 9.
Por Ă§farĂ« tjetĂ«r duhet tĂ« ndodhĂ«?
Audienca: Christine duhet tĂ« jetĂ« null [e padĂ«gjueshme].
DAVID J. Malan: OK, ne duhet ndoshta make-- dĂ«gjova "null" diku.
Audienca: Null dhe tĂ« lirĂ« tĂ« saj.
DAVID J. Malan: NULL Ă§farĂ«?
Audienca: Null dhe tĂ« lirĂ« tĂ« saj.
DAVID J. Malan: Null dhe tĂ« lirĂ« tĂ« saj.
Pra, kjo Ă«shtĂ« shumĂ« e lehtĂ«.
Dhe kjo Ă«shtĂ« e pĂ«rsosur qĂ« ju jeni tani lloj tĂ« qĂ«ndruar aty, nuk i pĂ«rkasin.
PĂ«r shkak se ju keni qenĂ« tĂ«rhiqet nga lista.
Ju keni qenĂ« nĂ« mĂ«nyrĂ« efektive jetimĂ« nga lista.
Dhe kĂ«shtu qĂ« ne kishim mĂ« mirĂ« telefononi falas tani nĂ« Christine pĂ«r tĂ« dhĂ«nĂ« atĂ« kujtesĂ«n mbrapa.
PĂ«rndryshe Ă§do herĂ« ne fshirĂ« njĂ« nyje nga lista
ne tĂ« bĂ«rĂ« lista shkurtĂ«r, por nĂ« fakt nuk rĂ«nie
madhĂ«sia nĂ« kujtesĂ«n.
Dhe kĂ«shtu qĂ« nĂ« qoftĂ« se do tĂ« vazhdojmĂ« duke shtuar dhe duke shtuar, duke shtuar gjĂ«ra nĂ« listĂ«,
kompjuteri im mund tĂ« merrni mĂ« ngadalĂ« dhe tĂ« ngadalshme dhe tĂ« ngadalshĂ«m,
sepse unĂ« jam running nga memorie, edhe nĂ« qoftĂ« se unĂ« nuk jam nĂ« tĂ« vĂ«rtetĂ«
duke pĂ«rdorur bytes Christine sĂ« e kujtesĂ«s mĂ«.
>> Pra, nĂ« fund ka tĂ« tjera skenare, e largimit course--
nĂ« mes, heqjen nĂ« fund, siĂ§ e pamĂ«.
Por mĂ« interesante Sfida tani Ă«shtĂ«
do tĂ« jetĂ« pĂ«r tĂ« marrĂ« parasysh pikĂ«risht atĂ« kohĂ« running Ă«shtĂ«.
Pra, jo vetĂ«m qĂ« mund tĂ« mbani tuaj copa letre, nĂ« qoftĂ« se, Gabe,
ju nuk do mend duke i dhĂ«nĂ« tĂ« gjithĂ« njĂ« top stresit.
Thank you so much pĂ«r listĂ«n tonĂ« lidhur i vullnetarĂ«ve kĂ«tu, nĂ« qoftĂ« se ju mund.
>> [Duartrokitje]
>> DAVID J. Malan: NĂ« rregull.
Pra disa analitike Pyetjet Pastaj, nĂ«se unĂ« mund tĂ«.
Ne e kemi parĂ« kĂ«tĂ« simbol mĂ« parĂ«, O i madh dhe omega, kufijtĂ« e sipĂ«rme
dhe kufijtĂ« mĂ« tĂ« ulĂ«t nĂ« running kohĂ« tĂ« disa algorithm.
Pra, le tĂ« marrin nĂ« konsideratĂ« vetĂ«m disa pyetje.
>> NjĂ«, dhe kemi thĂ«nĂ« atĂ« para, Ă§farĂ« Ă«shtĂ« running
kohĂ« e kĂ«rkimit tĂ« njĂ« Lista nĂ« aspektin e O e madhe?
Ă‡farĂ« Ă«shtĂ« njĂ« kufi i sipĂ«rm pĂ«r drejtimin Koha e kĂ«rkuar njĂ« listĂ« tĂ« lidhur
tĂ« zbatuar nga vullnetarĂ«t tanĂ« kĂ«tu?
Ă‹shtĂ« O i madh i n, lineare.
Sepse nĂ« rastin mĂ« tĂ« keq, element, si 55,
ne mund tĂ« jetĂ« nĂ« kĂ«rkim pĂ«r tĂ« mund tĂ« jetĂ« aty ku Jack ishte, tĂ« gjitha rrugĂ«n nĂ« fund.
Dhe pĂ«r fat tĂ« keq, ndryshe nga njĂ« grup ne nuk mund tĂ« merrni dashuroj kĂ«tĂ« kohĂ«.
Edhe pse tĂ« gjithĂ« njerĂ«zit tanĂ« tĂ« ishin tĂ« renditura nga elemente tĂ« vogla, 5,
tĂ« gjithĂ« rrugĂ«n deri nĂ« elementin mĂ« tĂ« madh, 55, qĂ« Ă«shtĂ« zakonisht njĂ« gjĂ« e mirĂ«.
Por ajo qĂ« e bĂ«n kĂ«tĂ« supozim nuk na lejojnĂ« tĂ« bĂ«jmĂ«?
Audienca: [padĂ«gjueshme]
DAVID J. Malan: Thuaj pĂ«rsĂ«ri?
Audienca: qasje tĂ« rastĂ«sishme.
DAVID J. Malan: qasje tĂ« rastĂ«sishme.
Dhe nga ana tjetĂ«r kjo do tĂ« thotĂ« qĂ« ne mund tĂ« asnjĂ« pĂ«rdorin mĂ« zero dobĂ«t, intuitĂ«,
dhe spikatshmĂ«ri e pĂ«rdorimit binare kĂ«rkoni dhe tĂ« ndajnĂ« dhe tĂ« pushtuar.
Sepse edhe pse ne njerĂ«zit mund tĂ« qartĂ«
shohim se Andy apo krishterĂ« ishin afĂ«rsisht nĂ« mes tĂ« listĂ«s,
ne vetĂ«m e di se si njĂ« kompjuter nga skimming listĂ«n
nga fillimi.
Pra, ne kemi hequr dorĂ« atĂ« qasje tĂ« rastit.
>> O aq i madh i n tani Ă«shtĂ« e sipĂ«rme detyruar nĂ« kohĂ«n tonĂ« tĂ« kĂ«rkimit.
Po nĂ« lidhje me omega e kĂ«rkimin tonĂ«?
Ă‡farĂ« Ă«shtĂ« mĂ« e ulĂ«t lidhur nĂ« kĂ«rkim pĂ«r njĂ« numĂ«r nĂ« kĂ«tĂ« listĂ«?
Audienca: [padĂ«gjueshme]
DAVID J. Malan: Thuaj pĂ«rsĂ«ri?
Audienca: NjĂ«.
DAVID J. Malan: NjĂ«.
Ora Pra konstante.
NĂ« rastin mĂ« tĂ« mirĂ«, Christine Ă«shtĂ« vĂ«rtetĂ« nĂ« fillim tĂ« lista.
Dhe ne jemi duke kĂ«rkuar pĂ«r Numri 5, kĂ«shtu qĂ« ne e gjeti atĂ«.
Pra, nuk ka punĂ« e madhe.
Por ajo e mori pĂ«r tĂ« tĂ« jetĂ« nĂ« fillimi i listĂ«s nĂ« kĂ«tĂ« rast.
Ă‡ka nĂ« lidhje me diĂ§ka si Fshij?
Ă‡ka nĂ« qoftĂ« se ju dĂ«shironi tĂ« fshini njĂ« element?
Ă‡farĂ« Ă«shtĂ« sipĂ«rme tĂ« lidhura dhe tĂ« ulĂ«t tĂ« lidhur mĂ« fshirjes diĂ§ka nga njĂ« i lidhur
lista?
Audienca: [padĂ«gjueshme]
DAVID J. Malan: Thuaj pĂ«rsĂ«ri?
Audienca: n.
DAVID J. Malan: n Ă«shtĂ« vĂ«rtetĂ« sipĂ«rme tĂ« lidhura.
Sepse nĂ« rastin mĂ« tĂ« keq ne pĂ«rpiqemi tĂ« fshini Jack, si ne vetĂ«m e bĂ«ri.
Ai Ă«shtĂ« gjithĂ« rrugĂ«n nĂ« fund.
Na merr pĂ«rgjithmonĂ«, ose n hapa pĂ«r tĂ« gjetur atĂ«.
Pra, kjo Ă«shtĂ« njĂ« kufi i sipĂ«rm.
Kjo Ă«shtĂ« linear, i sigurt.
Dhe rasti mĂ« i mirĂ« kohĂ« nĂ« punĂ«, ose caqet mĂ« tĂ« ulĂ«t nĂ« rastin mĂ« tĂ« mirĂ«
do tĂ« jetĂ« kohĂ« konstante.
Sepse ndoshta ne pĂ«rpiqemi tĂ« fshini Christine, dhe ne vetĂ«m tĂ« merrni me fat
ajo Ă«shtĂ« nĂ« fillim.
Tani prit njĂ« minutĂ«.
Gabe ishte gjithashtu nĂ« fillim, dhe ne gjithashtu kishte pĂ«r tĂ« rinovuar Gabe.
KĂ«shtu qĂ« nuk ishte vetĂ«m njĂ« hap.
Pra, Ă«shtĂ« me tĂ« vĂ«rtetĂ« konstante kohĂ«, nĂ« rastin mĂ« tĂ« mirĂ«,
pĂ«r tĂ« hequr elementin mĂ« tĂ« vogĂ«l?
Kjo Ă«shtĂ«, edhe pse kjo mund tĂ« jetĂ« dy, tre, apo edhe 100 rreshta tĂ« kodit,
nĂ« qoftĂ« se Ă«shtĂ« numri i njĂ«jtĂ« i linjat, jo nĂ« ndonjĂ« lak,
dhe i pavarur i madhĂ«sisĂ« i listĂ«s, absolutisht.
Fshirjes element nĂ« fillimi i listĂ«s,
edhe nĂ« qoftĂ« se ne duhet tĂ« merren me Gabe, Ă«shtĂ« ende koha konstante.
>> Pra, kjo duket si njĂ« hap i madh prapa.
Dhe Ă§farĂ« njĂ« humbje kohe nĂ« qoftĂ« se, nĂ« njĂ« javĂ« dhe javĂ«
zero kemi pasur jo vetĂ«m Kodi pseudokod por kodin aktual
tĂ« zbatojĂ« diĂ§ka qĂ« Ă«shtĂ« log Baza n, ose hyni, nĂ« vend, i n, bazĂ« 2,
nĂ« drejtim tĂ« kohĂ«s sĂ« vet running.
Pra, pse dreq do tĂ« duam tĂ« fillojĂ« duke pĂ«rdorur diĂ§ka si njĂ« listĂ« e lidhur?
Po.
>> Audienca: Pra, ju mund tĂ« shtoni elementet nĂ« rrjet.
DAVID J. Malan: Pra, ju mund tĂ« tĂ« shtoni elemente tĂ« vektorit.
Dhe kjo shumĂ« Ă«shtĂ« tematike.
Dhe ne do tĂ« vazhdojmĂ« tĂ« shohim kjo, kjo tregti-off, shumĂ«
si ne kemi parĂ« njĂ« tregtisĂ«-off me merge lloj.
Ne me tĂ« vĂ«rtetĂ« mund tĂ« pĂ«rshpejtojĂ« kĂ«rkoni ose klasifikim, nĂ« vend,
nĂ« qoftĂ« se ne kemi shpenzuar njĂ« hapĂ«sirĂ« â€‹â€‹pak mĂ« shumĂ« dhe tĂ« kanĂ« njĂ« copĂ« shtesĂ« e njĂ« kujtim
apo njĂ« grup pĂ«r merge lloj.
Por ne kemi shpenzuar mĂ« shumĂ« hapĂ«sirĂ«, por ne tĂ« kursyer kohĂ«.
NĂ« kĂ«tĂ« rast, ne jemi duke i dhĂ«nĂ« kohĂ«n, por ne jemi
duke fituar fleksibilitet, Dinamizmi nĂ« qoftĂ« se ju do,
e cila Ă«shtĂ« ndoshta njĂ« tipar pozitiv.
>> Ne gjithashtu jemi tĂ« shpenzimeve hapĂ«sirĂ«.
NĂ« Ă§farĂ« kuptimi Ă«shtĂ« njĂ« i lidhur listĂ« mĂ« tĂ« shtrenjtĂ«
nĂ« drejtim tĂ« hapĂ«sirĂ«s se njĂ« grup?
Ku Ă«shtĂ« hapĂ«sirĂ« â€‹â€‹shtesĂ« qĂ« vijnĂ« nga?
Po?
>> Audienca: [padĂ«gjueshme] akrep.
>> DAVID J. Malan: Po, ne gjithashtu kanĂ« treguesin.
Pra, kjo Ă«shtĂ« minorly bezdisshĂ«m nĂ« se jam mĂ«
UnĂ« ruajtjen vetĂ«m njĂ« int pĂ«r tĂ« pĂ«rfaqĂ«suar njĂ« int.
UnĂ« jam ruajtjen njĂ« int dhe njĂ« tregues, e cila eshte gjithashtu 32 bit.
KĂ«shtu qĂ« unĂ« jam fjalĂ« pĂ«r fjalĂ« dyfishuar shuma e hapĂ«sirĂ«s pĂ«rfshirĂ«.
Pra, kjo Ă«shtĂ« njĂ« tregti-off, por kjo Ă«shtĂ« nĂ« rastin e int.
Supozoni se ju nuk jeni ruajtjen int, por mendoj secili prej kĂ«tyre rectangles
ose secila prej kĂ«tyre njerĂ«zve Ă«shtĂ« pĂ«rfaqĂ«suar njĂ« fjalĂ«, njĂ« fjalĂ« angleze qĂ«
mund tĂ« jetĂ« pesĂ« karaktere, 10 karaktere, ndoshta edhe mĂ« shumĂ«.
Pastaj duke shtuar vetĂ«m 32 mĂ« shumĂ« bit mund tĂ« jetĂ« mĂ« pak e njĂ« punĂ« e madhe.
>> Po nĂ« qoftĂ« se secili prej nxĂ«nĂ«sve nĂ« demonstratĂ«
ishin fjalĂ« pĂ«r fjalĂ« structs studentore qĂ« kanĂ« emrat dhe shtĂ«pitĂ« dhe ndoshta
numrat e telefonit dhe Twitter trajton dhe si.
Pra tĂ« gjitha fushat kemi filluar duke folur pĂ«r ditĂ«n tjetĂ«r,
shumĂ« mĂ« pak e njĂ« punĂ« e madhe si nyjet tona tĂ« merrni mĂ« interesante
dhe e madhe pĂ«r tĂ« shpenzuar, eh, njĂ« shtesĂ« tregues vetĂ«m pĂ«r tĂ« lidhur ato sĂ« bashku.
Por nĂ« tĂ« vĂ«rtetĂ«, kjo Ă«shtĂ« njĂ« tregti-off.
Dhe me tĂ« vĂ«rtetĂ«, kodi Ă«shtĂ« mĂ« komplekse, si ju do tĂ«
shohin nga skimming pĂ«rmes qĂ« shembulli tĂ« veĂ§antĂ«.
Por Ă§ka nĂ«se ka pasur disa Grail shenjtĂ« kĂ«tu.
Po nĂ« qoftĂ« se ne nuk do tĂ« marrĂ« njĂ« hap prapa, por njĂ« hap i madh pĂ«rpara
dhe tĂ« zbatojĂ« njĂ« tĂ« dhĂ«nave Struktura nĂ«pĂ«rmjet tĂ« cilat ne
mund tĂ« gjeni elemente si Jack apo Christine ose ndonjĂ« elemente tĂ« tjera
nĂ« kĂ«tĂ« grup nĂ« kohĂ« reale tĂ« vazhdueshme?
KĂ«rkimi Ă«shtĂ« konstante.
Fshij Ă«shtĂ« konstante.
Fut Ă«shtĂ« konstante.
TĂ« gjitha kĂ«to operacione janĂ« konstante.
Kjo do tĂ« ishte Grail jonĂ« e shenjtĂ«.
Dhe kjo Ă«shtĂ« ajo ku ne do tĂ« marr herĂ«n tjetĂ«r.
Shihemi pastaj.