[Powered by Google Translate] [Aste 2, Continúa]
[David J. Malan, Harvard Unibertsitatea]
[Hau CS50 da. - CS50.TV]
Guztiak eskubidea. Hau CS50 da, eta honetan 2 aste amaieran.
Gose espero baduzu denbora honen inguruan bihar
ezagutzen ari gara, talde txiki bihar, osteguna, 1:15 pm gisa deituko du.
URL hau hemen RSVP nahi izanez gero.
Espazioa mugatua da, beraz, mesedez, formulario hau bete du bete bada barkatzen.
URL bat, nahiz eta, agian interesgarriak izan da.
Hilabete bat denbora buruz, jakina da erabili ahal izango diren.
gehiago zabal edX bidez, horren bidez Interneten folks zehar jarraitu ahal izango da,
Ikastaroaren ihardun nahiko aktiboki, hain zuzen ere.
Erabiliz egingo dute CS50 Appliance eta CS50 eztabaidatu
eta software hainbat tresna ditugu dagoeneko seihileko hau erabiliz.
Eta ekimen bat on esperimentu gisa hartu behar genuke aurten
besterik ez zenbat edukia itzultzeko ikus dezakegu
hitz egiten eta idatzizko beste hizkuntzetara.
Beraz, bada, proiektu honetan parte hartzeko interesa izan dezaketen
Horren bidez, transkripzioak eta azpitituluak English ikastaroa hitzaldiak emango dugu
eta film laburrak, eta mintegiak eta atal eta antzekoak,
erraz hitz egiten duzu edo erraz beste hizkuntza batzuk idatzi,
maite duzun ihardun nahi dugu proiektu honetan Horren bidez, bideo bat edo gehiago hartu,
itzultzeko hizkuntza bat nahiko ondo ezagutzen duzu.
>> Interfazea zentzu bat emateko, web-oinarritutako erabiltzaile-interfazea
dugun erabiliz egingo duten funtsean atsegin dute hau UI bat sortuko du.
Hau irakasten Halloween duela zenbait me,
eta eskuineko aldean dago, beltzez ordu-/data-zigilua hauen ondoan,
hainbat gauza nire ahoan atera zen egun horretan ikusiko duzu,
eta, ondoren, azpian beste hizkuntza batzuk itzuli ahal izango duzu
zehazki zer mapaketaren artean, kasu honetan, ingelesa eta, esan, gaztelaniaz.
Beraz, benetan da oso user-friendly tresna.
Atzeratzeko eta ditzakezu Aurreratu Oso erraz teklatu-lasterbideak.
Beraz, esperimentu honetan parte hartu ahal izateko, eta nahi duzun zure hitzak ikus eta irakurri
potentzialki milaka daude folks, mesedez sentitzen free parte hartzeko.
Buruz hitz astelehenetik kitten.
Kausituko ditugu bidalitako oso scary mezu bat, ez dela konturatzen, bulego ordu iradokitzen
eta atal gisa gomendatzen da, ikastaroaren diseinua oso
ikasle eta laguntzaile lan hitz egitea arazo multzo bidez
eta arazoak elkarrekin, eta benetan linea besterik ez dator behera,
berriro ere, lana aurkezteko azken finean, duzu zeure izan behar du.
Eta, beraz, nahiko zintzotasunez, bulego orduetan guztiz normala da,
erabat espero dira, nahiz eta, lagun batzuk ondoan duzu txateatzen.
>> Zuen gai batzuekin batera bada, eta borrokan ari den bezalako Oraindik,
"Oh, ondo, utzi dizu me kode lerro batzuk idatzi dut antzematen," hori fina,
gertatzen da, eta hori da, nire ustez, oso aproposa ikaskuntza prozesuan.
Non lerroa erabat zeharkatu sort-burua da hemen baino gehiago tilted segundotan urrun gehiegi
edo benetan minutu besterik ez desblokeatzean aukera bat da zure laguna.
eta, zalantzarik gabe, e-posta eta Dropbox eta antzeko bidez gauzak trukatu,
han ere, lerro da.
Beraz, baliabide guztiak eroso sentitzen, eta animatu lagunekin berriketan
eta ikaskideekin psets eta gehiago eta konturatzen zer esan aurkezteko azken finean
benetan behar zure sorkuntza eta ez beste norbaiten produktua izango da.
Domeinu-pset2 arazo zehatz bat,
berandu Bihar gauean aterako da, kriptografia munduan murgildu da,
informazioa edo enkriptatzeko scrambling artea da,
eta hau, azken finean, munduko segurtasun dagokio.
Orain, gurekin gehienak segurtasun mekanismoak nahiko eguneroko forma dator.
Guztiok Erabiltzaile-izenak eta pasahitzak,
eta guztiok oso txarra izan erabiltzaile-izenak eta pasahitzak, ziurrenik.
>> Pasahitza bera da, hainbat web bada, ziurrenik ez da ideia onena,
seihilekoa amaitu aldera eztabaidatu dugu.
- Txantxa ez al duzu itsaskor ohar bat idatzi zure monitore,
hori ere ez du zertan onena diseinua baina nahiko fenomeno arrunta.
Eta ez bada ari zaren kriptografia erabiliz zure pasahitzak enkriptatzeko,
bereziki zaurgarria dira.
Beraz, bada super ari zaren izatea clever ezkutuko Word dokumentua izatea dela uste duzu
nonbait zure disko gogorrean zure pasahitzak guztiak
baina karpeta bat da, inork ez du begiratu, hori ere ez da oso segurua mekanismo bat.
Eta beraz, zer pset2 egingo aurkeztu kriptografia artea
eta, beraz, informazio scrambling pasahitzak bezalako gauzak dira guztiak segurua.
Testuingurua hemen datuak insecure
enkriptatzeko eta da Scramble aukera bat dator.
Eta, beraz, hau, adibidez, enkriptatutako mezu baten adibide bat da.
Honek ingelesez zerbait dio, baina argi eta garbi, ez da erabat bistako.
Eta full circle etorri dugu gaur egun, zer da hau sekretua here gain tease.
Baina ordenagailu mundu erreala, gauzak ez dira, nahiz eta itxura English esaldiak behar bezala agian.
Esate baterako, hau da, estandar bat da, Linux edo Mac edo UNIX ordenagailu aurki ditzakezun
fitxategi batean Garai batean pasahitzen fitxategia izeneko gainean.
>> Gaur egun beste toki batzuetara mugitu.
Baina sistema bat leku egokian begiratuz gero, ikusiko duzu, ez bakarrik zure erabiltzaile-izen
edo sistemako beste pertsona batzuk, baina beren pasahitza enkriptatu bat ikusiko duzu.
Izan ere, hitza kriptan hor hurrengo stuff enkriptatuta dago,
eta letrak itxuraz ausazko eta pertsonaiak eta zenbakiak serieak eta abar
bakarrik, oro har, sekretu batzuk ezagutu ahal izango desenkriptatu
hitz sekretu bat, zenbaki bat sekretua -
eta, beraz, hain zuzen ere, kriptografia, azken finean, irakiten behera artea Nolabaiteko fidatzen
eta beste norbaitek zerbait ez jakitea.
Beraz, hau esploratzen dugu gaur, eta pixka bat gehiago detail eta pset en etorri.
Eta orain, pass / huts hitz bat.
Batez ere batzuk pset1, Appliance sartu dived
eta zeure burua mundu berri bat, frustrazio eta nahasmena konturatzen
eta zailtasun tekniko besterik ez dira nahiko espero da,
batez ere pset lehen, non ez da hainbeste berri,
besterik ez ezagunak ls eta cd eta arcane komandoak horiek guztiak
eta ingurune berri bat, eta hori da, material benetako eta bere burua Egitarauaz bereizita.
Beraz, konturatu ere ez dira, zalantzarik gabe, bulegoko ordu laguntza egitura bat bezala existitzen.
>> Sailak datozen igande honetan hasiko dira.
Baina garrantzitsuena, ari zaren hori ez da munduko sentitzen bada,
konturatzen benetan du denbora hartu.
Eta aukera hau ez da urte ago me klase sakon bat hartu / huts egin.
zintzotasunez, nahiz eta inoiz ez dut izango litzateke ezarri oinez ikasgelan.
Eta hau aldatu ahal izango duzu, arte esan, ikastaroa astelehenetik bosgarrena,
hala badagokio ertzean Oraindik orain, baizik eta konturatzen baino buru batzuen ur guztira,
ez, zalantzarik gabe, kontuan hartu besterik ez gainditu / huts egin aldatuz.
Berriz ere, ez da benetan kultura hemen Harvard gauzak hartzeko pasa / huts egin
guztiontzat benetan nahi geroztik lortzeko edo overachieve,
baina Egia, zerbait saiatzen izarrekin modu bikaina da
agian ez duzu ezagutzen, eta, azkenean, duzu egiten, kasu gehienetan, oso fina,
agian zure harridurarako askoz.
Hormigoizko gehiago terminoak, zer uste dut, oro har, gainditu / huts egin du,
batez ere pset0 baliteke bizi.
10 ordu, 15 ordu, 25 ordu jarri pset batean
eta besterik ez duzu zure burua banging hormaren kontra eta super lortzean berandu da gauez
baina hartu duzun bidea pset% 90, eta ezin besterik ez duzu ez daki gauza bat,
gainditu / benetan ertzean hartzen off hau atsegin klase bat huts egin,
non ordenatzeko dezakezu zorionez esan, "Ongi da, ez da perfektua ezagutzen dut,
baina nire ipurdian lan egin nuen off hau, non bukatu nahiko pozik nago "
eta horrek itxaropenak bete egingo pass / huts egin.
Beraz, kontuan mantentzeko ez. Guztiak eskubidea.
>> Dutenei borrokatu Harvardeko Unibertsitateko Wi-Fi erabili Beraz,
jakin bat dagoela CS50 SSID, Wi-Fi konexioa, inguruan flotatzen
hobeto zorte izan dezake.
Little ironiko bat da honentzako pasahitza, hau konektatzean saiatu nahi baduzu, gustatuko litzaiguke
12345, modu guztiak eta utzi ez hobea badakizu - abiadura hobea da 8
8 5 baino gehiago segurua delako.
Beraz, behar duzun Wi-Fi pasahitza izanez gero, CS50 konektatu hari hemen, 12345678,
CS50 post eta eztabaidatu aldizkako konektibitatea gaiak baduzu ere,
eta eskumenak espazio honetan jakin dugu. Guztiak eskubidea.
Beraz, azkar bat teaser, bereziki direnek gauzak Apple guztiak fan neska-mutilak edo.
Zer sortu zulatu dut urte batzuk atzera fitxategi hau izan da hemen, iUnlock.c
mota egin zehatzagoak eta konplexuagoak
C oinarrizko programak dira idazten dugu batzuk.
Beraz, fitxategi hau ireki nuen, iUnlock.c. Eskuragarri gaur egun orria Hitzaldiak on da.
Ezkerraldean On funtzioen zerrenda luze bat ikusten duzu.
Beraz, nork idatzi hau idatzi fellow funtzio asko, just nagusia baino gehiago.
Liburutegi sorta osoa bat erabili zuen hemen, eta hasten badugu scrolling bidez,
hau benetan da jatorrizko iPhone, nire ustez, oso crack lehen.
>> Jatorrizko iPhone jailbreak nahi duzun untether AT & T esan nahi du, eta horrek
eta benetan berezia software instalatu eta Apple ez duten pertsonek egin nahi gauzak egin,
norbait izan denbora irudikatu zehazki nola software flaws ustiatu izan dute,
akatsak, bugs, Apple software, eta, horrela, jaio zen iUnlock.c--
konpilatu baduzu, zure ordenagailuan eta iPhone bat gainean instalatu
izan zen, adibidez, USB kable baten bidez zure ordenagailuan konektatuta
luke administrazio edo zure iPhone root pribilegioak
eta utzi pretty askoz ere nahi duzuna egin duzu.
Eta beraz, ez da hau liluragarriak katua eta saguaren joko
Apple eta munduko gainerako bereziki gisa artean, enpresa askok bezala,
saiatu beren stuff blokeatu behera, beraz, besterik ez dezakezu egin dutena asmoa.
Baina hau atsegin dute eta behe-mailako xehetasunak ulertzeko esker
eta, kasu honetan C programazio eta asko ezagutzen eraikuntzen
Behin hasi ginen jolasten, gai benetan hardware leverage
modu egoki eta ez erakunde batzuk derrigorrez ikusiko duzu.
Horrela, esate baterako, ideia ez daukat zer hori guztia egiten ari da,
baina GetVersion nahiko erraza dirudi,
eta funtzio bat pertsona hori idatzi dirudienez.
Argumentu gisa osokoa mota batzuk behar izaten ditu, ez du ezer egin,
baina begizta begizta hemen eta baldintza izanez gero, egoera break bada, agertzen
eta, nolabait, bertsio zenbakiak behera joan gara,
nahiz eta hitz hauetako asko berriak izango dira.
Eta hemen funtzio asko ez dugu inoiz ikusi, eta agian ez du inoiz ikusi
seihilekoan zehar.
>> Egunaren amaieran, arauak eta logika berean jarraitzen du, izan ditudan dugu, beraz, orain arte jolasten.
Beraz, hau da, orain arte zaharregia zure iPhone 4S edo laster 5s 3s edo egun hauetan crack,
baina hori guztia mundu honetan oso eratorritako ditudan sartu dived.
Ikus dezagun begirada apur bat gehiago adibide erraz bat:
ko honetan, berotu ahal izateko sintaxia batzuekin batera, eta, gainera, beste zenbait datu-mota
Nik ez dugu hitz egin, baina ez, benetan C. ikusi
Izeneko fitxategi bat positive1.c da, eta goialdean iruzkinak bakoitzeko,
hori eskatzen du, erabiltzaile bat ematen duten zenbaki positibo bat.
Beraz, loop do-bitartean, hau da, erabiltzaileak programa interaktibo nice adibide bat da
non erabiltzaileari esan behar duzu zerbait egin,
eta ez badira ez kooperatu Yell horiek edo haien sarrera ukatzeko.
Puntu Case: lerroak egiteko 19 24 bidez dut
hain luze, erabiltzaileak ez du zenbaki positibo bat eman dit.
Xehetasun hau hemen on line 18, zergatik n deklaratzeko I begizta honetan guztian eraikitzeko gainetik
ondoan line 22 non benetan axola I n aurrean? Bai.
[Ikasleak] Scope. >> Bai, eta, beraz, esparrua gai honetan.
Eta layman bere terminoetan, zer ez esparrua ikus?
Bai. >> [Inaudible ikaslearen erantzuna] >> apur bat ozenago hitz egiten duzu?
[Ikasleak] Non aldagai hori eskuratu ahal izango duzu. >> Perfect.
Non bereziki aldagai bat sartu ahal izango duzu.
Eta, oro har, arau, beraz, orain arte izan da aldagai batzuen esparrua
kizkur berrienak giltza duzula ikusi definitzen da.
>> Eta, beraz, kasu honetan, n geratuko line 22 oker egin nuen bada, lerro horretan lan egiteko.
Int bat lortu nahi dut, eta ipini nahi dut, hori aldakorra n sartu line 22
baina kode-lerro izan ez daki zertaz ari naiz? >> [Ikasleak] 25.
[Malan 25], eta bihurtzen da, 24 baita, kasu honetan, kizkur giltza kanpo delako.
Beraz, apur bat gogaikarriak pixka bat, baina oso erraz, besterik gabe, aldakorra geratuko konpondu
funtzioa bera kanpo.
Geroago, gaur egun ikusi dugu pauso bat gehiago dezakezu
eta apur bat alferrak ahal izango duzu ere.
Eta hori ez da, oro har, gomendatzen da, baina ezin duzu alferrak
eta aldagai bat jarri orokorrean, beraz, hitz egiten ez barruan funtzio bat, ez begizta barruan,
baina fitxategia bera, funtzio guztiak kanpo idazten duzunean, egin nuen hemen 15 on line.
Hau da, oro har, frowned gainean, baina konturatzen batzuetan arazoak beste irtenbide bat da,
dugu azkenean ikusi.
Beraz, orain utziko dugu hau atsegin dute, baina hau berridatzi bada ikus dezagun
geure burua adierazteko apur bat ezberdina izan hasteko.
Programa honek, besterik gabe, argi eta garbi, positive1 da.
Dezagun aurrera me hemen, eta nire terminal-leiho batean positive1 egiteko, Sartu.
Biltzen ados. Positive1 exekutatzeko, sakatu Sartu noa.
Eman duzun zenbaki oso positibo bat eskatzen dut. Esan -1 dut. Hau ez da lan egiteko.
0, 99. Badirudi lan egiteko.
Agian ez test zorrotzak, baina, gutxienez, behatu check polit bat da
eskuineko pista Oraindik dugu.
>> Beraz, gaur egun utzi aurrera me eta 2 bertsioa ireki hau,
eta zer desberdina da dagoeneko?
Gauza bera inplementatzen ditu,, baina zer jauzi denbora argi eta garbi desberdina hau?
Berdez boolearra. Berdea, bezala ezagutzen nuen, eta datu-mota bat da hitz hori nabarmentzen da.
Etortzen ez C. bertsio guztiak eraiki
Berariazko liburutegi bat sartu behar duzu.
Gure kasuan, CS50 liburutegia barne dut, beraz, boolearra sarbidea dugu.
Baina, 18 linea, balio bat Boolean deitzen eskertu izan dirudi dugu.
Ezer deitu nuen, baina asko eskertzen izeneko I
mota transmititzea semantikoa esanahia batzuk.
Beraz, hasiera batean, on line 18, itxuraz naiz ez asko eskertzen
boolear balioa asko eskertzen da hasieratu delako line 18 ezezkoan.
Eta gero, zer egin dut hemen, lineak 21 23 bidez badirudi
da, besterik gabe mota berridatzi dut nire logika.
Ez funtzionalki desberdinak Beraz, baina line 22 int, erabiltzaileak emandako egiaztatzeko I
0 baino handiagoa da, eta, ondoren, aldatu besterik ez dut, egia asko eskertzen du balio.
Eta zergatik egin behar dut? Line 25 dela eta, itxuraz, baldintza bat ikusteko noa.
Do begizta hau asko eskertzen faltsua bitartean.
Beraz, version 1 alternatiba hau proposatu dut
da gutxienez apur bat intuitiboago delako, agian, apur bat gehiago ingelesez oinarritutako da.
Beraz, honako hauek egiten ari zaren bitartean asko eskertzen du edo eskertzen faltsua bitartean.
Eta une honetan ere ez itxuraz ez dut axola zer Erabiltzaile idatzitako gogoratu
oharra n aldakorra delako, ez dago, eta, beraz, benetan, zuri apur bat gezur han.
>> Funtzionalki, programa pixka bat desberdina da beheko gara behin
dut ez delako zer n gogoratzeko.
Baina hemen erakusteko nahi dut ere, nahiz eta ikusi dugu GetInt
eta GetString baten eskuinaldean erabili berdin ikurra, beraz, orain arte
gogoratzen dugun balioa, teknikoki, hori ez da erabat beharrezkoa.
Edozein arrazoi dela eta ez besterik ez duzu axola balioa gorde nahi baduzu,
nahi besterik ez duzu balioa egiaztatzeko, nabarituko dugu, besterik gabe, idatzi hau GetInt gisa,
irekita paren, paren itxi.
Funtzioa balio bat itzuli behar dugu, bezala esaten.
Itzuli int bat da.
Eta, beraz, adimen-happening honen ustez,
idatzi 99 I, GetInt kopurua 99 itzultzen du,
eta, beraz, kontzeptu gisa, nahiz eta nire kode ziren benetan da.
Beraz, bada 99 0 baino handiagoa da, hain zuzen, eta gero asko eskertzen du egia bihurtzen da,
ondoren line 25 konturatuko ooh Bukatutakoan naiz orain delako asko eskertzen du,
eta line 26, esan besterik ez dugu ", zenbaki oso positibo Eskerrik asko!"
edozein dela ere gertatu da.
Orain egin dezagun azukre apur sintaktikoak hemen, eta, beraz, hitz egiten.
Ikus dezagun sortu dugu garbitzeko bada lerro hau 25 aldaera hau hirugarren eta azken positive3.
>> Iragarki Ezberdintasun bakarra da kode line? >> [Ikasleak] 25. >> [Malan] Bai, 25.
Eta ez dugu benetan trikimailu hau ikusi besterik ez oraindik, baina puntu astelehena harridura ikusten genuen,
zein lu byte irakurtzerakoan zer? >> [Ikasleak] gabe. >> Not edo ukatzea.
Beraz, boolearrak balio bat hartu, eta bere balioa irauli.
True bihurtzen faltsuak, faltsua egia bihurtzen da.
Hau Beraz, proposatuko nuke, eta, are gehiago, kodea idatzi apur bat gehiago intuizioz da
oraindik I hasieratu delako faltsua asko eskertzen du, oraindik ez dut honako hau,
Egia asko eskertzen ezarri dut denbora ateratzen denean,
baina orain benetan dezakezu besterik ez itzultzeko kodea hitzez ezkerretik eskuinera,
bitartean (asko eskertzen du!); delako bang edo harridura puntu ez ideia adierazten du,
beraz, ez eskertzen bitartean.
Beraz, berriro ere, ez dugu berez kontzeptu berriak sartu.
Hitz Booleans gara itzuli jokatu Scratch dugu,
baina gaur egun konturatzen bakarrik hasi ahal izango dugu gure kodea idaztea hainbat modutan.
Beraz, batez ere, pset1 Oraindik programa batzuk idatzi irudikatu modu borrokan sort izanez gero,
odds Oraindik zorte duzun irtenbideak kopurua edozein izan daitekeelako
gainean gertatuko ditzakezun.
Esate baterako, hori besterik ez da, are gehiago, programak errazena 3. Guztiak eskubidea.
Eta orain gogoratzen, astelehena, utzi ohar hau dugu bueltan balio.
Beraz, lehen aldiz, oso programa bat idatzi dugu, ez besterik ez nagusia;
ere badu bere funtzioa idatzi dut hemen pertsonalizatua.
Beraz line 31 34 bidez ezarri dut kubo funtzio bat.
Ez da konplexua. Besterik ez da * a * a kasu honetan.
Baina, zer buruzko informazio garrantzitsu sarrera naiz duten I forma hartzen
eta irteerako dut itzuli * a * a.
Beraz, gaur egun gaitasuna daukat, askoz ere erabili dut prinf bakarrik bezala,
kubo funtzioa deitzen funtzio hau deitu.
>> Eta kubo funtzioa sarrera bat hartzen du, eta irteera batzuk kubo funtzioa itzultzen du.
Por el contrario, zerbait egin printf besterik ez.
Ez da ezer itzuliko zaintzen dugula, nahiz eta bat alde batera utzita, balio bat itzuli du;
oro har nahikoa da alde batetara utzi dezakezu.
Printf besterik ez zerbait egin dute. Pantaila inprimatzeko albo efektu bat izan da.
Kontrastea hemen, kubo funtzioa, benetan itzultzen du zerbait egin behar dugu.
Beraz, hau ezagutzen, nahiko erraza da ideia bat da.
Baina input pasatzen atzera eta irteerak lortzean ideia honekin ezagutzen gutxiago,
dezagun saiatu zerbait super simple.
Edozeinek erosoa da datozen etapa labur-labur?
Kamera batekin eroso egon baita behar duzu. Bai? Ongi da.
Zein da zure izena? >> [Ikasleen] Ken. >> Ken. Guztiak eskubidea. Ken, zatoz gora.
Ken hemen era askotako funtzio bat izango du.
Dezagun aurrera, eta hori egin. Gaitezen apur fancy bat.
Niza zu ezagutzeaz. Ongi etorri zentro etapa. Guztiak eskubidea.
Dezagun, sakatu botoi hau hemen. Guztiak eskubidea.
Beraz, hemen Edukien moderno bat behar duzu,
eta zer naiz funtzio nagusia da, esate baterako,
eta nik ez dut nire eskua iPad bat.
>> Ez dut gogoratzen nola - Beno, ezin dut esan.
Ez dut benetan ona idazkera
eta, beraz,, beraz niretzat pantaila zerbait inprimatu nahi dut.
Programa nagusia naiz, batez ere, eta hau esan duzu noa
nire oilasko hutsetik idazten, eta, ondoren, sarrera bat pasatuz.
Beraz, silly ariketa hau da, nahiz eta, funtzio kontzeptua eta funtzio bat deituz
eta funtzio bat benetan irakiten itzuli hau.
Nagusia naiz, besterik ez dut printf, aurrekontu-unquote zerbait idatzi pantailan,
Programa hau exekutatzen ari naiz, eta ahalik eta azkarren printf izeneko lortzen,
argumentu bat hartzen du, edo parametro bat batzuetan komatxo artean.
Hemen argumentua da. Pasatzen dut Ken.
Zenbakia Duela zenbait urte idatzia kutxa beltza da
itxuraz bakarrik daki nola inprimatu pantailan gauzak.
Beraz, exekutatu.
Hori ez da txarra. Oso ona.
Beraz, gaur egun, Ken egiten da exekutatzen ari da. Ez du ezer didate itzuli behar zuen?
Ez dela ikusten dugu, beraz, oso urrun.
Berriz ere, printf ez benetan itzultzeko zenbaki bat, baina oraingoz hori alde batetara utzi dugu
Nik ez dugulako inoiz erabili. Beraz, Ken da.
, Eta, beraz, gaur egun nagusia, programaren kontrola hartzen du berriro
kode-lerro horretan, printf delako, egiten da exekutatzen ari da.
Eta gure bidean joan gara, beste edozein lerro daude exekutatzean.
Beraz, gaur egun dezagun saiatu apur bat beste adibide bat.
Oraingo honetan, hemen utzi lehen pantaila garbitu, eta une honetan cubing funtzioa egin dugu,
baina oraingo honetan, irteera balio bat espero dut.
>> Beraz, dezagun aurrera, eta hori egin.
Orain, kode lerro dioen x x kubo lortzen daukat.
The kodearen line, abisuaren, itxura hau du: x = kubo (x);
Beraz, zer da hau? Dezagun aurrera eta pantaila bat emango dizu zuri berriro.
Idazteko x balioa noa
denbora une honetan gertatzen da izango, demagun, 2 simple mantentzeko.
Idatzi dut paper 2 balioa, nire balioa x.
Entregatu I Ken. >> Eta nik idatzi erantzuna? >> Bai, dezagun erantzuna idatzi.
Ongi da. Eta orain me itzultzeko zerbait du. Perfect. Niza segue.
Beraz, gaur egun me eskuak zuen atzera 8 balioa kasu honetan, eta zer egin dut?
Egia esan dezagun ikusteko, eskubide hori lortzeko. Zer da egin behar dut?
Orain balio hau hartu eta, benetan, gordetzeko memoria bera bit horietan noa.
Baina hemen borrokan ari den mota konturatu naiz.
Apur bat nahastu naiz non ez idazteko delako benetan I x balioa,
zer fisikoki eskuko Ken 2 balioa izan duen paper bat besterik ez dut egin delako,
den x izan zen, eta, hain zuzen ere, hori da, hain zuzen, zer gertatu zen.
Beraz, izarrekin bihurtzen da, funtzioa deitu eta argumentu bat pasatzen duzu
kaixo bezala, mundu edo argumentu bat pasatzen duzu 2 bezala,
, oro har,, argumentu horren kopia bat pasatzen ari zaren.
Eta, beraz, bezala idatzi nuen hemen kopurua 2 eta entregatu to Ken
hori oraindik daukat balioa 2 kopia bat nonbait esan behar
hain zuzen ere, gaur egun ahaztuak ditudan atzera balioa 8 izango delako, atzera joateko RAM behar dut
eta benetan idatzi 8 I once kopurua 2.
Beraz, ikusmen, gogoratu pasatuz, literalki, balioa kopia bat ideia hau.
>> Ken du bere gauza, nirekin zerbait - Kasu honetan 8 bezalako balio bat
eta, ondoren, balio duten zerbait egin behar dut eta nahi dut mantentzeko inguruan.
Beraz, hori guztia atzera etorriko da luzeegia aurretik ezagutu behar dira.
Eskerrik asko demo hau hemen, Ken. [Txalo]
Oso ondo egiten da.
Dezagun nola, azken finean, funtzio ditudan dugu hemen egiten deituz batzuk ikus-en.
Dezagun aurrera eta gurekin eraman itzuli cubing adibidez hemen.
Ohartu nahi dugu, benetan hasteko gehiago nahi izanez gero hau hartzen bada,
Izan ere, kopurua x ari den hemen pasa mindful izan behar dugu
zer benetan pasa ari funtzioa desberdina da.
Beraz, berriro ere, kopia pass hau da, une bat besterik ez nahiko germane bihurtu.
Dezagun begirada bat zerbait ez nahiko lan egiteko eskubidea oraindik.
Aurretik joan eta hirugarren buggy Adibidez, izaera flawed ireki noa,
eta deitzen buggy3 eta, aldaketa funtzio bat ezartzen du.
Hona hemen funtzio nagusia dela x eta y arbitrarioki 1 eta 2 hasieratu, hurrenez hurren egin behar dugu.
Erabili izan GetInt dugu,, baina simple ariketa bat besterik ez dugu behar,
beraz, 1 eta 2 hard-kodetuak da.
21 eta 22 lerro, inprimatu itxuraz dugu x eta y, lerro bakoitzeko 1.
Gero, 23 on line, balio aldaketa horiek naiz, dot, dot, dot aldarrikatzen dut.
24 izenekoa swap 2 argumentu lerro bat funtzioa deitzen dut, itxuraz.
Erabat egiaztatzeko funtzioak 2 argumentu hartzeko. Printf egin du dagoeneko ikusi dugu.
>> Beraz, swap itxuraz hartzen x eta y, eta bere izena dioen bezala,
Espero duela 2 balio horiek swap egingo nuke.
Orduan diotenez, on line I 25 "truka!" eta x eta y berriz ere inprima I
hipotesi Nik, egia esan, truka pean.
Baina, egia esan, I exekutatu programa hau ireki me terminal-leiho bat,
utzi buggy3 egiteko me izen gisa iradokitzen du, hau da, ez dago ondo amaitzeko
Sartu hit I, konturatu x 1, 2 y delako da,
Programaren amaieran eta oraindik, oraindik dira, hain zuzen ere, gauza bera.
Beraz, manifestazioaren oinarritzen oraintxe Ken, zer ari den benetan gertatzen ari da?
Dezagun trukatzeko funtzio honetan sartu murgiltzeko. Super laburra da. Bakarrik da kodea luze lerro batzuk.
Baina, zer esan hemen Ken istorioa simple oinarritutako funtsezko arazoa?
Zergatik hautsi da swap?
[Ikasleak] kopia bat, ez da aldagaia gordetzeko ari zara.
Hain zuzen ere. Kopia bat ari gara, gordetzeko ez da aldagaia bera.
Beste era batera esanda, swap itxuraz 2 argumentu, int,
eta arbitrarioki eta b deitzen,
eta hemen x eta y dira, hurrenez hurren, 1 eta 2. dut gainditu,
baina ez dut literalki x igarotzean, ez dut literalki y pasatuz,
X eta y kopia bat kopia pasatzen dut.
Da ia, nahiz eta gisa eta kopiatu swap itsatsi
balioak benetan manipulatu nahi duzun.
Beraz, bada, kasu, line programa Irteeran I exekutatzean 35 ondoren, 36,
line 37 I, istorioa Puntu honetan, zer baten balioa?
Istorioa Puntu honetan, line 37, zer baten balioa puntu honetan da? >> [Ikasleak] 1.
[Malan] besterik ez izan behar da 1, eskuinera, x lehen argumentua onartu zen delako,
eta funtzio hau bere lehen argumentu bat besterik ez arbitrarioki deituz.
Era berean, bigarren argumentua Y da, eta besterik ez da arbitrarioki, bigarren argumentua b deituz.
>> Dikotomia hori benetan nahiko besterik gabe, azaldu du. Pentsatu.
Gurekin ez nork idatzi printf pertsona bildu,
beraz, ziur aski, berak ez daki zer gure aldagai 30 urte geroago deitzen zaie egingo du.
Beraz, zer deitu funtzioak idazten ari zaren aldagai arteko bereizketa bat izan du
eta zer funtzio edo deitzen ari zaren erabiliz aldagai deitu.
Beraz, beste era batera esanda, idatzizko dut nire aldagai x eta y
baina beste norbaitek idatzi zuen swap funtzioa zuen, zalantzarik gabe, ez luke jakin
nire aldagaiak deitzen dira egingo,
beraz, zergatik duzu izen dualtasun hori dela konturatzen.
Teknikoki, hau egin izan nuen, kasualitatez,
baina, hala ere kopia gisa pasa da.
Besterik ez litzateke kasualitatea hutsa izan estetikoki idatzi duten swap
zuen izen bera erabili.
Beraz, istorioa Puntu honetan, line 37, 1, b 2 da, eta gaur egun horietako swap jarraitu dut.
Lehenik eta behin, utzi benetan me hau askoz gehiago, besterik gabe.
Ez dakit zer 3 kode lerro horiek egiten.
Do me honetan: b = a, a = b; egiten da.
Zergatik da hondatutako, logikoki?
Intuitiboa gauza mota da, ezta?
Horrela, bihurtzen da b eta b bihurtzen da bat,
baina arazoa da, ahalik eta azkarren line 37 exekutatzen dela, eta b balio?
Bera, 1, clobbered delako, eta, beraz, hitz egiten, aldatu dituzun b bat berdinak.
Beraz, behin line 37 exekutatu du, handia da, gaur egun kopurua 1 2 kopia
funtzio honen barruan, beraz, orduan, esan line 38 a = b,
zu mota izorratu ari zaren besterik ez delako 1 esleituz 1.
Mota duzu buruz zaintzen duzun balioa galdu.
Beraz, honen jatorrizko bertsioa, eta, konturatu zer egin nuen.
Kode-lerro izan ordez I hirugarren dirudi.
Aldi baterako aldagai bat deklaratzen dut.
>> Tmp aldi baterako aldagaiaren izena oso ohikoa da, eta int da
ditu, kopia bat egin nahi dut dator delako.
Tmp barruan kopia gordetzen dut, beraz, behin line 37 exekutatu
baten balioa azkar behatu check - 1, b balioa 2 da,
eta tmp balioa da, halaber, 1.
Beraz, gaur egun line 38 exekutatu dut.
Behin line 38 exekutatzen, b balioa hartzen du. Eta b 2 izan zen, beraz, bat da gaur egun 2.
Istorioa Puntu honetan, 2, b 2 da, eta tmp 1
beraz logikoki, besterik ez plop tmp balioa b sartu ahal dugu, eta egiten gaude.
Beraz, arazo hori konpondu dugu.
Zoritxarrez, programa hau exekutatzeko I inprimaki hau, ez du benetan trukatzeko balio.
Baina argi eta garbi izan, zergatik?
Logikoa arazoa konpondu dut, une bat besterik ez duela,
baina berriro ere, programa hau exekutatu bada, x eta y gelditzen dira
programaren exekuzio amaiera.
[Inaudible ikaslea comment] >> itzuli ez dugu ezer, eta, beraz, hori egia da, beraz.
Baina arazo bat apur bat hemendik, beraz, delako orain arte bihurtzen da,
gauza bakarra itzultzeko gai izan gara, gauza bat da, eta C. murriztea da
Itzultzeko balio bat benetan, horrelako mota itsatsita hemen nago
x balio berria I itzuli delako edo y balio berria itzuli izan dut,
baina atzera, bai nahi dut.
Beraz, itzuli egin da eta ez da erraza irtenbide hemen.
Baina arazoa, batez ere, zergatik da? Zer egin trukatuko dugu benetan?
[Ikasleen] a eta b. >> A eta b.
Baina eta b x eta y, horrek esan nahi du, egin dugu lan hau guztia kopiak dira,
3 minutu igaro besterik ez dugu swap funtzioa eta 3 aldagai horiek guztiak buruz hitz egiten,
eta hori handia da, erabat zuzena bakarka,
baina a eta b-ren esparrua, lerro hauek hemen bakarrik da.
>> Beraz, begizta bat bezala, deklaratzeko osokoa bada i begizta barruan,
era berean, ari zaren bat eta b funtzio baten barruan duzula idatzi geratuko bada,
funtzio hori bakarrik baliozko barrutik ari dira, horrek esan nahi du, ahalik eta azkarren swap egiten da exekutatzean
eta joan line 24 line 25, x eta y ez da aldatu guztietan.
Aldagai kopiak aldaketa bat denbora asko alferrik galtzen besterik ez duzu.
Beraz, izarrekin bihurtzen da konponbidea dela, ez-bistako.
Ez da nahiko nahikoa balio itzuli ahal izango dugu soilik 1 balioa itzultzeko,
eta ez dut nahi bai x eta y trukatzeko, aldi berean,
beraz, itzuli honetan izan dugu.
Baina orain konturatzen arazoa funtsean Izan ere, a eta b dira kopiak eratorritako
dira, eta beren esparrua propioa dute.
Dezagun saiatu hau nolabait konpontzeko.
Dezagun benetan joan me back hemen eta ireki,, demagun, laugarren aldaera, buggy4.
Zer da hau?
Stab bat hartuko dugu aurretik arazo horri irtenbidea bilatzeko arazoa antzekoa da, baina errazagoa da.
Programa hau deitzen da gehikuntza, eta itxuraz initializes x zenbaki oso bat 1 line 18.
Ondoren, diotenez, I x 1, diotenez, gero dut "... Incrementing"
Deitu ondoren I gehikuntza, baina gero, 22 eta 23 lerro izan da, handitutako aldarrikatzen dut,
2, zentzuzkoa - x da, edozein dela ere da aldarrikatzen dut, baina programa honen buggy.
Zein da arazoa?
Bai. >> [Inaudible ikaslearen erantzuna] >> Zehazki.
Beraz, x izendatu, jakina, lerro 18.
Nagusia giltza kizkur barruan dago.
Beraz, erantzun sinplea hemen den bitartean, x existitzen da hemen,
line 32 existitzen ez du, beraz, programa hau benetan ere ez konpilatu.
Konpilatzailea kode hau konpilatzean saiatu I me at Yell
identifikatzaile batzuk undeclared edo eragina duten zerbait buruz. Izan ere, dezagun saiatu.
Hau da egin buggy4. Hor dago.
Erabili line 32 undeclared identifikatzailea 'x'.
Eta, benetan, dezagun esplizitua gehiago izateko hemen, gaur egun, beraz, hau oso erabilgarria da
bulegoko ordu eta etxean.
>> Oharra cryptically idatzi apur bat.
Baina Clang duela gurekin yelled, buggy4.c esaten: 32:5, da, benetan erabilgarria.
Errorea posizioa 5 karaktere at line 32 esan nahi du.
Beraz, 1, 2, 3, 4, 5. Hori da, hain zuzen ere, non da arazoa.
Eta gainera, ere, kontuan hartu, bulegoko ordu eta etxean, zortea dut hemen.
Bat neurtu behar dut. Konpontzeko nahiko erraza izango da.
Baina pantaila osoa error jasanezinak mezuak izanez gero,
berriro konturatzen beheragoen bat izan nahiko luke agian lehenbiziko sintomatikoa.
Beraz, beti Chase behera goiko behera zure bugs
agian besterik ez delako daisy kate efektua
hori modu arazoak benetan baino ez duzu proposatuz.
Beraz, nola konpondu dugu, nire helburua da x Kontatzailea nahi izanez gero? >> [Ikasleak] x global.
Ongi da, eta, beraz, x global egin ahal izango dugu.
Dezagun duela ohartarazi dut lasterbide lehenago,, baina arraioa, quick fix bat besterik ez dugu behar,
beraz, besterik gabe esan int x sortu hemen. Horregatik, x global.
Beraz, gaur egun nagusia da sarbidea, eta gehikuntza sartzeko,
eta beraz aurrera me eta konpilatu gaur egun.
Egin buggy4, Sartu. Dirudienez, gaur egun biltzeko.
Dezagun exekutatu buggy4. Eta benetan lan dirudi.
Horiek egin nik esan bezala, gauza bat da, ez dut,
Nik ez dut egin hemen, izan ere, oro har,
gure programa askoz ere interesgarri eta hori baino askoz gehiago da,
eta zure bizitzako arazoak konpontzeko jarri besterik ez bada zure koadernoan goialdean, aldagai guztiak
Oso azkar ez programak lortu horrifically zaila kudeatzeko.
Zailagoa daukala uste aldakorreko izen berriak,
gogorragoa egingo du aldagaia da zer egiten ari ulertzeko,
eta, beraz, oro har, hau da, ez da ona konponbide bat.
Beraz, egin dezagun hobeto.
Ez dugu nahi hemen aldagai global bat erabili.
>> Nahi ez dut x Kontatzailea, eta, beraz, jakina, ezin izan dut -
egunaren bukaeran, honetan silly istorioa mota besterik ez da hau egiten dugu delako
baina ez nuen operadorea buruz jakin edo ez nintzen nagusia bera aldatzeko baimenik
nola bestela ezin Ken ezartzeko dut hemen baino gehiago une honetan ez da kubo baina Kontatzailea?
Nola gauza hau aldatu dut hemen? Bai.
[Ikasleak] x Pass eta gero itzuli [inaudible] >> Ados, ona da.
Beraz, zergatik ez pasatzeko x I eta ondoren baino itzultzeko
zergatik ez x + 1 besterik ez dut itzuli ez.
Pare bat gauza gehiago hemen aldatzeko. Eskuineko pista nago.
Zer gehiago Tweak behar dut? Beste norbaitek. Bai.
[Inaudible ikaslearen erantzuna]
Ez duelako gal gehikuntza itzulera mota aldatu behar dut.
Void bide ezer ez da itzuliko, baina argi eta garbi da,
beraz, beharrak hau aldatzeko - >> [ikasleak] int.
INT edozein izanda ere, benetan ari naiz itzultzen koherentea izan.
Orain, beste zerbait da, oraindik ere buggy hemen. Bai.
[Inaudible ikaslearen erantzuna] >> [Malan] x Kontatzailea Beraz, behar dut?
[Inaudible ikaslearen erantzuna] >> [Malan] Ah, eta, beraz, x gainditu behar dut.
Beraz, hau egin behar dut hemen. >> [Inaudible ikaslea comment]
[Malan] Beraz, prototipoa, hau aldatzeko Hemen daukat.
Hau int bat bihurtu da, beraz, hau da bihurtu
hmm, I actually bug bat behera hemen. Dezagun konpondu hau lehen aldiz.
Zer egin behar hau benetan? Handia lortu int zerbait bat izan nahi du.
X izan daiteke, baina Egia, hasten zara zure aldagaiak x guztiak deitzen baduzu,
gero eta gutxiago argia lortzeko, hau da, zein da.
>> Hargatik arbitrarioki aukeratu izendatzeko hainbat hitzarmen bat nire helper funtzio,
funtzioak idazten dut. Deitu dugu, edo deitu izan dugu
Dezagun dei zenbaki are gehiago esplizitua izan.
Orduan edozein zenbakia da plus 1 itzuli behar dut,
eta, gaur egun, beste gauza 1 aldatzeko sortu behar dut hemen, eta beste gauza bat sortu hemen.
Zer line 21 lehen aldatu behar dut? >> [Inaudible ikaslearen erantzuna]
[Malan] esleitzeko x daukat. Ezin dut deitu-gehikuntza (x).
X balioa aldatzen ezkerraldean erantzuna gogoratu behar dut.
Eta nahiz eta x da gaur egun ezkerreko eta eskuineko, guztiz fina
eskuinaldean denean exekutatu duelako lehenengo ondoren lortzen ezkerreko gauza sartu plopped
Kasu honetan x.
Eta gero, azkenik, hau erraza fix bat da gaur egun.
Hau besterik ez datoz bat zer behera beheko, int kopurua.
Benetan ergelak funtzio aldaketa sorta oso bat, beraz,
baina gauza izango gara, gero eta gehiago nahi ez ordezkari.
Beraz, egin buggy4. Izorratu dut nonbait.
Oh, ene Jainkoa. Bost akatsak 6-line programa bat.
Beraz, zer gertatzen da on line 18, pertsonaia 5?
Beraz, int hau deklaratu behar dut.
Ikus dezagun. Badira beste erroreak sorta oso bat.
Oh, ene Jainkoa - 19, 18, 21, baina berriro ere, dezagun garbitu pantailan, Kontrol L,
eta Clang berrabiarazi.
Beraz, 5 arazoak besterik ez da 1 da, benetan.
Beraz, gaur egun dezagun exekutatu buggy4, Sartu. Whew, x izan da handitutako zuzena.
Guztiak eskubidea. Zenbakiak nola Kontatzailea edozein galdera? Bai.
[Inaudible ikasleak galdera] >> Ona galdera.
Nola da dut aldatu x kopurua eta programa ezagutzeko aukera izango berehala?
>> Berriz ere, uste abstrakzioa hau.
Beraz, I am nagusia bada, eta Ken gehikuntza da, Egia, ez zait zer Ken bere iPad deiak.
Ez zait ezer bere funtzionalitate hau ezartzeko egin duen zer deiak zuen.
Bat ezartzeko, I nagusiak, ez dute axola buruzko xehetasunak.
Eta horrela, besterik gabe, aldatzen ondokoengatik funtzioaren barruan zenbaki hemen eta zenbaki hemen
hain luze birkonpilatzeko dudan bezala hartzen du.
Sort nahi da uste baduzu gutako askok, horiek gidatzeko lizentziak
duten gidatzen duzun edo, nahiz eta auto bat gidatzen,
gurekin gehienak ez daki nola auto bat kanpaia azpian lan egiten dute.
Eta literalki, ireki baduzu kanpaia, gurekin gehienak neure burua barne -
ez dira benetan jakin zer bilatzen ari gara,
dezakezu eskubide hori atsegin stuff sentitzen mota.
Baina ez dugu benetan autoa nola funtzionatzen duen zaintzeko,
ez dugu axola zer hagaxkak eta pistoiak eta kableak autoaren barruan
dira benetan ari.
Pistoiak ez du axola hemen kasu honetan deitu antzeko zerbait, beraz. Same idea.
Bai. >> [Inaudible ikasleak galdera]
XA aldagaia une erabilera gehiago daude, duela
duzu, programatzailea, horiek aldatzeko nonahi izango litzateke.
Edo literalki izan duzu File, Menua, eta, ondoren, bilatu, ordeztu - horrelako zerbait
baina aldaketa horiek eskuz egiteko zoaz.
Koherentea izan behar duzu. >> [Ikasleak] hainbat aldagai bada [inaudible]
Hemen bezala ordena jakin bat, hau izan zen INT beste zenbaki bat? >> [Ikasleak] zuzena.
[Malan] Bai. Agindua axola funtzioa deitzen ari zaren.
>> Beraz, bada gehikuntza ziren I deituz hemen zerbait koma zerbait,
zuzeneko kartografia.
Lehen aldagaia, edozein izenekoa, kopia bat egiten da hemen lehen argumentua.
Sentitzen dugu. Honek ez luke parentesi bat izango da.
Bigarren argumentua lerro bigarren bat. Ordena Beraz, bai, garrantzitsua da. Guztiak eskubidea.
Sentitzen dugu. Iritsi bide luzea hartu nuen. Beste galdera? Guztiak eskubidea.
Beraz, ikus dezagun, ezin dugu bada zer benetan hemen argazki bat margotzeko
kanpaia azpian, eta, beraz, hitz egiten.
Laukizuzen bat da, zure ordenagailuaren memorian irudikatu dezake.
Nahiz eta ideia ez duzu nola funtzionatzen memoria edo nola RAM lanak,
gutxienez bere gain hartzen duzula sortak da egun hauetan.
Duzun got megabyte, baina dituzun gigabyte da,
eta jakin dugu aste 0 byte bat besterik ez da, zer? >> [Ikasleak] 8 bit.
8 bit, ezta? Beraz, 8 zero eta 1.
Beraz, bada, zure ordenagailuan RAM emandako makrokontzertuak, 2 RAM kontzertuak egun hauetan,
milioi edo 2 milioi memoria byte edo gutxi gorabehera 8 milioi edo 16 milioi bit behar duzu
zure ordenagailuaren barruan.
Little Wooly Willy adibidez ez bezala, ez da partikula magnetikoak normalean gehiago.
Gero eta gehiago - eramangarrietan gutxienez egoera ona unitate, SSDs da,
Atal higikorrak ez besterik ez. Elektronikoa da. Guztiak elektrizitate-oinarritutako.
Beraz, laukizuzena pentsatzea besterik ez, 1 edo 2 gigabyte memoria duzula ordezkari gisa.
>> Beraz, memoria zatia da.
Informatika munduan du sort partizioak off
memoria zatiak hainbat gauza egin.
Esate baterako, zure ordenagailuaren RAM bada, bertan laukizuzen iradokitako
bihurtzen da hitzarmen hori, zure RAM goialdean, nolabait esateko,
da, oro har, zer izeneko testu-segmentu bat.
Dutenek 0 s eta 1s duzula konpilatu dira.
Beraz kanpaia azpian dugu begiratu zer a.out da,
0 s eta horien 1s, programa bat exekutatzen baduzu,
0 s eta 1s duten zure disko gogorrean, zerbait izeneko RAM kargatu sartu dira,
eta RAM goialdean jarri dira.
Bien bitartean, beste gauza batzuk duzu: hasieratu datuak, uninitialize datuak.
2 memoria swaths dutenek aldagai global, ez duzu askotan erabili dira
baina batzuetan egiten baduzu, azkenean han baita.
Ingurune-aldagai, ez dugu pasatzeko denbora asko, Ondoren, beste zenbait gauza
baina gero 2 gauza garrantzitsu bat atzera etorriko da seihilekoan zehar,
pila eta zeure.
Zure ordenagailuaren memoria gehien Beraz, programa bat exekutatzen erreserbatuta dago
izeneko zerbait pila eta zerbait zeure deitu.
Ez ari gara gaur egun zeure buruz hitz egingo, baina pila buruz hitz egingo dugu.
Pila da ondorioz sortu conjure jantokia bazkari erretiluak ikus Mather House
edo lekuan izango gertatuko duzu non jantokia langileek garbitu, egunero,
pilatu dute solairuan gora,
eta, era berean, memoria, pila bat jarriz zerbait ideia hau da,
pila bat jarriz, zerbait zerbait pila bat jarriz.
Eta zer esan nahi dugu?
>> Dezagun zoom argazki honen erdia besterik ez, txikiagoa izango da, zure ordenagailuaren RAM,
hauek proposatzen.
Bihurtzen da a.out edo kaixo bezalako programa bat exekutatzen baduzu -
edozein programa duzula idatzi
berriro ere, 0 s eta 1s zure disko gogorrean, eta epe luzeko biltegiratze kargatu dira,
egonaldiak ez denean ere plug tira, RAM kargatzen duzu.
RAM disko gogorretan baino azkarrago, disko gogorretan baino txikiagoa da
baina programa non bizi zaren exekutatzen ari da.
Beraz, egin klik bikoitza Mac edo PC programa bat, RAM sartu disko gogorrean kargatu.
Ahalik eta azkarren kargatzen dira RAM, modu goialdean go 0 s eta 1s
deiturikoak testu-segmentua, baina, ondoren, bezain laster, zure programa benetan hasten da,
funtzioa nagusia deitzen da, eta nagusiak, ikusi dugu, askotan aldagai lokalak ditu,
ints eta kateak eta karakteretan eta atsegin du.
Beraz, zure programa duzula idatzi edo programa bikoitza bertan klik egin duzula bada
erabiltzen diren aldagai batzuk nagusiaren barruan,
Zure memoria-pilaren beheko aldean amaituko dute, eta, beraz, hitz egiten.
Zehazki, zer du horrek benetan esan nahi?
Horrek, besterik gabe esan nahi du byte RAM ordenagailuan ginen bada,
nabarituko byte zenbaki hori 0 izan daiteke, hau byte multzoko 1, 2, 3, 4, 5, 6 izan daiteke,
2 milioi modu guztiak, han goialdean guztiak izango litzateke.
Beraz, beste era batera esanda, RAM edo memoria buruz hitz bytes dagokionez,
esan nahi du, besterik ez da norbaitek erabaki du zer memoria zatiak horietako bakoitzean kopurua.
Beraz, int bat 32 bit behar duzu edo 8 char bat bit behar duzu,
non amaituko dira memorian?
>> Kontzeptualki, amaitzeko, besterik ez dute pila izeneko gauza hau, behealdean.
Baina zer da interesgarria gaur egun funtzio nagusia deiak
demagun izeneko funtzio bat foo, izen bat besterik ez arbitrarioa
zer gertatzen da nagusia memoria pila honen behealdeko da;
foo nagusiaren gainean jarri memorian.
Edozein foo amaitzeko kontzeptualki nagusian goiko sort Beraz, aldagai lokalak.
Foo bar izeneko funtzioa beste deiak bada, aldagai horiek, azkenean, hemen.
Bar zerbait, hemen, hemen, hemen deitzen badu.
Beraz, zer programa bat exekutatzen ari buruz interesgarria da funtzio deitu
eta funtzio horiek funtzio deitzen eta funtzioak ere funtzio deitzen,
funtzioak memorian pila hau eraikitzen.
Eta bakarrik funtzioak behin dezaket memoria hori lortzean atzera hasten zara.
Modurik errazena, programa informatiko bat exekutatu memoria bat, beraz,
inoiz ez itzultzeko funtzioak idatzi.
Horrela, esate baterako, erakusteko askoz buggy programa bat nahita utzi.
Dezagun aurrera eta ez #
int main (void),
eta (2> 1), berriz, ziurrenik ez du inoiz gurekin aldatu egin dut,
eta utzi aurrera me orain eta zer printf.
Egia esan, hori gutxiago bisualki interesgarria izango da. Egin dezagun.
Int i = 0; i> 0 - egin dezagun akats hau - i + +.
Eta dezagun ez printf hemen. Dezagun landu zer predikatzen nintzen.
Dezagun metodo bat hemen, void abesbatzak, eta esan int i dugu,
eta, ondoren, printf esan dut - ez, dezagun hau interesgarriagoa.
Dezagun benetan ez da ezer guztiak inprimatu at. Dezagun besterik ez egin: abesbatza (i).
Guztiak eskubidea. Beraz, hau da buggy zergatik delako?
Hau egiten dut joaten naiz programa ez delako benetan egiten interesgarriak ezer.
>> Baina hori ez da helburua.
Helburua da programa horren funtzio nagusia ez zer, itxuraz idazteko?
Dei bera. Eta, izatez, ez dugu behar loop.
Dezagun hau errazteko, nahiz eta beraz, ez da benetan oinarrizko bug ikusmena galtzen.
Main deiak abesbatzak koru batzuk abestu,
ondoren, zerbait ergelak nuen, koru eta abesbatzak dei izan nuen
beste norbaitek bere gain hartu dut ezartzeko zen agian joan delako,
eta, gaur egun, hau ez da oraindik biltzeko. Zer egin behar dut?
Prototipoa behar dut gogoratzen.
Beraz, hemen behar dut void abesbatza (int i);
Beraz, gaur egun joaten naiz behera izanez gero hemen benetan, dezagun leihoa handiagoa erabili.
Dezagun aurrera eta koruak egin.
Erabili identifikatzaile undeclared i.
Oh, hori izan zen ergelak. Ez dugu behar argumentua. Dezagun besterik ez egin.
Modu honetan hasi genuen nahi dut. Litzateke programa askoz errazago idazten.
Dago. Orain joan nire terminal leihoa, Clang berrabiarazi, eta hemen dugu.
Hori izan zen oso azkar.
Zer da benetan gertatu da, baina?
Beno, gaur egun inprimatu lerro gehitu dut ikusi ahal izango dugu, beraz.
Printf esan me ("hemen nago") - aldagai ez. Horrela utziko dugu.
Utzidazu berrabiarazi egin. Koru berrabiarazi me.
Eta ... etorri. Jarrai joan.
Bat alde batera utzita, zergatik kraskatu egin ez da oraindik?
Segmentaziuo hutsegitea gertatu super azkar baino lehen.
[Inaudible ikaslearen erantzuna] >> Zehazki. Beraz, denbora inprimatu hartzen du, ezta?
Ordenagailua parte lan gehiago hartzen du, besterik ez da.
Eta ez da: segmentazioa errua.
>> Beraz, konturatu besterik ez nola azkar programak exekutatzeko.
Ez bazara ezer, super azkar inprimatzean.
Baina oraindik dugu zer gertatzen ari zen delako segmentaziuo hutsegitea hau?
Buruzko uste baduzu zure ordenagailuaren memorian nola banatuta dago,
hau gertatzen nagusia izango da, baina hemen dezagun deitu abesbatza hau, eta dezagun koru hau deitu.
Eta orain egin behar dut nire estetika bada eskubidea, hau da, besterik gabe, koruak, abesbatzak, abesbatzak esan nahi joan,
koruak, koru, abesbatzak, abesbatzak, ad nauseum, eta, azkenean, zer gertatuko?
Big picture, literalki bada, hau da, zer besterik ez kontzeptualki gertatzen da?
Pila overruns zeure.
Edo, okerrago, inbaditu besterik ez duzu dena, testu-segmentu barne,
0 s eta 1s ordezkatzen dituzten programa da.
Azken finean, hau da, besterik gabe, super, super txarra.
Zure programa spiraled kontrola.
Modu memoria asmoa baino erabiltzen ari zara
kasu honetan ergelak akats bat delako, guztiak
edo kasu honetan oso nahita egin funtzio bat bera deituz.
Orain, hau da, ez da txarra.
Eginkizunak beren kabuz deituz benetan botere handia dauka, behar bezala erabiltzen duzun.
Ez dut erabili behar bezala hemen.
Beraz, hau da, ez da txarra, baina inoiz ez dut benetan gelditzeko Izan ere, neure buruari deituz
Programa honen oinarrizko ahulezia hemen da.
Beraz, non egingo dugu hori guztia? Zer da benetan gertatzen da?
Noiz gehikuntza funtzioa deitzen genuen adibide horietan bezala egiten,
1 pasatzen dut sartu bezala balio bat daukat
Pasatzen 1 zenbakia kopia bat dut, beraz, honako hau gertatzen da.
Dezagun joan gehikuntza Adibidez, hemen tipo hau.
Hona hemen zer ari den benetan gertatzen ari dena.
Noiz-gehikuntza deitu dut eta pasatzen x I, pictorially, zer gertatzen da hemen da hau.
>> Daukat deitzen gordetako balioa 1 bada, eta benetan I gehikuntza,
gaur egun deitzen den koru - iPad da me bota off hemen.
Dezagun deitzen gehikuntza hau, eta ez dakigu zer hurrengo funtzioa hau izango da.
Beraz, zer ari den benetan gertatzen ari da hemen nonbait nagusia zatia memoria bat dut
1 zenbakia gordetzeko.
Noiz gehikuntza deitzen diot nik, beste zatia memoria bat erabiltzen ari naiz,
baina orain, 1 kopia daukat.
Balio hori Kontatzailea I, 2 bilakatzen da,
baina gero zer gertatzen den bezain laster gehikuntza itzultzen?
Memoria hau lortzen entregatu back sistema eragilea,
horrek esan nahi du egin duzun ezer erabilgarria da.
1 jatorriz nagusia jasotako oraindik benetan.
Beraz, non egingo dugu?
Bihurtzen da memoria byte sekuentzia back-to-back hau
stuff duzula jarri daiteke, eta bihurtzen da dut dagoeneko ikusi dugun zerbait
lan egiten duten gauzak jarriz atzera Itzuli atzera.
Zer astea 1 eta orain aste 2 oinarritutako kate bat da?
Pertsonaia bilduma bat besterik ez da.
Beraz, izarrekin bihurtzen da zenbakiak bezala jarri ahal izango duzu, memorian,
era berean, pertsonaiak jarri memorian.
Eta behin jarriz karaktere hasten gara memorian atzera itzuli Itzuli
bihurtzen da gauza errazena bat bezala begizta edo, berriz, begizta bat erabiliz,
ezkerretik eskuinera ahal izango dugu batetik bestera joateko, pertsonaiak baino gehiago kate batean
eta hasi massaging pertsonaia, hainbat guztira
b bihurtu dezake, b c bihur daiteke
beraz, azken finean, ingelesez esaldia benetan zentzua hartu ahal izango dugu
eta letrak horiek bat bihurtu bakoitza denbora batean
gure ordenagailuaren memoria paseoan Ezkerretik eskuinera benetan enkriptatzeko.
Beraz, dezagun gure bost minutuko break hemen,
eta noiz itzuli gara, informazio scrambling prozesua hasiko dugu.
>> Guztiak eskubidea.
Kripto batean murgiltze dugu aurretik, eta gauza horiek izeneko array
let me edozein galdera pausatu sentitzen dut benetan I mota muddled delako
gai horietako batzuk. Hargatik konpondu ahal bada.
Bueltan balioak buruz besterik ez dugu hitz egiten, argumentuak hitz egin dugu,
eta hitz egin nozio honi buruz, itzuli gara eta datozen asteetan,
memoria horiek pilatuta erretiluak sorta bat osoa ikusteko, eta, beraz, hitz egiten,
sortu, besteak beste, behean, erretilu bakoitzean lortzen pilaketan jartzen
ari izeneko funtzio bat adierazten du.
Edozein galdera?
Galdera hemen galdetu.
Dezagun back hau errazteko me zer izan zen lehenago gure Q & A. batzuk aurretik
Izan ere, gehikuntza irekita parentesi, int zenbakia, parentesia itxi
zer int kopurua ordezkatzen du?
[Ikasleen] argumentu bat. >> Argumentu bat. Ongi da. Baina zer gertatzen da argumentu bat behar du?
[Inaudible ikaslearen erantzuna] >> Zer da hori? >> [Ikasleak] Zerbait pasatzen zaudela
Ongi da, eta, beraz, zerbait pasatzen zaudela Eta, oro har, sarrera besterik ez da.
Zinen bizitzan funtzio bat, eta funtzio horren helburua izanez gero idatziz
zerbait egin denbora pixka bat desberdinak erabiltzen duzun bakoitzean,
ondoren, hori benetan gertatuko modu bakarra izango badirudi sarrera
beraz, zerbait desberdina egin ahal izango da, sarrera hori aldi bakoitzean.
>> Beraz, bi gauza zehaztu behar den funtzio bat hartzen du sarrerako behar duzu.
Sarrera horretan eman nahi duzun izena zehaztu behar duzu
zure erosotasuna own hutsa dezakezu erreferentzia
funtzioa duzu zeure burua, idatziz egin nuen hemen line 32.
Baina, bere mota zehaztu behar duzu ere, C programazio-lengoaia bat delako
bakarrik eskatzen nahi duzun aldagai bat izanez gero, ordenagailua esan duzu zer datu-mota da,
neurri handi batean, beraz, zenbat bit aldagaia esleitu daki
6 duelako izan daiteke - Barkatu, ezin izango da 6 izango da.
Izan 16 izan daiteke, 8 daiteke, 32 izan daiteke, nahiz eta 64.
baina ordenagailua jakin behar da.
Orain, ezkerreko aldean int adierazten du zer, ordea?
[Inaudible ikaslearen erantzuna] >> Zer da hori? >> [Ikasleak] funtzio-mota.
Funtzio bat eta, zehatzago esanda, bere irteera mota. Eskuin.
Beraz, parentesi gauza, berriz, bere sarrera adierazten du, edozein bada,
ezkerrera gauza bere irteera adierazten du.
Eta, kasu honetan, gehikuntza itxuraz int bat itzultzen du,
eta, beraz, int mota funtzio honen bueltan da.
Zer esan nahi du itzuli esan nahi du?
Literalki, keyword itzulera erabili behar dituzu, eta, ondoren, zer ari zaren itzuli bada
hitzarekin eskubidea oso bat da,
Orduan, zer agindu dugu koherentea da, hain zuzen.
Ezin duzu egin, honen antzeko zerbait - kaixo, mundu - kate bat delako.
>> Jakina, ez da zenbaki oso bat.
Beraz, azken finean, zama da benetan gurekin, programatzailea, zehatza izan
zer itzultzen ari gara, eta gero benetan itzuli buruz joan.
Testuinguru hemen orain zure ordenagailuaren memorian gigabyte, 2 gigabyte -
edozein izanda ere - agian gehiago da, agian, gutxiago,
baina ordenagailua views hainbat atal izatea.
Zerbait jaitsi egiten da bertan, beste zerbait igotzen dago,
stuff hainbat erdian doa, eta gaur hasiko dugu istorioa kontatzeko.
baina itzuli gara baino gehiago une honetan.
Oraingoz, memoria zati bakarra zaintzeko benetan gara testu segmentu
0 s eta 1s Clang hori delako adierazten duen besterik ez du outputted.
Beraz, komando bat exekutatu a.out bezalako teklatua
edo egin klik bikoitza ikono bat Mac OS edo Windows,
zure programa zure disko gogorrean RAM kargatzen
eta zure ordenagailuaren RAM goialdean plopped, eta, beraz, hitz egiten.
Bien bitartean, zure programa hasiko da martxan eta nagusiak lortzen izeneko
programa edo idatzi duzun programa Microsoft edo Apple idatzi,
bere aldagai tokiko edozein amaitzeko hor behera zure ordenagailuaren memoria, behealdean.
Baina nagusiak dei funtzioa beste aldagai edo argumentuetan du bera bada, gainean amaituko dute.
Eta funtzio hori deiak zerbait bada, azkenean dute batez ere, batez ere, batez ere.
>> Eta behin bakarrik funtzioa exekutatzean bat egin erretiluak pila, beraz, ez du hitz egiten,
hasiera txikiagoa eta beheko.
Eta hau da, zer orduan, hitz batean, azaltzen du zergatik kubo deitu
edo gehikuntza deitzen duzunean, balio kopia bat pasatzen ari zaren.
Eta zer esan nahi duen pictorially zarela literalki 1 zenbakia idatzi
memoria beste zati bat, aldatzen gehikuntza kasuan 1 eta 2
kuboaren kasuan, 8 eta, ondoren, memoria hori bota
bezain laster gehikuntza edo kubo funtzioak. Galdera.
[Ikasleak] Non global aldagai gordetzen?
Global aldagai zer gaur egun hasieratu datuak edo uninitialized datuak gordetzen dira,
aldea global aldagai bat bada, eta esleitu ere balio bat berehala
Berdintasun zeinua duen, eta ondorioz goiko bertan,
eta besterik esaten ez bada int x; baliorik ez, eta ondorioz, pixka bat txikiagoa RAM hasi
besterik gabe konbentzio.
Beste galdera? Guztiak eskubidea.
Beraz, argazki hau atzera etorriko da ahaltsuagoa
ordenagailua zer egin ahal izango dugu,
baina orain, egin ditzagun kriptografia intro labur bat,
kriptografia mota jakin ez dela munduko arazo guztiak konpontzeko
baina horietako batzuk konpondu ez.
Hemen kasu honetan, sekretu-gakoa kriptografia izeneko zerbait egin behar dugu.
Secret-gakoa kriptografia, izena dioen bezala, bere segurtasun sekretu bat dator.
>> Esate baterako, eskola kalifikazioa itzuliz gero eta sekretu apur bat maitasun eskutitz zinen pasatzen
mutil edo neska zinen birrintzeko, ohar hori gainditzeko, ikusleen bidez nahi duzun bada,
seguruenik ez English ohar bat, hala nola, idatzi edo dena delakoa zure ama-hizkuntza da.
Izan ere, enkriptatu dezakezu, edo, besterik gabe, dezakezu testu-mezu bat bidaltzeko egun hauetan.
Baina benetan dezakezu gainditu ohar bat ikasgelan zehar.
Eta hori egiteko modu bat, hala nola, zure lagun eta irakasle segurtasunez
ez dakit zer idazten ari zaren, zatoz gora izan liteke nahiko simple algoritmoa
gazte nahiz eta izan daiteke, besterik ez Scramble hitzak.
Beraz, bat idaztea ordez b idatzi dezakezu,
ordez b c idatz dezakezu,
ordez c d idatzi dezakezu, eta abar.
Edo zatoz gora izan sofistikatuagoa itzulpen
desberdinak letrak gutunak.
Baina harrapatzen mutil edo neska nori ari zaren ohar hau bidaltzen da
beharrak zerbait, eta hori da, jakina jakin nahi duzu? >> [Ikasleen] Zer bidaltzen ari zara.
Zein da zure sekretua da, zer dela eta b-ren eta c eta d's arteko kartografia bezala.
1 besterik ez da gehitzen letrak bakoitzean batetik b, b c joateko?
Da hori baino gehiago konplexua?
>> Beraz, zuk eta zure bihurritu behar dute informazio hori sekretua,
baina mota bat harrapaketa-22 hemen.
Hau lehen aldiz bada maitasun eskutitz honen klase bitartez bidaltzen ari zaren,
mutil edo neska bat dago sekretua, nahiz eta jakin nola?
Beraz, sekretu-gakoa kripto ez munduko arazo guztiak konpontzeko,
eta benetan harreman bat dago hemen atzera etorri egingo dugun seihilekoa amaitu bidean.
Era berean ez gurekin gehienak ez du inor ezagutzen lan egiten duen, esate baterako, Amazon.com,
eta oraindik gutako askok ziurrenik erosi stuff at Amazon.com
eta irakasten dugu, e-merkataritza segurua horiek bereganatzeko.
URL https dio ziurrenik, ez da agian pixka bat silly giltzarrapoaren ikonoa nonbait,
zure kreditu txartelaren informazioa bermatzeko kriptografia mota batzuk
duzu eta Amazon.com artean.
Eta oraindik bada kriptografia dakar sekretu batzuk ezagutu
eta oraindik ere, ez dakit Amazon at edonork eta zalantzarik gabe Nik ez sekretua edozein motatako antolatu
Amazon at norbait, nola nire ordenagailuan edo nire nabigatzailea hau egiten ari da?
Ez da beste kriptografia mota out guztiz konpontzeko arazo hori bihurtzen da.
Baina gaur, sinple bat dugu arreta
non aldez aurretik antolatu ahal izango duzu sekretu batzuk ezagutu
+1 edo a eta b-ren arteko kartografia batzuk bezala.
Kriptografia-prozesua, oro har, dakar.
Testu arrunteko batzuk, hemen ezkerreko irudikatuta duzu,
exekutatu enkriptatzeko algoritmo edo prozedura mota batzuetan zehar
agian besterik bihurtzen da b, b c bihurtzen
eta, ondoren, azkenean duzu ciphertext.
Bien bitartean, behin zure bihurritu sekretu ohar honetan jasotzen
zuen gero desenkriptatzeko, oro har, algoritmoa, alderantzikatzeko
beraz, testu itzuli.
Dira fisiko honen incarnations.
>> Esate baterako, hau da sekretu apur bat deskodetzailea ring,
eta hau ez da bi lasterrak hemen zentzu eraztun bat da.
Gauza honen kanpo periferia On, ez dago hizkiak A Z bidez,
ausazko ordenean Oraindik dute nahiz eta,
eta barrutik, ez dago benetan zenbaki batzuk
hala nola, eraztun hau mota horretako piztu kanpotik, baina ez da barrutik
ordena lerro zenbakiak letrekin.
Gabonetako Story A izeneko pelikula bat, apur Ralphie dela ikusiko duzu
beraz irrikaz irudikatu zer Little umerzurtzak Annie mezu sekretuaren zion
izan dira komunikatua, nire ustez, mezu zenbakizko Inprimaki zereal kutxa bat
eta little karta guztiak zereal kutxa zen pilatu behar izan duzu,
bidali nahi izan duzu, itzuli sekretua deskodetzailea ring
beraz, azkenean dezakezu irudikatu zer mapaketaren hizkiak eta zenbakiak artean
edo letrak eta letrak.
Nola ordenagailu bat ezartzeko edo ordezkari hau atsegin gauza gara?
Modu bat behar dugu geure burua adierazteko apur bat gehiago malgutasunez
gure aldagai baino, beraz, orain arte onartzen.
Izan dugu ints, izan dugu karakteretan, karroza eta bikoitzak eta beste batzuk izan dugu.
baina horiek banakako memoria zuzenak dira benetan ez utzi gauzak adierazteko gurekin
hitz eta esaldi eta esaldi atsegin dute.
Izan ere, deitzen dugu hala nola gauzak kateak,
baina hori CS50 liburutegia sinplifikazio bat besterik ez da, benetan agintzen dugu
ari gara zuritu back asmorik.
Eta beraz Horretarako hemen hasteko.
Dezagun aurrera eta ireki fitxategi bat
fitxategi hauek guztiak daude eskuragarri, ohiko, online izeneko array.c
kateak zerikusirik ez arazoa konpontzeko baina horrek irudi bat margotzen hemen
nola zerbait izeneko array bat erabil dezake.
>> Array bat datu-mota bat da.
Aldagai mota era askotako hainbat datu-mota txikiagoa barruan
Atzera itzuli.
Beraz, esate baterako, bada ematen dizu zure quiz batez beste programa txiki bat idatzi nahi dugu
50 2 galdetegiek duen bezala ikastaro bat,
Oso erraz idatzi izan duzu, are gehiago, azken astean material batzuk oinarritutako programa honen
aldagai GetInt eta pare bat erabiliz: int quiz1, int quiz2.
Eta nahiko erraza da.
Agian da 10, 20 kodea max lerro programa bat ezartzeko
2 quiz partiturak erabiltzaile eskatuko du, eta, ondoren, batez besteko computes
gehituz batera, 2 by zatituz, eta, ondoren, emaitzak inprimatzeko.
Lehenago egin izan dugu, nahiko erraz orain dela minutu batzuk ondoren.
Baina arazoa suposatzen 50 zuela 3 galdetegiak edo 4.
Demagun programa bera erabili zuela astero galdetegiek klase bat nahi duzula.
Pentsatu klase bat du astero galdetegiak.
Seihileko bat 16 edo, beraz, aste, 16 aldagai izan beharko da:
int quiz1, int quiz2, int quiz3, int quiz4.
Erredundantzia hau ikusi bezain laster hasten zara, kode hau kopiatu eta itsasteko,
hasteko modu bat hobea izan ziren nahi duzun egin beharko luke.
Eta zorionez, zeren array dago. Beraz, egin dezagun hau.
Lehenik eta behin, gauza oso erraza da erabiltzen ez ditudan dugu, beraz, orain arte aurkeztu me utzi,
, baina noizean behin, kodea ikusiko duzu.
>> Hau da, zer ari den, oro har, konstante bat da deitzen.
Beraz, balio hori inoiz aldatzen zentzu konstante bat da.
Giza konbentzio konstante bat sortuz
maiuskulaz guztiak erabili ahal izateko, beraz, oso dela nabarmentzen da zure kodea
eta C erabiltzen duzun berezia keyword # define.
Beraz, # define, eta ondoren espazio bat eta, ondoren, etengabeko izena erabili nahi duzun hitza esaten dugu
eta, ondoren, etengabeko balio.
Oharra aldagai bat zerbait esleitzea desberdina da.
Ez dago berdin ikurraren, ez dago puntu eta koma.
Hau da, oro har, preprocessor direktiba ezagutzen,
baina horrek denbora bat gehiago.
Orain, hau deitzen galdetegiak unchanging balio bat sortzen du
horren benetako zenbakizko balioa 2 da.
Beraz, edozein lekutan galdetegiek ikusten duzu, galdetegiek, galdetegiek fitxategi honetan zehar,
besterik ez duen kopurua 2.
Nagusian begiratuz gero, ikus dezagun nola obra honetan.
Lehenik eta behin, apur bat críptica badirudi, baina aste 1 stuff guztiak da.
Galdetu kalifikazio erabiltzaileari. Nola egiten dugu hori?
Line 22 - hau da, benetan parte mamitsuena mugikor bat deklaratzen dut
baina ez bakarra mugikor bat. Deklaratzen dut, baizik, puntu mugikorreko-balioak array bat.
Aldagaia da deitu behar kalifikazio engaiatuko hemen,
, baina sintaxia berrien pieza bakarra karratu parentesi artean honako hauek dira.
Izan ere, dudan karroza kalifikazio esan zuen eta, ondoren, parentesia eta gero, zenbaki bat
nabarituko konstante bat da, hau da, bada besterik ez genuen bezalakoa da
horrek esan nahi du, "Hey ordenagailua, emaidazu 2 karroza eta dezagun kolektiboki deitu kalifikazio".
>> Hau atsegin prozesua askoz ere lapurtera kontrastea: karroza grade1;
flotatzen grade2, eta abar.
Beraz, array bat onartzen du ideia hau ezartzeko aukera ematen digu, baina askoz gutxiago messily
1 kode lerro idatzi ahal izango dugun ordez, esan, 16 16 aste seihileko bat.
Ez dut nahi gogor-kodea 2 honi buruz uste duzu gaur egun logikoki delako,
demagun hurrengo urtean CS50 3 aldaketak galdetegiak ordez
eta 2 hemen izan nuen, 2 zenbakia izan nuen hemen,
2 zenbakia izan nuen hemen, zenbaki 2 hemen.
Oso lapurtera eta oso erraza bihurtzen da sortu torlojua
eta nahi gabe aldatu 1 balioa 3 eta 2 beste balio batzuk galdu.
Beraz ordez abstraktua dut hau kanpoan, eta etengabe hau erabiltzeko,
bere izena dioen bezala, ez da inoiz aldatzen dira.
Eta, orain, ez du axola hainbat izan ala ez, aurten edo hurrengo galdetegiak,
Dut aldatzeko leku bat sortu hemen goian.
Beraz, konstante bat da.
Bien bitartean, ezaugarri berri kontzeptuala array bat dela.
Beraz, karratu parentesi artean ematen dit asko karroza hau, eta aukera ematen dizu deitu kolektiboki me kalifikazio hemen.
Beraz, gaur egun, zer egin behar dut ikus-en.
Line 24 begizta baten hasieran da.
>> Hau da, benetan ezer ez fancy. Besterik ez da galdetegiak kodetuak hard-zenbaki bat erabiliz.
Baina ez dago ezer intelektualki hainbat han astetik.
Hau besterik ez da printf, eta, beraz, printf ("Quiz #% d% d:")
besterik ez dut nahi duelako inprimatu eman 1 2 quiz me, eta ondoren, 2 2.
Beraz, gauza estetiko hutsa da.
Baina interesgarria parte line 27.
Bi leku bat bete-puntu mugikorreko balio bat,
erabili berriro karratu parentesi artean.
Kasu honetan, i erabiltzen dut begizta hau lortzea zer balioa i hasi delako, itxuraz?
[Ikasleak] 0. >> [Malan] 0.
Beraz, begizta honen lehenengo iterazio, nahiz eta gisa honetan idatzi nuen kodea da,
baina begizta honen bigarren iterazio, nahiz eta gisa honetan idatzi nuen nire kodea da.
Baina naiz I aldagai bat erabiliz ezin hobea da, izan ere, izen gisa iradokitzen du,
bere balioa desberdinak iterazio bakoitzean,
array honetan toki betez naiz aldi berean.
Zer da array hau ez itxura?
Pantailan laukizuzen simple super marraztu dut hemen arrazoia Hori dela aurretik izan zen.
Array bat besterik ez da beste zatia memoria bat eta jarraian zatia memoria
beste zatia memoria eta abar.
Tamaina 2 da nire array Beraz, kasu honetan, guztiak ari dira nuke
nire quiz partiturak idaztea gustatzen hemen - 100 hau lortu nuen eta ondoren 99 dut hau -
ondoren, baliteke memoria honetan ere ez da erabili dut soilik ordenagailua eskatuko
tamaina array bat 2.
Karratu horiek oraindik ez dago, ezta?
Oraindik 2 RAM gigabyte nahiz eta soilik 2 karroza ari zaren galdetzen.
Beraz, array atzean dagoen ideia da ordenagailua zatia memoria bat hartzen du
eta, ondoren, apportions txikiagoa zuzenak Itzuli atzera.
Eta horrela, array bat da.
>> Zatia memoria barruan Alboko gauza jarri ahal izango duzu bat da.
Hau gertatzen da, ondoren egin besterik ez aspergarria aritmetika batzuk.
Joan I behera bada hemen, hau da, non array zehar gero batetik bestera joateko.
Sortu naiz array balio guztien summation
eta, ondoren, Kopako funtzioa erabiltzen dut hemen benetan egiten galdetegiek arabera banatzen batura.
Baina nire eskua olatuen me hori oraingoz nahikoa aritmetika sort gisa.
Baina guztiak egiten niretzat, azken finean, batez besteko bat da informatika.
Beraz, lehen quiz plus bigarren galdetegia 2 arabera banatzen da, eta, ondoren, inprimatzeko int gisa.
Baina gaur egun trantsizio deitzen katea1 beste adibide bat,
irudi antzeko, baina erabiliz kateak margotzen.
Dezagun aurrera, eta hori errazteko une bat besterik ez.
Barkatu bai orain koska.
Adibide honetan line 19 hasiera, erabiltzaileak kate bat lortuko dut.
Baina konturatu zer hurrengo naiz lerro 22 aurrera egiten.
Benetan ari naiz i from errepikatzean - eta trikimailu berri bat da - strlen, katea luzera.
C batekin dator funtzio bat pasatzen baduzu kate bat,
kontatzen du zenbat karaktere katea. Hori da dena.
Izan ere, hori strlen katea luzera ordez besterik ez delako gehiago succinct da.
Duela hogeita hamar urte, pertsonari gustatu gauzak idazteko succinctly ahalik
beraz, hitzarmen hori mantendu dugu hemen.
+ besterik ez + i esan nahi du Kontatzailea i iterazio bakoitzerako.
Eta orain jakinarazteko, hau da, benetan interesgarria.
24 linea, esan dut, "Computer, eman dit pertsonaia bat, 8 bit, eta c deitu."
Baina, zer da hau eskuinaldean esaten?
Ingelesez, zer adierazten duten?
[Ikasleen] array aurreneko karaktereari.
Hain zuzen ere. Array en aurreneko karaktereari Give me.
Edo, oro har, emaidazu array pertsonaia Ith.
Eta konturatzen garrantzitsua da gaur egun ordenagailu zientzialari gisa,
benetan ari gara 0 hasita.
>> Ez daukazu diskrezioa orain hau egiten hasteko.
Orain ordenagailuaren itxaropenak arabera jokatu behar duzu, eta 0-tik zenbatzen
[0] delako lehen karaktere kate batean
[1] bigarren izango da, [2] da hirugarren, eta abar.
Beraz, programa hau, konpilatu bada, hau da, berriro katea1, eta, beraz, katea1
eta gaur egun exekutatu dut katea1 nire terminal-leiho batean.
Sarrera da, beraz, David idatzi, Sartu zain noa,
eta, gaur egun, David bistaratzen guztiak lerro desberdinetan oharra zer egiten ari delako ari naiz.
Karaktere bat naiz inprimatzeko aldi berean.
Ez dugu sakontzeko, gaur egun hau, baina une bat ezabatu dut egiaztapen hau ago hemen.
Bihurtzen da, erabiltzaileak gaizki portatzen da, adversarial, edo, besterik gabe, nahastu,
benetan dezakezu dejar luze kate bat emateko.
Okerreko tekla sakatzen duzun bada, teklatua, katerik eman dezakezu guztietan,
Oraindik duzun edo asmo txarreko izanez gero, saiatu gigabyte saiakera bat merezi itsatsi
kate hau bete, eta ordenagailua bada memoria agortu
bihurtzen da izeneko NULL balioa berezi hau itzuli egingo dugun.
Beraz, oraingoz, besterik ez daki ez dagoela izeneko NULL balioa berezi hau
gara memoria, besteak beste Gurekin egiaztatu ahal izango da.
Baina irekitzen badut up now katea2, nabarituko diferentzia hemen.
Oharra ko aldea hemen katea2.
Katea2, begizta hau apur bat desberdina da.
>> Baliogabeak, beraz, ezabatu me horiek denbora beste buruz hitz egin ahal izango dugu.
Zer da loop Une honetan buruz?
Atzera jo dezake, aurreko adibidea.
Beraz, 2 bertsioa, version 1. 1, 2.
1, 2.
Strlen deia da, non?
Loop lehen zati da.
Zergatik egiten ari naiz pentsamenduak Any? Bai.
[Ikasleak] Beraz, ez duzu deitu funtzioa aldi bakoitzean bakarra.
[Malan] Beraz, ez dugu deitu funtzioa aldi bakoitzean bakarra. Hain zuzen ere.
Gogoratu loops for super simple Oraindik dutela
behin ulertu sort hori hasieratzeko, baldintza, eta eguneratzea.
Arazoa da baldintza begizta-iterazio guztietan gertatzen den bezala.
Eta beraz, hemen adibide honetan, zer da Izan ere, hori da nire egoera buruz txarra?
[Ikasleen] strlen deitzen ari zara.
[Malan] strlen berriro deitzen ari zara, eta behin eta berriro.
Baina behin David idatzi dut, katea luzera 5 da,
eta ez da begizta-iterazio bakoitzean aldatu
katea da oraindik delako D-a-v-i-d.
Beraz, zer ideia gero eta garrantzitsuagoa bihurtu iradokizun bat da
diseinua erabaki non bakarrik ez egiteko ordenagailua alferrikako lana bezala ezagutzen.
>> Just pset2, pset2 Sneak preview estandarra edizioan
erronka benetan ezartzeko zifraketen zenbaki batzuk,
batzuk enkriptatze algoritmoak kopurua, eta, beraz, bai dezakezu enkriptatu
eta desenkriptatu sekretua mezuak askoz bat Ralphie bezala dekodetu.
Hacker pset2 edizioa, apur bat urrunago joan goaz.
Eskuz fitxategi batean ari gara, benetako sistema bat ordenagailu
izenak eta benetako enkriptatutako pasahitzak sorta osoa dauka,
eta hacker edizioan erronka pasahitzak horiek crack izango da
irudikatu eta zer kriptografia aurkituko duzu, edo zer sekretua pasahitzak horiek benetan sortzeko erabiltzen zen.
Eta hori egin ahal izateko, ezaugarri berri bat erabiliz hemen C goaz
duzula I moduzko komando-lerroko argumentu gisa ezagutzen demo bat.
Bihurtzen da, batzuk atalean edo testuliburu gisa ikus daiteke,
nagusia ez da beti izan parentesi void izan.
Bihurtzen da nagusiak atsegin dute hau idatzi ere egin daiteke, bi argumentuak,
argc eta argv, non argc hitz kopurua da
programaren izenaren ondoren idatzi zure komando-lerroan
eta argv benetako hitzak.
Eta plaza parentesi artean dago gisa gomendatzen da, argv array bat da itxuraz.
Kate baten ondoren memoria Kate ondoren kate bat izango da joan.
>> Beraz, zer pset 2 hasten egiteko gai izan behar dugu, honen antzeko zerbait da.
Argv1 egin dut, adibide bat itzuli dugu astelehenean, eta exekutatu bada,
nabarituko du ez duela dirudi ezer egin gabe.
Bistaratzen besterik ez da bere izena.
Baina esan dut agur klasea, aldez aurretik jakinarazi programa hori itxuraz iterates
gonbitan idatzi ziren hitzak besteen gainetik.
Eta bide horren bidez, hitzak sartzeko izango dugu erabiltzaileak idatzi gonbitan
nagusiak asteburu honetan aldatzen hasi eta int main (void) int main (argc, argv)
eta, horrela, jaio egingo da komando-lerroko argumentuak.
Eta behin, benetan sofistikatuak honetan, benetan trippy programak idatzi ahal izango duzu
esate baterako, hau hemen, doan eta batez ere haratago
funtzionalitatea batzuk egin ditugu, beraz, orain arte, baina nahiko indartsua.
>> Beraz, honetan utziko dugu pantailan, eta astelehena, ikusiko dugu.
>> [CS50.TV]