[Powered by Google Translate] DAVID J. MALAN: eskubidea.
Hau CS50 da, eta bi aste bukaera honetan.
Espero denbora hau bihar inguruan gose izatea nahi baduzu, badakizu, ari dugu.
talde txiki bihar, osteguna, 1:15 PM dute.
URL hau hemen RSVP nahi izanez gero.
Espazioa mugatua da, beraz, mesedez barkatzen inprimakia bete bada, denbora
bete hau.
URL Another interesgarriak izan daitezkeen arren, hau da.
>> Beraz, hilabete bat denbora buruz, jakina da erabili ahal izango diren.
gehiago zabal edX bidez, eta horren bidez Interneten folks izango da
batera jarraitu ahal izateko, ikastaroa burutzeko nahiko aktiboki, hain zuzen ere.
Erabiliz egingo dute CS50 Appliance eta CS50 eztabaidatu eta gehienetan
hainbat tresna ditugu dagoeneko seihileko hau erabiliz.
Eta ekimen bat on esperimentu gisa hartu behar genuke aurten
da, besterik gabe, zenbat edukia beste hitz egiten itzuli ahal izango dugu, eta ikusteko
idatzizko hizkuntza.
Beraz, bada, proiektu honetan parte hartzeko interesa, horren bidez izan dezakezu
transkripzioak eta azpitituluak ingelesez emango ditugu ikastaro kodea:
hitzaldiak eta film labur eta mintegiak eta atal eta antzekoak -
erraz hitz egiten duzu edo erraz beste hizkuntza batzuk idatzi, genuke
maite duzun ihardun proiektu honetan, beraz bat edo gehiago hartu
bideoak, hizkuntza bat, nahiko ondo ezagutzen duzu itzultzeko.
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 eskuinaldean, beltzez ordu-/data-zigilua horiek,
hainbat gauza nire ahoan atera zen egun horretan ikusi ahal izango duzu.
Eta gero, azpian, beste hizkuntza batzuk itzuli ahal izango duzu.
Zehazki zer kartografia da, 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 nahi duzun eta zure hitzak
ikusi eta potentzialki daude folks milaka irakurri, mesedez sentitzen
free parte hartzeko.
>> Orain astelehenetik kitten buruz hitz bat bidali dugu kausituko gehiegi
scary mezua.
Do, konturatzen bulego ordu iradokitzen eta atal gisa gomendatzen,
Ikastaroaren diseinua oso ikasle laguntzaile eta
arazo multzo eta arazoak bidez lan elkarrekin hitz egiten.
Eta benetan line besterik ez dator behera, berriz, lana, azken finean,
beharko aurkeztu zeure izan behar du.
Eta, beraz, ez da nahiko zintzotasunez, bulego orduetan, guztiz normala da
erabat espero dira, nahiz eta - batzuetan txateatzen
lagunak ondoan duzu.
Zuen, edo gai batzuekin batera ari da borrokan, eta zu bezalako ari bazara, oh, bai utzi
emadazu ohi batzuk kode lerro idatzi dut.
Hori da, fina.
Hori gertatzen da.
Eta hori da, nire ustez, oso aproposa ikaskuntza prozesuan.
Non dago, berriz, line lortzen zeharkatzen denean burua da sort tilted baino gehiago
Hemen segundotan urrun gehiegi edo minutuan benetan besterik ez
desblokeatzean zure laguna aukera izan da.
Eta, zalantzarik gabe, gauzak get email eta Dropbox eta via truke
bezala, han ere lerro da.
Beraz, baliabide guztiak, eroso sentitzen eta sentitzen animatu lagunekin txateatzeko
eta psets eta gehiago buruz ikaskideekin.
Eta besterik ez konturatzen zer aurkeztu, azken finean, benetan behar duen
zure sorkuntza eta ez beste norbaiten produktua.
>> Izakiak cuddly Ildo beretik Beraz, gerta daiteke
guy hau ezagutzen hemen.
Beraz, urte movie horrifically cursi da.
Edonork hemen ikusi Spaceballs?
Guztiak eskubidea.
Zenbaki bat, beraz, ona hemen.
Beraz, gure gaur egun sartuz, azken finean, modu wonderfully akademikoa
kriptografia nozioa.
Eta beraz, domeinu pset 2, hau da, etorri arazo zehatzak
bihar gauean berandu out, kriptografia munduan murgildu da, eta horrek
informazioa edo enkriptatzeko scrambling artea da.
Eta hau, azken finean, munduko segurtasun dagokio.
>> Orain eguneroko mekanismoak nahiko forma segurtasun gehienak dator gurekin.
Guztiok Erabiltzaile-izenak eta pasahitzak.
Eta guztiok oso txarra erabiltzaile-izenak eta pasahitzak, ziurrenik.
Pasahitza bera da, hainbat web bada, ziurrenik ez
ideia onena, seihilekoa amaitu aldera jo dugu eztabaidatzeko.
- Txantxa ez al duzu itsaskor ohar bat bada, idatzi zure
monitorea, hori ere ez da derrigorrez onena diseinua, baina oso ohikoa
fenomeno.
Eta ez bada ari zaren kriptografia erabiliz zure pasahitzak enkriptatzeko dira
bereziki zaurgarria.
Beraz, bada super ari zaren ezkutuko Word edukitzea clever dela uste duzu
dokumentatzeko nonbait zure disko gogorrean zure pasahitzak guztiak, baina
karpeta batean, inork ez den begiratu behar, hori ere ez da oso
seguru mekanismoa.
Eta beraz, zer pset 2 aurkeztu kriptografia artea da, eta
Informazio scrambling, beraz, pasahitzak bezalako gauzak dira
guztiak segurua.
Beraz Oso real-munduko arazo hau motibatzeko oso ez-real-mundu
agertokia, dizute aurkeztu me gure clips gogoko bat hemen
filma, Spaceballs.
>> [Bideo-erreprodukzioa]
-Helmet fiend, zer gertatzen da?
Zer egiten nire alaba?
-Baimena bikaina gazte zirujau plastikoari, Dr. Philip aurkeztu me
Schlotkin, handiena sudurra lan osoa man
eta unibertso Beverly Hills.
-Zure highness.
-Nose lan?
Ez dut ulertzen.
She dagoeneko sudurra lan bat izan zuen.
16 gaur egun gozoa izan zen.
-Ez, ez da zer pentsatzen duzun.
Askoz ere, askoz ere okerragoa da.
Ez baduzu, emadazu konbinazioa aire armarria, Dr. Schlotkin
eman zure alaba atzera bere zaharra sudurra.
-Ez!
Non ez duzu?
-Guztiak eskubidea.
Esango dut.
-Ez, aita, ez.
Ez behar duzu.
You're eskubidea, maitea.
Berria sudurra galdu dut.
Baina ez dut esan konbinazioa ez Gaia zer.
-Oso ondo.
Dr Schlotkin, egin zure txarrena.
-Nire plazer.
-Ez!
Itxaron, itxaron.
Esango dut.
-I funtzionatuko luke zekien.
Guztiak eskubidea, eman dit.
-Konbinazio bat da.
-One.
-Bi.
-Hiru
-Hiru.
-Four.
-Bost
-Bost.
-Beraz, konbinazio bat, bi, hiru, lau, bost.
Hori da konbinazio stupidest nire bizitzan entzun dut inoiz.
Hori da gauza mota ergel bat bere ekipajea litzateke.
Eskerrik asko, zure highness.
-Zer egin duzu?
-I off aktibatuta horman.
-Ez, ez duzu.
Off aktibatuta duzu filma osoa.
-Dut sakatzen behar okerreko botoia.
-Beno, jarri berriz.
Jarri filma berriro.
-Bai, jauna.
Bai, jauna.
-Goazen, Erna.
Goazen, Gretchen.
Noski, oraindik ere izan dut blog honetan fakturatzen badakizu.
-Beno, ez da?
Non dago atea?
-It lan jauna.
Konbinazioa ditugu.
-Great.
Orain, azken planeta Druidia aire freskoa arnasa behin hartu ahal izango dugu.
Zer da konbinazioa?
-Bat, bi, hiru, lau, bost.
-Bat, bi, hiru, lau, bost?
-Bai.
Hori da harrigarria.
Dut nire ekipajea konbinazio bera.
Prestatu Spaceball 1 berehalako irteera.
-Bai, jauna.
-Eta aldatu konbinazioa nire ekipajea.
-OW!
[END bideo-erreprodukzioa]
>> DAVID J. MALAN: An amazing movie guztiak ikusi behar duzu,.
Beraz, testuinguru hemen datuak insecure aukera bat dator
enkriptatzeko eta bertara Scramble.
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 gain tease zer Sekretu hau
Mezu hemen da.
Baina ordenagailu mundu erreala, gauzak ez dute agian bezala ere begiratu
English esaldiak izango da.
Esate baterako, hau da, estandar bat da, Linux edo Mac aurki ditzakezun edo
Pasahitzen fitxategia izeneko Unix fitxategi bat izan zen denbora Bazen behin ordenagailua.
Gaur egun, beste toki batzuetara mugitu.
Baina sistema bat leku egokian begiratuz gero, eta ez bakarrik ikusi ahal izango duzu
erabiltzaile-izena edo sistemako beste pertsona batzuk, baina ikusiko duzu.
enkriptatutako pasahitza bertsio.
Izan ere, hitza kriptan hor hurrengo stuff enkriptatuta dago.
Eta letrak eta pertsonaiak itxuraz ausazko eta zenbakiak serieak eta
abar bakarrik, oro har, sekretu batzuk ezagutu ahal izango desenkriptatu
hitz sekretu bat, zenbaki bat sekretua.
Eta hain zuzen ere, kriptografia, azken finean, irakiten behera artea batzuk fidatzen
ordenatu, eta beste norbaitek zerbait ez jakitea.
Hau esploratzen dugu gaur, eta pixka bat gehiago detail eta pset en etorri.
>> Eta orain, pass / huts hitz bat.
Beraz, batez ere, batzuk pset 1, tresnak sartu dived, eta
zeure burua mundu berri bat, konturatu frustrazio eta
nahasmena eta zailtasunak besterik ez teknikoa espero da.
Bereziki lehen pset, non ez da hainbeste berri, besterik ez lortzean
ls eta cd eta ingurune berri bat komandoak arcane horiek guztiak ezagutzen.
Eta hori da, material benetako eta bere burua Egitarauaz bereizita.
Beraz, konturatu ere, zalantzarik gabe daudela dauden bezala, bulegoko ordu
laguntza-egitura.
Sailak datozen igande honetan hasiko dira.
Baina garrantzitsuena, ari zaren hori bakarrik sentitzen bada hau da, ez
zuretzat mundua, konturatzen benetan du denbora hartu.
Eta aukera hau ez da urte ago me klase bat hartzeko
gainditu / huts egiten badute, zintzotasunez, nahiz eta inoiz ez dut izango litzateke ezarri oinez ikasgelan.
Eta hau aldatu ahal izango duzu, arte esan, ikastaroa astelehena bosgarren.
Beraz, bada, ertza Oraindik orain, baizik eta konturatzen baino burua beste batzuk sartu
urak guztiz, ez, zalantzarik gabe, kontuan hartu besterik ez gainditu / huts egin aldatuz.
Berriz ere, ez da benetan kultura hemen Harvard gauzak hartzeko
gainditu / huts egin guztiontzat benetan nahi geroztik lortzeko edo overachieve.
Baina, Egia, zerbait saiatzen izarrekin modu ederra da, agian ez
duzu ezagutzen.
Eta, azkenean, duzu kasu gehienetan oso fina egiten, agian
askoz zure harridurarako.
Hormigoizko gehiago terminoak, zer uste dut, oro har, gainditu / huts egin du,
batez ere pset 0 baliteke bizi duzun jarri bada
10 ordu, 15 ordu, 25 ordu pset batzuk - eta zu besterik ez banging
zure burua hormaren kontra,
eta super lortzean berandu da gauean,
baina hartu duzun pset bide% 90 bezala,
besterik ez duzu ez daki gauza bat badakizu
gainditu / huts egin ertzean benetan hartzen off klase bat bezala, non ordena ditzakezu
zorionez esan ados, ez da perfektua ezagutzen dut.
Baina lan egin dut nire ipurdian off hau.
Nahiko pozik nago non bukatu.
Eta hori itxaropenak bete egingo pass / huts egin.
Beraz, kontuan mantentzeko ez.
>> Guztiak eskubidea.
Dutenei borrokatu Harvardeko Unibertsitateko Wi-Fi erabili dezan
CS50 SSID, inguruan flotatzen Wi-Fi konexio bat
zorte hobea izan daiteke.
Like to try izango baduzu, apur bat ironiko honentzako pasahitza
abiadura hobeto konektatzean eta utzi ez hobeto badakizu gurekin
da bat, bi, hiru, lau, bost, guztiak zortzi zortzi dagoelako
bost baino gehiago seguru.
Beraz, Wi-Fi pasahitza behar duzu bada, CS50 konektatu hari hemen.
Bat, bi, hiru, lau, bost, sei, zazpi, zortzi.
Eta CS50 post eztabaidatu aldizkako konektibitatea gaiak baduzu ere,
eta eskumenak espazio honetan jakin dugu.
>> Guztiak eskubidea.
Beraz, azkar bat teaser, bereziki direnek fan neska-mutilak edo
gauzak Apple guztietan.
Zer sortu zulatu dut urte batzuk atzera fitxategi hau izan da hemen, ilock.c, besterik ez
mota egin zehatzagoak eta konplexuagoak C oinarrizko batzuk
programak dira idazten dugu.
Beraz, fitxategi hau ireki nuen, ilock.c.
Da gaur egun orria hitzaldiak.
Ezkerreko aldean, funtzioen zerrenda luze bat ikusten duzu.
Beraz, nork idatzi fellow sortu funtzio asko idatzi zuen,
just nagusia baino gehiago.
Liburutegi sorta osoa bat erabili zuen hemen.
Eta hasteko badugu scrolling bidez, hau benetan da oso
lehenik eta behin, uste dut, jatorrizko iPhone crack.
Jatorrizko iPhone jailbreak nahi baduzu, horrek esan nahi du untether
& T AT eta benetan instalatu software berezia da eta gauzak egiteko
duten Apple ez jendeak egin nahi -
ondo, norbaitek hartu denbora irudikatu zehazki nola ustiatu zuten
software flaws, akatsak, bugs, Apple-en software.
Eta horrela jaio zen ilock.c.
Konpilatu baduzu, ordenagailu bat eta iPhone bat gainean instalatu That
izan zen, adibidez, USB kable baten bidez zure ordenagailura konektatuta, hau da zure luke
administratibo edo root pribilegioak zure iPhone eta utzi pretty asko egin duzu
nahi duzuna.
>> Eta beraz, ez da hau zoragarri katua eta sagua Apple arteko joko eta
munduko gainerako dute, bereziki, enpresa askok bezala, saiatu blokeatu
bere stuff behera, beraz, besterik ez dezakezu egin dutena asmoa.
Baina hau atsegin dute esker eta haien behe-mailako ezagutza
xehetasunak, eta, kasu honetan, C programazio eta asko ezagutzen eraikuntzen
Behin hasi ginen jolasten, gai benetan leverage
hardware modu egoki eta ez erakunde batzuk derrigorrez ikusiko duzu.
Beraz, adibidez, ez da zer hori guztia egiten ari da, ideia daukat.
Baina GetVersion nahiko erraza dirudi.
Eta funtzio bat pertsona hori idatzi dirudienez.
Hartu argumentu gisa osokoa nolabaiteko, ez itzultzeko ezer, baina
loop agertzen loop hemen eta baldintza izanez gero, egoera gero,
hautsi, eta, nolabait, bertsio zenbakiak.
Behera joan gara bada
nahiz eta hitz hauetako asko berria izan da, eta ez da
Hemen funtzio asko ez dugu inoiz ikusi, eta agian ez du inoiz ikusi baino gehiago
seihilekoan ikastaroa
egunaren amaieran, beraren arauak eta logika ditudan gara jarraitzen
jolasean, beraz, oso urrun.
Beraz, hau da, orain arte zaharregia 3s edo zure iPhone 4S edo laster 5s crack, egun hauetan,
baina jakin dut dugun guztia dela mundu honetan oso eratorritako
dived sartu.
>> Beraz, dezagun begirada apur bat gehiago adibide erraz bat.
Hori, besterik ez berotu ahal izateko sintaxia batzuekin batera eta, gainera, beste datu batzuk
mota ditudan buruz hitz egin zuen, baina ez dute ikusten benetan C. Beraz
izeneko fitxategi positive1.c.
Eta goialdean iruzkinak bakoitzeko, hau eskatzen du erabiltzaile bat eskaintzen
Zenbaki positiboak.
Beraz, loop do-bitartean, hau da, erabiltzaileak interaktiboa nice adibide bat da
programak, non erabiltzaileak kontatu zerbait egin behar duzu.
Eta ez bada ez dute lankidetzan aritzea, Yell horiek edo sarrera ukatzeko.
Puntuan kasuan, lerroak egin 19 naiz, 24 hain luze bitartez erabiltzaileak
ez da zenbaki positibo bat eman dit.
Orain zehatz-mehatz hau hemen on line 18, zergatik n deklaratzeko I osoan honen gainean
begizta eraikuntza ondoan line 22 alderantziz, non I
benetan axola n?
Bai?
[INAUDIBLE]
>> DAVID J. MALAN: Bai, beraz, gai honen inguruko esparrua.
Eta layman en epe, zer ez esparrua ikus?
Bai?
[INAUDIBLE]
DAVID J. MALAN: apur bat ozenago hitz egiten duzu?
1. HIZLARIA: Non bereziki aldagai bat sartu ahal izango duzu.
DAVID J. MALAN: Perfect.
Non bereziki aldagai bat sartu ahal izango duzu.
Eta, oro har, arau, beraz, orain arte izan da batzuen esparrua
aldagai kizkur berrienak giltza duzula ikusi definitzen da.
Eta, beraz, kasu honetan, egin nuen n geratuko line 22 oker bada,
line funtzionatuko lukeen.
Int bat lortu nahi dut, eta line 22 aldagai n horretan jarri nahi dut.
Baina zein kode line litzateke gaur egun ez daki zertaz ari naiz?
25 Beraz, bihurtzen da, eta 24 out, baita, kasu honetan, jaitsierak delako kanpo
kizkur giltza.
Beraz, apur bat gogaikarriak pixka bat, baina oso erraz, besterik gabe geratuko konpondu
funtzioa bera kanpo aldakorra.
>> Orain ikus geroago dugu gaur egun, pauso bat gehiago dezakezu.
Eta nahiz eta apur bat alferrak -
eta hori ez da gomendagarria izango da, oro har,
baina ezin duzu alferrak eta globalki aldagai bat jarri, eta, beraz, hitz egin ez
funtzio baten barruan, ez begizta baten barruan, baina fitxategi bera, kanpo
funtzio guztiak idatzi duzun, egin nuen hemen 15 on line.
Baina hori, oro har, frowned gainean.
Baina konturatzen batzuetan arazoak beste irtenbide bat da, zaitugu
azkenean ikusi.
Beraz, oraingoz, utziko dugu hau atsegin dute.
Baina ikus dezagun hau, besteak beste, geure burua bat adierazteko hasteko berridatzi bada
apur bat ezberdina izan.
>> Beraz, programa hau, 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 zorrotz.
Baina, gutxienez, eskuineko pista Oraindik polit bat behatu check da.
Beraz, gaur egun utzi aurrera eta ireki hau bi bertsioa.
Eta zer desberdina da dagoeneko?
Gauza bera inplementatzen ditu.
Baina zer jauzi denbora argi eta garbi desberdina hau?
Bai, eta, beraz, berdez boolearra hau.
Gedit keyword boolearra gisa ezagutzen berde hau nabarmendu
datu-mota bat da.
Etortzen ez C. bertsio guztiak eraiki bat eduki behar duzu
jakin liburutegia.
Gure kasuan, CS50 liburutegia barne, beraz,
boolearra sarbidea.
Baina, 18 linea, balio bat Boolean deitzen eskertu izan dirudi dugu.
Beraz, deitu nuen ezer.
Baina asko eskertzen du, besterik gabe, mota horretako transmititzea esanahia batzuk semantikoa deitzen dut.
Beraz, hasiera batean, on line 18, itxuraz naiz ez asko eskertzen duelako
Balio boolearra asko eskertzen da hasieratu line 18 ezezkoan.
Eta gero, zer egin dut hemen, lineak 21 23 bidez badirudi dut besterik ez
mota berridatzi nire logika.
Hainbat Beraz, ez funtzionalki.
Baina line 22,, int erabiltzailea eman baino handiagoa bada, egiaztatu I
0 eta, ondoren, aldatu besterik ez dut, egia asko eskertzen du balio.
Eta zergatik egin behar dut?
Line 25, itxuraz denez, baldintza bat egiaztatu dut joan.
Do begizta hau asko eskertzen faltsua bitartean.
>> Beraz, hau proposatzen dut bertsio bat alternatiba bat da, gutxienez bat delako
little intuitiboagoa, agian.
Pixka bat gehiago da ingelesez oinarrituak.
Horretarako, honako hauek dira, ez da asko eskertzen du edo eskertzen faltsua bitartean.
Eta une honetan, ere, ez itxuraz ez dut zaintzeko erabiltzaileak idatzitako gogoratu
oharra delako aldakorreko n ez.
Beraz, benetan, I -
gezur zuri pixka bat, besterik ez.
Funtzionalki, programa da pixka bat behean gara behin
dut ez delako zer n gogoratzeko.
Baina hemen erakusteko nahi dut ere, nahiz eta ikusi dugu GetInt eta
GetString ari, berdin ikurra baten eskuinaldean erabiltzen da, beraz, orain arte horrela
balioa, teknikoki, hori ez da erabat beharrezkoa gogoratzen dugu.
Edozein arrazoigatik ez besterik ez baduzu, ez zaintzeko balioa gordetzeko, nahi duzun
balioa egiaztatzeko, nabarituko dugu, besterik gabe, idatzi hau GetInt zabalik
paren, itxi paren.
Funtzioa balio bat itzuli behar dugu, bezala esaten.
Itzuli int bat da.
Eta, beraz, adimen duzu happening honen ustez, idatzi 99 I, GetInt
itzultzen kopurua 99.
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 gaude, egin dut, gaur egun, zeren asko eskertzen du.
Eta, besterik gabe, esaten dugu, line 26 zenbaki oso positibo esker, edozein da
gertatu izan da.
>> Orain egin dezagun azukre apur sintaktikoak hemen, eta, beraz, hitz egiten.
Ikus dezagun sortu dugu garbitzeko bada lerro hau bariantza hau hirugarren eta azken 25
positive3.
Beraz konturatu Ezberdintasun bakarra da kode line?
Bai, eta, beraz, 25.
Eta ez dugu benetan trikimailu hau ikusi besterik ez oraindik.
Baina ikus puntu astelehena harridura, lu byte irakurtzerakoan zer egin dugu?
Beraz, ez, edo ukatzea.
Beraz, boolearrak balio bat hartu, eta bere balioa irauli.
True faltsu bihurtzen.
Gezurra egia bihurtzen da.
Beraz, proposatuko nuke, nahiz eta pixka bat modu bat intuitiboa
kodea idazten dut oraindik hasieratu delako faltsua asko eskertzen du.
Oraindik ez dut honako hau.
Egia asko eskertzen ezarri I Unea iritsita.
Baina orain benetan dezakezu besterik ez itzultzeko kodea hitzez ezkerretik eskuinera,
ez asko eskertzen bitartean.
Bang, edo harridura puntu, ez ideia adierazten delako, eta, beraz, berriz,
ez asko eskertzen du.
>> Beraz, berriro ere, ez dugu berez kontzeptu berriak sartu.
Booleans hitz egin dugu atzera jokatu zen Scratch dugu.
Baina Orain konturatu besterik ez dugu gure kodea idatziz
hainbat modu.
Beraz, batez ere, pset1, modu irudikatu borrokan sort Oraindik
idatzi programa batzuk, odds Oraindik zorte duzun ez da edozein izan delako joan
irtenbide gainean gertatuko ditzakezun kopurua.
Esate baterako, hiru besterik ez da, are gehiago, programak errazena.
Guztiak eskubidea.
Eta orain, astelehena, gogoratzen, utzi ohar hau dugu bueltan balio.
Beraz, lehen aldiz, programa bat idatzi dugu, ez bakarrik izan nagusia,
ere badu bere funtzioa idatzi dut hemen pertsonalizatua.
Beraz, lerro 31 34 bidez, ezarri dut kubo funtzio bat.
Ez da konplexua.
Aldiz aldiz bat besterik ez da, kasu honetan.
Baina, zer buruzko informazio garrantzitsu sarrera naiz duten I forma hartzen eta
Irteera itzuli aldiz Inprimaki dut aldiz bat.
>> Beraz, gaur egun gaitasuna daukat, askoz bezala erabiltzen dut printf bakarrik, deitu
kubo funtzioa deitzen funtzio hau.
Eta kubo funtzioa sarrera batzuk hartzen.
Eta kubo funtzioa irteera batzuk itzultzen.
Eta horrela, aitzitik, printf bakarrik zerbait egin dute.
Ez da ezer itzuliko zaintzen dugula - nahiz eta,
alde batera utzita, balio bat itzuli du.
Besterik ez duzu, oro har, ez ikusi.
Printf besterik ez zerbait egin dute.
Pantaila inprimatzeko albo efektu bat izan da.
Kontrastea hemen, kubo funtzioa dugu, eta horrek
benetan itzultzen du zerbait.
>> Beraz, hau da, oro har,
hau ezagutzen, nahiko erraza da ideia bat da.
Baina horiek input eta pasatzen lortzeko ideia honekin gutxiago ezagutzen
back irteerak, dezagun saiatu zerbait super simple.
Edozeinek erosoa da datozen etapa labur-labur?
Kamera bat erosoa, baita behar duzu.
Bai.
Ongi da, zer da zure izena?
KEN: Ken.
DAVID J. MALAN: Ken.
Ondo, Ken.
Goazen sortu.
Beraz, Ken hemen era askotako funtzio bat izango du.
Eta dezagun aurrera, eta hau egin.
Gaitezen apur fancy bat.
Niza zu ezagutzeaz.
Ongi etorri zentro etapa.
Guztiak eskubidea.
Dezagun, sakatu botoi hau hemen.
Guztiak eskubidea.
Beraz, hemen, moderno Edukien duzu.
Eta zer I am funtzio nagusia da, esate baterako.
Eta ez daukat nire eskua iPad bat.
Ez dut gogoratzen nola - ondo, egia esan, ezin da esan.
Ez dut benetan ona idazkera.
Eta, beraz, beraz, me pantaila zerbait inprimatu nahi dut.
>> Beraz, programa nagusia naiz izanik.
Eta ez duzu dut esaten hau nire oilasko hutsetik idatzi eta
ondoren, sarrera bat pasatuz.
Beraz, silly gisa ariketa hau, nahiz eta, funtzio kontzeptua eta deituz
funtzioa eta eta funtzio bat benetan irakiten itzuli honetan.
Nagusia naiz.
Idatzi dut printf ("zerbait") pantailan.
Programa hau exekutatzen ari naiz.
Eta ahalik eta azkarren printf lortzen izeneko argumentu bat hartzen du - edo parametro bat,
batzuetan -
komatxo artean.
Hemen argumentua da.
Pasatzen dut Ken.
Orain urte batzuk idatzi itxuraz duela kutxa beltza da
bakarrik daki nola inprimatu pantailan gauzak.
>> Beraz, exekutatu.
Hori ez da txarra.
Beraz, oso ona.
Beraz, gaur egun, Ken egiten da exekutatzen ari da.
Ez du ezer didate itzuli behar zuen?
Beraz, ez dut horrela ikusten dugu orain arte.
Berriz ere, benetan ez printf zenbaki bat itzultzeko.
Baina hori alde batetara utzi dugu oraingoz, zeren eta ez baitira inoiz erabiltzen dugu.
Beraz, Ken da.
Eta, beraz, gaur egun nagusia bueltatzen exekutatu
nagusia programaren kontrola hartzen du berriro ere, kode-lerro hori delako,
printf egiten da, exekutatzen ari da.
Eta joan gara gure beste edozein lerro daude exekutatzean.
>> Guztiak eskubidea.
Beraz, gaur egun dezagun saiatu apur bat beste adibide bat.
Eta une honetan hemen, utzi lehen garbitu pantaila hemen.
Eta denbora honetan, cubing funtzioa egin dugu.
Baina une honetan, irteera balio bat espero dut.
Beraz, dezagun aurrera, eta hori egin.
Beraz, gaur egun kodea line dioen daukat x = kubo (x).
Beraz, benetan let's -
kodea, abisuaren, lerro honen itxura.
x = kubo (x).
Beraz, zer da hau?
Beraz, dezagun aurrera eta pantaila bat emango dizu zuri berriro.
Eta orain, x balioa idazteko behera, eta une honetan dut
denbora gertatzen da, demagun, 2, simple mantentzeko.
Beraz, idatzi dut paper 2 balioa,
zein nire balioa x da.
Entregatu I Ken.
KEN: Eta dut idatzi erantzuna?
DAVID J. MALAN: Bai, dezagun erantzuna idatzi.
Ongi da.
Eta orain me itzultzeko zerbait du.
Beraz, -
perfektua.
Niza segue.
>> Beraz, gaur egun me eskuak zuen atzera 8 balioa, kasu honetan.
Eta zer egin dut?
Beno, egia esan, dezagun ikusteko.
Talde eskubide hori.
Zer da egin behar dut?
Orain balio hau hartu eta benetan horietan gorde noa
memoria bit berean.
Baina oharra, hemen borrokan ari den mota naiz.
Apur bat nahastu naiz idazten delako benetan I x balioa?
Zer besterik ez dut egin da fisikoki eskuko denez Ken paper zati bat
balio izan zuten 2, hau da, x.
Eta, hain zuzen ere, hori da, hain zuzen ere zer gertatzen den.
Beraz, izarrekin bihurtzen da funtzio bat deitu, eta pasatu argumentu bat behar duzu.
nahi "kaixo mundua" edo pasatzen argumentu bat 2 bezala, oro har, zauden
argumentu horren kopia bat igaroz.
Eta, beraz, bezala idatzi nuen hemen kopurua 2 eta entregatu to Ken; behar diren
esan nahi dut oraindik ere balio 2 kopia bat nonbait.
Hain zuzen ere, gaur egun ahaztuak ditudan atzera balioa 8 izango direla eta, berriz joan behar dut
RAM eta benetan idatzi 8 I once kopurua 2.
>> Beraz, ikusmen gogoratu literalki en pasatzea nozioa
balioa kopia bat.
Ken bere gauza ez, me back eskuak zerbait - Kasu honetan,
8 atsegin dute balio.
Eta gero balio duten zerbait egin behar dut
harekin jarraitu nahi baduzu inguruan.
Beraz, hori guztia luzeegia aurretik ezaguna izango da.
Eskerrik asko demo hau hemen, Ken.
Guztiak eskubidea.
Oso ondo egiten da.
Hargatik nola, azken finean, funtzio batzuk ikus-en
Nik hemen dugun egiten deituz.
Beraz, aurrera eta gurekin eraman itzuli cubing adibidez hemen.
Eta nabarituko benetan hasteko gehiago nahi izanez gero hau hartu nahi dugu, ari gara
Izan ere, kopurua x ari diren gainditu mindful izan behar
Hemen da zer benetan ari funtzioa pasa.
Beraz, berriro ere, kopia gainditu nahiko bihurtzeko
une bat besterik germane.
>> Beraz, dezagun, bada zerbait ez nahiko lan egiteko eskubidea oraindik begirada bat.
Aurretik joan eta hirugarren buggy Adibidez ireki dut, eta horrek
izaera flawed.
Eta hori deitzen buggy3, eta, aldaketa funtzio bat ezartzen du.
Hortaz, hona hemen funtzio nagusia dela x eta y arbitrarioki hasieratu dugu
1 eta 2, hurrenez hurren.
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 bana.
Ondoren, linea 23, balioen aldaketa horiek naiz, dot, dot, dot aldarrikatzen dut.
Izeneko line 24 swap funtzioa deitzen itxuraz I
Bi argumentu hartzen ditu.
Funtzioak bi argumentu guztiz egiaztatzeko da.
Printf egin du dagoeneko ikusi dugu.
Beraz, swap itxuraz hartzen x eta y.
Eta bere izena dioen bezala, espero dela eta egingo nuke
aldatu, bi balio horiek.
Orduan aldarrikatzen line 25 I, trukatuko.
Eta x eta y berriz ere inprima I bereganatzeak azpian
Nik, egia esan, trukatu egin dira.
Baina, egia esan, I exekutatu programa hau -
utzi ireki me terminal-leiho bat.
Buggy3 egin dezagun me.
Izenak dioen bezala, hau ez da ondo amaitzeko.
Sartu, nabarituko x dela 1 hit I delako.
y 2.
Eta, hala ere, programaren amaieran, oraindik ari dira, hain zuzen ere, gauza bera.
>> Beraz, manifestazioaren oinarritzen oraintxe Ken, zer ari den benetan gertatzen ari da?
Beno, utzi swap funtzioa honetan murgiltzea.
Super laburra da.
Bakarrik da kodea luze lerro batzuk.
Baina, zer esan simple istorioa oinarritutako funtsezko arazoa
sortu hemen Ken?
Zergatik hautsi da swap?
[INAUDIBLE]
Hain zuzen ere.
Beraz, kopia bat ari gara, gordetzeko ez da aldagaia bera.
Beste era batera esanda, swap, itxuraz, bi argumentu, int bat.
Eta hori arbitrarioki eta b deitzen.
Eta hemen, x eta y dira, hurrenez hurren, 1 eta 2 gainditu dut.
Baina ez naiz literalki x pasatzerakoan.
Ez dut literalki y pasatzerakoan.
X eta y kopia bat kopia pasatzen dut.
Ia bezalakoa da, nahiz eta kopiatu aldatu balioek itsatsi
benetan manipulatu nahi duzunean.
Beraz, bada, kasu, I, programa, hasten exekutatzean
linea 35, gero 36 -
line 37 I, istorioa Puntu honetan, zer baten balioa?
Istorioa Puntu honetan, line 37, zer baten balioa puntu honetan da?
Beraz, behar du 1.
Eskuin?
X lehen argumentua onartu zen delako.
Eta funtzio hau arbitrarioki bere lehen argumentua da deituz, bat.
Era berean da, y, bigarren argumentua.
Eta besterik ez da arbitrarioki, bigarren argumentua b deituz.
>> Orain, dikotomia hori benetan nahiko besterik gabe, azaldu du.
Pentsatu.
Gurekin ez nork idatzi printf pertsona bildu.
Beraz, segur aski, ideia ez zuen gure aldagai 30 urte beranduago egingo du
deitu behar da.
Beraz, ez du zer aldagai deitu arteko bereizketa bat izan
funtzioak idazten ari zaren eta zer funtzio Oraindik aldagai deitu
telefonora deituz edo erabiliz.
Beraz, beste era batera esanda, idatzizko dut nire aldagai x eta y.
Baina beste norbaitek idatzi zuen swap funtzioa zuen, zalantzarik gabe,
litzateke ez dakit zer nire aldagaiak deitzen dira egingo.
Beraz, zergatik duzu izen dualtasun hori dela konturatzen.
Teknikoki, hau egin izan dut, kasualitatez.
Baina hala ere kopia gisa pasa da.
Besterik ez litzateke kasualitatea hutsa, estetikoki pertsona hori bada nork idatzi
swap izen bera erabili zuen.
>> Guztiak eskubidea.
Beraz, istorioa Puntu honetan, line 37, 1.
b 2.
Eta orain, swap jarraitu dut.
Beno, lehenik eta behin, utzi benetan me hau askoz gehiago, besterik gabe.
Ez dakit zer hiru kode lerro horiek egiten.
Do me honetan.
b lortzen.
bat jasotzen du b.
Eginda.
Zergatik da hondatutako, logikoki?
Intuitiboa gauza mota da, ezta?
Beraz, bihurtzen da b.
Eta b bihurtzen da.
Baina arazoa da, ahalik eta azkarren line 37 exekutatzen ere, zer da
eta b balio?
Gauza bera gertatzen da, 1.
Duzu clobbered delako, eta, beraz, hitz egiten, aldatu dituzun b bat berdinak.
Beraz, behin line 37 exekutatu da, handia da.
1 funtzio honen barruan bi kopia.
Orduan esan line 38 bat jasotzen du, b, bai, mota horretako izorratu zara.
Ari zaren besterik ez delako 1 1 esleitzea.
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 deklaratzeko I - tmp izena oso ohikoa da
aldi baterako aldagaia.
Int bat da, kopia bat egin nahi dut dator.
Tmp barruan kopia bat gordetzen dut. Beraz, behin line 37 exekutatu,
baten balioa
azkar behatu egiaztatu
1.
B balioa 2 da.
Eta tmp balioa da, halaber, 1.
Beraz, gaur egun line 38 exekutatu dut.
Beraz line 38 behin exekutatzen da, b balioa hartzen du.
Eta b 2 izan zen.
Beraz, gaur egun 2.
Istorioa Puntu honetan, 2, b 2 da,
eta tmp 1.
Beraz, gaur egun, logikoki, besterik ez plop tmp balioa b sartu ahal izango dugu.
Eta Bukatutakoan dugu.
>> Beraz, arazo hori konpondu dugu.
Zoritxarrez, programa hau exekutatzeko I inprimaki hau, ez du benetan swap
balioak edozein.
Baina argi eta garbi izan, zergatik?
Logikoa arazoa konpondu nuen une bat besterik ez duela.
Baina, berriro ere, programa hau exekutatu bada, x eta y gelditzen dira amaieran
programaren exekuzioa.
[INAUDIBLE]
DAVID J. MALAN: Beraz, ez dugu ezer itzuliko.
Beraz, egia da.
Baina arazo bat apur bat hemendik, beraz, delako urrun bihurtzen da,
Gauza bat da gauza bakarra itzultzeko gai izan gara.
Eta hori bakarrik itzuli ahal izango duzu benetan balio bat C. murriztea da,
Kasu horretan, mota itsatsita hemen nago
x balioa I itzuli delako edo itzuli izan dut
y balio berria.
Baina bai nahi dut.
Beraz, itzuli egin da eta ez da erraza irtenbide hemen.
Baina arazoa, batez ere, zergatik da?
Zer egin trukatuko dugu benetan?
eta b.
Hala ere, eta x eta y, b kopia horrek esan nahi du, egin besterik ez dugu hori guztia
- hiru minutu bezala besterik ez dugu gastatu swap buruz hitz egiten
funtzioa eta hiru aldagai horiek guztiak.
Eta hori handia da, erabat zuzena da isolatuta.
Baina bat eta b bere esparrua, lerro hauek hemen bakarrik da.
Beraz, begizta bat bezala aitortu osokoa i barruan
loop -, era berean, funtzio baten barruan ari zaren geratuko bada eta b
idatzitakoa, funtzio hori bakarrik baliozko barrutik ari dira.
Horrek esan nahi du eta ahalik eta azkarren swap egiten da exekutatzean line 24
linea 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 delako.
bakarrik balio bat itzultzeko.
Eta ez dut nahi bai x eta y swap aldi berean.
Beraz, itzuli honetan goaz.
Baina orain konturatzen arazoa funtsean Izan ere, ondorioa
eta b kopiak dira.
Eta bere esparrua propioa dute.
Beno, utzi hau nolabait konpontzeko en.
Dezagun benetan joan me back hemen eta ireki, demagun, laugarren aldaera bat
Horretarako, buggy4.
Eta zer gertatzen da hau?
Arazo begiratzen hartuko dugu Stab baten aurrean antzekoa da, baina errazagoa da
konpontzeko.
Programa hau deitzen da gehikuntza.
Eta itxuraz initializes x zenbaki oso bat line 18 1.
Diotenez, ondoren, I x 1.
Erreklamazioa ondoren incrementing I, dot, dot, dot.
Deitu, ondoren I gehikuntza.
Baina orduan 22 eta 23 lerro izan da, handitutako aldarrikatzen dut.
X da gaur egun edozein izanda ere izango da, 2 ustez aldarrikatzen dut.
>> Baina programa hau buggy da.
Zein da arazoa?
Bai?
[INAUDIBLE]
DAVID J. MALAN: Zehazki.
Beraz, x izendatuta dago, jakina, on line 18.
Nagusia giltza kizkur barruan dago.
Beraz, erantzun sinplea hemen da, bai, x existitzen da hemen.
Ez du existitzen line 32.
Beraz, programa hau benetan ere ez konpilatu.
Konpiladorea, kode hau konpilatzen saiatzen naiz, me at Yell
identifikatzaile batzuk undeclared edo eragina duten zerbait buruz.
Izan ere, dezagun saiatu.
Hau da egin buggy4.
Hor dago.
Identifikatzailea undeclared x Erabili line 32.
Eta, benetan, dezagun gehiago esplizitua hemen gaur egun hori oso erabilgarria da
bulego ordu eta etxean.
Oharra cryptically idatzi apur bat.
Baina Clang duela yelled, esaten
buggy4.c: 32:5, benetan erabilgarria da.
Errorea posizio bost pertsonaia at line 32 esan nahi du.
Bat, bi, hiru, lau, bost, beraz.
Hori da, hain zuzen ere, non da arazoa.
Eta, gainera, kontuan hartu, bulegoko ordu eta etxean, zortea dut hemen.
Bat neurtu behar dut.
Konpontzeko nahiko erraza izango da.
Baina pantaila osoa error jasanezinak mezuak, berriz betea bada,
konturatzen, agian beheragoen bat besterik ez izan sintomatikoa
goreneko maiteak.
Beraz, beti Chase zure bugs behera goitik behera.
Agian besterik ez delako daisy-kate efektua hori iradokitzen
izan modu arazoak benetan baino ez.
>> Beraz, nola konpondu dugu, nire helburua da x Kontatzailea nahi izanez gero?
Zer da hori?
Ongi da.
Beraz, x global ahal izango dugu.
Dezagun laster-ohartarazi dut lehenago.
Baina arraioa, quick fix bat besterik ez dugu behar.
Hargatik esan int x sortu hemen.
Horregatik, x global.
Beraz, gaur egun nagusia da sarbidea du.
Eta gehikuntza sarbidea dauka.
Eta beraz aurrera me eta konpilatu gaur egun.
Egin buggy4, Sartu.
Dirudienez, gaur egun biltzeko.
Dezagun exekutatu buggy4, eta, benetan lan dirudienez.
Orain gauza horietako bat da -
esan dudan bezala, ez dudan bezala, egin dut bezala, hemen.
Oro har delako, gure programa askoz interesgarriagoa iritsi eta
hori baino askoz luzeagoa da.
Eta zure bizitzako arazoak konpontzeko besterik ez da bada ah, jarri guztiak
zure koadernoan goialdean aldagai, oso azkar programak lortu
horrifically zaila kudeatzeko.
Gogorragoa lortzen uste aldakorreko izen berriak.
Gogorragoa lortzen da zer aldagaia da zer egiten 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.
Beraz, jakina, ezin izan dut
egunaren amaieran, silly istorioa mota besterik ez dugu egin hori.
Baina ez nuen operadorea buruz jakin, edo ez da onartzen
aldatu nagusia bera, nola bestela ezin Ken ezartzeko dut hemen baino gehiago, hau
denbora ez da kubo baina Kontatzailea?
Nola gauza hau aldatu dut hemen?
Bai.
[INAUDIBLE]
DAVID J. MALAN: Ongi, ona da.
Beraz, zergatik ez dut gainditu x?
Eta gero baino itzuli da, zergatik ez dut bueltan x + 1?
Orain, pare bat gauza gehiago hemen aldatzeko.
Eskuineko pista nago.
Zer gehiago Tweak behar dut?
Beste norbaitek.
Bai?
[INAUDIBLE]
DAVID J. MALAN: gehikuntza itzulera mota aldatu behar dut
da gal ez delako.
Void ez du ezer esan nahi ari itzuli.
Hala ere, argi eta garbi, gaur egun da.
Beraz, beharrak hau edozein izanda ere koherentea izan INT aldatzeko
Benetan ari naiz itzultzen.
>> Orain, beste zerbait da, oraindik ere buggy hemen.
Bai?
[INAUDIBLE]
DAVID J. MALAN: x Kontatzailea Beraz, behar dut?
[INAUDIBLE]
DAVID J. MALAN: Ah, eta, beraz, x gainditu behar dut.
Beraz, hau egin behar dut hemen.
Prototipoa Beraz, hau aldatzeko Hemen daukat.
Beraz, hau int bihurtu da.
Honek bihurtu
hmm.
I actually bug bat hemen.
Dezagun konpondu hau lehen aldiz.
Zer egin behar hau benetan?
Beraz, lortu int zerbait bat izan nahi du.
X izan daiteke.
Baina, Egia, hasten zara zure aldagaiak x guztiak deitzen baduzu, iritsi da joan
gero eta gutxiago argi eta garbi zein den.
Hargatik arbitrarioki aukeratu nire izendatzeko hainbat konbentzio
helper funtzioak, funtzio idazten dut.
Bat deitu dugu.
Edo deitu izan dugu dezagun deitzen are gehiago esplizitua izan even_number da.
Orduan edozein zenbakia da plus 1 itzuli behar dut.
Eta orain, beste gauza bat aldatu behar dut hemen, eta bat
beste gauza hemen.
Zer line 21 lehen aldatu behar dut?
Esleitzeko x daukat.
Beraz, ezin dut gehikuntza x deitu.
Erantzuna gogoratzeko x balioa aldatu behar dut
ezkerraldean.
Eta nahiz eta x da gaur egun ezkerreko eta eskuineko, guztiz fina delako
eskuinean lortzen lehen exekutatu ondoren lortzen da ezkerretik sartu plopped
alde batetik gauza, kasu honetan, x.
Eta gero, azkenik, hau erraza fix bat da gaur egun.
Hau besterik ez datoz bat zer behera beheko.
Int kopurua.
>> Guztiak eskubidea.
Benetan ergelak funtzio aldaketa sorta osoa, beraz.
Baina gauza egingo dugu, gero eta gehiago nahi ez ordezkari.
Beraz, egin buggy4.
Izorratu dut nonbait.
Oh my God.
Bost akatsak, bezala, sei-line programa bat.
Beraz, zer gertatzen da on line 18, pertsonaia 5?
Guztiak eskubidea.
Beraz, int hau deklaratu behar dut.
Guztiak eskubidea.
Beraz, ikus dezagun, akats beste sorta oso bat.
Oh my god.
19, 18, 21.
Baina, berriro ere, dezagun garbitu pantaila
Kontrol L hemen eta re-run Clang.
Beraz, bost arazo da, benetan bat besterik ez da.
Beraz, gaur egun dezagun exekutatu buggy4, Sartu.
Whew.
x izan da handitutako zuzena.
>> Guztiak eskubidea.
Zenbakiak nola Kontatzailea edozein galdera?
Bai?
SPEAKER 2: Zergatik da besterik ez aldatu ditzakezun x zenbaki aldagaia
izendatzeko eta dakit zer esan nahi duzu?
DAVID J. MALAN: Good galdera.
Nola da dut aldatu x kopurua eta programa jakin
berehala?
Beraz, berriro ere, uste abstrakzioa hau.
Beraz, I am nagusia bada, eta Ken da gehikuntzaren, Egia, ez zait
zer Ken bere iPad deiak.
Ez zait ezer bere ezartzeko zer deiak zuen
funtzionalitate hau.
Beraz, hau bat ezartzeko xehetasun I, nagusia, ez da
dute zaindu buruz.
Eta horrela, besterik gabe, aldatzen ondokoengatik funtzioaren barruan, zenbakia hemen
eta zenbaki hemen, beti birkonpilatzeko dudan bezala hartzen du.
Gutako askok, horiek gidariaren - sailkatu dela uste duzu buruz
Nik ez duten lizentziak bultzatuta, edo duzun, 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.
Kind dezakezu eskubide hori atsegin stuff sentitzen orain.
Baina ez dugu benetan autoa nola funtzionatzen duen zaintzeko.
Ez dugu axola zer hagaxkak eta pistoiak eta kable barruan
autoa benetan egiten ari dira.
>> Pistoiak deitu antzeko zerbait axola ez izateko
Kasu honetan hemen.
Same idea.
Bai?
[INAUDIBLE]
DAVID J. MALAN: XA aldagaia une erabilera gehiago egon ziren, 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.
[INAUDIBLE]
DAVID J. MALAN: hemen bezala ordena jakin bat?
Hau da INT beste zenbaki bat?
Bai.
Beraz, ordena axola funtzioa deitzen ari zaren.
Beraz, bada gehikuntza ziren I deituz hemen zerbait koma zerbait,
zuzeneko kartografia.
Lehen aldagaia, edozein deitzen da, eta lehenengo kopia bat egin
Hemen eztabaida.
Sentitzen dut, hau ez da parentesi bat izango da.
Bigarren argumentua lerro bigarren bat.
>> Ordena Beraz, bai, garrantzitsua da.
Guztiak eskubidea.
Sentitzen dut, bide luzea iritsi hartu nuen.
Beste galdera?
Guztiak eskubidea.
Beraz, ikus dezagun, ezin dugu bada zer ari den benetan gertatzen ari argazki bat margotzeko
hemen kanpaia azpian, eta, beraz, hitz egiten.
Beraz, hau da zure ordenagailuaren memorian laukizuzen bat da.
Beraz, nahiz eta ez daki nola funtzionatzen memoria edo nola RAM lanak behar duzu, gutxienez
bere gain hartzen duzula sortak da egun hauetan.
Duzun got megabyte.
Duzun got gigabyte da.
Eta aste zero ezagutzen dugu byte bat besterik ez da, zer?
8 bit.
Eskuin, eta, beraz, 8 zero eta bai.
Beraz, zure ordenagailuan RAM kontzertuan, bi RAM kontzertuak badu egun hauetan, duzu
milioi edo 2 milioi memoria byte, edo gutxi gorabehera 8 milioi edo 16 milioi
bit, zure ordenagailuaren barruan.
Orain iledunak little Willy adibidez ez bezala, ez da partikula magnetikoak
normalean jada.
Gero eta gehiago, ordenagailu eramangarriak, gutxienez, egoera ona unitate, SSDs, da
besterik ez dute ez piezak mugituz.
Elektronikoa da.
Elektrizitatea guztiak oinarritzen da.
Beraz, uste da, nahiz eta, besterik gabe, bat edo bi ordezkari gisa, laukizuzen honen
memoria gigabyte duzula.
>> Beraz, memoria zatia da.
Orain, informatika munduan zatiak partizioak off sort
memoria hainbat gauza egin.
Horrela, esate baterako, hau da zure ordenagailuaren RAM bada - iradokitako
laukizuzen han - bihurtzen duten konbentzio, zure RAM goialdean, eta, beraz,
hitz egiten da, oro har, zer izeneko testu-segmentu bat.
Dutenek duzula konpilatu zero eta bai dira.
Beraz, kanpaia azpian begiratu zer a.out dugu, guztiak
zero eta bai -
programa bat exekutatzen baduzu, zero eta bai horiek dira zure disko kargatu
unitatean sartu zerbait izeneko RAM.
Eta RAM, goialdean jartzen dira.
Orain berriz, beste gauza batzuk egin behar duzu.
Hasieratu datuak, uninitialized datuak.
Dutenek bi memoria swaths global aldagai buruzkoak dira, eta horrek
askotan ez duzu erabili.
Baina batzuetan egiten baduzu, azkenean han baita.
Gero, beste gauza batzuk.
Inguruneko aldagaiak, ez dugu pasatzeko denbora asko.
Baina gero, bi gauza garrantzitsu bat atzera etorriko da honetan zehar
seihilekoan, pila eta zeure.
>> Zure ordenagailuaren memoria Beraz, programa bat exekutatzen ari da gordeak
pila izeneko zerbait, eta zerbait zeure deitu.
Eta ez gabiltza gaur egun zeure buruz hitz egingo, baina egingo dugu
pila buruz hitz egiteko.
Eta pila ondorioz sortu conjure bisuala jantokia bezalako
bazkari Mather House erretiluak, edo lekuan izango gertatuko duzu, non
jantokia langileek garbitu egunero.
Pilatu dute gora solairuan.
Eta, era berean, memoria batean zerbait jarriz, ideia hau da
pila, pila bat jarriz, zerbait zerbait pila bat jarriz.
Eta zer esan nahi dugu?
Beno, goazen argazki honen erdia beheko Handiagotzeko, zure ordenagailuan
RAM, honako hauek proposatzen.
Bihurtzen da a.out bezalako programa bat exekutatzen baduzu edo kaixo, edozein
programa duzula idatzi,
berriz, zero eta bai horiek dira zure disko gogorrean kargatzen den
Epe luzeko biltegiratze, egonaldiak, nahiz eta plug tira
RAM kargatzen.
RAM disko gogorretan baino azkarrago.
Disko gogorretan baino txikiagoa da.
Baina programak non bizi zaren exekutatzen ari da.
>> Beraz, egin klik bikoitza Mac edo PC bat programa bat da kargatu
RAM sartu disko gogorrean.
RAM kargatu bezain laster, zero eta bai modu goialdean joan,
beraz, testu segmentu deitzen zaio.
Baina, ondoren, ahalik eta azkarren zure programa benetan hasten da martxan, nagusi
funtzioa deitzen da.
Eta nagusiak, ikusi dugu, askotan aldagai lokalak ditu.
Eta ints eta kateak eta karakteretan eta atsegin du.
Beraz, zure programa duzula idatzi edo programa duzula bada
bikoitza klik egindakoan aldagai batzuk erabiltzen nagusien barruan, amaituko dute
Zure memoria-pila behean, eta, beraz, hitz egiten.
Orain, zehazkiago, zer du horrek benetan esan nahi?
Ginen, besterik gabe esan nahi du gauzak kopurua bada -
byte RAM ordenagailuan ginen bada, konturatu
byte kopurua zero izan daiteke.
Byte zenbaki bat, bi, hiru, lau, bost, sei, guztiak izan daiteke
bidea sortu nahi -
2 milioi modu han goialdean izango litzateke.
Beraz, beste era batera esanda, RAM edo memoria buruz hitz bytes dagokionez,
besterik gabe esan nahi du norbaitek erabaki du bakoitzak zer kopuru
memoria zatiak ere.
>> Beraz, int bat 32 bit behar duzu, edo 8 char bat bit, non behar duzu
amaituko dute memorian?
Beno kontzeptualki, amaitzeko besterik ez dute honen behealdeko
gauza pila izeneko.
Baina zer da interesgarria gaur egun funtzio nagusia deitzen da.
Demagun foo, izen bat besterik ez arbitrarioa izeneko funtzioa.
Zer gertatzen da nagusia memoria pila honen behealdeko da.
Foo nagusiaren gainean jarri memorian.
Beraz, foo aldagai lokalak edozein amaitzeko kontzeptualki goiko sort
nagusian.
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.
Beraz, modurik errazena, programa informatiko bat exekutatu memoria bat da
idatzi funtzio hori ez da inoiz itzuliko.
>> Horrela, esate baterako, dezagun erakusteko askoz batekin
nahita buggy programa.
Dezagun aurrera eta ez # , int main (void), besteak beste.
Eta ez noa (2> 1), ziurrenik ez du inoiz bitartean
Gurekin aldatu.
Eta aurrera me orain eta zer printf.
Egia esan, hori gutxiago bisualki interesgarria izango da.
Egin dezagun.
Int (i = 0; i> 0).
Dezagun akats hau, i + +.
Eta dezagun ez printf hemen.
Dezagun landu zer predikatzen nintzen.
Dezagun hemen metodo bat.
Void abesbatzak, eta esan int i dugu.
Eta gero, esan printf noa
oh, dezagun hau interesgarriagoa.
Dezagun benetan ez da ezer guztiak inprimatu at.
Dezagun besterik ez egin.
Los chicos del coro (i).
>> Guztiak eskubidea.
Beraz, hau da buggy zergatik delako?
Hau egiten dut igo dudan bezala programa ez delako ezer benetan egiten
interesgarriak.
Baina hori ez da helburua.
Helburua da programa horren funtzio nagusia ez zer, itxuraz idazteko?
Dei bera.
Eta, izatez, ez dugu behar loop.
Dezagun, nahiz eta errazteko hori beraz, ez da benetan ikusmena galtzen
oinarrizko bug.
Main deiak abesbatzak koru batzuk kantatzen.
Ondoren, zerbait ergelak nuen, koru eta abesbatzak dei izan nuen, eta bere gain hartu dudalako
beste norbaitek ezartzeko agian.
Eta orain, hau ez da oraindik biltzeko.
Zer egin behar dut?
Prototipoa behar dut gogoratzen.
Beraz, hemen behar dut void abesbatza (int i);
>> Beraz, gaur egun, I erorita badago hemen.
izatez, dezagun leihoa handiagoa erabili.
Dezagun aurrera eta koruak egin.
Erabili declarer identificado i.
Oh, hori izan zen ergelak.
Ez dugu behar argumentua.
Dezagun besterik ez egin.
Nahi Modu horretan hasi ginen.
Litzateke programa askoz errazago idazten.
Beraz, ez.
Goazen orain nire terminal-leihoan, re-run Clang.
Eta hemen gara.
Hori izan zen oso azkar.
Zer da benetan gertatu da, baina?
Beno, gaur egun inprimatu lerro gehitu dut, eta, beraz, ikusi ahal izango dugu.
Hargatik printf esan me, demagun, naiz hemen I.
Ados, aldagai ez, utziko dugun bezala.
Egin dezagun berriro exekutatu me.
Let me re-run abesbatzak.
Eta zatoz.
Jarrai joan.
Bat alde batera utzita, zergatik kraskatu egin ez da oraindik?
Segmentaziuo hutsegitea gertatu super azkar baino lehen.
[INAUDIBLE]
DAVID J. MALAN: Zehazki.
Beraz, denbora inprimatu hartzen du.
Ordenagailua parte lan gehiago hartzen du, besterik ez da.
Eta ez da.
Segmentaziuo hutsegitea.
>> 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?
Beno, zure ordenagailuaren memorian nola banatuta dago, honi buruz uste baduzu
gertatzen nagusia izan da.
Baina hemen.
dezagun deitu abesbatza hau, eta dezagun koru hau deitu.
Eta orain egin behar dut nire estetika izanez gero eskuinera, hau besterik ez da koru esan nahi du,
koruak, koruak, koru, abesbatzak, abesbatzak, abesbatzak, ad nauseum.
Eta azkenean, zer gertatuko da?
Big picture literalki bada hau, zer da besterik ez kontzeptualki gertatzen da?
Pila overruns zeure.
Edo okerrago, inbaditu besterik ez duzu dena, testu-segmentu barne, hau da,
zero eta bai ordezkatzen dituzten programa.
Azken finean, hau da, besterik gabe, super, super txarra.
Eskuin?
Zure programa spiraled kontrola.
Modu memoria asmoa duelako ergelak baino erabiltzen ari zara
akatsa, kasu honetan.
Edo, kasu honetan, oso nahita egin funtzio bat bera deituz.
Orain hau da, ez da txarra.
Eginkizunak beren kabuz deituz benetan botere handia du
denean erabiltzen ondo.
Ez dut erabili behar bezala hemen.
>> Beraz, hau da, ez da txarra.
Baina inoiz ez dut benetan neure burua deituz uzteko, funtsezkoa da
Programa honen ahultasuna hemen.
Beraz, non egingo dugu hori guztia?
Beno, zer ari den benetan gertatzen ari den?
Noiz gehikuntza funtzioa deitzen diot nik, adibide horiek egiten genuen bezala,
1 pasatzen dut sartu bezala balio bat daukat
Zenbaki bat kopia bat pasatzen dut.
Beraz, honako hau gertatzen da.
Hargatik gehikuntza adibide sartu.
Eta hemen tipo hau.
Hortaz, hona hemen zer ari den benetan gertatzen ari dena.
Noiz gehikuntza deitzen dut, eta pasatu x I, pictorially zer
hemen hau egingo da.
daukat gordetako balioa 1 bada, eta benetan deitu I gehikuntza,
gaur egun izeneko koruak
Bai, hori me bota off hemen.
Hargatik deitu gehikuntza hau.
Eta ez dakigu zer hurrengo funtzioa hau izango da.
Beraz, zer ari den benetan gertatzen ari da hemen nonbait nagusian, zatika daukat
memoria kopurua 1 gordetzeko.
Gehikuntza deitzen diot nik, beste zatia memoria bat dut erabiltzen, baina gaur egun I
1 kopia.
Balio hori Kontatzailea I, 2 bilakatzen horribly idatzia
pantaila hemen.
Baina orduan, zer gertatzen den bezain laster gehikuntza itzultzen?
Memoria hau lortzen entregatu back sistema eragilea, horrek esan nahi du
dago ezer erabilgarria egin duzun.
Nagusia izan zen jatorriz jasotako oraindik benetan.
>> Beraz, non egingo dugu?
Beno, bihurtzen da memorian atzera sekuentzia kopiak behar duzu
bytes stuff sartu jarri ahal izango duzu
Eta bihurtzen da dut dagoeneko ikusi dugun zerbait datza jarriz
gauza Atzera itzuli.
Zer da kate bat, aste bat eta orain aste bi oinarritzen da?
Beraz, pertsonaia bilduma bat besterik ez da.
Beraz, izarrekin bihurtzen da, zenbakiak bezala jarri dezakezu memoria, eta, era berean, egin dezakezu
jarri pertsonaiak memorian.
Eta behin jarriz karaktere hasten gara memorian itzuli ahal izateko Itzuli
back, bihurtzen da gauza errazena bat bezala begizta edo
bitartean begizta bat, batetik bestera joateko aukera izango dugu
Ezkerretik eskuinera kate batean karaktere baino gehiago
eta hasi massaging pertsonaia, hainbat guztira.
A B. B C. izan daiteke, beraz, azken finean, hartu ahal izango dugu bihur dezake
English esaldi benetan zentzua, eta bihurtu horietako bakoitzaren
letrak aldi berean bat utzi gure ordenagailuaren memoria paseoan
eskubidea benetan enkriptatzeko.
>> Beraz, dezagun gure bost minutuko break hemen, eta itzuli gara, zaitugu
Prozesu hau hasteko informazio scrambling.
>> Guztiak eskubidea.
Beraz, kripto batzuk murgiltze dugu aurretik, eta gauza horiek izeneko array, let me
sentitzen dut benetan I mota muddled delako, edozein galdera pausatu batzuen
gai horiek.
Hargatik konpondu ahal bada.
Beraz, bueltan balioak buruz besterik ez dugu hitz egiten.
Argumentuak buruz hitz egin dugu.
Eta hitz egin zuen nozioa gara, itzuli gara eta asteetan
etorri, memoria begiratzen Stacked horien sorta bat osoa
erretiluak, eta, beraz, hitz egiten.
Behetik gora, hala nola, erretilu bakoitzean lortzen pilaketan jartzen dela adierazten du
funtzio bat deitzen ari da.
Edozein galdera?
Beraz, nola utzi galdera bat eskatuz saiatu me.
Dela spoiling gordetzen dut, baina orain it's - you've boy aurpegia ikusten.
Beraz, itzuli dugu hori.
>> Beraz, galdera bat hemen galdetu.
Dezagun back hau errazteko me zer izan zen lehenago gure Q & A. batzuk aurretik
Izan ere, gehikuntza parentesi irekiak ditu, int zenbakia, itxita
parentesi.
Zer int kopurua ordezkatzen du?
[INAUDIBLE]
DAVID J. MALAN: argumentu bat.
Ongi da, baina zer argumentu bat behar du?
[INAUDIBLE]
DAVID J. MALAN: Barkatu, zer da hori?
HIZLARIA: 3 Something sartu pasatzen duzu
DAVID J. MALAN: Ongi da.
Beraz, zerbait pasatzen zaudela
Eta, oro har, sarrera besterik ez da.
Ari zaren bizitzan funtzio bat, eta funtzio horren helburua izanez gero idatziz egin behar da
zerbait beste denbora pixka bat erabiltzen duzun bakoitzean, eta gero modu bakarra
benetan gertatuko sarrera badirudi horrela
zerbait desberdina egin ahal izango da sarrera hori aldi bakoitzean.
>> Beraz, bi gauza zehaztu behar den funtzio bat hartzen du inputak behar duzu.
Sarrera horretan eman nahi duzun izena, guztiz zehaztu behar duzu
duzu zure erosotasuna eta horrela dezakezu erreferentzia funtzioa
dira, zuk zeuk idazten 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 behar duzu zer
datuak idatzi da,
neurri handi batean, beraz, zenbat bit daki da
aldagaia esleitu.
Sei izan baitezake
Barkatu, ez da sei izango da.
16 izan daiteke.
8 izan daiteke.
32 izan daiteke, nahiz eta 64.
Baina ordenagailua jakin behar da.
Orain ezkerraldeko int adierazten du zer, ordea?
[INAUDIBLE]
DAVID J. MALAN: Zer da hori?
[INAUDIBLE]
DAVID J. MALAN: funtzioaren mota 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 bueltan erabiltzen duzu.
Eta gero, zer ari zaren itzuli gako-eskubidea bada
zenbaki oso, Orduan, zer agindu dugu koherentea da, hain zuzen.
Ezin duzu zerbait atsegin dute hau
kaixo, mundu
hori kate bat delako.
Jakina, ez da zenbaki oso bat.
Beraz, azken finean, zama da benetan gurekin, programatzailea, espezifiko gisa
zer ari gara eta itzuli ondoren, benetan itzuli buruz.
Eta gero Tad argiagoa testuinguruan -
berriro da.
Testuinguru -
sorpresa une bat besterik ez da.
Testuinguru hemen orain zure ordenagailuaren memoria, hau da, berriro ere,
gigabyte, bi gigabyte, edozein.
Agian gehiago da.
Agian gutxiago da.
Baina ordenagailua views hainbat atal izatea.
Zerbait jaisten.
Beste zerbait doa han.
Desberdinak stuff erdian doa.
Eta gaur egun, hasi besterik ez dugu istorio hau kontatzeko.
>> Baina itzuli gara baino gehiago une honetan.
Oraingoz, memoria zati bakarra zaintzeko benetan gara testu segmentu
bakarrik adierazten duelako zero eta bai
Clang du outputted.
Beraz, a.out bezalako teklatua komando bat exekutatzeko, edo bikoitza
Mac OS edo Windows ikono bat klik egin, zure programa zure disko kargatu
RAM sartu gidatzeko.
Eta hori zure ordenagailuaren RAM goialdean plopped, eta, beraz, hitz egiten.
Orain berriz, zure programa hasiko da martxan eta nagusiak lortzen izeneko
programa edo idatzi duzun programa Microsoft edo Apple idatzi, bere edozein
aldagai lokalak amaitzeko, hor behera, zure ordenagailuaren memoria, behealdean.
Baina funtzio nagusia beste deitzen badu bera aldagai edo
argumentuak, amaituko dute gainean.
Eta deiak funtzio hori zerbait bada, amaituko dira, batez ere,
batez ere, batez ere.
Eta behin bakarrik funtzio bat egiten da, erretiluak pila, eta, beraz, ez du exekutatzean
hitz egiten, hasteko beheko eta txikiagoa.
Eta hau da orduan, hitz batean, azaltzen du zergatik, kubo deitu
edo gehikuntza deitu
balioa kopia bat pasatzen ari zaren.
Eta zer esan nahi duen pictorially literalki ari zaren idazten
memoria beste multzoko 1, 1, 2, kasuan aldatzen
gehikuntza -
edo, kuboaren kasuan, 8 -
eta, ondoren, memoria hori bota bezain laster gehikuntza edo kubo
funtzioak.
>> Galdera.
[INAUDIBLE]
DAVID J. MALAN: Non - global aldagai zer gordetzen dira,
gaur egun hasieratu datuak edo uninitialized datuak.
Aldea, aldagai global bat izanez gero, eta esleitu
Berdintasun ikurraren balio bat berehala, eta ondorioz goialdean dago.
Eta besterik ez duzu esaten bada int x puntu eta koma balio ez duten, eta ondorioz da apur bat
RAM txikiagoa da, besterik gabe, hitzarmen.
Beste galdera.
Guztiak eskubidea.
>> Beraz, argazki hau atzera etorriko da lortuko dugu zer egin dezakegu indartsuagoa
ordenagailua.
Baina orain, egin ditzagun intro labur bat kriptografia, mota zehatz
kriptografia aurkituko duzu, ez dela munduko arazo guztiak konpontzeko, baina ez konpontzeko
horietako batzuk.
Kasu honetan hemen, gako sekretua kriptografia izeneko zerbait egin behar dugu.
Eta gako sekretua kriptografia, izena dioen bezala, bere segurtasun ondorioztatzen
sekretu bat.
Horrela, esate baterako, eskola kalifikazioa Oraindik itzuliz gero, eta ari zaren pasatzen
maitasun apur sekretua mutil edo neska ari zaren birrintzeko gutun baduzu
gainditu nahi duten ikusleen bidez, seguruenik ez idatzi
English ohar edo edozein izanik ere zure ama-hizkuntza, hala nola, baizik eta, duzu
enkriptatu egin dezake.
Edo, besterik gabe dezakezu bidali testu-mezu bat egun hauetan.
Baina benetan dezakezu gainditu ohar bat ikasgelan zehar.
Eta hori egiteko modu bat, hala nola, seguru, zure lagun eta irakasle
ez dakit zer idazten ari zaren, zatoz gora agian nahiko simple
algoritmoa -
gazte baliteke bazenu
besterik ez Scramble hitzak.
Beraz, A idazteko ordez, B. idatzi dezakezu B-ren ordez, idatzi dezakezu
C. beharrean C, D idatzi dezakezu, eta abar.
Edo etorri izan da letren itzulpena sofistikatuagoa
hainbat gutunak.
Baina harrapatzen nori ari zaren ohar hau bidaltzen mutil edo neska behar da
jakin zerbait.
Zein da, noski?
Like Zein da zure sekretua da.
Bezala, As eta Bs, eta Cs eta Ds arteko kartografia hori zer da?
Bat besterik ez da gehituz, eta, beraz, hitz egiten, bakoitzak letrak joan
B, B eta C?
Da hori baino gehiago konplexua?
Beraz, zuk eta zure bihurritu behar dute informazio hori sekretua.
Baina ez da harrapaketa-22 Hemen mota.
Hau lehen aldiz bada maitasun eskutitz honen bitartez bidaltzen ari zaren
klasea, mutil edo neska bat dago sekretua, nahiz eta jakin nola?
Beraz, gako sekretua kripto ez munduko arazo guztiak konpontzeko.
Eta ez da benetan harreman bat atzera etorri egingo dugun norabidean
seihilekoa amaitu aurretik.
>> Era berean, gurekin ez seguruenik inoiz bidali
era berean, ez gurekin gehienak ez daki norbaitek lan egiten du, esate baterako,
Amazon.com.
Eta, hala ere, gutako askok ziurrenik erosi stuff Amazon.com at.
Eta irakasten dugu eta bere gain hartuko horiek e-merkataritza
transakzio seguruak dira.
Eskuin?
URL ziurrenik dio https.
Ez da agian pixka bat silly giltzarrapoaren ikonoa nonbait.
Zure kreditu txartelaren informazioa bermatzeko kriptografia mota batzuk
duzu eta Amazon.com artean.
Eta, hala ere, kriptografia sekretu batzuk ezagutzeko, eta oraindik ez dut
Amazon at edonork ezagutzen, eta zalantzarik gabe Nik ez edozein motatako antolatu
Amazon at norbait sekretua, nire ordenagailuan edo nire nabigatzailea nola egiten da hau?
Beno, bihurtzen da beste kriptografia mota guztiz konpontzen dela out
arazo hori.
Baina gaur, simple, non antolatu dezakezu dugu arreta
sekretu batzuk ezagutu aurrera, plus 1 edo As eta Bs arteko mapaketa batzuk bezala.
>> Kriptografia-prozesua, oro har, dakar.
Testu arrunteko batzuk, hemen ezkerreko irudikatuta duzu.
Exekutatu nahiko duzu algoritmo edo prozedura mota batzuetan zehar
enkriptatzeko.
Agian hori besterik ez bihurtzen A B, B C. bihurtzen Eta gero, azkenean zurekin
Cipher testua.
Bien bitartean, behin zure bihurritu sekretu oharra jaso zuen, eta ondoren
desenkriptatu, oro har, algoritmoa, alderantzizkoa da, beraz, iritsi
testuaren kopia arrunta.
Orain daude fisiko honen incarnations.
Esate baterako, hori da apur bat sekretua 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 arren.
Eta barrutik, zenbaki batzuk, hala nola, hori da benetan
eraztuna, mota dezakezu buelta kanpotik, baina barrutik ez lerro
letrekin zenbakiak.
Eta clip Oraindik duzu ikusi - horietako batzuk ikusi ahal izango duzu, 24/7
Gabonetako Story A izeneko pelikula bat Gabonetako denboraldian zehar.
Little Ralphie zela irrikaz zer little umezurtz irudikatu duzu
Annie sekretua mezua izan zen hura izan jakinaraztea, eta uste dut,
zenbakizko mezuak osatzen bat serieko koadroan.
Eta little karta guztiak pilatu ziren izan
Zereal-koadroan.
Bidali sartu izan zara
Itzuli sekretua deskodetzailea ring izan duzu, beraz, azkenik dezakezu irudikatu
mapaketaren hizkiak eta zenbakiak artean zer da out,
edo letrak eta letrak.
Beraz, ematen dizut Gabonetako Story A clip labur honen pset 2 motibatzea eta
gure eztabaida, une batean, array.
Beraz, hemen Ralphie dugu.
>> [Bideo-erreprodukzioa]
Be ezagutzen eta Hainbat Ralph Parker egileak izendatu
umerzurtzak Annie Secret Little Circle kide guztien eskubidea da
ohoreak eta onurak bertan agertutako gertatzen.
Sinatua, Little umerzurtzak Annie.
Berretsiak, Pierre Andre!
Tinta!
Ohore eta onurak, dagoeneko bederatzi urterekin.
Goazen, goazen berarekin.
Ez dut kontrabandistak eta piratak buruzko jazz behar duten guztia.
Bihar gauean entzun Black, abentura amaitu
Pirate Ship.
Orain denbora Annie mezu sekretuaren duzu kide
Secret Circle.
Gogoratu, kids, Annie Circle Secret kideak bakarrik deskodetu
Annie sekretua mezua.
Gogoratu, Annie arabera.
Ezarri zure pin B2.
Hona hemen mezua da.
12, 11 -
-I am nire sekretua lehen bileran.
-14, 11, 18, 16 -
-Pierre ahots handia gaur gauean izan da.
Gauean mezua benetan garrantzitsua izan zela esan nuen.
-3, 25.
Annie bere burua mezu bat da.
Gogoratu, ez inori.
-90 Seconds geroago, naiz etxeko gela bakarra dut, non bederatzi mutiko bat
pribatutasuna eta dekodetzailearen eseri.
AHA, B. dut hurrengo joan zen.
E. lehen hitza izango da.
S. zen errazagoa datozen orain.
U.
-Oh, goazen, Ralphie.
Joan dut.
-I'll behera, ma.
-Gee whiz.
-T, O. ziur.
Zer ziur?
Zein izan da Little umerzurtzak Annie esan nahian?
Zer ziur?
-Ralphie!
Randy du got joan da.
Atera duzu?
Guztiak eskubidea, ma.
Eskubidea out izan dut.
-I gertuago izan zen lortzean orain.
Tentsioa partidua, berriz, ahazteko modukoa izan zen.
Zer izan da?
Planetaren patua oreka zintzilikatzeko.
-Ralphie!
Randy du got joan.
-I'll out, izarrekin negarrez ozen.
Gee, ia ez dago.
Nire hatz hegan.
Nire kontuan altzairu tranpa bat izan zen.
Poro bakoitza vibrated.
Ia argia izan da.
Bai, bai, bai, bai.
-Ziurtatu zure Ovaltine edan.
Ovaltine?
Crummy merkataritza-A?
Puta baten semea.
[END bideo-erreprodukzioa]
>> DAVID J. MALAN: Beraz, kriptografia dugu.
Beraz, nola ordenagailu bat gauzatzeko joan ahal izango gara
bezalako gauzak ordezkari?
Beno, modu bat behar dugu geure burua adierazteko apur bat malgutasunez baino gehiago
Beraz, gure aldagai urrun onartzen.
Izan dugu ints.
Izan dugu karakteretan.
Izan dugu karroza eta bikoitzak eta beste batzuk.
Baina banakako memoria zuzenak dira benetan ez duten aukera ematen digu
adierazteko hitz eta esaldi eta esaldi bezalako gauzak.
Izan ere, deitzen dugu, hala nola gauzak kateak.
Baina hori ez dela benetan CS50 in sinplifikazio bat besterik ez dugu agindu
liburutegia itzuli zuritu asmorik ari gara.
>> Eta beraz Horretarako hemen hasteko.
Dezagun aurrera eta ireki fitxategi bat
fitxategi hauek guztiak daude eskuragarri online ohikoa den bezala -
izeneko array.c kateak zerikusirik ez arazoa konpontzeko, baina hori margotzen
izeneko argazki hemen zerbait nola erabili genezake array bat.
Array bat datu-mota bat da.
Aldagai mota, ordenatzen da, hainbat datu-mota txikiagoa
barruan back, Atzera itzuli.
Horrela, esate baterako, nahi dugu ematen dizu programa txiki bat idatzi nahi izanez gero, zure
quiz batez bestekoa 50 bezala ikastaro bi galdetegiek, Could oso erraz
programa hau idatzi, are gehiago, azken astean material batzuk oinarritutako
aldagai GetInt eta pare bat erabiliz.
Int quiz1, int quiz2, eta nahiko erraza da.
Agian da 10, 20 kodea, max lerroak, galdetzen duen programa bat ezartzeko
bi galdetegi partiturak eta, ondoren, erabiltzaileak batez besteko horiek gehituz computes
elkarrekin, bi, zatituz eta, ondoren, emaitzak inprimatzeko.
Lehenago egin izan dugu nahiko erraz, gaur egun horren ondoren
minutu batzuk.
>> Baina arazoa da 50 suposatzen duten hiru galdetegiak edo lau.
Demagun programa bera erabili klase bat izan nahi duzun
astero galdetegiak.
Pentsatu klase bat du astero galdetegiak.
Seihileko bat 16 edo, beraz, aste bezala bada, gaur egun 16 aldagai duzu
int quiz1, int quiz2, int quiz3, int quiz4.
Erredundantzia hau ikusi bezain laster hasten zara, hau kopiatzeko eta itsasteko
kodea, hasteko modu bat hobea izan ziren nahi duzun egin beharko luke.
Eta zorionez, array, ez 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.
Konstante bat sortuz giza konbentzio hiriburua guztiak erabili ahal izateko
gutunak, besterik gabe, beraz, nabarmentzen da benetan zure kodea.
Eta berezia keyword C erabiltzen duzula # define.
Beraz, esan baduzu, # define, eta ondoren espazio bat, eta ondoren erabili nahi duzun hitza
etengabeko izena, eta, ondoren, etengabeko balio.
Oharra Beraz, hau da, aldagai bat zerbait esleitzea desberdina da.
Ez dago berdin ikurra.
Puntu eta koma ez da.
Hau da, oro har, preprocessor direktiba deitzen zaio, baina gehiago
Garai hartan beste.
>> Orain, hau sortzen izeneko unchanging balio horren benetako galdetegiak
zenbakizko balioa 2 da.
Beraz, edozein lekutan galdetegiek ikusten duzu, galdetegiek, galdetegiek fitxategi honetan zehar,
kopurua besterik ez 2.
Orain, nagusian begiratuz gero, ikus dezagun nola obra honetan.
Hasieran, pixka bat críptica begira.
Hala ere, aste batetik stuff guztiak da.
Galdetu kalifikazio erabiltzaileari.
Nola egiten dugu hori?
Beno, line 22 -
hau da, benetan parte mamitsuena
Mugikor bat, baina ez bakarra mugikor bat deklaratzen dut.
Geratuko naiz, hobeto esanda, koma mugikorreko balio array bat.
Aldagaia da deitu behar kalifikazio engaiatuko hemen.
Baina sintaxia berrien pieza bakarra eta, ondoren, parentesi artean karratu hauek dira, hain zuzen ere
dudan karroza kalifikazio esan zuen, eta, ondoren, irekita parentesia eta gero, zenbaki bat.
Oharra, hau da, konstante bat bada, hau da, besterik ez genuen hau atsegin dute.
Horrek esan nahi du, hey ordenagailua, emadazu bi karroza, eta utzi kolektiboki deitu
horien kalifikazio.
Hau atsegin prozesua askoz ere lapurtera kontrastea da.
Float grade1, flotatzen grade2, eta abar.
Beraz, array bat onartzen du ideia hau ezartzeko aukera ematen digu, baina askoz gutxiago messily,
kode lerro bat idatzi ahal izango dugun ordez, esan, 16, 16, besteak beste,
aste seihilekoan.
Beraz, ez nuen nahi hard-kodea 2 arazorik badago honi buruz uste duzulako
logikoki - demagun datorren urtean CS50 3 aldaketak galdetegiak ordez.
Eta 2 zenbakia izan dut hemen.
2 zenbakia izan dut hemen.
Oso lapurtera eta oso erraza bihurtzen da torlojua eta nahi gabe aldatu
balioa 3 eta 2 beste balio batzuk galdu.
Beraz ordez abstraktua dut hau kanpoan, eta etengabe hau erabiltzeko, bere gisa
izena iradokitzen du, aldaketak inoiz ez.
Eta, orain, ez du axola ala ez hainbat galdetegiak urte honetan edo hurrengoan, I
besterik ez aldatzeko leku batean, hemen goian.
>> Beraz, hori da dena konstantea da.
Bien bitartean, ezaugarri berri kontzeptuala array bat dela.
Beraz, karratu parentesi artean ematen me asko karroza eta ni aukera ematen dizu kolektiboki
deitu horien 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.
Beraz, printf ("quiz kopurua% d% d") besterik ez dut nahi delako eman me quiz inprimatu
zenbaki bat, bi, eta, ondoren, bi bi.
Beraz, hau da gauza bat guztiz estetikoa.
Baina interesgarria parte line 27.
Bi leku bat bete ahal izateko, puntu mugikorreko-
balioa, erabili berriro karratu parentesi artean.
Kasu honetan, i erabiltzen dut begizta honen i lortzea delako hasi
zein balio, itxuraz?
0.
>> Beraz, begizta honen lehenengo iterazio da, nahiz eta I
idatzi hau kodean.
Baina begizta honen bigarren iterazio da, nahiz eta I
idatzi hau nire kodea.
Baina naiz I aldagai bat erabiliz ezin hobea da, izan ere, izen gisa
iradokitzen du, bere balioa da iterazio bakoitzean aldatuz.
Beraz, array bat Leku betez naiz aldi berean.
Zer da array hau ez itxura?
Beno, arrazoia honetan pantailan laukizuzen simple super marraztu dut hemen
Hori dela eta aurretik izan zen.
Array bat besterik ez da, beste zatia memoria zatia memoria bat,
, beste zatia memoria bat, eta abar.
Beraz, nire array tamaina 2 bada, hemen kasu honetan, guztiak izango nuke egiten
Nire quiz partiturak idaztea, hemen.
100 dut hau.
Eta gero, 99 dut hau.
Ondoren, baliteke memoria honetan ere ez da erabili dut soilik eskatu
2 tamaina array bat ordenagailuan.
Karratu horiek oraindik ez dago.
Eskuin?
Oraindik bi RAM gigabyte, besterik ez bada ere Oraindik duzu
bi karroza eskatuz.
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 alboko bat da, barruan gauzak jarri ahal izango duzu.
>> Orain hau gertatzen da, ondoren egin besterik ez aspergarria aritmetika batzuk.
Joan I behera bada hemen, hau da, non array zehar gero batetik bestera joateko.
Array balio guztien summation naiz.
Eta gero, Kopako funtzioa erabiltzen dut hemen benetan egiten
Laburbilduz galdetegiek arabera banatzen da.
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 quiz, 2 arabera banatzen da, eta, ondoren, inprimatzeko
int bat 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.
Eta barkatzen oraingoz 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 berri honetan trikimailu bat da -
strlen, kate-luzera.
C batekin dator funtzio bat gainditu baduzu kate bat, kontatzen da
kate horretan zenbat karaktere dira.
Hori da dena.
Izan ere, hori strlen katea luzera ordez besterik ez delako
gehiago succinct.
Duela 30 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.
Beraz, line 24, informatika diot, eman dit pertsonaia bat, zortzi
bit, eta deitu c.
Baina, zer da hau eskuinean esaten?
Ingelesez, zer adierazten duten?
[INAUDIBLE]
DAVID J. MALAN: Zehazki.
Array en aurreneko karaktereari Give me.
Edo gehiago, oro har, emaidazu array pertsonaia i-garren.
Eta konturatzen garrantzitsua da gaur egun ordenagailu zientzialari gisa, benetan ari gara
0 hasita.
Ez daukazu diskrezioa hau egiten hasteko.
Orain ordenagailuaren itxaropenak arabera jokatu behar duzu eta
[0] hutsetik zenbatu izan delako
karaktere kate bat.
[1] da, bigarrena izango da.
[2] da hirugarren, eta abar izango dira.
Programa hau, beraz, konpilatu bada - hau da, berriro ere, katea1.
>> Beraz, egin katea1.
Eta orain katea1 exekutatu dut nire terminal-leiho batean.
Sarrera da, zain, beraz, esan genezake, David idatzi dut.
Sartu.
Eta orain DAVID bistaratzen guztiak lerro desberdinetan
nabarituko zer egiten ari naiz.
Karaktere bat naiz inprimatzeko aldi berean.
Orain ez sakontzeko, gaur egun hau.
Baina une bat ezabatu dut egiaztapen hau ago hemen.
Bihurtzen da, erabiltzaileak, gaizki portatzen adversarial, edo, besterik gabe,
nahastu, ez duzu huts egin luze kate bat emateko.
Okerreko tekla sakatzen duzun bada, teklatua, eman dezakezu.
katerik at.
Edo Oraindik maltzurren bada, saiatu gigabyte bat merezi itsatsi
saiakera kate hau bete.
Eta ordenagailua memoria agortu bada, bihurtzen ari dugu
itzuli izeneko null balioa berezi honetan.
Beraz, oraingoz, besterik ez daki izeneko null balio hau berezia da
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.
Baina zer loop Une honetan buruz?
Eta atzera jo dut aurreko adibideak.
Beraz, bi bertsioak da.
Bertsio bat da.
Bat, bi, bat, bi.
Beraz, strlen deia da, non?
Loop lehen zati da.
Zergatik egiten ari naiz pentsamenduak Any?
Bai.
[INAUDIBLE]
DAVID J. MALAN: Beraz, ez dugu deitu funtzioa aldi bakoitzean bakarra.
Hain zuzen ere.
Gogoratu loops for Oraindik dutela super simple sort behin
ulertzen hori hasieratzeko da,
egoera, eta eguneratzea.
Arazoa da baldintza guztietan gertatzen
begizta-iterazio.
Eta beraz, hemen adibide honetan, zer buruz txarra da, hain zuzen,
hori da nire egoera?
Strlen berriro deitzen ari zara, eta behin eta berriro.
Baina behin DAVID idatzi dut, katea luzera bost.
Eta ez da begizta-iterazio bakoitzean aldatu delako
esaldia da oraindik D-A-V-I-D. Beraz, zer bihurtu iradokizun bat da
gero eta garrantzi handiagoa ideia diseinua erabaki bezala ezagutzen dena, non besterik ez
ordenagailua alferrikako lana egiten.
>> Orain bezala-pset 2, pset 2 Sneak preview estandarra edizioan
erronka batzuk zifraketen zenbakia, batzuk benetan ezartzeko
enkriptatze algoritmoak kopurua, beraz, ahal duzun bai encrypt eta desenkriptatzea
sekretua mezuak, askoz bat Ralphie bezala dekodetu.
Edizioa pset 2 hacker, apur bat urrunago joan goaz.
Eskuz fitxategi bat ari gara ordenagailu sistema bat dauka benetako
izenak eta benetako enkriptatutako pasahitzak osoa sorta, eta erronka
hacker edizioa egingo da, pasahitzak eta zifra horiek crack ahal izateko
zer kriptografia aurkituko duzu, edo zer sekretua benetan erabiltzen zen out
sortzeko pasahitzak horiek.
Eta hori egin ahal izateko, ezaugarri berri bat erabiliz hemen C izango dut eman goaz
besterik ez, demo komando-lerroko argumentu gisa ezagutzen.
>> Beraz, izarrekin 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 idatzi ondoren
zure komando-lerroa programaren izena.
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 egiteko gai izan dugu, pset 2 hasten da,
honen antzeko zerbait.
Egiten dut argv1 bada, adibide bat itzuli gara astelehenetan, eta exekutatu
nabarituko du, badirudi ez dela 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 duen sarrera lortuko dugu
gonbitan idatzitako nagusia aldatuz, asteburu honetan hasten da, int
main (void) nagusia (argc, argv) Int.
Eta horrela jaio egingo da komando-lerroko argumentuak.
Eta behin, benetan sofistikatuak honetan, idatzi ahal izango duzu
Benetan trippy programak, hala nola, hau hemen, doan eta batez ere haratago
funtzionalitatea batzuk egin ditugu, beraz, orain arte, baina nahiko indartsua.
>> Beraz, honetan utziko dugu pantailan.
Eta zuk, astelehena, ikusiko dugu.