[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