>> JASON Hirschhorn: Ongi etorri A5, guztiontzat.
Zirraragarria aste bat dugu gurekin aurretik, Han batez ere delako berria hainbeste dira
gela honetan aurpegiak.
Zoragarria da.
Duzu asko daude hemen istripuak, hau da, are hobea.
Beraz, espero mantendu dituzu sartu dira.
>> Aste honetan ari gara gastatzen joan ataleko gehienak
galdetegia prestatzen.
Beraz, gure agenda per, hitz egin dugu klasea baliabide buruz pixka bat,
baina, halaber, galdetegia, eta, ondoren, berriz ere, pasatzeko klase hitz gehienak
galderei buruz.
Bukatutakoan behin dugu erantzunez zure galderak, edo bada zure galderak
naturalean gaituzte kodifikazioa batzuk, I midterms lagin arazoak
iragan duten zuzeneko kode jarriko gara atalean elkarrekin ere ekarri beste batzuk
Gai ona estaltzeko.
>> Beraz, lehenik eta behin, joan gisa dugun bidez egiteko iragan aste pare gogorarazteko
Guys, ez dago baliabide tona bat Ikastaro honetan eskuragarri.
Horietako asko oso lagungarria izango da aurrera jarraitu behar duzu
galdetegi 0 ikastera, zeren Astearte arratsaldean da.
Beraz, guztiak izan dira pixka bat ikasten.
>> Badira hitzaldia oharrak eta iturri kodea duten behar duzu
behin betiko begiratu.
Watch film laburrak.
Begiratu study.cs50.net.
Eta, ondoren, jarraian aipatzen diren, zenbaki bat beste baliabide.
>> Berriz ere, galdetegi 0 bihar da 1 goizeko.
Egin ez baduzu, hala bada dagoeneko, begiratu buruz Quiz 0 Dokumentuan on atera
ikastaroa homepage irudikatu non galdetegia hartzen ari zaren.
Galdetegia 1:10 etan hasiko da eta bukatzen da 70 minutu beranduago.
Beraz erakusteko baduzu 1:10 ondoren, zauden duten askok minutu gutxiago lortzeko ari
70 baino galdetegi hartzeko.
Beraz, ziurtatu Oraindik garaiz han.
Oraindik luzapena ikaslea bada edo izan beste azterketa gogoetak batzuk, hura
agian ez 1 goizeko bihar izango da.
Baina, berriro ere, egiazta buruz Quiz 0 dokumentatzeko ziur duzu jakin noiz
galdetegia hartzen ari zaren.
75 minutuan idatzi nuen hemen.
Nik uste dut, hori da, ez 70.
>> Material guztia estaltzen astean 0tik da azken astean asteazkenean hitzaldia emateko.
Eta berriro ere, galdetegi hau, duten per Dokumentuan, lortuko duzu bat, bi aldetako eta 8
1/2 11 paper eskuratu duzun arabera ohar gisa erabili galdetegi zehar.
Jende askok, ez bada jende gehienak, izan aurkitu duten gehien lagungarria modu bakar
galdetegi egiteko aztertzea da azterketa orri bat, bat egiteko
bat-sider, beren.
Beraz, lehengo begiratu iragan direnak ikusi duzun.
Iristea, lagunak ikustea zer berea ari dira jarriz.
>> Baina esku-behera, ahal duzun modurik onena azterketa da guztia bidez joan eta
whittle behera zer egin beharko lukete edo hori behar den ez orri horretan sartzen dira
papera, hori besterik ez da benetan bat delako ziur zuretzako modu lagungarria
guztia zeharkatzen ari zaren eta da ezagutza batzuk izan.
, Jende gehienak, aurkituko dugu nahiz eta dute paper eskuineko eserita
haien ondoan galdetegi oinarrituta, ez piztu da, izan ere, berriro ere, oso
Informazio igaro prozesua lagundu egiten ikasten.
>> Du inor edozein zalantza galdetegi 0 buruz?
Denek du -
Ez dut esku hutsezko egin.
Never mind.
I zen nork eskatu joan ikasten hasi zen.
Baina ez dut nahi duzuna egiteko guztiak ez zure eskuak goratzeko.
Esan dudan bezala, beraz, - bai, Avi, aurrera.
>> AVI: Zer gauza erabilgarria izango litzateke hemen bat-pager jarri?
>> STUDENT: Hori da, sortu nahi duzun.
>> JASON Hirschhorn: You get zure epaia erabili.
Erabilgarria gauza hemen bat-pager jarri, you O big buruz nahastu badira
bilaketak mota desberdinen exekuzio eta ordenatzen, jarri duten batean han
handy dandy diagrama.
Horrela, bada galdetu ari da galdetegi, ez duzu eta saiatu figura
it out edo arrazoia exekuzio bidez.
Besterik ez dezakezu kopiatu behera.
Begiratuz gero galdetegiak iragana, asko at aldiz, denbora galderak bertan exekutatzen da.
Beraz, ona adibide bat izango litzateke Gauza zure bat-pager jarri.
>> Beste gauza onak jarri, Oraindik baduzu nola deklaratzen buruz nahastu bat
funtzio edo zer zati desberdinak funtzioaren adierazpena dira, idazten
han zela, bertsio generiko eta, gero, agian, adibide bat.
Oraindik erakusleak buruz nahasten dira, erakusleak lana nola den diagrama bat
Ziurrenik benetan lagungarria.
Oraindik errekurtsibitate, bat buruz nahasten dira funtzioa errekurtsiboa dastatzeko han on
izan ere frogatu benetan lagungarria izan nahi du.
Du horrek emango dizu ideia batzuk?
>> AVI: ulertu behar duzu osoa konpilazioaren prozesua, bezalako
obra guztiak nola hori?
>> JASON Hirschhorn: Everything que ha sido estalita Could
erakusteko sortu galdetegi da.
Galderak -
baina berriro ere, gauza batzuk izango ugari haztatuta besteak baino.
Gauza batzuk berriro etorri eta berriro klasean, in
hitzaldia, eta atala.
Beste gauza ez izan zatoz gora askotan.
>> Asko hitz egin dugu about # include eta -L zerbait eta zer horiek esan nahi
konpilazio prozesuak.
Asko hitz egin dugu GDB buruz, txirrindularitza, erabiltzen ditugun desberdinetako banderak horiek denean
zerbait konpilatu dugu, eta zer make15, adibidez, benetan
esan nahi du, eta benetan ez.
Ez dugu hitz egin bezala buruz askoz urrats bakoitzean bakarra
konpilazio prozesuak.
Dugu oraindik ere, horri buruz hitz egin zuen.
Beraz, oraindik ere, zerbait duzula ezagutzea izan behar du.
Baina, berriro ere, ez gara izango da -
etortzen diren sarriago klasean sortu gauzak gehiago egongo dira gehiago etortzen
sarri eta ugari galdetegiaren haztatuta.
>> Cool.
Galdetegi 0 buruzko beste edozein galdera?
>> Ados, beraz, zerrenda bat jarri dut taula gainean gaiak.
Curriculumaren bidez joan nintzen.
Berrikuspena etatik atalaren bitartez joan nintzen bart eta diapositibak horiek etorri
Gai zerrenda ez zehatza batekin beraz, orain arte estaltzen dugu CS50
eta gauzak agian galdetegi agertuko.
Beraz, ez naiz joan deneko joan horietako bat bakoitza.
Askoz gehiago hartuko luke Denbora orain dugu baino.
Baina hau jarri dut hemen, zorionez jog izateko Zure memoria gauza gisa duten may
edo agian ez duzu ezagutzen.
>> Eta maite nuen gehiena pasatzeko Sekzio buruzko zure galderak erantzuten
gai hauek, gaiak duen hemen ez dira estalita.
Sasi-kodea idatzi ahal izango dugu.
Benetako kodea idatzi ahal izango dugu bermatzeko duzula -
Zure galdera erantzun ahal izango dut eta laguntza denek funtsean ulertu bat
Gai horiek asko sentitzen duzu beraz prestatuago eta eroso joan sartu
galdetegia bihar.
Beraz, irakurri baino gehiago zerrendan.
Duzu espero dute atal etorri baita galdera batzuk.
Prest zaudenean, goratzeko zure esku eta lehen urratsak egingo ditugu.
>> Gogoan izan, galdera duzu, izan daude galdera ergelak ez.
Asko entzun dugu.
Eta galdera batzuk egin behar duzu, prest nago , beste hainbat pertsona apustu egitea, bai
hemen eserita eta behaketa konektatuta izan baita.
Beraz, pertsona bakarra zaitzake galderak eginez.
Marcus.
>> MARCUS: pila eta Between the zeure, ez dago bat aurrez esleitu
hori bezala definitzen memoriaren ehunekoa hau da pila edo zeure egiteko?
Edo nola lan egiten duten, zehazki ez?
>> JASON Hirschhorn: Great galdera.
Pixka bat traza atzera noa.
Denek ez -
mesedez izan zintzoa.
Duzun galdetzen dut goratzeko ezagutzen dut zure Zure ikaskideek aurrean eskua.
Baina hor daude sentitzen duten pertsonek pila eta zeure deseroso
eta gehiago joan behar duten nahi eta esan nahi horiek zer?
Goratu zure eskua bada -
Ados.
Eskerrik asko.
Beraz, pila baino gehiago joan eta joan zeure benetan azkar eta gero
Zure galderari erantzunez mugitu.
>> Marrazteko dugu irudikatzeko kutxa bat, hala bada memoria ordenagailuan, zer hemen batzuk
duten kutxa horretara joanez gauzak?
Nagusia.
Funtzio nagusi bat.
Nora doa nagusia?
>> STUDENT: [INAUDIBLE].
>> JASON Hirschhorn: Beraz zaitugu jarri nagusian behera hemen.
Zer gehiago koadro honetan doa?
>> STUDENT: deitu duten funtzioak.
>> JASON Hirschhorn: funtzioak dugu deitu duten.
Eta, zertara bideratzen dira?
>> STUDENT: pila batean.
>> JASON Hirschhorn: dute pila joan.
Beraz, hau deitzen da joan Gauza behera hemen pila.
Eta goian, zeure dugu.
Beraz, memoria ez da besterik hau bezalako koadro bat.
Baina nahiko antzekoa da, benetan.
Honez kutxak asko izan pasa eta gehiagoko, arabera nola big zure
ordenagailua da edo memorian nola big da.
>> Du aurrekontu-unquote "behean" at pila da.
Eta ez dira gauza anitz pila joan.
Eta horiek funtzioen araberakoak Zure kodea behar duzu.
Duzu beti funtzio bat erabiliz kodea izeneko nagusia, beraz, ez da beti bat
Hemen behera atalean pilatu ardatz.
>> Pila atal horietako pila markoak deitzen dira.
Noiz deitu funtzioa beste, esan nagusiak bitarra bilatzeko funtzio bat dei egiten du,
markoa beste bat jarri dugu pilan.
Zehatzago, joan ari gara dohaintzan memoria zatia batean gure
ordenagailuan gordetzeko bitar bilaketa tokiko aldagai eta bitarra exekutatu
bilaketa kodea.
>> Beraz, bilaketa bitarra deitzen diogu.
Memoria zatia honetan, goazen bere aldagai lokalak gordetzeko.
Bere printf deiak gordetzeko goaz.
Zer gerta ere, funtzio hori da bertan gordeko da joan.
Binary bilaketa da exekutatu behar.
Da exekuzioa osatzeko egingo.
Zer da C hitza dela ondorioztatzen funtzio bat egin beharko lukete horretan
bere exekuzioa osatzeko?
>> STUDENT: Sartu.
>> JASON Hirschhorn: itzuli.
Beraz, betiere bueltan adierazpen bat ikusten duzu, funtzioaren muturrak
duten hits.
Bilaketa beraz bitarra bere itzulera kolpatu du.
Memoria zati hau izango da, funtsean, be hori askatzea.
Eta nagusia exekuzioa itzuli egingo.
Lekuan zegoen, beraz dei nagusia pausatu egingo bilaketa bitarra, bueltan balio batzuk eskuratu,
eta exekuzioa jarraitu.
Pila markoak urrun joan dira.
>> Funtzioa errekurtsiboa bat, deitu badugu horrek deiak bere gainera funtzioa da
eta baino gehiago, agian lortuko dugu - esaten dugu Egin bilaketa bitarra errekurtsiboki.
Agian bitar bilaketa bat bertsio lortuko dugu, bilaketa bitarra bi, bilaketa bitarra
hiru, bilaketa bitarra lau, bilaketa bitarra bost.
Eta ondoren, hau final bilaketa bitarra bost oinarri kasuan, eta pila kolpatu du
markoak atzera egingo eta itxiera mantentzeko nagusira itzuli arte.
Errekurtsibitate baino gehiago ezin dugu pixka bat joan.
Baina hori guztia da, Oraindik baduzu funtzio bat baino gehiago deituz aldi berean,
Han pila bat baino gehiago izango pila markoak.
>> Zeure, bestetik, sortu Hemen, ez da funtzio,
Ez aldagai lokalak egiteko.
Da dinamikoki esleitu It aldagaiak.
Beraz, horiek izan daitezke aldagaiak dira bai nagusiak edo batean hasieratu
funtziona deiak nagusia.
Edonon zure kodea, dute hasieratu daitezke.
Eta dinamikoki a hasieratzean esleitu aldakorra.
Zer funtzio C erabiltzen dugu?
>> STUDENT: Malloc.
>> JASON Hirschhorn: Malloc.
Malloc deitu.
Oroimenaren espazio bat lortzen duzu.
Eta oroimenaren espazio hori zeure gainean.
Eta oroimenaren espazio hori egonaldiak there free deitu arte.
>> Beraz dinamikoki esleitu aldagai zeure egingo betiere existitzen duzun bezala
nahi existitzen horiek, eta ez dute irteteko esplizituki arte
kontatu urrun joan.
Horiek sor dezakezu funtzio bakar batean.
Funtzio horren pila markoa urrun joan dira.
Baina aldagai hori oraindik existitzen egingo zeure, hura askatu arte,
izeneko funtzioaren bidez potentzialki bilaketa bitarra edo dena delakoa.
>> Beraz zeure aldagai horiek han egoten betiere nahi duzun bezala
bertan geratuko horiek.
Eta hemen jarri dute get.
Eta, ondoren, hurrengo bat jarri lortzen.
Ohitu bete hartu dute, eta dute han egoten free deitu arte.
>> Eta, funtsean, zeure, eta pila, Marcus galdera lortzean,
bata bestearen bidean hazten.
Eta exekutatu dute beste bat sartu bada, duzun Erabilitako memoria guztietan zure
ordenagailua, eta zure programa egingo irten ez duzulako edozein memoria gehiago dute
utzi da erabiltzeko.
Haien artean, badira Beste gauza batzuen potentzialki.
Baina noski honen esparrutik, zuretzat behar ez kezkatu.
>> Beraz, hori izan zen erantzuna Zure galderari.
Ez kezkatu.
Baina horrek erantzun luzea zen.
Guztiak jakin behar duzun da zeure eta pila izango -
hasten da, behealdean bat.
Pila egiten du.
Zeure da han.
Beste bat hurbilago hazten dute.
>> Eta ukitu izanez gero, hori arazo bat da.
Memoria agortu duzu.
Baina, aldi berean, jakinda gainera non dira, zer da bai gordeta
pila eta zeure.
Curtis.
>> CURTIS: Noiz dute talka, pila duten gainezkatzea bat da?
>> JASON Hirschhorn: Noiz dute talka, hori ez da pilaren gainezkatzea.
Pilaren gainezkatzea bat hainbat eremu bat da dugun baino gehiago joan daiteke nahi izanez gero.
Ados, etorri egingo dugu atzera pixka batean.
>> STUDENT: Zer da izeneko hitza denean elkarrengandik hit dute,
pilatu eta zeure?
>> JASON Hirschhorn: Oraingoz, ez kezkatu.
Besterik ezagutzen -
Galdera horri erantzun egingo dut klase ondoren.
Exekutatu dute elkarrengandik sartu bada, agortu duzu ez da, oroimenaren, delako gehiago ez
espazioan bertan.
>> STUDENT: Barkatu, zer seg matxura bat?
>> JASON Hirschhorn: segmentu batek errua daiteke izeneko -
zergatik errua seg en izeneko araberakoa da.
Batzuetan, zure pilaren gainezkatzea, bertan egingo esan seg errua error gisa.
>> STUDENT: Zer dereferencing buruz null aldagai bat?
Seg errua da?
>> JASON Hirschhorn: Dereferencing null erakuslea -
Ados, beraz erakuslea duzula duzu bada ezarri berdinak null, erakusleak, abisuaren,
denda memoria helbideak beren balore gisa.
Eta null erakuslea da, funtsean 0 gehiagorik, 0-garren
aldagai horretan aurre.
Beraz 0x, 0, 0, 0, 0, et cetera.
Hori ez da memorian Helbidea 0-garren duten gure argazki batean, hori da han
nonbait, hori gordeak ordenagailua da.
Ez dugu onartuko ukitzeko.
>> Beraz, zure programa exekutatzen denean, bada zerbait memoria joan nahian
Helbidea 0, badaki dela duten Balio huts bat da.
Deus ez, behar daki.
Beraz, ez saiatu eta erabiltzen baduzu zerbait eta tratatzeko zerbait bezala edo
kokaleku horretara joan nahian, zaren seg matxura bat edo erroreren bat iritsi.
Du horrek zure galderari erantzuteko?
>> Eta orain atzera egin dugu gainezkatzea pilatu.
Pila gauza, you guys gisa ikusi aurretik, in - dezagun marrazteko estua
pila marko bat sortu.
Ikusten denek?
Beraz, gure pila markoa dugu.
Array bat aurrezten ari gara tokiko gisa funtzio honetan aldagai.
Beraz, esan gure array bost lekuak ditu.
Horietako bost guztiak bilduko dituen pila marko horretan.
>> Harago dugu idazten hasi egiten bada array honen mugetatik -
beraz sartu idazten hasteko badugu, demagun hori da 0.
Horiek dira bost indizeak gure array.
Indizea 5, sartu hasten gara idazten bada eta horrek ez dugu denean bat dugu
tamaina 5 array, hasten sartu idazten dugu Indize 6, 7, 8, 9, Stack bat eskuratu ahal izango dugu
Gainezkatzea error.
>> Oro har, ez da -
ziurrenik arazoak sartu baino gehiago joan behar izanez gero banan.
Baina, oro har, ez duzu sartu arazoak gehienetan baino gehiago duzu joan asko bada
eta orain arte baino gehiago idatzi duzula joan duzun itzulera horren helbidea gorako
funtzioa, hau da, kokatuta dago pila marko behealdean.
>> , Izan ere, ezta?
In the - - zuk barkatu.
Ez "eskubidea delako".
>> Pila markoan, duzu Zure aldagai lokalak.
Pilaren Oso behealdean marko itzulera helbidea da.
Hori da funtzioa non joaten denean baino gehiago da.
Eta bueltan gainidatzi baduzu helbidea, orduan pila markoak denean,
duzunean pila igarotzen ari marko eta lerro bakoitzean exekutatzean, zaren
zure itzulera helbidea berrietara joan bertan idatzita izan beharrean du
Bat benetako.
Eta hori, nola ikusi dugu segurtasun Arau-hauste batzuk
ordenagailuekin gertatuko.
>> Beraz, pila gainezkatzea, azken batean, da noiz zatia gainidatzi duzu pila
zauden ustezko, erabili tokiko joan aldagai zauden ustezko erabili, eta
bereziki denean gainidatziz hasten zara bezalako gauza garrantzitsu
itzultzeko helbidea.
Eta hor errore bat jasoko duzu.
Edo agian hasiko gara are sartu idazten -
esan bilaketa bitarra zen eskubidea nagusiaren gainetik.
Asko gainidatzi duzu bada, zuk zezakeen nagusitan idatzi.
Baina, oro har, akats bat lortuko duzu aurretik ordenagailua daki gero, delako
zerbait egiten ari zarenean behar ez den egiten.
Bai.
>> STUDENT: Zein da diferentzia pilaren gainezkatzea baten arteko
eta buffer gainezkatzea bat?
>> JASON Hirschhorn: Buffer gainezkatzea mota generiko bat da
zer besterik ez dut deskribatu.
>> STUDENT: Beraz, pila gainezkatzea bat da bufferraren gainezkatzea bat adibide.
>> JASON Hirschhorn: Zehazki.
Hau array bat bezala gara daitekeela uste da buffer, sartu joan gauzak egiteko espazioa
Hau bat pila bufferraren gainezkatzea da.
Zeure bufferraren gainezkatzea bat izan dugu.
Han buffer bat, hau ez da, askotan izan zen bada array bat zeure da, eta guk
mugetatik horiek gainidatzi, orduan ez genuke zeure bufferraren gainezkatzea bat.
>> Eta ikastaro honen esparrutik haratago, pixka bat ezberdinean ari dira detektatu.
Konpiladore berezia dauka bakoitza detektatzeko moduak.
Baina bufferraren gainezkatzea da generiko bat dudana deskribatu mota,
horietatik bat pila bufferraren gainezkatzea zen.
Duten zure galdera erantzun zuen?
Gozoa.
>> Han beste edozein galdera erlazionatutako ziren pila edo zeure egiteko?
Bai.
>> STUDENT: Badakit izan kateak free nahi duzu Oraindik dute zeure delako
eta ez duzu nahi memoria Leak.
Baina aldagai global askatzea duzu eta horrelako gauzak?
Edo automatikoki libratuko dute?
>> JASON Hirschhorn: Ona galdera.
Cs50.h, gauza hau sortu dugu kate bat deitzen duzu.
Kate bat da, benetan zer?
>> STUDENT: Char izarra.
>> JASON Hirschhorn: char izar bat, erakuslea pertsonaia bat, erakusle bat
pertsonaiak ezagutuko ditu.
Hori da katea zein den.
Beraz, askatu behar dugu, zeren GetString, eta horrek asko erabiltzen dugu -
izena katea GetString berdin -
Gurekin buruzko memoria batzuk mallocs zeure eta ondoren erakuslea itzultzen da
duen lehen pertsonaia katea, char izar bat.
>> Beraz, itxuraz, ez baduzu izan dira zure kateak edozein free idazten
beraz, orain arte deitzen duzun, duzu sido memoria batzuk leaking.
Jakina ez dugu hitz egin eta, beraz, inork ez in ahaztuak
egiten arazoak.
Baina aurrera joan, bai.
Noiz GetString deitu, zauden zeure gainean espazio batzuk mallocing.
Eta ez baduzu, deitu doako geroago horretan katea, memoria leak duzu.
Duten zure galderari erantzuteko?
>> Yeah
>> STUDENT: Beraz, ez da egin behar, ez dugu erabili itzulera aurretik eskuinera doan?
Bezala, esparruan, asmatzen badut , esan dugun bezala, int nagusia, barruko
kodearen duten horiek barruan da esparrua kizkur, eskuineko aurretik -
dakizu non duzu litzaidake Normalean jarri bueltan.
Ez librea jarri duzu horren aurretik?
>> JASON Hirschhorn: Beraz libre jarri ahal izango duzu lekuan doan jarri nahi duzun.
Horiek dinamikoki esleitu delako aldagaiak, ezin dutelako
zehatz baten esparrutik kanpo bizi funtzioa, malloc deitu bada batean
funtzioa bereizi, adibidez, GetString, doan deitu ahal duzu nagusian.
Zuk ez duzu deitu funtzio zehatzetan
non malloc deritzo.
Baina agian ez duzu deitu itzultzen nagusia aurretik.
>> Eta benetan araberakoa da.
Araberakoa zergatik malloced duzula on da Lehenik eta espazioa.
Batzuek deituko libratzeko nahiko azkar.
Pertsona batzuek ez deitu doan arte Euren programaren bukaeran.
Eta ikusiko orduan dituzten eta doakoa dena.
Zergatik malloc deitzen duzun araberakoa da.
>> STUDENT: Eta zer esango zenuke deitzen duzunean erabilera GetString bada?
Zer free esan nahi duzuna?
>> JASON Hirschhorn: Beraz, sintaxia free besterik gabe, doan, paren, itxi da
paren, eta erakuslea izenarekin.
Beraz, izena katea berdinen idazten baduzu GetString, jarri duzun izena hemen.
Duten erakuslea izenaren da.
Eta memoria hori libratzeko daki.
>> STUDENT: Beraz, memoria hori askatzen da, erakuslea oraindik ere leku horretan seinalatzen
memorian?
Edo erakuslea ere hustu da Helbide puntu hori da.
>> JASON Hirschhorn: horretan saiatu beharko dugu.
Kode behar dugu.
Dezagun itzuli denean lortuko dugu programazioan, eta bere kodea duten utzi.
Eta irudikatu erantzuna nahi baduzu hori, zuk ere kode dezake horrek
Bitartean.
Baina horrek galdera bat da.
>> STUDENT: Posible al da doan zerbait goizegi?
Beraz, oraindik behar duzu zure programa, eta libratuko duzu memoria espazio hori?
>> JASON Hirschhorn: Bai.
Posible da, baduzu doan zerbait eta, ondoren, berriro erabiltzen duzu, izango duzu
Errore bat sartu exekutatu.
Baina zuk on da, libratuko duzulako zerbait eta gero deitu zion.
Beraz, programatzaile baten akatsa izan zen.
Baina bai.
Duten idatzi izan duzu.
>> Galdera gehiago -
bai.
>> STUDENT: Beraz, ustezko badira besterik askatzea da, oro har, aurretik
programa bukatzen da, ez duela esan nahi du bada programa bukatzen da eta ez duzu askatzea da,
memoria hori esleitu da oraindik?
>> JASON Hirschhorn: zure programa amaitzen bada eta ahaztu duzun zerbait askatzea, gero
memoria hori zehar esleitu zen Zure programaren iraupenari eragingo.
Zure programa guztiz ixten denean, memoria hori ez da gertatzen
bertan geratuko da betiko.
Ordenagailua da smart nahikoa ezagutzen duten programa ixten denean, hura
behar memoria guztia kentzeko duten zen programa hori lotuta.
>> Hala ere, badira exekutatu dezakezu tresna antzemateko programa bat, bada orduan
programa amaitu, ahaztu duzu memoria batzuk libratzeko.
Eta zure hurrengo arazoa ezarri non egon malloc erabiliz dituzu eta erabiliz
erakusleak, behar hau abiarazi beharko duzu Zure programa on programatu bada ikusteko,
denean itzultzen nagusia, batzuk izan duzu gauzak unfreed gelditu ziren.
>> Beraz ari ez malloced lo egingo betiko zure ordenadorean.
Duten hondakin-ekoizpena izango litzateke, zeren Oso azkar, ordenagailuak
memoria agortu litzateke.
Baina exekutatu dute zure amaiera arte bada programatu eta ez dute askatu eta zure
programaren irteerak, hori da oraindik arazo bat duten tresna hau lagungarria izango da aurre duzu.
>> STUDENT: Is Valgrind hori?
>> JASON Hirschhorn: Da Valgrind izeneko.
Eta izango duzu -
>> STUDENT: Baina ez dugu jakin duten galdetegia egiteko, nahiz eta?
Esan nahi dut, hitz egin zen hitzaldia pixka bat.
>> JASON Hirschhorn: Beraz Valgrind tresna duten izena da.
Zer egiten duen jakitea da galdetegia nahikoa.
Baina Oraindik ez baduzu erabil ezazu zure Arazoa ezarri dugu, ez delako izan bat
Arazo multzo dela esplizituki tratatzen malloc edo malloc erabiliz duzu.
Beraz duzu Valgrind oraindik ez erabili.
Baina lehenago erabili ahal izango duzu baino beranduago.
>> STUDENT: Ezin duzu errepikatu zer Valgrind da?
>> JASON Hirschhorn: Barkatu?
>> STUDENT: zer errepikatu duzu Valgring da helburua?
>> JASON Hirschhorn: Valgrind izena da -
GDB bezala zure programa arazteko laguntzen dizu Valgrind laguntzen irudikatu duzu bada
gauzak ez dira libratuko Zure programa ixten denean.
Beraz, exekutatu duzu zure programa da.
Eta zure programaren irteerak, eta esango da malloc deitu zure programa askok honetan
byte asko honetarako aldiz, eta zuk free bakarrik izeneko hau, hainbat aldiz.
Eta beraz byte askotan horiek utzi duzu ari askatu gabe.
Edo esango da duzun guztia askatuko.
Lan ona.
>> STUDENT: Ados.
Eta deitzen Valgring?
>> JASON Hirschhorn: V-A-L-G-N-I-N-D.
>> STUDENT: erakusleak buruzko galdera bat.
Beraz, esan dute n izarra duzu x zerbait berdin.
Duten berdin, edozein ari zara jartzen Han, zer da hori barruan jarri ari
zer x da seinalatuz, edo x erakuslea?
>> JASON Hirschhorn: Can you galdera errepikatu?
Daiteke esan duzun bitartean marraztu dugu?
>> STUDENT: galdetegi batean, egia esan, da inork guri bidali dizu, izan zen, char bezala
izar egia berdinen CS50 arroka, ezta?
Beraz, esan nahi du horrek arroka CS50 duten zer da egia apuntatzen da?
>> JASON Hirschhorn: Beraz, hitz egiten ari zaren char katea izar bati buruz, nola
lan egiten duen?
Bai.
Ados.
Dezagun hemen baino gehiago marraztu honetan.
>> [SIDE SOLASEAN]
>> JASON Hirschhorn: Beraz, aldagai hau da mota char izarra izango da.
Zein handia aldagai bat da mota char star?
Zenbat byte?
>> IKASLEAK: Lau.
>> JASON Hirschhorn: lau byte da.
Zenbat Eskubide aldagai bat da mota int star?
>> IKASLEAK: Lau.
>> JASON Hirschhorn: Lau byte.
Erakuslea bat izanez gero, orduan ez da beti lau byte, erakusleak delako, bere
balioa memoria-helbide bat da.
Eta memoria helbideak CS50 on tresnaren dira lau byte luzea.
Beraz, GetString, edo dugunean deitzen dugun esan, stringname berdin, eta gero in
komatxo kate bat jarri, ari gara -
bai, hori pixka bat hainbat.
Dugu GetString dezaket adibide gisa.
Edo char izar zerbait katea izango dira.
Sentitzen dut, emaidazu adibidea irakurri?
>> STUDENT: char izar egia berdinen "Cs50 arroka" komatxo.
>> JASON Hirschhorn: Beraz, izar honek, hau aldakorra x hau deitu dugu gure
helburu generikoak.
X izeneko aldagai bat sortu dugu.
Mota char izarra da.
Serie baten erakuslea da karaktere.
Beraz, hemen behera -
>> Beraz, hau da nola litzateke hau memoria batean lan egiteko.
Hau memoria-helbide bat gordeko luke.
Memorian gorde helbidea litzateke matrizeko lehen karakterea.
Eta orduan, jarraitu duzun erakuslea, duzun
lehen karaktere lortzeko.
>> Eta gauza hau irakurtzen ari zaren bezala Kate bat, zure ordenagailua ez da smart
Nahikoa da jakitea, irakurtzeko gauza hau osoa daukala arte erreakzio bat 0.
Baina zuk irakurtzen ari bada pertsonaia bat Garai batean, hain bitartez errepikatzean zaren
kate hau, gero, besterik irakurri bat aldi berean izaera lortu arte behar
backslash 0.
Agian ez erantzun zure galdera, baina.
>> STUDENT: Bai, baina ez duzu malloced espazio hori
oraindik erakuslea da.
>> JASON Hirschhorn: Beraz, ez nago oso ziur zehazki zer bilatzen ari zaren,
Ez nuen galdetegi hori egin duelako.
Duten ustezko lagungarria izan nahi du TF beste baliabide.
You buruzko kate bat sortzen ari bazara pilatu edo tokiko aldagai gisa, bertan egingo
nahiko luke karguak sorta baino oro har, char izar bat seinalatuz
katea beste.
Baina ez dakit.
Duten beste erakuslea izan daiteke kate pila baita.
Bai.
>> STUDENT: Badakit behar duzula esleitu memoria erakuslea da agertzen
ohitu barruan deklaratu Funtzio beste.
Ez da gauza bera egin behar da bada behar duzun ari nagusiaren barruan deklaratu,
erabiltzen ari zaren nagusien barruan?
>> JASON Hirschhorn: Beraz, bai.
Erakuslea deklaratzeko edozein dezakezu memoria memoria helbidea.
Memoria lokal baten helbidea izan daitekeela aldakorra, oftentimes ordea,
jendeak ez deklaratzeko memoria helbideak dute joan delako aldagai lokalak izateko
behin kanpoan funtzio hori ematen du, eta horrek Horregatik, oro har, gauzak malloc dugu.
Baina bai, erakuslea deklaratzeko izan duzu beste tokiko aldagai izateko.
Besterik ez da, oro har, ez da egin.
Baina hori begirada bat hartu ahal izango dut Gauza zehatz klase ondoren.
Bai.
>> STUDENT: Nik uste dut, hau da, nolako zer gertatzen ari den galdetu du.
Badirudi arraroa du egon behar hasieratzean ez bezala erakuslea
helbidea, baina baita zer balio bat dirudi.
Badirudi bezalako CS50 da zer barruan gauza diren adierazi eta
Ez da benetako helbidea, ezta?
>> JASON Hirschhorn: Beraz, ez da kasua, baina.
Hori ez da zer gertatzen ari den.
Noiz char izar bat aldarrikatu duzu, memoriaren helbide bat da.
Erakusleak memoria helbideak guztiak dira beste zerbait seinalatuz.
Zerbait, bestela ezin da izan pila, baina ia beti piztuta
Bide egiterako ikusiko dugu zeure.
Baina stringname bikoitzeko aurrekontua berdinen ", GetString" duten ikusi ahal izango dugu eta guk
horren bidez begiratu eta duten kodea.
GetString kate ari ez atalean gordetako aldagai hori, edo dena katea
izen da ari ez duten atalean gordetako aldakorra, ez delako nola
erakusleak lan.
Ez duela zentzurik?
>> STUDENT: Bai.
>> JASON Hirschhorn: Ados.
Zorionez, ez zen inori nahasia.
Baina izan bada, dugu begiratu ahal izango da berriro pixka batean, zeren benetan goaz
izango dela espero zerbait kode kateak lan eta sentitzen duzu laguntzeko
gehiago haiekin eroso.
>> Horiekin lotura duten beste edozein galdera gaiak edo beste gai horretan
Jarri dut atzera?
Eta -
oraintxe.
Bai, Alden.
>> ALDEN: Beraz, hau da erabat zerikusirik, baina ezin besterik joan baino gehiago dugu
benetan azkar zer jakin behar dugu 32 eta arteko ezberdintasuna
64-bit makina?
>> JASON Hirschhorn: Bai.
Beraz, 32 bit zenbat byte?
>> ALDEN: lau byte da.
>> JASON Hirschhorn: lau byte da.
Eta 64 bit da zenbat byte?
>> STUDENT: Zortzi.
>> JASON Hirschhorn: Zortzi byte.
Beraz, berriro ere, zortzi bit, byte bat da.
Zure CS50 tresnaren da 32-bit makina bat.
Beraz, memoria-helbideak lau byte luzea.
Badira 2 dira 32 arte memoria helbideak.
0 eta 2 32 ken 1.
Eta ez naiz positiboa, baina hori da seguruenik zer behar duzun esparrua
32-bit makina bat dakit, hori memoria helbideak dira, berriro ere, lau byte luze,
eta gehienezko zenbatekoa da memoria helbideak.
>> Halaber, datu motak -
honek zerbait izan liteke bai hori da nabarmendu behar.
Datu mota baten tamaina araberakoa on makina lanean ari zaren.
Beraz char bat, pertsonaia bakar bat, nola gure CS50 tresnaren on byte asko?
Byte bat.
Eta, egia esan, byte bat bezala bai 64-bit makina batetan.
>> Eta datu-mota gehienak dira kopuru bera bi makina bytes.
Baina datu-mota batzuk desberdina izango da bai makinak.
Beraz, potentzialki izango litzateke Jakin behar duzun gauza bakarra.
>> Hala ere, hori, uste dut, mugetatik kanpo dago -
Ia positiboa naiz, atzera begiratuz gero galdetegiak zaharra at, dio, bere gain hartzen
arazoak erabiltzen ari zaren kodifikazioa 32-bit makina bat.
Baina badira, batera joan zela eta hona Kasu interesa Oraindik ere, badira
Datu mota berdinak dira tamaina makinak guztietan.
>> Duzu antzeko zerbait ikusi dut bada uint32_t, edo may you may
ez ikusi ahal izan duten.
Duten datu-mota bat da.
Duten, esaten be 32 bit axola zaio hau zer da makina da.
Beraz, jendea eramangarri idazten kodea, dute ziurrenik ez ints erabili.
Ordez erabili beharko dute beste datu hauek dakite duten mota bera izango da
tamaina makina bakoitzean bakarra da.
Madhu.
>> Madhu: inguruko galdera bat izan nuen konpilazio prozesuak.
Beraz, zuk erabiltzen duen programa bat idazten ari bada CS50 edo antzeko zerbait liburutegi bat
duten bezala, badakit duten Liburutegian ditu, eta, uneren batean, izan
bildu eta lotuta sartu
Baina zenbat dira A gertatuta Zure programa batzeko?
Zer liburutegi prozesu horren zati gertatzen denean Oraindik
zure programa propioa konpilatzean?
>> JASON Hirschhorn: Beraz, goazen baino gehiago oro har, prozesu honen urratsak.
Zure. C fitxategia idatzi duzu.
Zure. C fitxategian, besteak beste, zuk # ​​zure goiburua liburutegiek, adibidez, cs50.h.
Zer esan nahi du, besteak zorrotz lerroa zure programa egin?
Akchar.
>> AKCHAR: prototipoak gehitzen da goiburuarekin egindako funtzioak
liburutegietan fitxategiak.
>> JASON Hirschhorn: Zehazki.
Funtzioa prototipoak horiek gehitzen Zure kodea da.
Beraz, zure kodea konpilatu ari da Hastapenak, konpiladore daki
funtzio horiek benetan existitzen, eta nonbait definitu dute.
. H fitxategiak ez dituzte barnean hartzen du funtzio hauen definizioak edo nola
benetan lan egiten dute.
Cs50.h zerbait esaten duen barne hartzen GetString benetako gauza bat dela
gerta daiteke.
Eta standardio.h dio printf da Gauza erreal bat gerta litekeen.
>> Beraz, zure c honekin hizkuntza. Goiburua fitxategia lortzen batzuk bihurtu
makinak irakurgai kodea; azkenean lortzen bitar bihurtu
kodea, 0 eta 1.
Eta hori kodearen da, azken finean, lortzen exekutatu.
-L cs50 line - adibidez, denean Clang idazten ari zaren -
eta ondoren, besteak beste,-l duzu cs50, duten idaztean sartu
Eta hori ikusten duzu.
Noiz egin idazten duzun, duzu ikusi lerroa sortu hemen.
Eta hori, ikusiko dugu bigarren bat denean kode dugu edo ondorengo dugunean kodea da.
>> Baina hori-l cs50 lerroko zerbait egiten baino pixka bat desberdina
# besteak beste cs50.h.
Zer egiten du hori l cs50 line?
Avi?
>> AVI: hura lotzen duen esan nahi dut funtzioa liburutegian
deitu du. o fitxategiak bezala.
>> JASON Hirschhorn: Beraz, oso itxi, ez bada gelditzea-on.
-L cs50 fitxategi bitar hartu eta konbinatzen ditu zure fitxategi bitarra.
Beraz cs50.h, ez da inflexio puntua ez C hizkuntzatik cs50.h behin bitarra egiteko
denbora bakar erabiltzen ari da.
Silly izango litzateke, hori delako denbora asko alferrik litzateke.
Beraz, dagoeneko konpilatu da sido eta exekutagarria bihurtu zen.
Eta orain da batu egingo Zure amaieran agiriarekin.
Beraz, horiek 1 eta 0 dira joan Zure direnak batu
eta 0-ren amaieran.
Beraz, gaur egun, benetan izango duzu benetako 1 eta 0 nola GetString definitzen duten,
adibidez, lan egiten du, edo nola printf, adibidez, lan egiten du.
>> Eta informazio gehiagorako, ez da bat duten Nate ematen Konpilatzaileak laburrak
check out behar duzu doan urrats hauek bidez.
Baina -
bai.
>> STUDENT: al dira beti in o fitxategiak. Oraindik liburutegi formularioa dute,
lotuta batu prest, - bezala Oraindik dute bitar kodean?
>> JASON Hirschhorn: Ados.
Zer -
>> STUDENT: Dela beti kasua liburutegiak denean horiek lotzen duzu?
>> JASON Hirschhorn: Bai.
Beraz, ez da. S fitxategiak, zein izango da makina kodea; ere izango dira
Zuri bat zailago.
Zuk ez duzu nahi dutenek kezkatu.
Baina, oro har, bai, egingo dute izango dira. o prest joan fitxategiak.
>> STUDENT: Beraz, noiz ontziratu duzu liburutegi bat, ez bakarrik ontziratu duzu
ditu. h eta. o?
Ez duzu ere. C edo. Z ontziratu.
>> JASON Hirschhorn: So -
eta hau labur honetan dago baita, bada Informazio hau dela dirudi, bat datozen
Apur azkar.
Baina Konpilatzaileak laburrak honi buruz hitz egiten baita.
Denean liburutegi bat zenezakete, ontziratu baduzu ditu. h, goiburu-fitxategia, horiek
funtzioa prototipoak, eta 1-en eta 0-ren, hori da eman behar duzun guztia.
Zuk ez duzu eman nola funtzioa egiten du lan,. C fitxategia.
Delako abstrakzioa puntua, edo APIak seinalatu, SPL honetan puntua,
Stanford liburutegia eramangarri, hura da zuretzat ez kezkatu nola berria
GRect lan egiten du, edo nola mugitzeko lanak, edo nola gehitu lanak.
Guztiak jakin behar duzun da Gehigarrien duten funtzio hori ahal duzun da
erabili, eta hau ez da.
Beraz, benetan behar ez daki nola Da C. You idatzitako besterik behar
Badakizu, hemen funtzioak, zer egin, eta hona hemen 1 eta 0
denean benetan horiek erabili nahi duzun.
>> Cool.
Konpiladoreak galdera gehiago edo taula gainean bestelako gaiak?
>> STUDENT: galdera bat daukat funtzio errekurtsiboa ezartzeko.
Errekurtsibitate buruzko galdera bat.
Etorriko litzateke sentsazioa izan nuen.
Hargatik azkar bidez joan jakin batekin errekurtsibitate
Adibidez, funtzioa faktore bat.
Honen adibide bat da delako askotan sortu dator edo erabiltzen da
errekurtsibitate ilustratzeko.
>> Beraz, "4!" 4 faktore bezala irakurri.
Eta zer esan nahi du 4 faktore?
Zer ari da hori egiten?
Nola ez 4 faktoriala kalkulatzeko duzu?
4 aldiz 3 aldiz 2 aldiz 1.
>> Beraz, beste 4 faktore idazteko modu da hau idazteko.
4 aldiz 3 faktore.
3 faktore delako 3 aldiz 2 aldiz 1.
Beraz, 4 aldiz 3 faktorial 4 da aldiz 3 aldiz 2 aldiz 1.
Horregatik faktoriala da handia errekurtsibitate hautagai, delako
han argi duten zerbait da gertatzen eta gehiagoko eta gehiagoko batean
arte gauza kopuru txikiagoak amaierara iritsi.
Noiz iritsiko gara 1, 1 faktore 1 da.
Ezin duzu askoz urrunago joan.
0 faktore ere 1 bezala definitzen da.
Beraz, noiz lortuko 1 edo 0, zu amaieran, eta ahal duzun
hasteko atzera gora.
Recursive bat idatzi nahi, beraz, badugu funtzioa faktore bat kalkulatu ahal izateko,
batzuk idatzi goaz hori orain pseudocode.
Pseudocode hori idatzi aurretik dugu -
Emango dizut mutil minutu pare bat sasi-kodea idazteko edo, besterik gabe, uste
Horri buruz - Bi gauza guztietan daude Funtzio errekurtsiboak behar.
Zer dira bi gauza horiek?
>> JACK: berez deitu ditu.
>> JASON Hirschhorn: Noah?
Oh, Jack.
Anima zaitez.
>> JACK: berez deitu ditu.
>> JASON Hirschhorn: Beraz errekurtsiboa funtzioa dei errekurtsiboa bat behar du, bat
berak deitu.
Hori da bat.
Eta zer beste gauzarik?
>> JACK: base kasu bat.
>> JASON Hirschhorn: base kasu bat.
Base kasu bat da, hemen denean geldituko gara.
Beraz, zure funtzioa lortzen izeneko.
Base kasuan lehen dator.
Oraindik amaieran bada jakin nahi duzu.
Eta ez bazaude amaieran, zuk zure dei errekurtsiboa egin.
Eta funtzio honen bidez berriro joan beharko duzu, begiratu berriro zure oinarria kasuan.
Oraindik amaieran ez bada, egiten dituzun beste dei errekurtsiboa,
et cetera, et cetera.
>> Horregatik funtzio errekurtsiboa beti oinarri horiek kasu eta horiek behar
dei errekurtsiboak.
Ez baduzu, dei errekurtsiboa bat izan, hura ez litzateke funtzio errekurtsiboa izango.
Ez baduzu dute oinarri kasu bat, betiko joan nahi duzun eta
han amaiera ez litzateke.
Eta base kasuan beti dator lehen, Beti izango duzu begiratu nahi duelako
Lehenengo bazaude amaieran.
Pseudocode batzuk egiten dugu, beraz, aurretik, zergatik ez minutu bat eman beharko duzu pentsatu
nola recursive funtzioa faktore bat idatzi behar litzateke?
>> Halaber, asko egiten ari zaren bezala, idatziz it out paper orri baten gainean dago
zer ari zaren behar joan galdetegiaren egin bihar.
Praktikan, beraz, seguruenik ona egiteko ziur kodearen idazten ari zaren
paper on behera -
edo hori egin ahal izango duzu.
Badakizu non puntu dira.
Sintaxia gogoratzen duzu.
Zu ez egon behar gai delako bat konpiladore esango akatsik egon zaren.
>> Ere, lerro horiek, bihar, batera denean arazoak kodifikazioa zuk, zuk
daude aldiz oldartu, edo Oraindik oso balitz nola zauden ustezko gisa nahastu
gauza zehatz idaztea c, hara sasi-kodea idazten duzun zilegi litzateke
edo iruzkinak idazteko baita.
Han bat kreditu partziala delako galdetegiaren galdera asko.
Beraz duzu rushed liteke, edo zuk agian besterik nahastu behar.
Iruzkinak edo sasi-kodea idazten modu askotan zarela
kreditu partziala lor daiteke.
>> Beraz, ez zerbait utzi hutsik quiz da.
Ez dago zigorrak gauzak jarriz sartu
Izan ere, sasi-kodean edota jarriz iruzkinak da kalifikatzailearen laguntzeko joan
irudikatu benetan badakizu zer saria aipatzen dituzu, eta agian
duzu horretarako kreditu partzial batzuk.
>> Lerro horiek ere batera, idatzi argi eta garbi.
Ezin dugu benetan zer, idazten ari bazara Ez ari gara zuri deitzeko joan
gauerditik bihar figura at zer idatzi duzu.
Besterik ez gara off hartzeko puntuak egingo.
Idazteko, argi eta garbi, beraz, entzun ahal izango dugu, edo, hobeto esanda, irakurri ahal izango dugu zer idatzi duzu.
>> Eta bi esaldi dio bada, ez paragrafo bat idazteko.
Jarraitu argibideak.
Idazteko, argi eta garbi.
Eta iruzkinak horietan idatzi edo galdera pseudocode duten Could
Sari kreditu partziala.
>> OK, goazen faktore.
Beraz funtzioa faktore bat dugu.
Benetan idatzi C banintz, zer izenaren aurretik jarri behar dut
funtzioaren?
Itzulerako mota, izan ere, honetan Kasu, eman int dugu.
Eta gero, kizkur giltza barruan, da kizkur giltza barruan zer doa
funtzio bat?
>> IKASLEAK: argumentu mota.
>> JASON Hirschhorn: Bere argumentuak.
Beraz, faktore izango da seguruenik argumentu bat hartzen.
Da ziurrenik: argumentu bat bakarrik hartzen.
Eta esaten dugu hartuko da x izeneko zenbaki oso bat.
Eta berriro ere, prototipoa idazterakoan funtzio bat edo funtzioa idatziz
Zure kodea da definitzeko, aurretik dauden datu-mota eta izena idatzi
funtzio hori baino ez dugu aldagai hori.
Beraz, zenbaki batzuk pasatzeko dezakezu hau sartu funtzioa, hura egingo aipatzen x gisa
barrutik.
>> Gure funtzioa faktore dugu.
Bi gauza, oinarri kasu bat behar dugu eta dei errekurtsiboa bat.
Zein da faktore oinarri kasuan?
Norbait idatzi ezazu eta nork ez ditu Oraindik hitz egiten, zer oinarria da
faktorial kasua?
>> STUDENT: n da gutxiago bada 2 baino, itzuliko 1.
>> JASON Hirschhorn: n badago 2 baino gutxiago, itzuliko 1.
Zait gustatzen, zeren horrek bere gain hartuko ditu, 0 eta 1.
Beraz, egin dugu x <2, itzuliko 1.
Dugu pasatu bada get 0, lortuko badugu gainditu 1, funtzio hau izango
berehala itzuliko 1.
Kopuru handiagoa batzuk pasa dugu gero edo baino 2 berdina, goazela
Gure dei errekurtsiboa izan.
>> Eta beraz, nola duten lanera joan da?
Can norbaitek nor honetan lan egin nork ez du oraindik hitz egiten ematen dit
dei errekurtsiboa funtzio horretarako pseudocode?
Kopurua x batean ezagutu genuen gainditu bada eta 2 baino handiagoa da, zer
egin nahi dugu?
Guk ere izan Adibide on idatzizko duzula aholku bat eman dezake alboko.
>> STUDENT: Dei x aldiz faktorial x ken 1 of?
>> JASON Hirschhorn: Zehazki eskubidea.
X aldiz itzuli goaz x ken 1 faktoriala.
Eta, hori idatzi nuen, nahiz eta, Funtsean, zer ingelesez esan dizu,
funtzioa faktore hau berriro deitu egingo dira.
Egingo x ken 1 abiaraziko da.
Osoko zenbaki batzuk itzultzeko aukera izango da, eta gero biderkatu egingo bi hauek
elkarrekin, eta balio hori izango da edozein dela ere, honek deitzen itzuli
funtzioa faktore, eta horrek agian instantzia bat izango
funtzioa faktore hau.
>> Beraz recursive baten adibidea da funtzioa, oso bat
recursive funtzio sinpleak.
Baina gehienak horrela izango.
Duzu recursive on bat egin nahi baduzu galdetegia erronka, saiatu coding
bitarra bilatu errekurtsiboki.
Delako bilaketa bitarra egin baduzu Arazo multzo hiru, seguruenik ez duzu
iteratively berriz, begizta batean.
>> Baina era berean idatzi behar da errekurtsiboki.
Zeure idatzi behar joan zaren duten batzuk hartzen aparteko funtzioa
komando lerroko argumentuak desberdinak - edo ez komando lerroko argumentuak, zenbait
dituen argumentuak besterik erregularra.
Baina bilaketa bitarra idatzi izan duzu errekurtsiboki baita.
>> STUDENT: Beraz, gainera, ezin duzu idatzi dute, ordez x ken 1, duzun
ere idatzi zitekeen x ken ken, edo izan duzu
idatzizko ken ken x.
Ezin azaldu besterik benetan azkar zergatik horiek gauza desberdinak izango litzateke,
arteko aldea zein den bezala x ken ken eta ken ken x?
>> JASON Hirschhorn: Ez, ez naiz , horretan joango gara.
Baina zurekin hitz egingo dut horri buruz ondoren klase. x ken ken, ken ken x
decrement x 1 eta.
Baina egin dute pixka bat ezberdinean.
Baina ez dut horretan sartu nahi.
Errekurtsibitate buruzko beste galdera edo funtzio hori?
Hori ez da benetan, nahiz pseudocode.
Hori da, funtsean in kodearen C honetan zuk idazten litzateke.
>> Ados, beste edozein galdera gaiak hemen inguruan?
Bai.
>> STUDENT: rundown azkar bat daukat Puntu eta doitasun flotatzen.
>> JASON Hirschhorn: askea Puntu eta doitasun.
Can norbait benetan azkar emaidazu rundown
Puntu eta doitasun flotatzen?
Horretarako zure izan duzun guztia Arazo multzo, beraz Oraindik guztiak
hura ezagutzen.
Edo agian duzun guztia ez.
Edozeinek?
Give me hasi spot bat.
Puntu eta doitasun flotatzen.
Zein da arazoa?
Bai.
Victoria?
>> VANESSA: Vanessa.
>> JASON Hirschhorn: Vanessa.
Barkatu.
>> VANESSA: Badira kopuru mugatu bat besterik ez ordezka daitekeen zenbakien
Oraindik on bat, delako gure kasuan, 32 bit-sistema bat.
Beraz duzu motatako behar zenbaki batzuk osatzen.
>> JASON Hirschhorn: Beraz, zehazki eskubidea.
Badira soilik kopuru jakin bat ordezka daitekeen zenbakiak.
Bi zenbaki oso handiak biderkatu baduzu, zenbatekoa gainezkatzea zitekeen
espazioak irudikatu behar duzu zenbaki oso bat.
Horregatik, batzuetan erabiltzen dugu bat luze luze ordez int bat.
Duten espazioak gehiago ditu.
Duten kopuru handiago bat eduki dezakete.
>> Puntu mugikorreko doitasun zerikusia du , duten baina baita ere hemen egin behar du
Izan ere zenbakiak hamartar daudela ez beti irudikatzen.
Barkatu.
Dezagun jarri me back up hau.
Zenbakia hamartar 1.0 ez da beti Zu bezalako irudikatzen espero,
1,000000000.
Da batzuetan gisa irudikatzen 1,000000001 edo 0,999999999.
Litekeena da, nahiz eta 89 bota behar nonbait han.
Zenbakiek hamartar horiek ez dira zehazki egiten duzun bezala irudikatzen
espero ordezkaritza izan dezaten.
>> Beraz, arazo girotuta -
izan zen bi? -
Arazo bi, non tratatzen dugu ezarri puntu mugikorreko zenbakiekin, noiz nahi izan dugu
zehazki nahi duguna adierazteko haiek irudikatu horiek, kopuruari
pennies, edo zentimo kopurua, horiek biderkatu dugu 100.
Horietako biribilduko dugu.
Eta, ondoren, moztu dugun guztia du dezimal atzean.
Zela bermatzeko dutela litzateke benetan berdinak zehazki nahi duguna
berdinak haiek.
>> Zerbait hartu duzu hori delako bat flotatzen eta piztu int bat sartu, zuk
moztu eskubidea dena du dezimal.
Puntu mugikorreko zenbait delako imprecision, 100.000 izan liteke
99,999999999 gisa irudikatzen.
Eta zuk ebaki besterik off guztia bada eskuinetik berehala, zu joan behar
okerreko zenbakia lortzeko.
Bai.
>> STUDENT: dut galdera bat izan galdaketa buruz.
Zer ordena gertatzeko in da?
Duzun karroza egin litzaidake bada, parentesi artean, 1 banatuta 10, du ez 1 10 banatzen da,
ondoren lortu 0,1, gero buelta mugikor bat sartu?
>> JASON Hirschhorn: Ez baduzu flotatzen 1 10 arabera banatzen da -
>> STUDENT: Bai, eta orduan berdin -
Ondo, beti egin ohi da berdinetan egiten dute -
Bai.
Mugikor bat egin nahi duzu, ezta?
>> JASON Hirschhorn: Ados, beraz ari gara joan erabili dela kalkulatzen sartu segue
galdera hauen erantzunak coding bidez.
Baliteke zuk asko izan delako minutuko galdera horiek, eta modu ona
horiek konpontzeko coding bidez.
Beraz, eskubide hori kode orain joan, eta orduan ari gara atzera joan eta joan
galdera izan duzu kodea.
>> Beraz, lehen lerroan -
Ez behar dut idatzia da - zer da lehenengo gauza egin nahi dugunean
ireki gedit fitxategi berri bat?
>> STUDENT: Include.
>> JASON Hirschhorn: Include zer?
>> STUDENT: CS50 liburutegian.
>> JASON Hirschhorn: Ados.
Zer gehiago sartu behar dugu?
Besterik ari gara zer gertatzen den ikusteko joan zerbait bota duzu mugikor bat da.
Baina zer egiten ari bagara, besteak behar dugu C programa bat idazteko joan?
>> STUDENT: Standard I / O.
>> JASON Hirschhorn: stdio.h.
Egia esan, ez dugu behar, horretarako programa, cs50.h, horri nahiz
beti lagungarria da, besteak beste.
Baina beti stdio.h behar dugu.
>> STUDENT: C coding Noiz?
>> JASON Hirschhorn: C. coding When
>> Beraz. C fitxategi hau gorde dut.
Batzuk polita sintaxiaren nabarmentzea lortu dut.
Nagusiaren barruan void idatzi nuen.
Zer esan nahi du hutsunea?
>> STUDENT: Ez du inongo hartu komando lerroko argumentuak.
>> JASON Hirschhorn: Void bitartez, honetan kasuan, nagusiak ez du inolako hartu
komando lerroko argumentuak.
Beste kasu batzuetan, funtzioa esan nahi du ez du komando-lerroko argumentuak hartu.
Edo funtzioa, void idatzi beharko banu izateko main (void), duten nagusiaren esango lukeen
ezer ez itzuliz.
Beraz, hutsunea besterik ez du ezer esan nahi.
Zer idatziko nuke ziren I nahi izanez komando lerroko argumentuak hartu?
>> STUDENT: int arku c katea arku v
>> JASON Hirschhorn: int argc katea argv.
Eskubidea dela?
>> STUDENT: char izar argv parentesi bat da.
>> JASON Hirschhorn: Beraz, idatzi ahal izango duzu katea argv parentesi edo char izar argv
parentesi artean, baina parentesi beharrezkoa da.
Delako argv array bat da kateen, gogoratu.
Ez da kate bakar bat.
Beraz, katea argv da, hemen argv izeneko kate bat.
Katea argv Parentesi da, hemen kateak array bat.
Beraz, int argc katea argv parentesi zerbait izango litzateke duten I
seguruenik idatziko litzateke.
>> Beraz, zenbaki oso bat gorde nahi duzu?
>> STUDENT: Bai, zenbaki oso.
Edo karroza batean.
>> JASON Hirschhorn: karroza batean?
Bezala, x karroza berdinen 1 10 arabera banatuta.
>> JASON Hirschhorn: Ados.
Nola ez mugikor bat atera dut inprimatu printf in?
Zer?
>> STUDENT:% f.
>> JASON Hirschhorn:% f.
Zer da zenbaki oso bat?
d o i.
Zer da kate bat?
>> STUDENT: s.
>> JASON Hirschhorn: s.
Nola ez, lerro berri bat lortu dut?
>> STUDENT: Alderantzizko barra n.
>> JASON Hirschhorn: Zer egin behar dut itzultzeko eskailerak nagusia behar bezala bada?
>> STUDENT: 0.
Ez lerro hori idazten, nahiz eta behar dut?
>> STUDENT: N º
Ados, ez dugu idazten, eta gero.
Daiteke denek irakurri?
Apur bat txiki ikusten da.
Daiteke mundu guztiak ikusteko, edo egin beharko lukete Handiago egiteko I?
Uste dut kamera, egin dugu pixka bat handiagoa da, baina.
>> JASON Hirschhorn: honi buelta eman nahi badut . C exekutagarria sartu fitxategia, zer
ez idazten dut?
>> STUDENT: Egin proba.
>> JASON Hirschhorn: Barkatu?
>> STUDENT: Egin proba.
>> JASON Hirschhorn: Egin proba.
Buruz hitz egiten ari ginen lerro hau lehenago.
Clang.
Zer da clang?
Konpiladore baten izena.
Zer da lerro hau?
>> STUDENT: ezartzen du gora GDB erabiltzeko.
>> JASON Hirschhorn: Sets GDB erabiltzeko sortu da.
Lerro hau, zer da hori?
>> STUDENT: Iturburu kodea.
>> JASON Hirschhorn: Hori da iturburu fitxategia,. C fitxategia.
Zer egin bi lerro hauek?
Edo bi ez lerro hauek.
>> STUDENT: izen da probatzeko.
>> JASON Hirschhorn: Beraz etenaren o dio, izendatzeko zerbait ezberdina izan.
Eta hemen da proba deitzen ari zaren.
Ez dut ez bada dute horretan, zer hau izendatzeko litzateke?
>> STUDENT: A.out.
>> JASON Hirschhorn: A.out.
Zer egin?
>> STUDENT: Loturak matematika liburutegian.
>> JASON Hirschhorn: It lotzen matematika liburutegian.
Ez genuen besteak beste, matematika liburutegian, baina hori da hain ohikoa geroztik, dut dute
idatzizko marka beti sartzea matematika liburutegian.
Eta, orobat, horretan sartzen dira CS50 liburutegian.
>> Ados, beraz, dugu zerrendatu bada, orain dugu test izeneko exekutagarria.
Hura exekutatzeko, proba idazten dut.
Nire puntu mugikorreko dela ikusten dut, espero bezala, funtzioak 0 itzultzen du.
Horrek -
beraz -
>> STUDENT: Ondoren jarri baduzu flotatzen, orain, bezala karroza bota duzu -
>> JASON Hirschhorn: Cast 1 mugikor bat hemen?
>> STUDENT: Ez, bota du gauza osoa -
bai.
Zenuen besterik ez bada ere, ez litzateke horregatik da 0.1?
>> JASON Hirschhorn: Ados, beraz, oso azkar, 1 10 arabera banatzen da, horiek dira
ari banatuta osokoak.
Beraz, osoko zenbakiak zatitzea duzu, Oraindik dute 0, eta aurrezten ari zaren 0 batean
flotatzen, barra delako besterik zatiketa osoa.
Beraz, gaur egun zerbait inflexio ari gara karroza batean.
>> Ikusi dezagun zer gertatzen den.
Proba egin dugu.
Beraz, gaur egun ikusten dugun barra hori ez zen Zatiketa, flotatzen zuten
Puntu banaketa.
Delako bere argumentuak bat izan dira mugikor bat bota.
Beraz, gaur egun, esaten zen hau tratatzeko zatiketa bezala aurre ari gara
puntu mugikorreko, ez osokoak ere.
Eta beraz, erantzuna espero dugu lortuko dugu.
>> Ikusi dezagun zer gertatzen den -
trabatzen.
Gehiago hamartar inprimatu nahiko banu lekuak, nola izan behar dut?
>> STUDENT: Point dot f, edo asko bezala hamarrenekin nahi duzun bezala.
>> JASON Hirschhorn: So I inprimatu 10 lekuak hamartar.
Eta orain ikusten dugun ari gara stuff bitxi batzuk.
Eta hori zure galderaren atzera egingo buruzko puntu mugikorreko imprecision.
Han hemen gordetzen dira gauza arraroa da.
>> Ados, zure galderari erantzun du?
Zer gehiago nahi zenuten azkar kode?
>> STUDENT: nahi dut ala ikusten ez, gora libratuko duzu erakuslea batzuk izanez gero,
erakuslea duten oraindik ere izan gordetako ala zer izan da helbidearen
Aurretik seinalatuz.
>> JASON Hirschhorn: Ados, beraz, utzi egin dela.
Char izar ptr, hau aldagai bat sortzen mota char star ptr deritzo.
Nola ez idazten dut malloc?
Alden?
>> ALDEN: Just malloc.
Baina gero tamaina izan behar du, eta Kasu honetan, uste dut zuk litzaidake
egon seinalatuz char.
Beraz char litzaidake.
>> JASON Hirschhorn: Ados, beraz, gehiago generikoki, Inside -
dezagun editatzeko.
Malloc barruan, kopurua nahi duzun zeure on bytes.
Oro har, zer ikusi dugu gaudela egiten da malloc goaz
kateak, adibidez, edo zenbaki osoen array.
Beraz, 10 zenbaki osoko, edo 10 nahi badugu karakteretan, 10 emango digu 10.
Eta gero chars tamaina luke gurekin chars tamaina duen, eta bertan,
Kasu honetan 1 byte da.
10 byte lortuko dugu.
Int tamaina idatzi egin behar izanez gero, hori ezagutzera emango litzateke 40 byte.
>> Beraz oro, malloc barruan Nahi duzun byte kopurua da.
Kasu honetan, ari 1 byte lortzean dugu.
Zein erabilera bitxi bat dirudi malloc, baina gure
helburu zentzurik.
Beraz, ez da hori.
>> Free deitu goaz.
Ditugun kentzeko eta ptr erabiltzen dugu berriro.
Eta zer ez zuen begiratu nahi duzun?
>> STUDENT: nahi dut behar den ala ez egiaztatzeko edo ez, ez zen ezer
barruan.
>> JASON Hirschhorn: Beraz, ala Adierazi ezer nahi du?
>> STUDENT: Bai, hain zuzen, ea oraindik ere memoria-helbide bat izan zuen.
>> JASON Hirschhorn: Beraz, nahi duzun ptr balioa egiaztatzeko?
>> STUDENT: Bai, hain zuzen.
>> JASON Hirschhorn: Zer egin, hemen idazten dut balioari begiratu nahi badut
puntua - zer da, Jordan esan zuen, balioa?
Edo zer da ptr barruan gordetzen?
>> STUDENT: memoria-helbide bat.
>> JASON Hirschhorn: memoria-helbide bat.
Beraz idazten dut, besterik gabe, hau bada, egingo emaidazu ptr balioa.
Eta nola ez dut inprimatu memoria-helbide bat?
Zer da formatu katea memoria-helbide bat?
>> STUDENT:% p.
>> JASON Hirschhorn:% p.
% S katea da.
% Erakuslea for p.
Eskubidea dela?
Duten eskubidea da.
Beraz ptr berdin -
hala ere, zerbait dauka.
Hau da, ziurrenik gehiago bat Galdera interesgarria.
Zer egiten du lerro hori?
>> STUDENT: Seg matxurak.
>> JASON Hirschhorn: Zer?
>> STUDENT: uste dut matxurak seg da.
>> JASON Hirschhorn: Hm?
>> STUDENT: uste dut seg izango da errua.
>> JASON Hirschhorn: Beraz, lerro hau kodea, izar ptr du, zer
esan nahi du izarraren?
>> STUDENT: edukia.
>> JASON Hirschhorn: Bai.
Joan edukiari lortzeko.
Beraz, hau da memoria joan aurre han eta eman zidan.
% C erabiltzen dut hementxe delako han han gordetzen diren pertsonaiak.
Beraz, joan helbide dugula joango gara besterik ikusi - edo ziurrenik izango da izan
Pixka hau desberdina denbora programa exekutatu dugu.
Baina joan beharko dugu helbide horretara eta badakigu oraindik badago
eta ikusi zer han.
>> Beraz, ez zuen seg errua.
Ez bakarrik ez ematen diguten ezer.
Izan liteke, benetan eman digu zerbait, ezin dugu ikusi.
Eta hori ideia hori atzera doa -
eta ez gara gehiegi sartu lortzeko ari hau, hori baino haratago delako
Ikastaro honen esparrua.
Baina hitz egin dugu hemen, badugu array mugetatik haratago joan by
1, agian ez dugu arazorik izango.
>> Batzuetan, joan off besterik ez duzu 1, zerbait gaizki egiten ari zaren, eta zuk
liteke arazoak lortu.
Baina ez duzu beti arazoak lortu.
Araberakoa zenbat gauza txar bat duzu dezaket, arazoak lortu bazoazela.
Eta hori ez da, esateko izan sloppy zure kodea.
Baina esan da, programa ez beti irten, nonbait, joan nahiz
zu ez luke joan.
>> Horren adibide ona da, asko Beren arazoa pertsona ezarri 3, zein
zen 15, ez konprobatu taula mugetatik.
Beraz, begiratu ezkerrera duzunean, begiratu eskuin, goitik begiratu, begiratu
beheraino.
Baina ez duzu egiaztatu bada ikusteko goiko zen benetan taula gainean izango da.
Eta nork egin duen jende asko eta aktibatuta horretan, euren programan lan egin
primeran, non taula zela delako memorian gordetzen dira, banan joan ezkero
gainetik edo egiaztatuko duen memoria helbidea, han ez zen ezer
bereziki horri buruz izugarria, horrela, programa ez zen
nahi duzun Yell.
>> Baina oraindik dugu hartuko luke off puntuak bada ez duzu egiaztatu, duzulako
ziren zerbait ez zinen egiten ustezko egin, eta izan dezakezu
arazoak ahaztuak.
Aurka daude, nahiz eta, seguruenik ez duzu.
Beraz, hau da duela erakusteko, bai, da oraindik gaude joan daiteke.
Eta ez ari gara lortzean kasu honetan arazoak.
Irakurri egiten saiatu ginen bada hurrengo 100 karaktere, genuke
Ziurrenik arazoak lortu.
Eta hurrengo 100 irakurketa moldatu daitezke karaktere batzuk eginez nahi baduzu
Sort begizta.
Bai.
>> STUDENT: esleitutako ziren geroztik dugu espazioaren benetako balioa bat, ez genuke
benetan ezer ikusteko gai.
Egiten saiatu beharko dugu ezarpena dela c berdinak edo zerbait gustatzen?
>> JASON Hirschhorn: Great galdera.
Nola ez, balio hori ezarri dut -
zer lerro kode do idazten dut on line zer esan dizu zazpi egin?
>> STUDENT: Star ptr berdinen bakar aurrekontua barra arrunta amaituko c.
>> JASON Hirschhorn: Beraz jarriz pertsonaia bat, c, kokaleku horretan,
delako berriro, izarra duten esan nahi du ez joan.
Eta ezkerreko eskua bestaldean erabiltzen denean zeregin eragile bat, dela berdin
sinatzeko, ez dugu iritsi dela balioa hainbeste balio hori ezarri bezala.
Ikus dezagun orain zer gertatzen den.
>> Zerbait han jarri genituen eta han izan zen.
Free deitzen dugu.
Gauza batzuk ziurrenik gertatu zeure gainean.
Beraz, ez da, ez da jada.
Baina, berriro ere, ez dugu lortzean Hara joan egiteko arazoak.
>> Hau egiten ari naiz ateratzen kodean ilustratzeko duten horiek asko
duzula galdera, ari dira benetan interesgarria
Denbora asko erantzuten.
Eta galdera benetan onak dira.
Eta horiek irudikatu dezakezu on Zeure bada, adibidez,
ez gara atalean.
Bai.
>> STUDENT: delako ari zaren bidaliz erakuslea edonon, egin behar duzun
malloc erabili?
>> JASON Hirschhorn: Beraz, hau atzera egingo Zure hasierako galderara.
[? ?]
Da tokiko aldagai bat besterik ez?
Malloc hemen ez dela sinesgarria.
Malloc erabilera hemen ez da duten sinesgarria delako
tokiko aldagai bat besterik ez.
>> STUDENT: Beraz ezin char egiten duzu izar ptr berdinen kaixo?
>> JASON Hirschhorn: Oh.
Beraz, atzera, orain joan Zure hasierako galderara.
Ez ziren bete uste dut nire erantzuna ere.
OK?
Horrela?
>> STUDENT: Bai.
Itxaron.
>> JASON Hirschhorn: Eta non ez inprimatu nahi dituzu?
Beraz dugu inprimatu egingo horrelako kate bat?
>> STUDENT: interesgarriak.
>> JASON Hirschhorn: Beraz, hau dio honi Argumentu pertsonaia bat mota ditu.
Beraz, hau pertsonaia bat izan behar du.
>> STUDENT: Just lehenengoa hartzen.
>> JASON Hirschhorn: Beraz, hau da, zer esan dudan.
Atsegin dut, esan nuen, ez da gordetzeko duen erakuslea aldagai barruan katea.
Honez gordetzeko -
>> STUDENT: Aurreneko balioak katea.
>> JASON Hirschhorn: helbide Katearen lehen balioa.
Inprimatu hau bagenu, gaude erakuslea barruan balioa lortzean.
Eta ikusten da, hain zuzen ere, dugu, memoria-helbide bat.
>> Ez duela zentzurik?
Barkatu.
Itxaron, ez dela zure erantzun Galdera, ordea?
>> STUDENT: Bai.
>> JASON Hirschhorn: kode-lerro hau da Kate bat eta gero beste bat sortzeko
erakuslea aldagai hori seinalatuz kate hori, array duten.
Bai.
>> Memoria bat joan Beraz badugu: STUDENT aurre gehiago, litzateke h lortuko dugu?
Du izan kate gisa gordetzen dira?
>> JASON Hirschhorn: Like, egin genuen -
beraz, hau baliotsua da egin.
Puntu honetan aritmetika, eta horrek you guys da dute ikusi aurretik eta behar izan
nahiko eroso.
Hau da idazten Akin -
kode-lerro hau idatzi izan dugu, bada, aurretik ikusi dugu array idazkera.
Hau gurekin eman behar bigarrenean array honetan, h balio.
>> Hau egin badugu, hau ere eman beharko gurekin Array horretan bigarren balioa.
Ez da joan delako memoria lehenengo gauza baten helbidea, baina
memoria gauza bat biztanle baino gehiagoren helbidea.
Eta, ondoren, izar operadorea dereferences du erakuslea.
Eta berriro ere, ikus dezagun.
H berriro lortuko dugu.
>> STUDENT: Zer da zehazki egiten du erreferentzia kenduta esan nahi?
>> JASON Hirschhorn: Dereference joan Fancy hitz bat da.
Horretara joan eta lortzeko zer han dereference erakuslea da.
Besterik fancy horrentzat hitz bat da.
>> Nahi izanez gero, inprimatu nahi dugu: STUDENT kate osoan, ezin izan dugu
egin erakuslea ampersand?
>> JASON Hirschhorn: Ados, gaude Hemen eteteko joan.
Hor bukatzen ditugu.
Ampersand ematen dizu baten helbidea kokapena, beraz, noiz of ampersand egiten duzu
aldagai bat, ematen du helbide non aldagai hori gordetzen da.
Ampersand erakuslea dizu emango ptr non ptr memoria da helbidea.
>> Ez gara joan da joan Adibide honetan.
Irudikatu dezakezu horiek zeure gauzak.
Baina, berriro ere, hori ere izan daiteke bat verging zer jakin behar duzun haratago pixka
epe ertainean honen esparrutik -
edo galdetegi hau, baizik.
Barkatu.
>> Mugitu ditugu, I delako litzateke one coding arazo egin nahi
aurretik denbora da eman.
Eta ari gara zer uste dut kode joan da gehienetan horien sinesgarria
adibideak, atoi.
Beraz, honi buruzko galdera bat izan zen galdetegi bat, duela bi urte.
Eta izan dut taula gainean hemen.
>> Jende galdetegiaren eskatu ziren -
ziren tesxt apur bat gehiago eman galdera, baina kendu dut
beharrezkoak ez zen testua delako orain gure helburuetarako.
Besterik atzeko batzuk izan zen zer atoi egin da.
Baina badakizu, eta oso atoi ezagutzen.
>> Honek kode gomendatzen dut paper orri baten gainean.
Ere estrategia erabiltzea gomendatzen dut desagertu baino gehiago dugu
gure atalean asko.
Lehen, ziurtatu ulertzen duzu zer atoi en egiten.
Irudi bat marraztu edo etorri batzuekin da irudi mental zure buruan.
Ondoren, idatzi pseudocode honetarako.
Galdetegi oinarrituta, lortzen duzun guztia bada pseudocode, gutxienez duzu
zerbait jarri.
Eta ondoren, mapa pseudocode duten kalera C. txeke bat baduzu zure
pseudocode, atsegin check bada zerbait 1 da, hori kalera bada bat mapak
Baldintza eta abarren arabera.
Eta, azkenik, kode C. programa
>> Beraz atoi atzera jo eta bost minutu iraun hau kode-orri baten gainean
papera, hau da, ziurrenik inguruko zenbat denbora duzun bat hartuko luke
kodea atoi galdetegia.
Bost eta 15 minutu, bost eta 12, eta bost 10 minutuan, zenbatekoa ingurukoa da
Denbora honetan litzaidake pasatzeko galdetegi batean galdera.
Beraz, bost minutu hartu, mesedez.
Eta edozein zalantza izanez gero, goratzen eskua eta ni etorri egingo inguruan.
>> [SIDE CONVERSATIONS]
>> JASON Hirschhorn: Ados, beraz, duten bost minutu izan zen.
Hori izan zen, ziurrenik zenbatekoa buruz Garai hartan litzaidake pasatzeko galdetegi baten gainean,
agian, denbora hori baxua amaieran.
Apur bat aurkituko duzu hemen laburpena dugu.
Kodeketa hau has gaitezen.
Eta ez badugu modu guztiak gainditu beharko dituzte, horri emandako erantzuna eta honen
galdetegi galdera daude eskuragarri, berriz ere, Fall 2011 galdera hau denean da
galdetegi agertu.
>> Eta zortzi puntu merezi izan du ondoren galdetegi da.
Zortzi puntu amaieran altua dago puntu zerbait zenbatekoa merezi.
Galdera gehienak barruti dira bat sei puntu.
Beraz, hau da gehiago Challenging bat Galdera, ziur.
Daiteke inor Hasteko me?
>> Oro har, zer ari gara honekin nahi
atoi funtzionatu, logikoki?
Zer egin nahi dugu?
Beraz, idatzi joan pseudocode batzuk.
>> STUDENT: pertsonaiak Bihurtu osokoak sartu.
>> JASON Hirschhorn: pertsonaiak Bihurtu osokoak sartu.
Ados.
Beraz, zenbat karaktere gara bidez joan behar du?
>> STUDENT: Horiek guztiak.
>> STUDENT: karaktere guztiak katean.
>> JASON Hirschhorn: du guztiak katea karaktere.
Den guztietan zehar joan nahi beraz badugu kate bateko pertsonaia, zer gauza bat da
C que ha permitido ikusi dugu Gurekin guztietan zehar joan
kate batean pertsonaia?
>> IKASLEAK: loop bat.
>> JASON Hirschhorn: loop bat.
Beraz, begizta igaro s karaktere guztiak.
>> Orduan, zer ari gara egin nahi joan denean karaktere zehatz batera lortuko dugu?
Esaten ohitu gara gainditu 90 bat.
9 lortuko dugu.
Pertsonaia bat da.
Zer egin nahi dugu izaera duten 9?
>> STUDENT: Kendu ezazu pertsonaia 0tik?
>> STUDENT: Gehitu 0?
>> JASON Hirschhorn: Kendu pertsonaia 0tik da?
>> STUDENT: Bai.
>> JASON Hirschhorn: Zergatik hori egin nahi duzula?
>> STUDENT: [INAUDIBLE]
balioa.
Bere int balioa.
>> JASON Hirschhorn: Ados, beraz, hartuko dugu pertsonaia 9, kendu bertatik
pertsonaia 0 bat lortzeko Benetako integer 9.
Gozoa.
Eta nola ez, pertsonaia zenekien 9 ken 0 pertsonaia da 9?
Zer diagrama begiratzen zenuen at?
>> STUDENT: Badira logikoki bederatzi 9 eta 0 arteko lekuak.
Edo ASCII taulan begiratu ahal izango duzu.
>> JASON Hirschhorn: ASCII taula.
Baina bai, zuzena baita zaudenean.
Beraz kentzen dugu 0.
Beraz, gaur egun osokoa 9 dugu.
Eta zer ez duten egin nahi dugu?
90 dugu bada, lehenengo osoko zenbakia da dute, zer egin nahi dugu?
>> STUDENT: nuke aldi baterako osoko zenbaki bat jarri array, ondoren, egin math da
gerora izan dadin amaiera bat sartu.
>> JASON Hirschhorn: Ados.
>> STUDENT: amaieran hasi zaitezke matrizearen eta ondoren aurrera beraz
duten aurrera duzun bakoitzean, , biderkatu 10.
>> JASON Hirschhorn: Ados.
Hori nahiko bat bezala soinuak sinesgarria ideia.
Gure array amaieran hasi ahal izango dugu, eta strleng erabili ahal izango dugu.
Strleng erabili ahal izango dugu hemen.
Gure katea luzera lortu dugu.
Hasteko amaieran dugu.
Eta + lehenengoa, hartzen dugu besterik ez Zenbaki oso, eta, agian, bat bezala sortzen dugu
osoko aldagai berria sortu top non guztia gordetzeko ari gara.
Beraz, begizta dugu s char guztietatik bidez aurrean atzera, kentzen dugu 0, eta
gero hartuko dugu, eta arabera non da, bertan biderkatu dugu
10 boterea batek.
Delako lehena, zer egiten dugu biderkatu eskuinekoa pertsonaia by?
>> STUDENT: 10 0 da.
>> JASON Hirschhorn: 10 0 da.
Zer bigarrenean biderkatu dugu eskuinekoa by pertsonaia?
>> STUDENT: [INAUDIBLE].
>> JASON Hirschhorn: Zer?
>> STUDENT: 10 1 arte.
>> JASON Hirschhorn: 10 1 arte.
Hirugarren-eskuinekoa pertsonaia?
>> STUDENT: 10 2 arte.
>> JASON Hirschhorn: 10 2 arte.
>> STUDENT: Barkatu, ez dut ulertu hemen zer egiten ari garen.
>> JASON Hirschhorn: Ados, goazen atzera, gero.
Beraz, iritsi kate batean pasatu.
Dugu atoi idazten ari delako.
Beraz, kate batean ezagutu genuen gainditu.
Esaten ohitu gara gainditu katea du 90.
>> Lehenengo gauza egin goaz ezartzen da osoko aldagai berri bat gara
besterik sortzen joan gure osokoa berri gisa.
Hori da, zer ari gara amaieran itzuliko.
Den pertsonaia bakoitzaren bidez joan behar dugu katea erabaki dugu zeren
bakoitzak ukitzeko behar ditugu eta gero gehitu ezazu gure osokoa berrira.
>> Baina guk ezin gehitu zenbaki gisa.
Ezin dugu besterik hartu 9 eta gehitu 9 gure osokoa.
Araberakoa zer leku on da den katea da.
Biderkatu behar dugu 10 potentzia bat da.
Hori delako nola base 10 lanak.
>> Beraz, benetako lortzeko ari pertsonaia, edo benetako osokoa
zenbakia, pertsonaia 0 kenduz pertsonaia 9 egin genuen bezala bitarte
pertsonaia capital bat kenduz edozein dela ere pertsonaia izan batean dugu
arazo horiek.
Beraz, benetan egingo zenbaki bat lortuko 0 tik 9 zenbaki erreal bat bezala gorde, eta guk egingo
biderkatu 10 potentzia arabera non daude katea dugu.
Eta gero ari gara gehitu atzera joan gure osoko aldagai berriak sartu.
>> Beraz, zer litzateke lukeen itxura egon - hemen marraztu egingo dugu gainetik.
Katea 90 urtean ezagutu genuen gainditu bada -
>> STUDENT: [INAUDIBLE].
>> JASON Hirschhorn: Baina atoi kate bat hartzen du.
Beraz, bidez joan da joan deiaren.
90 dugu gainditu ezagutu.
Bizkarrean frontera joan ginen.
0 hartuko dugu.
>> STUDENT: Sentitzen dut.
Agian hau ergela da.
Ari gara ohitu kate bat aurrera ateratzen bada, zergatik da 90 zer gara
ohitu gainditu?
Delako 90 oso bat da.
>> JASON Hirschhorn: atoi hartzen delako bat katea eta bihurtzen da osokoa sartu
katea duten ordezkaritza.
Baina katea 90 ez da osokoa 90 edo 90 zenbakia.
Katea 90 bi array bat, edo da hiru pertsonaiak, baizik eta, 9
pertsonaia, 0 pertsonaia, eta backslash 0 karakterea.
>> Eta atoi idazten ari garelako, aldeko Adibidez, noiz komandoa hartu duzu
lerroko argumentu, eta nik atalean gordetako argv, kate gisa da gorde.
Baina zenbaki gisa tratatu nahi izanez gero, bihurtzeko bat behar duzu
Benetako zenbaki oso.
Gure arazo multzo bat egin genuen.
Zein zenbaki bat egin genuen gure arazo multzo.
Denek zenbaki oso bat hartu komando lerroko argumentu gisa.
Beraz, horregatik gure atoi funtzioa kate bat hartzen du.
>> Beraz, berriro ere, gure Adibidez hemen, gaude azkena hartu du.
Pertsonaiaren kenketak goaz 0 bertatik, zeren pertsonaiak 0
pertsonaiaren 0 arabera kentzea ematen dizu benetako 0 zenbakia, arabera
ASCII matematika egiten dugun.
>> Pertsonaiak dira gisa irudikatzen duelako beren benetako baino ezberdinak - du
pertsonaia bat, adibidez, minuskulaz 97 da.
Ez da - trabatzen!
Ez da edozein dela espero duzun , izango da 0, adibidez.
Beraz, kendu duzu pertsonaia bat 0 lortzeko.
>> Beraz, esaten ari gara hemen egin behar joan benetako kopurua lortzeko.
Eta gero biderkatu by goaz 10 potentzia non arabera
katea da, eta gero hartuko duten eta gehitu gure leku titularra den
aldakorra beraz etorri ahal dugun gure azken osoko zenbaki berria.
Du zentzua guztiontzat?
>> Beraz, ez gabiltza honek kode joan oraintxe, Oraindik dugulako
denbora labur lortzean.
Duten denbora Barkatu.
Baina hau da, zer, zorionez, duzun izateko galdetegi on egin ahal - at
Oso gutxienez, get pseudocode honetan idatzita daudelarik.
>> Eta, ondoren, idatzi bagenitu du pseudocode, benetan, hau egin ahal izan genuen
nahiko azkar.
Iruzkinak lerro bakoitzean idatzi dugu dugu hemen buruz itzultzen
C kode lerro bat.
Aldakorra, idazketa berri bat deklaratzen begizta bat, kenketa batzuk, batzuk
biderketa, eta esleipen batzuk.
Genuke seguruenik ere nahi bueltan lerro bat idazteko.
Baliteke dugu jarri nahi hemen egiaztapen batzuk.
Bai.
>> STUDENT: Beraz dezake tratatzen dugu s benetako katea gisa?
Dakit zeren besterik helbide bat da.
Bezala, nola litzateke luzera lortuko duzu pasatzen ari katea?
>> JASON Hirschhorn: Beraz, nola egin kate baten luzera?
Strlen.
>> STUDENT: strlen, bai.
Baina ahal bezain s jarri duzu argudio hori?
>> JASON Hirschhorn: Beraz strlen char izar bat hartzen du.
Eta char star jarraitzen du, eta hura lortzen den arte kontatuta mantentzen
backslash 0. strlen zen benetan Beste programa bat dugu
ziren kodearen joan.
Duten kodeari beste bat oso ona da.
Alde hori da pixka bat errazagoa, bada delako nahi duten pentsatzen ari zaren
kontzeptualki -
Esan dut ozen - strlen honela erakuslea eta bizirik mantentzen eta
kontatuta eta jarraipena arte backslash bat 0 helduko zara.
>> STUDENT: Ados, lortu du.
>> JASON Hirschhorn: Beraz, hoberena Zorte galdetegi 0 bihar.
Edozein zalantza baduzu, ez dut izan kanpotik honen ondoren.
Sentitzen me email doan.
Iristea propioak TF Oraindik baduzu Ez nire sailean, edo nire
email, nahi izanez gero.
>> Freak nahi baduzu eta besterik bidali niri email bat, FreakOut email bat, ez dut
atzera bidali duzu, bezala, aurpegi alai bat, edo, nahi, txantxa bat edo zerbait.
Beraz, sentitzen free horretarako baita.
Zorte on berriro, eta nik egingo ikusten duzu hurrengo aste osoan.