[Powered by Google Translate] DAVID J. MALAN: Ondo da, hau CS50 da, eta hau da
aste bi hasteko.
Eskerrik asko.
Dezagun hemen hasten telefono dei bat.
617-BUG-CS50 deitzen naiz.
CS50: This is CS50.
Anezka Boy nahi izanez gero, sakatu 1.
Baino gehiago hasteko, sakatu 9.
DAVID J. MALAN: Beraz, esan zuen Shuttle Boy, sakatu 1.
Beraz, 1 sakatu goaz.
CS50: Zein da zure jatorria?
Quad, sakatu 1.
Mather, sakatu 2.
Boylston, sakatu 3.
Lamont, prentsa 4.
Mem Hall, sakatu 5.
Baino gehiago hasteko, sakatu 0.
DAVID J. MALAN: 1 sakatu dugu quad.
CS50: Hurrengo shuttle uzten hau oso minutuko 1:10 etan, eta
ondoren, 1:20 etan, 1:30 PM, 1:40 PM.
Hau CS50 da.
>> DAVID J. MALAN: Beraz, CS50 ahotsa da.
Eta azken proiektu mota adibide bat da,
adibidez, hozka off dezakezu norabidean
lauhilekoaren amaieran.
Esate baterako, shuttleboy.cs50.net existitzen dela
benetan proiektu bat lehen CS51 hartu ondoren idatzi
graduak bat izan dut.
Eta inspirazio zen orduan, denek zuten
inprimatutako shuttle bus ordutegiak, eta han ez zen
gauzak bilatzen online sortu nozioa.
Eta, beraz, uso bat asteburu ordenatu bidez bota
inprimatutako egutegia, eta programa informatiko bat eraman du.
Garai hartan, programa informatiko gertatu idatziko da
C. Eta ran benetan duzu Anezka idazten Boy batean
keinuka ari galdetuko dugu bezala, beraz, orain arte egiten.
Baina urteetan zehar, berehalako batean eboluzionatu
mezularitza bot.
It gehiago eboluzionatu du orain dela gutxi webgune honetan sartu, batean
SMS-oinarritutako tresna, bai ahots-oinarritutako tresna honetan sartzeko.
Eta hau da gauza mota Iradokizuna ahal duzun
Zuk zeuk egin seihilekoa amaitu aurretik.
>> Esate baterako, ez dago, Anezka Boy bertsio SMS gertatzen
honela jarduteko.
Zure telefono mugikorra, bada, testu-mezu bat bidaltzen duzun 41411
ondoren, bidali sinboloa sboy berezia, Shuttle Boy,
A eta B, non A jatorria eta B da
helmuga -
Adibidez, Boylston Space Quad -
zer lortu behar duzu segundo batzuk barru testu bat da
Anezka Boy mezua diozu zehazki denean
Datozen shuttlea dira, puntu horretan A hori joan
puntuan B.
Eta hau zer izenez ezagutzen adibide orokor bat da
API bat erabiliz.
>> Horrela, esate baterako, hori besterik ez da shuttleboy.cs50.net,
honen benetako web-oinarritutako Enkarnazio.
Baina datuak eta beste apps azpimarratzen CS50 dela
garatu ditu, guztiak guztiontzat jasan inprimakia hemen
APIak, aplikazio programazio interfazeak.
Eta hori besterik ez duten pertsonen gustatzen zaigu esaten modu fancy
Internet eta beste batzuk eman denbora pixka bat sortzeko
datuak hartzen eta software hori erabili ahal izango duzu
eraiki ondoren, zure aplikazioak gainean
datu multzoa.
Horrela, esate baterako, Shuttle Boy API Orri hau hemen, eta
gertatzen da CS50 eskuliburua, funtsean dokumentu
CS50 zerbitzariak galdetuz datuak nola joan zaitezke.
Esate baterako, Oraindik duzu CSV fitxategiak, komaz ezagutzen bada
bereizitako balioak, horiek sort besterik ez dira, azkar eta zikin
Excel-like fitxategiak.
Beraz, datu guztiak Anezka Boy eska dezakezu guztien
etxe eta GPS koordenatuak, eta lortuko duzu
back, funtsean, horrelako kalkulu-orria dela
ahal izango dituzu zure programa bat irakurri eta gero
sortzeko, Anezka Boy bera bezala
gertatzen dira egiten.
Dira, gehiago ezagutzen moderno datuak irudikapenak
JSON, JavaScript Object Idazkeraren.
Zerbait itzuli egingo duzun norabidean
lauhilekoaren amaieran.
>> Baina, berriro ere, hau CS50 APIak propioa hainbat bat besterik ez da.
Eta gauza zirraragarria da orain, egun hauetan, Facebook eta
Twitter eta Google eta nahiko askoz popular web behin out
API, horrek esan nahi du irakurri nahi izanez gero, nolabaiteko
dokumentazioa bere web orrian, saioa hasi duzu
kontua, eta ondoren has daiteke software gainean idatziz
edozein tresna edo datu enpresak ez du hornitzen.
Eta beraz, gure irakaskuntza bekadun bat pare bat urte atzera
idatzi honen bertsio Mac bat.
Beraz, Mac hemen link izeneko goiko ezkerreko, benetan ahal izango duzu
deskargatu Mac OS widget zure Mac propioa exekutatzen egin
gauzak era berean.
Beraz, dena da horrelako datu multzoen gainean eraikitzen buruz.
Baina hori gehiago seihilekoan amaiera aldera.
>> Hargatik erroreen benetako azkar murgiltze mota lor-
gauzak berotu gaur egun, eta uste itzuli batzuk
gauza, begiratu astetik dugu.
Hain zuzen ere, aurrera eta tira, esan,
Adibide honetan hemen.
Buggy1.c, hau da, ikastaroaren web orrian eskura nahi duzuna
nahi izanez gero deskargatu eta zuk zeuk ikutu.
Baina hemen gerturatzeko oso programa labur hau, eta soilik
eraikinaren oinarrizko blokeak duten zenbait laburpena super-azkar
benetan dugu aski da emandako hartu.
>> Urdina stuff Beraz, lerro 1 9 bitartez, besterik ez dira
sofbola galdera.
Beraz, besterik ez iruzkinak dira.
Funtzionala esanahia ez dute.
Baina zentzu iruzkinak Oraindik ari dira ohar
I, giza, neure buruari, beraz, hitzaldia eta ondoren
hitzaldia, benetan dut gogoratzen zer programa hau
da lerro lerro irakurri beharrik gabe, ez eta
historia birsortzen nire buruan.
Gainera, eskuz I programa honetan bada beste norbaitek atsegin dute
, askoz ere argiago duzu, baita hau atsegin iruzkinak
zer programa benetan egiten, edo gutxienez zer
programa ustezko dira egiten.
Den ala ez beste kontu bat guztiz zuzena da.
Orain, C, multi-line iruzkinak, gogoratzen on line
hemen sinboloa magikoa, / *.
Hemen esan nahi du iritzi baten hasiera dator.
Eta kito axola helduko zara amaiera amaiera arte,
hau da, * /, kontrakoa.
Izan ere, 80-ko hemen zenbait arraro que tengo from Beraz
Ezkerretik eskuinera benetan xehetasun estetiko bat besterik ez da.
Esanahia ez funtzional ditu.
>> Orain nola line 11?
Zer esan nahi du hau layman en terminoetan?
Zer da hori?
IKUSLEEN: estandarra barne.
DAVID J. MALAN: OK, ona da.
Beraz, liburutegia stdio.h ditu.
Beraz, zer esan nahi du horrek?
Beno, fitxategi horren barruan, stdio.h, osoa sorta
funtzioa adierazpenak
hau da, beste norbaitek idatzi kodea.
Eta hori izendatu funtzio bat adibide ezin hobea
stdio.h da
orain zein gogokoena?
Beraz printf, ohikoenak erabiltzeko, zalantzarik gabe
hasieratik, liburutegi horretan dago.
Baztertzen dut kode lerro bat badu, Clang Yell joan
undeclared sinbolo bat erabiliz zerbait me at.
Zerbait undeclared da, seguruenik, gako-hitza, zeren
ez dugu informatuta konpilatzailea zer printf itxura
nahi dugu lerro horren ezean.
Eta gehiago behera Earth, benetan, zer da lerro hori esaten
ireki fitxategi hori, stdio.h, lekuan zerbitzari
disko gogorrean, edo tresnaren disko gogorrean, eta kopia-paste
bertan nire fitxategi gabe, nire
eskuz egin beharrik.
>> Orain, behin behera hartu behar dugu hemen nagusia, luze baino lehen hasiko dugu
gain teasing zer int eta zer hutsa da.
Baina orain, dezagun begiratu hiru lerroak
15 barruan bidez 17.
Hau hemen diotenez, buggy dudan bezala.
7 nire iruzkinak Line dio "10 inprimatu behar
asterisko baina ez du "Zergatik ez inprimatu, hain zuzen ere,
10 ko, hala nola?
IKUSLEEN: [INAUDIBLE].
DAVID J. MALAN: Zehazki.
Beraz, nabarituko ari gara 0-tik zenbatzen hasita.
Eta hori da, benetan programazioa hitzarmen bat eta
informatika, oro har, zenbatzen hasita
0 ordez 1.
Eta hau benetan Izan ere, ondorioa
adibidez, zortzi pertsona izan genuen agertokian,
inork ez zen bere eskua altxatuz, izan ziren
eraginkortasunez zeroen guztiak.
Eta, beraz, ordenagailu konbentzio mota da, horrela,
beraz, 0-tik kontatuta hasteko.
Duten kopurua txikiena bada binary dezakezu irudikatzeko.
>> Beraz hemen hasi dugu i hasieratzean 0.
Ezarri dugu berdintasuna 0 i.
Baina gero, akats hau egin nuen hemen, baino gutxiago esaten da i edo
10 berdinak.
Baina uste duzu bidez, 0 I hasten bada, eta, ondoren, I joan bada
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, benetan dut joan
11 ko pantaila inprimatu dut joan delako
eta 10 berdinak.
Beraz, erraza fix hemen ondoren zer?
IKUSLEEN: [INAUDIBLE].
DAVID J. MALAN: Just aldatu baino gutxiago.
Benetan nahi baduzu, hau egin ahal izango duzu.
Baina, oro har, hori frowned gainean.
Eta horrela, 0-tik hasi besterik ez da zerbait beharko
normalean get erabiltzen.
Orain, zer gertatzen da eta bera osoan eraikuntza honi buruz?
Hau line 15 demarks bat loop.
Beraz, ez da funtzio bat.
Adierazpen bat besterik ez da.
Begizta eraikuntza bat da, Scratch dugu ikusi bezala.
Eta hiru atal ditu.
Oharra lehen zatia da
puntu eta koma, ezkerreko.
Bi puntu arteko erdiko parte.
Eta gero, eskuineko zatia eskuinera
bigarren puntu eta koma.
Orain, lehen ez zer?
IKUSLEEN: [INAUDIBLE].
DAVID J. MALAN: Back dago?
Bai?
IKUSLEEN: hasieratzeko.
>> DAVID J. MALAN: hasieratzeko.
Beraz, zer esan nahi du horrek?
Izeneko aldagai bat i izendatu dugu.
Mota int dut, zehaztu delako int i.
Eta i naiz hasieratzean 0 balioa.
Beraz, zer da hau benetan esaten?
Eraginkortasunez da ordenagailua hey esaten, emaidazu nahikoa
memoria nahikoa RAM, zenbaki bat egokitzeko, eta, ondoren, jarri
0 zatia RAM hori.
Eta, bat alde batera utzita, int nola handi bat da, normalean, gutxienez barruan
aparatuaren?
IKUSLEEN: 32 bit.
DAVID J. MALAN: 32 bit.
Beraz, horrek esan nahi du eman dit 32 bit, bestela, 4 byte bezala ezagutzen,
jarri eta balioa 0 da, hau da, nahiko erraza delako
esan nahi du besterik ez da ezartzen 0 Bitak guztiak.
>> Beraz, gaur egun, bigarren zatian baldintza da.
Eta baldintza, izen gisa iradokitzen da, zer hautatuta dago
behin eta berriro, eta berriro da egia edo gezurra ala ez.
, Beraz, hau da, besterik gabe, kode lerro hauek egin esaten
hots, line 16, koska bakarra delako
azpian -
hain luze, i 10 baino gutxiago.
Eta begizta honen bidez iterazio bakoitzaren ondoren, egin
incrementation da, kasu honetan, i + +.
Orain, berriz, ez du izan izango + + i.
I izan daiteke -.
Baina ez dut hori izanez gero, zer portaera da
Programa hau izango ote da?
IKUSLEEN: infinitua loop bat izango da.
DAVID J. MALAN: begizta infinitua nolabaiteko izango da,
, 2 negatibo milioi edo, beraz, ondoren lortuko dugu zortea ezean.
Agian gauzak inguruan biltzea da, besterik ez finituen, izaera
int bat banatzen dugun bit kopurua.
Baina, zalantzarik gabe, orain arte 10 baino gehiago batetik bestera joateko eta
zalantzarik gabe, 11 aldiz baino gehiago dago hemen.
>> Eta orain bezala, bat alde batera utzita, konturatzen i + + i -
dira benetan sintaktikoak azukrea besterik ez.
Besterik ez da azkarra notazioa zer pixka bat gehiago
esplizituki honela idatzita dago:
i = i + 1.
I + +.
Mota besterik ez dirudi prettier esan i + +.
Succinct, gehiago irakurgarria da.
Eta, beraz, pertsona gehienek egin ordez.
Baina hori berdin-berdina funtzionalki
zer ikusi besterik ez dugu.
Beraz, azken finean, quick fix hemen da, besterik gabe, batetik bestera joateko i esan
0-tik gora guztiak baino 10 gutxiago.
Eta gero, hain zuzen ere, 10 puntuak lortu dugu.
>> Hargatik saiatu honekin.
Terminal ireki me, behealdean.
Dezagun joan direktorioa me hori da sartu
Eta orain Clang eskuz konpilatu noa.
Eta hori biltzeko buggy1.c, Sartu noa.
Eta orain buggy1, zergatik ez dago halako fitxategi edo direktoriorik
izeneko buggy1?
IKUSLEEN: [INAUDIBLE].
DAVID J. MALAN: Bai.
Beraz, benetan, a.out.
Beraz, gogora ekarri besterik ez duzu exekutatu bada Clang, non Clang
konpiladorea, eta ez duzu nahi duzun izena zehaztu
programa eman, a.out lehenetsia da.
Beraz, egia esan, ez dut ls -
trabatzen.
Eta didn't I - gaia zuri-beltza eta horietako batzuk
konpondua izan da aurre egin behar duzu.
Baina Horretarako me.
Bertan a.out dugu ezker aldean dago.
Beraz ordez buggy1 a.out exekutatu behar dugu.
>> Beraz, aurrera eta hau egin.
. / A.out, Sartu.
Eta itxuraz ez dut ez zer?
IKUSLEEN: Gorde.
DAVID J. MALAN: Save nire fitxategia.
Beraz, hori erraz Kontrol S sakatuz, edo going to konpondu
Fitxategia, Gorde, programa gehienetan bezala.
Behera joan me hemen, pantaila garbitu, berriro exekutatu.
Eta ez da oraindik bug bat.
Beraz, zer egingo da -
IKUSLEEN: ez duzu konpilatu.
DAVID J. MALAN: Ah, oso ona.
Ez dut konpilatu da.
Lelo bat bezala, kodea naiz, eta zer gertatzen da ikusi nahi.
Beraz clang buggy1.c, orain a.out.
Eta phew, gorde.
>> Beraz, pixka bat itsusi badirudi lerro berria ez delako
programa edozein lekutan.
Baina, berriro ere, hori da zehatz-mehatz bat estetikoa.
Eta, gutxienez, zenbatu diogu bada, behar dugu
gaur egun, hala nola ko 10.
Beno, hau bero-up bigarren Adibidez buruz zer?
Beraz buggy2, bertsio hau ere, egingo inprimatu aldarrikatzen dut
10 puntuak, lerro bakoitzeko bana.
Une honetan Beraz, lerro bat daukat, besterik ez
gauzak apur bat prettier.
Baina horren ordez, zer lortzen dut.
Hargatik clang buggy2.c do me, Sartu.
Orain berriro deitu a.out.
Sartu.
Ikusi besterik ez dut linea berri bat, azken lerro berria
mugitzen da nire gonbita hurrengo lerroan.
Eta, hala ere, argi eta garbi izan dut * inprimatzea, ondoren lerro berri bat,
*, Ondoren lerro berri bat.
Baina zer gertatzen da bug hemen?
Bai?
IKUSLEEN: [INAUDIBLE].
>> DAVID J. MALAN: Zehazki.
Beraz, hizkuntza batzuetan ez bezala, Python, non koska bezalakoak
benetan funtzionala esanahia du,
C bezalako hizkuntza
ikusi dugu, PHP, JavaScript -
koska da benetan gizakiak 'prestazioa.
Izan ere, koska ditudan line 16 eta 17 Beraz, looks great,
baina esanahi funtzionala ez du hemen.
Nahi dut lerro bi zati gisa exekutatu
loop, gero inguratu behar dut giltza kizkur hau eginez.
Bakarrik dezakezu moztu izkina horretara, eta giltza bada kizkur ezikusia
kasuan zer?
IKUSLEEN: Just lerro bat.
DAVID J. MALAN: Just lerro bat.
Beraz, sintaxia xehetasun nice moduko bat sort da, beraz,
ez duzu denborarik galdu hiru lerro idazteko, eta horietako bi dira
kizkur giltza, kode lerro bakar bat idazteko.
Baina bi lerro edo gehiago izanez gero,
hain zuzen ere, behar da horretarako.
>> Beraz, gaur egun utzi hau gorde me.
Dezagun aurrera eta berriro exekutatu me Clang.
Ondoren, utzi a.out berrabiarazi me, eta gaur egun horietako bat lerro bakoitzeko.
Orain, berriz a.out programa bat muda izen bat antzeko zerbait da.
Nola egin dezaket Clang esango dut benetan me fitxategi-izen bat eman
hori more user-friendly, buggy2 bera bezala?
A little more argi eta garbi?
IKUSLEEN: [INAUDIBLE].
DAVID J. MALAN: Ados, eta, beraz, benetan ezin dut hartu oso
user-friendly laster-eta, besterik gabe, idatzi egin buggy2.
Ez dut zehaztu c kasu honetan, eta sakatu Sartu.
Eta zer egin ez da niretzat buggy2.c biltzen da
Clang eskatuz egin.
Hain zuzen ere, Clang deiak, Clang exekutatzen modu erabiliz
komando-lerroko argumentu edo switches benetan baino behar dut.
Aldi berean, itzuli beharko dugu zer hainbat hauek guztiak
críptica hyphenated adierazpenak esan nahi du.
Baina orain, hori besterik ez me aurrezteko arazoak
gogoratu behar izatea, eta horiek guztiak idatzi behar izan
hainbat adierazpen hyphenated.
Eta buruz, azken finean, ez da
orain dela buggy2 daukat.
Nahi dut hori egin nahi izanez gero eskuz, nahiz eta, I
ordez egin daiteke hau
clang-o buggy2 eta gero buggy2.c.
Eta hori izango da, era berean, ematen dit izeneko buggy2 fitxategi bat.
>> Beraz, azken finean, Clang konpilatzailea da.
Bat besterik ez user-friendly tresna dugun erabiltzen dugu gehiago
eta gehiago, besterik ez da hasten delako
Gurekin errazteko gauzak.
Eta 0-ra itzuliko gara, azkenik.
Oraingoz, besterik ez delako, baina zati teasing dugu
gaur eta asteazkenean.
Edozein galdera bat?
Bai?
IKUSLEEN: [INAUDIBLE]
komatxorik han ls?
DAVID J. MALAN: OK.
When I idatzitako ls, komatxo artean zen egiten magia me
eszenak atzean akats bat konpontzen.
Ahaztu dut, dugu bezala asko kontatzeko buruzko
eztabaida-batzordeak, egin -
hau egin dugu gaur egun - Yum-y sudo update appliance50.
Whoops idatzita eskubidea.
Beraz, aparatuaren sistema eragile bat bezalakoa da.
Izeneko Fedora, sistema eragile honetan exekutatzen ari da.
Eta orain, nire Internet konexio motela, dut
Benetan hosed.
Beraz, Yum sudo update exekutatzen, esaten dugu egin
arazo multzoa da, funtsean, like eguneratze automatikoak exekutatzen
Mac OS edo Windows.
Eta hau hasiera arrazoia
arazo multzo bat da,-tresna sortu genuen, I delako
messed sortu, eta ustekabean egin dut zure programak itxura
pantaila beltz bat beltza, hau da, zergatik ez dituzu ikusten
default.
Baina tresnaren azken bertsioa konpontzen.
Eta hori konpondu dut break zehar Internet izan dut behin
konektibitatea.
>> Beraz, komatxorik ezkutatzen nire akatsa, oso zuhurki,
itxuraz.
Beste galdera?
Bai?
IKUSLEEN: Non etorri egin du from?
[INAUDIBLE]
DAVID J. MALAN: Good galdera.
Non etorri egin du?
Linux programa bat dela, urte askotan existitu, luzea da
CS50 aurretik.
Eta dator Fedora jarduten bezalako sistema bat da.
CS50 liburutegia ez datoz.
Izan ere, gauza bakarra da CS50 liburutegia datozen
beraz, orain arte, Nik ez dugu ikusten, GetString, GetInt, guztien
horiek Talde funtzioak, eta testu-kate, eta zenbait
batean, hitza boolearra.
Baina gain tease dugu murgiltze CS50 sartu dugu
-tresna bera.
>> Beraz, bai, bat galdera gehiago hemen.
IKUSLEEN: Noiz egin eta, ondoren, buggy esan duzu, nola du
ordenagailu jakin [INAUDIBLE]?
DAVID J. MALAN: Good galdera.
Beraz, exekutatu besterik ez duzu egin buggy1 edo buggy2 egin, nola
jakin egin du?
Beraz, lehenespenez, idatzi egin buggy1 bada, bat egiteko begiradak
izeneko fitxategi buggy1.c.
Eta gero, dagokion Clang komandoak exekutatzen du,
horrela default izeneko irteera fitxategia a.out gainidazteko.
Izan ere, zer egiten dugu begiratuz gero, zer -
dezagun irten honetan.
Zer egin zen benetan egiten ari begiratzen badiogu, egin buggy2
Dagoeneko da data.
Rm komandoa Hargatik kentzeko me,
programa aurretik idatzi nuen.
Idazketa Y-E-S kendu nahi dut baieztatzeko.
Gaur egun, ez dut bada egin, konturatu hori oso lerro luze honetan,
azken gauza hau da hemen,-o buggy2.
Marka guztiak egiten ari da argumentu hori igarotzean, nolabait esateko,
Clang, eta, beraz, ez dut ez idatzi neure burua.
>> Guztiak eskubidea eta, beraz, administrazio-pare azkar bat
iragarkiak.
Beraz, atal, ofizialki hasi zen hau datozen
Igandea, beti dituzu ekarri nahi izanez gero,
bat, ordenagailu eramangarri bat behar duzu.
Ordenagailu eramangarri bat izan ez baduzu, iritsiko ez niri
me erortzen utziz gero, posta elektroniko bat.
Eta irudikatu dugu eu.
Zer da, oro har, atalean aurkituko duzu Oraindik dutela parte
kontzeptuala, esku-on parte.
Zehazki erabili dugu galdera atalean, zati
astean arazo multzo batzuk ibiltzeko
hitzaldia material kontzeptuala.
Eta hori guztia gaur egungo arazo multzo.
Eta, gainera, dugu esku-jarduera batzuk sartzen murgiltze, batzuetan
horietatik aurkeztu behar beharrezkoa izango da, batzuetan
zein ez.
Esate baterako, lehen aste honetan, baina gisa ari dira ekarri
bero-up ariketa.
Eta jakin arazoak direla benetan Hori besterik ez duzu.
Ari ekarri nahiko txikia izan dute, baina ez du zertan
Bañales programak idatzi, ez dira derrigorrez
eta beren zirraragarria, baina ez dira aukera ona
sintaxia lantzeko, funtzio berriak, erosotasuna
atala non zure ikaskideen batzuk aurkezten gisa
ondo zure TF gisa.
>> Eta zer gertatzen da denboran zehar egin dugu CS50 Spaces izeneko tresna bat erabiltzen da,
Horren bidez, besterik ez CS50 tresna erabiliz ordez, duzu
ordez, web-orri bat arakatzaile batean, non ahal izango duzu
Atal zehar arakatzailearen leiho batean kodea idatzi.
Eta gero, aukeratzen duzun, zure irakaskuntza fellow gero erakutsi
edozein dela ere zure pantailan idazten ari zara zure nabigatzailean da
leiho klase aurrean, anonimoan ala
jendaurrean, eta, beraz, zuen ahalko bidez ibiltzea
zure ikaskideekin zer ondo egiten duzun, zer ez duzu ondo.
Eta berriro ere, gainerako guztiak nicely daiteke anonymized esanetan.
Baina, aukera polita izango da askoz gehiago
hitzaldia antzeko zerbait baino elkarreragina ahalbidetzen du.
>> Bitartean, gauza horiek izeneko super dugu
atal, aukerakoak dira, baina ez dira guztiontzat zabalik
klasean, eta horrela egin dezakezu gehiago kolektiboki
arazoa ezarri.
Hona hemen egitaraua.
At homepage cs50.net egunean hori ere.
Ohartu ez dagoela hacker-zehatz bat izango da
bat bihar arratsaldean.
Eta, gaur eta bihar filmatuko dugu, eta horiek argitaratzeko
24 orduko epean online.
Beraz, ez baduzu edozein garai hauetan, ez kezkatu.
Eta berriro ere, ordutegia da online cs50.net at.
>> Bera sectioning dagokionez, ahaztuak behar duzu
email ikastaroa homepage aurkitu instructing
zure atala.
Bizitza aldatu egin bada, eta zure atala aldatu behar duzu,
ez da arazo bat.
Joan atzera berean URL, cs50.net/section, berezi,
eta bete beharko duzu inprimaki antzeko, beraz, egin dezakezu
ondoren, eman iezazkiguzu zure lehentasunak.
Eta jarraitu ahal izango dugu aste bukaeran nahi duguna
egokitzeko.
Joan den astean, gogoratzen proposatu dugun CS50 eztabaidatzeko erabiliz,
Ikastaro eztabaida tresna, hitzaldia.
Beraz, 40 galdera eskatu ziren eta izan dugu
hitzaldia zehar erantzun.
Beraz, ondo funtzionatzen zirudien, beraz, jarraituko dugu
Horretarako saiatzen ari dela esan nahi du.
Hitzaldia zehar, bada ez duzun eroso sentitzen biltzeko
Bestalde, ez da arazo bat.
Joan cs50.net/discuss, bidaltzeko, eta gure irakaskuntza
bekadun bai erantzun egingo du, elektronikoki edo tzen dituzten
zure izenean eskutik anonimoan, galdetu arabera
galdera izaera.
Eta feedback dagokionez, oro har, psets izango da
astebeteko epean itzuliko da.
Hartzen du pixka bat delako atal lortzeko
oreka, lehen pset, 0 eta 1, pixka bat izango da
atzeratu egin gauzak finkatu behera.
Baina mantenduko dela adi datozen asteetan.
>> Guztiak eskubidea, eta, beraz, utzi nire larriak jarri me
une bat besterik ez ahotsa.
, Beraz, hau da, benetan klima interesgarri bat izan behar
eztabaida hau izatea, beste gauza guztiekin
campus bertan agertutako erlazionatutako.
Baina CS50 du, zalantzarik gabe, bere historia hau bereziki
gaia, urtero bezala askoz, Ikastaro honetan, askotan
urte, Ad-Juntas gutxi gorabehera% 3 klase.
Berriena Aurten, 2011, CS50 Ad-Boarded 35 ikasle.
Hau ez da, nire ustez, argitasun falta dela eta.
Konturatzen ikastaroa ikasketa planeko, ez dago orri bat da
adierazpen lerro non dauden azalduz.
Adierazpen hori bera behin errepikatzen
arazo bat ezartzen du.
>> Beraz, gaur egun hau aipatu dut benetan, besterik gabe, egin
folks honen mindful.
Eta saiatu behar dugu gauza desberdinak.
Eta zer egin dugu gaur pentsatu nuen besterik ez da, une bat hartu
benetan kasu iragan dira batzuk begiratu.
Baino txiki horiek zikin sekretuak gorde, benetan
seinalatu ikasleek egin, eta nola antzeman dugu
benetan eta zer Globalak motibazioa
Elkarrizketa hau ere izatea.
Beraz, esan zuen, line funtsean, hau da,
curriculumaren arabera, ongi etorri zaren, zure bultzatzen dira,
ikaskideekin hitz egin.
Hori da elkarlanerako horiek izatea helburu osoa
bulegoan Annenberg ordu eta sustatuz
behin betiko proiektua elkarrekin lan egiteko.
Baina lerro marrazten da time dator benetan idatzi
Behin betiko irtenbidea.
English, Mintzamena guztiz fina, kodea pseudo hitz egiten,
guztiz fina.
Ikaskide baten mezu zure pset, baino gehiago utziz itxura horiek
pantailan jarraituko eskuak idazten,
linea baino gehiago ere bai.
Do lerro bereziki curriculumaren begiratu.
>> Baina nola hau da, zoritxarrez, bat argazki bat margotzeko
errealitatea, konturatzen daudela webgune daude
klase hau eta beste hainbat klase irtenbideak.
Izan ere, zuk edo% 3 jakin hori existitzen
esan nahi du ezagutzen dugun hori existitzen.
Izan ere, ez dira webgune hau atsegin dute non
norbaitek ordaindu daiteke benetan egiten zure arazo multzo hau izan zen
benetako kasu bat izan zen iaz.
Izeneko odesk.com webgune bat da.
Eta Tim pertsonaren izena hemen nor zen posting
web gune hau eta eskatu norbait bere pset 7
Kasu zehatz honetan.
Beno, odesk.com Oso Google-gai da, eta oso
Oso ona Googling at.
Hemen ere, badira guneak, eta hau, baizik eta
atrocious, Egia.
[Barreak]
DAVID J. MALAN: gune honi buruz gauza dibertigarria da
orri buruz irakurri, hitz egin dute, beren korporazio buruz
kultura eta nola bezeroarentzako zerbitzua bere zenbaki bat da
lehentasuna, ziurtatu zure zereginak, hori lortzeko egin
denbora bihurtu da.
>> Baina, seriotasun guztiak, berriro ere, Izan ere, gune hauek
existitzen, konturatzen gara, gehiegi dira, berri-
guneak mota horiek.
Eta zer zentzu bat emateko inprimakiak honetan, oro har,
hartzen du, ez, oro har, ez ditugun eskandaluak handia non pertsona
eskala masiboa edozein motatako, laguntzaile, baizik eta
ahultasun uneak berandu gau horiek da, non duzu
asko egin, 4:00 AM, zu agortu da, eta zuk
uste zeure buruari, ondo, utzi nire begirada bat hartu besterik ez me
gelakide edo nire lagunaren kodea edo antzeko.
Eta horren adierazpen zoritxarrez inplikatzeko Student
Ikasleak B aurkezteko antzeko zerbait aurkezteko A
honen antzeko zerbait, eta horrek, zalantzarik gabe, ordenagailu batean
zientzia klasea, ordenagailu zientzialari nabarmen erraza da
software detektatzeko.
Komun paradigma bat da, non sort dituzun
norbaitek batera lanean, agian hitz egiten
English, ze ondo, pseudocode.
Baina gero dator benetan aurkeztu, eta psets
Eginzazu email edo Dropbox edo antzeko bidez trukatu.
Baina saiakera bat itxurazko gutxiago Hori dela ziurtatu
zer gertatu den, eta, ondoren, hau da, zer aurkeztu.
Honek ere, ez du bidaia ondo idatzitako piezak
software bezala benetan antzemateko dugu
gauza mota horiek.
Eta hain zuzen ere, zer egiten dugun run software konparatzen guztien
, aurtengo urteko iraganeko aurka bidalketak
bidalketak, dena aurka aurkitu dugu
Internet, lan guztietan daude web aurka.
Guztiak, oso automatizatua.
Eta, beraz, hau egiten dugu benetan zuzentasuna handi batean% 97 duten
benetan beren asses lan honetan eta beste
klaseak eta ahalegin guztiak jartzen da, beraz, lan
aurkeztu dute, azken finean, beren.
Eta naiteke urte bitartekoentzat.
>> Hauek iaz kasu gutxi batzuk besterik ez dira.
Zenbait ikasle A aurkeztu fitxategi horiek berdinean 2 pset,
3 pset, pset 4,: pset 5, 6 pset, pset 9.
Kasu honetan, hau quiz 0 eta azken urtean, non bi izan zen
ikasle berdinean aurkeztu esaldi askoren artean
besteak beste, "eskaera mota -" dot, dot, dot.
Beraz, 600 klase bat ere ez zuen detektatu dugu
aurkeztu galdetegiek.
Beraz, azken finean, hau - Egia, mota honetako Gorroto dut beharrik
Elkarrizketa - baina hau da, benetan, nahita ahalegin
urte honetan zenbaki hori gidatzeko saiatzeko.
Nahiz eta esan dela eta, mota horiek gauza guztietan
urtean, ondoren on dwelled errealitatea uste dut batzuk
ohikoa baino gehiago segundotan eta benetan bakarrik adierazi
zer esan liteke, hala nola eh, ez da hain aurre handi bat dirudi, gutxienez
uste bereziki une honetan, bai zuzentasuna hasi
zeure burua eta zure ikaskideekin hemen.
Beraz, bada izan al duzu inoiz bezala edozein galdera non line
da, mesedez iristea me pertsonalki.
Baina erantzuna beti da, erabat azpimarratu
Azken minutuan, egun bat berandu esku-dirutan.
Edo egun edozein amaieran ez izatea gai bat izanez gero,
zintzotasunez, pertsonalki email me.
Zerbait irudikatu dugu.
Mesedez, ez jarri hemen zure denbora Harvard at arriskua.
>> Orain, aldarte argitu beharko dugu pentsatu nuen, beraz, I
barne hurrengo diapositiba gisa.
[Barreak]
DAVID J. MALAN: Web gune hau handia izan zen.
Benetan lortu dut apur bat galtzen du arreta.
Bat da hau.
Eta gero, hau harrigarria izan zen.
Ongi da, eta, beraz, kitten dela uste berandu gauez egiten
erabaki horiek.
Guztiak eskubidea, eta, beraz, gehiago gozatzeko eta ez hain larriak stuff, hala nola
baldintzak.
>> Ondo da, beraz, labur-labur horiei buruz hitz egin dugu.
Hau da zerbait seguruenik nahiko ezaguna from
Scratch munduan.
Scratch mundu behar dugu zenbaitetan
joan egin Sardexka errepidea.
Edo egin hau edo hori edo beste gauza hau hemen.
Eta hori egin nahi dugu, erabili, C orain, ezin dugu hori izanez gero
bestela, eraikitzeko.
Eta gero, hemen boolear adierazpen ditugu.
Esate baterako, adierazpen boolearrak hemen, edo ezin dugu
elkarrekin, zentzu dugun egoera honetan OR
egoera.
ETA elkarrekin ahal dugu, nahi dugun zentzu
baldintza hau egiaztatu eta baldintza hori.
Eta hemen switch adierazpen bat dugu gaur egun, hau da, ez da hain
antzeko sintaktikoki zaio baldintza-mota horiek, baina
izanez gero, baliokidea, bestela, errepikatzen ez bada, bestela ez digu
, bada, eta atsegin, besterik gabe, kasuan kasu horiek enumerating
kasuan kasu.
Beraz, azken denbora horiek ikusi genuen.
Eta gero, loops bezalako gauzak gainean ukitzen hasi ginen.
Horietako bat ikusi dugu, une bat besterik ez duela.
Baina ez dira beste begizta eraikuntzen hauetan.
>> Esate baterako, bat hemen.
Beraz, (baldintza), berriz, ez gauza hau behin eta berriro.
Beraz, batez ere, zer badirudi honen artean desberdinak izan
loop eta, berriz, begizta hau hemen?
Begizta eta bitartean begizta hau.
Bai?
Zer da hori?
IKUSLEEN: [INAUDIBLE].
DAVID J. MALAN: Good.
Beraz, loop baldintza, berriz, ez dago argi eta garbi
gehiago sintaxia.
Hasieratzea hau da, ez dago eguneratze hau.
, Berriz, begizta bat, ez dago baldintza hori.
Beraz pared behera versus txiki bat dela dirudi
loop, horrek esan nahi du aldagai izan nahi badugu eta nahi dugun
incrementation izan, benetan dugu
gauza hau hartzeko.
>> Beraz, aurrera eta ireki gedit utzi.
Dezagun aldatuko me tresnara.
Eta dezagun adibide txiki azkar bat besterik ez
bereizten ditu horietako beste bat.
Eta, nire buruan hona, gauza bat esan behar dut.
Berariaz aipatu dut izena Tim.
Tim zen benetan norbait ikasle bat aurkitu saiatu
haientzat etxeko lanak.
Tim Ez genuen atal jakin horretan.
Beraz, konturatzen, kontuetarako dut ikasle bat kausituko, ez zen ikasle bat.
Interneten ausazko pertsona gauzak egiteko bat izan da
a proxy urtearen arabera.
Beraz, aurkituko dugu, gehiegi.
Beraz, kasu honetan, hemen, utzi aurrera me eta
fitxategi berri bat ireki.
File, New.
Honek ematen dit fitxa bat hemen.
Dezagun aurrera eta gorde loop.c.
Joan eta sakatu Gorde.
Eta gero behera hemen, goazen aurrera eta hasi idazten
# .
Demagun sartu urruntzeko me
Orain int main (void) egin dugu.
Orain aurrera egin eta (int i = 0; i <
oh, 10; i + +).
Eta orain aurrera joan eta izar inprimatu ez noa dut
egin lehenago.
Eta gero, programa honen amaieran, bakarrik ari gara joan
inprimatu linea berri bat, beraz, nire gonbita
ez begiratu messy guztiak.
itzultzeko 0.
Badirudi sintaktikoki zuzena?
Orain arte.
Hargatik ikusi.
>> Hargatik zooma me, nire terminal-leiho batean.
Eta utzi aurretik joan eta exekutatu begizta izeneko I delako
gauza loop.c.
Beraz, egin begizta baten ondorioz.
Dirudienez, OK biltzeko.
Loop exekutatu me, eta, gaur egun, Sartu.
Eta inprimatutako 10 ko dirudi.
Hargatik besterik ez bihurtu hau, berriz, begizta bat eta zer ikus
gai dugu bidaia mota.
Beraz, horren ordez, hau da, joan me eta hemen esan den bitartean i
10 baino gutxiago
utzi loop for kentzeko me.
Ados, eta, beraz, pare bat arazo izan ditugu dagoeneko.
Beraz, egoera berdina da, baina, jakina, dut falta
Hasieratzea.
Incrementation falta naiz.
Beraz, zer behar konpilatzailea ziurrenik tell me denean saiatzen naiz
konpilatu programa hau?
Bai?
IKUSLEEN: [INAUDIBLE].
>> DAVID J. MALAN: Good.
Beraz, undeclared antzeko zerbait esan nahi du - honetan
kasuan, aldagaia i.
Eta, hain zuzen ere, erabili identifikatzaile undeclared i.
Eta, beraz, hau PHP bezalako hizkuntza kontrastea da, eta
Python eta Ruby, batzuk ezagunak izan daiteke,
non Irteeran aldagai erabiliz mota
willy-nilly eta ez kezkatu horiek geratuko
esplizituki beti.
C eta Java eta C bezalako hizkuntza + +, izango duzu
super zehatza.
Eta nahi duzun izeneko i aldagai bat bada, esan behar duzu
zer nolako aldagaia da.
Beraz, hau honela konpondu behar dugu.
Igo eta int i idatzi izan dut, beraz,
Izeneko i aldagai bat deklaratu dut.
Orain, urrats bat saltatu dut.
Jakina, Nik ez hasieratu da, baina dezagun ikus hartan
gutxienez marka Clang stop kexatzen.
Hargatik programa hau remake me.
>> Guztiak eskubidea, gaur egun besterik ez da kexatzen
beste arrazoi batengatik.
"Variable 'i' uninitialized erabiltzen denean hemen." Guztiak eskubidea, eta, beraz,
nahiko esplizitua.
Hasieratu, besterik gabe esan nahi du berdintasuna balio bat ezarriz.
Eta ez dugu egin, beraz, saia gaitezen funtzioak 0 itzultzen du.
Orain dezagun saiatu berriro eta berriro exekutatu Clang.
Konpilatu da une honetan.
Eta exekutatu dut.
Baina handi zahar infinitua loop Nik egin delako
Hasieratzea egin dut baldintza, baina inoiz ez dut egin
edozein motatako incrementation.
Beraz, nola egin dezaket incrementation egin dezaket?
Beno, bitartean begizta bat dut, behar bezala sentitzen da
Begizta barruan, askoz delako lehen bezala
aste begizta eraikuntzen egiteko adibide bezala
galtzerdiak eta auto-zenbaketa egin behar izan dugu
Oso amaieran zerbait, itzuli hurrengo lerroan.
Zer aurretik joan behar dut eta zer i + + hemen?
Dezagun ere ez konpilatu hau.
Catch me dagoeneko.
Zer gertatzen da hemen?
IKUSLEEN: [INAUDIBLE].
>> DAVID J. MALAN: Beraz, zalantzarik gabe ez da int.
I da.
Eta kizkur giltza, lehen bezala,
koska ez da nahikoa.
Beraz, gaur egun hau dut eraikitzeko.
Beraz, i 10 baino gutxiago, izar bat inprimatu,
ondoren Kontatzailea i.
Eta bidean loop lanak eta, bestetik, ahalik eta azkarren sakatzen duzun
loop, behean, kasu honetan, 10. line itxura,
linea 6 atzera joan da, puntu
egoera egiaztatu egingo da berriro.
Eta i oraindik ere 10 baino gutxiago, ez lerro dugu 8 eta
ondoren, 9 eta, ondoren, 10 hit dugu, eta itzuli 6, berriz, eta
behin eta berriro, eta berriro, eta, beraz, luze jo i 10 baino gutxiago.
Hargatik berriro make hemen.
>> Ados, ados konpilatu dugu.
Let me re-run loop.
Eta orain badirudi benetan lan.
, Pluses eta minuses Beraz, hemen?
Beno, eta, beraz, orain arte ez da benetan ez plo osoan
beraz cute.
Eskubidea guztiak, bat izan zen - ah, istripu bat izan zen.
Guztiak eskubidea, eta, beraz, goazen atzera, loop.
Beraz, loops nice Oraindik, super esplizitua delako.
Eta, nahiz eta pixka bat clunky idazten ari dira,
Oso indartsu eta egiteko aukera ematen du
gauza bat baino gehiago aldi berean.
Loops ez bitartean balio-kopuru handi bat dirudi, besterik gabe
gabe sentitzen delako, besterik gabe, lan gehiago egin behar dugu bezala.
Hasieratzea jarri ditugu hemen,
eguneratu behera hemen, eta gogoratu behar dugu hori guztia egiteko.
Beraz,, denbora ikusi dugu, berriz, loops benetan mailegutan
bere burua besterik ez testuinguru desberdinetako datuak
zerrendak eta hash taulak bezalako egiturak, gauzak lortu dugu
erdialdean seihilekoan.
Baina, oraingoz, ez dagoela izenez ezagutzen mota honetako hirugarren do-
loop bitartean.
Eta labur hau ikusi dugu.
Eta hau lagungarria pset 1 super izan daiteke.
Zerbait egin eta, ondoren, nahi duzun denbora Edozein egiaztatu bada
Erabiltzaile lankidetzan, eta egin ez badute egiten, berriro ere, bat-
loop erabaki bera, berriz, logika mota hori.
Goitik beheraino ordena hemen iradokitzen denez,
ez literalki esan nahi du egin.
Eta ez hori behin eta berriro, zer egin dezake hori?
Agian GetInt deituz edo GetString eta, ondoren, esan nahi du
edo GetString GetInt balioa egiaztatzeko, eta, ondoren, yelling
Erabiltzaileak ez badute horiek eginez lankidetzan
behin eta berriz eta berriz.
Non zerbait behin egin nahi baduzu,
eta egiaztatu baldintza batzuk.
>> Hargatik saiatu honekin.
Dezagun benetan aldatzeko me do-bitartean loop bat.
Eta aurretik joan eta honako hau egin dut.
Horretarako, honako hau.
Egin dezagun int i = GetInt (); baina dezagun lehenik dira erabiltzaileak
zer egin.
Beraz, apur bat beste denbora honetan.
"Give me int bat".
Beraz, erabili printf dut horretarako.
Eta orain, behera joan naiz joan, eta hau egin nahi dut
den bitartean i, demagun, hau baino handiagoa da
Ikus dezagun, i da, demagun, 0 baino gutxiago, edo i
10 baino handiagoa.
Beste era batera esanda, zenbaki bat nahi dut 1etik 9ra, besterik ez
arbitrarioki.
Beraz, boolear adierazpen konbinatua erabiltzen dut hemen
ziurtatu dela i 0 baino gutxiago edo 10 baino handiagoa,
Kasu begizta hau egingo dut hemen berriro.
Beraz, berriro ere, hau egin
den bitartean i 0 baino gutxiago edo i 10 baino handiagoa da.
>> Beraz, gaur egun dezagun aurrera, eta hori ez dugu egin behin.
Dezagun just do behatu check azkar bat.
printf ("Mila esker,% d i", i).
Beraz, programa honen simple int bat erabiltzaile eskatuko
egiten ziur sorta batzuk, 1etik 9ra, biak barne, barruan,
eta, ondoren, erabiltzaileak esker horiek gogorarazten dutena besterik ez
idatzi, apur bat behatu kontrol gisa.
Baina ikus dezagun funtzionatzen gisa nahi baduzu.
Burua joan me behera eta hemen berriro make loop.
Hmm.
"Identifikatzailea undeclared 'i' erabili". Hori da arraroa.
Dela ebatzi dugu pentsatu nuen.
Same sintoma baina kode desberdin.
Bai?
IKUSLEEN: [INAUDIBLE] bi barruan, behar dugu
[INAUDIBLE].
>> DAVID J. MALAN: Zehazki.
Beraz, hau benetan garamatza esparrua bezala ezagutzen den gai bat.
Bihurtzen da, C, berriz, hartzen du benetan duzu literalki.
Eta honen antzeko zerbait egin bada non int bat adierazteko
eta, ondoren, esleitu balio batzuk, baina baten barruan
tirantes kizkur bikotea, zer C ez du bere gain hartzen duzula
bakarrik ezagutzen i existitzen barruan 32 bit nahi duten
horiek kizkur giltza testuinguruan, lerro testuinguruan
Bidez 6 9. Beraz, i izendatu da, eta esleitutako
8 line balio, baina ahalik eta azkarren kanpo lortu
kizkur giltza azpiko linea 9, jada ez da i
esparrua, eta, beraz, hitz egiten.
S-C-O-P-E. Jada ez da eskuineko testuinguruan.
Beraz, gaur egun ez da, beraz, nahiz eta ez izan genuen, nahiz eta
deklaratu at.
>> Beraz, zer fix gero, honen antzeko zerbait da, bada
arrazoia da i kizkur giltza barruan deklaratu,
itxuraz txarra?
Hona hemen?
IKUSLEEN: [INAUDIBLE].
DAVID J. MALAN: Bai.
Beraz, hasieratu dezakegu kanpo.
Beraz, aurrera eta adierazpena zati horren bidez ezabatu
Mota zehaztu dut, eta utzi egin me up hemen.
Beraz, linea 5, dio gaur egun "Give me int bat." Dei-i.
Linea 9 hasiera, baina ez dut hori egin nahi dudalako,
jada 32 bit.
Ez dut nahi ordenagailu eskatu
32 bit desberdinak.
Esos mismos 32 bit erabili nahi dut.
Eta orain i 5 line deklaratu delako, oraindik egiaztatzeko
erabili line 11 eta 12 lerro.
>> Hargatik hau konpilatu saiatu me ikusi eta
yelling Clang bada gelditzen da.
egiteko begizta baten ondorioz.
Beraz, gaur egun "funtzioaren adierazpen inplizitua da
'GetInt' C99 in baliogabea. "Zer da hori?
Bai?
IKUSLEEN: [INAUDIBLE].
DAVID J. MALAN: Bai.
Beraz, gaur egun, naiz I actually GetInt erabiliz, hau da, ez da zerbait
besterik ez dator C. CS50 tik dator.
Beraz, hau behar dugu hemen.
Eta atzera me gonbita behera utzi
Hemen eta berriro make.
Ongi da, azkenik.
Orain ebatzi dugu eta beste error.
Dezagun exekutatu me loop ikusi eta zer gertatzen den.
"Give me int bat". Eman dut 11.
Eman dut -1.
Eman dut foo.
Eman dut 5.
Eta gaur egun, hain zuzen ere lan egiten du.
Baina hemen arrazoi bat aldatu gonbitan.
Zergatik saiatu da berriro garai hauetan, baina, emadazu bat esan
INT beste hiru aldiz?
Zergatik portaera desberdina da?
IKUSLEEN: Gave kate bat.
DAVID J. MALAN: Barkatu?
IKUSLEEN: kate bat eman duzu.
DAVID J. MALAN: Bai.
Beraz, kate bat eman dugu hirugarren saiakera honetan,
denean foo idatzi dut.
Foo kate bat da.
Jakina, ez da int bat.
Eta CS50 ezarri ditu GetInt dugu
ez egiaztatu zerbait da 0 baino gutxiago edo 10 baino handiagoa
duzu, nola ez dugu ezagutzen aldez aurretik delako zer nolako-
INT nahi duzu?
Baina gutxi dizugu egiaztatu, ez erabiltzaileari gutxienez
idatzi zenbaki oso bat?
Eta egin ez badira, erabiltzaileari Yell dugu idazten "saiatu da berriro"
pantailan.
>> Beraz, orain, programa bat den begizta dugu. Ongi da.
Orain, horietako zein eraikuntza hobeto sort da?
Beraz, hau da, non gauza little messy bat lortzeko,
Izan aldagai bat aldarrikatu du gogoratzeko duzula
batzuen barruan erabili nahi duzun
kizkur giltza eta kanpotik.
Baina, nahiz eta itxura apur bat críptica lehenengo
begiratu, besterik gabe, berriro ere, gogoratu logika sinplea.
Ezer erabili C, ea funtzio bat edo
aldagai bat da, besteak beste, funtzio bat izanez gero duzu
liburutegi batzuetan, edo aldarrikatu behar duzu.
Baina orain Izan ere, mindful extra izan behar duzula
deklaratzen ari zaren eskuineko esparrua.
Ez duzu jarri ere ongi parentesi barruan.
>> Hargatik roll benetan me back.
Joaten gara itzuli bada, gure aurreko adibidez, eta joan I
itzuli int for, int i = 0; i <10; i + +, eta I
egin printf izarrak bezala, eta, ondoren, itxi paren, eta gaur egun
printf da i -
beraren logikaren arabera, zer egiten saiatzen naiz gertatuko da
konpilatu programa hau?
IKUSLEEN: identifikatzaile baliogabea.
DAVID J. MALAN: identifikatzaile baliogabea Beraz, beste bat da,
undeclared identifikatzailea.
Orain, arrazoi pixka bat hainbat.
Ez dago giltza kizkur, jakina, ez da hemen, baina gauza bera
ideia, esparrua istorioa bera aplikatzen da.
Baten barruan i bezalako aldagai bat izendatu bada
loop, nahiz eta ez duzu esplizituki idatzizko kizkur
giltza, uste adimen oraindik han izateaz gain,
kasuan soilik baliozko barruan loop i.
Ez da baliozko hurrengo lerrora iritsi behin,
Kasu honetan, gaur egun 10.
Beraz, esparrua eta bezala gai batzuk.
Guztiak eskubidea, edozein galdera?
>> Ondo da, beraz, honetan apur bat Bañales programa mota da,
ko txiki besterik ez inprimatzeko.
Baina ikus dezagun abestia gogoratzen duzu hori izanez gero hemen.
Izugarri gogaikarriak abestia haurrek abestu on
eskola-autobusa eta antzekoak.
Baina, zer buruzko nice du ez dela cyclicity,
Horren bidez, "99 garagardo botila horman,
99 garagardo botilak.
Hartu bat behera, pasatzen inguruan, 98 garagardo botilak
wall. "Eta gero abestia 97 errepikatzen, ondoren, 96 eta, ondoren,
95, gero 94, modu guztiak behera 0 benetan lortu bada
urrun autobusean.
Beraz, hau nice programa inplementatzeko ordenatzeko da, izan ere, nire
Jainkoa, ezin duzu besterik ez bada ezartzeko batzuk
kode lerro, txu izan da guztia lyrics honetan
abesti oso azkar.
Baina bidean, orain hasteko tease gain batzuk ezin dugu
eraikuntzen begizta oinarrizko horiek, eta gaur egun ere
funtzioak aurkeztu idazten dugu, itzultzeko balio
pasatzen dugun inguruan.
Baina, lehenik eta behin, zergatik ez markagailuan joan gara eta gure bost minutuko hartzearen
apurtu hemen?
Eta bueltan, abesti hau abestu egingo dugu.
>> Ondo da, beraz, itzuli gara.
Eta noiz izango dugu abesti hau abestu diot, esan nahi dut
programazioaren, ez hitzez.
Beraz, hemen beer1.c ditugu, bat ezartzeko
bereziki song.
Eta besterik gabe, argi eta garbi, Ohituta dituzten
Badirudi gauza hau, hala nola utzi aurrera me
eta egin beer1, Sartu.
Orain utzi beer1 exekutatu me, eta zer ikusiko dugu zenbat botila
garagardo han egon?
99 idatzi dut, abestia dioen bezala.
Sartu.
Eta orain, bidez joan bada -
trabatzen - Hori guztia bidez joan nahi izanez gero, ikusi dugu
hau, hain zuzen ere abestu zuen abestia osoa.
Itxaron minutu bat.
Nire messed sortu korritze-barra txiki bat da.
Erabili dezagun handiagoa leihoa.
Beer1, 99 Beraz, ez gara.
Beraz, hemen abesti osoa, askoz azkarrago arabera abestu beharko dugu
ordenagailua guk baino izan da izan.
Beraz, ohartuko da, nahiz eta, izaera zikliko hemen.
99 eta, ondoren, 99 eta, ondoren, "hartu bat behera, pasatu dio
inguruan, "ondoren, 98.
Eta orain, behin eta berriro errepikatzen da.
>> Beraz, hau da, benetan nolabaiteko aukera ezin hobea
eraikitzeko begizta batean.
Ohartu naiz izkina bat ebaketa hemen mota.
Ohartu naiz dut ", 98 garagardo botilak horman esaten,
97 garagardo botilak horman, "eta hori besterik ez da, beraz,
bat garagardo botila dugu, ez daukat
Ingeles gramatika kezkatu.
Baina hau konpondu ahal izango dugu ere bat izanez gero, apur bat
baldintza, agian.
Zenbaki hau berezia bada, joan aurretik, eta esan "botila",
bestela plural da "botila", esan.
Baina orain, erabat naiz izkina horretara ebaketa.
Hargatik zer dugu got hemen ikusi.
Beraz, lortu dugu goialdean zenbait iruzkin.
Dut bi liburutegi hauek barne,
Normalean dugu.
Eta orain, goazen behera joan me lehenengo
benetako kode lerro.
Line 17 off kicks.
Line 21 eta 20 garagardo zenbat botila egon?
Eta gero GetInt deitzen diot nik.
Eta orain, apur bat behatu txeke bat daukat.
>> Beraz, hitzarmen bat egingo dugu orain hasteko onesten da
zorrotz egiaztatu erabiltzailearen sarrera.
Batzuetan ez duzu nahi ez galdetuko berriro
eta behin eta berriro.
Erabiltzaileak torlojuak bada, eta ez da lankidetzan aritzeko, isuna.
Irten eta bakarrik ez haiekin aurre egiteko.
Eta, beraz, hemen zer egiten ari naiz.
N 1 baino gutxiago bada, besterik ez dut erabiltzaileari Yell
"Barkatu, ez du zentzurik." Eta gero noa
arbitrarioki itzuliko 1.
Beraz, berriro ere, hau erabili ahal izateko hitzarmen bat besterik ez da.
Oraingoz, fede on.
Baina, orain arte, beti dugu dira 0 itzuli, zeren
0 lu byte irakurtzerakoan zer itzuli esan dugu?
IKUSLEEN: Success.
DAVID J. MALAN: Success, hori da dena.
Beraz, gaur egun ari gara, azkenik, pentsatu hasi
ez arrakastak -
Beste era batera esanda, kasu izkinan, akats baldintzak -
orain infinitua hornidura bat daukat, edo, gutxienez, lau milioi
ahalik eta gauzak gaizki joan daiteke nire programak.
Eta hasteko horiek esleitzeko banakako zenbakiak I daiteke.
Orain, eta, oro har, return nahikoa
0 baino beste zerbait.
Beraz, besterik gabe itzultzeko 1 oraingoz goaz.
Baina 1 itzultzeko arrazoia da laster itzultzeko gisa duzu
1, etxebizitza programaren gainerako zer gertatzen da?
Gelditzen da.
Dela.
Beraz, naiz dela I 1 itzuli da, hain zuzen, modu eraginkorrean
Programa honen exekuzioa zirkuitu-laburra da, beraz,
line 27 azpitik ezer exekutatzean jarraituko du.
Bezain laster itzultzen nagusia, hori da.
>> Guztiak eskubidea, eta, beraz, erabiltzaileak ez badu kooperatu eta line 30 iritsiko gara
zenbaki bat legezko idatzi dutelako, hona hemen nire da
Abesti honetan ezartzeko.
Beraz, inprimatu lehenengo I newline pertsonaia bat, besterik ez
estetika.
Dute gaur egun I a loop.
Eta nabarituko gauzak pixka bat egiten ari naiz
beste norabide bat.
Ez daukat baino gutxiago egin, ez dut egin + +.
Ordez esan dezaket hasieratu aldagai bat i, berdin
n, erabiltzaileak idatzitako kopurua, ondoren, egin honako hau, eta, beraz,
i 0 baino handiagoa, gero i -
bukatu ondoren dituzun begizta honen iterazio bat.
Beraz, zenbatu ahal izango dugu erabiliz loop baita.
Orain, hau nahiko askoz aste bat stuff, printf.
Beraz, inprimatu "% d garagardo botilak horma". Inprimatu "% d
garagardo botilak. "" Egin bat behera, pasatzen inguruan. "Inprimatu
"% D garagardo botila horman." Beraz, oraindik da% d, baina
nabarituko argumentua printf aldatzen ari da.
Koma ondoren, i I, 99 esan nahi dut delako.
Koma honen ondoren, i I, 99 esan nahi dut delako.
Koma honen ondoren, i daukat - 1, nahi dut 98 esan nahi duelako
lehen iterazio hau, eta abar.
Eta orain behera hemen, besterik ez dut komentarioen txiki batzuk ergelak.
Eta gero, line 42, 0-ra itzuliko dut konbentzio, signifying dela
dena ondo.
>> Beraz, zer egin behar dut goofed?
Zer izan liteke akatsa hemen komun bat izango ote da?
Beno, ustekabean esan dut ongi, nahi ez dut zenbatu
0 - behera, 0 garagardo botilak horman nahi dut?
Esan Beraz, I eta 0 baino handiagoa edo berdina da i.
Zer sintoma orain ikusten dut birkonpilatzeko badut izango
beer1 eta exekutatu?
IKUSLEEN: negatiboak.
DAVID J. MALAN: Yeah, ezezko joan botako da.
Off-by-ko errore bat da, oso
komuna akats egin.
Dezagun benetan itzuli terminal-leihoa eta egin
hemen, beraz, gehiago ikusi ahal izango dugu aldi berean.
Sartu, 99 garagardo botilak.
Close, baina inoiz joan ginen, beraz, apur bat oso urrun.
Abestia abestu dugu urrunegi behera, hala nola hit dugu
zenbaki negatiboa.
Beraz, ez du nahiko lan.
>> Guztiak eskubidea, eta, beraz, erraz konpondu ahal izango dugu atzera egingo
modu izan zen behin.
Baina, zer dira aukera batzuk
hobetzeko?
Beno, utzi beer2.c ireki me eta behera joan Hemen eta hartu
bertsio hau begiratu.
Zer da lehen gauza joango duzu hainbat
Hemen bertsio hau?
IKUSLEEN: [INAUDIBLE].
J. MALAN DAVID: Bai, eta, beraz, ez gehiago, i gertatu delako
badakizu niri zer, n erabiltzailearen naiz eskatuz, eta, ondoren, naiz
berdintasuna n i ezartzeko, eta, ondoren, i aldatzen ari naiz, baina inoiz ez naiz
n ukitu berriro.
Beraz, zer demontre izan zen beste 32 esleitzean puntu
bit izeneko i besterik ez beraz, beste aldagai bat izan dut?
Beraz, kasu honetan, sort aitortzen dut alferrikako dela
diseinu feature.
Eta orain dut esan du n 0 baino handiagoa den bitartean, joan
Animatu eta inprimatu bereko abestia, n bat pasatuz gisa printf
bigarren argumentua, eta n - 1 bigarren argumentu gisa behera hemen.
Eta gero loop honen iterazio bakoitzean, aurrera eta besterik ez
decrement n bera.
Orain, funtzionalki, programa honen
berdin-berdina izango da.
99 I idazten baduzu, n 99 etan hasiko da.
Decrement I decrement, decrement, decrement.
Modu guztiak "bat garagardo botila noa
horma, garagardo botila bat.
Hartu bat behera, pasatzen inguruan.
0 garagardo botilak horman. "End, ez dudalako
lortzeko baldintza egokiak.
0 baino handiagoa da.
Ez dut akats hau egin.
>> Beraz, hobe da, bertsio bat edo bertsio bi?
Beraz, murmurings sorta bat entzun nuen, bi.
Zergatik bi?
Zer da hori?
IKUSLEEN: [INAUDIBLE].
DAVID J. MALAN: Oh, ados.
Beraz, ez da 0 azpitik joan, baina gogoratu, bertsio bat,
jatorrizko bertsio egokia ez 0 edo beherago joan.
Beraz, gogoratu hori bertsioa da zuzena.
Hargatik, gutxienez, alderatu bi bertsio zuzena.
Zer da bertsioa aldeko argumentu bat
bi izanik, mmm, hobeto?
Bai?
IKUSLEEN: leku gutxiago erabiltzen ditu.
DAVID J. MALAN: Ados, beraz, leku gutxiago erabiltzen da, ezta?
32 n bit, eta, ondoren, beste bertsio bat erabili, berriz,
32 i bit.
Bertsioa bi soilik erabiltzen ditu, 32 bit-n, horrela
plus bat izan dela dirudi.
Beste pentsamenduak?
Does Edozeinek bat alde argudiatu nahi?
Bai?
IKUSLEEN: n kode line gehigarria erabili behar duzu.
>> DAVID J. MALAN: Ongi da, ziur.
Beraz, hori da azoka.
Beraz, gutxienez me -
Messier hau benetan pixka bat sentitzen da, Izan ere, esan nahi dut
Ezin dut enkapsulatu nire logika guztia ordenatzeko batean
eder-line, loop, loop for ahal.
Hemen, n honetan Tack mota daukat
Begizta amaieran, zeren
logikoki beharrezkoa da.
Baina rubs mota me okerreko bidea, besterik ez delako
Dirudienez, hemen logika bereizi da, nahiz eta,
berriro ere, beharrezkoa da.
Beste pentsamenduak?
Bai?
IKUSLEEN: [INAUDIBLE].
>> DAVID J. MALAN: Bai.
Beraz, zer duzu ordez, abestiaren amaieran, nahi
berriro inprimatu abestiaren izena?
Atsegin dut "Eskerrik asko 99 garagardo botilak jolasten", edo zerbait
Horrelako silly?
Baina puntua da, jatorrizko balioa sarbidea nahi duzun.
Izan ere, duzula mutated edo aldatu n bakoitzean
iterazio eta, beraz, bere jatorrizko balioa suntsitu
Horrek esan nahi dezake besterik ez duzu ez dela amaieran.
Orain, dudarik gabe, ez argi eta garbi ez dugun egin nahi
programa honetan.
Beraz, nork zaintzen?
Baina hori oso baliozko puntu bat da.
Eta zintzoa izan, inork ez da benetan
eskubidea erantzun hemen.
Biak dira berdin zuzena.
Horrez gain, modu bai.
Esan hori, oro har, printzipio bat da I baduzu
galdetu erabiltzaileari balio batzuk eta aldagai batean gordetako
n bezala, sort printzipioa on, seguruenik ona
inguruan mantentzeko.
Eta behin eta berriro edozein datu mutate nahi duzun, besterik ez
eman zeure buruari, aldagai horren kopia bat, beraz, besterik ez duzu
jatorrizko sarbidea.
32 gehiago gastatzea bit ari zara, baina errealitatea da hau
ordenagailua du, bezala, bi RAM gigabyte egun hauetan,
eta 32 bit baino gehiago ari gara quibbling?
Benetan ez aurre handi bat, hala nola.
Eta baita gailu hau hemen, erdi Kontzertu bat edo
gigako RAM, 32 versus bit 64 bit,
ez aurre handi bat, hala nola.
Zalantzarik gabe, gaur egun, modu tamainaren arabera itotzea izan da
programa bera, hau da, hainbat izan ehun
kilobyteko luzera du, eta ez da gutxi megabyte, egun hauetan bada.
>> Beraz, arrazoizko kezka, inork ez erantzunik egokiena.
Baina, gutxienez, pentsamenduak hasi behar dira
your mind bidez joan?
0 pset, nahiz eta soilik benetan dugu espero
zuzentasuna, edo, gutxienez, hainbat bugs duten disclaiming
aurkitu duzu agian, eraman dugu aurrera, diseinua
Funtsezko beste alderdi bat izango da, bai kodea idazteko
eta, aldi berean, gure kodea ebaluatzeko.
Eta beraz, gutxienez eman hau bezalako gauzak pentsatu.
Eta zerbait obra delako ez du esan nahi ona da,
ez du esan nahi ondo diseinatutako da.
Eta hori irakaskuntza bekadunek gauza bat da eta
arazo multzo denboran zehar parte tease lagunduko digu.
>> Beno, zer, dezagun esan, bertsio hau hemen?
Dezagun zerbait apur bat sexy hemen une batean do me.
Lehenik eta behin, utzi hau kentzeko get me.
Eta orain dezagun gramatika-arazo hau konpondu.
Beraz, bertsio honetan, gramatika konpondu nahi dut, beraz,
baino besterik ez esaten parenthetical s, hala nola "botila"
edo "botila" -
Izkina horretara moztu ez dut nahi -
Dinamikoki inprimatu hitza "botilak ere nahi dut"
edo "botila", beraz,% hauen s leku erabiltzen gaur egun.
Conditionally egiaztatu zer da i balio behar dut.
Eta 1 bada, "botila" esan nahi dut, eta da ezer bada
bestela, "botila" esan nahi dut. Hargatik hau egiteko saiatu bere.
Beraz, 1 == i gero, aurrera eta deklaratzeko me -
Kate bat behar dut, beraz, utzi katea s1 do me, delako
lehen kate buruz zaintzen dut oraintxe bertan.
"Botila" esan nahi dut. Eta gero, dezagun ikus, kate
s2 azaldu eta une batean noa dut
"Botila". Beraz, gogora ekarri Abesti honetan, gai izan behar dugu
gauzak, beste hitz bi potentzialki inprimatu.
Beraz, atzera begiratu dugu hemen, jakinarazten lortzen dugun
Adibide honetan hemen, "bi garagardo botilak, horman
bi garagardo botila, hartu bat behera, pasatu inguruan ", nahi dut
Laugarren lerroan hau orain esan "bat garagardo botila
horma botila "edo". erabaki behar dut Beraz, ez esan nahi dut "
"Botila"? Beraz, arbitrarioki esan dut, eskubidea,
Izeneko aldakorreko s1, katea orain deklaratzen dut
den bat, konektatu eta hemen ere hemen,
hitz horiek dira beti berdinak, besterik ez delako
abestia izaera.
Eta s2 edozein izanda ere hitz egin nahi dut deitu noa
azkenean agertzen hemen.
Orain, literalki, 99 100 out aldiz, izango da joan
Kasu horietan, bai bera, 3 plural delako, 2
plural, plural 4.
Baina izkinan kasu honetan, non 2 dugu eta, ondoren, 1, edo
are gehiago, 1 eta, ondoren, 0, logika hau behar dut.
Beraz, denbora pixka bat pasatzeko nire kodea eskubide hori lortzeko behar dut.
Beraz, hau egin dut, 1 == i gero, ezarri s1 "botila" berdina
eta s2 "botila", berdin egingo 1 delako
0 botilak botila, eta, hori izan da.
Eta hau hemen, zer ordezkatzen du hau?
Just argia izan.
Hau iruzkin bat besterik ez da.
Beraz, single-line iruzkinak duzu Izan ere, esan nahi du
Zure kodea komentatu bezala, baina arrunt beste
paradigma, too, duzu super-esaldi labur hori
zeure buruari jarri nahi duzun, eta besterik ez irakurgarria da jarri
kode line amaieran eskuinera, egin dezakezu
erabat do honen antzeko zerbait.
>> Beraz, orain zer egin behar dut? Bestela, ez da i 1 balioa.
Beraz, bang berdin -
harridura puntua "bang" bezala ezagutzen da.
Beraz, bang = 1.
Beraz, i ez bada, 1 balioa, zer nahi ordez I egin nahi duzu?
Beno, lehen hitza zer izan nahi dut?
Beraz, kate 1 "botila" plural botilak izan behar du,
eta, ondoren, plural "botila" izango baita, gaur egun.
Eta ikusten dugu benetan lortzen bada gaitu
nora joan nahi dugu.
Beraz, behera joan I izanez gero, konturatu naiz I plugging
ez bakarrik i, baina s1.
I eta s1 plugging dut.
Eta gero behera hemen, minus 1 naiz, hau da, bera
aurretik, baina s2.
Beste era batera esanda, ingelesez hitz oinarritutako aldatu nahi dut
logika hori.
Orain, ez da dagoeneko kode hau arazo batzuk.
Zer hondatuta dago dagoeneko atea hemen?
Bai?
IKUSLEEN: [INAUDIBLE].
>> DAVID J. MALAN: Zehazki.
Beraz, dagoeneko dut urratu esparrua ikasgai.
Beraz, deklaratu dut s1 eta s2, baina egin dut barrutik
tirantes kizkur, eta horrek esan nahi du, yeah, kode hau lan egingo du
line 42 arte, baina ahalik eta azkarren line 43 hit dudan bezala, asmatzeko zer ez
jada?
Beno, asmatzeko zer da jada ez esparrua ez s1 edo s2.
Beraz, hau konpondu behar dugu.
Hargatik deklarazioak ezabatu me.
Eta aldagai izenak utziko dut, eta hau ezabatu Hemen
eta ezabatu hau hemen.
Eta zer lerro behar deklaratzen dut gauza horiek?
IKUSLEEN: [INAUDIBLE].
DAVID J. MALAN: Bai, eta, beraz, ziurrenik
eskubidea sortu hemen, 33-ish.
Kate s1 Beraz, eta, ondoren, kate s2.
Eta bihurtzen da, eta hau egin ahal izango dut.
Ari zaren mota bereko bi aldagai geratuko bada,
ez duzu besterik ez koma bat erabili eta zer C. guztiak
eskubidea, eta, beraz, orain bi aldagai behar dut
s1 eta s2.
Dut esleitzeko balio horiek
baldintzak hemen, edo hemen.
Eta gero naiz erabiliz behera azpian.
Ondo dago orain lanera joan?
>> Beno, oraindik apur buggy bat, baina let gutxienez ikusi
noraino ahaztuak dugu.
Beraz, utzi aurretik, joan eta egin beer3.
Beer3 da hau?
Yep, hau beer3 da.
Eta orain aurrera eta exekutatu beer3.
399 99.
Ziurrenik saltatzeko ahal izango dugu, eta horietako gehienak.
Eta behera, hori begiratu.
"One horman, garagardo botila bat garagardo botila, hartu
bat behera, pasatu inguruan, 0 garagardo botilak horman. "
Baina zure arreta naiz marrazten erdia soilik konponbidea.
Kind of izorratu hemen.
Beraz, izkina kasuetan sortzen diren i berdin badirudi
bi balio?
IKUSLEEN: 2, 1.
DAVID J. MALAN: 2 eta 1.
Ez, 1 eta ez da 1.
Benetan da bakarrik azken bi ahapaldi hauek abesti hau.
Beraz, zer egin nahi dut ordez?
Beraz, harrapatu kasu non i == 1 bada badirudi I,
ondoren, lehen hitza "botila", baina bigarren hitza
"botila". Baina, hemen, hau == 2 aldatu nahi dut.
Eta kasu honetan, bada, zer nahi dut
lehen hitza?
IKUSLEEN: "Botilako".
DAVID J. MALAN: "Botilako", eta, beraz, bi botila.
Eta gero, hitz hau hemen izan behar du -
IKUSLEEN: "botila".
DAVID J. MALAN: "botila", berezi.
>> Eskubidea guztiak mapan handiago, dezagun, itzuli hemen, re-make,
re-run beer3, 99 mota berriro.
Ados, "segmentaziuo hutsegitea (core iraultzeko)."
Zer oker egin dut?
IKUSLEEN: ez duzu balio bat [INAUDIBLE].
DAVID J. MALAN: Ah, puntu bikaina.
Guztiak eskubidea, eta, beraz, zer gertatzen da hemen?
Segmentaziuo hutsegitea Beraz, benetan ari gara ikusi
honen etorkizuna nahiko aldiz batzuk, nahita.
Baina orain, zer du horrek benetan esan nahi duzu?
Segmentaziuo hutsegitea ia beti esan nahi
nolabait, saiatu memoria, zure ordenagailuaren RAM sartzeko,
zuk ez propioa, ez duzu benetan eskatu
sistema eragilea.
Beraz, kasu honetan, konturatu zer egin dut, hau da,
nire logika flawed.
Esleitutako dut s1 eta s2 balio bat berdin i 1 bada.
Ere egiten dut berdin i 2 arazorik badago.
Baina ez dut egin infinitua zenbaki beste
aukera -
Zehazki, 3 edo 4 edo dot, dot, dot, 99.
Beraz, hau fix izan besterik ez gaitezen
bestela, baldintza bat.
Eta hemen Niri eta s1 berdin esan
hemen zer egin behar da?
IKUSLEEN: [INAUDIBLE].
>> DAVID J. MALAN: "Botilako", izan ere, komun kasuan,
besterik ez da gauza bera.
Beraz, berdin aurrekontua, unquote, "botila". Beraz, plural for
botilak, eta, ondoren, hemen, plural botilak.
Ongi da, eta, beraz, orain utzi atzera me to my terminal leihoa
birkonpilatu, re-exekutatu.
99.
Whew.
Eta egin dezagun behatu check azkar bat.
Teknikoki, horiek guztiak irakurri ziurtatu nahi genuke
zuzena ari dira, baina dezagun begiratzen
gutxien ezagutzen errudunen.
3 botilak, 2 botilak, 2 botilak, 1
, botila, 1, botila, 0 botilak.
Gutxienez konpondu orain badirudi dugu.
Baina hemen harrapaketa zer dela, hau da, jainko awful nahaspila
besterik ez ergelak bat konpontzeko
ko pertsonaia gramatikala xehetasun.
Beraz, ez dago arrazoi bat moztu I izkinan mota
lehenago, zerbait guztiz gogaikarriak delako behar
idazteko kode hau askoz.
Baina bihurtzen da apur bat gehiago dotorea modu
zehatza gauza bera adierazteko.
Eta hau honela egin ahal izango dugu.
>> Demagun hau utzi dit une batez pantaila eta
sartzea zerbait, hirutarra adibidez operadore gisa ezaguna.
-Forrua bat mota besterik ez ekarri egin da gure
apur bat sexier, agindu gisa bizi da.
Eta hau honela egin dut.
Give me izeneko kate bat s1, eta ni utzi
esleitzeko honela.
(1 == i)?
"Botila", bestela "botila". String s2 lortzen (i == 2)?
"Botila", bestela "botila".
Beraz, zer orduan aldea hemen da?
Bi kode lerro hauek, argudiatu dut
ordezkatu nahaspila hau guztia.
Beraz, gaizki deitzen diot nik, baizik rubs mota da me
gaizki dela hainbeste kode-lerro.
Ez da oker.
Ez da txarra diseinua.
Bezala, guztiz zuzena eta perfectly fine.
Baina kodetze lapurtera lortzen duzu zeure burua adierazteko hala badagokio
Malditos zehazki, behin eta berriro, eta berriro simple
hau atsegin dute agertokia.
Beraz, C lasterbideak batzuk ditu, hau atsegin dute.
Beraz, hau funtsean da deklaratzen izeneko kate bat s1 esaten eta
esleitu bai balioa edo balio hau bada i ==
Barkatu, hau gehiago argi eta garbi esan behar dut.
Deklaratu aldakorreko s1, esleitu Balio hau egia bada.
Bestela, balio hau esleitu.
Beraz, beste era batera esanda, honetan bat-line bidea moduko da
bestela, esaten, baina bidean zeregina egiten.
Beraz, i 1 bada, eta gero aurrera eta "botila" deitzea. Eta
ondoren, hau bestela, "botila". Bien bitartean, s2,
Bigarren hitza definitu behar ditugu, berdin i 2 bada, zaitugu
ezarri "botila" s2. Bestela, "botila". Eta zer
horrek esan nahi du gaur egun honen bitartez I joan daiteke, eta guztiak ezabatu
kode lerro horiek.
Eta esango dizut, zertxobait ridiculously, hau da, gaur egun
sexier, estilistikoen zentzu moduko sexier da.
Izan ere, funtzionalki, kode hau benetan joan
zehatza egin gauza bera.
Eta nahiz eta lehen itxura apur bat críptica zitekeen
begiratu, Nik ez dugulako eraikuntza hau ikusi baino lehen, gustatuko litzaidake
argudiatzeko dela, azken finean, beraz, askoz gehiago izango da
ulertzeko eta, beraz, askoz errazagoa da dugu gizakiak ordenatzeko
ulertzeko, gaur egun besterik ez duzulako irakurri
kode lerro bat.
Oraindik espiritua antzekoak izanez gero, hau da, bat
egoera eta, ondoren, hau da, zer bada barruan, eta horrek
beste barruan.
Baina hori besterik ez askoz gehiago. Dotorea egin ahal izango dugu.
>> Eta orain badut nire terminal itzuli ondoren, ezabatu guztiak
lerro horiek, eta horien ordez, soilik bi
birkonpilatu, re-run garagardo botilak 99, nire oharra
gramatika da, hain zuzen ere, oraindik zuzena.
Beraz, berriro ere, zerbait hasteko.
2 zerbeza botilak, garagardo botila 1.
Looks eskubidea.
Bai.
Beraz, ez dago askoz gehiago succinct konponbidea behar dugu.
Beraz, ere, lortuko duzu gehiago C eroso, ez
pset lehen edo are bigarren izan behar, baina
konturatzen eraikuntzen horiek gauza egin gurekin inoiz aukera ematen
gehiago Dotorea da.
Orain egin dezagun beste gauza hemen.
Dezagun aurrera eta ireki return1.c.
Dezagun hasteko modu bat duten beste arazo bat konpontzeko
sofistikatuagoa kodea idazteko aukera ematen digu.
>> Hortaz, hona hemen programa txiki bat simple horren helburua bizitzan
balio Kontatzailea.
Eta, benetan, dezagun urrats bat atzera.
Horretarako, me eskuz.
Besteak beste, eta int main (void) do me.
Eta utzi dei me increment.c hau.
Eta zer egin nahi dut?
Aurretik joan eta esan zerbait noa
zenbakiak deitzen dugun gauza bera
int x.
Beraz, int x lortzen, 2; printf x% d, linea berria, x.
Beraz, azkar, baina stuff ezagutzen moduko naiz idazten orain.
Ondoren, x + + egin dut.
Ondoren, esaldi hori bera inprimatu berriro noa.
Eta, ondoren, 0-ra itzuliko programatik irten noa.
Ondo da, beraz, programa bat dela
zatituko da zenbaki bat.
Lehen da 2 zerbait abiarazi du, eta, ondoren, da
Kontatzailea eta inprimatu berriro egingo.
>> Hargatik exekutatu gehikuntza, oso programa erraza da.
Baina demagun kubo balio nahi dut, eta, beraz, ez
zerbait zertxobait arbitrarioa da.
Eta benetan nahi dut x kubo lortzen.
Beraz, zer pow funtzioa deitzen nuen, baina ez dut
benetan daki non dagoela oraindik.
Beraz, hau egiteko modu zaharra noa.
x aldiz berdin x aldiz x aldiz x.
Beraz, balio cubing dut, biderkatzailea berak berriro
eta behin eta berriro, eta, beraz, botere lortuko dugu
kasu honetan, 3.
Beraz, gaur egun, zenbakiak inprimatu behar dut, izan behar du, ikusiko dugun bezala ikusi
hemen egin gehikuntza, eta, beraz, benetan ez benetan Kontatzailea da
jada, baina izena utziko dugu bakarrik
2 eta 8.
Orain, fintasun aukera baten hasiera dugu
Hemen, beraz zenbaki bat biderkatzeko gauza cubing honetan
berak bere burua berak bezala sentitzen agian izan nahiko luke
funtzio baten gisa erabilgarria, askoz ere atsegin norbaiti otu
Duela urte - badakizu, mota erabilgarria izanez gero, gurekin bat eseri behera
idatzi eta munduko gainerako beraz printf erabili ahal izango dela,
zergatik ez eseri gara eta kubo izeneko funtzio bat idatzi
duten cubing honetan ez Gurekin beraz, ez dugu eskuz
ezartzea nozioa balio cubing hemen?
>> Beraz, adibide erraz bat, baina dezagun aurrera erabili eta hau da
gure funtzioa idazteko aukera.
Beraz, beraz, orain arte, dugu erabili nagusia, eta erabiltzen ditugu, beste
funtzioak, baina ez dugu idatzi gure.
Beraz, hemen goaz.
Aurretik joan eta kubo izeneko funtzio bat idatzi dut.
Eta sarrera bat hartu izan dut.
Beraz, bere sarrera da zenbaki oso bat izango da.
Eta zer egin?
Int irteera aldarrikatu = input aldiz sarrera
aldiz sarrera.
Eta gero, irteera hori itzuli egingo da.
Eta gero zehatza egin behar dut orain.
Funtzio hau int bat itzuli du.
Hortaz, hona hemen ondoren Zure funtzioak nola idatzi dituzu.
Lehen erabaki duzu zer da zure izena
funtzioa izango da.
Eta, oro har, zerbait azalpen ona da, beraz, dut
deitu kubo.
Ondoren, itzuli egingo zehaztu behar duzu, zer da
bere irteera izango da.
Eta ez dugu oraindik asko aukera.
Int, char, float, boolearra, katea.
Oraingoz, int bat jarraitu dut joan nahi dut, delako
osoko bat itzuli.
Orduan, zer diren bere inputak, izanez gero, zehaztu behar duzu.
Eta kubo bada argumentu bat hartzen du, zerbait artean hartzen
Parentesi, argumentu hori, izen bat eman behar duzu, beraz,
deitu dezakezu zerbait zaren edo ezartzeko idazten
funtzio hau, eta mota bat eman behar duzu hau
Kasu int izango da.
Beraz, azken finean, kubo funtzio bat zenbaki oso bat hartzen du
sarrera eta irteera gisa zenbaki oso bat itzultzen du.
>> Beraz, zer egin du sarrera hori da?
Beno, line 14, aldakorra izeneko irteera deklaratzen dut, eta I
esleitu balioa, sarrerako aldiz input aldiz sarrera.
Eta gero, irteera itzuli dut.
Beraz, nola egiten da hau erabili dut orduan?
Zer nabarmenduta karaktere horiek aldatzeko on line
7, uste duzu?
IKUSLEEN: [INAUDIBLE].
DAVID J. MALAN: Bai, eta, beraz, x kubo.
Beraz, x aldagai bat da, eta horrek esan nahi du, balio batzuk ditu.
Zorionez, mota osokoa da.
Eta x int bat delako, eta horrek esan nahi du, gainditu ahal I kubo sartu.
Eta nahiz eta x balioa naiz gainidazteko balioa
kubo x kasuan izan da, beraz, orain arte, edonoiz
berdin ikurra eta kode-lerro bat, eskubidea stuff
lortzen exekutatu eta gero lortzen esleitutako
Ezkerraldean balio.
Beraz, eragiketak ordena litzateke espero dugu.
Beraz, ez du lan?
Beno, utzi behera joan me hemen.
Utzi nire terminal leihoa ireki.
Gehikuntza egin ez me, Sartu.
"Funtzioa 'kubo' adierazpen inplizituak baliogabea da
C99 "bat alde batera utzita, C99 hizkuntza C aipatzen zen bezala
1999an definitutako bertsioaren gainean eguneratzea izan
1989, jatorrizko zehar eguneratzea bat da.
Beraz, esan nahi duen guztiak.
>> Beraz, zer esan nahi du: "inplizitu adierazpena da
funtzioa 'kubo' baliogabea? "hemen da.
Bertan 12 lerro da.
IKUSLEEN: [INAUDIBLE].
DAVID J. MALAN: Zer da hori?
IKUSLEEN: ez da aurretik.
DAVID J. MALAN: ez da aurretik.
Beraz, gauza da.
C mota ergelak, edo C Konpilatzaileak ergelak mota dira.
Benetan zer egin horiek kontatzeko.
Eta, batez ere, dira, soilik irakurtzeko zure kodea goian behean,
Ezkerretik eskuinera.
Beraz, bada, konpiladorea, Clang, zure kodea irakurtzen da, linea 1,
zifrak hau nola egin.
Oh, hemen dator nagusia.
Ados, utzi aurrera me eta x aldagaia deklaratzeko.
Dezagun zerbait inprimatu me.
Linea 7, zer demontre kubo da?
Ez stdio.h deklaratu.
Ez du C. etorriko da, ez daki zer egin behar dut.
Eta horrela Clang besterik ez bails eta errore mezu bat utzi du.
Beraz, hau konpondu ahal izango dugu modu pare bat.
Clang irakatsi ahal izango dugu zer kubo besterik ez non mugitzen da
adierazpena da.
Beraz, ebaki eta itsatsi nagusia atop.
Orain konturatzen baizik nagusia jada ez da lehen aldiz,
oraindik default exekutatu.
Main nagusia da.
Default funtzioa izena da.
Ez du axola non dagoen fitxategi batean.
Baina, gutxienez, gaur egun Clang ikusi du kubo erabiltzen dut aurretik.
Beraz, ikus dezagun Clang izatea bada gaur egun.
Egin gehikuntza, denbora honetan konpilatu zen.
>> Gehikuntza exekutatu me.
Eta, hain zuzen ere, lanean ari dela dirudi.
Orain, zatoz dezakezu eszenatoki batera azkenean non
ez da bideragarria funtzio guztietan jarri
beste funtzio bakoitzean gainetik.
Errealitate hau begizta infinitua lortuko itsatsita,
non guy hau hemen, baina hau izan nahi du
guy han egon behar da.
Beraz, ez du beti funtzionatzen.
Beraz, zorionez, C gehiago dotorea du irtenbiderik.
Back hau jarri dut non izan zen, besterik ez dudalako
nahiago printzipioa materia gisa, beti
goialdean, besterik ez delako polita ikusteko zein programa hau
lehenespenez du.
Eta zer egin hemen noa zer deitu deklaratzen da
prototipoa.
Berriro aldarrikatu nire kubo funtzioa literalki noa
kopiatzea eta itsasten.
Egia esan, hori ez da literalki.
Beraz, literalki kopiatu eta itsasteko linea 15
linea 6 gainetik.
Ez du axola zer lerro hau da on.
Linea 4 gertatzen da.
Baina aurretik nagusia izango du.
Baina aldea nabarituko.
Line 4 muturretan puntu eta koma, horrek esan nahi du, hey,
Clang, hitza hartu du ez dagoela funtzio bat existitzen da
izeneko kubo int bat hartzen du, eta int bat itzultzen du.
Baina ez dira botako dut, zer da oraindik.
Just jakin agintzen dut esango, azkenean.
Eta, hain zuzen ere, gaur egun ongi da hori behera beheko.
>> Beraz, hau da, oro har, hobeto, eta, ondoren, goiko
zure koadernoan, dezakezu Rattle off, azkar-sua, lerro bat
bakoitzaren, zer funtzio izenak dira, beren
inputak dira, euren irteerak dira.
Eta argi izan, sarrera, oro har, esan nahi du argumentu edo
parametroa, egitea.
Irteera itzulitako balioa esan nahi du, zer egiten du
eskuz itzuli me.
Beraz, kasu honetan hemen, kubo izan goialdean deklaratu, baina
definitu, bestela ahala, jakina, behealdean.
Beraz, gaur egun, goazen atzera hemen, eta hau berriz abiarazi.
Beraz, gaur egun utzi aurretik, joan eta berriro make me, berriro exekutatu gehikuntza.
Eta badirudi orain da lan fina besterik ez.
Beraz, gaur egun aurrera dezakegu eta Factor antzeko zerbait out
garagardo Adibidez laugarren bertsio honetan.
Hargatik behera joan me hemen.
Eta nabarituko mota hartu duten I ikasgaia hau bihotzean oraintxe.
Izan ere, bera zela I estrofa berriro kantatzen eta
behin eta berriro, abestiaren koru-lerro berean, sentitu
gustatzen zergatik ez da funtzio bat sartu faktorea dela I?
Eta, hain zuzen ere, motibazio bat izan behar du.
Izan ere, munduko beste norbaitek agian nahi gain
kubo funtzio bat erabili
arrazoi on bat zerbait faktore eta zure idazteko
Ohiko funtzio propioa
ez da bakarrik egiten, zure programa zatia kode
Zentzu kontzeptuala, mota horretako nahi emateko
izena - kasu honetan, abesbatzak bezala -
ondoren, era berean, idazteko bat beste funtzio gisa.
Ez duzu dena idazteko nagusia besterik ez bada
sentitzen garbiagoa bereizteko eta izen bat eman.
>> Beraz, hemen, kasu honetan, nabarituko iruzkin bat que tengo atop
funtzio hori bakarrik abesten
zenbakiak zehaztu botila.
Ohartu hemen ez ez dut behar horiek deitu
gauzak sarrera eta irteera.
Izan ere, denbora honetan deitzen dut nire sarrerako b botila.
Eta hemen nabarituko, void iradokitzen du zer?
Koru That -
IKUSLEEN: Ez itzultzeko.
DAVID J. MALAN: Ez du balio bat itzultzeko.
Eta, hain zuzen ere, funtzioak ez dute balio itzultzeko.
Bakarrik egin ahal izango dute zerbait.
Zer deitzen dira albo-ondorioak izan daitezke, hau
Kasu pantailan inprimatzea sorta oso bat besterik ez da.
Beraz, nabarituko kodea hau hemen, besterik ez literalki naiz lapurtu
aurreko adibidea.
Ezberdintasun bakarra ordez i nire gisa erabiliz
aldakorra, gaur egun dut b nire aldagai gisa erabiliz.
Beraz, b behera hemen daukat, b daukat behera hemen behar dut, b
1 behera hemen ken.
Baina kodea bera da.
Baina besterik ez duzu orain hori nola erabili ahal izango dugu, let me joan
Animatu eta benetan aldatu bat izan behar begizta.
(i; i> n int i = n -).
>> Beraz, batetik, gure Adibidez aurreko dut lapurtu.
Aurretik, line 37 hasi dut
gogaikarriak abesti hau abestu.
Baina, horren ordez, besterik ez dut orain deitu i koru.
Eginda.
Begizta hau iterazio bakoitzean Beraz, gaur egun, beste hau deitzen diot nik
funtzioa, abesbatzak, idatzi gertatu.
Ez zen beste norbaitek Duela urte idatzi zuen.
Baina abesbatzak, bestalde, erabiltzen printf inprimatu
lau lerro horiek.
Baina nago I koru batean behin eta berriro deituz
loop esan nahi du, amaieran, joan naiz duten I
abesti zehatza berean, nik egin dudan bezala, beraz, orain arte.
Beraz, azken finean, orain atzera begiratzen badut nire kodea at, nahiz eta
funtzionalki baliokideak, hau da nabarituko dela
are gehiago irakurgarria hasita.
Nik ez dut zehatz-mehatz daki nola GetInt
inplementatu.
Egia, ez dakit nola koru inplementatu da.
Baina ez dit axola.
Ez zait, gaur egun dudalako ordenatzeko, gizaki baten gisa, irakurri
goitik behera hau.
Eta funtzioak zer egiten duten arabera duelako izeneko
, nire kodea gero eta irakurgarria da.
Eta gure programak lortu askoz konplexuagoa
seihilekoan amaieran, idatziz behar duzu lerro ehunka
PHP eta JavaScript eta atsegin bezalako hizkuntza kodea
dela, beraz, askoz errazagoa da pista baino mantentzeko aurkituko duzu
zer egin duzun.
Eta abiarazten duzunean, lagunekin edo laguntzaile
bazkide edo lankideei, askoz gehiago idatzi ahal izango duzu
oinarrizko horiek erabili nahi hasita programa masiboa
Uraetasaneamendua.
>> Beraz, esan zuen, zergatik ez da egun bat deitu dugu?
Eta zuk ikusiko dugu asteazkenean.
[Txaloak]