HIZLARIA: 1 Kaixo guztioi. Hasteko goaz. Jendeak oraindik uste dut iragazteko izan. Baina denbora interesa ere, ahal dugu, beraz, Lortuko duzu guys hemendik denbora, hasteko goaz. Beraz CS50 Quiz 0 berrikuspena ongi etorria. Ez dute konturatu duzuenontzat For hala ere, asteazkenean galdera bat duzu. Woo-Hoo. Ez baduzu hasi bada oraindik ikasten edo ez dute konturatu hau existitzen dela oraindik, Iraganean ariketak eta informazio guztia Galdetegi cs50.net/quizzes daude. Badira gauzak nahiko onak izan ez on, azkena 10etik iragan galdetegiak urte baita informazioa galdetegi eta gai honi buruz hori estali egingo da. Beraz, dezagun Hasteko. Beraz duzu guys gogoratu agian, lehena class David eguna lanparak horiek izan ditu. Beraz, funtsean, dena doa pean ordenagailu baten kanpaia da on binary egin. Binary esan zer soinuak bezala, 0 eta 1-en. Bi balio ditu duten irudikatzen daiteke. Beraz, besterik atalean lehen egunean bezala David argi bat piztuta bonbilla on irudikatzeko, edo 1, gure ordenagailuan ulertzen 0-ren gisa bitarra eta 1-en, on edo off. Binary Oinarriak. Leku bakoitzak irudikatzen da bi basean. Beraz gehitzen duzunean 2 0 to izateko 1 2 way up guztiei. Zein da zure bitarra da kalkulatzeko hamartar, jarraitu besterik ez duzu ekuazio hau mota gauza. Daukazula 1 bazara lekuetan edozeinetan, , biderkatu by dena delakoa oinarritzeko da, gehitu zuen, eta, digituak hamartarra lortuko duzu. Beraz, hau da, nola zenbatu dituzu bitarretan 5. Just zer egiten genuen bezala azken diapositiba, hau da, nola egiten duzun bezala ordezkatzen 1 5 bidez. Era berean, besterik ez gustatzen gehitu dezakezu eta hamartarrean kendu edo 10 oinarritzeko, edo benetan inolako oinarri an ahal gehitu eta bitar kenketa. Zehazki zer espero duzun duzunean gehitu bi sortu, orduan eta handiagoa berdin bada 1 baino, 1 a, egin da 0 bat eramanez gero, eta horrela egin gain, besterik erregularra bezala eta espero duzun hamartar edo beste edozein oinarri. Cool. Beraz, esan bezala, dena aurretik duten doa gure ordenagailuaren kanpaia azpian 0 eta 1-en, edo bitar egin. Beraz, nola ez adierazi nahi dugu, adibidez, letrak edo zenbakiak edo karaktereak? Eta horri erantzuna ASCII da. ASCII karaktere arteko mapping bat da dugu normalean zela ikusten A, B-ren bezalako ingelera, C-ren, azpimarra, marrak, eta horrelako ezer. Eta mapak egiten duten ASCII balioa bat. ASCII balioa An zenbaki bat besterik ez da, zure ordenagailuan arabera uler daiteke. Eta besterik ez bezalakoa Horrez egin dezakezu eta zenbakiekin kenketak, egin dezakezu ASCII balioak dituzten horiek. Adibide honetan, beraz, zer hau inprimatu egingo? Bai, beraz, besterik gabe, B espazioa espazio C espazio bat D. Nora joan nire sagua? Iragarki int bat defini dezakezu 65 at. Eta noiz erabiltzen duten inprimatu duzu ehuneko C, gisa interpretatu egingo da pertsonaia eta A. inprimatu egingo Era berean, adierazi dezakezu char bat bezala. Eta noiz inprimatu duzu ehuneko erabiliz C, interpretatu egingo duten bezala ehuneko D. Eta besterik ez bezalako bat gehitu dezakezu zenbakia, gehitu ahal izango pertsonaiak zara ASCII balioak, kasu honetan. Beraz, denontzat erakuslea apur bat. 5, kate gisa, ez du benetan berdinak 5. Beraz, nola liteke bihurtu dugu katea 5 osokoa 5? Ideia bat? Bai. Beraz, 5 dugun kate bat balitz bezala, 0 kendu ahal izango dugu. Eta hori eman egingo 5. Eta, era berean, 5 dugun bezala, bada osokoa, gehitu katea 0. Eta katea 5 ematen digu. Cool. Orain, gogoratzen back bat non hitzaldia Hitz egin algoritmoak gara. Beraz, nola ez, egia esan, ordenagailu bat nahi dugu gauza interesgarriak egin? Badakizu besterik gehituz eta kenduz Zenbaki eta inprimatzeko gauzak ez dela zirraragarria. Normalean, gure ordenagailua nahi dugun algoritmo-mota batzuk egiteko. Zerbait apur bat konplexuagoa besterik aritmetiko sinplea baino. Algoritmo bat, urrats multzo urrats bat da nola egiteko argibideak task-- jakin bat besterik ez gustatzen errezeta bat. Baliteke lehen eguna gogoratzen duzu class non David zuen gela bat zenbatu gurekin pertsonen eta zenbat pertsona aretoan ziren. Erabil liteke kontatuta banan-banan. 1, 2, 3, 4. Kasu horretan, denbora lineala algoritmoa. Baina David algoritmo bat sartu Gelan pertsona zenbatu dituzu non denek nabarmentzen sortu, zure esan duzu beste pertsona bati zenbakia, gehitzen duten zenbakia sortu, eta pertsona bat eseri behera. Eta hori errepikatzeko. Hori algoritmo-mota bat da. Bat nola eraginkorra aztertu ahal izango dugu Algoritmo on nik denbora exekutatu oinarritzen da. Baina hitz egingo dugu pixka bat hori geroago buruz. Beraz, algoritmo guztiak, gainera, ahal egon pseudocode idatzita. Pseudocode besterik ez da atsegin ingeleseko irudikatzeko erabilitako sintaxia programazio hizkuntza bat. Adibidez, erabiltzaile batek eskatu nahi izanez gero nire zenbaki gogokoena asmatzen, dugu pseudocode hala nola izan dezake. Eskuratu erabiltzaile bat asmatzen. Etxebizitza zuzena bada, esaiozu zuzena ari dira, beste kontatu Oraindik ez dira zuzenak. Eta pseudocode erraz egiteko modu bat da Ideia bat edo algoritmo bat ordezkari. Beraz, orain dugu agian benetan idatzi nahi honek hizkuntzan ordenagailua duten agian ulertzeko. Beraz, gure pseudocode idatzi izan dugu eta interpretatzen duen iturburu-kodea sartu. Orain arte, iturri kodea behar bazaio sintaxia jakin bat programazio hizkuntza bat. Eta orain arte, CS50, dugu dira, batez ere, c erabiliz. Beraz, hau iturri c kodea izan daiteke. Geroago ikastaroan, gaueko zatoz beste programazio harremanetan jartzen PHP bezalako hizkuntza. Edo are beste klaseak hartzen bada, zuk Java, Python, edo are OCML egin liteke. Baina gure c programa hizkuntzan, hau da, iturburu-kodea, nola idatzi dugu agian pseudocode algoritmoa Besterik lehenago deskribatu dut. Beraz, nola zure ordenagailua benetan Ulertzen? , Aurretik esan nuen bezala bakarrik benetan zero eta ulertzen du. Beraz, nola ez iturritik da Zerbait kodea duen ahal izan ulertu? Beno, zerbait egin behar dugu Konpiladore izeneko. Gogoratzen al duzu atzera bada gehienetan zure psets, programa-mota batzuk izan dituzu dot c fitxategi batean idatzita. Eta gero make hau idatzi behar duzu. Beraz, zer da egin egiten? Make idatz dezakezu konpilatu zure programa delako someone-- duenak idatzi zure p set; ziurrenik David-- marka fitxategi bat sortu. Eta hori kontatzen egiteko exekutatu jakin zure konpiladorea, Clang deitu, borondate horren ondoren, konpilatu zure iturburu-kodea oposiziorako kodea; zeroen eta bai da Zure ordenagailuan ulertzen duela. Baina, pixka bat geroago, utziko dugu gehiago Konpilatzaileak buruz sakontasunez. Beraz, gogora ekarri pset 0, where-- bai, galdera bat duzu? IKUSLEEN: [INAUDIBLE]? HIZLARIA: 1 Bai. Nik uste dut benetan konektatuta egon behar du. Bai. IKUSLEEN: Da [INAUDIBLE] bezala? HIZLARIA: 1 Ez da. The cs50.net/quizzes daude. IKUSLEEN: barra galdetegiak, barra 2013, barra 0, eta egin klik bitartez galdetegiak 2013 eta quiz 0, ikuskatzea atalean diapositibak. HIZLARIA: 1 Yeah, beraz, you guys nahi izanez zabaltzen da eta begiratu behar diozu egin ordenagailuan, isuna ere. Esan berriro. IKUSLEEN: [INAUDIBLE]. HIZLARIA 1: Bai, [INAUDIBLE] gezurrezko aldakorra da. Oh, bai? IKUSLEEN: [INAUDIBLE]? HIZLARIA: 1 Ez, grebak Ez daude azterketa. Barkatu, bere galdera izan zen, izan zen azterketa grebak. Eta ez da. Beraz pset 0, you guys guztiak izan beharko Zerbait inplementatu scratch erabiliz. Eta oinarrizko programazio batzuetan ikasi dugu Eraikitzeko bloke scratch erabiliz. Beraz, dezagun batzuk begirada bat adreilu osatzen duten programa bat. Lehen adierazpen boolear da. Adierazpen boolearrak dira eta 0 edo ezer ez duela Bi balio izan ditzake. Kasu honetan, egia edo gezurra, edo itzaltzeko, eta bai edo ez. Soil bat, oso sinplea adibide bat, Boolean bat erabiltzen duen programa espresioa sortu hemen. Beraz, adierazpen boolearrak egiteko ordena izan erabilgarria, operadore boolearrak dugu. Hauek dira erabil daitezkeen operadoreak dira zenbait balio alderatzeko. Beraz, eta nahiz eta ez berdina, gutxiago baino handiagoa edo berdina, edo handiagoa berdina, eta baino gutxiago edo baino handiagoa. Baina operadore horiek ez dira oso erabilgarriak dugu horiek konbinatu ahal bada behintzat sartu baldintza. Beraz duzu guys agian hutsetik gogoratu eta p-tik ezartzen dugun baldintza izan. Honako hauek dira, funtsean, Sardexka bezala zure programa logika duen ala ez arabera exekutatzen baldintza bat bete. Beraz, baldintza hori izan dugu askotan erabili ikastaro honetan da , bada, bestela, gero eta kondizio beste. Here nola adibide bat hori erabili dezakezu. Norbaitek arteko aldea ezagutzen besterik adierazpenak guztiak galtzen erabiliz bertso bada, bestela behera bidean, bada, eta, bestela, konbinatu? Bai? IKUSLEEN: [INAUDIBLE]. HIZLARIA: 1 Zehazki. Beraz banu bada hau behera modu guztiak modu, baldintza hori itzultzen bada ere egia da, oraindik ere izango da jarraituko Hurrengo bi probatzen. Berriz, bat, bestela-bada, beste batekin adierazpena, bat itzultzen du egia bada, beste batzuk ez dira probatu. Horri buruzko edozein galdera? Cool. Beraz, erabiltzen duzun beste bat bada-beste bat adierazpena ezagutu behar dela bakarrik Kasu horietako bat izan. Beraz, badakigu x 0 baino txikiagoa bada, ez da betiko ez doa 0 baino handiagoa. Ondoren, eraikina beste bloke ikasi dugu begiztak dira. Hiru loops mota ditugu. Loops, loops bitartean, eta loops bitartean. Eta, oro har, eseri arte zerbait idatzi, erabaki behar duzu Erabili nahi duzun hiruretan bertan. Beraz, nola egin erabakiko dugu zein den? Oro har, erabiltzen ditugu loop baldin badakigu zenbat aldiz batetik bestera joateko nahi dugu Zerbait bidez edo zenbat aldiz zeregin bat egiteko nahi dugu. Erabili loops bitartean dugu batzuk behar badugu Baldintza egia exekutatzen mantentzeko izan. Eta egiten duguna oso antzekoak berriz erabili bitartean, baina exekutatu gure kodea nahi dugun behintzat garai batean. Beraz, egiten ari den bitartean, edozein dela do dago borondate beti denbora bat behintzat exekutatu. Berriz, berriz ere, bertan, Agian ez da ibiliko bada baldintza ez da bete. Horrekin edozein galdera? Beraz baten egitura begizta. Zaudete guztiak ikusi. Abiarazi duzu. Egoera-mota batzuk behar duzu. Beraz, adibidez, agian abiarazi dugu berdin i 0 bezala. i 10 baino gutxiago. Eta i ++. Bat oso erraza egin ditudan. Berriz, begizta bat, era berean, behar duzu urratsak mota batzuk izatea, egoera-mota batzuk, eta update-mota batzuk. Beraz, gure Ere egin dezakegun begizta hau, berriz, begizta bat bezala erabiliz. Eta, era berean do loop bitartean, Baliteke initialization batzuk ditugu, zerbait exekutatu, eguneratzeko, eta eta egiaztatu baldintza du. Beraz, orain funtzioak. Guztia jarri dugu elkarrekin. Baliteke batzuk idatzi nahi dugu funtzio-mota. Funtzio Ohiko duzula agian ikusi dute dagoeneko nagusia. Main funtzio bat da. Baten bueltan mota, int ditu. Funtzioaren izena, nagusi ditu. Eta argumentuak, argc eta argv ditu. Beraz nagusia funtzio bat besterik ez da. Beste funtzio duzu izan bide dira, printf printf funtzioa da GetInt, toupper. Baina horiek gertatuko izan dela Gurekin inplementatu arabera liburutegi-mota batzuk. You guys gogoratu bada barne CS50.h liburutegi hori edo I standard / O liburutegia. Bai, zalantzan? IKUSLEEN: besterik c berezko nagusia da? Du mota besterik ez [INAUDIBLE]? HIZLARIA: 1 Galdera da c berezkoa da nagusia bada. Eta bai, funtzio guztiak funtzio nagusia dute. Mota It ordenagailua beharrezko non hasi jakitea Kodea martxan. IKUSLEEN: Beraz, ez zenuke [INAUDIBLE]? HIZLARIA: 1 º Beste edozein galdera? Cool. Beraz, besterik ez bezalako funtzio bat erabil dezakezu hori zuk idatzitako dezakezu, gainera Zeure funtzioa idatzi. Hau funtzio bat da, norbaitek agian bolumena kalkulatzeko idatzi dute q bat, adibidez. Ez dago itzulera mota bat da hemen, kasu honetan, int, gure funtzioa izen q eta gure parametroen zerrenda. Eta kontuan izan datu hauek idatzi behar duzula parametroa nahi duzun mota erabili edo, bestela, funtzio honek ez du zer nolako jakin Parametro onartu behar izango dut. Beraz, kasu honetan, nahi dugun zenbaki oso bat gure sarrera gisa. Beraz, zergatik funtzioak erabili nahi dugu? Lehenik eta behin, antolakuntza handia. Apurtu sortu zure kodea sartu laguntzen dute gehiago zatitan antolatu eta egiteko errazago irakurtzen da. Sinplifikazioa. Horrek diseinu ona. Noiz Kode zati bat irakurtzen ari zaren eta funtzio nagusia da, benetan, benetan luze, gogorragoa izango da agian zer ari den gertatzen buruz arrazoirik. Beraz, hautsi baduzu funtzio sartu, irakurtzeko errazagoa izango da agian. Eta berrerabiltzea-gaitasuna. Zatia kode bat baduzu, hori izanik deitu edo hainbat aldiz exekutatu, ordez kodea duten berridazketa 10 aldiz zure eginkizun nagusia, baliteke berrerabiltzea nahi. Eta gero, hori erabili behar duen bakoitzean Kode zati, deitu funtzioa. Beraz, gaur scratch itzuli gogoratzen badugu, kontzeptu batzuk buruz ere hitz egin dugu, horietako bat hari da. Thread anitzen kontzeptua da kodea sekuentziak aldi berean exekutatzea. Beraz, uste back egun bat non David izan behar you guys zenbatu kopuruan off gela dute. Funtsean, zer zen joan da on you guys ziren guztiak hariak bereizi martxan. Eta hari horiek ziren elkarrekin datozen Galdera-mota batzuk lortzeko. Era berean, Scratch, denean behar duzu anitz sprites, baliteke katu bat eta txakur bat. Eta, aldi berean izango lukete beren scripts martxan. Hori hariztaketa adibide bat da. Eta beste kontzeptu hori izan zen scratch sartutako gertaerei zen. Eta gertakari zati bat baino gehiago daude Zure kodea elkarrekin komunikatzeko. Scratch, hau izan da, erabiltzen dituzun difusio kontrola eta When I Blokeak jasotzen. Eta, gainera, Arazoa Ezarri 4, ikusi genuen Ekitaldi pixka bat, baita. Zaudete izan bide Gevent liburutegian. Eta ez dago funtzio bat izan zen waitForClick bertan zain zinen Erabiltzaileak klik egin. Eta zure click, kasu honetan, izango litzateke gertaera eta itxaron click for your da gertaera kudeatzailea. Eta, gainera, zure psets exekutatzen zehar eta zure psets lanean, duzu agian kontaktua sartuko Komando horietako batzuk. Hau da, zer idatzitako sartu dituzu zure terminal-leiho edo dena leihoa erakusten dituen zure g to edit an, funtsean, nabigatu zure ordenagailuan. Beraz, adibidez, LS zerrendatzen dira direktorio baten edukia. Egin direktorioa karpeta berri bat sortzen du. CD, aldaketa direktorioa. RM, kendu, fitxategi bat ezabatzen edo direktorioa batzuk. Eta gero direktorioa kendu Direktorio bat kentzen. IKUSLEEN: [INAUDIBLE]? HIZLARIA: 1 Bai, ziur. Barkatu, galdera zen baduzu hau jarriz iradokitzen litzateke Cheat fitxa. Laguntza izan du. Gela badaukazu, jarri ahal izango duzu. Gainera, oro har nahikoa ona gogoratzeko noiz erabili duzulako duzu agian nahi besterik horri buruz ikasi behar. Hori egingo zure bizitza errazagoa. Ba zure galderari erantzun dut? Beraz, orain, pixka bat hitz egin dugu liburutegiak buruz laburki. Baina bi horien artean dagoela izan gara beraz, jakina, urrun daude erabiliz I / O eta cs50 estandarra. Zer nolako gauzak daude barne I / O liburutegi estandarrak ere? Bai, orain arte printf erabili dugu. CS50, erabili dugu GetInt eta GetString. Eta datu-mota katea ere gertatzen CS50 liburutegi horretako deklaratu. Pixka bat gehiago hitz egingo dugu sakonki buruz nola liburutegietan lan eta nola Zure kodea gainerako elkarreragin. Baina horiek dira, bi horien artean dugun dute ukitzea hain urrun batera ikastaroa. Motak. Hauek onak gogoratzeko zenbat dira mota bakoitza edo nola irudikatzen byte asko mota bakoitzaren requires-- int 4 bytes; char, 1 byte. Karroza 4 bytes da. Zer da bikoitzean? IKUSLEEN: [INAUDIBLE]. HIZLARIA: 1 Yeah, beraz, mugikor bat baina bikoiztu tamaina. Zer luze bati buruz? IKUSLEEN: [INAUDIBLE]. HIZLARIA: 1 OK. Zer da luzean? IKUSLEEN: [INAUDIBLE]. HIZLARIA: 1 Yeah, bikoiztu int. Bai. IKUSLEEN: [INAUDIBLE]. HIZLARIA: 1 Long [INAUDIBLE]. Eta gero, luze bat bikoitza da. IKUSLEEN: Ez, ez. Luze int bat da. Araberakoa arkitektura It aurretik [INAUDIBLE] eta int tamaina bera izan. [INAUDIBLE]. HIZLARIA: 1 Beraz, luzea eta Int bat bera dira. Eta gero, luze int bikoitza da. Cool. Eta gero, zer azken mota da? IKUSLEEN: erakuslea. HIZLARIA: 1 Yeah, beraz, ikasi dugu erakusleak buruz pixka bat. Eta erakuslea zer den kontuan hartu gabe egiten zaie apuntatzen char izar bat izan daiteke edo bat int star-- beti da, 4 byte erakuslea da. Horri buruzko galderak? Bai? IKUSLEEN: [INAUDIBLE]? HIZLARIA: 1 Beraz, luzea eta int bat dira CS50 tresna honetan bera. IKUSLEEN: Aparatua guztiz trukagarriak. HIZLARIA: 1 Yeah. Orduan luze bat int bat bikoitza da. IKUSLEEN: 32 bit da? HIZLARIA: 1 32 bit, bai. IKUSLEEN: [INAUDIBLE]? HIZLARIA 1: Bai, ala ez bada esplizituki esan, zuk 32 bit bat suposatuko luke. IKUSLEEN: zerbait esatea litzateke bat suposatuz bezala aparatuaren antzeko arkitektura. 64 bit, gauza bakarra dela aldaketaren Longs eta erakusleak dira. Biek [INAUDIBLE]. HIZLARIA: 1 Bai? IKUSLEEN: Galdera. Beraz, praktikan galdetegiak baten gainean, unsigned int buruz galdetzen du. Beraz, nola zehaztu behar lukeen Int bat [INAUDIBLE] from? HIZLARIA: 1 unsigned An 4 byte da ere. Baina zer gertatzen da sinatu bati buruz ezberdinak int eta unsigned int bat? IKUSLEEN: [INAUDIBLE]. HIZLARIA: 1 Eskuin. One balio negatiboak adierazten daiteke. Baina nola ez, egin du? IKUSLEEN: [INAUDIBLE]. HIZLARIA 1: Bai, aurrezten da 1 bit zeinua adierazteko. Sinatu pixka bat duela zeinua adierazten du. Eta unsigned besterik positibo guztia. IKUSLEEN: OK. Beraz, esan duzun hori bikoitza da karroza baten tamaina bi aldiz? HIZLARIA: 1 bikoitza da bi aldiz bai, karroza baten tamaina. IKUSLEEN: nola erakuslea du bat luze luzea [INAUDIBLE]? HIZLARIA: 1 Beraz, galdera da, nola ez, long-- luze baten erakuslea nola da hori byte bakarrik lau denean luze luze bat bere 8 byte. Beraz, gogoratu zer erakuslea da, funtsean, oso base balioan. IKUSLEEN: [INAUDIBLE]. HIZLARIA: 1 Yeah, beraz, erakuslea besterik memoriaren kokapena da. Beraz, ez du axola zenbat espazioa erakuslea dela seinalatuz. 4 byte bakarrik behar da segimendua egiteko memoriaren kokaleku hori. Beste edozein galdera? Cool. Beraz, azken gauza daukadan irteera estandarra da. Horiek maiz erabili behar zenuke nahikoa dela gogoratu dezakezu. Baina hau da, erabiltzen ditugu, printf, adibidez. Eta leku-markak hauek izan dugun ziren formatu kodeak izenekoa. Beraz ehuneko c char, ehuneko i int for, eta, gainera, ehuneko d erabili ahal izango dugu. Gauza bera gertatzen da. Baina, oro har, urtean CS50 dugu saiatu berea i erabiltzeko. Ehuneko karroza f. Ehuneko luze luze ld eta ehuneko s katea da. Era berean, Nik gutxi batzuk erabiliz ditugun Ihes-sekuentzia horiek. Adibidez, backslash n linea berrirako. Hau besterik ez denean formateatzen ari zaren zure inprimatu f kodea. Bai? IKUSLEEN: Zer da ehuneko d for? HIZLARIA: 1 Beraz, galdera da zer ehuneko d da? Ehuneko d ints da. Ehuneko d eta ehuneko i berdinak dira. IKUSLEEN: Zer da arteko aldea backslash n eta backslash r? HIZLARIA: 1 Beraz, galdera da, zer da arteko erreakzio n eta aldea erreakzio r? Uste dut backslash r is-- IKUSLEEN: backslash r besterik ez dakar lerroaren hasierara itzultzen du benetan linea berri bat joan gabe. Beraz backslash r inprimatu eta baduzu atzera jo lerroaren hasierara gero gauza gehiago inprimatzen baduzu, gainidatzi duzu stuff hori dagoeneko [INAUDIBLE]. Kontuan izanik, n benetan berrian doa line eta [INAUDIBLE] doa. HIZLARIA: 1 Beno, beste edozein galdera? Guztiak eskubidea. Eskuz off noa Dan nor jarraitzeko. [Txaloak] DAN: righty guztiak. Beraz, beste bat zabal buruz egingo dut hitz egingo class direla ideiak sorta gutxi gorabehera, astean bi ordezkari eta astean hiru hasieratik hasita off casting, besterik modu bat da gisa mota jakin bateko balio bat tratatzeko beste mota bateko balio bat. Beraz, hau egin ahal izango dugu karakteretan batera ints, ints karroza, eta Longs luze bikoiztu. Gauza horiek guztiak modu gisa erabil daiteke zenbaki batzuk tratatzeko ken char beste batzuek bezala zenbakizko balioa. Beraz, gai batzuk daude, hau da, dituzten Jakina, horrek datorrenean bota duzu ints karroza bezalako gauzak. Beraz, hau da, pixka bat arraroa. Duten 1,31 da mugikor bat daukagu. Biderkatu dugu 10,000 arabera. Eta, ondoren, inprimatu dugu int gisa. Zer irteera honek? 10.000 aldiz 1,31. Beraz, 13.000, etxebizitza dela? IKUSLEEN: Uste dut, 10.000. DAN: Beraz, biderkatu egiten dit 10.000 by galdaketa dut aurretik. IKUSLEEN: Oh. Ez litzateke ez bat 9 izan eta 0 zenbaki batzuk? DAN: agian digituak bitxi erakusten ditu. Beraz, oraintxe, 1,3 aldiz 10.000 da. Beraz, 13.000 da. Eta weird-- extra honetan Ikusleak: 13.100. DAN: 13.100. Eskerrik asko, Rob. Eta weirdness-- extra honetan hau 9,9-- besterik ez da casting hau delako zen azkenean behera non biribilketak Ez da izan behar. Bai. IKUSLEEN: casting gertatzen beste ezer egin ondoren? DAN: Beraz delako daukat hau inprimatu, berau biderketa hau egiten du aurretik casting hau egiten. IKUSLEEN: [INAUDIBLE]. DAN: Nik uste dut lehen bota litzateke, bai, horietatik 10.000 izango litzateke. Beste ezer? Cool. Beraz, hau 13.099 da. Zergatik gertatzen da hori? Imprecision. Pausoak ez da perfektua. Batera zenbakiak bakarrik dute ordezkatzen ahal zenbait datu adierazgarri kopurua. 8 sig pikuak inprimatu Beraz badugu an karroza honetan, antzeko bat lortuko dugu bila zenbaki itsusia. Eta hori da 1,31 ezin zehatz-mehatz ez delako egon simple ordezkatzen duen bi eskumenak makinan. Beraz, eta ondorioz hurbilena hartu asmatzen, eta ondorioz sortu txiki txikia izanik. Zentzurik? Ados. Orain, piztuta ezberdinak modu bat dira conditional baieztapenak non guztia egiten zaintzen dugu aldagai bakar bat da buruz. Beraz, adibide zehatz honetan, ez gara erabiltzaileari zenbaki oso bat lortzeko. Eta gero ari gara begira osokoa dela zer den. Ustezko, zenbakia da bat eta lau artean. Horixe ari gara galdetzen. Beraz, etengailu bat egin nahi duzu aldagai-izena. Ondoren, posible den kasuetan konfiguratzerakoan baloratzen izan zitekeen. Beraz, kasu, esaten txikia da. Eta gero ateratzeko apurtu duzu switch baldintza hain Zuk ez mantendu egingo da. Hurrengo kasu In beraz, bi kasu eta kasu three-- Kasu bi bada tanta besterik ez zuen aldeko kodea lehen lerroan bezala ikusten du Hiru maiuskulak eta atseden bat ikusten arte. Beraz, arrazoia kasu bat eskuratu ahal izango duzu bakarrik inprimatu txikia da nuelako break hau dute hemen. Badut, esan, ikusi egiten zaie break-- honetan breakaway-- hau bota dut bada txikia inprimatu litzateke, eta orduan ez litzateke inprimatu erdian, eta, ondoren, break litzateke. Beraz, jauziak zati garrantzitsu bat dira of aldatzeko baldintzak eta hor egon behar dute. Ez diren esplizituki adierazi Edozein kasutan berez onartzen dituzte aldatzeko eta kasu bota behar dira. IKUSLEEN: Beraz, 1, 2, 3, eta 4 izango litzateke n? DAN: noiz n ahal izango Baloreak. Bai. Bai? IKUSLEEN: Beraz, egin behar duzu [INAUDIBLE]? DAN: txikia inprimatu nahi duzun, eta, ondoren, Erdialdetik inprimatu litzateke, eta ondoren, break litzateke. IKUSLEEN: Zergatik inprimatu Erdialdetik bada [INAUDIBLE]? DAN: Beraz, dena kasu baten azpian jauzi baten azpian erori baino lehen. Beraz, kasu inprimatu bat azpian kasua da bat bezala honako hau inprimatu da. Bai? IKUSLEEN: [INAUDIBLE]? DAN: Beraz, kopuru hau besterik ez da jakin baten balioa duten aldagai hau hartu ahal izango da, ezta? Ez duela zentzurik? Bai. IKUSLEEN: [INAUDIBLE]? DAN: Bai, kasu bi inprimatu litzateke erdi eta gero apurtu. IKUSLEEN: [INAUDIBLE]? DAN: edozein uste dut? Zer beste datu-mota ahal baino gehiago piztu duzu? IKUSLEEN: piztu dezakezu Datu mota edozein baino gehiago. Baina chars gehiagoko ezer bakarra esan nahi du eta ints eta horrelako gauzak, zeren duzu erakuslea baino gehiago aldatu behar bada horrek ez du benetan zentzurik, zamak hor, nahiz eta utzi bada-en hori egin duzu, puntu mugikorreko delako doitasun ere, ez litzateke izango duzu benetan hala ere egin nahi. Beraz, nahiko askoz, ints besterik eta karakteretan eta horrelako gauzak. DAN: Bai, da noiz esplizitua duzu badakizu balioak, nire ustez, ezin izan switch bat benetan erabilgarria da. Good? Ados. Scope dagoela deklaratu sorta da aldakorra hedatzen. Beraz zatia kode hau txikia daukat, akatsak beteta egongo litzateke. Eta arrazoia da int hau deklaratu dut i honen esparrutik begizta barruan. Eta, ondoren, erreferentzia ari naiz i begizta esparrua dela kanpo. Beraz, funtsean, esparrua pentsatzen dezakezu Ezer duzula deklaratzen duten bezala giltza kizkur multzo barruan bakarrik horiek kizkur giltza barruan badago. Eta saiatu bada, eta aldagai hori erabili horiek kizkur giltza kanpo, duzu konpiladoreak errore bat lortzeko. Bai? IKUSLEEN: Beraz, hau ez du funtzionatzen? DAN: Hau ez badabil, bai. Strings. String char * bat. Berdin ari dira. Besterik karaktere erakusleak dira. Eta duzula inolako kateak amaitu behar backslash zero, besterik ez dituzten c hitzarmen bat. NULL amaierako deritzo. Eta NULL capital N, kapitala U, kapitala L, kapitala L-- Ez da berdina NULL amaierako. Horrek erakuslea da. Hau pertsonaia bat da. Oso ezberdin dira. Gogoratu du. Galdetegiaren izango da, seguruenik. Ez dut galdetegiaren ikusi. Bai? IKUSLEEN: Beraz NULL da, adibidez, erakuslea? DAN: Bai. IKUSLEEN: Zer esan nahi du [INAUDIBLE]? DAN: bada, esan, malloc deritzo duzunean ez dute lortu Nahikoa memoria tamaina edozein dela ere galdetzen ari, malloc NULL itzultzeko. Da, funtsean, betiere, funtzio bat da erakuslea itzuli ustezko, you to NULL delako aurka egiaztatu behar NULL good-- polit bat da , Sort da, zabor-balioa. Zero bat da, orain arte bezala, erakusle gisa joan. Bakoitzean funtzio bat deitu, duen erakuslea itzultzen. Izango begiratu nahi ari zara ziur erakuslea ez da NULL NULL oso ohikoa delako. Zabor itzulera moduko bat da. Beraz, zerbait egin ez bada, joan eskuinera, return NULL ordez. IKUSLEEN: [INAUDIBLE]? DAN: Bai, eta hori da hau. IKUSLEEN: [INAUDIBLE]? DAN: Zuzenketa da horixe. NULL amaierako da. Da minuskulaz N-U-L-L bada Ortografia zaren. IKUSLEEN: Eta besterik gabe joan nintzen atzera eta probatu da. Eta puntu mugikorreko bat jarri nahi baduzu, switch bat sartu balioa, Yell izango da esaten, adierazpen espresioa eskatzen integer motakoa. DAN: Bertan joan zaitezke. Baina bai, zer berriro galdera izan zen? IKUSLEEN: [INAUDIBLE]? DAN: Beraz, kapital-N, kapital-U, kapitala L, kapitala L benetako c gauza bat da. NULL erakuslea da, eta borondatea hala nola tratatu bakarra. Ez du inoiz saiatu eta ortografia dira NULL karaktere ikusi eta edozein hau ez den beste modu. Bai? IKUSLEEN: Beraz max char itzuli edo notak zerbait, litzateke funtzio bera embody [INAUDIBLE] bezala? IKUSLEEN: Beraz, ari zaren aipatuz char max itzuli getchar hasita, edo edozein da? IKUSLEEN: Bai. IKUSLEEN: Bai, orokorrean, beraz, Gauza horiek guztiak epe Sentinel balioak dira. Beraz, int max itzuli GetInt bezala eta char max getchar hasita, hori ustezko bezala, eskubidea izango, bada Gauza horiek dira gurekin itzuli, zerbait gaizki joan da. Erakusleak baterako, gerta besterik ez dugu behar Sentinel balio hori guztiontzat ados gainean. Eta hori itzultzeko duzun gauza da gauzak okertuko. Beraz char max zer erabiltzen ari gara da zerbait adierazteko NULL edo getchar bezala. IKUSLEEN: Beraz, bada getchar probatzen ari zaren, ezin jarri besterik ez duzu NULL? Diferentzia bat egingo luke? DAN: ezin besterik ez duzu egiaztatu NULL. Char max delako egiaztatu nahi duzuna bueltan funtzioaren balioa da pertsonaia ez da erakuslea. Bai? IKUSLEEN: galdera hau galdetzen katea luzera da. Ba al da hori NULL karaktere, besteak? DAN: N º Eta hori da benetan katea nola luzera doa bidez delako gelditzeko daki Zure karaktere array arte NULL karaktere bat ikusten da. Eta orduan bezala, guztien eskuinera, egin dut. IKUSLEEN: [INAUDIBLE] bost? DAN: Kaixo bost izango litzateke. Yep. Beraz, array jarraiak dira memoria bloke. Berehalako sarbidea dute esanez array izendatu eta gero, kizkur ere giltza, edozein dela indizea joan nahi duzun to, dira indexed zerotik bidez ken 1 array luzera du. Eta motaren arabera ari dira deklaratu Gauza duzula gordetzeko ari array, array baten izena, eta, ondoren, edozein dela ere tamaina array horren da. Beraz, hau char luzera sorta bat da Sei izan balio hauek ditu. Bai? IKUSLEEN: [INAUDIBLE]? DAN: Bai. IKUSLEEN: [INAUDIBLE]? DAN: zer ari den gertatzen badaukazu array sartu dagoeneko egin. Beraz, horren ordez hau zehaztu ahal izan duzun bezala, adibidez, char, edozein dela izena, array da, parentesi hutsak berdin kizkur giltza H koma E koma L koma L koma O koma NULL karaktere eta kizkur giltza. Hori izango litzateke, halaber, adierazpen bat bezala funtzionatzen. IKUSLEEN: [INAUDIBLE]? DAN: Ondoren izan behar duzu tamaina dagoeneko egin. IKUSLEEN: [INAUDIBLE]? DAN: Bai. Righty guztiak. Komando lerroko argumentuak modu bat dira Erabiltzaile bezala sarrera eskuratzerakoan nagusiak argumentuak. Bi argumentu hartzen nagusian. Argumentu kopurua hori izanik Komando-lerroan eta bat gainditu batera bektore katea edo kate array bat Argumentu guztien. Beraz, I, esateko, funtzio bat deitzen bada, esate baterako, dot a 1 espazio, 2 espazio hiruk, argc 4 izango litzateke. Eta argv 0 dot bat izango litzateke. Argv1 1 izango litzateke. argv2 izango litzateke 2. argv3 izango litzateke 3, kasu jakin horretan. Bai? IKUSLEEN: [INAUDIBLE]? DAN: array azken elementua array luzera argc delako plus argb bat, azken elementua NULL erakuslea da. Argc gehi 1 da. Beraz, kasu hori esan dut, bertan argv beharko litzateke, 0 puntu bat atera da. argv 1 da 1. argv2 2 argv 3 3 da. argv 4, hau da, inork handiagoa argc baino NULL izango litzateke. Eta hori NULL erakuslea da. Bai. Eta hori da katea delako char izar bat erakuslea da. Beraz, mota bera izan behar du. Bai? IKUSLEEN: Bi galdera. Bat, beraz, zer da arteko aldea mota bat baino beste GetString hau eta Erabiltzaile motorreanerabilitakoak? Eta bi, da barruan gordetzen da Zure azken memoria? Horrela, GetString litzateke izan [INAUDIBLE]? DAN: Non gordetzen da? Ez dakit non gordetzen da. IKUSLEEN: Beraz, egia esan, badakizu nola edozein deitzen duzunean, argumentuak da funtziona dira pila gordetzen? Beraz argc eta argv argumentuak dira nagusira eta pila dira, edo benetan besterik zer uste duzu gainetik pila hasieran. Zein zen beste zati galdera? IKUSLEEN: Beraz, zer da [INAUDIBLE]? DAN: Bai, beste modu bat besterik ez da sarrera eskuratzerakoan erabiltzaileari. Hau apur bat eraginkorragoak eta scripten handier da duzulako besterik gabe gainditu ahal argumentuak zure nagusira funtzioa baizik eta itxaron behar izatea baino erabiltzaileei ez baduzu erabiltzailerik. IKUSLEEN: Eta bai, lortu kateak izango litzateke [INAUDIBLE]. Gauzak behar duzun gordetzeko litzateke. DAN: Bai? IKUSLEEN: [INAUDIBLE]? DAN: Bai, argv 0 beti barne hartzen du dot funtzioa deialdiaren barra. Bai? IKUSLEEN: [INAUDIBLE]? DAN: Bai, argumentuak bakoitzari dira NULL karaktere amaitu dutelako kateak dira. IKUSLEEN: [INAUDIBLE]? DAN: Bai, argv argc NULL erakuslea da. IKUSLEEN: [INAUDIBLE]? DAN: Oh yeah. Bai, barkatu. IKUSLEEN: [INAUDIBLE]? DAN: Beraz, galdera da, izan baduzu Komando-lerroan dot dot a barra out 1, 2, litzateke komando lerro-kopurua argumentuak bi izan edo litzateke hiru izango da? IKUSLEEN: ez du uste dut benetan axola. Esan ohi dut, oh, ez duzu pasatzen edozein komando lerroko argumentuak denean, jakina, funtzioa deitzen duzu. Beraz dutena ahoz baztertzeko joera dut Komando-lerrotik funtzioa Argumentu horri nahiz argv sartuta. DAN: Baina zen test-- on bada yeah-- eta ere zerbait esan baduzu argc berdin antzera 3, Oraindik zutik segurua duzu. Bai? IKUSLEEN: [INAUDIBLE]? DAN: uste ordez bada hau deitzen dut argc eta katea argv parentesi artean baina mota bera mantendu eta besterik ez deitu baten antzeko zerbait desberdin horiek eta b, oraindik ere lan litzateke? Eta, hala ere, lan litzateke, besterik ez litzateke duzu ordez argc-- erabiliz a eta b erabili nahi duzuna. Bai? IKUSLEEN: [INAUDIBLE]? DAN: Beraz, galdera da GetString da memoria gordetzeko zeure joan GetString char dagoelako *. Memorian gordetzen delako zeure deiak orain malloc benetako barruan GetString ezartzeko. Ados, mugitzea. Segurtasuna. Beraz, benetan segurua izan dadin, aintzat hartu behar ez dituzten bat eta bat edozein sarbidea ez baimendu duzu Zure informazio, zein da zergatik guztiontzat eraikitzen beren makina, beren sistema eragileak, guztiak beren Hutsetik programak, eta jakina, ez beste edozein makinak konektatzeko Internet bidez. Beraz, ordenagailuak insecure dira. Benetan dira. Beste pertsona batzuekin fidatu behar dugu. Eta segurtasun ideia da zarela kopurua mugatu nahian Konfiantza behar duzula. Eta bide bat egiten duzula kriptografia bidez. Kriptografia da, funtsean, sekretuak dugu. Batzuetan gure sekretuak gainditu behar dugu zehar bidez, adibidez, Interneten edo beste gauza batzuk. Eta ez dugu jendeak nahi horien sekretuak ezagutzeko. Gure sekretuak Beraz enkriptatzen ditugu modu batean ea inork ez irudikatu daiteke. Beraz used-- dugu class-- hau ikastaroaren bidez Zesarrek zifratze bezalako gauzak eta [INAUDIBLE] dira, biak oso-oso Gauza hauek enkriptatu moduak ziurra. Erraza Oraindik dute irudikatu nahi dutena diren eta zer zure sekretuak dira. Mundu erreala askoz gehiago erabiltzen du konplikatuak enkriptatze eskemak. Eta ez dugu sartu Hori baino askoz gehiago da. Arazketa. GDB onena da. Honetan ere, azpimarratu nahi dut. Erabili GDB aldi bakoitzean guztia denbora arazo bat duzu. Baliagarriak diren GDB komandoak dira hautsi, eta horrek bai, lerro bat gainditu duzu zenbakia, funtzioaren izena, funtsean non zure kodea gelditu nahi duzu, eta izan kontrola hartu ahal izango. Print aldagai bat hartzen du eta bistaratzen du edozein dela ere, aldagai hori da exekuzio puntu. Hurrengo exekuzio mugitzen urrats bat ere. Eta funtzio baten barruan urrats urratsa Zure exekuzioa. Beste gauza exekutatu dira, hau da, nola benetan zure kodea exekutatzen duzun. Jarraitu behar diren urrats guztiak hartzen den hurrengo break puntu lortu. Eta badira beste hainbat eta hainbat dira. Begira haien. Handia dute. Bai? IKUSLEEN: [INAUDIBLE]? DAN: Bai, horrek araztaile bat da. Beraz araztaile bat programa bat da, Zure programa arazteko aukera ematen. Ez bugs topatzen dituen programa bat da duzu, nahiz eta horrek ere handia izango litzateke. Eta niretzat azken bilaketa da. Beraz, bilaketa mota horrek hitz egin dugu Klase honi buruz dira bilaketa lineala, hau da, besterik gabe, begiratu duzula bakoitzean zehar bilaketa espazioaren elementu, bata aldi berean elementu, zer aurkitu arte zuretzat edo heldu arte bila ari zure bilaketa espazioa amaieran zein seinalatu izan ez duzula aurkitu esan duzu duzula bilatzen ari elementua. Eta hau onenean etengabeko denbora hartzen du, horietatik 1 0 da eta txarrena lineala at denbora, eta horietatik n 0 da. Bilaketa bitarra, horrek behar du sordid elementu. Joan zure elementu erdian duzu, ikusten baduzu, bilatzen ari zaren elementua da elementu baino handiagoa edo txikiagoa ari zaren erdian. It handiagoa da, esan beheko duzula zure bilaketa espazioa zure dago uneko kokapena, erdian, eta prozesua berrabiarazi. Txikiagoa bada, esan begiratuz duten the-- bai, zer gertatzen da? IKUSLEEN: [INAUDIBLE]? DAN: Bai. Edozein izan da irakasten moduko moduko class arrazoizko proba jokoa da. [Barreak] DAN: Izan ere, ez duzula izan egin behar den arazo multzo bat, bidezko da proba jokoa. IKUSLEEN: Pasatuko gara nola zaie DAN: It desagertu egingo dira. SPEAKER 2: benetako kodea The [INAUDIBLE] study.cs50.net dago. Beraz, bada praktikan arazoa at merge sort orrian study.cs50.net, ez dago kodea gauzatzeko batu sort da. Beraz, ez duzu ezartzea it yourself gaur gauean. Baina ziurtatu ulertzen duzun baizik baino besterik ez da buruz ikasi. IKUSLEEN: [INAUDIBLE]? SPEAKER 2: merge sort-orrian study.cs50.net, han ohitura da duten, bidez klik egiten baduzu, arazo Arazoa, oso amaieran ez da bat irtenbidea, horrek merge da sort ezartzeko. Baina ziurtatu ulertzen duzu baizik eta besterik ez da buruz ikasi baino edo kopiatzeko behera. IKUSLEEN: Eta primeran baliozko azterketa arazo izango litzateke Hemen antzeko zerbait zerrenda bat da. Zer zerrenda honetan begiratzen du ondoren bezala selections Ordena urrats bat edo txertatzeko sort edo dena. Zerrendako iterazio bat osoa. Ez baduzu, beraz, nahiz eta azkenean beharrik it kodea, hura ulertu behar duzu nahikoa nola joan jakin nahi array hau aldatzea da. DAN: Hori da niretzat. [Txaloak] LUCAS: Hey guztiontzat. Nire izena Lucas da. Naiz guztiei errekurtsio buruz hitz egingo, dela ikasi dugu ordenatzen du, eta bat erakusleak guztiak pixka. OK? Beraz, lehenik eta behin, errekurtsio. Zer du horrek esan nahi du funtzioa da recursive? IKUSLEEN: Deiak berez. LUCAS: OK, deiak bera, bai. Beraz, argazki hau, adibidez. Da irudian bezala da barruan beraz, irudi bat eta. Beraz, adibidez, Dan bezala have-- dezakezu bilaketa bitarra buruz hitz egiten. One modu horretan, bilaketa bitarra da recursive Izan ere, zuk ari da Zenbaki bat aurkitu nahian. Beraz, joan erdialdera duzu. Eta gero, egiaztatu zenbakiak ez baduzu ezkerreko eta eskuineko. Eta gero jakiteko zenbakia da agertzen nahi duzun izango da, bera da Gauza bilaketa berriro egiten baina besterik zerrendaren ezker. Beraz, nola soinuak bezalako errekurtsiboa da. Beraz, horregatik zuk guys dute recursive merge sort irtenbiderik. Ados, beraz, hona hemen adibide bat. Beraz, demagun aukeratu nahi dut 1etik n zenbaki guztiak. Daiteke konturatzen naiz horren n batuketa kopurua da n plus n ken 1 1 gehienez. Baina gero, begiratu dut at n ken 1 bada plus n ken 2 plus 1, hori bera da Gauza summing zenbakiak n ken 1 gehienez. Beraz batura berdinketarik batuketa esan dezaket n plus n ken 1 batuketa. Ez duela zentzurik? Eta, gainera, beste zerbait izan nahi dut oinarri kasuan deitzen zaio, hau da, Zenbakiak batuketa sortu zero zero izango litzateke. Beraz, ahalik eta lasterren lortu zenbakira dut zero, kontatuta gelditu nintzen. Ez duela zentzurik? Hortaz, hona hemen nola adibide bat Dut hori ezartzeko dezakezu. Beraz, batzuetan funtzio hori daukat. Osoko n agertu du. Hortaz, hona hemen lehen begiratu dut n bada txikiagoa edo zero berdin. Beraz gutxiago edo zero da, badut itzultzeko zero, horrek gure kasuan da. Bestela, besterik gabe itzuli ahal izango dut n plus Zenbakiak batuketa eginez n ken bat irudikatuko da. Zentzurik? Ados. Hortaz, hona hemen zer itxura. 2 berdinen batura daukazu 2 gehi 1 batuketa. Eta 1 batzuk 1 plus 0 batuketa, zein da 0. Zentzurik? Beraz begiratzen dugu pila at bada zure programa, hau da, zer itxura. Lehenik eta behin, funtzio nagusia dugu. Eta ondoren, funtzio nagusia batuketa 2 izenekoa. Eta gero batuketa 2, esateko oi va, batuketa 2 berdin 2 plus bat batuketa. Beraz, gehitu I 1 batura pila. Eta 1 batuketa da batura deitu noa 0, eta hori ere gehitu egingo da pila. Eta gero direnak hauek dira bakoitzaren bestearen gainean itzuliko dute aurretik beste batzuk jarraitzea daiteke. Beraz, adibidez, hemen, 0 batuketa, lehen, hau da, 0 itzuli du. Eta, ondoren, aukeratu 1 batura. Gero 1 batuketa da joan itzultzeko 1 guztira 2 laburbildu. Eta, azkenik, 2 batura va 3 itzultzeko nagusira. Ez duela zentzurik? Benetan garrantzitsua da ulertzeko nola pila lanean ari da, eta saiatu ikusi zentzuzkoa bada. Ados, beraz ordenatzeko. Beraz, zergatik da garrantzitsua ordenatzeko, lehenik eta behin? Zergatik dugu arduratu behar? Edonork? Eman adibideren bat? Bai? IKUSLEEN: [INAUDIBLE]. LUCAS: Bai, OK. Beraz, gehiago eraginkortasunez dezakezu bilaketa. Hori modu ona da. Beraz, adibidez, asko daukagu gauzak, egia esan, gure bizitzak, ordenatuko dira. Adibidez, hiztegiak. Oso garrantzitsua da guztiak izatea Ordena nolabaiteko hitz egiten dugula erraz eskura dezaten. Beraz, zer zen esaten zuen. Ere modu eraginkorrean bila ditzakezu. Nola gogor bat izatea izango litzateke pentsatzea hiztegi zein hitz dauden ausaz. Izan dituzu begiratzen, nahiko askoz, Hitz bakoitza aurkitu arte Hitz hori bilatzen ari zaren. You Facebook ere erabiltzen ari bazara, orduan zure lagunak ikusten ari zara, Oraindik Facebook jarri ikusteko joan zure Lagun hurbilago daudenak, gainean da ez duzula horretan hitz askoz. Modu guztiak joan behar bada hondoan Lagun zerrendan, zu ikusten zoazen duten Ziurrenik ez duzu, nahiz eta ez pertsona gogoratu zarela lagunekin. Eta hori delako Facebook era Zure oinarritutako nola an itxi dira zenieke. Beraz, datuak antolatzeko. Era berean Pokemon. Beraz, ikusi Pokemons guztiak duzula zenbakiak dituzte. Eta hori erraz bat bezalakoa da datuetan sartzeko bidea. IKUSLEEN: Pokemon sartzea. LUCAS: Bai. IKUSLEEN: [INAUDIBLE]. LUCAS: Yep. Ados, beraz, aukeraketa sort. Aukeraketa sort da hautatzeko joan txikiena Unsorted zerrenda bat balio bakoitzeko iterazio bakoitzerako denbora. Mota moduko duzula egiten bezalakoa da zure burua denean saiatzen ari zaren alde batetik zerrenda ordenatzeko. Funtsean, egiten duzun guztia begiratu kopuru txikiena da. Jarri duzu ordenatuko zerrendan. Eta gero, bilatzen hurrengo zenbakia txikiena. Eta gero egiten jarraituko duzu duten eta abar. Beraz, aukeraketa sort da, funtsean, zuk hautatu txikiena den bakoitzean Unsorted balioa. Ordenatuko amaieran jarri zerrendan parte. Eta gorde egiten. Hargatik ikusi azkar horrek zer itxura hau. Hortaz, hona hemen ordenatuko eta Unsorted zerrenda. Beraz, zerrendaren ordenatuko da, Hasieran hutsik da. Eta gero noa hautatzeko joan txikiena zenbaki hemen, hau da, 2. Beraz, 2 zenbakia lortu nuen eta nik jarri zerrendaren aurrean. Eta gero, begiratu hurrengo txikiena dut elementu, hau da 3. Beraz, jarri dut amaieran zerrenda ordenatuaren. Eta gero mantentzen dut hori egiten. 4 iruditzen zait eta jarri amaieran. Aurkitu 5 eta jarri amaieran. Eta garai hartan, nola guztia itxura At amaiera da ipini esaten dut, funtsean, bi balioen aldaketa. OK? Eta gero, azkena, besterik ez duzu elementu bat gehiago dute. Hain dagoeneko ordenatuko da. Ados, beraz, txertatzeko sort. Txertatzeko sort zu ere izan da joan haber bat ordenatuko gauza dela eta Unsorted zerrenda bat. Gauza bakarra da, aldi bakoitzean duten elementu bat gehitzen ari zaren antolatuko den zerrenda, hartu besterik ez duzu elementu hori Unsorted zerrenda aurrean da. Eta gero zu zer aurkituko joan posizio ordenatuko ere izan beharko luke zerrendan parte. Ea hau zer da, beraz, dezagun hori zentzuzkoa. Beraz, hasiera batean, adibidez, saiatzen ari naiz Hiru zenbakia txertatzeko dauden zerrendako zati ordenatuko. Beraz, zerrenda ez da ezer izan. Beraz, besterik gabe, jarri ahal izango dut 3 zenbakia. Orain, 5 zenbakia gehitu nahi dut zerrendako zati ordenatuko du. Beraz, itxura kopurua 5 dut. Nabarituko dut 3 baino handiagoa dela. Beraz, 3 ondoren izan du ez duela ezagutzen dut. Beraz, 3 eta 5 jarri dut. Ondoren, 2 zenbakia sartu nahi dut. Konturatu nintzen 2 zenbakia dela benetan iraungo orduan bai 3 eta 5. Beraz, benetan izan dut jartzea guztia egiten du zerrendaren hasieran modu. Beraz, mota, filmea guztiak daukat ordenatuko zerrenda beraz, ezin dut elementu gela egin 2 zenbakia da. Ondoren, 6 zenbakia ikusten dut. Eskaintza 5 ondoren izan beharko litzateke ikusten dut. Beraz, ez dut jarri. Eta, azkenik, itxura kopurua 4 at dut. Eta konturatu nintzen behar lukeen 3 eta 5 artekoa izan. Eta gero han jarri nintzen, eta shift beste elementu guztiak. Zentzurik? Bubble Sort. Beraz burbuila sort da, funtsean, zer ari zaren gertatzen da burbuila deitzen dugun do-- to list-- bidez joan moduko duzulako hobe da benetan I erakutsi besterik ez bada hau bezalako duzu eta ari alderatu zoazen ondoko zenbakiak. Eta ari trukatzeko zoazen beren Oraindik ez badute posizioak ordena egokian. Beraz, funtsean, zer ari den gertatzen gertatuko da hemen, adibidez, daukazula 8 eta 6. Badakizu ordenatuko ordena horretan izango benetan izan 6 eta 5, ezta? Beraz, ari aginduak trukatzeko zoazen. Orduan ikusi nuen 8 eta 4 hemen. Eta gauza bera egin dut. Berriro aldatu dut. Eta, azkenik, 2 eta 8. Gainera, trukatu ditut. Honez Bubble delako Sort ondoren izeneko iterazio horietako bakoitzean, benetan, Zerrendako kopuru handiena lortzen zerrendaren bukaeran bidean. Ez duela zentzurik? Da aldaketa mantentzen delako eta mugitzen du eskuinera. Ados, beraz, hau, bigarren iterazio da. Gauza bera izango litzateke. Swap bat egin dut eta ondoren, azkena. Ez nuen diren trukeak ez eta zerrenda ordenatuko da. Beraz Bubble Sort, funtsean mantendu dugu zerrendan zehar joan eta aldaketa gauzak ez nituela egin konturatu nintzen arte iterazio egiten edozein trukeak, eta horrek esan nahi du zerrendan dagoeneko ordenatuko da. Zentzurik? Dezagun pixka bat Let denbora exekutatzen buruz. Beraz, gogoratzen duzu guys Big O, Omega, eta Theta? Bai? Ados, zer Big O da, lehenik eta behin? IKUSLEEN: [INAUDIBLE]. LUCAS: Bai, kasu horretan, txarrena bat deitu du exekuzio, besterik gabe esan nahi da dela zenbat programa espero duzu exekutatu hartzeko. Bezala, termino horretako kasu n honetan. Elementu-kopurua kasurik okerrenean ere zerrendan. Atsegin dut, ahalik eta kasu txarrenean. Beraz Bubble Sort, adibidez, Big n karratu O dugu. Zergatik dugun? Zergatik Bubble da Sort Big O n karratu? IKUSLEEN: [INAUDIBLE]. LUCAS: Bai, beraz, kasu horretan, txarrena izango da n iterazioak egin behar dut. Beraz iterazio bakoitza joan elementu handiena ekarri amaieran zerrendaren. Beraz, kasu txarrena da tengo que Gauza n aldiz ez da egin behar. Eta garai horietan bakoitzean, izan dut Egin n trukeak alderatu ditudalako Bi elementu bakoitza. Beraz, horregatik eta karratu n da n aldiz n. delako Ondoren, aukeraketa sort da, gainera, n karratu delako, iterazio bakoitzerako, izan dut elementu bakar behin begiratu zerrendan. Eta gero, txikiena aurkitu, horrek esan nahi du, I izan n elementuen bidez bilatzeko. Eta n aldiz bat pentsatu behar izan dut N elementu guztiak aukeratu behar dut. Txertatzeko moduko bat ere n karratu Kasu txarrena eszenatoki izango delako izan, bat, sartu behar dut n zenbakiak, ezta? Beraz, dagoeneko badakit noa n iterazioak izatea. Baina izan dut zenbaki horiek bakoitzerako, bada zenbakiak guztietan begiratu ordenatzen du zerrenda, eta modu guztiak ipini aurrean, duten n karratu izango delako n aldiz n berriro izango da. Zentzurik? Zer omega buruz? IKUSLEEN: [INAUDIBLE]. LUCAS: kasu onena agertokia da. Beraz bezalakoa da, asko aldiz egiteko , ordenatzeko kasu onena agertokia da zerrendan dagoeneko ordenatuko da. Beraz, ez duzu benetan ezer egin. Bubble Sort ditu onenak Kasu n eszenatoki. Ez duzu guys dakizu zergatik? IKUSLEEN: [INAUDIBLE]. LUCAS: Bai, segimendua baduzu Datu anoa trukeak edozein izan ala Ez, zerbait bada, ez duzu behar bezala ezarri Egia ez iterazio bat izan bada ere, bada Zerrenda dagoeneko ordenatuko da, funtsean, zer gertatuko da noa saiatu bi bakoitzak trukatu ondoko elementuak. Duten ikusi nahi dut daude trukeak ez. Eta itzultzeko besterik ez dut berehala. Beraz, I besterik ez dela egin behar izan dela esan nahi du the list denbora bat pasatzen. Beraz, n egiten dut begiratu delako n elementu at. Zergatik aukeraketa sort n plazan? Bai, zerrendan ordenatuko bada ere, alde aukeraketa sort iterazio bakoitzean, I gutxieneko elementu hautatu behar. Beraz, horrek esan out daukat begiratzen duten Unsorted elementu guztietan zerrendatu eta minimoa aurkitu iterazio bakoitzerako. Ez duela zentzurik? Eta txertatzeko ezpata delako n agertzen duten txertatzeko ari naiz kasu zenbakiak eta zenbakiak guztiak, denean dut saiatu horiek txertatzeko, ikusten dute dudala eskuineko posizioa dira. Nik ez dut joan den egiaztatzeko beste guztia Unsorted zerrendan zenbakiak. Beraz, horregatik n izango da. Zentzurik? Eta zer da, theta? IKUSLEEN: [INAUDIBLE]. LUCAS: Zer, barkatu? Esan berriro. IKUSLEEN: [INAUDIBLE]. LUCAS: Zehazki. Beraz, aukeraketa hori bakarrik ikusi ahal izango duzu Batu gordetzen moduko dute thetas. Eta hori da zuk bakarrik izan theta delako bai Big O eta Omega bera baldin badira. Ados. Eta, azkenik, batu, ordenatu, hau da in log n. Eta gero, Dan zen esaten gisa, Batu sort motatako modu berean bezalakoa dela bilaketa bitarra egin duzu. Beraz, zerrenda lortuko duzu. Eta ari den erditik ebaki zoazen. Eta gero horiek ebakitzen halves txikietan. Eta gero batu duzu. Zaudete gogoratu, ezta? Ados, jo zuen esaten zen. Ados, erakusleak. Beraz, zer erakuslea da? IKUSLEEN: [INAUDIBLE]. LUCAS: helbidea. Ados. David duten mordo bat azaltzen jakin dut binky bideoak eta gauzak apuntatzen elkar. Baina gustatzen zait erakusleak pentsatzea besterik helbide gisa. Beraz, hori gertatzen aldagai bat da Helbide bat gordetzeko. Beraz, aldagai berezi hau besterik ez da dela lau byte luzea. Gogoratu, ezer erakuslea dela beti lau byte gure 32-bit luze Makina hain kasua tresnari. Eta besterik kokalekua ditu barruan aldagai baten. Ados, beraz, ez dago memoria hau da, funtsean. Beraz, memoria bloke bakoitza benetan ditu etiketan, eta hori helbidea da slotty memoria. Beraz, horrek esan nahi dut ahal izango dute erakuslea seinalatuz bat Helbide hauek edozein. Beraz, arrazoia zergatik erakusleak erabiliko dugu da kokapena gogoratu behar badut aldagai zehatz bat duten memoria bat da. Eta gogoratzen duzu guys horiek bat duten Kasu zen funtzio bat badut daukat benetan bada nahi duzu erreal for swap, I actually erakuslea bidali behar. Ez da aldagai. Ez duzu guys gogoratu? Aldea between-- The zer izen da? Balioa eta deituz Deitzen erreferentzia, ezta? Ados, bai. Beraz, balio by deitu. Noiz aldagai bat bidali besterik ez duzu funtziona zu besterik balio bat bidaliz duzu. Beraz, benetan ari bidaltzea aldagai horren kopia bat. Eta zure programa bortz axola zaie aldagai berarekin benetan bada buruz kopia bat egiten du. Eta deituta erreferentzia esan nahi du, Benetan kopia bat naiz bidaliz aldagai hori erakuslea. Beraz, naiz duten I bidaliz esan nahi du aldagai horren kokapena. Beraz senti kokalekua daukat aldagai, funtzio nuenean deitu erakusleak, benetan gai naiz Datu hori nagusia izan zen aldatu. Zentzurik? Arren, erakuslea kopia bat da, erakuslea oraindik helbide benetako du aldagai hori aldatu nahi dut. Zentzurik? Beraz, erakusleak sortzeko. Gogoratu, erakuslea beti dute duten seinalatuz motaren izar bat eta gero. Eta gero, izena jarri behar duzu. Beraz, gogoratu, betiere duzu edozein dela izarra, izan erakuslea bat bezalakoa da edozein dela ere, aldagai hori idatzi izan duzula. Beraz, hemen izarra, adibidez, oso erakuslea eta zenbaki oso bat. Eta gero, char star erakuslea da char izar eta abar. Bai? IKUSLEEN: Zer badugu bat n erakuslea x izarra izateko. Duten x erakuslea sortzen badakit. Ba al da zenbaki oso bat x deklaratzeko, gainera? LUCAS: OK, beraz, n izar x esan duzu, Ez duzu erakuslea sortzen ari x aldagai. X izeneko erakuslea bat sortzen ari zara. IKUSLEEN: [INAUDIBLE]. LUCAS: Beraz, n izar x diot, naiz , esaten hey, memoria, naiz joan lortzeko hiru kutxa horietako bat. Eta ez dut esan nahi hori joan da, hau da x izango da, joan erakuslea izan nahi du. Eta zerbait erakusleak buruz interesgarria dela dute ez dutela esan dugun 4 byte 32-bit makina bat da. Eta horren arrazoia dagoelako 4 byte 32-bit dira. Eta makinek duten 64 bit dira benetan erakusleak helbideak dute duten 64 bit luze dira. Beraz, esan nahi du, besterik ez duten tamainaren helbideak makina desberdina da. Beraz, erreferentzia eta Dereferencing. Badira bi operadore you guys gogoratu behar. Lehena ampersand da. Bigarrena izarra da. Ez zaitez nahastu izarra duten eta honen arabera izar duelako gogoratu, in Kasu honetan, n izarra duzu. Gauza oso bat bezala da elkarrekin. Inolako n espazio star ez. Beraz, esan nahi du motakoa dela. Gogoratu, denean behar duzu star aldagaia, zaren motari buruz hitz egiten. Noiz besterik izar eta gero egin behar duzu aldagaiaren izena, esan nahi du erakuslea, dereferencing ari zaren horrek, esan nahi du ikusten ari zara erakuslea, helbidea bilatzeari da, seinalatuz, helbide horretara joan, eta, betiere, begira ez duzu. Beraz, esango dut nire ikasleak denean behar duzu izarra, pentsatu behar duzu, hori da edukia laburdurarik du. Beraz, erakuslea bat baduzu eta zuk egin star erakuslea, da erakuslea edukia. Beraz, edozein dela ere da seinalatuz behar duzu eta etengabea eduki begiratu. Eta ampersand berdina da Gauza helbide gisa. Beraz, aldagai bat bezala a-- badut, dezagun esan ez dut int bat itzultzen 3-- horren helbidea aurkitu nahi badut aldagai memoria bat, besterik gabe, egin ahal dut ampersand bat. Beraz baten helbidea da. Zentzurik? Hortaz, hona hemen adibide bat. Hau int b eta int c falta da. Beraz, int bat berdinen 3 bitartekoak direla Memoria joan noa. Eta ez dut zirrikitu bat aurkitu du eta jarri 3 zenbakia hemen. Eta gero, int b berdinen 4. Gauza bera egin behar dut. Memoria joan eta zenbaki bat jarri Kutxetako batean 4. Eta int berdinen 5. Aurki box beste bat eta zenbaki bat jarri 5. Beraz, zer lerro hori aurrera egiten ari da? n izar pa ampersand bat berdin. Beraz, lehenik eta behin, n izar pa. Zer egiten da? IKUSLEEN: [INAUDIBLE]. LUCAS: Bai, beraz n izar pa, lehenik eta behin, pa izeneko erakuslea deklaratzen. Eta gero nik balioa esleitzea da erakuslea baten helbidea izan nahi du. Beraz, ampersand bat. Ondoren, izar pb egiten badut, zer izar pb bat da? Oh, barkatu. Honek ere falta da. n izar pb. Izar pc esan nahi dut. Asko sentitzen dut. Gauza bera gertatzen da. Baina orain ona erakuslea sortzeko ar naiz b eta gero c erakuslea. Bai? IKUSLEEN: [INAUDIBLE]? LUCAS: Bai. Beraz, joan memoria gero eta joan behar duzu koadroan duten Designatzaile da pa egiteko, benetan ari zaren joan ikusi Ziurtagiri baten ezaugarriak. OK? Bai? IKUSLEEN: [INAUDIBLE]? LUCAS: Bai, erakuslea helbidea da. Inoiz ez ahaztu. Da garrantzitsuena bezala da erakusleak buruz zati. Ez dago gordetzeko eta helbidea aldagai batzuk. Beste ezer? Beste edozein galdera? Ados. Beraz, erakusleak eta Matrizeak. Gogoratu int array 3 egin dut, Funtsean, zer egiten ari naiz da, naiz nolako ren, erakusle bat ere geratuko. Beraz, array mota da erakuslea bat bezalakoa da memorian leku jakin horretan, I hiru zirrikitu esleitu osokoak da. Ez duela zentzurik? Beraz, int array 3 egin dut, zer naiz egiten, funtsean, hiru sortzen da memorian slots. Beraz, memoria hiru zirrikitu aurkitu dut. Beraz, egin nuen, eta, ondoren, izar array bat, bada funtsean, array edukiak esan nahi du, horrek esan nahi du ezabatuko dut erakuslea, I joan dela seinalatuz leku horretara, eta zenbaki bat jarri dut. Eta gero, izar array plus 1 egiten badut, array egiten gauza bera Alde parentesi artean, besterik gabe esan nahi joan nahi dut lekua dela seinalatuz. Eta gero plus 1 markek posizio bat mugitzeko me. Beraz, jarrera hori nahi dut, egia esan, eta jarri bi zenbakia du. Eta gero, azkenik, noiz egin behar dut array gehi 2, joan nora dut array en seinalatuz. Eta gero, mugitu memoria bloke nahi dut. Eta gero, hiru zenbakia jarri dut hemen. Bai? IKUSLEEN: Beraz, izar array besterik ez da, Oso lehen puntua esaten. Eta gehitu dezakezu 1, besterik ez delako gaude bakarrik benetan Lehenengo helbide hori erreferentzia. LUCAS: Bai. Zergatik ez dugu, adibidez, esan array 0, array 1, eta array 2? , Esaten dut zergatik egiten duzu 0, 1, 2, 3 1 ordez, 2, 3? Arrazoietako bat da, bat, ordenagailu programatzaileak nahiago hasteko 0 hasita. Bi denean array 0 egin duzulako, array egiten gauza bera da plus 0, horrek esan nahi du joan nahi dut posizio horretan, eta ez dut memoria bloke edozein saltatzeko. Beraz, ez dut memoria bloke edozein mugitzeko. Bai? IKUSLEEN: [INAUDIBLE]? LUCAS: Beraz, zuen zer den galdetuz egiten arteko aldea hau edo malloc egiten. Desberdintasunak bat dela int array 3 eratuz array pilan. Eta noiz malloc egin nuen, zeure gainean sortzen. Ez duela zentzurik? Beraz, nola malloc benetan lan? Beraz, zergatik ez, nahiz malloc erabili behar dugu? Zure konpiladorea zifra motatako guztiak dela deklaratu aldagaiak. Eta espazioa sortzen zuen guztientzat horietako pila. Beraz, zure aldagai guztiak dira joan pila nonbait izan. Hortaz, hona ingurune-aldagai da. Beraz, funtsean, aldagai horiek, espazio memorian dago at esleituko bildu denbora. Beraz, zure ordenagailua duela esan nahi du aldagai horiek guztiak ezagutu aldez aurretik. Ez du behar den jakin zer balio eurengan jarri ari zaren. Baina nola jakin behar du memoria askoz behar duzu. Baina orain, demagun, adibidez, array bat sortzen ari zaren edo bat hartuz kate hori hartzen ari zaren erabiltzaileari. Zenbat denbora ez dakizu katea da, izan adibidez joan. Beraz, ez dakizu zenbat memoria bloke, esleitu ezta? Beraz, ez da benetan zentzurik for 100 karaktere jarri esateko duzu. Eta gero, erabiltzaileak idazten 150? Zer bada Izorratu behar izan duzu. Beraz, funtsean, ezin duzu nola ziur memoria askoz esleitu behar duzu denean programa konpilatu duzu. Badakizu besterik ez dela exekutatu denbora. Beraz, horregatik zeure duzu. Beraz, zeure memoria izan da joan zehar duzula esleitzean ari programari iraupena. Beraz, funtsean, noiz malloc egin duzu, zer egiten ari zaren memoria esleitzean at exekuzio, horrek esan nahi du zarela une horretan eskuineko erabakia hartu duzula memoria hori izan behar dute. Beraz, noiz da esleitzean zaren. Ez duela zentzurik? Beraz, gogoratu, pila aldagai ditu diren konpilatzerakoan zabaltzea da. Eta gero, zeure aldagai ditu sortzen joan ahala malloc, adibidez. IKUSLEEN: [INAUDIBLE]? LUCAS: Beraz GetString da malloc deitu noa. Me hitz malloc egin dezagun, eta Azalduko dut GetString. Beraz, malloc gauza bera da memoria esleipena gisa. Beraz, esleitu joan memoria zeure gainean. Eta hori erakuslea itzuli joan non memoria hartan esleitu zen. Beraz, do-- duzu hemen adibide for n star erakuslea. Eta, ondoren erakuslea berdinen malloc hazbeteko aldiz 10 tamaina. Erakuslea sortzen ari naiz. Eta, ondoren erakuslea duten Dut esleitzeko erakuslea malloc duten balioa da me emanez. Beraz, galdetzen dut malloc dezakezu esleitu 10 osokoak espazioa. Horixe esaten da. Eta malloc ematen dit atzera leku hori erakuslea. Zentzurik? Ados. I Eta GetString da, funtsean, bat egiten malloc deitu beraz esleitu ahal izango duzu exekuzio bitartean memoria. Beti gogoratu null egiaztatzeko malloc null itzuliko delako joan ezin badu memoria esleitu. Demagun barregarria bat eskatu duzula memoria kopurua. Zure ordenagailuak ez da izango duten askoz ere esleitu ahal izango. Beraz, malloc da, besterik gabe, joan null itzultzeko. Beraz, beti gogoan izan balitz egiaztatu erakuslea duzula got malloc da nulua edo ez, zeren bada, baliteke egon erakuslea dereferencing eta Bigarren mailako failak eragiten. Eta, azkenik, ez ahaztu Zure memoria doan. Malloc zeure memoria sortzen da. Eta memoria libratzeko behar duzu programa amaitu aurretik. Ados, hori da dena niretzat. Barkatu, Rob. Eskerrik asko. [Txaloak] LUCAS: Edozein azken galdera aurretik Rob dator? No? Bai? IKUSLEEN: ez nuen ikusi Bat online honetan. Dute oraindik igotako duzu? LUCAS: uste dut Dave da laster igotzen. DAVE: It argitaratu egingo dugu. LUCAS: online izango da. IKUSLEEN: Ez da sortu. LUCAS: Ez da sortu? Ados. Bai? IKUSLEEN: [INAUDIBLE]? LUCAS: Bai, askatu behar duzun guztia memoria hori zeure jarri. IKUSLEEN: [INAUDIBLE]? LUCAS: Bai. Duten kultura malloc a behar duzun edozein unetan, kultura bat libre izan beharko duzu ondoren gelditu aldagai hori erabilita. Beraz, malloc eta dohainik dira Beti elkarrekin. Haien lagun onena. Bai. Rob? ROB: azkar joango naiz. Eta, gainera, bideoa jarriko du. On mic daukat. Ados, beraz, astean bost gauzak. Lehenik eta behin ditugun pila da. Beraz, gogoratu ez dagoela pila bat besterik ez funtzio dei aktibo bakoitzeko fotograma. Duten ikusiko dugu bigarren bat. Eta, gainera, gogoratu, benetan zer gertatzen den pila marko bakoitzean izango dira Gure funtzioen aldagai lokalak dira, diren pasa argudioak gure funtzioak, pare bat batera beste gauza batzuk ez duzu benetan kezkatu behar. Hortaz, hona hemen adibide-programa bat, non, oharra, nagusia da itzulera printfing foo 4 balioa. foo da besterik gabe itzuli egingo da bar 4 koma 6 balioa. Eta bar da tokiko zenbait gauzak argitzera 4 6 berdina aldakorreko n. Eta gero itzuli n. Hargatik zehar ditzagun pila at benetako programa honen iterazio. Beraz, ez dago gure pila behealdean dago. Gogoratu pila hazten sortu. Beraz, gure pila behealdean, dugu pila nagusiak marko bat. Noiz programa hasieran, nagusiak beti egon behar dute gure pila behean. Eta zer da barruan gure pila marko nagusia da? Beraz, ez dira tokiko no nahiz nagusira aldagaiak, lehen esan dudan bezala, argc eta rgv dute hartzen espazioa dugu pila nagusiak marko barruan. Beraz nagusia da orain joan deitu funtzioa foo. Eta horrek esan nahi foo da joan lortzeko bere pila-markoa. Beraz, gaur egun ari gara, barruan funtzioa foo. Eta zer behar du joan foo pila marko? Beno, foo argumentu n du. Eta N 4 berdina da hori geroztik zer nagusiak pasatzen foo en argumentu gisa. Beraz, orain foo bar da deitu behar. Zer da barra barruan izan da joan Bere 'pila marko of? X 4 y sei berdina berdina dauka. Hori ez da behar behar dugun guztia pila markoaren bar delako halaber, aldagai lokal bat n ditu. Eta n ari gara 24 berdinak ezarri behar. Beraz, gaur egun taberna da itzuliko n egingo. Beraz bar itzuli da eta 24 pila marko foo. Eta delako bar orain, itzuli da, esan nahi du, pila marko ari gara leihoa bar off pila da. Beraz, memoria guztia bar izan dira erabiliz, gaur egun pila off. Orain, lelo hori ere joan 24 itzultzeko nagusira. Beraz, orain foo duten itzultzean, memorian lelo hori bere 'in erabiliz pila-markoa ere joan da. Eta orain, nagusia da printf deitu noa. Beraz printf funtzioa bat besterik ez da. Noiz printf deitzen diogu, izan da joan beste pila printf egiteko markoa funtzio deia. Zer dira printf pasatzen dugu? Horrexek nahasten joango gara bere pila-markoa. Oso gutxienez, pasatzen ari gara ehuneko i backslash n eta argumentua 24. Gehiago izan dezake, bertan pila-markoa da printf gertatzen bada izango batzuk erabiliz aldagai lokalak. Ez dakigu. Baina hori guztia printf en doa pila fotograma. Honez printf exekutatu behar. Ondoren printf kitto. Itzuliko da. Azkenik, nagusia egiten da. Main itzuliko da. Eta orduan gure programa egiten da. Bai? IKUSLEEN: zuk ikusten dira [INAUDIBLE] argumentuak [INAUDIBLE] parametroak? ROB: Beraz, ez sotil aldea da argudioak eta parametroak artean. Eta benetan, hitz komunean, jendeak joera besterik nahastu du denbora guztian. Baina parametro formalak dira Gauzak izena. Beraz argc eta argv dira nagusira parametroak. Argumentuak dira zer benetan pasatzen diren parametro horiek bezala. Beraz ez denean 4 foo, 4 deitzen dut argumentua I pasatzen naiz da. Eta parametro n, barrutik foo, 4 balioa hartzen 4 geroztik argudioa zen. IKUSLEEN: [INAUDIBLE]? ROB: n tokiko aldagai bat taberna da. n dago oraindik foo tokiko, baina Parametro bat foo da. Ez da tokiko aldagai bat. Bai? IKUSLEEN: [INAUDIBLE]? ROB: foo besterik deituz taberna eta edozein dela bar itzultzen itzuli. IKUSLEEN: [INAUDIBLE]? ROB: Bai, bat baino gehiago ikusteko markoak pilatu. Bai? IKUSLEEN: Zergatik deitzen zen lelo printf aurretik? ROB: Zergatik deitzen zen foo printf aurretik? Beraz, izan dut, ordez, zerbait egin int bezalako x berdin 4ko foo eta gero inprimatutako x. Baina horren ordez, funtzioak konbinatzen dut printf argumentua sartu deitu. Ezin dugu baina konturatu benetan deialdira dugun arte printf exekutatu irudikatu 4 foo zer den. Beraz, hau ebaluatu behar. Eta hori behin bakarrik egiten zoazen itzuli eta hau ebaluatzeko. Bai? IKUSLEEN: bai bar geroztik [INAUDIBLE] balioa, zergatik ez dugu [INAUDIBLE]? ROB: guztiz int izan beharko lukete. Hori ez zela harrapatu gorako bat baino gehiago gainditu. Beraz, int bar eta int izan beharko litzateke Horietako bi geroztik lelo dira osokoak itzuli. Hutsa da bakarrik ari dira, ez bada benetako balio itzultzeko. Bai? IKUSLEEN: lerro bat izan ezkero gainetik itzulera, [INAUDIBLE]? ROB: itzulera gainetik lerro bat? IKUSLEEN: Bai. Like printf eta [INAUDIBLE] egin baduzu, litzateke bi aldiz inprimatu? ROB: Beraz, foo barrutik? Printf bat izan dugu hemen, bada? IKUSLEEN: Bai. ROB: Beraz, printf eskubide bat izan genuen Hemen, behin inprimatu litzateke. Foo behin eskuineko deitzen ari gara geroztik Hona hemen, beraz printf hit dugu. Ondoren bar deitu dugu. Eta gero itzuli egingo foo. Eta hori da. Bakarra inoiz aurkituko dugu printf behin. Bai? IKUSLEEN: [INAUDIBLE] printf foo deituz lehen garelako printf deituz eta ondoren pasatzen ari gara argudioak. ROB: Beraz, teorian, ez da printf foo deituz? Beraz, ez. Just ordena c hori joan Gauza horiek exekutatu da, ahal dugu aurretik funtzio bat deitu, argumentuak guztiak funtzioa behar den erabat baloratuko dira. Beraz, hau erabat ebaluatzen da? Bai, kate bat besterik ez da. Balio bat besterik ez da. Orduan guztiz daukagu hau ebaluatzeko. Hori egin eta gero, gaur egun guztien bere argumentuak ebaluatzen dira. Eta orain egin dezakegu deitu printf. Bai? IKUSLEEN: galdera bat. Void funtzioa bat baduzu, muztioa bueltan koma behar duzu? ROB: ez duzu bueltan puntu eta koma ez Void funtzioa bat duzu bada. Ados. Beraz, orain, zeure gauza batzuk. Beraz, arazoak izaten ari da, nola ari gara aurre joan memoria dinamikoa kudeaketa batekin. Eta hori zuzenean kontrasteak pila bertan automatikoa deitu genuke memoria kudeatzea. Beraz, pila, benetan inoiz ez duzu nola tokiko aldagai landu galtzen ari dira eta popped off guztiak pila fotograma horiek eta halakoak. Ez daukazu kezkatu. It automatikoa da. Beraz, zeure Eskuliburu da. Eta [INAUDIBLE] funtzio horiek dator malloc eta doakoa. Hortaz, hona hemen programa bat da. Guztiak egiten ari gara, mallocing zenbaki oso bat. Gordetzeko ari gara izar x. Jakina, egiaztatu behar dugu x null bada ikusteko. Ondoren gaude besterik ezarri zer gertatzen x 50 egingo dutenak. Inprimatu zer x seinalatuz, inprimatu x, eta, ondoren, free x. Beraz, nola da hau benetan begiratzen joan begiratzen dugu gure pila eta zeure kontuan hartuz gero? Beraz, hasiko gara berriro. Gure pila behealdean lehen bezala. Gogoratu zuzenean zeure duten thee pila kontra? Beraz, egin behar joan Gure zeure goialdean han. Beraz, gure pila behealdean, hemengo gure pila nagusiak marko. Argc, argv espazioa du, eta guk orain aldagai x lokal bat, behar horrek int izar bat da. Beraz, batetik bestera joateko joan Programa honen bidez. Lehenengo gauza egin dugu malloc deitu. Beraz, malloc dei bat egiten ari gara. Malloc funtzioa da. Honez pila marko bat lortzeko. Zer ari gara malloc pasatzen? Hori barruan joan pila markoaren. N, eta horietatik 4 neurri pasatzen ari gara. Beraz, hori da malloc gainditu. Zer egiten du malloc? Gurekin zeure buruzko espazioa batzuk hartuko da. Beraz, zeure joango gara. Eta ari gara hartzen joan 4 byte zeure from. Hargatik eman besterik gabe dagoela arbitrarioa helbide bat. 0x123 Just asmoa dela bat helbide hori zeure gainean. Beraz, zer da, benetan, horren barruan helbidea ox123 at memoria eskualdea? Garbage. Beraz, ez dugu ezer gordetzen. Beraz, guk dakigula, bezala edozer izan daiteke. Ez zenuke arduratuko da zero. Da ziurrenik ez da zero. Beraz, gaur egun malloc itzultzen. Eta zer egiten dugu malloc itzultzen? Zer itzultzen ezarri dugu. X berdinak ezarri dugu zer itzuli da. Beraz, zer da itzuli? Honez 0x123 itzuli egiten dela geroztik memoria bloke-en helbide hori besterik zeure esleitu. Beraz itzultzeko 0x123 x orain ezarri beharreko joan 0x123 berdina bertan, pictorially, marraztu maiz dugu benetako bat izatea x gisa arrow bloke hori seinalatuz. Baina x besterik ez da helbide hori gordetzeko. Beraz, gaur x null bada egiaztatu behar dugu. Ez da nulua. Malloc hori lortu nahi dugu. Beraz, gaur egun izar x berdin 50. Beraz, izar gogoratzen esan nahi duen helbide horretara joan. Beraz 0x123 ari gara joan helbide horretara joan. Beraz, horrek garamatza han. Zer ari gara egiten helbide hartan? 50 gordetzeko ari gara. Beraz, lerro honen ondoren, horixe da gauzak ez dira itxura. Beraz, gaur egun jada ez da zabor sortu ez. Orain badakigu 50a da helbidea bereziki delako ezarri dugu hori. OK? Beraz, gaur egun ari gara f inprimatu. Beraz, lehenengo ari gara izar x inprimatzeko. Beraz, zer da izarra x? Berriz ere, izar x esan nahi joan Gauza x dela seinalatuz. Beraz, x gordetzeko 0x123 Go horretara. 50 lortuko dugu. Beraz, inprimatu f. Eta horrek esan nahi du 50 inprimatu behar da joan. Eta gero, hori itzuliko du. Eta gero, bigarren printf dugu. Gara orain berea p. Ez duzu ikusi bada, hori da, besterik gabe, nola erakuslea inprimatu duzu. Beraz ehuneko i, garbi daukagu f, eta dagoeneko horiek guztiak. Beraz ehuneko p, inprimatu erakuslea. Beraz, x erakuslea da. Beraz, ari gara, berez x inprimatu bada, ari zer da benetan barrutik inprimatzeko dugu x, zein 0x123 da Beraz lehenengoa inprimatu f 50 inprimatu. Bigarren inprimatu f va 0x123 inprimatu behar Yeah? IKUSLEEN: Ba ehuneko erabiltzen dituzun x erakuslea inprimatu? ROB: Beraz, garbi erabili behar dituzu x erakuslea inprimatu? Beraz, ahal duzun, baina ehuneko x besterik ez da, oro har, bezala batzuk izanez gero osokoa eta inprimatu nahi duzun it hamaseitar bat bezala. Hori besterik ez nola egiten duzun. Berriz, ehuneko d litzateke hamartar gisa inprimatu. Hori duk honako ehuneko lortuko dugu d. i besterik osokoa da. ehuneko p da, zehazki, erakusle da. Beraz, x erakuslea da. Ehuneko p erabili nahi dugu. Baina ehuneko x lan izan. Bai? IKUSLEEN: [INAUDIBLE]? ROB: Bai. Horretarako Gutxienez beraz call-- dut ez zituen, hemen da. Baina bi argumentu horiek ez dira nahitaez pila marko honen barruan edozein aldagai lokalak batera printf gertatzen erabiltzen dituztela. Eta gero, hurrengo deia orain printf pila marko printf barruan ehuneko p backslash n eta edozein x-ren balioa da, eta horrek 0x123 da. Bai? IKUSLEEN: [INAUDIBLE]? ROB: zerbait inprimatu egingo da itxura hau. IKUSLEEN: [INAUDIBLE]. ROB: Beraz bistaratzen helbidea inprimakia. Itxura helbide bat bezalakoa da. Bai? IKUSLEEN: [INAUDIBLE]? ROB: Zergatik da zer? IKUSLEEN: [INAUDIBLE]? ROB: Zergatik da erakuslea hau 4 byte? Beraz, ez dira sorta osoa 0-ren honen aurrean. Beraz, benetan 0x0000000123 da. 64-bit sistema bat, ez luke izan zeroen gehiago sorta osoa. Bai? IKUSLEEN: [INAUDIBLE]. ROB: Beraz, lehenengo printf da print-- joan IKUSLEEN: [INAUDIBLE]. ROB: Bai, nik inprimatzeko joan zer x seinalatuz. Star dio zer da hau Gauza seinalatuz. Hartu ezazu. Beraz, zer da apuntatzen da? 50. Hartu ezazu. Horixe ari gara inprimatzeko joan. , Berriz, hurrengo bat, gara besterik berez x inprimatzeko. Zer da f-barrutik? 0x123. Ados. Eta gero, azkenik, librea daukagu. Zer ari gara free pasatzen? X pasatzen ari gara. Denbora hori benetan bistaratzen dut pila-markoa da. Beraz balioa pasatzen ari gara 0x123 free. Beraz, orain doan badaki, eskubidea, Igo zeure behar dut eta memoria hori doan. Honez jada ez erabiliz zer helbidea 0x123 da. Beraz, doan da askatu joan zeure duten. Orain gure zeure hutsik dago berriro. Memoria filtrazioak ez daukagu. Orain doan itzuliko da. Ohartu x dela oraindik 0x123. Baina hori da, gaur egun ez du balio memoria. Jada ez erreferentzia kenduta x hori behar dugu. Bai? IKUSLEEN: da itzuliko 0 erredundantea? ROB: Is returen 0 erredundantea? Bai. Jarri dugu besterik gabe, hori ez delako itzulera bat aire dugu. Beraz bezalakoa da, bai, aukera ematen dizu Return 0 besteak beste. Bai? IKUSLEEN: [INAUDIBLE]? ROB: Beraz, x free ondoren, zer gertatzen bada saiatu gara erakuslea dereference? Posible da ezer oker. Posible da egingo dugun oraindik lortu 50. Posible da, halaber, memoria hori dela gaur egun, beste zerbait erabiltzen da. Beraz, portaera undefined. Eta undefined ezer esan nahi gerta daiteke. Bai? IKUSLEEN: [INAUDIBLE]? ROB: Ez, beraz, esleitu bada beste zerbait x. Beraz, hementxe bada esan dugu x funtzioak malloc zerbait else-- malloc tamaina gertaera ondoren, jatorrizko bloke hori Memoriarik ez da libratuko. Eta ofizialki ditugu galdu zuen. Memoria-leak bat da. Erreferentzia guztiak galdu dugu memoria bloke horretan. Beraz, ez dago modurik ez dugu inoiz askatu daitekeela. Ados, beraz, ondoren, itzultzeko 0 bitartez egin. Ondo da, beraz, pilaren gainezkatzea. Zein da ideia hemen? Beraz, gogoratu, zeure beheraka doa. Stack up da. Beraz, hau hitzaldia adibidea izan zen, Uste dut, non nagusia besterik ez da joan deitu funtzioa foo hau, hau da, joan bera errekurtsiboki deitzeko baino gehiago eta berriz. Beraz, pila markoak dira joan lan bera zehazki. Beraz, nahi nagusirekin hasiko da beheko pila marko gisa. Gero nagusia da foo deitu, joan eta bertan pila fotograma bat iritsi. Ondoren foo da foo deitu noa berriro ere, eta hori da iritsi pila marko beste. Eta gero berriro, eta berriro, eta berriro, eta berriz arte, azkenean, korrika egin genuen zeure sartu. Beraz, hau da, nola lortuko dugu pilaren gainezkatzea. Eta puntu honetan, seg errua duzu. Edo dituzu, benetan seg aurretik errua Puntu honetan, baina bai. IKUSLEEN: Is core irauliko du seg matxura bera? ROB: Beraz, ikusiko duzu segmentazio errua core iraultzeko. Nukleoaren iraulketa bat denean lortuko duzu seg errua duzu. Eta guztien iraulketa bat bezalakoa da Zure uneko memoria edukiak beraz, saiatu eta identifikatu ahal izango duzu zergatik faulted seg duzu. Bai? IKUSLEEN: [INAUDIBLE]? ROB: Beraz, segmentazio errua bitartekoak ez gainezkatzea pila bat. Beraz, ez du zertan. Segmentaziuo hutsegitea esan nahi du zarela modu batean memoria hunkigarri ez behar duzu. Beraz, gertatzen ari den bide bat da, gainezkatzea pilatu duzu, hunkigarri hasten gara dela ez genuke modu bat memoria. Bai? IKUSLEEN: [INAUDIBLE]? ROB: Beraz, begizta infinitu baten barruan. Bezala, hau infinitua recursive bat bezalakoa da loop eta, beraz, beste bat lortuko dugu pila aldi bakoitzean enkoadratzearekin. Baina besterik ez erregular baten barruko infinitua one-- bitartean ondo, ez dezagun are inprimatu f Zerbait egin. Whatever. Ez ari gara lortzean joan pila marko beste. Besterik ez gara begizta jarraitzea instrukzio bakar horretan. Pila ez da hazten. Recursive bakoitzak Izan ere, dei pila marko bat uzten dizkigu. Horregatik pilaren gainezkatzea bat lortuko dugu. Bai? IKUSLEEN: Beraz, lortu esan duzu loop bitartean eta ondoren, [INAUDIBLE]? ROB: Beraz, berriz, loop, barruan bada ez zen printf bat, oraindik ere egiten duzun Ez errua seg. Ez nuen nahi, gauzak nahastu. Begizta litzateke izango. Pila bakar bat egin ahal dituzu, printf du markoa. Ondoren printf itzuliko litzateke. Ondoren begizta zinela berriro. Pila bakar bat egin ahal dituzu, printf du markoa. Itzuliko litzateke. Pila bakar markoa. Beraz, zu ez infinitua hau eskuratzerakoan pila fotograma piling. IKUSLEEN: [INAUDIBLE]? ROB: Bai. Beraz pilaren gainezkatzea hau gertatzen horietako bat ere ez delako foo egindako deiak itzuli dira. Beraz itzultzeko badugu, orduan genuke hasteko pila fotograma galdu. Eta gero, ez genuke gainezkatzea pila. Eta horregatik base kasu bat behar duzu zure funtzio pertsonalerako. Bai? IKUSLEEN: balizko tamaina eta Is zeure berdina pila programa guztiak? ROB: Gutxi gorabehera. Da pilaren tamaina potentziala eta programak guztietan berdina zeure? Gutxi gorabehera. Badira to Ausazkotzea batzuk non pila hasten da eta non zeure hasten da. Asko izan gertatuko baduzu aldagai eta global gauzak, baliteke kentzen espazioa batzuetatik zure arazoak izaten ari da. 64-bit sistema bat, ia duzu memoria infinitua dute. Ez dago besterik ez hainbeste. 32 bit eta 64 bit, arteko aldea esanguratsua da. Oso bat asko gehiago lortzeko ari zara pila eta zeure espazioa 64 bit-batean sistema ez delako, besterik gabe, gehiago helbideak erabili ahal izango dutela. Baina banakako sistema batean, izango da gutxi gorabehera pila kopuru bera izango eta zeure espazioa. Guztiak eskubidea. Beraz, azken gauza konpilazio da. Beraz, prozesu hori jakin behar duzu. Lau urrats handiak daude. Beraz, lehenengoa izan beharko lukete gogoratzeko erraza izan. Pre-prozesatzeko. Bertan aurrez aurrizkia dauka. Beraz, beste guztia aurretik dator. Gauza gogoratu hash da. Beraz hash definitzen eta hash barne hartzen horiek guztiak ere. Horiek dira pre-prozesadore guztiak zuzentarau. Hauek dira gauza dela pre-prozesadore ardura hartzen du. Beraz, zer egiten du pre-prozesadorea? Benetan muda gauza bat da. Guztiak gai da dira horiek guztiak kopia, eta ebaki eta itsatsi eragiketak. Beraz hash i0 dot h estandarra dira. Zer da hau egiterakoan? Honez grabbing i0 dot h estandarra da artxibatzen eta itsasten goiko sartu lekuan hash barne hartzen dio i0 dot h estandarra. Eta edozein hash definitu dugun ikusita, zer da hori egiten? Bere hash duten balioa kopiatzea definitu bezala eta itsatsi definitzen da, edonon balioa erabiltzen ari zarenean. Beraz preprocessor besterik ez du benetan Testu sinple oinarritutako eragiketak. Ezer smart egiten du. Beraz, beste guztia da zailagoa da. Beraz, orain preprocessor dela done, benetan konpilatu dugu. Beraz, zer esan nahi du konpilatzean? Orain ari gara c kodigoa joan muntaia kodea. Bai? IKUSLEEN: [INAUDIBLE]? ROB: Bai, hori harrapatu dugu. Beraz konpilatzean. Muntaia c aurrera goaz. Beraz, hau hizkuntzaren aldaketaren benetako bat da. Berez konpilatzean esan nahi joan mailara hizkuntza handiagoa mailako hizkuntza txikiagoa. Eta c mailako hizkuntza altua da aldean muntaia. Zer da muntaia? Bere argibideak direla, nahiko askoz, zure CPU egin. Baina zure ordenagailuan, oraindik ez Ez du ulertzen muntaia. Eta zeroen bakarrik ulertzen du. Beraz, hurrengo urratsa muntaia da, eta horrek dizkigun argibide hauek dakartzate, zure CPU ulertzen eta benetan itzultzen du, direnak eta zeroen. Beraz bitarra muntaia C. Baina ez daukat exekutagarria oraindik. Beraz CS50 liburutegia uste. Prestatu ditugu zuretzat bitar batekin CS50 liburutegi hau, eta bertan ditu GetString eta GetInt eta hori guztia. Baina cs50 liburutegia eta bera ez da exekutagarria. Ez du funtzio nagusia dute. Besterik bitar-sorta bat da hori erabili ahal izango duzu. Beraz lotzen nola ekarri dugu elkarrekin guztiak fitxategi bitarrak desberdin horien Benetako exekutagarri batean. Duten idatzi dezakezu One dot barrarik dot bat out. Beraz, hau fitxategia bezalakoa da duzula idatzi zuen, - zure programa edozein dela is-- Slavia dot c. Baina orain, konpilatu binary behera. Beraz Slavia dot o. Eta hau da gure cs50 liburutegiak bitarra. Eta ari dira konbinatzen ari exekutagarri bakar batean. Bai? IKUSLEEN: [INAUDIBLE]? ROB: Beraz, lehenengo besteak beste, gogoratu, hash ere sartuko da, benetan bat pre-prozesadore urratsa. Baina, bereizita. Oraindik ez duzu edozein funtzio erabiliz gero duen Zure fitxategi bakar at daudenean, ondoren, ez, ez duzu behar ezer lotzeko guztia duzu geroztik. Esan, printf horretan lotuta ari dira. Inoiz printf erabiltzen baduzu, zerbait horretan bideratu behar dira ez duzu idazten delako. Eta, hain zuzen ere, printf automatikoki lotuta. Badakizu zenbat komando-lerroan edo noiz egiteko idazten duzunean, zertan ikusten duzu etenaren l cs50, eta horrek lotura dauka CS50 liburutegia? Printf, eta horrelako gauzak, va estekatuko dira automatikoki. Ezer beste zalantzaren bat? IKUSLEEN: [INAUDIBLE]? ROB: Linking? Sorta oso bat daukagu fitxategi bitarrak ezberdinak. Hau kanonikoak adibidea da erabiltzen dugun CS50 liburutegia da. Konpilatu dugu, eta zuk emandako CS50 liburutegia honen bitar. GetString erabili nahi duzun programan. Beraz, joan eta GetString erabili. Baina nire kodea binary gabe GetString, zure kodea konpilatu duzu behera, ezin benetan exekutatu duzu zure programa delako GetString String da oraindik ez dago guztiz definituta. Besterik ez da, nire bitarretan estekatzerakoan duten GetString dauzkan orain, guztiak eskubidea, benetan ezin dut exekutatu GetString. Nire fitxategia osatu da. Eta hau exekutatu ahal izango dut. Bai? IKUSLEEN: bihurtzeko estekatzailearen bitarraren exekutagarri? Ez baduzu Beraz, nahiz eta beste eduki liburutegiak, ez litzateke oraindik ere izango da itzultzeko beharrezkoa [INAUDIBLE]? ROB: Beraz, exekutagarria da oraindik bitar. Besterik osotasunean konbinatuz bitarrik sorta. IKUSLEEN: Eskerrik asko. ROB: Ez dago arazorik. Beste edozein galdera? Bestela, ari guztiei ezarri dugu. Guztiak eskubidea. Eskerrik asko. [Txaloak] IKUSLEEN: Eskerrik asko. ROB: Bai.