>> [Musika jotzen]
>> DAVID J. MALAN: Ondo da.
Hau CS50 eta hau da, Astea 2 hasiera da.
Eta hori baino gehiago gogoratzen dituzu iragan aste pare,
Zuk dugu sartuz ordenagailua zientzia eta, aldi berean, programazioa.
>> Eta istorioa hasi ginen bidez Scratch, hizkuntza grafikoa
MIT Media Lab-tik.
Eta gero, azken aldian, azken astean, egin dugu
handiagoa egiteko bat aurkeztu behe-mailako hizkuntza ezagutzen
C, zerbait hori guztiz textual bezala.
Eta, hain zuzen ere, azken denbora dugu testuinguru hartan esploratu
kontzeptu kopuru bat.
>> Hau, oroitzapen, izan zen oso Lehenengo programa begiratu dugu.
Eta programa hau, nahiko besterik gabe, inprimatzen, "kaixo, mundua."
Baina ez da hainbeste seeming magia gertatzen.
Ez dago #include hau da angelu parentesi hauekin.
Ez dago int da.
Ez dago (void).
Ez dago parentesi, kizkur giltza, erdi-puntu bikoitza, eta, beraz, askoz gehiago.
>> Eta beraz, gogora ekarri Scratch sartu dugu
beraz, ezin izan dugu, haien, ikusi iragan sintaxia, material hori ez da benetan
hori guztia intelektualki interesgarria baina goiz
da, erabat, apur bat zaila zure burua inguruan biltzea da.
Eta, hain zuzen ere, ohikoena bat Gauzak hasieratik programazio klase batean,
batez ere gutxiago dutenentzat eroso, da zapuztu arabera
eta erori zen zenbait sintaktikoaren arabera akatsak, ez logikoa akatsak aipatzearren.
Eta, beraz, gure helburuak artean gaur, benetan, borondatea
izan duzu hornitzea batzuk arazoen konponbideari nola teknikak
hobeto konpondu arazoak beraiek arazketa formularioa.
Eta gogoratzen duzu, gehiegi, hori ingurune horretan sartu dugu
Azken aldiz deitzen zen CS50 IDE.
Honek web-oinarritutako software da ahalbidetzen hodeia inolako programarik,
nolabait esateko, berriz, guztiak mantenduz zure fitxategiak elkarrekin, jo dugu berriro izango da gaur.
Eta gogoratzen dugun revisited gai hauek hemen,
horien artean funtzioak, eta loops, eta aldagaiak, eta adierazpen boolearrak,
eta baldintza.
Eta egia esan gutxi gehiago dugun Scratch munduan itzulia
C. munduan den
>> Baina oinarrizko eraikina blokeak, nolabait esateko,
ziren benetan oraindik berean, azken astean.
Izan ere, benetan besterik ez dugu izan desberdinak puzzle pieza, izango bada.
morea horren ordez gorde blokea, ordez
printf zuen, hau da, C funtzio hori
ematen du zerbait inprimatu behar dituzu eta formatua da pantailan.
CS50 sartu dugu Liburutegia, non duzu
orain zure eskura get_char at, eta get_int, eta get_string,
eta beste zenbait funtzio gisa bai, eta horrek bidezko sarrera eskuratu ahal izango duzu
erabiltzailearen teklatu propioa.
Eta, gainera, gauzak begirada bat hartu genuen bool these-, eta char bezala,
eta bikoitza, karroza, int, long_long katea.
Eta ez da, nahiz eta beste datu C. motak
>> Beste era batera esanda, aldarrikatu duzu In aldakorreko balio batzuk gordetzeko,
edo funtzio bat ezartzeko duten balio batzuk itzultzen,
zer zehaztu dezakezu balio hori da mota.
Da kate bat, bat bezala karaktere-sekuentzia?
Da zenbaki bat, oso bat bezala?
Da hamarren bat balio, edo antzekoak?
Beraz, C, Scratch bezala, benetan dugu zein datu mota zehazteko hasi
itzuli edo erabiliz ginen.
>> Baina, jakina, ere sartu zuena dugu informatika funtsezko muga batzuk.
Eta, batez ere, hau hizkuntza C, abisuaren
duten begirada bat hartu genuen at zenbaki oso gainezkatze, errealitatea
Besterik baduzu izan duten memoria kopuru finitu
edo, zehatzago esanda, kopuru mugatu batean bit baino ezin duzu zenbatu hain altua.
Eta beraz, begiratu adibide honetan hemen Horren bidez, hegazkin bat counter bat,
benetan, exekutatzen bada nahikoa luzea litzateke gainezkatzea eta software bat eragin
benetako potentziala error fisiko bat.
>> halaber flotatzen begiratu dugu Puntu zehaztugabetasunak, errealitatea
Hori bakarrik kopuru mugatu batekin Bit, da ala ez da 32 edo 64,
zenbakiak hainbeste bakarrik zehaztu dezakezu hamartar puntu bat, ondoren zein ondoren
Hasteko zehazgabea lortzeko.
Horrela, esate baterako, herena in the Mundu hemen, gure giza mundu batean,
ezagutzen dugu infinitua zenbaki bat besterik ez da du dezimal ondoren 3s.
Baina ordenagailu bat ezin nahitaez adierazten zenbakiak kopurua infinitua
zuk bakarrik uzten badu batzuk Informazio kopuru finitu.
>> Beraz, ez bakarrik zenuen hornitzea dugu dagokionez botere handiagoa duten
nola zeure burua adierazteko dezakezu at programazioari dagokionez teklatu bat,
ere mugatua dugu zer Benetan egin ahal izango duzu.
Eta hain zuzen ere, arazoen eta akatsak ahal gai mota horiek sortzen.
Eta hain zuzen ere, gai hauen artean gaur dira arazketa bezalako gaiak izango da
eta benetan kanpaia azpian bila Gauzak nola sartu ziren joan den astean
benetan burutzen dira zuk hobeto, beraz,
gaitasunak ulertu bai eta C. bezalako hizkuntza baten muga
>> Eta hain zuzen ere, zuritu dizkizugu atzera geruzak Datuen egitura errazena,
zerbait izeneko array bat, eta horrek Scratch gertatzen bat deitzeko "zerrendan."
Pixka bat da Testuinguru horretan hainbat.
Eta gero ere nahi dugu bat aurkeztu gure domeinu-partida arazoak lehen
CS50, munduan kriptografia, scrambling arte
edo informazio aritmetika orain sekretua mezuak bidali ahal izango duzu
eta mezu sekretua deskodetu bi pertsona, A eta B. artean
>> Beraz, trantsizio aurretik mundu berri hori,
dezagun saiatu duzu hornitzea batzuk teknika horrekin kentzeko dezakezu
edo murrizteko, gutxienez batzuk frustrazio du
izan duzula beharbada Iragan astean baino gehiago bakarrik.
Izan ere, aurretik duzun dira batzuk such-- Zure C. Eta odds lehen arazoak dira,
Ni bezalako ari bada, lehen aldiz out idatzi programa bat saiatu duzu,
logikoki uste baduzu ere programa nahiko erraza da,
Oso litekeena hit duzu harresi bat, eta konpiladoreak ez da lankidetzan aritzeko joan.
Egin edo Clang ez da joango benetan egiten zure lizitazioak.
>> Eta zergatik izan liteke?
Beno, dezagun begirada bat, agian, programa sinple bat.
Aurrera joan eta gorde honetan noa Fitxategi bat nahita izeneko buggy0.c,
nik badakit hori delako aldez aurretik flawed.
Baina agian ez dut konturatzen hori bada lehen edo bigarren edo hirugarren programa da
hori benetan ari naiz nire buruari egiten.
Beraz, aurrera noa joan eta idatz out, int main (void).
Eta gero nire giltza kizkur barruan, Oso ezaguna da ( "kaixo, mundu
backslash, n ") - eta puntu bat.
>> fitxategia gorde dut.
Orain ez dut behera joan nire terminal leihoa
eta idatzi egin buggy0, izan ere, berriro, gaur fitxategi baten izena buggy0.c da.
Beraz buggy0 egiteko, Sartu idazten dut.
>> Eta, oh, gosh, azken aldiz gogoratzen error mezurik ez egotea gauza ona da.
Beraz, ez du irteerarik gauza ona da.
Baina hemen, argi eta garbi daukat akatsak zenbaki batzuk.
>> Beraz irteera lehen lerroan buggy0 ekiditeko ondoren, oroitzapen,
Clang nahiko irteera luzea da.
kanpaia azpian, CS50 IDE konfiguratuta dagoela
sorta oso bat erabili Konpiladore honekin aukerak
beraz, ez duzula dute haiei buruz pentsatzen.
Eta hori lehen lerroan hori guztia bide hori Clang batekin hasten da.
>> Baina, ondoren, arazo Hasteko bere itxura egiteko.
Buggy0.c linea 3, pertsonaia on 5, han big, error gorri bat da.
Zer da hori?
Inplizituki liburutegi funtzioa geratuko mota int (char * batekin printf,
...) [Werror].
Esan nahi dut, oso azkar Oso urrutira lortzen.
Eta, zalantzarik gabe, lehen begiratuan, ez genuke
Espero ulertzen mezu hori osotasunean.
Eta beraz, ikasgai bat gaur da joan
nabarituko saiatu izan ereduak, edo antzeko gauzak,
akatsak duzun izan iraganean topatu.
Hargatik aurre gain bakarrik horiek begiratzen duten familiar hitzak.
The big, error gorria da argi eta garbi, Zerbait sinbolikoa oker egotea.
>> inplizituki liburutegi funtzioa printf.
Beraz, ez dut ondo ulertzen, nahiz eta zer inplizituki liburutegi funtzioa geratuko
bitartekoak, arazoa ziur aski erlazionatzen nolabait printf.
Eta gai hori iturburu bertan geratuko egin du.
>> Deklaratzea funtzioa da aipatu du lehen aldiz.
Eta terminologia erabili dugu azken astean Funtzio baten prototipoa aitortzerakoan,
bai goialdean lerro bat zure egin fitxategia edo goiburu fitxategi deiturikoak batean.
Eta zer fitxategi egin esaten dugu azken astean printf dela aurrekontua,
unquote, deklaratu?
zer fitxategia bere prototipoa da?
>> Beraz, bada, gogoratzen duzu lehen gauza dut Idatzitako, ia programa guztietan azken aldia
eta ustekabean une bat duela hasi myself-- idazten inork hemen hau zen
hash #include <stio-- for sarrera / irteera dot h Eta hain zuzen ere,
orain I fitxategi hau gorde bada, banoa Aurrera joan eta garbitu nire pantailan,
zein idatziz egin dezakezu Garbitu, edo Kontrol L eutsi ahal izango duzu,
besterik zure terminal-leiho garbitzeko besterik gehiegi batzuk kentzeko.
>> Aurrera joan noa eta re-mota egin buggy0, Sartu.
Eta voila, oraindik ere ikusten dut Clang komando luze,
baina ez error message une honetan ez da.
Eta hain zuzen ere, ./buggy0 egiten badut, besterik gabe, azken denbora bezala,
non dot esan hau direktorioa, barra besterik esan nahi,
Hemen programa izenarekin dator eta Programaren izen hori buggy0 da,
Sartu, "kaixo, mundua."
>> Orain, nola izan duzun Gleaned irtenbide hau
nahitaez gabe hitz asko bezala aitortuz
Dudan bezala, zalantzarik gabe, beharrik Egin honetan hainbeste urtetan?
Beno, lehenengo arazoa per konturatzen set, aurkeztu dugu agindu bat
CS50 langileek egin duten idatzi zuen deitzen help50.
Eta hain zuzen ere, C zehaztapen egiten da Arazoa hau nola erabili behar bezala ezarri.
>> Baina help50 da, funtsean, programa bat da CS50 langileek
ahalbidetzen duen idatzi zuen exekutatu duzu Komando bat edo programa bat exekutatu,
eta ez baduzu ulertzen bere irteera, bere irteera gainditzeko help50 den,
zein software seinalatu Ikastaro horrek langile idatzi duten
zure programaren irteera begiratu lerroz lerro, karakterez karaktere.
Eta badugu, langileek, aitortu du Errore mezu hori bizitzen ari zaren,
eragiteko batzuekin saiatuko gara galdera erretorikoak, zenbait aholku batera,
TF edo CA edo neu bezala askoz litzateke pertsona do bulego orduetan.
>> Beraz help50 begiratzen ez baduzu nahitaez arazo bat ezagutzen.
Baina ez fidatu too makulua bezainbeste.
Zalantzarik saiatu ulertzen bere irteera eta gero bertatik ikasteko
beraz, behin edo birritan bakarrik egin duzu inoiz exekutatu help50 error jakin bat
mezua.
Horren ondoren, izan behar duzu hobeto hornituak yourself
Irudikatu zer da benetan.
>> Egin dezagun beste bat hemen.
Dezagun aurrera, eta bestean Fitxategi buggy1.c hau deitu dugu.
Eta fitxategi horretan nago to deliberately-- joan
baina asmoa ez dudala zer akats egin dut ulertzen.
>> Aurrera joan eta hau egin noa #include, ez dut geroztik
ikasi nire ikasgai duela une bat.
Int main (void), lehen bezala.
Eta gero, hemen noa katea s egin - get_string.
Eta azken gogoratzen duten Bide honetatik, beno, ordenagailua,
ematen dit aldagai bat, deitu s, eta aldagai hori kate bat mota egiteko
beraz, hitz bat edo gehiago gorde ahal izango dut bertan.
>> Eta gero, eskuineko eskuko on Berdintasun ikurraren alde
get_string da, hau da, CS50 Liburutegian funtzioa
zehazki egiten du hori.
funtzio bat, eta gero lortzen da esku da eskuinetik ezkerrera.
Beraz, berdin ikurra honek ez du esan nahi "Berdinen" matematika gintezke uste bezala.
ezkerretik eskuinera esleitzeko esan nahi du.
Beraz, horrek esan, hartu-tik katea erabiltzaileak eta gorde s barruan.
>> Orain Erabil dezagun.
Dezagun aurrera me now eta bigarren bat bezala lerroa, utzi aurrera me eta esan "kaixo" -
ez "mundu", baina "kaixo,% s-- bertan gure leku-marka, koma s da,
bertan gure aldakorra da, eta, ondoren, puntu eta.
Beraz, ez nuen torlojua gehiegi Hemen, hau kodea zuzena itxura.
>> Eta nire senak dira orain da biltzeko.
Fitxategia buggy1.c deritzo.
Beraz, ez dut buggy1 egiteko, Sartu egin da joan.
Eta darn-da, ez badago nahiz eta lehen baino akats gehiago.
Esan nahi dut, ez dago gehiago Errore mezuak litzateke
Programa honen benetako lerro baino dirudi.
>> Baina eramateko hemen, Oraindik larritu bada ere
bi edo hiru edo batera lau akats mezu gehiago,
dutelakoan beti oso on Mezu horiek lehen.
top-gehienak bat begira, korritu back up gisa behar izango.
Beraz, hemen egin buggy1 idatzi dut.
Hemen Clang irteera dela espero bezala da.
>> Eta hemen lehen error gorria da.
identifikatzaile undeclared katea, zuen standard esan nahi dut?
Beraz estandarra da benetan beste zerbait.
aipatzen erabiltzaile to It teklatua, funtsean.
>> Baina hori ez da zer esan nahi nuen.
Katea esan nahi dut, eta get_string ekarri dut.
Beraz, zer da hori I ahaztua denbora hori egiteko?
Zer da denbora honetan falta?
Nire #include daukat, beraz printf sarbidea izan dut.
>> Baina, zer egin nuen, ez dute besterik gabe sartzeko?
Tira, azken denbora bezala, konpiladoreak kontatu behar dut
Clang zer funtzio horiek dira.
Get_string ez da etorri C. Eta zehazki,
ez da etorriko goiburua fitxategia,.
en ordez dator Zerbait langileen idatzi,
zein fitxategi ezberdin bat da izendatzeko baina egokiekin izendatzen.
>> Beraz, lerro bakarra dela gehituz azken aldiz, kode abisuaren
Clang exekutatzen denean, egingo da nire goi begiratu behera,
Ezkerretik eskuinera.
Honez nabarituko joan, oh, nahi duzun.
Let me joan eta aurkitu duten, lekuan zerbitzari on,
kopiatu eta itsatsi, funtsean, Zure fitxategia goian sartu
beraz, istorioa Puntu honetan, 1. linea, programaren gainerako
daiteke, hain zuzen ere, erabili funtzioetako edozein bertan, horien artean get_string.
Beraz, ez dut ignore joan akatsak horiek gainerako,
I delako, hain zuzen ere, susmoa bakarrik lehenengoa benetan axola.
Eta aurrera noa, eta berriro exekutatu joan, nire fitxategia gorde ondoren egin buggy1.
Eta voila, lan egin zuen.
Eta ./buggy1 egiten badut, eta idatzi ere, egiteko Adibidez, Zamyla, dut orain lortuko kaixo,
Zamyla, horren ordez, kaixo, mundua.
>> Ados.
Beraz takeaways hemen orduan dira, bat, saiatu askoz dezakezu gisa glean
error messages-bakarrik, bila ezaguna hitz batzuk.
hori blokeatzeko, erabili per help50 Arazo ezarritako zehaztapen.
Baina hori blokeatzea, too, beti itxura Goiko error at bakarrik, gutxienez,
Hasieran, ikusi zer informazio agian benetan amore.
Baina bihurtzen da ez da funtzionalitate are gehiago eraiki
CS50 liburutegia laguntzen you goiz seihilekoan
eta hasieran programazio on irudikatu zer oker joan.
Beraz, egin beste adibide bat hemen utzi.
buggy2 hau deitu, bertan noa, Berriro, ez da zuzena egon behar irten
atea, diseinu arabera.
>> Eta aurrera noa joan eta #include egin.
Eta gero, int main (void) egin noa.
Eta gero, bat egin behar begizta noa.
For (int i _ 0.
i baino gutxiago edo 10 berdina da.
i ++, eta, ondoren, kizkur giltza, banoa inprimatzeko besterik hashtag ikurra hemen
eta lerro pertsonaia berri bat.
>> Beraz, nire asmo honekin Programa nahiko besterik gabe
10 aldiz batetik bestera joateko eta iterazio bakoitzean
begizta denbora bakoitzaren zikloaren bitartez,
inprimatu hashtag bat, hashtag bat, hashtag bat.
One per lerroa dudalako Linea berri dute han.
Eta gogoratzen da hori begizta, azken astean per
eta gehiago lortuko duzu sintaxia ezagutzen
hura erabiliz praktika arabera long-- aurretik ematen dit
izeneko i aldagai bat eta ezartzen du 0.
>> Hau gehikuntzak i 1 eta iterazio bakoitzean.
Beraz doa 1 i 2 3.
Eta, ondoren, egoera honetan zehar erdi-puntu bikoitza arteko erdiko
lortzen iterazio bakoitzean hautatuta egiteko Ziur oraindik tartean dugu.
Beraz, 10 aldiz batetik bestera joateko nahi dut, beraz, sort oso intuitiboki besterik
jarri 10 nire muga ez bezala.
>> Eta, halere, hau exekutatu, ondoren konpila make buggy2--
eta konpilatu OK du.
Beraz, ez daukat bat syntax error une honetan.
Dezagun aurrera me now eta buggy2 exekutatu, Sartu.
Eta orain, joan gora.
Eta utzi me handitzeko Leihoaren tamaina.
>> izan badirudi I 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11.
Beraz, ez da 11 hashtags, nahiz argi eta garbi jarri dut 10 begizta honen barruan.
Orain, batzuk berehala ikusi liteke zer error delako, hain zuzen ere, hau
Ez dago error oso gogor bat egiteko.
Baina oso normalean da egin oso goiz.
>> Zer seinalatu nahi dut, nahiz eta, hau da, nola liteke hau irudikatu dut?
Beno, bihurtzen da CS50 Library dator
bakarra get_string eta get_int batera eta get_float eta beste funtzioak.
halaber, funtzio berezi bat dator eprintf deitu, edo, error printf.
Eta soilik existitzen da egin Pixka bat zuretzat errazagoa
zure kodea arazketa besterik inprimatu errore-mezu bat pantailan
eta jakin non zen.
>> Horrela, esate baterako, gauza bat gerta daiteke egin hemen funtzio hau dute hau da
eprintf, eta, ondoren, aurrera noa joan eta esaten da, orain% i, backslash, n.
Eta ez dut nahi i balioa plug joan.
Eta goian, hau delako CS50 liburutegia da,
Aurrera joan noa eta besteak
beraz, funtzio honek sarbidea izan dut.
Baina ikus dezagun zer lerro 9 suposatzen da behar egiten.
hau ezabatu azkenean noa.
Hau ezer egin du Nire helburua Globalak batera.
Baina eprintf, error printf, besterik ekarri da me diagnostiko informazio batzuk emateko.
Noiz nire programa exekutatu dut, Nahi dut ikusi hau pantailan aldi baterako
baita besterik ulertu Zer gertatzen ari da.
>> Eta, hain zuzen ere, bata iterazio hemen lerro 9
Ikusi nahi dut, zer i balioa da?
Zer da i balioa?
Eta, zorionez, bakarrik behar dut Mezu hori, halaber, 10 aldiz.
>> Beraz, aurrera eta berkonpilatu nire programa,
edonoiz egin behar dut gisa Aldaketa bat egin dut. ./buggy2.
Eta orain OK.
Ez dago askoz gehiago gertatzen ari da.
Hargatik sortu korrituko me in are handiagoa leiho bat.
>> Eta bakoitzak ikusiko duzu hashtag oraindik inprimatzen da.
Baina artean ere horietako bakoitzean gaur egun honetan diagnostiko irteera honela formateatua.
Nire programa hemen izena buggy2 da.
Fitxategiaren izena buggy2.c da.
lerro kopurua bertatik hau inprimatu zen linea 9 da.
Eta gero, eskubidea da Errore mezu hori espero dut.
>> Eta zer polita honi buruz da orain ez dut egin behar nahitaez zenbatu
Nire buruan zer nire programa egiten ari da.
Hori ikusten ahal dut lehen iterazio i 0 da,
ondoren, 1, 2, ondoren, ondoren, 3, 4, ondoren, ondoren, 5 eta 6, ondoren, 7, 8, 9, ondoren, ondoren,
10.
Beraz, itxaron minutu bat.
Zer gertatzen da hemen?
badirudi oraindik I izango kontatzeaz izan nahi du ireki eta 10.
>> Baina non hasten nuen?
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
Beraz, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- 11an hatz
Arazoa adierazgarri.
zenbatuko egin dela dirudi I okerrean nire begizta batean.
joan beharrean baino 10 iterazioak, 0 at hasten naiz,
tan eta 10 bidez ari naiz bukatzen.
Baina baita, ordenagailu bat bezala, zenbaketa hasten naiz 0 at,
egon kontatuta behar dut ra, baina ez, 10.
>> Eta orain fix, I azkenean Hemen konturatu, bi gauza bat da.
Oso besterik ezin dut esan zenbatu arte 10 baino gutxiago.
Beraz, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, eta hori da, hain zuzen ere, zuzena,
are oker apur bat soinuak arren.
Edo egin nezakeen baino txikiagoa edo berdina 9ra, beraz, luzea hasten naiz gisa 0 at.
Edo baduzu benetan gustuko ez duten, zuk zenbatu arte 10 bidez baizik 1 etan hasiko da.
Baina, berriro ere, hau ez da horren ohikoa.
programazioa arren ere ez hainbeste hutsetik hasi
baina programazioan ere C eta beste hizkuntzetan,
Javascript eta antzekoak Python eta beste batzuk, da
Besterik ez oso ohikoa da Gure binary eztabaida
Nahikoa at kontatuta txikiena ahal duzun kopurua, hau da, 0.
Ados.
Beraz, hori eprintf da.
Eta berriz, orain dela I hurrena ditudan out my Arazoa, eta naiz atzera joan 0 joan
10 baino gutxiago bidez, banoa joan eta eprintf ezabatu.
>> Ez luke hor egon naizenean ontziratu nire kodea edo aurkeztu nire kodea
edo erakusteko beste inori.
Honez benetan besterik ekarri aldi baterako erabili ahal izateko.
Baina, orain konpondu dut hau arazo jakin baita.
>> Beno, egin adibide bat gehiago hemen utzi ni naiz Látigo honela doa.
Aurrera joan noa eta #include. $ 50
Eta aurrera noa joan eta #include.
>> Eta ez naiz gorde joan Fitxategi hau buggy3.c bezala.
Eta aurrera noa joan eta deklaratzen int main (void).
Eta gero, barruan ez int i egin noa _ -
programa bat ezartzea nahi dut get_negative_int batekin.
Hau ez da existitzen dela oraindik funtzio bat.
Beraz ezartzea joan da une batean.
Baina zergatik ari gara ikusteko joan Lehenengo pass at buggy da.
Eta ahaztuak ditudan behin Erabiltzaileak int,
Besterik ez naiz% i inprimatu joan negatiboa da osokoa, backslash, n, koma, i.
Beste era batera esanda, I guztiak Nahi programa hau egin
int negatiboa lortu da erabiltzaileari eta, ondoren, inprimatu
hala nola, eta besteak beste, int negatiboa da.
>> Orain funtzio hau ezartzeko behar dut.
Beraz, geroago nire fitxategia, joan noa Animatu eta deklaratzen izeneko funtzio bat
get_negative_int (void) - eta guk egingo itzuli zer lerro horrek esan nahi du berriro
a momentu int n ere; zuzen ere, egin do honako hau printf n da :.
Eta gero n egin noa - get_int, eta egiten den bitartean n hau 0 baino handiagoa da.
Eta gero itzuli n ;.
>> Beraz, ez da asko gertatzen hasi da hau baina horietatik bat ere ez genuen
azken astean begiratu, gutxienez, labur-labur.
Beraz, on line 10 hemen deklaratu dut bat get_negative_int izeneko funtzioa,
eta jarri dut (void), in parentesi, arrazoi hori izanik
ez du sarrera bat hartu.
Ez dut ezer pasatzen Funtzio honetarako.
Besterik ez naiz zerbait atzera bertatik lortzean.
>> Eta zer espero dut itzuli oso bat da.
Ez dago datu-mota ez da C izeneko negative_int.
Besterik int, beraz, joan da to gurekin ziur egiteko
Hau da, hori da benetan itzuli da, ez bakarrik int bat
baina negatiboa da, gainera.
>> line 12 On I aldagai bat geratuko naiz izeneko n eta egiten int mota.
Eta gero, line 13 18 bidez naiz zerbaitekin, berriz, egia da.
Animatu eta inprimatzeko noa n da, puntu, eta ondoren espazio bat,
erabiltzailearentzat gonbit bat bezala.
>> Ondoren, naiz deituz get_int eta bere deiturikoak itzulera balioa gordetzeko
aldagai n ere.
Baina ez naiz egiten jarraitzea bitartean n hau 0 baino handiagoa da.
Beste era batera esanda, erabiltzaileari ematen dit bat bada int eta zenbaki hori 0 baino handiagoa da,
ergo, positiboa, noa joan besterik mantentzeko erabiltzaileak reprompting,
mantentzeko reprompting, behartzen arabera lankidetzan aritzeko eta eman dit int negatiboa.
>> Eta behin n da benetan negative-- demagun, azkenik, erabiltzaileak mota -50,
gero, berriz, begizta hau jada ez da egia -50 Ez da 0 baino handiagoa delako.
Beraz hausten dugun hori atera begizta logikoki eta itzultzeko n.
>> Baina ez da beste bat gauza egin behar dut.
Eta besterik ez dut egin dezakezu hau kopiatu eta itsatsi arabera
kode lerro bat fitxategia goialdean.
Clang irakasteko behar dut, edo agintzen Clang,
esplizituki dut izango dela, Hain zuzen ere, joan eta ezartzeko
Funtzio get_negative_int hau.
agian da fitxategia txikiagoa izan.
Berriz ere, gogora ekarri Clang Gauzak irakurtzen goitik behera,
Ezkerretik eskuinera, beraz ezin duzu deitu funtzio bat Clang bada
ez daki nik existitzen joan.
>> Orain, zoritxarrez, programa honetan, batzuk bezala nabaritu dute agian,
Dagoeneko buggy da.
Dezagun aurrera eta buggy3 egiteko.
biltzen du, beraz, nire arazoa orain ez da syntax error bat, textual error bat bezala,
benetan da logikoa bat izango da error nahita dut I
aukera gisa egin zer ari den gertatzen eta atzera egiteko.
>> Aurrera joan noa orain eta exekutatu Buggy3.
Eta naiz joango gara Animatu eta ez kooperatu.
da 1 zenbakia eman noa.
Ez zuen nahi du, beraz, Honez niri galdetu berriro.
>> Nola 2 buruz?
3?
50?
horiek ez dira lanean.
Nola -50 buruz?
Eta programa lan dirudi.
>> Let it saiatu me behin gehiago.
Let -1 saiatu me, lan dirudi.
Let -2 saiatu me, lan dirudi.
Let 0 saiatu me.
Huh, hori okerra.
Orain, zu pixka bat pedante izateaz irudirik.
Baina da, hain zuzen ere, 0, hori horrela da ez positiboa ezta negatiboa.
Eta orain ere, nire programa da 0 zenbaki oso negatiboa da esaten,
hori ez da teknikoki zuzena.
>> Orain, zergatik da hori egiten ari da?
Beno, begi-bistakoa izango da agian.
Eta, hain zuzen ere, programaren da ekarri nahiko erraza izan
beraz, zerbait esploratzen dugu.
>> Baina goazen hirugarren arazketa bat aurkeztu Teknika hemen izeneko debug50.
Beraz, hau programa bat da Nik besterik ez dugu sortu
Urte izeneko debug50 honetan horrek aukera emango
zer izeneko bat eraiki-in erabili CS50 IDE in araztaileak grafikoa.
Eta araztailea programa bat besterik ez da hori oro har, aukera ematen dizu zure programa exekutatzen baduzu
baina urratsez urrats urrats, lerro arabera lineaz linea arabera, eten bat eginez, poking
Inguruan, aldagai begira, beraz, programa ez da, besterik gabe, kolpe iragan
eta azkar inprimatu zerbait edo ez zerbait inprimatu.
duzu aukera bat ematen du, at giza abiadura, harekin elkarreragin.
>> Eta hori egin ahal izateko, zuk besterik honako hau.
zure kodea konpilatzean ondoren, eta dagoeneko egin dut, buggy3,
joan aurretik eta ./buggy debug50 exekutatu.
Hainbeste help50 exekutatzen duzun bezala ditu help50 eta gero komandoa,
debug50 ditu debug50 exekutatzen duzun eta ondoren, komando baten izena.
>> Orain, ikusi nire pantailan zer gertatzen den, eskuineko bereziki aldean.
Noiz Run, guztiak hit I Bat-batean eskuin eskuko hau panel
irekitzen pantailan.
Eta asko joan da Lehen begiratuan orrian.
Baina ez da gehiegi Askoz oraindik kezkatu.
>> Hau da niretzat dena erakusten Hori gertatzen da nire programaren barruan
oraintxe eta horien bidez botoiak goiko sortu da ondoren
nire kodea bidez urratsa ematen dit azken finean, urratsez urrats urrats.
Baina ez, besterik gabe.
Oharra zer gertatzen den.
nire terminal-leiho batean ari naiz n galdetuko.
Eta aurrera noa joan eta lankidetzan aritzeko denbora honetan eta mota -1.
Eta nahiz eta pixka bat cryptically, -1 zenbaki oso negatiboa da, espero bezala.
>> Eta gero, ume batekin amaitu da status 0 GDBserver irteten.
GDB, GNU Debugger, izena da Azpiko software
araztailea honetan burutuko du.
Baina hau guztia benetan esan nahi, araztailea joan egin zen nire programa irten delako
eta guztiak ondo.
benetan arazteko nire programa nahi badut, preemptively esango debug50 daukat,
non egiten hasi nahi dut Nire kode bidez zapaltzeko?
>> Eta agian modurik errazena honela da egin.
I pasatzean baino gehiago bada Nire editorearen gutter hemen,
beraz, benetan besterik alboko barran hemen, lerro kopurua ezkerreko du,
konturatu nintzen hori sakatu besterik ez bada behin, apur bat gorri dot jarri dut.
Eta hori gorri txiki dot, stop seinale bat bezala, esan, beno,
debug50, eteteko nire kodea exekuzioa bertan, programa hau exekutatu.
>> Beraz, utzi egin dela.
Dezagun aurrera me eta nire programa exekutatu debug50 ./buggy3 batera berriro, Sartu.
Eta orain, oharra, zerbait desberdin bat gertatu da.
Ez dut berriz galdetua oraindik nire terminal-leiho batean
ezer egiteko, ez dudalako ahaztuak ez oraindik nire programan.
Ohartu on line 8 hau da, orain nabarmenduta,
eta ez gezi txiki bat da at ezker esaera, hemen pausatu zara.
kodea, lerro-lerro honek 8, oraindik ez dela exekutatu.
>> Eta zer da, bitxia, I begiratuz gero hemen baino eskuineko aldean,
nabarituko i duten tokiko da aldakorra, zentzu honetan: tokiko
dela uneko funtzioa barruan.
Eta bere balioa, itxuraz lehenetsi, eta Ordena egokian, 0 da.
Baina ez nuen 0 idazten.
Hori besterik gertatzen da bere une balio lehenetsia.
>> Beraz, aurrera eta hau egin orain.
Dezagun aurrera me eta on goian hementxe, naiz
aurrera joan eta klik lehenengo ikonoan honetan bertan
esan nahi du horren gainean urrats esan nahi ez saltatzeko da baina kode lerro honen gainetik,
exekutatzea bidean.
>> Eta orain, nabarituko, nire gonbita besterik ez du aldatu.
Zergatik da hori?
Nik esan nion debug50, exekutatu kode lerro hau.
Zer egiten du kode-lerro hau?
Galdetzen dit int bat da.
ONDO DA.
Let me elkarlanean.
Dezagun aurrera me now eta -1 idatzi, Sartu.
Eta orain konturatzen zer aldatu.
eskuineko aldean, Nire aldagai lokalak i
baloia -1 orain bezala adierazten da.
Eta oraindik ez da mota int.
>> Eta oharra ere, nire deiturikoak deitu pila, nora pausatu dut?
buruz gehiago hitz egingo dugu hau etorkizunean.
Baina pilaketan dei besterik aipatzen zer funtzio Une mugimenduan.
Oraintxe besterik nagusia da.
Eta oraintxe bakarrik tokiko aldagai 1 balioa duten i da.
>> Eta azkenik, lerro honen gainetik pasatzeko I Hemen, goiko eskuineko ikono hori bera,
-1 Osokoa negatibo bat da.
Orain kizkur giltza hori baino gehiago ari da gelditzea.
Dezagun utzi bere gauza egin da.
urratsa lerro hori, eta voila baino gehiago dut.
>> Beraz, ez dela izugarri argigarria oraindik,
baina utzi ninduen eteteko eta logikoki bidez uste
Programa hau egiten ari da.
Baina hori ez zen okerrak kasuan.
Berriro egin dezagun honela.
>> etendura hori utzi noa on line 8 Puntu gorri batekin.
debug50 berrabiarazi noa.
Automatikoki pausatu da hemen.
Baina une honetan, ordez lerro hau baino gehiago zapaltzeko,
utzi dit benetan barrutik joan get_negative_int eta irudikatu,
zergatik da onartuz 0 baliozko erantzun gisa?
>> Beraz ordez klikatzen Step ahala.
Aurrera joan noa eta egin klik Step Into.
Eta konturatu lerroan 8 kitto orain nabarmendu orain, bat-batean
line 17 bihurtzen.
>> Orain, ez da araztailea hori lerroak 14 eta 15 eta 16 Saltatutako ditu.
Besterik ez da ezer zuk ez erakusteko.
Horiek besterik aldagai geratuko dira, Eta orduan, hitza Do
eta, ondoren, open kizkur giltza bat.
Lerro bakarra funtzional hori da mamitsuena benetan hau hemen, 17 da.
Eta hori da, non jarri dugu automatikoki pausatu.
>> Beraz printf ( "n.is:") ;, beraz Hori ez da gertatu oraindik.
Beraz, goazen aurrera eta egin klik Urratsera ahala.
Orain nire gonbita, hain zuzen ere, ra aldatu ( "n da:").
Orain get_int, ez noa hurrats traba,
delako funtzio hori izan zen Liburutegian CS50 egindako.
It ustez zuzena da.
>> Beraz, aurrera noa joan eta Sort kooperatu egiten emanez
Int bat, baina ez int negatiboa.
Hargatik aurrera me eta hit 0.
Eta orain zer gertatzen den hemen lortuko dut behera 21 lerro?
Ez dut berriro errepika.
Ez dut badirudi begizta hori itsatsita.
Beste era batera esanda, horia hau bar ez mantentzeko inguruan,
eta inguruan, eta inguruan.
>> Orain, zergatik da hori?
Beno, n, zer da oraintxe n?
tokiko at I begiratu dezakezu arazlean aldagaiak.
n 0 da.
Ondo da, zer izan zen nire egoera?
>> , 20 lerro 20 da, bai, 0 0 baino handiagoa da.
Hori ez da egia.
0 da, ez da 0 baino handiagoa.
Eta beraz, hautsi hau atera nuen.
>> Eta, beraz, horregatik on line 21, I actually jarraitzen badu,
0 itzuliko naiz, nahiz eta joan, baztertu behar dut nahiz eta 0
bezala, ez benetan negatiboa izanik.
Beraz, gaur egun, ez dut benetan are araztailea buruzko zaintzeko.
Txartel da, ez dut behar den Badakizu zer gehiago gertatzen da.
>> Beraz, aurrera noa joan eta besterik Play botoia sakatu,
eta utzi akabera up hau.
Orain, ez dut konturatu nire bug itxuraz da on line 20.
Hori da nire error logikoa da.
>> Eta orain zer egin nahi dut hau aldatu egin?
Arazoa da, bada, ez dut 0 harrapatzeko, error logikoa besterik ez da.
Eta esan dezaket n bitartean 0 edo handiagoa berdina,
mantentzeko erabiltzaileak behin eta berriro galdetu.
>> Beraz, berriro ere, erraz neurtu, agian nahiz eta begi-bistakoa denean me ikusi duzu
idatzi egiten duela minutu batzuk besterik ez.
Baina eramateko hemen da debug 50 duten,
eta arazteko software orokorrago,
aurkitutako power berri hau behar duzu zure kodea zehar oinez, begiratu
Hori eskuin panel bidez zer Zure aldagaiak balioak dira.
Beraz, ez duzu nahitaez zerbait erabili behar
bezala balio horiek inprimatu behar eprintf duzu.
benetan ikusiko duzu horiek ikusmen pantailan.
>> Orain, hau haratago, nabarmendu behar da ez dagoela beste teknika hori da
benetan super komuna.
Eta zergatik txiki honetan galdetzen dezakezu Guy hemen izan da oholtza gainean eserita.
Beraz, ez dago teknika hau da, oro har, gomazko ahate arazketa bezala ezagutzen,
horrek benetan baino ez da Izan ere, testamentu
Hori askotan denean programatzaile kodea idazten ari,
Oraindik ez dute nahitaez beste batzuekin elkarlanean,
edo partekatuak ingurune batean lan egin.
>> sort Oraindik dute etxean.
Agian, gauez berandu da.
Kopuru saiatzen ari dira beren kodea bug batzuk.
Eta ari dira, ez da ikusten.
>> Eta han gelakide ez da.
Ez dago TF ez da.
Ez dago CA inguruan ez da.
Guztiek dute beren apaletan dute txiki honetan gomazko ducky da.
>> Eta beraz, gomazko ahate arazketa besterik gonbidapen hau da
zerbait silly gisa pentsatzea hau benetako izaki gisa,
eta benetan zure kodea zehar oinez hitzez objektu bizigabe honetarako.
Horrela, esate baterako, bada hau nire adibidea da hemen
eta gogoan hartu lehenagokoak arazoa hori zen,
lehen lerroan kode hau ezabatu badut, eta aurrera joan nintzen eta buggy 0 berriro,
Gogoratzen hauek izan nuen Errore mezuak hemen.
Beraz, ideia hemen, barregarria nuen arren une sentitzen hau publikoki egiten,
error dela.
>> Ados, beraz, nire arazoa da ez dut hori inplizituki liburutegi funtzioa deklaratu.
Eta liburutegi funtzioa duten printf da.
Aldarrikatzen OK, deklaratzeko gogorarazten dit prototipoak.
>> Horrek esan nahi du behar den benetan I Esango konpilatzailea aldez aurretik zer
funtzioaren itxura.
Itxaron minutu batez.
Ez nuen io.h.
Eskerrik asko.
>> Beraz, besterik gabe, prozesu hau of-- behar ez dugun benetako ahate bat.
Baina walking ideia hau zeuk zure kodea bitartez
beraz, nahiz eta entzuten baduzu zeure burua, beraz, hori
konturatzen norbera-egiteak nabarmentzea, ideia da, oro har.
>> Eta, agian gehiago logikoki, ez hain hori baina gehiago parte hartzen du, askoz
Adibidez besterik buggy 3.C egin genuen, yourself oinez dezakezu Bidez
horrela.
Beraz, guztiak eskuineko, gomazko ducky, DDB, izango bada.
Hemen daukagu ​​nire eginkizun nagusia, int negatiboa deitzen naiz.
>> Eta nago bueltan balioa lortzean dut.
It dut gordetzeko ezkerreko aldean on line 8 aldagai batean izeneko i.
Ados, baina itxaron, nola egin Hori balio hori lortzeko?
Ikus dezagun funtzioa at me line 12.
>> Linea 12, int negatiboa izan dugu.
Ez du inolako Sarrerek hartu, itzuliko du int bat, OK.
deklaratzeko on line 14 n aldagai bat naiz.
Honez zenbaki oso bat gordetzeko.
Horixe nahi dut.
>> Horretarako, honako hau n bitartean is-- utzi zer fix dut dagoeneko eginda desegin dit.
Beraz n baino handiagoa den bitartean 0, inprimatu n da, OK.
Eta gero, deitu emateko int n gordeta.
Eta, ondoren, egiaztatu bada n 0 da, n dago not-- ez da.
Beraz, berriro ere, ez duzu benetako ahate behar.
Baina besterik oinez zeuk bidez Zure kodea ariketa intelektual gisa
egingo askotan lagunduko duzu konturatzen zer ari den gertatzen,
aurka jokatu zerbait egiten Hau atsegin, pantailaren begira,
eta ez zeure burua hizketan bidez da, eta horrek, egia esanda, ez da
Ia teknika eraginkor bat bezala.
Beraz, ez daukazu, a hainbat teknika
benetan zure kodea arazteko eta reprehenditzen, horrek guztiak
Tresna zure toolkit izan behar beraz, ez zara berandu gauez,
batez ere, ari jangela duzu aretoetan, edo bulego orduetan,
zure burua banging aurka horma, arazo batzuk konpondu nahian.
Konturatzen ez direla software tresnak.
Badira gomazko ahate tresnak.
Eta ez dago langile oso bat onartzen esku bat uzten zain.
>> Beraz, orain, arazoa hitz bat multzo, eta zer ari zaren itxaropena dugu on
horiek atera, eta nola ebaluatzeko joan gara.
Ikastaro horrek curriculumaren Per, CS50 arazo multzo
Lehen lau ardatzetan ebaluatu dira, beraz, esparrua esateko den, zuzentasuna, diseinua,
eta estiloa.
Eta esparrua besterik zenbat aipatzen Pieza off hozka duzu?
Nola arazo bat askoz duzu saiatu?
Zer ahalegin-maila duzu manifiesta?
>> Zehaztasuna, programa lana egiten du Honez CS50 zehaztapen bakoitzeko ustezko
denean zenbait Sarrerek ematen duzu edo zenbait irteerak atzera datozen?
Diseinu horietako gehienak subjektiboak da.
Eta bat da izango dela luzeena hartu ikasteko
eta luzeena, irakasteko orain arte behera irakiten bezala da,
nola ondo idatzia da zure kodea?
>> Gauza bat bakarrik inprimatzeko zuzena da irteerak edo itzultzeko eskuineko balioak.
Baina ari da egiten duzun bezala ahalik eta modu eraginkorrean?
Dira egiten duzu arraila eta konkistatzeko, edo bitar
bilaketa egingo dugu laster ikusi genuen Duela bi aste telefono-liburua da?
Badira modu hobeak konpontzeko Arazoa gaur egun baino behar duzu hemen?
Hori diseinu hobea aukera bat da.
>> Eta gero, estilo hau nola Nahiko zure kodea da?
nabarituko duzu nahiko naiz I bereziki nire kodea koskatze buruz,
eta ziur nire aldagai egiteko arrazoiz izendatzen dira. n,
laburra, berriz, izen ona da zenbakia, zenbaketa osokoa bat i,
katea s.
Eta jada izan dezakegu aldagai izenak estiloa.
Style da nola ona nahi zure kodea begiratu?
Eta nola irakurgarria da?
>> Eta denborarekin, zer zure ILak eta TFS izango da ikastaroa egiten
ematen da, besterik gabe, feedback kualitatibo mota
beraz, hobe duzu hainbat alderdi horiek.
Eta zenbat garen dagokionez ebaluatzeko ardatz horiek bakoitzak,
normalean oso gutxi kuboak duzu, beraz, oro har,
zein ondo egiten ari zaren zentzu bat lortzeko.
Eta, hain zuzen ere, puntuazio bat jasotzen bada horiek zuzentasun axes--, diseinua edozein
eta estilo especially-- kopuru hori oro har, 1 eta 5 artekoa izan.
Eta, literalki, zuk ari bada 3 en lauhilekoaren hasieran,
hau oso gauza ona da.
ez da oraindik ere esan nahi du hobekuntza gela,
egiteko eta zuk espero litzateke klase bat hartu du lehen aldiz.
Ez dago zorionez sabaia pixka batzuk bertan iritsi zaren aspirante.
Eta orain dela 3 lortzean pieza goiztiarrena,
ez bada batzuk 2 eta 4, da, hain zuzen ere, gauza ona da.
da ondo gama barruan, ondo itxaropenak barruan.
>> Eta zure burua lasterketa bada, itxaron Minutu bat, hiru, bost.
Hori da benetan 6 10tik a.
Hori% 60 da.
Nire Jainkoa, hori F. bat da
>> Ez da.
Ez da, hain zuzen ere, hori.
Izan ere, aukera bat hobetu da seihilekoan zehar.
Eta baduzu batzuk lortzen ari Poors, horiek aukera ematen dute
aprobetxatu bulegoko ordu, zalantzarik atal eta bestelako baliabideak.
>> Best aukera bat da, benetan, noraino duzun harro egon
seihilekoan zehar etortzen.
Beraz, ez dira konturatzen, gero ezer bestela, hiru ona da.
Eta denboran zehar hazteko aukera ematen du.
>> ardatzak horiek nola diren bezala haztatua, errealistan bazara
Zure denbora gehien pasatzeko lortzean joan lanera gauzak, bakarrik utzi behar bezala.
Eta beraz, zuzentasun joera den gehien haztatuta, bezala
biderkatzen hiru faktore hau.
Diseinua ere garrantzitsua da, baina zerbait ez duzula nahitaez
ordu horiek guztiak gastatzen on Gauzak besterik lanera lortu nahian.
>> Eta hainbeste haztatua da Apur bat gehiago arinki.
Eta gero, estilo gutxienez haztatuta.
Nahiz eta ez gutxiago izan arren Garrantzitsua funtsean,
besterik ez da, beharbada, errazena gauza egiteko eskubidea,
adibideek dugu mimika hitzaldia eta atal egin,
Gauzak ondo ekin koska, eta komentatu
eta abar errazena artean dago gauzak egin eta lortu du.
Beraz, hala nola, konturatzen horiek duten puntuak dira
hori nahiko ulergaitza dira.
>> Eta orain hitz baten gainean Halako zintzotasuna akademikoa.
Beraz, ikastaro hamarkadan per ikasketa plana, ikusiko duzu
Jakina hori du nahiko honen inguruan hizkuntza pixka.
Eta noski alea hartzen zintzotasuna akademiko nahiko larri.
>> bereizketa daukagu, onerako zein txarrerako,
ren ondoren bidalitako urte bakoitzeko gehiago diziplina dagoen ikasle
gehien, beste edozein baino Noski, jakitun naizela.
Hau ez da, nahitaez, Izan ere, adierazgarri
CS ikasleak, edo CS50 ikasle daudela Bat gutxiago zure ikaskideekin baino zintzoa.
Baina errealitatea dela ere hau Mundu, elektronikoki, besterik ez dugu
teknologikoa dute hau detektatzeko esan.
>> Garrantzitsua da guretzat for Klase osoan zuzentasuna
Hori egin dugu, detektatu hau, eta goratzeko alea denean gauzak ikusten dugu.
Eta besterik gabe, irudi bat margotzeko, eta benetan Zerbait laguntzeko konketa hau bezalako,
horiek dira zenbakiak azken 10 urteotan ikasle
izan diren batzuk parte hartzen zintzotasuna akademikoa gaiak, hala nola,
batzuk 32 ikaslerekin Jaitsiera 2015, batetik, zein
da hori hartu ez dugu esateko Gaia oso serio.
Eta, azken finean, zenbaki horiek konposatzen, azken aldian,% 3 inguru,% 4 edo hain
klasearen.
>> Beraz, ikasle gehienek super alde duten ildo argiak dira dirudienez.
Baina mantendu ez honetan axola, batez ere berandu
gauez denean batekin borrokan Arazo multzo bat irtenbide batzuk,
badirela mekanismoak zeure burua hobeto ari da
Zu baino onar ditzake uste, nahiz eta ordu hartan.
Konturatzen denean jasoko dugu hori Ikasle bidalketak, zeharkatu dugu
alderatu aurkezteko guztietan aurten aurkezteko guztietan iaz aurka,
2007-tik aurkezteko ororen aurka, eta, geroztik begira, baita,
kodea biltegiak online, eztabaida foroak, lan-guneak.
Eta hau aipatu dugu, benetan, mesedetan guztiak
Dibulgazioa osoa, hori bada beste norbaitek aurki daitezke online,
zalantzarik, beraz, ezin dugu ikastaroa.
Baina, benetan, espiritua Ikasturtean irakiten behera
curriculumaren klausula honekin.
Benetan, besterik gabe, izan zentzuzko da.
>> Eta bagenu landu behar dela besterik hizkuntza bit gehiago batekin,
konturatzen hori guztien esentzia hori aurkeztu ikastaro honetan duzu lan
zeure izan behar du.
Baina horren barruan, ez dira, zalantzarik aukera, eta animoak,
eta pedagogikoak balio inflexio others-- neure burua, TFS, Eus-,
IL du, eta beste batzuk klasean, laguntza, bakarrik utzi lagunak
eta roommates duten ikertu dute CS eta programazioa aurretik.
Eta, beraz, ez dagoela da hobari bat da.
Eta Thumb arau orokorra da hau, laguntza eske,
Zure kodea erakutsi ahal izango duzu besteei, baina ezin izango duzu ikusteko berea.
Beraz, nahiz eta bulego orduetan, edo D hall, edo beste nonbait ere
Pieza multzo lantzen ari gara, Lagun bat, batera lan horrek
da guztiz fina, at Egun Zure lanaren amaieran
behar, azken finean bakoitzean sartzen duzu, hurrenez hurren, eta ez
elkarlanerako ahalegin batzuk izan, azken proiektua non ezik
baimenduta dago eta animatu.
>> Konturatzen bazaude Zerbait batekin borrokan
eta zure laguna besterik gertatzen hau hobea izan orduan,
edo arazoren duten baino hobeto, edo urrunago duzun baino aurretik,
erabat arrazoizkoa da buelta Zure lagun eta esan, beno,
ez duzu nire kodea begiratzeko axola hemen, laguntzen gelditzea zidan nire alea da?
Eta, zorionez, in the balio pedagogikoa interes
Lagun hori ez ezik, esan, oh, ez hau, baizik eta,
zer falta dira, on line 6, edo horrelako zerbait?
Baina irtenbidea ez da Lagun duzu ondoan dagoen
Erraitea, oh, bai, hemen, let me tira hau eman, eta nire duzun irtenbide erakusteko.
Beraz, lerro da.
Zure kodea erakusten duzu beste batzuk, baina ezin duzu
Ikusteko berea, beste menpe ikastaroa ikasketa planeko mugak.
>> Beraz, kontuan horretan mantentzeko deiturikoak damua klausula
ikastaroa ikasketa planeko baita, duten ekintza batzuk konpromisoa izanez gero
Ez da arrazoizkoa, baina ekartzea da Ikastaroaren buruak arreta
72 orduko epean, ikastaroa tokiko zigorrak jartzea dela
unsatisfactory izan dezakeena edo Huts aurkeztutako lanaren kalifikazioa.
Baina, jakina, ez duela aipatzeko gehiago diziplina axola,
errepikatzen egintzak izan ezik.
Beste era batera esanda, ez baduzu egin batzuk ergelak, batez ere, gauez berandu, erabakia
hurrengo goizean edo bi egunetan geroago, esnatzen zara, eta konturatzen,
zer zen pentsatzen dut?
egiten CS50 zaude irteerarik arazo hori konpontzen
eta sortu jabe da, beraz dugu duzu erdibidean bilduko dira eta aurre
dela bai materia bat da hezkuntzaren eta zuretzat baliagarria,
baina oraindik ere nolabait zigor.
Eta orain, ertzean hartu off, hau.
>> [Bideo-erreprodukzioa]
>> [Musika jotzen]
>> [END erreprodukzioa]
DAVID J. MALAN: Ondo da, itzuli gara.
Eta orain, itxura batean dugu gure mundu errealean domeinuen lehen
CS50, kriptografia artea, bidaltzeko eta jasotzeko artea
mezu sekretuak, enkriptatutako mezuak izango bada,
hori baino ezin dira ulertu baldin baduzu funtsezko osagai batzuk bidaltzailea duela
baita.
Beraz, hau motibatzeko hartu dugu bat gauza honetan begiratu hemen,
zein baten adibidea da sekretua deskodetzailea ring dagoela
Ordena irudikatu ere erabili ahal izango dira zer mezu sekretu bat benetan da.
Izan ere, atzera kalifikazioa eskola egun,
bidaltzen duzun inoiz bada mezuak sekretua Lagun batzuk edo klasean bihurritu batzuk,
zuk pentsa zitekeen argia izateaz zinen
ek zure paper aldakor pieza gainean, bezala, A, B, C eta B, eta C D to,
eta abar.
Baina benetan ari zaren enkriptazioan Zure informazio, are
gutxi trivial bat bazen ere, ez zen gogorra, irakasleak konturatzen da,
ondo, aldatu besterik ez bada A eta C B, B
benetan irudikatu duzu mezua zer zen,
baina informazio aritmetika zinen.
>> besterik ari zara egiten Besterik gabe, Ralphie bezala askoz hemen
ospetsua movie bat jotzen hasi pretty much ad nauseum neguan.
[Bideo-erreprodukzioa]
Be ezagutzen duten guztiei Ralph Parker da, egileak
Little kide bat izendatu Umerzurtzak Annie Secret Circle
da ohoreak guztiak jasotzeko eskubidea eta onurak gertatzen hauekiko.
>> Sinatuta, Little umerzurtzak Annie, Kontraerasoan sinatu Pierre Andre, tinta ere.
Ohore eta onurak, Dagoeneko bederatzi urterekin.
>> [Oihuka]
-Etorri.
Dezagun berarekin.
Ez dut behar duten jazz kontrabandistak eta piratak buruz.
>> -Entzun Bihar gauean Ondorioak abentura
Piraten beltza ontzia.
Orain, garaia da Annie mezu sekretuaren
Secret Circle kideen zuretzat.
Gogoratu, haurrekin, bazkideek bakarrik Annie Circle Secret
Annie sekretua mezua onar daiteke.
>> Gogoratu, Annie duzun arabera.
Ezarri zure pin B2.
Hona hemen mezua da.
12 11--
>> -I Am, nire lehen bilera sekretu.
>> -14, 11, 18, 16.
>> zen ahots gauean handia -Pierre.
Gauean duten esan izan dut mezua benetan garrantzitsua izan zen.
>> -3, 25, mezu bat da Annie burua.
Gogoratu, ez inori esan.
>> -90 Segundo geroago, naiz bakarrik hasi Etxeko gela non bederatzi mutiko bat
pribatutasuna eta deskodetzea eseri.
Aha, B!
Joan zen hurrengo, E. dut
>> lehen hitza izango da.
S, zen errazagoa datozen orain, U, 25--
>> -Oh, Goazen, Ralphie, joan beharra dut!
>> -I'll Behera, Ma!
Gee whiz!
>> -T, O, ziur zer den ziur egon zaie?
Zein izan da Little umerzurtzak Annie esan nahian?
Zer izan nahi duzu?
>> -Ralphie, Andy du lortu joan, izango Atera duzu?
>> Guztiak eskubidea, ma!
Eskubidea izango naiz!
>> -I Hurbiltzen lortzean orain.
Tentsioa ikaragarria zen.
Zer izan da?
planetaren patua Baliteke oreka zintzilikatzeko.
>> -Ralphie!
Andy gotta joan!
>> -I'll Out, out negar ozen!
>> -Ia Ez dago, nire behatzak hegan, nire buruan altzairu tranpa bat izan zen, poro guztietan dardarka.
Ia argia izan da, bai, bai, bai.
>> -Ziurtatu Zure Ovaltine edan.
Ovaltine?
crummy merkataritza A?
puta baten semea.
[END erreprodukzioa]
DAVID J. MALAN: Ados, beraz, Hori horrela, oso luzea izan zen
kriptografia sartuz, eta, era berean, Ovaltine.
Izan ere, iragarki zahar honetatik hemen, zergatik Ovaltine da hain ona?
helduak erauzketa kontzentratua da garagar malta, pure krematsuarekin behi-esnea,
eta bereziki prestatu kakaoa, elkarrekin phosphatides natural eta bitaminak.
Da gehiago gotortu bitaminak osagarriak B eta D, yum.
Eta oraindik eskuratu ahal izango da, itxuraz, Amazon on, hemen egin dugu.
>> Baina motibazioa Hemen izan den aurkeztu kriptografia, zehazki,
ezagutzen kriptografia mota bat gako sekretua kriptografia gisa.
Eta izena dioen bezala, osotasunaren gako sekretua kripto sistema baten segurtasuna,
izango bada, metodologia bat besterik scrambling
Bi pertsonen arteko informazio, dela bidaltzaileak eta hartzaileak bakarrik
Badakizu key-- sekretu bat balio batzuk, batzuk Esaldi sekretua, zenbaki sekretu batzuk,
horiek esker, bai enkriptatzeko eta informazio desenkriptatzeko.
Kriptografia, benetan, besterik aste honetan 0-ra dago.
>> Arazo bat non ez da Sarrerek da, Ingelesez Mezuaren bezala
edo edozein hizkuntza dela duzu Nahi norbaiti bidali klasean,
edo internet zehar.
Ez dago irteera batzuk, hau da, joan da nahaskia mezua izango duzula
hartzaileak jaso nahi.
Eta nahiz eta norbaitek erditik jaso du gehiegi,
ez badituzu nahi zertan desenkriptatu,
honen barruan delako kutxa beltza, edo algoritmoa,
mekanismo batzuk, pauso batzuk urratsez da argibideak, sarrera hori hartu
eta bihurtzeko sartu irteera, zorionez, era seguruan.
>> Eta, hain zuzen ere, ez da batzuk Mundu honetan lexikoa honela.
Testu laua hitz bat da ordenagailu zientzialari litzateke
erabili sarrerako deskribatzeko mezua, ingelesek bezala
edo edozein hizkuntza duzu benetan Nahi beste giza batzuk bidali.
Eta gero ciphertext du scramble da enciphered izateko, edo enkriptatu,
bertsioa ere.
>> Baina bada beste osagai bat da hemen.
Badira beste sarrera bat da gako sekretua kriptografia.
Eta hori gakoa bera da, hau da, oro har,
ikusiko dugun bezala, zenbaki bat, edo gutun, edo hitza, edozein dela
algoritmoa da benetan espero du.
>> Eta nola ez, informazioa desenkriptatzeko duzu?
Zelan unscramble duzu?
Beno, alderantzizko besterik ez duzu irteerak eta Sarrerek.
>> Beste era batera esanda, norbaitek behin zure enkriptatutako mezu jasotzen,
berak ditu, besterik gabe, Giltza hori bera ezagutu.
ciphertext jaso dute.
Eta bi horiek plugging Sarrerek crypto sisteman sartu,
algoritmoa, kutxa beltza, out jatorrizko testu soilik etorri behar.
Eta beraz, oso maila altua da zer kriptografia da benetan ikuspegia
guztiei buruz.
>> Hargatik ez.
Dezagun orain begiratu azpian Zerbait kanpaia
izan dugu emandako hartuz Iragan astean, eta saio honetan
hemen katea.
Egunaren amaieran katea, karaktere-sekuentzia bat besterik ez da.
>> kaixo mundua izango da agian, edo kaixo Zamyla, edo dena delakoa.
Baina zer esan nahi du behar karaktere-sekuentzia bat izan?
Izan ere, CS50 liburutegia ematen Gurekin datu-mota katea deitu.
>> Baina ez da benetan ez hala nola, C. Kate gisa gauza
benetan sekuentzia bat besterik ez da pertsonaia, pertsonaia, pertsonaia,
pertsonaia, atzera, atzera, nahi Atzera, atzera, barruan kopiak
zure ordenagailuaren memorian, edo RAM.
Eta itxura sakonagoa egingo dugu hori sartu etorkizuneko begiratzen memoria bera dugu,
eta erabilera, eta inplikatutako mehatxuak.
>> Baina kontuan hartu dezagun katea Zamyla.
Beraz, besterik izenean Giza hemen, Zamyla,
duten sekuentzia bat da pertsonaiak, Z-A-M-Y-L-A.
Eta orain, demagun Zamyla izena da ordenagailu baten barruan gordetzen ari
programa.
>> Beno, arrazoitu behar dugu hori nabarmentzen da izan diren pertsonaia horiek begiratu ahal
banaka.
Naiz, beraz, apur bat marrazteko Zamyla izenaren inguruan box hemen.
Eta C kasua da, noiz duzula kate bat izan, Zamyla-- eta agian atsegin
Kate hori itzuli da bertatik katea bezalako funtzio bat,
benetan dezakezu manipulatzen da karakterez karaktere.
>> Orain, hau da egin germane Elkarrizketa eskutik, baita
kriptografia ere aldatu nahi baduzu A, B, C eta B, eta C D to,
eta abar, gai izan behar duzu banakako pertsonaiak begiratu
kate batean.
izango dira aldatu behar duzu beste zerbait, A to Z
beste zerbait, M to bestela, eta abar zerbait.
Eta beraz, modu bat behar dugu, programazioaren, beraz,
Esateko, C ere izango dira aldatu behar eta letrak banakako begiratzen.
Eta hori egin ahal izango dugu, honela.
>> Burua atzera CS50 IDE joan me.
Eta utzi aurrera me eta fitxategi berri bat sortzeko
dudala denbora string0 hau deitu, Gure lehen esaterako, adibide gisa, dot c.
Eta aurrera noa joan eta Greba honela.
>> Beraz, besteak CS50.h, eta ondoren, besteak beste, io.h estandarra,
bertan, naiz ia beti joan izan nire programetan erabiliz, gutxienez
Hasieran.
int hutsune nagusia, eta gero, hemen nago kateak egin da joan lortzen katea iritsi.
Eta gero noa aurrera, eta hori egin.
Aurrera joan nahi dut eta, behatu kontrol gisa,
besterik esan, kaixo, ehuneko s, puntu, katea 0 egiten.
Uh oh, zer egin behar dut hemen?
Oh, ez nuen konektatu.
Beraz, ikasgai ikasi, Ez zen nahita.
>> Beraz, akats, ehuneko gehiago konbertsioak datuak argumentuak baino.
Eta hau da, non, in lerroa, 7 Ados, beraz, I,
aurrekontua unquote, hori da Nire katea printf.
Nik portzentai-ikurra jaso nuen.
Baina bigarren argumentua falta naiz.
>> koma s, falta naiz bertan Ez nuen aurreko adibideetako dute.
Beraz, aukera ona izan du konpondu bat gehiago neurtu, ustekabean.
Eta orain, let me exekutatu string0, Zamyla mota.
Ados, kaixo Zamyla.
>> Beraz, exekutatu dugu mota honetako programa bukatzeko zenbait aldiz orain.
Baina egin dezagun zerbait bat utzi gutxi beste denbora honetan.
Horren ordez, besterik Zamyla inprimatzeko izen osoa printf atera,
Egin karakterez karaktere utzi.
>> bat erabili behar begizta noa.
Eta ez dut neure burua ematen joan zenbaketa aldagai bat, deitu i.
Eta ez dut errepikatzean jarraitzea, beraz, luze s luzera baino txikiagoa da i bezala.
>> Bihurtzen da, ez genuen ez azken denbora honetan,
c hori bat dator Funtzio Stirling deitu.
Itzuli egunean, eta, oro har, oraindik denean funtzioak gauzatzeko,
gizakiak egingo askotan aukeratu oso succinct izenak soinu-mota hori
zer nahi duzun da, nahiz bezalako gutxi batzuk bokal edo letrak falta.
Beraz Stirling da funtzio baten izena dela
arteko argumentu hartzen parentesi hori kate bat izan behar du.
Eta zenbaki oso bat itzultzen du, besterik ez da, katea luzera du.
>> Beraz, hau loop on line 7 da joan berdin i 0 kontatuta hasteko.
Honez Kontatzailea joan i iterazio bakoitzean
1-ek, izan dugu hainbat aldiz egiten den bezala.
Baina nik bakarrik egin da joan ireki honen puntua arte
denean i luzera da katea bera.
>> Beraz, hau egiteko modu bat da, azken finean, karaktere baino gehiago
katea bezala da honakoa.
out inprimitzeko ez noa kate osoan, baina ehuneko c,
karaktere bakar bat linea berri bat, eta jarraian.
Eta gero noa Anima zaitez, eta behar dut
inprimatu nahi dut esateko igarren s izaera.
>> Beraz, i aldagaia dela adierazten bada katea, non-indizea
duzun dira bertan, gai izan behar dut esan, ematen dit igarren s izaera.
Eta c egiteko modu bat du hau parentesi karratu.
esan besterik ez duzu izenean katea, eta kasu honetan s da.
Ondoren karratu parentesi dira, erabili duzu normalean zure Itzuli edo Sartu gainetik
tekla.
Eta gero Indizearen jarri pertsonaia inprimatu nahi duzun hori.
Beraz indizean dago bat izango da zenbaki 0 ​​edo 1 edo 2 edo 3 edo puntua,
dot, dot, beste zenbaki batzuk.
>> Eta hori da joan bermatuko dugu izan eskuineko zenbakia, I delako
hasteko 0 kontatuta.
Eta lehenetsiz, lehen karaktere kate batean konbentzio 0 da.
Eta bigarren pertsonaia tarte 1 da.
Eta hirugarren pertsonaia parentesi 2 da.
Eta ez duzu nahi gehiegi joan urrun, baina ez dugu ari garelako
Besterik Kontatzailea i da arte katearen luzera berdina da.
Eta zein puntutan, begizta gelditu egingo da.
>> Hargatik aurrera me eta hau gorde programa, eta korrika egiteko katea 0.
Baina dena izorratu nuen.
Inplizituki liburutegi funtzioa geratuko mota, hala nola, Stirling eta such-- orain,
horrek oso ezaguna.
Baina ez da printf.
Eta ez da katea lortu.
>> ez dut torlojua hasi Modu berean, denbora honetan.
Baina nabarituko behera hemen apur bat behera gehiago, besteak goiburua String.h du,
esplizituki ematen du Stirling deklarazioa.
Beraz, ez da benetan ez arrastoren bat.
>> Eta hain zuzen ere, bihurtzen da Goiburu-fitxategi bat da
Nik hori ez dugu erabili klasean oraindik, baina da
eskuragarri dutenen artean nahi, String.h deitu.
Eta fitxategi hori, String.h hasi da Stirling deklaratu.
Beraz, aurrera eta gorde hau, katea egin
0-- polita, ez akats mezuak une honetan.
>> ./string0 Zamyla, eta Sartu sakatu beharrean nago,
puntua Getstring va katea itzuliko da, jarri s ere.
Ondoren begizta da batetik bestera joateko joan baino S karaktere bat aldi berean,
eta horiek inprimatu lerro bakoitzeko, baita backslash amaieran n izan nuen.
Beraz backslash duten ezikusia ezin dut n, eta, ondoren, besterik inprimatu Zamyla guztiak
lerro berean, eraginkortasunez reimplementing
printf, eta hori ez da guztia baliagarria.
Baina kasu honetan, ez dut horrelakorik egin.
Benetan Nik inprimatutako bat aldi berean pertsonaia, lerro bakoitzeko,
beraz, benetan ikusten dugun efektua.
>> Baina gauza bat ohartarazi nahi nuke hemen.
Eta itzuli gara nahi hau etorkizuneko aste batean.
Bihurtzen hori da kodea potentzialki buggy da.
>> Bihurtzen da lortu duten kate eta bizitzaren beste funtzio batzuk
ez dute zertan beti itzultzeko zer ari zaren zain.
Badakizu class azken from dugu hau lortu duten denbora
kate suposatzen da kate bat itzuli.
Baina zer erabiltzaileak motak, hala nola kanpo Hitz bat luze, edo paragrafo, edo saiakera
ez dagoela besterik ez da nahikoa ordenagailuan memoria egokitzeko.
>> Like, zer bada zerbait doa kanpaia azpian gertatzen da?
Agian ez da gertatuko askotan, baina behin gerta zitekeela
pixka batean, oso gutxitan.
Eta beraz, bihurtzen da lortu duten kate eta hura bezalako funtzioak ez du zertan
beti itzultzeko kateak.
error balio batzuk itzuli dute agian, Sentinel balio batzuk nolabait esateko,
adierazten duen zerbait gaizki joan da.
Eta zuk bakarrik ezagutzen honetatik ikasi ondoren klasean orain,
izana, edo zenbait dokumentazio gehiago irakurri.
Bihurtzen da lortu duten kate izeneko null balio bat itzultzeko.
Null balio berezia dela zaitugu zatoz atzera etorkizunean aste batean.
Baina, oraingoz, besterik ezagutzen nahi badut benetan aurrera doala ere egokia izan behar
katea erabiliz, I behar ez deitu besterik ez da,
eta itsu-itsuan erabili bere itzulera balioa, fidatu kate bat dela.
>> lehen esan behar dut, beno, itxaron minutu bat, soilik
jarraitu s ez da berdina bada null, null non, berriro,
balio berezi batzuk besterik ez da.
Eta balio berezia bakarra da duzu Behar kezkatu lortu katea.
Talde esaldia da bai joan Kate bat edo null itzultzeko.
>> Eta harridura puntu honetan berdin zeinu agian, agian, matematika klasean badakizu
duten berdintasun-ikurra marraztu dezakezu batekin Bidez lerro bat ez da berdina adierazteko.
Hori ez da, oro har, pertsonaia bat zure teklatuan idatz dezakezu.
Eta beraz, programazio hizkuntza gehienetan, denean ez da berdina esan nahi duzu,
harridura puntu bat erabili duzu, bestela bang bezala ezagutzen.
Beraz bang berdinen, esan duzu bertan esan nahi du, ez da berdin, logikoki.
Da ez bezala besterik ez da handiagoa izan baino, edo berdin, edo baino gutxiago
edo berdin zure teklatua gakoa Hori ez dena sinbolo bat ere.
Beraz, horregatik, iraganeko adibideak ere, parentesia ireki bat egin duzu, eta, ondoren,
berdintasun-ikurra, ordenan egin handiago edo, esan, baino gutxiago.
>> Beraz, zer da eramateko hemen?
Hau da, besterik gabe, modu bat orain Sintaxia hau aurkezten den, eginbide honek,
Banakako errepikatzean karaktere kate batean.
Eta besterik plaza horiek bezalakoa Parentesi baimendu haiek lortuko duzu,
kontuan kortxeteen horiek bezala motatako azpiko honetan hinting
diseinua, zeinaren guztietan pertsonaia kate baten barruan
Mota da nonbait ere atxilotu azpian zure ordenagailuaren memorian kanpaia.
>> Baina dezagun hau aldaera bat.
Bihurtzen hori da Programa zuzena da.
Beraz CS50 ardatzak per ebaluatzeko kodea, hau zuzena da orain.
Batez ere orain ni naiz egiaztapena null, programa honetan inoiz hondatuko.
Eta ezagutzen dut esperientzia duten.
Baina, ez da beste ezer benetan joan ahal izango dugu, oker hemen.
Baina ez da oso ondo diseinatutako, goazen itzuli oinarriak delako.
>> Lehenengoa, principles-- zer begizta bat egin?
begizta baten hiru gauza.
batzuk initializes balio, eskatu egiten baduzu.
baldintza bat egiaztatzen du.
Eta gero, ondoren bakoitzak iterazio, ziklo bakoitzaren ondoren,
batzuk zatituko da balio, edo baloreak, hemen.
>> Beraz, zer esan nahi du horrek?
0 i hasieratzeko dugu.
egiaztatu dugu eta ziurtatu i baino txikiagoa da s luzera, horrek Z-A-M-Y-L-A da,
beraz, bertan 6 baino gutxiago.
Eta, hain zuzen ere, 0 eta 6 baino gutxiago.
>> inprimatzeko dugu Z Zamyla izenetik.
Ondoren i Kontatzailea dugu 0 eta 1 artekoa.
ondoren, egiaztatu dugu, da 1 gutxiago s luzera baino?
s luzera 6 da.
Bai hori da.
>> Beraz, bat inprimatu dugu Zamyla izena, ZA ere.
i Kontatzailea dugu 0tik, 1, 2.
ondoren, egiaztatu dugu, baino 2 gutxiago Zamyla izenaren iraupena.
6- orain 2 6 baino gutxiago.
Bai, dezagun inprimatu orain M-en Zamyla izena, hirugarren pertsonaia.
>> Gakoa hemen duten bakoitzean Istorioa iterazio, naiz egiaztapena,
da i Zamyla luzera baino gutxiago?
Baina harrapatzen dela Stirling ez da etxebizitza bat.
Nork programatu Duzun dutenek Java edo beste hizkuntzetan baino lehen
luzera jakin liteke kate bat da Jabetza bat, besterik gabe, zenbait balio bakarra irakurtzea.
>> Kasu honetan C ere, hau da, bada funtzio bat da, hitzez hitz
zenbatzeaz Zamyla pertsonaiak aldi bakoitzean
funtzio hori deitu dugu.
Denbora bakoitzak ordenagailu eskatu duzu erabili Stirling, begirada bat hartzen ari da Zamyla at,
eta esaten Z-A-M-Y-L-A, 6.
Eta 6 itzultzen da.
Hurrengo aldiz deitu begizta barruan da,
nik Zamyla begiratu joan berriro, esan Z-A-M-Y-L-A, 6.
Eta hori 6 itzuli egingo da.
Beraz, zer da diseinu honi buruz ergelak?
>> Zergatik nire kodea ez da 5 out of 5 diseinua egiteko oraintxe, beraz, hitz egiteko?
Beno, dut galdetuz bat Galdera alferrik.
lan gehiago egiten ari naiz behar baino nuen.
>> Beraz, nahiz eta Erantzun zuzena da, ni naiz
ordenagailuan galdetuz, zer da Zamyla luzera berriro,
eta berriro, eta berriro, eta berriro?
Eta erantzuna da inoiz aldatuko denik.
Beti da 6 izango da.
>> Beraz, hau baino irtenbide hobea hurrengo bertsio hau izango litzateke.
Dezagun aurrera me eta ipini batean aparteko fitxategi string1.c deitzen,
besterik ez da bereizita mantentzeko.
Eta bihurtzen da bat ere begizta, benetan ahal izango duzu
deklaratzeko aldagai bat baino gehiago aldi berean.
>> Beraz, ez dut i mantendu eta ezarri 0 joan.
Baina, halaber, naiz joan Koma bat gehitu, eta esan,
ematen dit izeneko n aldagai bat, zeinen balio katea s luzera berdin.
Eta orain, mesedez, nire egoera hain luze n baino txikiagoa da i bezala.
>> Beraz, modu honetan, logika da Egunaren amaieran, berdin-berdina.
Baina nago gogoratuz dut balio 6, kasu honetan.
Zer da Zamyla izenaren luzera?
Eta naiz jarriz at n.
>> Eta nik oraindik egiaztapena naiz baldintza aldi bakoitzean.
Da 0 6 baino gutxiago?
Is 1 6 baino gutxiago?
6 baino 2 gutxiago, eta abar?
>> Baina ez naiz ordenagailuan galdetuz berriro, eta berriro, zer da
Zamyla izenaren luzera?
Zer da Zamyla izenaren luzera?
Zer da hau Zamyla izenaren luzera?
naiz literalki gogoratuta lehen eta Besterik bigarren n aldagai honi erantzuteko.
Beraz, orain, ez bakarrik izango litzateke zuzena, baina baita ondo diseinatutako.
>> Orain, zer style buruz?
Nire aldagai izendatu dut Nahiko ondo, esango nuke.
super succinct ari dira oraintxe.
Eta guztiz fina.
>> eta besterik ez duzu bat bada programa batean katea,
baita dezakezu deitu s katea da.
Besterik duzu aldagai bat bada programa batean kontatuta,
baita dezakezu deitu dut.
luzera bat egin nahi izanez gero, n da super ohikoa baita.
Baina ez dut nire iruzkindu kodea edozein.
>> Ez dut informatuta reader-- du duten ala nire TF, edo TA da,
edo, besterik gabe, lankide zer suposatzen Be going on programa honetan.
Eta beraz, estilo ona lortzeko, zer egin nahi nuke
Zerbait dute hau da atsegin galdetu erabiltzaileari sarrera.
Eta berridatzi ezin dut hau edozein modutan kopurua.
>> Ziurtatu s-- Ziur get egiteko kate kate bat itzuli du.
Eta gero, hemen, eta hau da, agian, garrantzitsuena comment-- bestera joateko
s bateko pertsonaiak garai batean baino gehiago.
Eta edozein erabili izan dut English Hizkuntza aukeratu
Hemen bakoitza deskribatzeko kode zatiak hauen.
>> Ohartu ez dut jarri bat lerro bakoitzean komentatzeko,
Benetan, besterik interesgarri on direnak, direnak direla
esanahi batzuk izan duten I might Nahi super norbaitek argi egiteko
Nire kodea irakurriz.
Eta zergatik dira lortu deituz duzu katea eskatu erabiltzaileari sarrera?
Nahiz eta hori ez da nahitaez deskriptibo hori guztia.
Baina istorio bat kontatzen laguntzen du, ez duelako Istorioaren bigarren lerroa da, ziurtatu
katea iritsi kate bat itzuli du.
>> Eta istorioan hirugarrena da, s bateko pertsonaiak baino gehiago batetik bestera
aldi berean.
Eta orain, neurri ona, Aurrera joan eta gehitu noa
Beste iruzkin bat besterik ez dela dio inprimatzeko i-garren s pertsonaia.
Orain, zer egin dut nik Egunaren amaieran?
>> Gehitu dut ingelesez batzuk iruzkinak formularioa hitzak.
barra barra sinboloa esan, beno, ordenagailu honetan giza etorri da,
Ez duzu, ordenagailua.
Beraz, logikoki zaio jaramonik ari dira.
besterik ez dira.
>> Eta, hain zuzen ere, CS50 IDE erakusten horiek bezala grisa, erabilgarria, baina ez key izateaz
programan.
Ohartu zer egin dezakezu orain.
C ezagutzen dituzun ala ez programazio edo ez, zuk
daiteke hor honetan programa, eta gaingabetuak iruzkinak.
Eskatu erabiltzaileari sarrera, ziurtatu katea iritsi kate bat itzuli,
s pertsonaiak baino gehiago batetik bestera aldi berean, inprimatu pertsonaia
i-garren pertsonaia s-- ere ez duzu are izatea kodea begiratu
Programa honek ulertzeko.
Eta, are gehiago, zuk zeuk begiratu Aste bat edo bi programa honetan,
edo hilabete bat, edo urtean, ez gehiegi, ez duzu
Kodea begiradak, gogoratu nahian,
zer zen kodea honekin egin nahian dut?
>> Nik esan duzu zeure burua.
Nik deskribatu duzu zeure burua, edo lankide batzuk, edo TA, edo TF.
Eta, beraz, hau litzateke orain izan zuzena, eta ona diseinua,
eta, azken finean, ona style baita.
Beraz, ez mantentzea kontuan.
>> Beraz, ez da beste bat Gauza naiz hemen egin behar dugu
orain dela agerian daiteke zehazki zer da gertatzen kanpaia azpian.
Beraz, ez da ezaugarri hau C, eta beste hizkuntza batzuetan,
izeneko typecasting Hori bai inplizituki
edo esplizituki ahalbidetzen bihurtzeko datu-mota batetik bestera.
Dugu, beraz, aurre Zuk urrun kateak gaur.
>> Eta kateak pertsonaiak dira.
Baina aste batetik gogoratzen 0, zer dira pertsonaiak?
Pertsonaiak abstrakzio bat besterik ez dira hamartarrekin zenbakien zenbakien gainean,
eta zenbaki hamartarrak dira benetan besterik batekin abstrakzioa zenbakiak bitar gainean,
definitu dugun bezala.
>> Beraz, karaktere zenbakiak dira.
Eta zenbakiak pertsonaiak dira, besterik testuinguruaren arabera.
Eta bihurtzen da barruan Ordenagailu-programa bat,
daiteke nola begiratu nahi duzun hauta dezakezu Programa horren barruan bit at?
>> Aste 0 izan genuen Gogoratu Ascii, bertan kode hau besterik ez da
mapping zenbakiak letrak.
Eta, esan dugun kapital A 65 da.
Capital B 66 da, eta abar.
>> Eta, adi, funtsean dugu karakteretan on Goiko ilara hemen, C deitu litzateke,
pertsonaiak, eta, ondoren, bigarren ilaran ints.
Eta bihurtzen da bihur ditzakezu baitituzte bi, normalean artean.
Eta egin nahi badugu hau nahita, dugu
Landuko nahi izatea honen antzeko zerbait.
>> baliteke bihurtu nahi dugu maiuskulara jaistea
Kasu, edo txikiagoa maiuskulara kasuan.
Eta bihurtzen da ez da benetan hemen eredu bat
daiteke une bat besterik ez besarkatu dugu.
Baina ikus ditzagun lehenik batean hau esplizituki egiten adibide.
>> atzera joan CS50 IDE sartu noa.
bat sortzeko noa izeneko Ascii 0.c. fitxategia
Eta aurrera noa eta gehitzeko joan nire goialdean io.h estandarra, int hutsune nagusia
Nire funtzioa goialdean.
Eta gero, besterik ez naiz egin du, honako hau loop i berdin batetik,
demagun, 65.
>> Eta orduan baino gutxiago izan behar da i joan 65, 26 plus letrak alfabetoaren.
Beraz, ordenagailua utzi dut egin math niretzat ez.
Eta gero, begizta honen barruan, zer naiz argitaratzeko?
>> % C% i backslash n da.
Eta orain, bi balio konektatu nahi dut.
aldi baterako dut jarri Galdera markatzen ez galderari gonbidatzeko.
>> 65 tik aurrera batetik bestera joateko nahi dut 26 alfabetoaren letrak,
inprimatzeko iterazio bakoitzean duten Pertsonaia baliokidea integral.
Beste era batera esanda, Nahi dut Batetik bestera joateko zenbakiak 26 baino gehiago inprimatzeko
zer Ascii pertsonaia da, letra, eta zer dagokion zenbaki is--
Benetan, besterik birsortzen diapositiba hartatik grafikoan.
Beraz, zer galdera marka hauek izan beharko luke?
>> Beno, bihurtzen da bigarrena, bakar aldakorreko i izan behar du.
hori da zenbakia gisa ikusi nahi dut.
Eta erdiko argumentu Hemen, ordenagailua esan ahal dut
osokoa dela tratatzeko i pertsonaia bat bezala, eta, beraz,
ordezka hemen ehuneko C. for
>> Bestela esanda, bada-ta, giza programatzaile, jakin
horiek dira zenbakiak besterik Egunaren amaieran.
Eta jakin beharko lukete 65 dudala pertsonaia batzuk mapan.
esplizitua Aktoreen honekin, parentesi bat,
datu mota nahi duzun izena bihurtzeko, eta parentesi bat itxia,
esan dezakezu ordenagailua, beno, ordenagailua,
bihurtzeko osokoa hau char bat.
>> Beraz, hau exekutatu programa konpilatzean ondoren,
Ea zer eta lortu Ascii 0 dut utzi.
Darn, zer oker egin nahi dut?
identifikatzaile undeclared, Ondo da, ez nahita,
baina ikus dezagun, ezin dugu bada Horregatik bidez.
>> Beraz, lerro five-- beraz, ez nuen lortu oso urrun kizkurtuz aurretik.
Ondo da.
Beraz, lerro 5 i itzultzen 65-- ikusten dut.
Beraz, gogoratu hori C, batzuetan ez bezala Hizkuntza eta aldez aurretik programazio baduzu
esperientzia, behar duzu ordenagailua dira,
Scratch bezala, zer aldagai mota da.
>> Eta esaldi gako bat ahaztu dut hemen.
lerro bost, i erabiltzen hasi naiz.
Baina ez dut esan C zer datu-mota da.
Beraz, ez dut hemen joan joan eta esan, ah, eta horregatik da zenbaki oso bat.
>> Orain, aurrera noa eta berkonpilatu joan.
Hori finkoa.
./ascii0 Sartu, hori da mota cool.
Ez da bakarrik, super azkar Ordenagailua Galdera hau galdetu,
baizik begiratzen ez diapositiba bat baino, inprimatutako lerro bakoitzeko bat, A 65 da,
B 66, modu guztiak Behera I geroztik egin hau 26 aldiz, letrak z izateko,
hau da, 90.
Eta, hain zuzen ere, apur bat adimentsuagoa litzateke
izan da niretzat, ez fidatu ordenagailuaren aurrean gehitu 26.
besterik egin dut ezin 90 baita, hain luzea
Ez dut akats bera birritan gisa.
gora joan bidez nahi dut z, ez besterik y bidez eman.
>> Beraz, hori esplizitua cast bat da.
Bihurtzen hori da Ez da beharrezkoa ere.
Dezagun aurrera me eta berrabiarazi honetan konpiladorea, eta berrabiarazi Ascii 0.
Bihurtzen da C pretty smart.
>> Eta printf, bereziki, pretty smart.
pasatzeko besterik ez bada i bat bitan bi leku-markak, printf
konturatzen, oh, bai al dakizu I eman zidan zenbakia batzuk integer-- bat,
65, edo 90, edo dena bezalakoa.
Baina niretzat nahi duzula ikusten dut formatuan pertsonaia bat bezala kopuru hori.
Eta orain printf inplizituki bota dezake int zuretzat char bat baita.
Beraz, hori ez da arazo bat izan.
>> Baina nabarituko, baita baliokidetza hau Benetan egin ahal izango dugu, hau baita.
Dezagun aurrera eta bat egin beste Ascii 1.c. Halako bertsio
Eta ordez errepikatzean osokoak, benetan kolpe zure gogoan
karaktere baino gehiago errepikatzean arabera.
char c a capital bat lortzen bada, I Nahi aurrera joan eta hori egin,
hain luze C baino txikiagoa edo berdina den bezala kapital Z. Eta iterazio bakoitzean
C Kontatzailea nahi dut, ahal dudan orain nire printf lerroan hemen
esan, ehuneko C da Berea izan dut berriro, koma C.
>> Eta orain, beste norabide joan ahal izango dut, pertsonaia galdaketa esplizituki
zenbaki oso bat.
Beraz, berriro ere, zergatik egin nahi duzu?
Pixka bat arraroa ordenatzeko karaktere dagokionez zenbatu.
>> Baina zer da ulertzen baduzu gertatzen kanpaia azpian,
ez da benetan magikoa ez.
Ari zara, esanez hey, ordenagailua eman me C char mota aldakorra izeneko.
Hasieratu hiriburua A. Eta nabarituko Komatxo materia.
>> C pertsonaiak For, gogoratzen azken astean, komatxo bakar erabili duzu.
kateak, hitz egiteko, esaldiak, komatxo erabili duzu.
Ados, ordenagailua, mantendu egiten, beraz, pertsonaia betiere baino gutxiago
edo z berdina.
Eta jakin nire Ascii mahaitik dut hori guztia Ascii kodeak hauen Alboko dira.
>> Ez dago hutsuneak ez.
Beraz, ez da, besterik gabe, AZ, bakoitzak zenbaki bat bereiztuta.
Eta ondoren Kontatzailea ahal dut char bat bukatu, nahi izanez gero.
Egunaren amaieran, zenbaki bat besterik ez da.
Badakit hau.
Beraz, besterik ez dut presume daiteke 1 gehitzeko.
>> Eta gero, denbora honetan, c inprimatu dut, eta, ondoren, bere baliokidea integral.
Eta ez dut ere esplizituak Aktoreen behar.
printf eta utzi ahal izango dut ordenagailu figura gauzak,
beraz, gaur egun exekutatu bada egiteko Ascii1./ascii1,
Zehatza gauza bera lortu nuen, baita.
>> Useless programa, though-- inork ez da benetan idatzi software joan
Ordena irudikatu ere, zer izan zen Hori A mapak zenbakia, edo B edo Z?
Ari zara, Google-ra edo joan, itxura eman online, edo hura bilatu
diapositiba bat, edo antzeko.
Beraz, non ez hau benetan lortu baliagarria?
>> Beno, horretaz ari diapositiba, konturatu ez
benetako eredu bat hemen maiuskulaz artean eta minuskulak hori ez zen ustekabean.
Iragarki hiriburua A 65 da.
Minuskulaz bat 97 da.
Eta nola urrun dago minuskulak bat?
>> Beraz, 65 urrats zenbat urruntzen 97-tik?
Beraz, 97 minus 65 32 da.
Beraz, kapital bat 65 da.
32 gehitu ezkero dela, minuskula bat lortuko duzu.
Eta, bestela esan, kentzen duzu 32 bada, atzera hiriburua den A-- B gauza bera
b gutxi den, c gutxi to C big.
>> hutsuneak horiek guztiak dira 32 aparte.
Orain, hau gaitu omen ziren Zerbait egin Microsoft Word bezalako,
edo Google Docs ezaugarria, non duzu dena hautatu ahal izango du eta, ondoren, esan,
alda guztiak minuskulara, edo guztiak aldatu maiuskulara,
edo soilik lehen hitza aldatu maiuskulara esaldi baten.
Benetan egin ahal izango dugu zerbait geure horrelako.
>> Dezagun aurrera eta fitxategi batean gorde Hemen izeneko larriz 0.c.
Eta dezagun aurrera eta Greba programa bat zehazki egiten du hori honela.
Beraz, besteak beste CS50 liburutegia.
Eta, besteak beste, estandarra I / O.
>> Eta hau arida ezagutzen dut.
Beraz, ez dut jarri, izan ere joan Han dagoeneko, string.h,
beraz sarbidea daukat Stirling bezalako gauzak,
eta, ondoren, int hutsune nagusia, ohikoa den bezala.
Eta gero, aurrera noa eta egiten kateak lortzen katea iritsi,
besterik erabiltzaileak kate bat lortzeko.
Eta gero noa ez nire behatu egiaztatzeko.
katea ez da nulua berdina bada, orduan seguru jarraitu da.
Eta zer egin nahi dut?
berdin i 0-tik bestera joateko noa, eta n katea s luzera gehienez.
>> Eta ez dut hori egin ahal izateko, harik eta joan i baino gutxiago n da, eta i plus plus.
Orain arte, benetan besterik ez naiz ideia baterako hartu aurretik.
Eta orain, adar bat aurkeztu nahi dut.
>> Beraz, uste back Scratch, non Sardexka errepidea horiek izan genuen,
eta azken astean C. hasi naiz joan hau esan, bada i-garren s pertsonaia
hau baino handiagoa edo berdina kasu bat jaistea,
-Nik Scratch literalki egiten duzun esan eta, baina C ampersand esan duzu,
ampersand-- eta i-garren s pertsonaia txikiago edo berdin Kasu z jaistea da,
Egin dezagun zerbait interesgarria utzi.
Dezagun inprimatu benetan out bat newline ez duen pertsonaia
katea pertsonaia da, i-garren pertsonaia katean.
>> Baina goazen aurrera eta kenketak 32 bertatik.
Bestela bada ere pertsonaia kate hori bilatzen ari gara
Ez da bat gutxi arteko eta gutxi z, aurrera
eta besterik inprimatuta out aldatu gabe.
Beraz dugu sartu bracketed idazkera hau
gure kateak at lortu i-garren pertsonaia katean.
>> Nik baldintzapeko logika batzuk gehitu dut, atsegin Azken astean, aste bat, non ere Scratch
Besterik ez naiz nire oinarrizko erabiliz Zer da ulertzea
gertatzen kanpaia azpian.
i-garren ren pertsonaia da handiago edo berdin bat?
Bezala, dela 97 edo 98, edo 99, eta abar?
>> Baina da, halaber, berdina edo txikiagoa z minuskulaz balioa izateko?
Eta hala bada, zer esan nahi du lerro hau?
14, hau moduko da Ideia osoa ernamuina,
larriz gutuna, besterik kenduz 32 bertatik,
Kasu honetan, dakit zeren, hori per taula, nire zenbakiak nola irudikatzen dira.
Beraz, goazen aurrera eta exekutatu honetan, larriz 0.c konpilatzean ondoren,
eta run larriz 0.
>> Dezagun idatzi ere antzeko zerbait Zamyla minuskulaz guztietan sartzen.
Eta orain Zamyla dugu maiuskulaz.
Dezagun idatzi Rob minuskulaz guztietan.
Dezagun saiatu Jason minuskulaz guztietan.
Eta ekidin nahi dugu behartu kapitalizazioa.
Ez dago akatsen bat adin txikikoa dela I motatako ez aurreikusteko.
Iragarki nire gonbita berria da bukatzen beren izenak bezalako lerro berean,
bertan narratsa pixka bat sentitzen.
>> Beraz, ez dut hemen joan, eta Programa honetan benetan amaieran
inprimatu lerro bat.
Hori da dena.
printf batera, ez duzu nahi aldagai edo formatu kodea pasatzen.
literalki dezakezu besterik inprimatu newline baten antzeko zerbait.
>> Beraz, goazen aurrera eta egin larriz 0 berriro, berrabiarazi, Zamyla.
Eta orain prettier txiki bat da.
Orain, nire gonbita bere linea berria kabuz.
Beraz, hori guztia fina eta ona da.
Beraz, adibide ona da.
Baina ez dut ere nahitaez gogor kodea du 32 behar.
Ba al dakizu zer?
esatea izan dut ez dut inoiz gogoratzen zer diferentzia da.
>> Baina badakit hori bada I Kasu txikiagoa gutun bat dute,
funtsean nahi dut off kendu edozein dela distantzia apur artean dago
bat eta handi bat, baita bere gain hartzen dut hori bada Beste letra guztiak berdinak dira,
duten lana egin behar du.
Baina egin beharrean dagoela, badakizu zer?
Ez dago beste modurik oraindik.
>> Hori bada Honez larriz 1.c-- I balitz noiz jarri den fitxategi bat sartu.
utzi larriz 2.c ez en honela.
Benetan, hau garbitzeko hemen noa.
Eta horren ordez, nahiz eta beharrik Badakizu edo maila altua horiek zaintzeko
ezartzeko xehetasunak, ordez naiz besterik pertsonaia bat inprimatu,
aurrekontu unquote ehuneko C, eta gero deitu funtzio bat dela
existitzen dela argumentu bat hartzen du, bertan pertsonaia bat, hau bezalakoa da.
>> Bihurtzen da C ere, ez da funtzio deia beste
goiko, zein bere izen gisa iradokitzen pertsonaia bat hartzen
eta egiten du bere maiuskulara baliokidea, eta ondoren itzultzen du
beraz printf dela konektatu ahal ez izateko.
Eta beraz, hori egin ahal izateko, ordea, I behar beste fitxategi bat aurkeztera.
han fitxategi bat da bihurtzen da Hori bakarrik ez litzateke klase jakin batetik,
edo eskuliburu bat, edo online bat erreferentzia, izeneko C type.h.
>> Gehituko dut Beraz, bada, nire goiburua artean fitxategiak, eta orain berriro konpilatu programa hau,
capitalize2, ./capitalize2 Sartu.
Dezagun idatzi Zamyla guztietan minuskulaz, oraindik ere gauza bera egiten du lan.
Baina badakizu zer?
Bihurtzen da, goiko beste funtzionalitate batzuk eskaintzen ditu.
>> Eta utzi hau aurkeztera me aginteaz hemen, ordenatzeko baldarki
izendatu, baina manuala gizona.
Bihurtzen da Linux ordenagailuetan, Linux eragilearen hemen erabiltzen dugun bezala
sistema erabiliz komando bat dute man izeneko, horrek dio,
beno, ordenagailua, eman me ordenagailuaren eskuliburua.
Zer nahi duzu, itxura eman Eskuliburu horretan?
>> bilatuko funtzioa nahi dut goiko izeneko, Sartu.
Eta apur bat críptica da batzuetan irakurtzeko.
Baina konturatu ere ez gara Linux programatzaileentzako eskuliburu.
Eta testu guztiak da.
Eta ez dagoela ohartuko da etorri funtzioaren izena eman hemen.
Bihurtzen da izeneko lehengusu bat du , Jaistea zein kontrakoa egiten du.
Eta sinopsia pean oharra, hau erabili ahal izateko funtziona gizon orria, nolabait esateko,
da me esan diot ez Behar c type.h. besteak beste
Eta ezagutzen ditudala praktika.
>> Hemen, niri erakusten da bi funtzioa prototipoak,
beraz, inoiz dut hau erabili nahi izanez gero zer sarrera gisa hartu dute ezagutzen dut,
eta zer irteera gisa itzuliko dute.
Eta gero irakurri badut deskribapena, ikusi dut
xehetasun gehiago zer funtzio du.
Baina are garrantzitsuagoa dena, bada bueltan balioa azpian begiratu dut,
esaten du, balioa itzuliko da bihurtutako gutun,
edo C, jatorrizko sarrera, bada Bihurketa ez zen posible.
>> Beste era batera esanda, goi saiatuko da gutun bihurtzeko goiko kasuan.
Eta hala bada, itzuli egingo da.
Baina, ahal badu, ez arrazoia batzuentzat agian, dagoeneko maiuskulatan da,
agian, harridura puntu bat da edo beste batzuk punctuation--
besterik ez da joan itzuli jatorrizko C,
horrek esan nahi du nire kodea egin ahal dut hobe honela diseinatuta.
>> Ez dut guztia behar darn kode lerro horiek.
lerroak dudan guztia besterik nabarmendu ahal
egon sinple bat besterik ez erori line, printf ehuneko Halako da
goiko S bracket i c.
Eta hau izanen litzateke diseinu hobea adibide.
>> Zergatik 7 edo 8 lerro ezartzea Kode-, edozein dela I izan zen, besterik gabe,
ezabatu da, betiere, ahal duzun ordez tolesteko Logika eta erabakiak hartzeko duten guztia
lerro bakar bat, 13 orain, sartu dela liburutegian oinarritzen da funtzio
funtzio bat C batekin dator, baina hori ez zehazki zer egin nahi duzu.
Eta, gero, Egia, nahiz eta ez zuen C etortzen,
ezartzea izan duzu zeure buruari, ikusi dugu, lortu dituzten int negatiboa
eta positiboa int azken astean baita.
>> Kode hau orain askoz gehiago irakurtzen da.
Eta, hain zuzen ere, sortu joan gara, begiratu zenbat trinkoagoak
Nire programa bertsio hau.
apur bat gora heavy da orain, horiek guztiak barne hartzen dituzten.
Baina hori Ados, orain zutik dut delako programatzaileak sorbaldak
me aurretik.
Eta diozula zen nor goiko abian benetan
egin arren, askoz ere atsegin duenarentzat inplementatu Stirling benetan
egin arren, duela zenbait urte.
Eta, beraz, gaur egun bat behar dugu hobeto diseinu programa
zehatza bera logika inplementatzen.
>> Stirling Mintzamena, utzi aurrera zidan eta hori egin.
Dezagun aurrera eta gorde Fitxategi hau stirling.c bezala.
Eta bihurtzen da, atzera zuritu dezakegu beste geruza bat nahiko besterik gabe, gaur egun.
Animatu eta Greba joan noa nagusian, beste programa bat sortu
Hemen, besterik gabe, berriro lanabesen katea honela luzera.
Hortaz, hona hemen kode lerro bat dela lortzen me erabiltzaileak kate bat.
hau behin eta berriro erabiliz mantendu dugu.
Neure burua ematen dit izeneko aldagai bat mota int zenbaki bat gordetzen duten n.
>> Eta utzi aurrera me eta Hurrengo logika egiten.
n-garren s pertsonaia egiten ari den bitartean ez da berdina backslash 0, aurrera
eta Kontatzailea n.
Eta ondoren, inprimatu printf ehuneko i n.
aldarrikatzen dut programa hau hemen, kate luzera gabe,
zifrak kate baten luzera.
>> Eta magia da erabat 8 line kapsulatuaren
Hemen zer berria sintaxia itxura, backslash honetan 0 komatxo bakar.
Baina zergatik da hori?
Beno, kontuan hartu zer iritzi denbora hori guztia gertatzen.
>> Eta bat alde batera utzita dut ahaztu aurretik, konturatzen gehiegi, agian man orrien gain
Hori tipikoa etortzen Linux CS50 IDE bezalako sistema,
konturatzen garela, etorri Jakina organigrama, izan ere
webgune bertsio bat egin izeneko ideia hori bera
reference.cs50.net, ditu horiek gizon bera orri guztiak,
bera duten guztia dokumentazioa, baita
Goiko ahalbidetzen at kaxa txiki batean du nahiko guztia bihurtzeko
arcane hizkuntza gutxiago eroso sartu modua, non dugu, irakasleen,
pasatu eta sinplifikatzen saiatu Hizkuntzaren gauzak mantentzeko batzuk
ideiak bideratuta, eta ez technicalities batzuk.
Beraz, kontuan hartu, reference.cs50.net beste baliabide bat bezala baita.
>> Baina zergatik ez du kate-luzera lan modu une bat duela proposatu dut?
Hemen Zamyla izena da berriro.
Eta hemen Zamyla izena da boxed ere, egiten jarraitu nuen bezala,
irudi bat margotzen da izatearen, benetan, karaktere-sekuentzia bat besterik ez.
Baina Zamyla ez da existitzen programa batean isolatuan.
>> Noiz idatzi duzu eta programa bat exekutatu, zure Mac edo PC erabiltzen ari zarela
memoria, edo RAM bezala, nolabait esateko.
Eta pentsa dezakezu Ordenagailuak gisa
memoria gigabyte egun hauetan asko.
Eta Kontzertu bat esan nahi du milaka milioi, beraz byte milioiak.
>> Baina dezagun atzeratzeko denboran.
Eta demagun erabiltzen ari gara ordenagailu benetan zaharra zela
32 byteko memoria besterik ez ditu.
Ahal izan nuen, nire ordenagailuaren pantailan, besterik marraztu out honela.
>> besterik ezin dut esan nire ordenagailuaren memoria hori guztia dauka.
Eta hau memoria makila bat bezalakoa da, bada Gure picture azken aldiz gogoratzen duzu.
Eta I zatitzea besterik ez bada hau nahikoa garaietan,
32 byte behar dudala aldarrikatzen dut pantailan oroimenaren.
>> Orain, egia esan, I can bakarrik marraztu orain arte pantaila honetan hemen.
Beraz, aurrera noa joan, eta zerbait konbentzio,
marraztu nire ordenagailuaren memoria gisa grid, ez lerro zuzen bat besterik ez da.
Hain zuzen ere, orain dela aldarrikatzen dut sare hau, hau 8 4 grid,
besterik adierazten 32 byte guztiak memoria nire Mac eskuragarri,
edo nire PC eskuragarri.
Eta biltzeko ari dira den bi lerro, besterik
pantailan gehiago egokitzen delako.
Baina hau lehen byte da.
Hau bigarren byte da.
Hirugarren byte da.
>> Eta hau 32. byte da.
Edo, ordenagailu bat bezala pentsatzen badugu zientzialari, hau 31 byte 0, 1, 2, 3, da.
Beraz 0 duzu 31ra, bada 0 kontatuta hasteko duzu.
>> Beraz, programa bat erabili badugu deiak hori lortzeko katea,
eta giza-kate bat lortuko dugu atsegin zuen Zamyla deitzen dut, Z-A-M-Y-L-A,
nola ere munduan egiten du ordenagailu Jarrai duen byte,
zein zatika oroimenaren, dagokio zein katea?
Beste era batera esanda, jarraitu badugu idatzi izen bestera ordenagailuan sartu,
Andi hau bezalako, deituz katea iritsi bigarren aldiz,
A-N-D-I sortu amaitzeko ditu ordenagailuaren memorian baita.
Baina nola?
>> Beno, bihurtzen da, azpian kanpaia, zer gertatzen denean C kateak gordetzeko
giza mota ere, edo hori eta beste bide batzuetatik etorriko da,
Horietako amaierarekin batera arakatzen character-- backslash berezi bat
0, modu berezi bat besterik ez da ren 80 bit ilara batean esanez.
>> Beraz A-- honetan zenbaki 97 abisuaren da.
Beraz, 8 bit patroi batzuk zenbaki hamartar 97 adierazten du.
backslash Hau 0 da hitzez hitz kopurua 0, a.k.a. nul, N-U-L, lehenago ez bezala,
N-U-L-L, bertan hitz egin dugu.
Baina, oraingoz, besterik ez dakizu hori backslash 0 errenkadan bit 80 besterik ez da.
>> Eta besterik lerro hau da harea ezer esaten duen ezkerrera
kate bat, edo datu-mota bat dagokio.
Eta ezer eskubidea beste zerbait dagokio.
Andi izena, bere aldetik, bertan besterik ikusmen
gertatzen biltzeko beste lerrora, baina xehetasun bat estetikoa,
era berean, ez dago nul amaitu.
>> a A-N-D-I karaktere kate bat da, plus bosgarren pertsonaia sekretu bat,
0 bit guztiak, hori besterik demarcates Andi izenaren amaieran baita.
Eta deitu badugu katea iritsi hirugarren aldiz Ordenagailua bezalako kate bat lortzeko
Maria, M-A-R-I-A, era berean, Maria da name nul backslash 0 amaitu da.
>> Hau da, funtsean, hainbat nola, ordenagailuak litzateke normalean
gordetzeko zenbaki oso bat, edo mugikor bat, edo beste Datu mota oraindik delako, gogoratzen
zenbaki oso bat izan ohi da, 32 bit, edo 4 byte, edo agian, 64 bit,
edo zortzi byte.
Baina ordenagailu batean primitiboak asko programazio hizkuntza batean
kopuru finko bat dute hood-- azpian byte
agian, 1, 2, agian, agian, 4, agian, 8.
>> Baina kateak, diseinua, behar bat karaktere kopurua dinamikoa.
Zuk ez duzu jakin, aldez aurretik, arte Z-A-M-Y-L-A giza motak,
edo M-A-R-I-A, edo A-N-D-I. Ez dakizu zenbat aldiz erabiltzailea hit joan
teklatuan.
Hori dela eta, ez dakizu nola pertsonaiak asko aldez aurretik
zu behar joan.
>> Eta beraz, C mota besterik bat bezala uzten kanpaia azpian breadcrumb sekretua
katearen amaieran.
Z-A-M-Y-L-A gordetzeko memoria ondoren, Halaber besterik baliokidea jartzen
garai baten.
esaldi baten amaieran, 80 bit jartzen du, eta, beraz,
gogoratzen non Zamyla hasten eta bukatzen da.
>> Beraz, zer da konexioa, ondoren, programa hau?
Programa hau hemen, Stirling, besterik ez da, mekanismo bat
kate bat lortzeko erabiltzaileari, linea 6.
Linea 7, aldagai bat deklaratzen dut izeneko n eta 0 berdinak ezarri da.
>> Eta gero, 8 line, besterik gabe, galdetu nion Galdera da, n-garren pertsonaia ez bitartean
ez berdinak 0 bit guztiak beste era batera esanda, ez du
berdinak berezi honetan pertsonaia, backslash 0, eta horrek
besterik nul character-- berezia zela joan aurretik eta Kontatzailea n.
>> Eta mantendu egiten da, eta mantendu egiten, eta mantendu egiten.
Eta, beraz, nahiz eta, nahiz iraganean erabili dut dugu,
primeran fina da semantikoki n erabili,
besterik ez duzu, saiatzen ari bada zenbatu denbora hau nahita,
eta besterik ez da n deitu nahi.
Beraz, hau da, besterik gabe mantentzen galdera eskatuz, n-garren ren 0 s guztiak pertsonaia da?
Hala ez bada, hurrengo begirada begiratu, hurrengo begiratu, hurrengo begiratu,
hurrengo begiratzeko.
>> Baina backslash 0 ikusi bezain laster, loop lerro hau 9 11-- bidez gelditzen.
apurtu bitartean begizta duzu, n aldagai horren barruan utziz
guztien kopuru osoa katea ikusi duzu pertsonaiak,
horrela, inprimatzeko.
Hargatik saiatu honekin.
>> Dezagun aurrera eta, gabe Stirling funtzioa erabiliz,
baina besterik ez nire komikien bertsio propioa erabiliz Hemen Stirling deitu, utzi aurrera me
eta run Stirling, zerbait mota Zamyla, ezagutzen dut aldez aurretik bezala
sei karaktere da.
Ikus dezagun lan egiten bada dezagun.
Izan ere, sei da.
Dezagun saiatu Rob batera, hiru pertsonaiak, Hiru pertsonaia baita, eta abar.
Beraz, hori da hori gertatzen guztiak kanpaia azpian on.
Eta konturatu konexioak, ondoren, lehen astean
klaseko, non buruz hitz egin dugu abstrakzioa antzeko zerbait,
bertan ideien layering hau besterik ez da, edo konplexutasuna, oinarrizko printzipioak gainean.
Hemen, sort gara bilatzen dugu stirling kanpaia azpian,
nolabait esateko, irudikatu, nola garatuko litzateke geldituko ote da?
>> Eta ezin dugu berriro ezartzea da geure buruari.
Baina ari gara inoiz berriro joan to berriro ezartzea Stirling.
Besterik ez gara joan Stirling erabili ahal izateko
benetan lortu kateak luzera batzuk.
>> Baina ez da magia ez kanpaia azpian.
Ezagutzen baduzu azpian kanpaia, kate bat
karaktere-sekuentzia bat besterik ez da.
Eta karaktere-sekuentzia hori guztiak zenbakiz zuzenduta egon daiteke
parentesia 0, batera 1, 2 parentesi, eta zuk
ezagutzen duten kate baten bukaeran a izaera berezia, irudikatu dezakezu
gehien batean ezer egin programa, behera irakiten guztiak delako
irakurtzen eta idazten memoria.
Hau da, aldatuz eta bila memoria, edo gauzak mugitzen
memorian inguruan, inprimatzeko gauzak pantailan, eta abarren gainean.
>> Hargatik newfound hau erabili izan da orain zer Kateak benetan ulertzeko
kanpaia azpian daude, eta atzera azala beste geruza bat
Orain arte izan ditugun dira batere kontuan.
bereziki, edozein unetan ere programa bat inplementatu dugu,
kode-lerro izan dugu, hau goiko gertu nagusiak geratuko.
Eta zehaztu dugu int hutsune nagusia.
>> Eta hutsune hori parentesi barruan hori nagusia izan da denbora honetan guztian esaten
berez, ez du argumenturik hartzen.
Edozein sarrera nagusia dela Erabiltzaile etik joan
beste batzuk etorriko da mekanismo, bezala lortu int,
edo iritsi karroza, edo kate lortu, edo beste funtzio batzuk.
Baina bihurtzen da programa bat idatzi duzun,
duzu benetan zehaztu dezakezu Programa honek ere hori
hartu Sarrerek giza-tik Komando-lerroan bertan.
>> Beste era batera esanda, nahiz eta orain arte dugu Nahikoa exekutatzen bada Hello kaixo
edo antzeko programak, guztia beste programen ditudan erabiliz izan dugu,
Gu ere, ez zuen idatzi hori, hartzen dira izan, dirudienez,
Komando-lerroan argumenturik make bezalako gauzak.
make antzeko zerbait esan duzu, eta, ondoren, bigarren hitz bat.
Edo Clang, Clang esan duzu, eta, ondoren, bigarren hitz bat, fitxategi baten izena.
>> Edo are RM edo CP, baitezakezu ikusi dute edo erabili dagoeneko
kendu edo kopiatzeko.
horiek guztiak hartu deiturikoak Komando-lerroan argumenturik
terminalean at hitz osagarriak.
Baina, orain arte, dugu geure ez dute izan
sarrera hartuta batetik luxua honetan Erabiltzaileak berak benetan exekutatzen denean
programak berak komando-lerroan.
>> Baina zer egin genezake ek berriro deklaratzen nagusiak aurrera, ez izatea gisa
parentesi void, baina bi argudio horiek
Lehenengo zenbaki oso bat Horren ordez, eta bigarrena, zerbait
berria, zerbait ari gara deitzera joan Array, espirituz antzeko zerbait
zer ikusi Scratch dugu zerrenda bat bezala, baina Kateak array bat, laster ikusi dugu.
Baina ikus dezagun arabera Adibide gisa, aurretik dugu
bereizteko zehazki zer esan nahi duen.
>> Beraz, joan nintzen CS50 IDE sartu bada Hemen, joan dut aurretik
izeneko fitxategi batean deklaratu argv0.c honako txantiloia.
Eta nabarituko gauza bakarra hori da desberdina orain arte
dago hori aldatu dut void int argc katea argv tarte irekia da, hurbil
bracket.
Eta orain, nabarituko, ez da Parentesi horiek ezer barruan.
>> Badira zenbakia ez da.
Eta ez da i no, edo n, edo beste edozein letra.
Besterik ez naiz erabiliz oraingoz kortxeteen,
arrazoiengatik etorri dugu atzera une bat besterik ez.
>> Eta orain zer egin behar dut da hau.
argc bada berdin berdin 2-- eta gogora ekarri du berdin berdin
berdintasun-operadorea alderatuz da ezkerreko eta eskuineko berdintasunaren alde.
Ez da esleipena It operadoreak, hau da,
Berdintasun ikurraren single, horrek esan nahi du, kopia eskuinetik egindako ezker balio batzuk.
>> argc bada berdin berdin 2, Nahi dut esan, printf, kaixo, ehunekotan, linea berria,
eta ondoren konektatu in-- eta hemen da berri du trikimailu argv parentesi 1, arrazoiengatik
hori atzera une batean etorri gara.
Bestela argc ez bada berdina 2, badakizu zer?
Goazen besterik Animatu eta, ohi bezala, inprimatu out kaixo ordezkapen gabe munduan.
>> Beraz, badirudi hori argc, eta horrek badu argumentu Aldaketa dago, berdin 2,
inprimatu noa kaixo zerbait edo beste.
Bestela, besterik ezean, naiz kaixo inprimatu mundu joan.
Beraz, zer esan nahi du horrek?
>> Beno, utzi aurrera me eta gorde Fitxategi honek, eta gero egin argv0 egiteko,
eta gero ./argv0, Sartu.
Eta kaixo esaten du mundu.
Orain, zergatik da hori?
>> Beno, bihurtzen da edonoiz duzu exekutatu programa bat komando-lerroan,
Ari zaren betez zer egingo dugu oro har, deitu argumentu bektore bat.
Beste era batera esanda, automatikoki batean ordenagailua, sistema eragilea,
da zure programa eskutik joan bera hitz guztien zerrenda bat
giza Badirudi idatzitako at gonbitan, kasu horretan,
programatzailea nahi egin Informazio hori duen zerbait.
Eta, kasu honetan, bakarrik hitza gonbitan I idatzitako ./argv0 da.
>> Eta beraz, argumentu kopurua dela ari nire programa gainditu besterik ez da.
Beste era batera esanda, argudioa zenbatu, bestela argc bezala ezagutzen
Hemen, zenbaki oso bat bezala, bat besterik ez da.
One, jakina, ez du berdina bi.
Eta, beraz, hau da, zer inprimatzen, kaixo mundua.
>> Baina utzi nonbait hau hartu me.
Let me esan, argv0.
Eta gero, nola Maria buruz?
Eta gero, sakatu Sartu.
>> Eta konturatu magikoki zer gertatzen den hemen.
Orain, kaixo mundua ordez, behar dut Programa honen portaera aldatu
sarrera ez hartzea, get arabera katea edo beste funtzio batzuk,
baina, itxuraz, nire komando berez, jatorriz idatzi dut.
Eta joko honetan berriro jolastu ahal dut arabera aldatzen Stelios, adibidez.
>> Eta orain beste izen bat ikusten dut oraindik.
Eta hemen, Andi esan liteke dut.
Eta Zamyla esan liteke dut.
Eta joko honetan jolastu ahal izango dugu egun osoan zehar, besterik balio ezberdinak plugging,
hain luze zehazki ematen dudan bezala bi gonbitan hitz,
hala nola, argc, nire argudio zenbatu, 2 da.
>> Ez da izen hori sartuta dagoela ikusi dut printf, baldintza hori hemen per?
Beraz, orain badirudi dugu adierazpen gaitasuna
sarrera hartuta beste mekanismo batetik, Komando-lerroan deiturikoak,
baizik eta itxaron beharrik baino Erabiltzaileak programa exekutatzen arte,
eta orduan galdetuko zion bere katea zerbait erabiliz.
>> Beraz, zer da hau?
Argc, berriro, zenbaki oso bat besterik ez da, words-- argumenturik kopurua
Hori emandako erabiltzaileak gonbita, terminal leiho ondoan,
programaren izena barne.
Beraz, gure ./argv0 da, modu eraginkorrean, programaren izena,
edo nola, programa exekutatu dut.
>> Hori hitza gisa zenbatzen.
Beraz argc 1 izango litzateke.
Baina I Stelios idatzi, edo Andi, edo Zamyla, edo Maria,
horrek esan nahi du argumentu Aldaketa bi da.
Eta, beraz, gaur egun ez da gainditu bi hitz egin.
>> Eta, adi, logika hau jarraitu ahal izango dugu.
Bada, egia esan, esan nuen Zamyla Chan bezalako zerbait,
izen bat, horrela pasatzen hiru argudio guztira,
orain lehenetsia dio berriro, zeren, jakina, 3 ez du berdina 2.
>> Eta beraz, modu honetan, ez daukat argv argumentu berri honen bidez sarbidea
Teknikoki genitzakeela dei egin nahi izan dugu.
Baina konbentzio, da, argv eta argc, hurrenez hurren.
Argv, argudio vector, mota da programazio bat sinonimo baten
C Ezaugarri izeneko array bat.
>> Array bat antzeko balio-zerrenda bat da Atzera, atzera, atzera, atzera.
Beste era batera esanda, inork bada da hementxe bertan RAM, hurrengo bat da eskubidea ondoan,
eta haren ondoan.
Oraindik ez dira leku guztietan zehar.
Eta bigarrenak, eszenatoki hori, non gauza guztiak memorian leku baino gehiago daude,
benetan indartsua ezaugarri bat izan daiteke.
Baina itzuli dugu hori denean dugu fancier datu egiturak buruz hitz egiteko.
Oraingoz, array bat besterik ez da Alboko memoria zatia,
bakoitza zeinen elementuak dira Atzera, atzera, atzera, atzera,
eta, oro har, mota bera.
>> Beraz, uste baduzu, batetik Une duela, zer kate bat da?
Beno, kate bat, Zamyla bezala, Z-A-M-Y-L-A, da, teknikoki,
besterik array bat.
karaktere array bat da.
>> Eta, beraz, benetan marrazteko bada hau, gisa I zuen lehenago, memoria zatia bezala,
bihurtzen da, horietako bakoitzak pertsonaiak hartzen byte bat.
Eta gero, ez da hori berezia Sentinel pertsonaia da, backslash 0,
edo zortzi 0 bit, hori kate horren amaieran demarcates.
Beraz, kate bat, hura bihurtzen out, aipatu unquote katea,
chara-- array bat besterik ez da char benetako datu-mota bat izateaz.
>> Eta orain, argv, meanwhile-- goazen programa atzera.
Argv, hitza ikusiko dugu, nahiz katea hemen, kate bat ez bera.
Argv, argudio vector, Kateak array bat da.
>> Beraz, besterik ez bezala array bat izan dezakezu pertsonaiak, maila altuago izan dezakezu,
strings-- array bat beraz, esate baterako, denean une bat idatzi dut duela ./argv0
argv0, espazio Z-A-M-Y-L-A, hori aldarrikatu dut argv it ./argv0 bi kateak izan,
eta Z-A-M-Y-L-A. In Beste era batera esanda, argc 2 izan zen.
Zergatik da hori?
>> Beno, eraginkortasunez, zer gertatzen da on da kateak horietako bakoitzak
da, noski, karaktere array bat lehen bezala, bakoitzak zeinen pertsonaiak
byte hartzen.
Eta ez nahastu benetako 0 programaren izena 0 batera ere,
bertan 80 bit guztiak esan nahi du.
Eta Zamyla, bestalde, ez da oraindik halaber, karaktere array bat.
>> Beraz, egunaren amaieran, benetan itxura hau kanpaia azpian.
Baina argv, naturak nola nagusien lanak, esker hori guztia biltzeko to me
, Izango bada, handiagoa array sartu sortu , Apur bat baino gehiago dugu errazteko
zer irudi itxura eta egiten ez nahiko marraztu eskalatzeko ez,
array honen tamaina 2 bakarra da, lehena elementu-kate bat dauka,
bigarren elementua Kate bat dauka.
Eta, era berean, baduzu motatako Handiagotzean bakoitzean
kate horiek, zer duzu kanpaia azpian ikusi
kate bakoitzak besterik ez da karaktere array bat.
>> Orain, besterik gabe kateak bezala, sarbidea lortzeko gai izan ginen
i-garren kate bateko pertsonaia ra Hori kortxetea notazioa erabiliz.
Era berean, array oro har, ezin dugu
erabili kortxetea notazioa lortu edozein kateak kopurua array bat at?
Esate baterako, let me aurrera, eta hori egin.
>> Dezagun aurrera eta argv1.c sortu, bertan desberdinak pixka bat, oraingo honetan.
Horren ordez argc2 egiaztatzeko, ordez egin hau noa.
For int lortu dut 0, txikiagoa da I argc baino, I plus plus,
eta, ondoren, inprimatu honen barruan, ehuneko s, lerro berria, eta, ondoren,
argv tarte i.
>> Beraz, beste era batera esanda, ez naiz hemen karaktere banakako une.
Argv inplikatzen plaza huts horiek bezala name argv du eskubidea giltza,
esan argv kateen array bat da.
Eta argc int bat besterik ez da.
>> Lerro hau hemen, 6, da set esaten berdintasuna 0.
Diruz bide guztiak arte, baina ez, barne argc.
Eta gero, iterazio bakoitzean, inprimatu kate bat.
Zer katea?
>> i-garren katea argv ere.
Han nengoen aurretik, berriz, du kortxetea erabiliz
notationekin igarren at lortu kate bateko pertsonaia, orain
kortxetea notazioa erabiltzen dut to igarren array bat kate batean jaso.
Beraz geruza mota da batez ere, kontzeptualki.
>> Eta beraz, zer da hau buruzko neat Programa orain, argv1 konpilatu badut,
eta gero egin ./argv1, eta ondoren idatzi foo bar baz antzeko zerbait,
bertan hiru hitz lehenetsia erabiltzen dira informatikariak edozein ordutan iristen
berak placeholder hitz bat behar duela, eta sakatu Sartu, hitz horietako bakoitzean,
programaren izena, besteak beste, bertan argv da lehen kokapenean,
bukatzen ari aldi berean bat inprimatuta.
Eta hau aldatu dut bada, eta esan nuen argv1 Zamyla Chan bezalako zerbait,
guztiak horietako hiru lortuko dugu hitzak, hau da argv0,
argv1, argv2, hau delako Kasu argc, Aldaketa, 3 da.
>> Baina zer da neat da ulertzen baduzu argv duten kateen array bat besterik ez da,
eta ulertzen duen katea karaktere array bat da,
benetan mota erabili ahal izango dugu hau kortxetea notazioa anitz aldiz
kate bat aukeratzeko, eta, ondoren, aukeratu katea barruan pertsonaia bat,
honela sakonago urpekaritza.
Adibide honetan, let me joan Animatu eta deitu argv2.c hau.
Eta adibide honetan, utzi aurrera me eta egin honako hau int i get 0,
i argc baino txikiagoa da, i plus plus, bezala aurretik.
Beraz, beste words-- eta orain honetan da nahikoa konplikatua lortzean.
Ondoren, naiz esateko joan argv kateak baino gehiago batetik bestera,
neure buruari iruzkin gisa.
Eta gero, bat izan naiz joan begizta habiaratuak, ziurrenik bertan duzu
egin dute, edo jotzen , Egiten Scratch, non
int naiz esaten noa i berriro erabili ez joan,
ez dudalako nahi itzal, edo Sort gainidatzi Dagoen i.
>> ordez, esan j noa, delako nire go da aldagaian i ondoren,
denean besterik ez dut saiatzen ari simple zenbakiak zenbatzea.
For j lortzen 0-- eta, gainera, n, da joan lortu popa argv tarte i luzera,
hain luze j m baino gutxiago, j plus plus, honako hau.
Eta hemen parte interesgarria da.
>> Inprimatu karaktere bat eta lerro berri bat, argv tarte i, j parentesi plugging.
Ados, beraz, utzi iruzkin batzuk gehitu me hemen.
Batetik bestera joateko baino karaktere Egungo katean,
inprimatu jgarren i-garren katean pertsonaia.
Beraz, gaur egun, kontuan hartu dezagun zer iruzkinak hauen esanahia.
>> kateak bestera joateko baino gehiago argv-- zenbat
kateak argv daude, eta horrek array bat da?
Argc asko, beraz errepikatzean naiz i berdinak 0 argc gehienez.
Bien bitartean, zenbat karaktere dira i-garren katea argv batean?
>> Beno, erantzun hori lortzeko, deitu besterik ez dut katea luzera
Egungo katea dut arreta buruz, eta horrek parentesi argv i da.
Eta ez dut aldi batean gordetzeko duten joan balio n ere, besterik katxeak helburuetarako,
gogoratzeko eraginkortasuna.
Eta gero hasieratu j 0 noa, mantentzeko hain luze joan j gisa n baino gutxiago,
eta bakoitzak iterazio increment j orrian.
>> Eta gero, hemen, per on line 12 nire iruzkina,
inprimatu karaktere bat, linea berri bat, eta jarraian,
zehazki, argv parentesi i ematen dit i-garren katea
argv-- beraz, lehen hitza ere, Bigarren hitza, hirugarren hitza, edozein dela ere.
Eta gero j sakonago murgilaldiak, eta lortzen me jgarren hitz horren pertsonaia.
Eta, beraz, indarrean, tratatzeko dezakezu argv bat multi-dimentsioko bezala,
bat bi dimentsioko, array bezala, Horren bidez, hitza begiradak mota guztietan
hau zure izpirituko bezala begi, eta pertsonaia bakoitzak
Mota da konposatutako zutabe bat, hori laguntzen badu.
>> Egia esan, noiz tease dugu hau ez ezik etorkizunean asteetan,
Honez txiki bat izango da hori baino landuagoa.
Baina benetan egin dezakezu hori uste, oraingoz,
besterik honetan bi dimentsioko gisa array, zeinaren da maila bat
da soka guztiak.
Eta, ondoren, murgiltze sakonago, zuk ere bada Banakako karaktere eskuratu ahal
izendapen hori hemen erabiliz hartaco.
>> Beraz, zer ondorio garbia da?
Dezagun aurrera eta egiteko argv2-- darn da.
akats bat egin nuen hemen.
Inplizituki du liburutegi funtzioa Stirling.
Beraz, denbora honetan guztian, da agian egokia
ari garela ordenatzeko akabera zehazki non hasi ginen.
>> izorratu nuen, inplizituki liburutegi funtzioa Stirling.
Ados, itxaron minutu bat.
Gogoratzen dut, batez ere, Hemen da geroztik.
String.h sartu behar dut Programaren bertsio honetan.
>> Dezagun aurrera eta besteak String.h, gorde duten, aurrera
eta berkonpilatu argv2.
Eta orain, hemen gara, egin argv2, Sartu.
Eta apur bat izan arren Lehen begiratuan críptica,
nabarituko, hain zuzen ere, zer moldiztegiratzen dot argv2 da.
>> Baina I zenbait hitzen ondoren idazten baduzu gonbita, argv2 Zamyla Chan bezala,
Idatzi, gainera, pixka bat Lehen begiratuan críptica.
Baina atzera joan gara sortu, ./argv2 Z-A-M-Y-L-A C-H-A-N.
Beraz, hitz bakoitzaren gainean iterated dugu.
Eta, era berean, nik errepika baino gehiago dugu Hitz baten barruan pertsonaia guztietan.
>> Orain, hori guztia egin ondoren, konturatzen ez da
beste xehetasun bat arrain mota izan dugu garai honetan osotasunean aintzat.
teased besterik ez dugu aparte zer nagusia inputak izan daiteke?
Zer nagusia irteera buruz?
>> denbora hori guztia, izan gara kopiatu eta itsasteko
hitza nagusiaren aurrean int du, nahiz eta online ikusi ahal izango duzu,
batzuetan bertsio zaharragoetan okerrean C eta konpiladoreen, hutsunea esan dute,
edo ezer guztiak.
Baina, hain zuzen ere, bertsioaren du C erabiltzen ari gara,
C 11, edo 2011, konturatzen int izan beharko litzateke.
Eta bai izan beharko luke hutsune edo argc eta argv hemen.
>> Baina zergatik int nagusia?
Zer da benetan itzuli da?
Beno, bihurtzen da denbora hori guztia, edonoiz programa bat idazten duzunean
dago beti zerbait itzuli.
Baina hain ezkutuka ari dira egiten.
>> Zerbait da bat int, lerro gisa 5 iradokitzen.
Baina zer int?
Beno, ez da hau programazio hitzarmena,
Horren bidez, ezer badu gaizki asi eta guztia ongi dago,
programak eta funtzio oro har itzuliko zertxobait counterintuitively--
0.
0 orokorrean ondorioztatzen guztiak ongi dago.
uste duzu Beraz, nahiz eta faltsua testuinguru askotan bezala,
egia esan, oro har, gauza ona esan nahi du
>> Bien bitartean, programa bat 1 itzultzen bada, edo 1 negatiboa, 5 edo negatiboa 42,
edo ez-0 balioa, hori, oro har, ondorioztatzen
zerbait gaizki joan da.
Izan ere, zeure Mac edo PC, duzu benetan ikusi liteke
errore-mezu bat, zeinaren da dio zerbait edo beste, error
kodea negatiboa 42, edo errore kodea 23, edo horrelako zerbait.
kopuru hori, oro har iradokizun bat besterik ez programatzailea, edo enpresari
softwareak egin, gaizki zer eta zergatik joan zen,
beraz, begiratu ahal izango dute bidez bere dokumentazioa edo kodea,
bertan zer du error benetan esan nahi.
Oro har, ez gurekin erabilgarria amaituko erabiltzaileek.
>> Baina 0 itzulerak nagusia, guztiak ongi.
Eta ez baduzu zehaztu zer nagusiak itzuli behar,
besterik automatikoki geratuko da itzultzeko 0 zuretzat.
Baina zerbait itzuli bestela, benetan erabilgarria.
>> azken programa honetan, let me aurrera eta deitu exit.c honetan,
eta aurkeztu gaurko azkena gaiak, errore kodea ezagutzen.
Dezagun aurrera eta, besteak beste, gure familiar fitxategiak gora gora, ez int nagusia.
Eta oraingoan, egin dezagun int argc utzi, katea argv, eta nire parentesi
dela array esan nahi du.
Eta gero, egin besterik ez dit behatu check.
Oraingoan, argc ez bada berdina 2, orduan badakizu zer?
Ahaztu.
Hori esan behar diot, beno, erabiltzaileak, komando-lerroko argumentu ari zaren falta
backslash n.
>> Eta gero, hori da.
Irten nahi dut.
preemptively noa den, eta behar baino lehenago benetan, bueltan
Zerbait 1 zenbakia ez den beste.
balio go lehen egin du Errore hori gerta daiteke 1 da.
beste batzuk okerrak badaukazu Gerta liteke egoera,
bueltan 2 esan dezakezue edo itzultzeko 3, edo agian, are negatiboa 1 edo 2 negatiboa.
>> Hauek dira, irteera kodeak direla, oro har,
bakarrik programatzailea baliagarria, edo enpresa hori software bidalketa.
Baina, hain zuzen, hori da Ez 0 da zer da garrantzitsua.
Beraz, programa honetan bada, Nahi dut bermatzen duten programa honetan bakarrik
lan egiten du, erabiltzaileari eskaintzen dit bada argumentu bi kondea batekin,
programaren izenarekin, eta beste batzuk hitza, honela bezainbeste betearazi ahal izango dut,
printf esaera batera erabiltzaileak Yell, falta komando-lerroko argumentu,
itzultzeko 1.
Hori izango da, besterik gabe, berehala programatik irten.
>> argc berdin bada bakarrik 2 izango lortuko dugu behera hemen, eta amaitzen ari naiz esan nahi du,
kaixo ehuneko s, backslash n, argv1.
Beste era batera esanda, ez naiz Ez argv 0 joan ondoren,
bertan besterik programan izena da.
inprimatzeko kaixo, koma nahi dut, Bigarren hitza giza idatzitako dagoela.
Eta kasu honetan ere 13 linea, guztiak ongi.
>> Ezagutzen dut argc dela 2 logikoki programa honek.
Aurrera joan eta itzultzeko 0 noa.
Bat alde batera utzita, kontuan hartu hau da Scratch egia baita.
>> Logikoa denez, hori egin izan dut eta lerro hauen enkapsulatu
beste klausula honetan hemen kodearen.
Baina hori sort alferrik nire kodea koska.
Eta super egin nahi dut argi ez zer egiten duten,
lehenetsiz, kaixo Zerbait inprimatutako egingo dira,
hain luze erabiltzaileak Coopera bezala.
>> Beraz, oso ohikoa da erabili baldintza bat, besterik ez bada bat,
okerrak batzuk harrapatzeko egoera, eta gero irten.
Eta gero, hain luze guztia bai, ez dute beste,
baina besterik ez dute kode du kanpo, delako bada
honen baliokidea Kasu zehatz, logikoki.
Beraz dut itzuli 0, besterik gabe, esplizituki adierazteko guztiak ongi dago.
>> itzulera 0 zehazten ez dut bada, litzateke automatikoki niretzat onartu.
Baina orain dela dut itzuli gutxienez, kasu honetan, bat,
Noa, neurri ona eta argitasuna, itzultzeko 0 kasu honetan.
Beraz, orain utzi aurrera me eta irteera egiteko, bertan perfektua segue besterik uztea da.
>> Baina irteera egiteko, eta utzi me joan Animatu eta egin ./exit, Sartu.
Eta programa me at oihu, komando-lerroko argumentu falta.
Ados, let me elkarlanean.
>> Utzi egin ordez me ./exit, David, Sartu.
Eta orain dio, kaixo David.
Eta ez duzu normalean ikusten hau.
>> Baina bihurtzen da, ez dagoela bat Linux-en modu berezia da, benetan ikusi
zer irteera-programa bat amaitu da.
Batzuetan grafiko batean Mac OS edo Windows bezala munduan,
bakarrik ikusten duzun zenbaki horiek denean bat Errore mezua azalduko da pantailan
eta programatzailea kopuru hori erakutsiko dizu.
Baina zer error ikusi nahi badugu mezua da, egin dezakegu hemen
beraz ./exit, Sartu, inprimatu komando-lerroko argumentu falta.
>> orain ez dut echo $ ?, bada, zein da ridiculously críptica begira.
Baina $?
magikoa sorgin-hitza da Hori dio, beno, ordenagailua,
esaidazu zer aurreko programaren irteera izan zen.
Eta sakatu dut.
1 ikusten dut, hori delako zer I nire funtzio nagusia itzultzeko esan.
>> Bien bitartean, ./exit David egiten badut, eta sakatu Sartu, ikusi nuen, kaixo David.
Eta orain ez dut bada echo $ ?, kaixo ikusten dut 0.
Eta, beraz, hori benetan informazio baliagarria izan
araztailea testuinguruan, ez hain in Askoz duzun hori, giza, zaintzeko litzateke.
Baina araztailea eta beste programak seihilekoa hau erabiliko dugu
egingo askotan kopuru hori begiratu, nahiz eta oso Sort ezkutuan
horretarako, begiratzen baduzu behintzat zehazteko programa bat da, ala ez
exekuzio zuzena edo okerra izan zen.
>> Eta beraz, horrek garamatza to hau, egunaren amaieran.
Gaur hasi gara begira arabera arazketa, eta ikastaroa at txanda
bera, eta, ondoren, are interesgarriagoa da, teknikoki kanpaia azpian
zer at kateak dira, eta horrek iraun Aste hartu besterik ez dugu ematen,
eta, zalantzarik gabe, horiek hartu for Scratch ematen.
>> ondoren, nola sartu ahal izango dugu begiratu egin dugu karaktere kate batean,
eta, ondoren, berriro hartu maila altuago bat gauzak begiratu, nola at well-- bila
banakako at lortu nahi badugu egitura bezalako zerrenda bateko elementu,
ezin dela egin dugu kateak batengan?
Eta ezin komando lerroko argumentuak dugu.
Baina hemen argazki hau besterik kutxak da ideia orokor horren erakusgarri
array bat, edo zerrenda bat, edo bektore baten.
Eta arabera Testuinguru, hitz horiek guztiak
esan nahi gauzak apur bat desberdinak.
Beraz, C, bakarrik goaz array buruz hitz egiteko.
Sorta bat zatia da oroimenaren, bakoitzak horietatik da
elementu Alboko dira, atzera, Atzera, atzera, atzera.
>> Eta elementu horiek dira, oro har, datu mota bereko, pertsonaia,
pertsonaia, pertsonaia, pertsonaia, edo kate, kate, kate, katea, edo int,
int, int, edozein da denda saiatzen ari gara.
Baina egunaren amaieran, hau da Zer itxura kontzeptualki bezala.
hartzen ari zara zure ordenagailuaren memorian edo RAM.
Eta taila ari zaren sartu berdinean tamainako kaxak, horrek guztiak
dira atzera, atzera, nahi back, modu horretan atzera.
>> Eta zer da buruz nice Ideia hau, eta hain zuzen,
Modu horretan balioak adierazteko aukera izango dugu Gure datu-egituren lehen batera
klasean, bide eta hasi gaitezke kodea dituen arazoak konpontzeko
hori izan zen hain intuitiboki aste 0.
telefonoz Gogoratzen duzu book adibidez, non
arrail bat erabiliko dugu eta konkistatzeko, edo bilaketa algoritmo bitar bat,
osotasun baten bidez sift Izenak eta zenbakiak sorta.
Baina, bere gain hartu dugu, oroitzapen, hori dela telefono book dagoeneko horrela antolatu,
beste norbait dagoela jada Hurrena out-- emandako izenen zerrenda
eta zenbakien nola alphabetize izateko.
Eta orain, C dugu, gehiegi, gaitasuna dute
gauzak finkatzeko out, ez fisikoki telefono-liburu batean
baina ia ordenagailuaren batean memoria, egingo duela datorren astean izango dugu
Berriro aurkeztu lehena Halako gure array batean datu-egituren
baina are garrantzitsuagoa dena, benetako ordenagailuak zientzia algoritmoak inplementatu
kodea, eta horrela gorde ahal izango dugu hau bezalako egituretan datuak,
eta ondoren hasiko da manipulatzeko, eta benetan konpondu arazo hori ere,
eta horren gainean eraiki, azken finean, C programak,
Python ere, JavaScript, SQL datu-baseak kontsultatzeko?
>> Eta horien guztien ikusiko dugu ideia ezberdinak nahasirik.
Baina, oraingoz, gogoratzen duten domeinu horrek gaur aurkeztu dugu
Gauza hau izan zen hemen, eta kriptografia munduan.
Eta hurrengo arazoak duzu zeure burua artean kriptografia artea da konpon,
scrambling eta de-scrambling Informazio eta aritmetika
eta testu argitzen, eta, azken finean, suposatuz
Hori orain badakizu zer kanpaia azpian da
beraz, orduan ikusi edo jasoko duzu honelako mezu bat, zuk
argitu ahal yourself.
hau, eta gehiago hurrengo denbora guztia.
>> [Bideo-erreprodukzioa]
>> heldu -Mover.
bisita joan noa bere unibertsitateko irakaslea.
Yep.
Hi.
Zu zara.
Itxaron!
David.
to irudikatu besterik ez dut saiatzen ari zer gertatu out.
Mesedez, ezer laguntzeko.
bere college zinen gelakide, ez zinen?
ez zinen zion denean batekin CS50 proiektua amaitu zuen?
>> [Musika jotzen]
>> -Hori CS50 zen.
>> leku hau maite dut.
>> -Eat Eman.
negozio goaz.
>> [END erreprodukzioa]