DOUG LLOYD: hasteko duzun bezala funtzio batera lanean,
beste gauza bat da joan bihurtu benetan garrantzitsua da ulertzea,
bertan esparrua aldagai kontzeptua da.
Beraz esparrua da aldagai baten ezaugarria
duten funtzio hartuz aldagai hori irits daiteke.
>> C bi esparru nagusi daude, tokiko aldagai eta aldagai global.
Orain, aldagai lokalak soilik funtzio barruan sar
Horren bidez sortu ari dira.
Ezin dira beste behin ikusia Funtzio programan existitzen dela,
bakarrik funtzionatuko du bertan sortu zen.
Aldagai global, on Beste alde batetik, sar daiteke
Programaren edozein funtzio arabera.
Eta horren arrazoia da Oraindik ez dute barnean sortu duelako
edozein funtzio partikularren.
Horietako kanpo deklaratzen dugu funtzioak, dena
esan nahi du funtzio guztietan daki non dela eta sartzeko eta manipulatu daiteke.
>> Beraz, jakina, urrun nahiko duzun Askoz esklusiboki lan egin
tokiko aldagai batzuekin.
Hona hemen adibide bat, oso, oso simple funtzio nagusia, eta oso erraza da
dugun idatzia funtzio osagarriak.
Kasu honetan, x, Koloretako Nik berdea besterik
herrian nabarmentzeko edo aldagai horren esparrua,
funtzio hirukoitza den lokala da.
nagusiak ezin x erreferentzia guztietan.
Ez du jakin zer den.
Ez dago beste funtzio, hain zuzen ere, izango bagenu funtzio osagarriak izan hemen ere,
ezin x aipatzeko.
>> Era berean, emaitzak bertan dut urdinez, nagusiak bakarrik tokiko da.
Soilik nagusia daki zer emaitza aldakorra da.
hirukoitza ezin du erabili.
>> Orain aipatu dudan bezala, aldagai global ez da existitzen.
Aldagai hori aldarrika baduzu edozein funtzio kanpo,
dauden funtzio guztiak programa da aipatzeko.
Beraz, kasu honetan ez dut nabarmenduko berdea deklarazio aldagai global bat.
Kasu honetan, aldagai deklaratu
deritzo global, besterik gabe, oso da argi izan.
Da mota karroza ditu.
Eta dut 0,5050 balioa esleitzeko.
>> Nabarituko duzu nagusian eta in hirukoitza, to global aipatzeko gai naiz.
Eta hain zuzen ere, joan nintzen programaren bitartez bada Adierazitako, lehen deiak nagusia hirukoitza bezala,
biderkatzen hirukoitza 3 by global, bertan bere balioa ezartzen 1,5 zerbait,
1.51 edo horrelako zerbait, eta Orduz nagusia inprimatzen ditu balioa
globala.
Beraz nagusia ez da izango 0,5050 inprimatu, hura out aldiz global 3 inprimatu egingo, 1,51.
Beraz, kontuz ibili behar denean, aldagai global batera lanean ari.
Ere oso malguak ari dira bitartean Informazio gainditzeko gai izatea
inguruan, beraz, behin funtzioa, erabili ahal izango,
halaber batzuk izan daiteke ondorio arriskutsuak
funtzio bat aldatzen bada aldagai baten balioa
espero duzu aurretik aldatu egin behar da.
>> Zergatik bereizketa horrek axola du?
Zergatik ez dugu axola aldagai batzuk ala tokiko dira eta beste batzuk global dira?
Beno, zati handiena, aldagai lokalak C zer deitzen balio iragaiten dira
funtzio-dei bat egin dugu.
Zer esan nahi du horrek?
>> Beno, aldagai bat pasatu da balio, callee du, zeinaren
funtzioa esaten beste modu bat da duten aldagai da jasotzen ari dela
erabat gainditu sarrera gisa, egia esan, ez du aldagai hori bera jasotzen.
Bere kabuz jasotzen ditu kopia berarekin lan.
Hau bereizketa benetan garrantzitsua da.
Besterik bigarren duela ikusi dugu aldagai global batekin,
global manipulatzeko badugu funtzio bat ere aldakorra, efektua
horretan funtzio bat darama beste funtzio guztietan barrena.
>> Baina tokiko aldagai batzuekin, hori ez da egia.
Funtzio bakoitza denean aldagai sarrera gisa jasotzen
aldagai horien kopiak jasotzeko, Ez aldagai beraiek.
Beraz, zer da alde horretan eragina?
Horrek esan nahi du aldagai deitzailearen, funtzioa
funtzio deia egiten da, aldatu gabe egiten jaramonik ez baduzu behintzat.
>> Esate baterako, kode honetan foo ez da batere aldatu.
Int foo berdinen 4, deitu hirukoitza foo, hirukoitza barruan,
Espero nahi dugu lelo hori litzateke 3 biderkatuko eta itzuli zen,
baina ez da benetan ez du eraginik.
>> Hemen ere, oso sotila diferentzia.
Honek esan nahi du efektua nahi dugun.
Ikusten duzu, zergatik?
Denbora honetan nagusian foo jaramonik egiten ari gara.
>> Beraz, int foo berdinen 4, foo berdinen foo hirukoitza, dei hori egin dugu,
hirukoitza bere kopia lortzen foo, bere 4 kopia propioa.
4 aldiz 3, edo dena itzultzeko esaten da aldakorra lortzen aldiz 3 gainditu.
Eta gero bueltan esleitu dugu hirukoitza balioa berriro Foo.
Beraz, hau foo gainidatziko luke.
Hau egiteko modurik bakarra da hau tokiko aldakorreko.
Beraz, orain beste bat gehitu badugu kode lerro hemen
nagusiaren amaieran at inprimatu foo balioa,
hain zuzen ere litzateke inprimatu 12.
>> Esparrua aldakorra da, oro har, Ez da gehiegi arazo bat askoz
guztia izendatzeko baduzu zure aldagai gauza desberdinak.
Baina gaizto mota eskuratu ahal izango da Izen beraren aldakorra bada
funtzio bat baino gehiago agertzen da, horietatik asko gertatuko da.
Inoiz ez du funtzionatzen hasi bada Mundu erreala non
hartze lanean ari bazara programak eta pertsona ezberdinen taldeek ere
gauza bera idatzi elkarrekin lanean programa edo programen multzo berean,
maiz berrerabiltzea dute aldakorra izenak, bereziki ohikoa direnak
x, y, i, j, eta abar bezala.
>> Baina orduan aldagai dute izen bereko esparrua gaiak
eskuratu ahal zailagoa apur bat analizatu.
Esate baterako, ba al dakik inprimatu beharko litzateke
bereziki, programa honen amaieran?
Beharrezkoa da.
Pausatu bideoa eta irakurri Programa honen bidez.
You goiko dugu, ikusiko funtzioa adierazpena dute
gehikuntza izeneko funtzio bat da.
Funtzio hori bakar bat hartzen du parameter, horrek x deitzen dugun zenbaki oso bat.
Eta zenbaki oso bat, irteera.
Bueltan hasieran mota da.
>> Ondoren nagusia, lerro pare bat izan dugu nagusian kodea; azken horren
inprimatu adierazpen bat da.
Eta gogoratu, hortxe dago hemen.
Zer da benetan nahi izan joan Funtzio honen amaieran inprimatutako?
Eta gero, benetan behar dugun gehikuntza azpitik definizioa.
>> Beraz, minutu bat hartu, zapaldu bidez Kodea, gauzak traza egindako.
Ba al dakizu zer inprimatuko da jakin bereziki, programa honen amaieran?
>> Ados.
Zorionez, hartu duzun segundo gutxi barru saiatu eta hau analizatu egindako.
Elkarrekin egin dezagun.
>> Beraz zeharkatu egindako Nik gehikuntza en goialdean dago deklarazio.
Distrazio bat mota izan zen.
Ez da bere aldakorreko izena.
Ez du bere esparrua propioa dute.
Funtzio bat besterik ez da adierazpena, beraz helburuetarako
kanpo analizatu zer da, dudarik gabe Programa honetan gertatzen ari dena,
dugu agian baita besterik saihesteko.
>> Orain kasu honetan egin behar dugu, Arrazoia arazo hau delikatua da
da ere, aldagai lokalak izan dugulako bai nagusiak eta gehikuntza, eta bakoitzak bere
x deitzen da.
Eta, jakina, gai honen ardatz nagusia da egindako Süss zein x erabat aldatu nahian
eta nola ez emateko aldatu da.
Beraz, kasu guztietan koloretako Nik x gorria nagusira tokiko da.
Eta instantzi koloretako Nik x lokal blue areagotzeko.
>> Hirugarren lerro horretan Oharra nagusien, y berdin gehikuntza
x, gehikuntza hori ez da baloia gainditu Nagusia x edo x gorria.
Honez ohitu kopia bat gainditu.
Eta hori bakarrik batera lanera joan haren kopia dela, x urdina.
Oraindik matematikoki bada makurturiko, baliteke
izan ordez pentsatu x sub gisa nagusia eta x azpi i gehikuntza egiteko m.
Baina ideia bera da.
x azpi m, edo gorria x-ren aurreko diapositiba batean,
Hori local-- dira aldagaiak dira Hori baizik x instantzia da
nagusira lokala da, eta x azpi i, edo aurreko diapositiba aldagai urdina,
dira x instantzia dela tokiko Kontatzailea dira.
>> Beraz, irudikatu ahal izan duzu zer amaieran inprimatutako funtzio hau?
Naiz Doug Lloyd, eta hau da CS50.