[Musika jotzen] DAVID J. MALAN: Ondo da, hau da CS50. Eta aste honetan bat da. Beraz, azken aldiz gogoratzen aste zero ere, pentsamendu konputazionala bideratuta dugu. Eta hori tik trantsizioa dugu Scratch, programazio grafikoa hizkuntza, gure lagunen MIT Media Lab at. Eta Scratch, zuen esploratu dugu funtzio bezala ideia, eta baldintza, eta loops, eta aldagaiak, eta are gertaerak, eta hariak, eta gehiago. Eta gaur egun, goaz ideia horiek erabiltzen jarraitzeko, eta benetan haiek hartzeko ematen, baina itzuli C. Orain bezala ezagutzen den beste hizkuntza bat, C hizkuntza gehiago tradizional bat da. maila txikiagoa da hizkuntza, izango bada. It hutsa textual da. Eta beraz, hasiera batean, da baizik críptica itxura joan Nik inoiz aurretik programatutako bada. izan goaz erdi-puntu bikoitza, eta parentesi, eta kizkur giltza, eta gehiago. Baina konturatzen, nahiz sintaxia da, nahiz pixka bat ezagutzen begiratu buruz nahi duzun gehienak, iraganean ikusi. Eta saiatu ideia bat ikusteko direla, hain zuzen ere, familiar, Hemen aste bat zer duelako hasiko dugu egin da alderatu, Hasieran, versus C. Urratu Beraz, adibidez, gogoratzen noiz dugun inplementatu gure programak lehenengoa Azken aldiz, hori begiratu bloke bat izan genuen Halako denean antzeko zerbait apur bat berdea Ez klik, eta ondoren izan genuen bat bere azpian puzzle pieza edo gehiago, Kasu honetan, esan, kaixo mundua. Beraz, hain zuzen ere, Scratch, nuenean sakatu bandera berdea nire programa exekutatu, beraz, Esateko, horiek dira hori emateko exekutatu blokeak, edo run. Eta, zehazki, Scratch esan, kaixo, mundua. Orain, I zehaztu izan da Hitz desberdinen hemen. Baina ikusi dugu, hain zuzen ere, beste hainbat blocks-- horiek eta, hain zuzen ere, C funtzio asko izan daiteke parametrized edo pertsonalizatu hainbat gauza egin. Izan ere, C dugu bada Nahi, bihurtzeko orain, Scratch programa hau beste hizkuntza horrek, bat idatzi goaz txiki honen antzeko zerbait. Ematen, ez da Ohituta batzuk sintaxia han ziurrenik, int, eta parentesi, eta hutsunea. Baina are printf egiten duzun arren Uste da, besterik gabe, izango litzateke inprimatu. Baina inprimatu esan formateatuta, laster ikusi dugu. Hau literalki egingo inprimatu pantailaren edozein izanda Parentesi horiek barruan dago, eta horrek jakina, kasu honetan, kaixo mundua da. Baina beste batzuk nabarituko duzu sintaxia, komatxo batzuk, amaieran parentesi hori, puntu eta koma eta antzekoak. Beraz, ez coaut pixka bat da, beraz, hitz egiteko, bai kognitiboki eta sintaktikoki, ari gara joan luze baino lehen gogoratu behar da. Baina konturatzen praktika, hau egin beharko duzu at hasiko da. Izan ere, dezagun bat duten on funtzioaren kasu honetan specifically--, esan kaixo mundua. Beraz, esan funtzioa da. Kaixo mundua bere parametroa da, edo argumentua, bere pertsonalizazio. Eta C baliokidea besterik ez da Lerro honetan izango da hemen, non printf baliokidea da, esan, bikoitza kotizatzen katea, kaixo Mundu baliokidea da, noski, Zer da zuri-koadroan ez izateko. Eta backslash n, apur bat izan arren bitxi eta Scratch absenteak, Besterik gabe, efektua egingo dugu dute joan ordenagailu bat ere ikusi, nire Mac edo PC bat bezala, besterik mugitzen du Hurrengo lerroan kurtsorea. da kolpatzeko bezalakoa da Sartu teklatuan. Beraz, berriro ikusiko dugu, luze baino lehen. Baina lehen, dezagun honen begirada bat beste adibide loops kasuan ere. betiko begizta hau azken aldiz izan dugu, horrek puzzle pieza sorta bat izan zen duten zerbait egin literalki Kasu honetan forever--, esan, mundu kaixo, kaixo mundua, kaixo mundua, kaixo mundua. Beraz, infinitua begizta diseinua da. C, hau ezartzea nahi badugu Ideia bera, besterik gabe, agian dugu hori egin. Egia bitartean, printf kaixo world-- orain bitartean, besterik semantikoki, mota ekartzen ditu gogora egiteko ideia zerbait berriro, eta berriro, eta berriro, eta noiz arte? Beno, true-- abisuaren Egia da, besterik gabe, on edo bat. Eta egia da, jakina, beti egia. Beraz zentzugabeak mota da adierazpena besterik egia esateko. Baina, hain zuzen ere, hau da, nahita, Egia da, besterik gabe, beti egia delako, Egia da, besterik gabe dakar bitartean baino, apur bat zeharka bada, Hurrengo kode lerro hori horiek kizkur giltza artean besterik exekutatu behar da berriro, eta berriro, eta berriro, eta inoiz ez benetan gelditzeko. Baina ez baduzu nahi zure begizta, gelditzeko dugu azken aldian egin antzeko zerbait hau, errepikatu ondoren 50 aldiz, C Zer da gauza bera egin ahal izango dugu izeneko bat hitzarekin begizta for ez den bitartean, baina da. Eta gero, sintaxia berri batzuk ditugu hemen, int i funtzioak 0, 50 baino gutxiago i, i ++. Eta hori itzuli egingo dugu. Baina hori da, besterik gabe, nola genuke translate Scratch bloke multzoa C kode lerro multzo bat da. Bien bitartean, kontuan hartu aldagaiak. Eta, hain zuzen ere, ez dugu ikusi bat duela une bat. Eta Scratch kasuan ere, badugu izeneko i aldagai bat aldarrikatu nahi izan i osokoa izateagatik, besterik gabe, zenbaki bat, eta hura ezartzeko balio batzuk nahi dugu, laranja hau erabiliko genuke blokeatu hemen ezar i, 0. Eta gaur ikusiko dugu, eta haratago, bezala, azken astean, programatzaileek egiten ia beti hasteko zero hasita, benetan konbentzio. Baina, era berean, abisuaren delako Gure binary eztabaida, kopuru tipi ahal duzun edozein bit kopurua batekin adierazten besterik ez da 0 bera izango da. Eta, beraz, oro har dugu hasteko are hasieratzeko gure aldagaiak 0. Eta C gauza bera egin zuen, int esan goaz osokoa da, i besterik konbentzio. I aldagai hau deitu du ezer nahi dut, besterik ez bezala Scratch. Eta gero, funtzioak 0 lagapen besterik 0 balioa eskuinetik egindako eta jartzen aldagai sartu, edo biltegiratze edukiontzi han, ezker. Eta puntu dugun ikusiko gisa eta ikusi dugu already-- hauetan batzuk Bakarrik esan nahi du pentsamendu amaieran. Jarraitzeko beste zerbait egin lerroak jarraitzen du. Orain, zer adierazpen boolearrak buruz? Gogoratu Scratch, honela mintzatzen ziren Hori bai egia edo faltsua galdera, benetan, hori bai egia edo gezurra diren. Beraz Scratch kasuan ere, gerta dugu Galdera sinple bat eskatu honetan bezala, da i 50 baino gutxiago? Beraz, i, berriz, oso bat da. Agian erabiltzen ari gara Scratch programa batean segimendua egiteko puntuazio bat edo horrelako zerbait. Beraz, sintaxia hau hemen Scratch Bakarrik esan nahi du, ez da i 50 baino gutxiago? Beno, zorionez, zerbait da C. Eta itzulpenetan simple, hau besterik ez genuke esan i gutxiago 50 baino, ezagutzen gakoa erabiliz zure teklatua. Bien bitartean, nahi izanez gero esan zerbait gehiago general, bezala, ondo, y non bakoitza baino gutxiago x x eta y beraiek dira aldagai? Gauza bera egin ahal izango dugu C, hain luzea izan dugun bezala sortutako aldagai horiek dagoeneko. Eta ikusiko dugu nola luze baino ez da egin. Besterik ez nuke esan dugu xy baino gutxiago. Beraz hasita duzu ikusi antzekotasun batzuk. Eta egin duten Folks horiek Scratch ziren zalantzarik Oinarrizko ideia horietako batzuk inspiratuta. Eta mota honetako ikusiko duzu languages-- askotan sintaxia ez besterik Scratch, ez besterik C, baina Python, eta JavaScript, eta beste hizkuntzak oraindik. Dezagun kontuan eraikuntza beste C-tik, baldintza baten ideia, Zerbait baldintzatuan egiten. Zerbait egia bada, hori egin. beste zerbait egia bada, ez dagoela. programazioan sort da errepidea bidegurutze baten baliokidea. Agian bi norabideko bidegurutze bat da, hiru bide bidegurutze bat, edo gehiago. Eta Scratch, izan dugu ikusi honen antzeko zerbait. Beraz, hau handi bat da. Baina kontuan hartu erlatiboa logika sinplea. xy baino txikiagoa bada, orduan esan x txikiagoa da y baino, xy baino handiagoa da, bestela bada, gero esan xy baino handiagoa da. Eta gero, noski, bada Atzera uste Scratch behar duzu edo, besterik gabe, zure propioa giza intuizioa, bai, x ez da y baino handiagoa bada, eta x ez da y baino gutxiago, orduan noski x y berdina gertatu egingo da. Beraz, kasu honetan, habia arabera Scratch bloke horiek, hiru bat lortzen dugu bide bidegurutze errepidean ere? Bien bitartean, nahi badugu hori, dudarik gabe, ez C, simpler-- apur bat behintzat itxura behin sintaxia ohitzeko duzu. xy baino txikiagoa bada, printf xy baino gutxiago da. Bestela, xy baino handiagoa bada, printf xy baino handiagoa da. Bestela printf x berdinak y-- eta da, berriro, backslash horiek amaitzen besterik ildo berriak dutenentzat hala bada duzula ran benetan mota honetako programa besterik ez litzateke mugituko Kurtsorea azken finean, hurrengo pantailan line. Orain, bere aldetik Scratch beste izan Ezaugarri sofistikatuagoa, bakarrik horietako batzuk goaz Hasieran mugitu baino C. munduan den Eta horietako bat izan zen Scratch zerrenda bat deitzen. Eta hau izan zen berezi bat aldagai-mota hori esker hainbat gauza gordetzeko aukera atzera ere, atzera, atzera, atzera. C, ez du izan zerrendak, per se, baina zerbait gehiago dira, oro har, izeneko array, egingo dugu, nahiz itzuli geroago seihileko honetan Zerbait begira zerrenda edo benetan lotuta zerrenda bat deitzen. Baina orain hurbilena, alde C baliokidea guretzat da zerbait izango da izeneko array bat. Sorta bat besterik ez da, aldakorrak ahalbidetzen duen datu gordeko dituzu Atzera, atzera, atzera, atzera. Eta, hain zuzen ere, Scratch, iritsi nahi badugu array baten lehen elementu edo list-- bat eta ez dut deitu noa, konbentzio, argv, argumentu arabera bektorea, baina hori da luze baino lehen. lehenengo elementua at lortu nahi badut argv, Scratch munduan benetan egiten duzu normalean hasteko 1 hasita. Eta beraz, baliteke elementua 1 argv lortu dut. Hori da, MIT besterik nola inplementatu zerrendak nozioa. Baina C, noa gehiago besterik ez da, besterik gabe esan, argv, horrek berriro izena da nire list-- edo argi izan, array bat. Eta lehen nahi badut elementu, banoa kortxeteak erabiltzen den, eta zuk Agian ez askotan teklatu bat erabili. Baina 0 besterik esan nahi, get me lehena. Beraz, behin eta gisa denbora pasatzen, goaz ari dikotomia horiek ikusteko hasteko Scratch eta C artean, Horren bidez, Scratch bat erabiltzen du. 0 C dugu erabili hemen. Baina azkar duzu ikusi behin ulertzen hizkuntza bakoitzaren oinarriak, hori Gauza horiek guztiak gehiago lortzeko hasteko praktika eta praktika bidez ezagutzen. Hargatik, benetan ditzagun orain programa batean. Hemen gure C lehena izanen da source programak osatu kodea. Eta programa ari gara joan kontuan eskaini ko duten baliokidea da Scratch lehenago pieza bat. Beraz, hemen ere, zer da egin behar dugu dudarik gabe, errazena C programa Idazketa benetan zerbait egiten du. Orain, begiratu iragan beharko dugu, oraingoz, ha besteak beste, io.h estandarra, eta angelu horiek Parentesi, eta int, eta void, eta kizkur giltza, eta antzekoak. Eta utzi besterik arreta-en zer, gutxienez, intuizioa, out salto egin dezakezu dagoeneko. Izan ere, nagusia, ez dut nahitaez jakin hori zer den, baina Scratch bezala askoz izan denean berdea Ez klik puzzle pieza, beraz, ez du C programazio hizkuntza gisa Kode zati nagusi bat izan dela lehenetsi gisa exekutatu. Eta, hain zuzen ere, , literalki deitu behar nagusiak joan. Beraz nagusia funtzio bat da. Eta funtzio berezi bat existitzen dela da C programa bat exekutatzen duzun, nagusia lortzen exekutatu dela lehenetsia. Scratch munduan, ohi zen denean berde Ez bertan klik got lehenetsi bezala. Bien bitartean, ikusi dugu hau baino lehen, printf edo inprimatu formateatutako, hori da funtzio bat dator izango da C, beste mordo bat osoa batera, denbora eta noizean borondate hori berriro, ordena zehazki egin Bere izenak dioen bezala, inprimatu zerbait. Zer inprimatu nahi dugu? Beno, hori ikusiko dugu karaktere erantsiz arabera kaixo mundua, horiek bezala, backslash Komatxoen n, printf zehazki esan ahal dugu zer den pantailan inprimatu. Baina ahal izateko egin Hori, zoritxarrez dugu behar dela zerbait hartu Dagoeneko Gurekin gizakiak críptica, baina, gutxienez, zertxobait readable-- da zorrotz artean, io.h estandarra, int, nagusia, hutsunea, printf, magiko guztiak enkantamenduak dugu besterik pantailan ikusi. Baina, egia esan behar dugu go gehiago urrutira oraindik. Lehenengo kodea itzuli behar dugu idatzi dugun makina kodea. Eta astetik gogoratzen makinak, gutxienez direnak hemen ezagutzen dugun, Egunaren amaieran bakarrik zeroen eta ulertzeko. Eta nire Jainkoa, izan badugu hauek idazteko zeroen eta benetan programara, Oso, oso azkar litzateke hartu fun ezer daudelarik. Baina bihurtzen da, azken astean, hori zero eta bai eredu horiek besterik ez dute esanahi berezia. Zenbait egoeratan, zenbakiak esan nahi dute agian. Ondorioz, agian esan nahi dute letrak, edo koloreak, edo edozein zenbaki beste abstrakzioak han gainean. Baina bezain Ordenagailuak CPU bat, Central Processing Unit, edo zure ordenagailuaren barruan garunak. Ohi da Intel barruan, hori delako enpresen handienetako bat duten PUZ egiten ordenagailuak. Beno, Intel PUZ eta beste batzuk besterik izan aldez aurretik erabaki zeroen ereduak zenbait eta direnak gauza zehatz esan nahi izango du. Certain zeroen eta bai eredu izango du esan, inprimatu hau pantailara, edo bi zenbaki horiek gehitzeko, edo kenketak bi zenbaki horiek, edo mugitzeko datuak pieza honetatik nire ordenagailuaren memoria, hemen baino gehiago, edo edozein beste maila oso altua kopurua, baina, azken finean, erabilgarria, eragiketak. Baina, zorionez, gizakiak ez dira joan Xehetasun maila honetan jakin behar da. Izan ere, besterik ez gustatzen azken aldiz, non dugu abstrakziogune berriro, eta berriro, eta berriro, maila oso altua izan zen eraikina zeroen eta bai bezalako primitiboak maila handiagoa kontzeptuak den zenbakiak eta letrak bezala, eta koloreak, eta gehiago, beraz, ezin dugu programatzaile gisa sorbaldak nabarmentzen beste batzuek, aldiz gurekin etorri aurretik eta software beste hori erabili pertsona izan us-- aurretik idatzia hots programak izeneko konpiladoreak. C hizkuntza bat da hori normalean konpilatu da, horrek esan nahi du bihurtutako iturburu kodea makina kodea. Hain zuzen ere, zer esan nahi du da duzula got bada zure iturria kodea, zuk zeuk idatzi dugu, ahalik eta azkarren besterik pantailan une batean izango da, eta bihurtu nahi duzu makina, azken finean, kode zero eta horiek duten bakarrik zure Mac edo zure PC understands-- lortu duzun lehen bat elikatzeko iturburu kodea duten bezala in berezi batera sarrera Programa konpiladore bat deitu, zein irteera dugu Ikusiko makina kodea da. Eta, hain zuzen ere, azken aldiz hitz egin dugu buruz, benetan, egunaren amaieran, arazoa konpontzeko. Lortu duzu Sarrerek. Eta lortu duzun irteerak. Eta zuk nolabaiteko lortu duzu erdian algoritmoa. Algoritmoak ziur egon software ezarri, ikusi dugun bezala Pseudocode azken astean eta gisa benetako kodea dituzten ikusi dugu aste honetan. Eta beraz, konpiladore bat benetan besterik barruan algoritmo multzo bat du haren berri hori nola bihurtzeko keywords bereziak, nagusia, eta printf bezala, eta beste batzuk, besterik ez dugu zeroen patroiak zen ikusi eta direnak Intel barruan eta beste PUZ benetan ulertzen. Beraz, nola egin daiteke hori? Nora egin konpiladore bat lortu dugu? Gurekin gehienak hemen Mac edo PC bat. Eta Mac OS exekutatzen ari zaren, edo Windows, Linux edo, edo Solaris, edo beste edozein zenbaki sistema eragile. Eta, hain zuzen ere, ezin izan dugu go web gainean eta deskargatu konpilatzailea zure Mac edo PCrako zure sistema eragilearen da. Baina dugun guztietan izango litzateke orrialde ezberdinetan, nolabait esateko. zertxobait ginen konfigurazio desberdinak. Eta gauzak ez litzateke lan bera. Eta, hain zuzen ere, egun hauetan Gutako askok ez erabiltzea gure eramangarriak bakarrik exekutatzen software. Horren ordez, zerbait erabili dugu nabigatzaile bat bezala erabiltzen bideratzeko aukera ematen digu web-oinarritutako hodeia aplikazio. Eta geroago seihileko honetan, zehazki egingo dugu. aplikazio idatziko dugu edo software, kode ez erabiliz C, baina Python bezalako beste hizkuntzetan eta Javascript hodeia exekutatzen dira. Eta geure hori egin, dugu seihilekoan benetan erabiliko da hodeian oinarritutako ingurumena CS50 IDE bezala ezagutzen. Honek web-oinarritutako programazio bat da ingurumena, edo garapen integratua ingurumena, IDE, hori da batzuen gainean eraiki Cloud 9 izeneko iturburu irekiko software. Eta pedagogiko batzuk egin ditugu da simplifications beraz, zenbait ezaugarri ezkutatzeko ez dugula behar lehen asteetan, horren ondoren, ahal duzun agerian horiek eta gehien ezer ingurumenaren nahi izatea. Eta ematen du, ere, aurrez instalatu software jakin. CS50 deiturikoak bat bezala gauzak liburutegia, eta laster ikusiko dugu eskaintzen digu C batzuk funtzionalitate batzuk. Beraz bazoaz izateko, azken finean, CS50.io, eskatuko zaizu saioa hasi ahal izateko, eta behin egin behar duzu, eta sortu free kontu bat, bat sartzeko gai izango duzu ingurune hori nahiko itxura hau. Orain, hau lehenetsi moduan. Dena da polita eta pantailan distiratsua. Gutako askok ohitura CS50 zati hori lantzen ari Nahiko berandu gauean. Eta beraz, batzuk agian nahiago piztu, gau modua sartu, beraz, hitz egiten. Baina, azken finean, zertan ari zaren CS50 IDE barruan ikusten joan Hiru areas-- desberdin da Ezkerreko non eremu bat Zure fitxategiak dira izango joan hodei, goiko eskuineko eremu bat non zure kodea ez da editagarria izango da. ireki ahal izango duzu edozein programa banakako fitxetan seihileko honetan barrutik idatzi duzula hori goiko eskuineko izkinan. Eta gero gehien arcanely, eta oraindik ez zitekeen, da at gauza hori izango da beheko terminal-leiho bat bezala ezagutzen. Hau eskola zaharra da Command Line Interface, edo CLI, aukera ematen duen Exekutatu agindu duzu Kasu honetan, ordenagailu gainean, cloud-- ordenagailua zure kodea konpilatzen bezalako gauzak egin iturburu-kodea makina kodea, Zure programak exekutatu, edo hasteko zure web zerbitzaria, edo zure datu-basean sartzeko, eta beste edozein teknika Hori baino askoz lehenago erabili hasiko dugu. Baina iritsi, ez gara benetan dute joan online joan eta hasi jolasten. Eta hori egin, dezagun lehen hasteko nagusia tinkering, eta programa baten zati nagusiak idatzi. Eta, erabil dezagun funtzio hori printf, lehenago erabili dugu, besterik gabe, zerbait esan nahi. Beraz, hemen nago jada CS50 IDE baten barruan. Aldez aurretik ez dut oraindik sartu. Eta erabateko proiektatuko dut leihoan. Eta, beraz, azken finean, zuk too datozen arazoak ere antzeko urratsak jarraitu beharko duten online dokumentazioa eskaintzen dizu. Beraz, ez duzu kezkatu behin gutxi urrats tekniko xurgatzeko Hemen egiten dut gaur. Baina hau bezalako pantaila bat lortuko duzu. gauean moduan gertatuko dut. Eta guztia alaitzeko dezakezu Gau modua desgaituz eman. Eta bukaeran Egun, ikusten ari zaren joan Hiru horiek fitxategia areas-- ezkerreko nabigatzailea, kodea tabs goiko eman, eta behealdean terminal leihoa. Dezagun aurrera eta nire lehen programa idatzi. preemptively joan Fitxategia noa, Save, eta nire fitxategia hello.c gisa gorde. Izan ere, konbentzio, edozein programa dugu idazketaren hori C hizkuntzan idatzita Zerbait izendatu behar dot c, konbentzio. Beraz, ez dut hura izendatzeko hello.c joan, zeren Nahi dut kaixo esan munduari. Orain ez dut nahi handiagotu joan out eta sakatu Gorde. Eta guztia hemen daukat orain fitxa bat da horietan kodea idazten hasi daiteke. Hau ez da konpilatu joan. Honek ez du ezer esan. Eta bihurtu dut beraz, nahiz hau zeroen eta bai, PUZaren da ez dute joan Ideia zer da inguruan gertatzen. Baina idatzi nuen lerro Horixe etortzeko C-ren conventions-- C izakia sortu, Berriro, hau sintaxia hizkuntza sailkatu bezala hau, printf kaixo world-- eta Dut Ahaztuak eroso hau denboran zehar egiten. Beraz, ez dut uste egin nuen akats tipografikoak edozein. Baina, beti, lehen aldiz egiten duzu, izango duzu. Eta zer egin dezaket naiz agian oso ondo ez duzu lan lehen aldiz. Eta hori da, primeran OK, oraintxe delako duzu baliteke besterik ikusi berritasun asko, baina denboran zehar behin ezagutzen hasteko Ingurune honek, eta hizkuntza honetan, eta beste batzuk, Gauzak hasteko ikusiko duzu, bai zuzena edo okerra. Eta hau da, zer irakaskuntza bekadun eta ikastaroa laguntzaileak zaitez beraz, denboran zehar ona, da akatsak edo bugs zure kodea spotting. Baina aldarrikatzen duten I ez ez dago Kode honetan bugs. Beraz, gaur egun nahi dut programa hau exekutatu. Orain nire Mac edo PC kabuz, ados clicking ikono bikoitza duen ohitura denean programa batzuk exekutatu nahi dut. Baina hori ez da eredu hemen. ingurune honetan, eta horrek CS50 IDE da ere. eragile bat erabiltzen ari gara Linux izeneko sistema. Linux beste gogorarazten da sistema eragilea, oro har, ezagutzen Unix bezala. Eta Linux da bereziki ezaguna a Command Line Ingurumen, CLI izatea. Orain, partida bat erabiltzen ari gara Linux zapore Ubuntu izeneko. Eta Ubuntu besterik ez da, zenbait Linux bertsio. Baina Linux horiek egun hauetan egin benetan Erabiltzaile interfaze grafiko etortzen. Eta bat gertatuko dugu erabili hemen web-oinarritutako da. Beraz, hau, nahiz eta bat begiratu dezake zerbait desberdina gutxi baliteke zuk zeuk ikusi edo iraganean exekutatu. Beraz, aurrera noa joan orain eta egin honako hau. Fitxategi hau hello.c gisa gordeko dut. Aurrera joan noa eta mota clanghello.c Beraz Clang C hizkuntzarentzat konpiladore bat da. It aurrez instalatutako CS50 IDE ere. Eta erabat dezakezu deskargatu eta instalatu hau zure Mac edo PC. Baina, berriro ere, ez duzu guztia dute pre-konfigurazio zuretzat egin. Beraz, oraingoz, besterik ez naiz clanghello.c exekutatu. Eta orain konturatu sintaxia hau hemen izango da azkenean konturatzen besterik esan nago bat ere I karpeta edo direktorio Laneko deitu. dolarraren ikurra konbentzio da esanahia bilatzeko, idatzi zure komandoak hemen. zer ari gonbit bat deitzen da, besterik gabe, konbentzio dolarraren ikurra da. Eta aurrera joan nintzen orain bada eta sakatu Sartu, ezer gertatu dela dirudi. Baina hori benetan gauza ona da. Gutxiago hori gertatzen zure pantaila, litekeena da Zure kodea da zuzena izan, sintaktikoki gutxienez. Beraz, hau exekutatu nahi badut programa, zer egin dezaket? Beno, bihurtzen da hori default name konbentzio programak ez duzunean bat zehaztu izena zure programa da besterik a.out. Eta sintaxia hau ere bai, egingo duzu Aspaldi aurretik ezagutzen. Dot barra besterik esan, beno, CS50 IDE, exekutatu a.out programa bat nire uneko direktorioa barruan. dot That uneko direktorioa esan nahi. Eta zer beste hainbat sekuentziak ikusiko dugu karaktere luze baino lehen esan nahi du. Beraz, hemen goaz, Sartu, kaixo mundua. Eta nabarituko duzu, zer gertatu? Ez bakarrik ez kaixo mundua inprimatu. mugitu, halaber, Hurrengo lerroan kurtsorea. Eta zergatik zen hori? Zein izan kodea duten lehenago idatzi dugu ziurtatu kurtsorea litzateke hurrengo lerroan joango? Funny bati buruz gauza ordenagailua da nik bakarrik joan literalki egin zer esan nahi duzun egin. Beraz, esango dizu kaixo printf bada, koma, espazio, mundu, aurrekontua itxi, , literalki bakarrik joan karaktere horiek inprimatu. Baina pertsonaia berezi hau izan nuen at the end, oroitzapen, backslash n. Eta hori da, bermatu pertsonaia hori joan hurrengo pantailan line. Izan ere, let me joan eta egiteko. Dezagun aurrera eta hau ezabatu. Orain, nabarituko dela Nire pantailaren goialdean ez dago Apur bat argi gorria fitxa adieraziz, beno, ez ditudan zure fitxategia gorde. Beraz, aurrera noa kontrol batera joan S edo komando S, gorde fitxategia. Orain momentu berde bat goes-- joan. Eta orain, itzuli da besterik itxi ikono bat egotea. orain I exekutatu bada clanghello.c berriro, Sartu, dot barra, a.out, Sartu, Ikusiko duzu, oraindik ere lan egin zuen. Baina dudarik gabe, apur buggy bat. Oraintxe bertan, nire prompt-- laneko area, eta gero dolarraren ikurra duten, eta, ondoren, nire benetako prompt-- guztiak lerro berdinean dago. Beraz, hau zalantzarik bug estetiko bat, ez da benetan, nahiz eta logikoa akatsen bat. Beraz, ez dut zer egin besterik ez dut desegin egingo da. a.out berrabiarazi noa. Ohartu gehitu dut newline pertsonaia back. fitxategia gorde dut. Beraz, ez dut a.out berrabiarazi joan, -Nik dammit, akatsen bat, akatsen bat akats zentzua. Beraz erroreen da, nahiz eta hori izan arren backslash gehitu dut n dago, re-gordetako, re-ran programa, portaera bera izan zen. Zer dela eta? Urrats bat dut falta, ezta? gakoa urrats hori lehenago zen dituzula zaie aldatzen duzunean zure iturburu-kodea, bihurtzen da exekutatu Konpiladorea bidez Berriro beraz makina kode berria lortu duzu. Eta makina-kodea, zero eta bai, dira ia berdina izango da, baina Ez primeran beraz, behar dugulako, jakina, lerro berri hori. Beraz, hau konpondu ahal izateko, behar noa clanghello.c saioan, sartu, dot barra, a.out. Eta orain, kaixo mundua itzuli da non espero dut nahi izan da. Beraz, hau da, fina eta ona. Baina a.out bat izen nahiko ergela bat da programa, izan ere gertatzen da, nahiz eta, arrazoi historiko, etorri lehenespenez muntaia irteerak zentzua. Baina utzi aurrera me hemen eta hori egin ezberdinean. Nire kaixo mundu programa nahi dut benetan kasu deitzen kaixo. Beraz, bada ikono bat balitz nire desktop, ez litzateke izango a.out da. It deitu beharko litzateke kaixo. Beraz, hori egin ahal izateko, bihurtzen da Clang hori, programa askok bezala, komando lerroko argumentuak onartzen, edo banderak, edo switches, hori besterik ez eragiteko bere jokabidea. Zehazki, Clang etenaren o onartzen Ez, horrek, ondoren, bigarren hitza hartzen. Kasu honetan, arbitrarioki noa, baina zentzuz, deitu kaixo. Baina, ezin dut ezer deitzeko , Nahi dut a.out, salbu baizik puntua gain izango litzateke. Eta gero, besterik zehaztu izenean Fitxategiaren nahi dut konpilatu. Beraz, orain are hasieran arren komandoa Oraindik dut Clang, komandoa amaieran Oraindik dut zure fitxategi-izenak, Orain ez daukat komando-lerro hauek argudioak, banderak horiek esaten, oh, bide batez, irteera-o, fitxategi batean izeneko kaixo, ez a.out lehenetsia. Beraz, I hit bada Sartu orain, ezer gertatu dela dirudi. Eta, hala ere, gaur egun ez dot barrarik ezin dut kaixo. Beraz, programa bera da. zero eta zeintzuk dira Egunaren amaieran, berdin-berdina. Oraindik, baina bi zituzten ezberdinak files-- a.out, bertan lehenengo bertsioa da eta besterik foolishly izeneko, eta orain kaixo, hau da, askoz bat gehiago sinesgarria programa baten izena. Baina, egia esanda, inoiz ez naiz hau gogoratzeko berriro joan, eta berriro, eta berriro. Eta, egia esan, idatzi dugu programak zailagoa, komandoak Oraindik den idatzi behar joan are get joan zailagoa oraindik. Eta beraz, ez kezkatu. Bihurtzen da, gizakiak aurretik Konturatu digu gehiegi zehazki, arazo hau bera izan. Beraiek ere ez zuen gozatu ahal izatea idatzi nahiko luzea, urrutira komandoak, utzi bakarrik haiek gogoratzeko. Eta beraz, gizakiak gure aurrean egin dute horregatik da errazagoa bestelako programak Zure software biltzeko. Eta, hain zuzen ere, bat, hala nola, Programa Make deritzo. Beraz, aurrera noa eta hau egin dut. guztiak desegin noa I besterik honela egin. Dezagun mota LS me. Eta nabarituko duzu hiru gauza a.out, eta izar bat, kaixo eta izar bat, eta hello.c. Zorionez, hau egin beharko lukete izan apur bat intuitiboa, heinean lehenago ez zegoen Laneko area honetan ezer. Ez zen ezer ez izan nuen sortu class hasi ginen arte. Eta hello.c sortu dut. ondoren, konpilatu dut, eta izeneko a.out. Eta, ondoren, konpilatu dut berriro zertxobait ezberdinean eta deitzen kaixo. Beraz, hiru fitxategi daukat direktorioa honetan, Laneko izeneko karpeta honetan. Orain, hori ikusi ahal izango dut baita urrutiratzeko dut benetan bada. Handiagotzeko dut bada hemen eta Goiko eskuineko eskua hori begiratu Korner, agindu ezker eskuko zure pantailaren eskuineko aldean da beti erakutsiko joan Zer da zure kontu ere, zer da CS50 IDE baten barruan. Eta ez da hiru fitxategiak ez. Beraz a.out kentzeko eta kaixo nahi dut. Eta baitezakezu imajinatu senez, zuk kontrol klik ordenatzeko edo eskuin-klikatu honetan. Eta menu txiki honetan azalduko da. fitxategia deskargatu ahal izango duzu, exekutatu da, aurreikusi da, freskatu, berrizendatu edo ez zer. Eta besterik ezin dut ezabatu, eta irteteko litzateke. Baina egin dezagun gauza komando batekin utzi oraingoz line, eta, beraz, eroso lortu honekin, eta honako hau. Aurrera joan eta kendu noa literalki rma.out idatziz a.out. Bihurtzen da, komandoa kendu edo zerbait ezabatzea, da, ez kendu edo ezabatu. da gehiago succinctly RM, besterik gabe, gorde Sartu hit duzu zanpatze batzuk, eta. Orain ari gara zertxobait izango da cryptically kendu erregularra fitxategi a.out. Egia esan, ez dakit zer bat irregular fitxategia oraindik izango litzateke. Baina nahi ez dut hura kentzeko. Beraz, ez dut y idatzi baietz joan. Edo idatzi nezakeen, eta sakatu Sartu. Eta, berriro ere, ezer gutxi gertatzen. Baina hori da, oro har, gauza ona da. LS idazten dut denbora honetan bada, zer ikusi behar dut? Zorionez, besterik kaixo eta hello.c. Orain, bat alde batera utzita, egingo duzu nabarituko izar hau, Izartxo, nire programak amaieran da. Eta ari dira, halaber erakutsiz berdean. Hori besterik CS50 IDE en bide da duzu cluing Izan sartu hori ez da iturri-kodea. Hori exekutagarria da, runnable bat Programa hori benetan dezakezu exekutatu dot barra egiten, eta orduan izen da. Orain, utzi aurrera me eta kendu hau, rm kaixo, Sartu, kendu erregularra artxibatzen kaixo, bai. Eta orain LS idatzi dut, hello.c, hemen gara berriro. Saiatu ez ezabatu zure benetako iturburua. daude ezaugarri Nahiz CS50 IDE non txertatua Zure berrikusketa historian zehar joan ahal eta denboran atzeratzeko baduzu ustekabean Zerbait ezabatzeko, egin izan mindful bai edo ez Gonbit hauek per bezala, zer benetan egin nahi duzu. Eta joan nintzen goian bazara ezkerreko izkinan hemen, Geratzen guztiak hello.c da. Beraz, ez da sortak beste komando duzula daiteke Linux munduan exekutatu, horietako bat da, berriz ere, Egin. Eta ari gara Egin joan Nire programa orain honela. Horren ordez clang egiteko, ordez clang-o egiteko, Noa, besterik gabe, literalki idatzi, kaixo. Eta orain konturatzen, ni naiz Ez hello.c idazten. kaixo naiz idazten. Eta programa hau Make CS50 IDE, eta gehiago dator Oro har, Linux-ekin, programa bat da hori da Kaixo izeneko programa bat egin nahi du. Eta hori da, bere gain hartu behar konbentzio doa, Programa hau bada egin ahal izango da, Honez iturburu batetik egingo dira kodea fitxategia dot c honela bukatu, hello.c. Beraz, I hit bada Sartu orain, oharra komandoa erabiltzen denean exekutatu Benetan are luzeagoa lehen baino lehen. Eta hori izan dugulako aurrez CS50 IDE izan hori eraiki osagarriak ezaugarri batzuk ez dugu behar oraindik, baina laster izango. Baina funtsezko gauza da konturatzen da orain Kaixo programa bat daukat. Mota LS bada berriro, I kaixo programa bat. Eta I exekutatu ahal dituzten dot barra a.out, ez, honen puntu osoa ez duelako Ariketa dot barra kaixo zen. Eta orain nire kaixo mundu programa daukat. Beraz, aurrera, ia beti besterik ez gara, gure programak dira bildu behar Komando Make erabiliz. Eta gero horiek exekutatu by goaz dot barra, eta programaren izena. Baina konturatzen zer egin da egiten duzu, ez da berez ez da konpiladore bat. besterik erosotasuna programa bat da badakiela konpiladore bat nola aktibatu beraz exekutatu behar duzu zeure burua, erabili ahal izango duten. Zer beste komandoak existitzen Linux, eta, aldi berean, CS50 IDE batean? Laster ikusiko dugu ez dagoela da bat CD komandoa, aldaketa direktorioa. Horrek aukera ematen die barruan Zure komando-interfazeak aurrera egiteko, eta atzera, eta ireki karpeta desberdinetan zure sagua erabili gabe. LS ikusi genuen, eta bertan zerrenda nabarmentzen Uneko direktorioko fitxategiak. Egin Dir, ahal duzun Ziurrenik hasteko infer zer esan nahi horiek da gaur egun direktorioa dadin, karpeta bat sortu nahi baduzu. remove for RM, RM Dir for kendu, direktorioa eta horiek, berriro, dira komando lerroan zer baliokide ezin CS50 IDE egin zure saguaren. Baina laster aurkituko dituzu hori batzuetan besterik ez da azkarrago asko egin teklatua duten gauzak, eta, azken finean, asko ahaltsuagoa. Baina zaila da argudiatu ezer orain arte egiten ari dira da guztiak indartsu hori, betiere guztiak dugu, hau da esaten ditudan, kaixo mundua. Eta, hain zuzen ere, hardcoded dut hitz kaixo mundua nire programa sartu. Ez dago dinamismoa ez da oraindik. Scratch magnitude ordena bat izan zen gehiago interesgarri azken astean. Eta orain gaitezen han. Ikus dezagun pauso bat funtzio hauetako batzuk modu. Beraz, ez bakarrik ez printf etortzen C, eta beste funtzio sortak horietako batzuk ikusiko ditugu, denboran zehar, ez du egiteko erraza hori guztia da eskuinetik egindako erabiltzailearen sarrera lortzeko atea. Izan ere, ahultasun bat C bezalako hizkuntza, eta are Java eta oraindik beste batzuk, da ez dela erraza da, besterik gabe, gauza bezala egiteko erabiltzaileek, edo kateak, hitzetatik osokoak, eta esaldiak, utzi bezalako gauzak bakarrik puntu balio edo zenbaki errealak flotatzen hamarren, eta benetan dituzten zenbakiak luze, laster ikusi dugu. Beraz, funtzio zerrenda honetan hemen, horiek beste Scratch puzzle piezak bezala dira dugun CS50 aurrez instalatuta IDE dugu aste batzuk erabili ahal izango duten ordenatzen prestakuntza gurpilak, eta gisa azkenean hartu zituen txartelak, eta begiratu kanpaia, agian, at azpian gauza horiek nola burutzen dira. Baina hori egin ahal izateko, dezagun benetan programa bat idatzi. Dezagun aurrera me orain. Eta ez dut berria sortu nahi dut artxibatzen plus txiki honetan klik eginda, eta File New klik eginez. hurrengo hau gorde noa bat bezala, esan dezagun, string.c, kateak jolastu nahi dudalako. Eta C Kate besterik ez da karaktere-sekuentzia bat. Beraz, orain goazen aurrera eta honako hau. Besteak beste, estandarra IO.h-- eta bihurtzen da IO estandarra, IO besterik sarrera eta irteera esan nahi du. Beraz, izarrekin bihurtzen da Lerro hau hemen da zer hau da, aldameneko gurekin printf erabili. Printf, jakina, irteera. Beraz, ordena printf erabili ere, hura bihurtzen Kode-lerro hau eduki behar duzu Zure fitxategia goialdean. Eta itzuli dugu zer esan nahi du benetan luze baino lehen. Bihurtzen da ere Bat C programa idatzi nuen, Nik lortu dut hasteko dituzten kodea duten itxura. Eta nabarituko duzu CS50 IDE, eta beste garapen integratua Gustatu inguruneak, dira onenak bezala saiatzeko joan zure pentsamendu bukatzeko dute. Izan ere, une bat duela nintzen desegin bada zer egin dut, sakatu dut. ondoren, hit I kizkur irekia giltza, sakatu Sartu berriro. Eta nire pentsamendu amaitu da. Niri eman linea berri bat, koska ez gutxiago polita estilistiko arrazoiengatik ikusiko dugu. Eta gero, automatikoki eman zidan kizkur giltza, nire pentsamendu amaitzeko. Orain, ez da beti egiten du asmatzen zer egin nahi duzu. Baina, neurri handi batean, egiten du gorde duzun zanpatze batzuk. Beraz, une bat lehenago, programa honetan ran dugu kaixo, mundua, eta, ondoren, konpilatu da, eta gero ran. Baina ez dinamismoa ez da hemen. Zer nahi ote dugu zerbait desberdina egin? Beno, zer nahi izan dut behar bada Erabiltzaile kate bat lortzeko? puzzle pieza bat erabili noa izeneko zehazki -bere kate lortu. Turns C ere ez duzunean nahi duzun hori sarrera emateko puzzle pieza bat, edo gehiago funtzio bat bezala, duzu literalki besterik ez parentesi irekia, itxi parentesia. Beraz, nahiz eta gisa ez dago zuri kutxa ez den idazten. esan blokea aurretik Zuri-kaxa txiki bat izan. Ez dugu zuri kutxa hori orain. Baina lortu katea deitu nuen, I Nahi emaitza nonbait jarri. Beraz, C paradigma oso ohikoa da deitu funtzio bat, lortu katea hemen bezala, eta, ondoren, gorde bere itzulera balioa. emaitza da bere zerbait ere ahalegina. Eta zer da programazio eraikitzeko, Scratch edo orain C ala, dugun benetan gordetzeko zerbait erabili ahal? Deitzen aldagai bat da, ezta? Eta Scratch ere, ez dugu benetan zaintzeko zer zen aldagai joan. Baina kasu honetan, benetan egiten dugu. katea esan noa. Eta gero, ezin deitu dut ezer hau nahi dut. deitu noa izena, lortzen katea iritsi. Eta orain, nahiz Oraindik duzu honetan berria apur bat, konturatu naiz xehetasun batzuk falta naiz. puntu bat ahaztu dut. Pentsamendu hau amaitzeko behar dut. Beraz, ez dut nire kurtsorea mugitzeko, beraz, eta hit puntu eta han. Eta zer egin dut? kode-lerro honetan, 5. zenbakian, une horretan, Naiz lortu katea Sarrerek gabe deituz dut. Beraz, ez da ez zuria gutxi box Save blokea atsegin du. Besterik ez naiz, esanez hey, ordenagailua, get me kate bat. Berdin ikurra ez da benetan berdintasun-ikurra, per se. esleipena da operadorea, eta horrek esan nahi du, beno, ordenagailua, mugitzeko balio du ezkerrera eskuinera from. Eta Ezkerraldean ere, honako hauek izan nuen. Hey, ordenagailua, emaidazu kate bat karaktere-sekuentzia bat. Eta deitu katea izena duten. Eta ez dut nahiz eta izena deitu dute. nezakeen deitu, konbentzionalki, S antzeko zerbait, erabiliko dugu i askoz like to deitu aldagaia i. Baina orain zerbait egin nahi duen, behar dut. nahiko ergelak izango litzateke saiatu kode hau konpilatzean, exekutatzen Programa honetan, nahiz kate bat ari naiz, oraindik ez da, besterik gabe, delako kaixo mundua esan nahi dut. Baina zer I nahi ez bada hau aldatzeko. Zergatik ez nuen hori? Ehuneko s, koma s. Eta hau da, apur bat críptica oraindik. Hargatik nire aldagai gehiago garbi uzteko eskatu zidan. Let me izendatzeko izena aldagai hau. Eta ikus dezagun, ezin dugu bada tease aparte, zer gertatzen ari. Beraz line bost, naiz kate bat lortzeko. Eta naiz kate hori I gordetzeko edozein erabiltzaileak idatzitako bere teklatua at, Izena izeneko aldagai batean. Eta bihurtzen da printf ez ezik, bikoitzean hartu argumentu bat komatxo, komatxoen sarrera bat. bi, edo hiru, edo gehiago, hala nola, hartu ahal izango da bigarrena, edo hirugarren edo laugarren dagoela, aldagai izen guztiak dira, edo zehazki baloratzen, ra sartu konektatu nahi duzula, dinamikoki, komatxo katea. Beste era batera esanda, zer honekin okerra litzateke? Esan dudan bada kaixo izena, backslash n, gorde nire fitxategia, konpilatu nire kodea, eta lasterka joan zen, zer gertatuko litzateke? Besterik esango, kaixo izendatzeko, literalki N-A-M-E, hau da, mota ergelak delako mundu ezberdina da. Beraz, komatxo artean ezer ez da zer literalki lortzen inprimatuta. Beraz, izan nahi badut leku-marka, ez dago, benetan behar dut erabili sintaxia berezi batzuk. Eta bihurtzen da irakurri baduzu printf funtzioa dokumentazioa, esan beharko du hori ehuneko s erabiltzen baduzu, balio bat ordezka dezakezu honela. Horren ondotik, koma baten ondoren bikoitza aurrekontua, besterik gabe, idatzi baten izena aldagai nahi dituzun plug in formatu horretan sartu kodea, edo Formatu, ehuneko s kateak. Eta orain I gorde bada Nik nire fitxategia, Atzera egin dut nire terminalera. Eta Egin String idazten dudanean, izan ere, berriro, honen izena fitxategi horren aurretik aukeratu nuen string.c da. Beraz, ez dut Egin String, sartu, esan nahi da. Oh my bondad, guztiak begiratu akatsak egin dugu dagoeneko. Eta hau is-- hau zer da, benetan sei, zazpi lerro programa bat bezala? Beraz, hau da, non ezin da oso Azkar lortu jasanezinak. terminal-leiho hau dauka orain besterik regurgitated Errore mezuak kopuru handi bat. Ziur asko, ez dut error gehiago izan I baino mezuak kode lerro. Beraz, zer gertatzen da? Beno, estrategia onena edonoiz egin duzu ez topo jasanezinak Horrelako akatsak zerrenda, dago korrituko atzera, komandoa begiratu ran besterik ez duzu, nire kasuan bertan da katea. Begira zer egin zuen etxean, eta kitto luze Clang komando, akordio handi no han. Baina gorria txarra da. Green izan da dudarik gabe leuna eta lagungarria. Baina oraindik ere txarra da, kasu honetan. Baina non da txarra? String.c, lerro bost, pertsonaia bost. Beraz, hau da, besterik gabe konbentzio ohikoa da. Zerbait colon zerbait esan nahi du lerro kopurua eta pertsonaia kopurua. Akatsa, undeclared identifikatzailea katea. Ba estandar esan nahi duzu? Beraz, zoritxarrez, Clang da lagundu nahian. Baina okerra da, kasu honetan. Ez, Clang, ez nuen esan IO estandarra. Hori esan nahi nuen on line bat, bai. Baina lerro bost bat hemen. Eta Clang ez du Ulertzen S-T-R-I-N-G. bat undeclared identifikatzailea bat da hitza da, besterik gabe, ez du inoiz ikusi aurretik. Eta hori C delako, hizkuntza da kodea idazten ari gara oraintxe, ez du izan kateak izeneko aldagai. Ez du, default, laguntza arabera Zerbait kate bat deitu. Hori CS50 zati bat da jargon, baina oso konbentzionalak. Baina hau konpondu dut honela. kode lerro bat gehituz gero Programa honen goiko aldean, besteak CS50.h, zein beste fitxategi bat da nonbait CS50 IDE barruan, nonbait disko gogorrean, nolabait esateko, Ubuntu sistema eragilearen hori dut dut lasterketak, hori Fitxategiaren hori da eragilearen irakastera joan sistema zer kate bat da, besterik gabe, io.h estandarra bezalako fitxategia da sistema eragilearen hori ere irakasteko zer printf da joan. Areago oraindik, ahaztuak zukeen Oso antzeko mezu bat IO onartu zuen bada estandarra Io.h eta saiatu printf erabili. Beraz, ez dut aurretik eta joan joan hartu Kontrol L nire pantaila garbitzeko. Edo argi idatzi ahal izango duzu, eta hori izango besterik garbitu terminal leihoa. Baina oraindik ezin korrituko denboran atzera. Eta ez dut Egin String berrabiarazi egingo da. Gurutzea nire behatzak denbora honetan, Sartu. Oh my God, lan egin. me erakusten du críptica komando luzea Hori da, zer egin Clang bidez sortzen, baina ez akats mezuak. Beraz, konturatzen, nahiz agian erabat lortuko duzu itotzea error messages kopurua, besterik ez da gogaikarriak Kaskadako hau izan liteke efektua, non Clang ez du ulertzen Gauza bat da, eta horrek esan nahi du gero ez du hurrengo hitza ulertzeko, edo hurrengo lerroan. Eta beraz, zure kodea irabazi ezinik besterik. Baina konponketa sinplea izan liteke. Eta, beraz, beti izango ditu ardatz irteera oso lehen lerroan. Eta ez baduzu ulertzen da, besterik gabe, begiratu keywords hori izan liteke Arrastoak, eta lerro kopurua, eta pertsonaia, non Akats hori izan liteke. Orain aurrera me eta idatzi dot barra, katea, sartu. Hm, nik ez kaixo ezer esaten. Zergatik? Beno, gogoratzen, non dago martxan? Da seguruenik une trabatuta begizta batean, bada, on line sei, Talde delako String diseinuaren arabera, CS50 langileek idatzia, literalki esan nahi da, eseri Han, zain eta zain, eta kate baten zain. Guztiak esan nahi dugu katea arabera giza sarrera da. Beraz, badakizu zer? Dezagun aurrera. Eta besterik kapritxoa bat, utzi niri idatz nire izena, David, sartu. Orain programa dinamikoagoa izan dut. Esaten zuen kaixo David. Aurrera joan nintzen eta exekutatu berriro bada, demagun Zamila name saiatu me, sartu. Eta orain programa dinamiko bat dugu. ez dute gogor kodetuta dut mundua. I ez dute gogor kodetuta izendatzeko, edo David, edo Zamila. Orain askoz programak bezalako gehiago da ezagutzen dugu, non sarrera hartu badu, irteera zertxobait desberdinak ekoizten da. Orain, hau ez da onena erabiltzaile esperientzia, edo UX. programa abiatzean dut. Ez dakit zer ez omen naiz Egin, benetan I begiratu ezean edo gogoratzen iturri kodea. Hargatik erabiltzaileak esperientzia apur bat hobeto gauza errazena. Dezagun atzera honetan sartu me programa, eta, besterik gabe, esan printf. Eta utzi aurrera me eta izena, bi puntu esateko, eta espazio bat, eta, ondoren, puntu eta. Eta besterik ez Jaurtiketa, ez erreakzio n. Eta hori nahita, delako ez dut nahi gonbita hurrengo lerrora mugitu. ordez, hau egin nahi dut, katea egin Nire kode makina berriak sartu berkonpilatu kodea dot barra katea. Ah, hau da, askoz prettier. Orain benetan ezagutzen dut zer ordenagailua nahi du, ez dit eman izena. Beraz, aurrera noa eta idazten joan Rob ere, sartu, eta kaixo, Rob. Beraz, konturatzen, hau da, oraindik ere, amaieran egunean, soilik bederatzi line programa bat. Baina hartu dugu haurra urrats horiek. lerro bat idatzi dugu bertan ditugun familiar, printf, kaixo mundua ziren. Gero hori apur bat askatzen dugu. Eta benetan erabiltzen dugu lortu katea. Eta aldagai batean balio duten dituena dugu. Eta gero, aurrera joan ginen eta hobetu da hirugarren lerro batekin gehiago. Eta joan-etorriko prozesu honetan software idatziz benetan gakoa. CS50 ere, eta, oro har, bizitzan, oro har, behar duzu, ez eseri, programa bat egin nahi, eta saiatuko idatziz madarikatua gauza osoa aldi berean. Izango da, ezinbestean, ondorioz bidea akats gehiago genuena baino hemen ikusi geure burua. Nahiz eta I, egun honetan, etengabe beste ergelak akats, egia esan gogorragoa akatsak gogorragoa irudikatu dira. Baina akats gehiago gehiago egingo dituzu Kode lerro guztiak idatzi dituzu aldi berean. Eta beraz, praktika hau, kodea pixka bat idatzi Oraindik eroso duzula, konpilatu da, exekutatu, probatu orokorrago, ondoren, mugitu on-- mantenduko dugu, beraz, besterik ez bezalakoa layering, eta azken astean layering, Zerbait eraikina oso zerbait konplexuagoa simple, Gauza bera egin hemen. Ez eseri, eta saiatu Arazoa oso bat idatzi. Egia esan, hartu haurra urrats horiek. Orain, kateak ez dira guztiak baliagarriak zaizkie. benetan nahiko genuke, haien, behar bezala beste zerbait gure toolkit dute. Hargatik, benetan ez da zehazki hori. Dezagun aurrera me now eta Látigo sortu apur bat beste programa bat. Eta int.c hau deitu dugu, osokoa da. Noa, era berean, besteak CS550.h. IO estandarra besteak beste noa. Eta hori nahiko arrunta izango da klasea lehen egun hauetan ere. Eta naiz prest joan funtzio nagusi bat neure burua. Eta orain ordez kate bat lortzeko, dezagun aurrera eta int bat lortzeko. Dezagun deitu i, eta deitu zaitez int, itxi Parentesi, puntu. Eta orain egin dezagun harekin zerbait, printf. Dezagun antzeko zerbait esan kaixo, backslash n, koma i. Beraz, ez dut nahiko askoz mimika zer ago une bat besterik ez nuen egin. leku-marka bat daukat hemen. koma dut i hemen, nahi dudalako plug i biltegian hori sartu. Beraz, goazen aurrera eta saiatu Programa honetan biltzea. fitxategi izeneko int.c. Beraz, ez dut, esateko int egiteko, sartu joan. Oh my God, baina big aurre ez, ezta? Ez dago akats bat da. Ez dago sintaktikoa akats bat da Hemen, besteak beste, programa ezin egon int.c, lerro barruan konpilatu zazpi, pertsonaia 27 error formatuan mota char zehazten izarra, edozein dela. Baina argudio mota int da. Beraz, hemen ere, ez gara zaie joan gaur, nahiz eta material asko dago, gaindituak izaten dituzten goaz Erabat C ezaugarri guztietan, eta programazio gehiago, oro har, Lehenengo asteetan hauek besterik ere. Beraz, ez da askotan izango da jargon horrekin ez zara ezagutzen. Eta, hain zuzen ere, char izar zerbait da itzultzea goaz aste bat edo bi barru. Baina orain, ikus dezagun, ahal bada eta gai arruntei hitzak analizatu. Formats-- beraz formatuan entzun dugu espezifikatzailea, formatu kodea aurretik. Hori da ezagutzen. Type-- baina argudioa mota int. Itxaron minutu bat, i int bat da. Agian ehuneko s benetan definitu esanahi batzuk ditu. Eta, hain zuzen ere, egiten du. zenbaki oso bat, nahi baduzu printf da aldaketa eta, benetan bat erabili Beste formatu espezifikatzaile. Eta ez al dakizu honetan Norbaitek esan ezean, edo egina zuen aurretik. Baina ehuneko i da zer normalean erabili ahal izango dira zenbaki oso bat plugging for printf ere. halaber, ehuneko erabil dezakezu osokoa hamartarrekin bat d. Baina polita eta erraza i da aurkitu. Beraz, hori egingo dugu. Orain utzi aurrera me eta berrabiarazi egin int, Sartu. Hori ona da, akatsik. Dot barra int OK, txarra erabiltzaile esperientzia, ez dudalako kontatu neure buruari zer egin. Baina hori fina. naiz azkar harrapatzeko dut. Eta orain utzi aurrera me eta idatzi David, OK, Zamila, Rob. Ados, beraz, hau gauza ona da. Oraingo honetan, funtzio bat erabiltzen ari naiz, puzzle pieza bat, get int izeneko. Eta bihurtzen da eta ikusiko dugu ikusi term-- geroago honetan CS50 du martxan kate zaitez modu bat, bakarrik fisikoki izango dela zuretzat kate bat. ezarri ditu It get int bakarrik izango da modu bat, hala nola, zenbaki oso bat lortuko duzu. Eta zuk, bada, giza, ez kooperatu, da literalki joan esan saiatu da berriro, saiatu da berriro, literalki han eserita begizta, arte Zenbaki magiko batzuk behartzen duzu, 50, eta kaixo 50 bezala. Edo hau exekutatu dugu berriro eta mota 42, kaixo 42. Eta beraz get int funtzioa puzzle pieza horren barruan nahikoa logika da, nahikoa pentsamendu, irudikatu, zer hitz bat da? Eta zer zenbaki bat da? Soilik onartuz, azken finean, zenbakiak. Beraz bihurtzen da hori ez da hori guztia adierazkorra. orain arte. Beraz, yay, azken aldia dugu joan nahiko azkar jokoak gauzatzeko, eta animazio sartu, eta artistikoak Scratch. Eta hemen, edukia izateaz ari gara kaixo mundua, eta kaixo 50 garbi batez. Ez da iradokitzaile hori guztia. Eta, hain zuzen ere, lehen horiek gutxi Adibide denbora pixka bat hartuko du arrapala ilusioz. Baina askoz gehiago daukagu kontrolatzeko orain, hain zuzen ere. Eta goaz oso Azkar hasteko layering oinarrizko primitibo hauen gainean. Baina lehen, dezagun ulertzeko zer mugak dira. Izan ere, gauza bat Scratch ez du erraz utzi digu ez da benetan begiratu kanpaia azpian, eta ulertzen zer bat ordenagailua da, zer egin daiteke, eta zer bere mugak dira. Eta, hain zuzen ere, eza ulermena, potentzialki, epe luzerako Gure mistakes-- egin idatziz ekar dezake bugs, insecure software idazteko lortzen nolabait hacked. Beraz, dezagun norabidean urrats batzuk hau apur bat hobeto ulertzeko , Modu esan, honako adibidea. Aurrera joan eta ezartzeko noa benetako azkar Adder izeneko programa bat. Bezala, dezagun zenbaki batzuk elkarrekin gehitzeko. Eta ez dut bazter batzuk kode- joan hemen, eta, kopiatu eta itsatsi non aurretik izan dut, besterik ez beraz, lehenago joan ahal izango dugu. Beraz, orain lortu dut oinarrizko hasierak Adder izeneko programa baten. Eta dezagun aurrera, eta hori egin. Aurrera joan noa eta esan, intx lortzen lortu int. Eta badakizu zer? Egin dezagun erabiltzaile-esperientzia hobea. Beraz, esan dezagun besterik x da, eta modu eraginkorrean eskatu erabiltzaileari digu x emateko. Eta gero utzi aurrera me eta esan, printf nola buruz y da, une honetan zain Bi balio erabiltzaileari. Eta gero utzi besterik ez aurrera eta esan, printf, x eta y batura da. Eta orain ez dut nahi baitu s egin. Berea izan dut egin nahi dut, backslash n, eta ondoren batura balio plug. Beraz, nola hau egiten dut? Ba al dakizu zer? aldagaiak nola erabili jakin dut. Utzi deklaratzeko besterik ez dit beste bat, int z. Eta ez dut etxebizitza bat hemen hartu behar da. Badaude honetan berdin-zeinuak hizkuntza, agian dut besterik egin daiteke x gehi y, hain luze amaituko dut nire gisa puntu eta pentsatu? Orain itzuli ahal dut hemen, z konektatu Pentsamendu hau amaitzeko puntu batekin. Eta ikus dezagun orain, horiek gero lerroak x segiden da lortu int. Y da lortu int. Gehitu x eta y, en balioa gordetzeko z-- beraz, berriro ere, gogoratu berdin ikurra ez da berdina. ezkerretik eskuinera esleipena da. Eta dezagun inprimatu batura x eta y ez da literalki z, baina zer da z-ren barruan. Hargatik egin Adder - polita, akatsak oraingoan. Dot barra Adder, sartu, x 1 gertatu egingo da. Y 2 izango da. Eta x eta y batura 3 da. Beraz, hori guztia fina eta ona da. Beraz, matematika dagoela imajinatu nahi duzu behar Horrelako programa batean lan egiteko. Baina badakizu zer? aldagai hau, lerro da 12, nahiz eta beharrezkoa? Zuk ez duzu nahi ohitura lortu besterik gauzak gordetzeko aldagai batean besterik ezin duzulako. Eta, hain zuzen ere, oro har, jotzen diseinua txarra aldagai bat sortzen ari bazara, deitu kasu honetan z, bertan zerbait gordetzeko, eta ondoren, berehala jaistea, baina inoiz ez berriro. Zergatik eman zerbait izen bat z bezala literalki bazaude hori erabiltzeko joan Gauza behin bakarrik, eta, beraz, non sortu nahi proximal lehen postuan dago, beraz, kode lerro dagokionez hurbil? Beraz, badakizu zer? Bihurtzen da C dela nahiko malgua. I benetan nahi baduzu plug-in balioak hemen, Ez dut behar aldagai berri bat aldarrikatu. Besterik ezin dut plug-in x plus y, C ulertzen duelako aritmetika, eta matematiko operadore. Beraz, besterik ez dut esan dezaket, egin math honetan, x gehi y, edozein dela ere, balore horiek dira, plug ondoriozko osokoa kate horretan sartu. Beraz, hau izan liteke, nahiz bakarrik lerro bat laburragoa diseinu hobea, hobeto programa bat, Han kodea gutxiago delako, beraz, gutxiago ulertu zidan. Eta, gainera, garbiagoa da, Oraindik dugu heinean ez hitz berriak sartuz, ikurrak berria, z bezala, ez dute, nahiz eta benetan zerbitzatzeko helburua askoz. Zoritxarrez, matematika, ez da batzuetan fidagarria duten guztiak. Dezagun aurrera eta hau egin. Aurrera joan noa orain eta egin honako hau. Egin printf, ehuneko i, gehi ehuneko Utzi i, ehuneko i, backslash n izanen. Eta ez dut xyx Halako plus y joango. Beraz, besterik ez naiz berridatzi joan hau desberdinean hemen. Do me azkar behatu txeke bat. Berriz ere, dezagun ez aurretik geure buruari. Egin adder, dot barra adder. x 1, y, 2, 1 gehi 2 3 da. Beraz, hori da ona. Baina dezagun zaildu honek orain pixka bat, eta fitxategi berri bat sortzeko. bat deitu noa, esan, ints, zenbaki osoen plurala. Let non duela une bat izan dut hasteko me. Baina orain egin batzuk beste ildo utzi. Dezagun aurrera eta honako hauek egiteko, printf, ehuneko i, minus ehuneko i, ehuneko i, koma x, koma yx minus y da. Beraz, apur bat egiten ari naiz desberdinak matematika ez. Egin dezagun beste bat utzi. Beraz, ehuneko i aldiz ehuneko i ehuneko i, backslash n da. Dezagun plug-in x eta y, y x aldiz y. Asteriskoa erabiliko dugu, on Zure ordenagailua aldiz. Ez daukazu x erabili. x da aldagai izen bat hemen. biderketa izar erabili behar. ren bat gehiago egin dezagun. Printf ehuneko dut, banatzen Berea izan dut arabera, ehuneko i da, backslash n. xy y-- arabera banatzen da beraz, C barra erabili duzu zatiketa egin. Eta egin dezagun beste bat utzi. ehuneko i gainerako, banatzen Berea izan dut arabera, ehuneko i da. xy-- eta orain gainerako da zer utzi baino. Noiz bat zatituz saiatu duzu zenbakitzailea bat sartu izendatzaile, zenbat soberan dagoela ezin duzu zatitzea out? Beraz, ez da benetan, nahitaez, ikur bat kalifikazioa ikastetxean erabiltzen dugu horretarako. Baina han C. ahal duzu esan x modulo y, non Ehuneko hau testuinguru honetan confusingly barruan Oraindik komatxo bikoitzak, printf, ehuneko barruan Formatu gisa erabiltzen da. Noiz ehuneko erabiltzen duzun kanpo adierazpen matematiko batean dagoela, modulo modular operadoreak da Gure helburuetarako aritmetika Hemen, besterik gabe, esan nahi du, zer da x gainerako y arabera banatzen? Beraz, x y arabera banatzen x slash y da. Zein da x gainerako y arabera banatzen? x mod y It, programatzaile batek esango lukeen bezala. Beraz, egin nuen ez akatsak bada hemen, let me aurrera egin eta ints, plural, polita, eta dot barra ints. Eta utzi aurrera eta ez, demagun, 1, 10. Guztiak eskubidea, 1 plus 10 11 da, check. 1 minus 10 da negatiboa 9, egiaztatu. 1 aldiz 10 10 da, check. 1 10 is-- arabera banatzen da Ados, hori saltatzeko egingo dugu. 1 gainerako 10 arabera banatzen da: 1. Hori da zuzena. Baina bug bat dago hemen. Beraz, bat jarri dut nire eskua gainean, ez da zuzena. Esan nahi dut, 0 itxi da. 1 10 arabera banatzen da, badakizu, bagaude bazter batzuk ebaketa, ziur, zero da. Baina behar izan duen 1/10, 0,1 edo 0,10, 0,1000, edo abar. ez luke benetan zero izango da. Beno, bihurtzen da ordenagailua dela literalki, zer egiten ari da kontatzen dugu egin. y arabera banatzen x bezalako matematika egiten ari gara. Eta bai x eta y, lerro bakoitzeko kode lehenago, osokoak dira. Gainera, on line 15, garen kontatzeko printf, beno, printf plug-in zenbaki oso bat, plug-in zenbaki oso bat, plug-in integer-- bereziki x, y eta gero, eta, ondoren, x y arabera banatzen da. x eta y ints dira. onak gara han. Baina zer da x x arabera banatzen? x banatzen by y izan behar du, Matematikoki, 1/10, edo 0.1, horrek benetako zenbakia, zenbaki erreala da , Beharrik potentzialki, hamartar puntu bat. Ez da zenbaki oso bat. Baina zer da hurbilena 1/10, edo 0.1 osokoa? Bai, mota zero da. 0.1 askoz bezala gertatzen da. Eta 1 da askoz hau. Beraz 1/10 hurbilago dago baino 0 da bat da. Eta orain zer C da us-- egiten motatako esan dugu zaie delako osokoa dela truncating da. balio du, eta horrek berriro da, hartu ustezko 0,1000 antzeko zerbait izan nahi du, 0 eta abar. Eta hori guztia truncating da du dezimal ondoren Hori guztia da, beraz, stuff, berriz, ez delako zenbaki oso baten nozioa egokitzeko, eta horrek besterik negatiboak 1, 0, 1 bezalako zenbaki bat da, gora eta behera, kanpoan botatzen dena du duzulako hamartar puntu ondoren ezin hamartar puntu bat egokitzeko definizioz zenbaki oso bat. Beraz, erantzuna hemen zero da. Beraz, nola ez hau konpondu dugu? beste irtenbide bat behar dugu, guztiak elkarrekin. Eta hori egin ahal izango dugu, honela. Dezagun aurrera me eta berri bat sortu fitxategia, honek floats.c deitu. Eta gorde hemen ere direktorio berean, float.c. Eta utzi aurrera me kopiatu lehenago kodea duten batzuk. Baina ordez lortzean Int bat, eta egin dezagun. Emadazu Koma higikorreko balio bat x deitu. non hamarren bat balio besterik ez da literalki puntu mugikorreko batekin zerbait. It ezkerrera eraman dezake, eskubidea. zenbaki erreal bat da. Eta ez deitu dit int, float baina lortu, horrek ere menu artean izan zen C250 liburutegian aukeren. Alda dezagun y karroza bat. Beraz, hau bihurtzen iritsi karroza. Eta orain, ez dugu nahi ints plug. Bihurtzen da ehuneko erabili behar dugu higikorren f, ehuneko higikorren f, eta orain gorde. Eta orain, behatzak zeharkatu, egiteko karroza, polita, dot barra karroza. x inork 1. y gertatu egingo da Is 10 berriro izango da. Eta, polita, OK nire gain zuzena da. Gehiago nintzen mesederako, baina idatzi nahi dut ahaztu. Beraz, goazen eta akats logikoak hau konpontzeko. Dezagun aurrera eta honako hauek har. besterik gabe, egin dugu apur bat kopiatu eta itsatsi. Eta ez dut ken esateko. Eta ez dut aldiz, esan nahi da. Eta ez dut banatuta esan nahi dut. Eta ez dut egin modulo joan, eta hori ez da germane hemen bezala, , Aldiz plus-- f arabera banatzen eta Ados, Berriro egin dezagun. Egin karroza, dot barra karroza, eta 1, 10, -Nik polita, ez, OK. Beraz, lelo bat naiz. Beraz, hau da, oso ohikoa informatika hau bezalako akatsak ergelak egiteko. xede pedagogikoak lortzeko, zer nahi dut egin aldatu zen zientzia hemen plus, minus, aldiz, eta, zatitzeko duzun bezala, zorionez, Ariketa honetan zehar nabaritu. Beraz, gaur egun dezagun berriro konpilazio honetan Programa, ez dot barra karroza. Eta hirugarrenez, dezagun ikusi nire itxaropenak betetzen bada. 1, 10, sartu, bai, OK, 1.000, 10.000 arabera banatzen da, 0,100000 da. Eta bihurtzen da kontrolatu ahal izango dugu zenbat zenbakiak hamarren horiek dira ondoren. Benetan egingo dugu. hori itzuli egingo dugu. Baina orain, hain zuzen ere, matematika zuzena da. Beraz, berriro ere, zer da eramateko hemen? Bihurtzen da, C, badira bakarra besterik strings-- eta, hain zuzen ere, Ez daude, benetan, garelako gehitu CS50 liburutegia dutenak. Baina ez daude bakarrik ints. Badira, halaber, karroza. Eta bihurtzen da beste datu mordo bat mota ere, hori baino askoz lehenago erabiliko dugu. Turns nahi duzun bakar bat bada pertsonaia, ez karaktere-katea, besterik char bat erabili ahal izango duzu. Bihurtzen da boolearra bat egin nahi baduzu, balio boolear bat, egia edo gezurra bakarrik, CS50 liburutegia esker, dugu C bool datu mota gehitu baita. Baina hori ere aurkeztuko hasi beste hizkuntza askotan ere bai. Eta bihurtzen da batzuetan duzula Behar zenbakiak handiagoak orduan lehenetsita etorriko ints eta karroza batekin. Eta, hain zuzen ere, bikoitza zenbaki bat da Hori ez 32 bit, baina 64 bit erabiltzen du. Eta luze luze bat zenbaki bat da erabiltzen ez 32, bit baina 64 bit, hurrenez hurren, puntu mugikorreko balioak eta osoko zenbakiak, hurrenez hurren. Hargatik benetan orain ikusi ekintza hau. aurrera hemen noa eta Látigo beste programa bat. Hemen, aurrera noa eta besteak ez cs50.h. Eta utzi me joan, besteak io.h. Eta zerbait nabarituko duzu funky hemen gertatzen ari da. Ez da margotzea gauzak kodetzea Modu berean baino lehen egin bezala. Eta bihurtzen da, hori dudalako ez dituzte gauza fitxategi izen. bat deitu noa sizeof.c, eta sakatu Gorde. Eta nabarituko zer nire oso gertatzen atze-oihal beltzak aurka kodea zuria. Orain, behintzat, ez da batzuk ere morea. Eta sintaxia nabarmendu da. Hori baita, nahiko besterik gabe, dut Esan IDE zein fitxategi mota da izen bat emanez, eta zehazki, fitxategi-luzapen bat. Orain, dezagun aurrera, eta hori egin. Animatu eta oso joan noa erraz inprimatu honako hau bool ehuneko LU da. Itzuli dugu nahi une bat besterik ez dela. Eta gero noa inprimatu bool tamaina. Eta orain, besterik gabe, gorde Neure buruari denbora pixka bat, naiz oso bat egin da joan horiek sorta aldi berean. Eta, zehazki, noa aldatu hau char bat eta char izateko. Honek, aldatu noa bikoitza eta bikoitz bat. Honek, aldatu noa mugikor bat eta karroza bat. Honek, noa int eta int bat aldatu. Eta hau, banoa luze luze bat aldatu. Eta oraindik ere hartzen denbora luzez, eta luze gabe. Eta gero, azkenik, eman dut Neure burua gehiegi, katea. Bihurtzen da, C ere, ez da operadore berezia deitu horren tamaina da, hitzez hitz behar denean exekutatu joan, esaten digute tamaina aldagai horietako bakoitzak. Eta hau modu bat da, gaur egun, Atzera konektatzen dugu Azken astean eztabaida datuak eta errepresentazio. Dezagun aurrera me eta konpilatu dot barra tamaina tamaina. Eta ikus dezagun. Bihurtzen da C direla, zehazki CS50 IDE on, zehazki, on the Ubuntu sistema eragilea, horietatik 64-bit eragilearen bat da Kasu honetan sistema, boolearra da joan espazio byte bat erabili. Hori da, tamaina nola neurtzen da, Ez bit, baina byte. Eta gogoratzen byte bat duten zortzi bit. Beraz bool, are you arren Teknikoki bakarrik behar, 0 edo 1, Apur bat wasteful da nola inplementatu dugu bertan. Benetan oso bat erabiltzeko joan byte-- beraz zeroen guztiak, dira, agian, guztiak ere bai, edo horrelako zerbait, edo, besterik gabe, inork 1 zortzi bit artean. char A, bere aldetik, pertsonaia bat erabiltzen da azken astean ASCII karaktere bat bezala, da pertsonaia bat izango da. Eta hori synchs eman gure nozioa batera izanik ez 256 bit baino gehiago, hobeto esanda, synchs eman ez egotea berarekin 8 bit baino luzeagoa da, eta horrek ematen digu bezain beste 256 bezalako baloreak. A bikoitza da joan 8 byte edo 64 bit izan. Karroza 4 da. int An 4 da. luze bat, luzea 8 da. Eta kate bat 8 ​​da. Baina ez kezkatu. atzera zuritu geruza hori goaz. Bihurtzen da, kateak ahal izan 8 byte baino luzeagoa. Eta, hain zuzen ere, idatzi dugu kateak dagoeneko, kaixo mundua, 8 byte baino luzeagoa. Baina itzuli gara nahi une bat besterik ez dela. Baina take the hemendik honako hau da. Edozein ordenagailu bakarra dauka finitu bat memoria eta espazioaren zenbatekoa. Zuk bakarrik gorde ahal izango hainbeste fitxategiak zure Mac edo PC. You programak hainbeste bakarrik gorde ahal izango RAM aldi berean exekutatzen, nahitaez, are memoria birtuala, baita RAM mugatu bat behar duzu. Eta besterik ez, irudi bada Nik inoiz ireki zuen ordenagailu eramangarri bat edo agindu aparteko memoria ordenagailu baten, zuk Agian ez dakizu hori zure ordenagailuaren barruan itxura zerbait da Hau atsegin apur bat. Beraz, hau da, besterik gabe izeneko enpresa bat komuna da Erabakigarria duten ordenagailuentzako RAM egiten. Eta RAM non programen da Bizi diren darabilzun bitartean. Beraz, Mac guztietan edo PC, bikoitza on Klik programa bat, eta zabaltzen da, eta Word dokumentu batzuk irekitzen da edo horrelako zerbait, da gordeko aldi baterako ere RAM, RAM azkarragoa delako zure diskoan baino, edo Zure egoera ona disko. Beraz, besterik ez da non programak joan exekutatzen ari dira bizitzeko, edo noiz fitxategiak erabiltzen ari dira. Beraz, gauzak itxura duzu eramangarria barruan k atsegin, edo gauzak zertxobait handiagoa Mahaigainaren barruan. Baina gakoa da bakarrik bat behar duzu Gauza horiek kopuru mugatua. Eta han mugatu bat besterik ez hardware mahaian honetan eserita eskubidea hemen. Beraz, ziur aski, ezin dugu gorde zenbakiak infinituki luzea. Eta, hala ere, atzera uste baduzu kalifikazioa eskola, zenbat digituak ahal izan eskubidea duzu hamartar puntu baten? Gaia dela eta, zenbat digituak ahal izan hamartar puntu baten ezkerrean duzu? Benetan, infinituki asko. Orain, gizakiak agian bakarrik Badakizu milioi nola ahoskatu, eta milioi, bilioi, eta quadrillion, eta quintillion. Eta naiz mugak bultzaka dut nire understanding-- edo izan nire ulertzen dut zenbakiak, baina nire zenbakien ahoskera. Baina infinituki handiak lortu ahal izango dute Ezkerraldean digituak kontaezinezko edo koma hamartarra eskubidea. Baina ordenagailuak bakarrik izan bat memoria kopuru finitu, transistore kopuru mugatua dutenez, bat bonbillak barruan kopuru mugatua. Beraz, zer gertatzen Tokirik gabe duzu? Beste era batera esanda, baduzu Uste azken astean itzuli zenbakiak buruz hitz egin dugu ari bitarrean irudikatzen beraiek, Suposatzen dugu dugu lortu hau 8-bit balio hemen. Eta zazpi 1 eta 0 bat behar dugu. Eta demagun nahi dugun gehitzeko 1 balio honetarako. Hau kopuru benetan handia da oraintxe. Hau da, 254, gogoratzen dut azken astean eskuinetik math. Baina zer aldatu dut bada 1 a eskuinekoa 0 dagoela? The kopuru osoa, la Jakina, zortzi 1-ren bihurtzen. Beraz, oraindik onak ditugu. Eta seguruenik, adierazten 255, nahiz eta testuinguruaren arabera benetan zitekeela adierazten zenbaki negatiboa. Baina hori denbora beste. Hau sentitzen buruz bezala handiko gisa I zenbatu bezala. Orain, bit 8 bakarrik da. Eta nire Mac, ziur aski, bide ditu 8 baino gehiago oroimen zatiak. Baina izan finitu du. Beraz, argudio bera aplikatzen, nahiz eta pantailan direnak horiek gehiago dute. Baina zer gertatzen ari bazara Zenbaki honetan, 255 gordetzeko, eta 1 bit handiagorik zenbatu nahi duzu? 255-tik 256 ra joan nahi duzu. Arazoa, jakina, da duzu bada hasteko zero astetik bezala kontatuta, Ezin zenbatzen handiko gisa 256 bezala, utzi bakarrik 257, utzi bakarrik 258, m zer duelako gertatzen denean gehitzen duzunean 1 bat? kalifikazioa eskola zaharra ez baduzu Planteamendu, jarri 1 bat hemen, eta, ondoren, 1 gehi 1 2 da, baina hori da benetan zero bat, eramanez gero, 1, 1 eraman, eraman 1 du. Gauza horiek guztiak, 1 en horiek, zero joan. Eta Haizearen duzu, bai, norbait gisa adierazi du, 1 egin dute ezker aldean. Baina ahal duzun guztia benetan ikusi eta memorian kabitu da zortzi besterik ez da 0, alegia uneren baduzu, ordenagailu bat, Saiatu handiko nahikoa kontatuta eman, Oraindik Itzulbiratu joan, badirudi, zero, edo agian are negatiboa den Zenbakiak dira, nahiz eta zero baino txikiagoa. Eta mota ikusi ahal dugun honetan. Dezagun aurrera eta idatzi benetako azkar programa bat hemen. Dezagun aurrera eta idatzi Overflow izeneko programa bat. Besteak beste, cs50.h standard IO.h-- oh, benetan galdu dut nire sintaxia nabarmentzea. Hargatik gorde hau overflow.c bezala. Eta orain int void-- nagusia eta luze baino lehen, egingo dugu itzuli zergatik azalduz int hutsune nagusia idazten jarraituko dugu. Baina, oraingoz, besterik egin dezagun ezazu, ziurtzat. Dezagun eman neure burua int bat, eta hasieratu 0. int egin ondoren dezagun i lortu zero benetan, egin dezagun, begizta amaigabea utzi eta ikusi zer gertatzen den. Egia bitartean, orduan dezagun inprimatu n ehuneko i, backslash n, plug-in n. Baina, orain, egin dezagun n lortzen n plus 1 utzi. Beraz, beste era batera esanda, bakoitzaren gainean begizta amaigabea honen iterazio, dezagun n-ren balioa, eta gehitu 1 da, eta, ondoren, gordetzeko emaitza back in n ezker. Eta, hain zuzen ere, ikusi dugu sintaxia zertxobait hau atsegin, labur-labur. cool trikimailu bat da ordez hau guztia idazten out of, duzu benetan esan dezaket n plus bat berdin 1. Edo benetan you fancy izan nahi badu, esan dezakezu n plus plus puntu. Baina azken bi horiek besterik ez dira zer litzaidake sintaktikoak azukrea deitu dugu Lehenengo gauza da. Lehenengo gauza gehiago esplizitua da, guztiz fina, erabat zuzena. Baina hau da ohikoagoa, esan dut. Beraz, hori egin dugu une bat besterik ez da. Dezagun orain gainezkatzea, soinuak baizik eta kezkagarriak, dot barra gainezkatzea. Ikus dezagun, n nahiko handiak lortzean dezagun. Baina ez dezagun pentsa, nola big n lortu daiteke? n int bat da. une bat duela ikusi dugu tamaina Adibide bat int lau byte da. Badakizu astetik dugu, lau byte da 32 bit, baita 8 aldiz 4, hori da 32. Hori 4 milioi izango. Eta badira 800,000 to eman dugu. Hau da betiko hartu joan zenbatu bezala ahal dut seguru eta altua. Beraz, aurrera noa joan, betiere lehenago agian, eta hit Control C Egia, Kontrol C, asko, non Control C, oro har, bitarteko ezeztatzeko. Zoritxarrez, hau ez delako da hodeia exekutatzen, batzuetan hodeia da hainbeste gauza tu, Hainbeste irteera, da joan nire sarrera egiteko denbora pixka bat har hodeia iristeko. Beraz hit I nahiz Kontrol C Duela segundo batzuk, hau da, behin betiko aldean begizta amaigabea eragin duen eragina. Eta, beraz, kasu horietan, ez gara Hori izan utziko. Eta ari gara beste gehitzen joan hemen baino leihoa terminal plus du, noski, eta horrek ez du batera duten bezala, oraindik ere pentsatzen ari baitira. Eta dezagun aurrera, eta apur bat gehiago arrazoizkoa. Aurrera joan eta ez noa bakarrik mugatzaileez hainbat aldiz hau. Dezagun erabili loop, bertan aipatu dut lehenago. egin dezagun. Emadazu beste aldagai int i lortzen 0. i gutxiago baino, demagun, 64 i ++ utzi da. Eta orain utzi aurrera me eta inprimatu out n ehuneko i da, koma n. Eta gero n-- hau da, oraindik betiko hartu behar da. egin dezagun. n lortzen n aldiz 2. Edo irudimena izan liteke dugu eta ez aldiz berdin 2. Baina dezagun esan n berdinen bera, aldiz, 2. Beste era batera esanda, honetan Programaren bertsio berria, Ez dut nahi betirako itxaron behar 800.000 tik bezalako 4 milioi. Dezagun honekin lortu nahiko luke. Dezagun benetan bikoiztu en n bakoitzean. Zein, oroitzapen, bikoiztea da , Beharrik, jakina, guztiz kontrakoa. Eta azken astean, berriz, ez dugu zerbait berriro, eta berriro, eta berriro, super azkarra, bikoiztea da ziur aski zaitez gurekin 1etik posible handienari balio hori dugu zenbatu ahal int batekin. Beraz, egin zehazki dezagun. Eta etorri egingo dugun hau itzuli luze baino lehen. Baina hau, berriro, da, besterik ez bezala errepikatu bloke Scratch. Eta hau erabili beharko duzu luze baino lehen. Honek esan nahi du, besterik gabe, zerotik count ra, baina ez berdina, 64 gehienez. Eta honen iterazio bakoitzean begizta, besterik gabe, gorde Incrementing i. Beraz, i ++ - eta eraikuntza orokor honetan on line 7 modu super komun bat besterik ez da lerro batzuk errepikatuz kodea, aldiz zenbaki batzuk. Zein kode lerro? kizkur giltza horiek, zuk bezala orain jasotako izan daiteke, esan nahi du, honako hau. da Scratch bezala, noiz horia bloke ditu eta beste kolore mota doan besarkatu edo beste bloke besarkatu. Horixe kizkur horiek giltza hemen egiten ari. Beraz, nire sintaxia lortu badut Arrazoi duzu azenarioa C bitarteko ikurra ikusiko Hau da, zenbat aldiz izan nintzen Arazo hau konpontzen saiatzen. Hargatik bat duten emateko en kentzeko guztira, eta itxi leiho hori. Eta beste bat erabiliko dugu. Egin gainezkatzea, dot barra gainezkatzea, Sartu, eskubidea, txarra itxura lehen. Baina utzi mugitzeko denboran atzera, hau 64 aldiz egin nuen delako. Eta lehen aldiz nabarituko, n 1 da. Bigarren denbora, n 2 da, ondoren, 4, 8 eta, ondoren, 16. Eta badirudi bezain laster Talde gutxi gorabehera 1 milioi dut, bikoiztu badut, berriro ere, eman behar dit 2 milioi. Baina bihurtzen da, da, izkina bihur eskubidea. Eta orain benetan gainezka egiten 1 milioi int gutxi gorabehera negatibo 2 milioi, zenbaki oso bat delako, zenbakiak dugu ez bezala ziren azken astean suposatuz, bai positiboak eta negatiboak izan daitezke errealitatean eta ordenagailu batean. Eta, beraz, gutxienez, horietako bat bit eraginkortasunez lapurtzen. Beraz, benetan dugu dute 31 bit, edo 2 milioi balio posible. Baina, oraingoz, eramateko oso da besterik gabe, edozein dela ere zenbaki horiek dira eta matematika da edozein dela ere, zerbait txarra gertatzen azkenean, azkenean diozula permute bit gehiegi aldiz. Eta eraginkortasunez guztietatik joan 1-ren agian 0 horrek guztiak, edo, agian, beste eredu batzuk egiten duten Argi eta garbi, testuinguruaren arabera, zenbaki negatibo gisa interpreta daiteke. Eta beraz, I altuena badirudi daiteke programa zehatz honetan zenbatu mila soilik gutxi gorabehera 1 da. Baina ez dago irtenbide partziala da hemen. Ba al dakizu zer? Dezagun aldatuko batetik me luze luze int. Eta utzi aurrera me hemen eta esaten dute noa hau aldatzeko unsigned luze bat. Edo, ikus dezagun, inoiz ez dut gogoratzen nire buruari. Dezagun aurrera eta gainezkatzea egiteko. Ez, ez da hori, LLD, eskerrik asko. Beraz, batzuetan, Clang lagungarria izan daiteke. Nik ez dut gogoratzen zer formatu espezifikatzailea luze luze bat izan da. Baina, hain zuzen ere, Clang esan zidan. Green ona mota batzuk, oraindik ere esan nahi du akats bat egin duzu. Honez asmatzen LLD esan nahi dut. Hargatik hartu me aholkularitza da, luzea zenbaki hamartar luze, gorde duten. Eta utzi berrabiarazi me, sakabanatutako barra gainezkatzea, Sartu. Eta orain, zer da cool da hau. denboran atzera joan I bada, oraindik ere hasten gara du place-- berean kontatuta 1, 2, 4, 8, 16. Oharra, lortuko dugu guztia Modu 1 milioi. Baina, ondoren, segurtasunez 2 milioi lortuko dugu. Ondoren, lortu 4 milioi dugu, ondoren 8 milioi, 17 milioi. Eta joan handiagoa dugu, eta handiagoa da, eta goi-mailako. Azkenean, hau ere, jauziak. Azkenean, luze luze batekin, bertan 64-bit balio, ez da 32 biteko balioa, zuk zenbatu handiegia, 0 inguruan biltzeko duzu. Eta, kasu honetan, gertatuko dugu azkenean, zenbaki negatiboa. Beraz, hau arazo bat da. Eta bihurtzen da hori Arazoa ez da urrutira hori guztia. Nahiz nahita dut I eragindako akats horiek batera, bihurtzen da ikusten dugu mota guztiak Gure inguruan, edo, gutxienez, gutako batzuk egin. Beraz Lego Star Wars ere, bada Nik inoiz jokatu duzu jokoa, bihurtzen da inguruan dezakezu gauzak hausteko LEGO munduan, eta txanponak biltzeko, funtsean. Eta inoiz duzun jokatzen bada Joko hau bide denbora gehiegi, izenik banakako hau bezala Hemen egin, zenbakia guztira txanpon eta jaso ahal izango duzu da, ordea, 4 milioi. Orain, egia esan, biribildu. Beraz LEGO saiatzen zen mantentzeko gauza lagungarri. ez zuen egin dute, zehazki 2 du 32 boterea, azken astean. Baina 4 milioi arrazoi bat da. Badirudi, informazio hori oinarritzen, LEGO dela, eta hori enpresak Benetako software hau, erabaki gehienez txanpon kopurua Erabiltzaile pilatu ahal da, hain zuzen ere, 4 milioi, aukeratu zuten euren kodea delako erabili ez luze, luze, itxuraz, baina besterik ez da zenbaki oso bat, unsigned bat osokoa, bakarrik oso positibo bat, zeinen Gehienez balio gutxi gorabehera dela. Beno, hemen beste bat dibertigarria da. Beraz, joko zibilizazioa ere, bertan batzuk ezagunak izan liteke, batera bihurtzen da, duela urte ez dagoela Joko hau Horren bidez, akats bat zuen rola jokatzen baduzu Gandhi jokoan, zion ordez Oso bakezalea izatea, ordez zen oso, oso erasokorra, zenbait kasutan. Hain zuzen ere, bide hori zibilizazioa obra da duzula bada, jokalariak, demokrazia hartzea, zure agresibitatea puntuazioa decremented bi, beraz, ken arabera ken, eta, ondoren, ken ken. Beraz kentzen duzu 2tik Zure benetako errepikatzean. Tamalez, zure errepikatzean bada Hasieran 1, eta kentzen duzu 2 bertatik demokrazia hartzeko ondoren Gandhi bezala hemen might egin dute, oso passive-- izan zelako 1 agresibitatea eskalan. Baina demokrazia hartzen zuen bada, orduan 1-tik 1 negatiboa doa zuen. Zoritxarrez, ziren unsigned zenbakiak erabiliz, horrek esan nahi du, nahiz eta negatiboa tratatu dute zenbakiak bagina bezala positiboak izan ziren. Eta bihurtzen da hori negatiboa 1 baliokidea positiboa, ordenagailu programak tipikoa, 255 da. Beraz Gandhi hartzen bada demokrazia, eta beraz ditu bere agresibitatea puntuazio murriztu da, benetan pasatzean inguruan 255 eta egiten gehien zion pertsonaia oldarkorra jokoan. Beraz, Google dezakezu gora honetako. Eta, izan zen, hain zuzen ere, bat accidental programazio bug, baina hori nahiko sartutako lore geroztik. Hori guztia dibertigarria eta polita da. Gehiago beldurgarria da benetako denean Mundu errealean gailuak, eta ez jokoak, bugs horiek berak izan. Izan ere, orain dela urte bat besterik artikulu bat zetorren buruzko Boeing 787 Dreamliner out. Eta hasiera batean artikulu begirada urrutira apur bat irakurtzen. Baina esan behar da hau, software bat Boeing ahultasun berria 787 Dreamliner jet ditu potentziala pilotuak eragin kontrola galdu Hegazkinaren, seguru asko, erdialdean hegaldia, FAA funtzionarioek ohartarazi aire konpainiek berriki. determinazioa zen eredu bat 787 hegazkin dela powered etengabe egiteko 248 egun Mendebaldeko Europa guztia gal dezake, AC, energia elektrikoaren sorgailua ondorioz kontrol unitateak, GCUs, aldi berean, sartzen joan seguruak huts moduan. ni galtzeko mota da. Baina zirkularraren adierazi, Ados, orain lortu dut, baldintza zen software batek eragindako kontraerasora barne sorgailu kontrola unitateak izango dela ondoren gainezkatzea 248 etengabeko power egunetan. hau jaulki ari gara nabarituko galtzea saihesteko Erkidegoko guztiak elektrikoak boterea, eta horrek ekarriko lukeela hegazkinarekin kontrola galtzea ere. Beraz, literalki, ez osokoa batzuk, edo baliokidea datu-mota batzuk, software erabiltzen ari benetako hegazkin batean Zure hegazkin mantentzeko izanez gero nahikoa luzea, itxuraz on kasua izan daiteke, besterik gabe ari zaren bada exekutatzen horiek etengabe eta inoiz deskonektatu Zure hegazkin, dirudienez, edo bere bateriak hiltzen utziz, joango diren zenbatzen, eta gora, eta gora, eta gora, eta gora, eta gora. Eta, izatez, a memoria kopuru finitu gainezka egingo, atzera rolling zero edo balio negatibo batzuk, albo efektu bat da Errealitate beldurra benetako hegazkina behar ditzake berrabiarazi behar da, modu eraginkorrean, edo eror litezke, okerrago, hegan bezala. Beraz, gai mota hauek dira oraindik gurekin, even-- hau 2015eko artikulu bat izan zen, gehiago beldurgarria guztiak Ez duzunean nahitaez ulertu, balioetsi, edo aurreratzen Akats-mota horiek. Beraz bihurtzen da hemen, ez da beste bat buruzko datuak ordezkaritza gauza txarra. Bihurtzen da, nahiz eta karroza direla motatako flawed, karroza baita ere, dira proposatutako I 32 bit, edo agian, 64 bikoitz bat erabiltzen baduzu. Baina oraindik finituen. Eta harrapaketa da, ahal bada hori zenbakiak infinitua zenbaki bat jarri dezimal ondoren, ez dago modurik duzuna da posible guztiak irudikatzeko daiteke zenbakiak dugun irakatsi ziren kalifikazioa eskola dezake munduko existitzen. Ordenagailu batek, funtsean, betetzen da aukeratu zenbaki horiek azpimultzo bat zehaztasunez irudikatzeko. Orain, ordenagailua ezin txandan, agian, pixka bat, eta aukera ematen du, gutxi gorabehera denda Bat-zenbakia, seguru asko izango duzu nahi. Baina, intuizioa, baduzu bit kopuru finitu bat, Baino ezin duzu permute horiek Modu finitu hainbeste. Beraz, ezin duzu, seguru kopuru mugatua Bit trukatze, zeroen eta bai eredu, infinitua bat irudikatzeko Zenbakiak zenbaki, horrek iradokitzen ordenagailuak agian hori oso ondo, batzuetan gurekin etzanda. Izan ere, egin dezagun hau. Dezagun atzera CS50 IDE sartu me. Dezagun aurrera eta Programa txiki bat sortu izeneko zehaztugabetasunak, erakusten duten ordenagailuak dira, hain zuzen ere, zehazgabea. Eta utzi aurrera me eta hasteko kodea duten batzuk lehenago, eta orain, honako hau. Dezagun aurrera eta printf, ehuneko egin f, backslash n, 1 10 arabera banatzen da. Beste era batera esanda, dezagun murgiltze sakonago 1/10, atsegin 1 eta 10 banatzen da. Seguru asko, ordenagailu bat 1/10 ordezkatzen dezake. Beraz, goazen aurrera eta zehaztugabetasunak egiteko. Ikus dezagun. Formatu zehazten idatz bikoitza. Baina argudioa mota int. Zer gertatzen ari da? Oh, interesgarria, beraz, bat da Ikasgai aurretik ikasi. Nik diodana, beno, ordenagailua ikuskizuna me ehuneko f karroza bat. Baina nago emanez 2 ints. Beraz, bilakatzen da, konpondu dut hau modu pare bat ere. Besterik ezin dut buelta bat 1,0 sartu, eta 10 10,0 sartu, zein izango litzateke, hain zuzen ere, bihurtzeko eragina dute oraindik ere horiek floats-- sartu zorionez kopuru bera. Edo Bihurtzen da han zerbait Berriro ikusiko dugu, luze baino lehen. zenbakiak bota izan duzu. dezakezu, parenthetical hau erabiliz adierazpen, esan dezakezu, beno, ordenagailua, hartu hau 10, eta bertan dakit int bat da. Baina, begira ezazu, mesedez, bagina bezala, mugikor bat da. Baina hori sentitzen alferrik konplexua. Gure helburuetarako gaur, dezagun, besterik gabe, hitzez Puntu mugikorreko balio horiek hamartar puntu bat, honen antzeko batera. Dezagun aurrera eta berriro exekutatu, egin zehaztugabetasunak, ona, dot barra zehaztugabetasunak, sartu. Ados, ona bilatzen ari gara. 1 10 arabera banatzen arabera my Mac hemen, da, hain zuzen ere, 0,100000. Orain, eskola kalifikazioa nintzen irakasten ez 0 infinitua zenbaki bat izan behar du. Hargatik, gutxienez, saiatu horietako batzuk ikusteko. Bihurtzen da printf hori apur bat da oraindik fancier dugu hemen erabiltzen ditudan baino. Bihurtzen da, ez duzu behar zehaztu besterik ehuneko f, edo, besterik gabe, ehuneko i. Benetan zehaztu dezakezu kontrol aukera batzuk hemen. Zehazki, joan naiz esateko, hey, printf, benetan erakutsi 10 hamarren. Beraz, pixka bat arraroa badirudi. Baina ehuneko esan duzu, dot, zenbakiak zenbat to ondoren ikusi nahi dituzun hamartar puntu, eta, ondoren, f Lokalak, besterik ez delako hori zer dokumentazio dio. Dezagun aurrera eta gorde duten. Eta konturatu too, lortzean naiz gauzak idazten nekatuta. Beraz, besterik ez naiz sortu ezarriz eta behera nire gakoak gezi hemen. Eta mantentzeko I sakatuz gero, zuk komandoak guztiak ikusi ahal egin dut, edo gaizki egin. Eta naiz orain aurrera joan eta Ez benetan erabili duten, itxuraz. Egin zehaztugabetasunak, dot barra imprecision-- orain zer ere irakatsi zidaten kalifikazioa eskola egiaztatzen. inprima 10 hamartarrekin Nahiz jartzen da, hain zuzen ere, 0,10000 da. Baina badakizu zer? Dezagun apur bat Greedy. Demagun, adibidez, erakutsi 55 du ondoren seinalatzen. Dezagun benetan dezagun programatu spin bat. Let it remake me make zehaztugabetasunak, dot barra, zehaztugabetasunak. Eta hemen dugu. Zure haurtzaroko gezurra zela. Antza denez, 1 10 arabera banatzen da, hain zuzen 0.100000000000000005551115123-- Zer gertatzen ari da? Beno, bihurtzen da, mota baditut duzu begiratu urrun nahikoa azpiko in out honen ordezkaritza zenbakia, egia esan, Ez da zehazki 1/10, edo 0,1 eta zeroen kopurua infinitua. Orain, zergatik da hori? Beno, nahiz eta hori da erraza Gurekin gizakiak zenbakia, 1 10 arabera banatzen da, oraindik da infinitu bat zenbakiak uste izan dugu. Baina ordenagailu bat bakarrik aurkez dezake mugatzaileez beraz zenbakiak asko. Eta, beraz, modu eraginkorrean, zer du ordenagailua bere hurbilena da gurekin erakusten kopuruaren hurbilketa sinesten 1/10 da nahi dugu, edo benetan 0,10000 ad infinitum. Izan ere, nahiz eta, hau da eta hurbilen eskuratu ahal izango da. Eta, hain zuzen ere, begiratzen baduzu kanpaia azpian, Hemen dugu begira 55 hamartarren ondoren, ikusiko dugu benetan errealitate hori. Orain, bat alde batera, baduzu inoiz ikusi movie-- du zuk ziurrenik not baina duela Superman 3 urte batzuk, Richard Pryor funtsean leveraged honetan bere enpresa errealitate asko lapurtzen zatikiak eta zatikiak pennies of, company-- gogoratzen dudan bezala delako, izan da bat while-- zen funtsean bota duen ezer ez egokitzeko zentimo nozioa sartu. Baina bada gehitu duzu horiek guztiak txiki-txiki, txiki-txiki, txiki-txiki zenbakiak berriro, eta berriro, eta berriro, dezakezu gisa Bere kasuan, diru kopuru on bat. Ideia hori bera erauzi off arabera bat gehiago, azken, baina oraindik orain zaharragoak Filma, Office Space izeneko, non film horretan mutilak, Gauza bera egin zuen, izorratu sortu erabat, azkenean modu batera gehiegi dirua beren banku-kontu. guztiak oso susmagarria izan zen. Baina egunaren amaieran, zehaztugabetasunak guztiak gure inguruan da. Eta hori ere, izan daiteke beldurra kasuan. Bihurtzen da Superman 3 eta Office Space alde batera utzita, batzuk oso erreala izan daiteke mundu ramifications zehazgabea errealitateei Datuen irudikapena hori are gizakiak dugu Egun honetan ez dute zertan ulertzen baita behar dugun bezala, edo gogoratzen gisa askotan behar dugun bezala. Eta, hain zuzen ere, honako clip da mundua oso erreala batzuk begirada bat duzu bada, zer gertatzen adarkatzeak ez zehaztugabetasunak duten eskertzen zenbakien ordezkaritza gertatuko. [Bideo-erreprodukzioa] -Computers, Denok etorri dugu onartu askotan frustrating arazoak dagoela bugs them-- batera joan, birusak, eta software glitches, txiki prezioak ordaintzeko erosotasuna. Baina teknologiako handiko eta abiadura handiko militar eta espazio programa aplikazioak, txikiena arazoa ahal egon hondamendia sartu magnified. Ekainaren 4an, 1996, zientzialari prestatu tripulaziorik Ariane 5 suziri bat abiarazteko. zientifiko zen egitea sateliteak diseinatu hain zuzen, nola ezarriko den Lurraren eremu magnetikoaren elkarreragina haize eguzki. Txupinazoa eraiki zen Europako Espazio Agentziak, altxatzen off bere instalazioak bertatik French Guiana kostaldean. 37 segundotan sartu -At Hegaldian, dute lehen nabaritu zerbait oker joan zen. Toberak ziren biraketa modu bat beharko lukete benetan ez. 40 segundo sartu hegaldia, Argi eta garbi, ibilgailua arazorik izan zen. Eta hori da egin dute erabaki bat da suntsitzeko. Barruti segurtasun ofizial, batera ausartuko izugarria, botoia sakatzen, nintzen suziria, izan liteke aurretik herritarren segurtasuna arrisku bat bihurtu. dontzeila zen -Hau Ariane 5 bidaia. Eta bere suntsipena hartu place delako akats bat suziria softwarea murgildurik. -Ariane Arazoa zen ez zela kopuru hori 64 bit adierazteko beharrezkoak. Eta Bihurtzeko nahi zuten 16-bit kopuru bat da. bere gain hartu dute hori kopurua ez zen inoiz joan oso handia izan da, horietako gehienak 64-bit kopuru baten digitu zero ziren. Oker ziren. -The Bat imposibilidad software programa onartu zenbaki-mota sortutako beste porrot erroa zen. Software garapena bihurtu a Teknologia berri asko oso garestia. Ariane suziria dute oso izan arrakasta, beraz, askoz softwarea sortu da gainera, izan zen Ariane 5 erabilitako. oinarrizko arazoa -The zen Ariane dela 5 azkarragoa zen, bizkortu azkarrago. Eta software ez izan hori kontuan. -Suziriaren Suntsitzea finantza hondamendia handi bat izan zen, minutuko software error ondorioz. Baina hau ez zen lehena denbora datu bihurtzeko arazoak izan beteta suziria teknologia modernoa. -In 1991, hasieratik ekin Lehenengo Golkoko Gerra, Patriot misil bizi antzeko zenbakia bihurtze arazoekin. Eta, ondorioz, 28 pertsona, 28 soldadu amerikar, hil ziren, eta buruz beste batzuk 100 zauritu, Patriot, izan zen ustezko sarrerako Scuds aurka babesteko, huts misil bat su. -Noiz Irak Kuwaiten, eta America abian jarri Desert Storm 1991 hasieran, Patriot misilen bateriak ziren zabaldutako Saudi Arabia eta Israel babesteko Irakeko Scud misil erasoak. Patriot US erdi-sorta bat da aire sistema azalera, fabrikatu Raytheon konpainiaren arabera. -The Patriot interceptor tamaina bera oinak buruz gutxi gorabehera 20 luzea da. Eta libera 2.000 pisatzen ditu. Eta buruz warhead bat egiten da, gutxi gorabehera da 150 kiloko uste dut. Warhead bera da handiko lehergai bat, eta horrek bere inguruan zatiak ditu. warhead, karterra da Buckshot bezala jarduteko diseinatuta. misil -The egiten dira lau edukiontzi bakoitzeko, eta erdi trailer garraiatzen. -The Patriot misil anti-sistema doa, gutxienez 20 urte orain. It diseinatu zen aire defentsa misil bat bezala behera tiro etsai hegazkinak. Lehenengo Golkoko Gerran, denean gerra batera iritsi zen, Army erabili den nahi tiro behera Scuds, hegazkinak ez. Irakeko Air Force zen Ez hain arazo bat askoz. Baina Armada Scuds kezkatzen. Eta beraz, saiatu behar dute berritzea Patriot. etsai bat -Intercepting misilen mach 5 bidaiatzen zen joan den erronka nahikoa. Baina Patriot zen zerbitzua rushed, Armada ez zen jakitun Irakeko aldaketa hori egin beren Scuds ia ezinezkoa sakatu. -Zer Gertatu Scuds da ziren etortzen ziren ezegonkorra. wobbling ziren. Horren arrazoia izan zen Irakiarrak, ordena 600 kilometro eskuratu 300 kilometro bat atera sorta misil, hartu pisua aurrean warhead out. warhead, arinagoa dute. Beraz, gaur egun Patriot da Scud da etortzen saiatzen. Eta denbora gehiena, etorri denbora gehienek, besterik ez litzateke Scud bidez hegan. Patriot sistema operadore Behin konturatu Patriot helburu galduak, Patriot warhead detonated dute Biktimak posible balitz saihesteko onartzen zen lurrera erortzen. zer jende gehien ikusi zen -Hori, zerua fireballs handi horiek, eta gisa ulertua Scud warheads atzematen. Gauean ere -nahiz Zeru, Patriots agertu Arrakastaz izan Scuds suntsituz, Dhahran, Oker ez izan daiteke Bere performance buruz. Badira, Patriot radar sistema galdu pista sarrerako Scud baten, eta inoiz abian dela eta software akats bat da. lehen aurkitu israeldarren zen luzeagoa sistema erabiltzen zen, orduan eta handiagoa denbora desadostasun zen, ondorioz barneratua erloju bat sistema informatikoan. -About Bi aste lehenago Dhahran tragedia, Israeldarrek nahi du Defensa Saila duten sistema denbora galdu zen. zortzi ordu edo lasterka egin ondoren, Nabaritu sistema dutela zen nabarmen zehaztasun gutxiago ari. Defentsa Sailak erantzun arabera Patriot bateriak guztiak kontatzea sistemei ez uztea denbora luzez. Inoiz esan dute denbora luzea was-- zortzi ordu, 10 ordu, 1.000 ordu. Inork ez zekien. Patriot bateria -The kuartel geldirik Dhahran eta bere flawed barne at erloju izan dira 100 ordu baino gehiago Otsailaren 25eko gauean. Denbora arloak zehaztasun bat -Ez bigarren hamarren bat inguru. Orain, segundo hamarren bat zenbakia interesgarri bat da, ezin da adierazi duelako binary zehazki, bertan esan nahi du, ezin da zehatz-mehatz adierazitako Edozein ordenagailu digital modernoaren. Zaila da sinesten. Baina erabili hau adibide gisa. Dezagun kopuru bat hirugarrena. hirugarren bat ezin izan hamartarrean adierazten zehazki. Hirugarren One 0,333 da joan infinitura. Ez dago modurik egin dela zehaztasun osoz hamartarrean. Hori da zehazki arazo mota Hori Patriot gertatu. Luzeagoa sistema zuena, eta okerragoa denbora error bihurtu zen. 100 ordutegia -Ondoren, etorri denboran error zen hirugarren bat bakarrik segundo baten. Baina bat targeting dagokionez misilen mach 5 bidaiatzen, segimendua batean 600 metro baino gehiagoko error. errore larri bat izango litzateke zer on soldaduak gertatu da Scud abian jartzeko detektatu Abisua goiz sateliteek eta bazekiten Scud zela Beren datozen Zuzendaritza. Ez dakite non datozen zen. Gaur egun, izan -Ez radar gehienez Patriot sistemaren osagaia Dhahran defendatzeko kokatu eta mantentzeko sarrerako etsaiaren misil pista. radar -The oso argia zen. Egia esan, jarraipena litzateke Scud posizioa, eta, ondoren, aurreikusteko, non ziurrenik hurrengo denbora radar bidaliko litzateke a pultsu out. Hori izan zen izeneko gama ate bat. Orduan, Patriot behin erabakitzen denbora nahikoa du gainditu atzera joan eta egiaztatu hurrengoan detektatu objektu honen kokapena, atzera egingo du. Beraz, itzuli zen oker hura leku, objektu ez du ikusten. Eta ez zela erabakiko da objektu, detektatzeko faltsu bat izan zen, eta pista jaisten. -The Sarrerako Scud desagertu radar pantailan. Eta segundo geroago, kuartelera sartu danbateko. Scud 28 lagun hil dira, eta azkena izan zen Lehenengo Golkoko Gerran tiro bat. Tragikoki, software eguneratu Hurrengo egunean Dhahran iritsi. software flaw izan izan finkoa, itxiera kapitulu bat nahasia du Patriot misil historia. [Bideo-erreprodukzioa] DAVID J. MALAN: Beraz, hori guztia esan gainezkatzea arazo horiek eta zehaztugabetasunak too errealak dira guztiak. Beraz, nola lortuko dugu hemen? besterik printf buruz hitz egiten hasi ginen. Berriz ere, funtzio honek zerbait bistaratzen pantailara, eta hortik aurrera sartu dugu beste zenbait funtzio deiturikoak CS50 liburutegia. Eta egingo dugu jarraitzeko ikusi horiek denbora dela eta. Eta guk, batez ere, erabili katea, eta int, eta gaur egun ere, karroza lortu, eta oraindik beste batzuk oraindik ere izango dugu topo eta erabili geure luze baino lehen. Baina oraingoan, izan Dagoeneko ikusi dugu beharra gordetzeko zer funtzio horiek eskuan itzuli? Gurekin atzera kate bat entregatu dute, edo int bat, edo mugikor bat. Eta batzuetan hori jarri behar dugu katea, edo int, float edo, nonbait. Eta gauza horiek gordetzeko, Gogoratzen besterik Scratch bezala, aldagai ditugu. Baina Scratch bezala, C benetako mota ditugu Datu aldagai mota, oro har gehiago horien artean, kate bat, int bat, bat flotatzen, eta beste batzuk, horiek oraindik. Eta beraz, aldagai aldarrikatzen dugu C, Gure datu-motak aldarrikatu izan dugu. Hau ez da zerbait egingo dugu geroago egiteko seihilekoan dute trantsizio dugu beste hizkuntza bat. Baina, oraingoz, behar ez dugu Aldez aurretik priori den, Ordenagailua zer mota azaltzeko aldagarriei digu eman nahi dugu. Orain, bere aldetik, to inprimatu Datu mota mota horiek, Esango printf zer espero behar dugu. Eta ehuneko kateak s ikusi genuen, eta ehuneko i zenbaki osoen, eta beste batzuk jada. Eta horiek besterik ez dira baldintzak ikusizko aurkezpen Informazio hori. Eta horiek bakoitzean benetan izan parametrized edo nolabait tweaked, kontrol sakontzeko nahi baduzu irteera mota lortzen duzu. Eta, hain zuzen ere, bihurtzen da, ez dagoela bakarrik ez da backslash linea berri bat egiteko n. Ez dago beste zerbait izeneko backslash orga itzulera, for r bertan da gehiago bat Akin eskola zaharra idazmakina, eta, halaber, Windows urte askotan erabili. Ez dago fitxetan backslash t da. Kontua da, hori nahi izanez gero kate baten barruan bikoitza aurrekontua, hori erabili dugu abisuaren bikoitza bikoitza aurrekontua aurrekontua ezker eta eskuin aldean gure kateak Amaieran, orain arte. Hori gauza nahastu omen ziren. komatxoak jarri nahi baduzu Kate bat eta, hain zuzen ere, erdian, nahasia ikusten da. Eta, beraz, ihes egin behar duzu, beraz, hitz egin, zerbait komatxoak bezala, literalki, backslash bikoitza aurrekontua. Eta ez gutxi beste bat da oraindik. Eta horietako gehiago ikusiko dugu luze baino lehen benetako erabilera. Hargatik trantsizio orain datuak, eta ordezkaritza, eta eragile aritmetikoen, guztiak horietatik eman zigun eraikin batzuk zein bloke to play. Baina orain utzi benetan ematen en Gurekin hiztegia gainerako dagoeneko izan dugu Scratch azken astean Begirada bat hartuz, beste batzuk arabera Duzula C eraikuntzen ez denak. Baina ideiak gaude Benetan, besterik ikusi buruz Itzulpen azpimarratzeko Hizkuntza bat, Scratch, bestera, C. Eta denboran zehar, jaso egingo dugu sortu gure toolkit tresna gehiago, nolabait esateko, sintaktikoki. Eta, hain zuzen ere, egingo ideia hori ikusten duzu dira orain, baizik astetik ezagutzen. Beraz, egin dezagun. Dezagun aurrera eta Greba programa bat hori benetan adierazpide batzuk erabiltzen ditu, adierazpen boolear bat. Dezagun aurrera me hemen eta fitxategi berri bat sortzeko. condition.c hori deitzen dut. Dezagun aurrera eta besteak beste CS50 liburutegia. Eta utzi aurrera me eta besteak Io.h estandarra gure funtzioak egiteko, eta printf, eta gehiago, hurrenez hurren. Neure burua ematen dit of boilerplate dagoela int hutsune nagusia, eta horren azalpena egingo dugu etorriko den etorkizunean. Orain aurrera me eta eman Neure burua get int bidez int bat. Ondoren utzi aurrera me eta hori egin. Esan nahi dut i bada less-- dezagun positiboa, negatiboa artean bereizteko, edo zero balioak. Beraz, bada, zero baino txikiagoa da i, let me besterik ez dute programa hau, besterik gabe, esan, negatiboa, backslash n, beste i zero baino handiagoa bada. Orain naiz, jakina, esan nahi du printf positiboa, backslash n. Eta gero beste if-- hau egin ahal izan dut. berdin i 0 bada egin izan dut. Baina egingo dut egiteko litzaidake Gutxienez akats bat dagoeneko. Gogoratzen berdin ikurra dela ez da berdina, gizakiak ezagutzen den bezala. Baina esleitzeko operadorea da. Eta ez dugu nahi 0 hartzeko on eskubidea eta jarri, i ere ezker. Beraz, nahasmena hau saihesteko, edo agian berdinen gehiegikeria sinatu, gizakiak erabaki duela urte batzuk programazio hizkuntza askotan denean, berdintasun egiaztatu nahi baduzu ezkerreko eta eskuineko arteko, erabili benetan berdin berdin. Beraz, berdintasun ikurraren bi aldiz sakatu duzu. Noiz izateko eskubidea batetik esleitu nahi duzu Ezkerretik, berdin zeinu bakar bat erabili duzu. Beraz Halako gehiago egin genezake i berdin berdin zero. ondoren, ezin izan dut joan ireki nire kizkur giltza, eta esan, printf 0, backslash n, egin. Baina gogoratu nola horiek Sardexka errepidea lan egin daiteke. Eta, benetan, logika pentsatu. i zenbaki bat da. zenbaki oso bat da, zehazki. Eta horrek esan nahi du gutxiago izan nahi du 0 edo 0, edo 0 baino handiagoa baino. Beraz, ez da honen moduko da Kasu inplikatzen lehenetsia. Eta, beraz, ezin izan dugu, besterik ez gustatzen Scratch, bestela, galtzen batera uztea, eta besterik gabe, bestela esateko. Logikoa denez, gero programatzaile dakigu ez da bakarrik hiru ontzi daude bertan bat sartu eszenatoki lehena fall-- daiteke, bigarrena, hirugarrena edo hau da, ez egin kasu traba doitasun osagarriak gehituz eta logika osagarriak han. Just joan aurretik batera lehenetsia kasuan hemen beste ezertan. Orain, goazen aurrera hau gorde ondoren, egin baldintza dot barra conditions-- Ez handia user interface, naiz ez delako galdetu du Erabiltzaileak, aipatu dudan bezala. Baina hori fina. mantentzeko erraza dugu. Dezagun saiatu kopurua 42. Eta hori positiboa da. Dezagun saiatu kopurua negatiboa 42, negatiboa. Dezagun saiatu balioa 0. Eta, hain zuzen ere, lan egiten du. Orain, arazo aurretik ikusiko duzu luze, probak gauzak hiru aldiz, Ziurrenik ez da nahikoa. Ziurrenik Probak egin nahi duzu zenbaki altuak, txikiago batzuk zenbakiak, izkinan kasu batzuetan, gisa deskribatzeko beharko dugu. Baina, oraingoz, hau da a Programa nahiko sinplea. Eta nahiko ziur nago, logikoki, erortzen dela hiru kasuetan sartu. Eta, hain zuzen ere, nahiz eta ez jakin, besterik potentziala downsides bideratuta zehaztugabetasunak eta gainezkatzea, in Errealitate non CS50 arazo asko, ez gara kezkatu joan , Denbora guztian, gainezkatzea gai horiek eta zehaztugabetasunak, baita, hain zuzen ere, C, Egia esan, ez dagoela guztien erraza gauza horiek saihesteko. gora zenbatu nahi badituzu handiagoa, eta handiagoa da, eta handiagoa, bihurtzen da, ez dira teknika duzu erabili ahal izango da, sarritan, gauzak inplikatuz liburutegiak, kodea bildumak, hori beste pertsona wrote erabili ahal izango duzula, eta beste hizkuntzetan bezala Java eta beste batzuk, egia esan, egiteko asko errazago are handiagoa zenbatu. Beraz, benetan arriskuak horietako batzuk erabiltzen duzun hizkuntzaren funtzio bat. Eta datozen asteetan, egingo dugu ikusi C nola arriskutsua benetan ez baduzu erabili behar bezala izan daiteke. Baina hortik aurrera, eta batera Python, eta JavaScript, egingo babesak gehigarri batzuk geruzari dugu, eta exekutatu arrisku horiek gutxiago. Hargatik egin apur bat gehiago gure programa logika interesgarri. Hargatik aurrera me eta sortu Logikoa izeneko programa bat Beraz, besterik batzuekin ezin dut jolastu logikak, logical.c. Besterik ez dut kopiatu eta itsatsi lehenago hain batetik kodea itzuliko naiz polita abiapuntua honetarako. Let me denbora Horretarako char C. naiz C izena emateko joan konbentzionalak da, besterik ez delako, erabiltzaileari pertsonaia bat lortzeko. Eta demagun bezala Naiz parte gauzatzeko I Rm programa horren, kendu Hori baino lehenago programa galdetuko erabiltzaileak fitxategi bat kentzeko. Nola liteke hori? Esan nahi dut, C berdinen berdin, aurrekontua unquote, y, ondoren, naiz bere gain hartzen joan Hori bai, erabiltzaileak aukeratu du. Besterik ez naiz bai inprimatzeko. egia esan, idazten ari bada kentzea programa, fitxategia kendu genezake Kode lerro gehiago. Baina mantentzeko erraza dugu. Bestela c berdin bada berdinen n-- eta, orain, hemen, erran nahi dut, erabiltzaileari nahiko zuenik ez. Eta gero beste, badakizu zer? Ez dakit zer gehiago erabiltzaileak idazten da. Beraz, ez dut besterik esateko duten joan Akats bat gertatu dela, edozein dela ere, berak benetan idatzi. Beraz, zer gertatzen da hemen? Ez dago funtsezko aldea da Iraganean egin dut versus. Komatxo bikoitzak, komatxo, bikoitza komatxo, eta, hala ere, komatxo bakar, Komatxo. Bihurtzen da, C, noiz Kate bat idatzi nahi, erabili komatxo egiten duzu, nik bezalaxe dugu dira guztiak hau erabiliz printf batera. Baina besterik bat landu nahi baduzu karaktere bakar, llamado char bat, ondoren, erabili benetan Komatxo. Nik programatutako Duzun dutenek aurretik, ez duzu nahikoa honekin kezkatu izan Hizkuntza eta zenbait bereizketa. C, Gaia ez. Eta beraz, char bat lortu dut eta nahi dut char duten konparatzeko berdinen erabiliz y edo n bezala letra batzuk berdin, ez dut, hain zuzen ere, behar du single quotes dute. Orain, dezagun aurrera, eta hori egin. Dezagun aurrera eta egin ez dot logikoa barra logikoa. Eta orain galdetuko ari naiz. Beraz, zentzuzkoa, bat hobeto erabiltzaile esperientzia litzateke benetan esaidazu zer egin behar dugu hemen. Baina ez dut besterik blindly joan den esan y bai, OK, polita. Dezagun exekutatu berriro, n ez da, polita. zenbait pertsona dakit bezala Demagun, Nire txapelak blokeatzeko tekla guztietan da sarri askotan. Beraz, ez dut kapital Y, sartu, error. Ados, ez da zehazki zer espero dut. Izan ere, ordenagailua hitzez hitz, zer egiten ari da Eta kontatu dut egiaztatu zuzen ere, egin minuskula y eta minuskulak n. Horrek ez du onak bezala sentitzen erabiltzaile esperientzia, ordea. Let galdetu zidan eta onartu bai minuskulak edo maiuskulaz. Beraz bihurtzen da, agian nahi duzu Zerbait esan behar bezala Scratch, bezala literalki edo C berdinen kapital bakar kotizatzen y berdin. Kontua da, C ez dauka literal hitz hori edo. Baina bi barra bertikala izan du. Shift eduki ohi duzu, AEBetako teklatu bat erabiliz gero, eta hit barra bertikala gakoa zure itzulera gako gainetik. Baina barra bertikala barra bertikala esan edo. Bada, ordea, nahi dugu esatea eta, Scratch bezala, ampersand ampersand egin genezake. Horregatik, logikoa zentzua ez hemen, giza bat ez nuke seguru delako idatzitako biak y eta minuskulak y eta kapital Y pertsonaia bera bezala. Beraz, edo zer Hemen asmoa dugu. Beraz, hori egin badut bi tokietan, edo c berdin berdin kapital N, orain berrabiarazi, egiten logikoa, berrabiarazi logikoa. Orain, y idatzi dut. Eta hori egin ahal izango dut berriro ekin kapital Y, edo kapital N. Eta ezin gehigarrian gehitu dut konbinazioak oraindik. Beraz, hau da logikoa bat programa bezala orain neurrian logikoki naiz egiaztapena egiteko balio edo balio hau. Eta ez dut egin behar, nahitaez, zatoz gora bi gehiago IFS edo bestela, IFS batera. I actually konbinatu ahal batzuk lotutako logika elkarrekin modu honetan. Beraz, hau hobe izango litzateke besterik baino diseinatu , Esaten C berdinen minuskulak y, inprimatu bai, beste c berdinen hiriburua Y, inprimatu bai, beste c berdinen beste era batera esanda lower--, ez duzu egin behar Gero eta gehiago, adarrak. baliokide batzuk konbinatu dezakezu adar logikoki, modu honetan bezala. Beraz, dezagun begirada bat besterik batean azken osagaia, final bat eraikuntza, C aukera ematen duen. Eta itzuli gara hasi beste batzuk oraindik etorkizunean. Eta gero, ondorioztatu dugu begira Ez, kode zuzentasuna at kodea lortzean work-- den baina diseinua kodea, eta haziak horiek landatu goiz. Beraz, aurrera eta ireki fitxategi berria hemen. Ba al dakizu zer? berriro ezartzea noa Programa hori bera, baina, hainbat eraikuntza bat erabiliz. Goazen azkar eman nire burua sarbide CS50.h, besteak beste CS50 liburutegia, Io.h estandarra printf da. Emadazu nire int hutsune nagusia. Eta gero, hemen, utzi aurrera zidan eta hori egin. Char c lortzen char, bezala aurretik. Eta ez dut eraikuntza berria erabiltzeko joan da gaur egun aldatu, zer pertsonaia on? Beraz switch atsegin mota da trenbidetik bat kommutazio. Edo, benetan, mota da bat, bestela bada, bestela, galtzen bada, baina idatzizko zertxobait ezberdinean. switch A itxura hau. izan beharko da, eta, ondoren, zer pertsonaia edo zenbaki begiratu nahi duzun, ondoren, kizkur giltza batzuk gustatzen hasi Scratch, besterik esan stuff hau egiten. Eta gero, kasu desberdinak behar duzu. Zuk ez duzu bada, eta bestela erabili. literalki erabili You hitza kasua. Eta honen antzeko zerbait esaten duzu. Beraz, minuskula y baten kasuan ere, edo kapital bat Y en kasuan, aurrera eta inprimatu bai. Eta, ondoren, break switch daudelarik. Hori da. Bukatutakoan dugu. Bestela, bada nolabait esateko, minuskulak n, edo kapital N, gero aurrera eta inprimatu kanpo dago, eta gero apurtu. Bestela, eta mota honetako da lehenetsia kasuan indeed-- printf errore eta, neurri ona, nahiz eta logikoki break hau ez da beharrezkoa Oraindik dugu amaieran delako hala switch, Naiz orain hautsi switch du. Beraz, itxura apur bat ezberdinak. Baina, noski, da, benetan baliokidea. Eta zergatik erabili duzu beste bat baino gehiago? Batzuetan, besterik lehentasun pertsonalak, batzuetan estetika, Begirada dut honetan bada orain, ez da zerbait du esan beharreko Kode honen irakurgarritasuna. Esan nahi dut, inoiz ez dio axola ere, hori kode berria da gutako askok aretoan. Baina besterik nolako polita da. ikusi duzu minuskulaz y, kapital Y, minuskulak n, kapital N lehenetsi, Mota besterik jauziak you at out modu batean , Hori, dudarik gabe, agian, aurreko adibidea IFS, eta barra bertikalak batera, eta bestela, IFS, agian ez dute. Beraz, hau benetan pertsonalen gai bat da aukeratu, benetan, edo irakurgarritasuna, kodearen. Baina, funtzionaltasunari dagokionez, let me aurrera eta switch, dot barra bat egin aldatu, eta orain minuskula y idazten, kapital Y, minuskula n, kapital N, David, berriz saiatu hori delako Ez karaktere bakar bat. Egin dezagun x, error, espero bezala dezagun. Eta, logically-- eta hau zerbait da oro har, nahiz eta animatuko nuke hasi bakarrik ari gara scratching arren Ezaugarri horietako batzuk azalera. Eta agian ez da begi-bistakoa denean duzu eseri zeure burua behera teklatua, nola ez du lan? Zer egingo zenuke? izatea gauza ederra da ordenagailu eramangarri bat, edo mahaigainean, edo sarbidea Konpiladore bat ordenagailu batera, eta kodea editore bat hau bezalako batekin, hau da, ia ezin duzu beti erantzun horiek Zuk zeuk galdera besterik saiatuz. Esate baterako, erretorikoak bada esku galdera zeuden, zer gertatzen da ahaztu baduzu Zure break adierazpenak? Zein da benetan bat Oso ohikoa gauza egin, delako ez du itxura atsegin benetan behar duzun horiek. ez benetan egiten dituzte zure parentesi bat edo kizkur bat bezala pentsatu giltza du. Dezagun aurrera eta berkonpilatu kodea eta ikusi. Beraz, switch, dot barra switch. Dezagun idatzi minuskulatan y, goiko kasuan, Sartu. Beraz y idatzi dut. Programak esan bai, ez, akats, balu bezala bere iritziz aldatzen hasi zen. Baina mota izan da, zer gertatzen delako switch batekin lehen kasua da hori Partidu funtsean esan nahi du, hey ordenagailua, exekutatu kode osoa azpian. Eta ez baduzu esan break, edo ez break esan, edo ez break esan, Ordenagailua putz joan Lerro horiek guztiak igaro eta horiek guztiak exekutatu arte lortzen kizkur giltza dela da. Beraz, balaztak dira, hain zuzen ere, beharrezkoa. Baina eramateko da hemen, denean Zalantzarik, saiatu zerbait. Agian gorde zure kodea lehen, edo gorde fitxategi gehigarri bat ere Oraindik benetan kezkatzen dira aldatzeari eta berreskuratu beharrik Dakizuenez duten lana da lanean. Baina gauzak saiatzeko. Eta ez izan beldurrik bezala, agian, Ordenagailua zer egin dezakeen, edo agian zerbait apurtu duzu. Dena den, beti aurreko bertsiora itzul zaitezke Bertsio batzuk. Hargatik amaituko begira kodea diseinua at. to idatzi gaitasuna izan dugu orain baldintza, eta idazketa loops, eta aldagai, eta dei funtzioak. Beraz, Egia, mota Oraindik dugu atzera non Duela aste bat izan dugu Scratch, gutxiago sinesgarria textual izan arren ingurumena Scratch baino ahalbidetzen. Baina nabarituko nola azkar eskuratutako dugu lexikoa dela, nahiz pixka bat hartu ahal izateko hondoratzea joan, beraz gaude gaur egun lexiko hau erabili ahal programak ere interesgarri idazteko. Eta dezagun haurra urrats bat Hori aldera, honela. Dezagun aurrera eta fitxategi berri bat sortu hemen. hau deitzera noa prototype.c, eta aurkeztu lehen aldiz, gaitasuna Zure funtzioak egiteko. Zuetako batzuk izan ditzake Egin honetan Scratch, Horren bidez, sor dezakezu zure egin blokeak pertsonalizatuak Scratch, eta gero arrastatzen tokian edonon litzaidake C. nahi duzu Eta programazio gehienetan hizkuntzak, zehazki egin ahal izango duzu -bere Zure funtzioak egiteko, ez dute existitzen bada. Beraz, adibidez, utzi aurrera me eta besteak CS50.h, eta, besteak beste, estandarra io.h, int hutsune nagusia. Eta orain izan dugu placeholder joateko prest. inprimatzeko gauzak mantentzeko I pertsonen izenak, gaur egun bezala. Eta hori sentitzen bezalakoa Ez litzateke polita bada ez inprimatu izena funtzio bat deitzen ziren? Nik ez dut printf erabili. Nik ez dut gogoratzen formatu kode guztiak. Zergatik ez dut, edo zergatik Ez zuen norbait me aurretik, sortu funtzioa deitzen inprimatu izena, izen batzuk eman duten, Besterik gabe, bistaratzen da? Beste era batera esanda, esan dut, beno, bada, ordenagailua, emaidazu kate bat Erabiltzaileak eskatuz hala nola arabera, CS50 get kate funtzioa bidez. Hey, ordenagailua, jarri kate horretan Ezkerreko aldean aldagaia, eta deitu s. Eta gero, hey ordenagailua, aurrera eta inprimatu pertsonaren izena, hori egin. Orain, polita izango litzateke, zeren Programa honetan, egokiekin izendatzen, esaten dit zer suposatzen da egin Funtzio horiek izenen bidez. Joan eta prototipoa egiteko, Sartu. Eta, zoritxarrez, hau ez da hegan joan. Prototype.c, linea 7, pertsonaia 5, error, inplizituki adierazpena funtzio inprimatu izena da C99, C99 baliogabea C bertsio bat zentzua atera zen 1999an. Hori da dena. Beraz, ez dakit zer Hori guztia esan nahi du oraindik. Baina aitortu error gorria egiten dut. Hori nahiko begi-bistakoa da. Eta badirudi dela Pertsonaia berde hemen, alea inprimatu izena da, open paren s, itxi paren, puntu eta. Baina adierazpena inplizituki Funtzio ikusi laburki lehenago egin dugu. Horrek esan nahi du, besterik gabe, Clang ez dakit zer esan nahi dut. lexiko hitza erabili ditut, hori da inoiz ikusi edo dira aurretik irakatsi. Eta horrela irakatsi behar dut zer esan nahi du. Beraz, aurrera noa eta ez dela joan. Aurrera joan eta ezartzeko noa izeneko inprimatu izena nire funtzioa. Eta nago, esan honela joaten da, eta hau, printf, kaixo, ehuneko egiten du s, backslash n, izen, puntu. Beraz, zer egin dezaket? Eta gertatu da, behar Zure funtzioa ezartzeko, mota dugu maileguan batzuk egitura bera nagusi gisa Nik dugun besterik ez egon hartu eman, eta I Badakizu kopiatu eta pretty much zer itsasteko Nik iraganean idazteko. Baina konturatu ereduarekin hemen. Int, nagusia, hutsunea, gain tease dugu luze baino lehen zer esan benetan esan nahi du. Baina gaur egun, besterik gabe, nabarituko paralelismoa. Hutsa, inprimatu izena, kate izena, beraz, ez da morea keyword bat da, eta horrek to hasteko goaz itzulera mota bat deituz, izenarekin funtzioa, eta, ondoren, sarrera. Beraz, benetan, destila dezakegu bezala, azken astean mota honetan bezala, honetan izena edo da digituak Oraindik dugu algoritmoa du idatzi egingo joan algoritmo azpiko digituak ari gara idazten joan. Honek bere sarrera da. Honek bere irteera da. Funtzio hau, inprimatu izena, da izeneko izen kate bat hartu diseinatu, edo dena delakoa, sarrera gisa, eta, gero, hutsunea. Ez du ezer egin, bezala lortu katea edo lortu int du. Beraz, niri entregatu zerbait atzera egingo. Besterik bat izan da joan alboko efektua, nolabait esateko, Pertsona baten izena inprimatzeko. Oharra Beraz, lerro 7, I inprimatu name deitu daiteke. 10 Line, definitu ahal dut edo ezartzeko inprimatu izena. Baina, zoritxarrez, hori ez da nahikoa. Dezagun aurrera eta berkonpilatu hau gorde ondoren. Tira, orain, egin dut okerrago, badirudi litzateke. deklarazio Beraz inplizitua funtzio inprimatu izen baliogabea da. Eta, berriro ere, ez akats gehiago da. Baina lehenago ohartarazi nuen bezala, nahiz eta itotzea lortu baduzu, edo pixka bat triste hainbeste ikusteko akatsak, bakarrik zentratu lehenean besterik Hasieran, zeren baliteke Kaskadako efektu bat izan. Beraz, C, edo Clang zehazkiago, oraindik ez du ezagutzen inprimatu izena. Eta hori delako Clang da, diseinu arabera, mota da mutu. Ez da zer esan nahi duzun egin. Eta bakarrik egiten du, beraz, ordena honetan bertan kontatzeko egin. Beraz nagusia lau lerro definitu dut, atsegin dugu izan nahiko maiz egiten ditudan. on line 10 definitu dut inprimatu izena. Baina erabiltzen saiatzen ari naiz inprimatu name on line zazpi. Honez goizegi, oraindik ez da existitzen. Beraz, clever izan dut, eta atsegin izan, Ados, beraz, utzi jolastu besterik en zehar, eta mugitu inprimatu izena eman hemen, eta berriro konpilatu. Oh my God. Lan egin. Hori bezain erraza izan zen. Baina logika da zehazki hori. Clang irakatsi behar duzu zer da lehenengo funtzioa definitu da. Ondoren, erabili ahal izango duzu. Baina, Egia, hau sentitzen malda irristakor bat bezala. Beraz, aldi bakoitzean I exekutatu Arazo bat sartu, besterik ez naiz nabarmendu eta kodea kopiatu joan idatzi nuen, moztu eta itsatsi hemen. Eta, ziur asko, ezin izan dugu asma agertoki batzuk non funtzio bat might beste deitu behar. Eta besterik ezin jarri guztietan beste ororen gainetik funtzioa. Beraz, izarrekin bihurtzen da ez da soluzio hobea. hau izan irten gaitezke. Eta, Egia, oro har, polita da, eta erosoa, eta diseinu ona nagusiak lehen jarri, izan ere, berriro, nagusia besterik berdea Ez klik bezala, duten funtzioa da lehenetsi gisa exekutatu. Beraz, baliteke ondo jarri Fitxategiaren goialdean da beraz, orduan duzu edo edozein beste giza fitxategia begiratzen zer gertatzen badakizu besterik nagusiaren lehen irakurriz. Beraz, bilakatzen da, Clang esan ahal dugu proaktiboan, beno, Clang, lau lerro, ezartzea agintzen dut funtzioa deitzen Inprimatu katea izeneko izen bat hartzen duten izena sarrera, eta itzultzen ezer, hutsune gisa. Eta inguruan lortu dut nahi gero berriro ezartzeko. Hemen dator nagusian. Main orain on line 9 erabil daiteke Inprimatzeko izena delako Clang dela fidatu, azkenean, definizioa topo egingo du, Inprim izena ezartzeko of. Beraz, nire fitxategia gorde ondoren, utzi aurrera me eta prototipoa egin, itxura ona denbora honetan. Dot barra, prototipoa, let me aurrera eta eman izen bat. David, kaixo David, Zamila, kaixo Zamila, eta, hain zuzen ere, gaur egun funtzionatzen duen. Beraz, osagai hemen da guk funtzio pertsonalizatu bat egin, ohitura bat bezala Scratch blokea ari gara deituz. Baina Scratch ez bezala, non egin dezakezu besterik sortuko da eta hori erabiltzen hasteko, orain bat izan behar dugu little more pedantekeriazko, eta benetan prestatzea Clang Erabili, edo espero. Orain, bat alde batera utzita, zergatik denbora honetan guztian izan besterik blindly izan dugu fedea barne CS50.h, eta barne io.h estandarra? Beno, bihurtzen da, beste gauza batzuk artean, Hori guztia dot h aietan da fitxategiak, gertatuko diren fitxategiak izan. goiburua ari dira fitxategiak, nolabait esateko. Ari dira oraindik C. idatzitako Baina ezberdinak, fitxategi-mota bat dira. Oraingoz, nahiko askoz gain hartzen duzu Hori CS50.h barruan dago hori guztia batzuk hau bezalako bat-atorrak, ez da izeneko inprimatu izena funtzio egiteko, baina lortu for String, Talde Higikorra, eta beste batzuk. Eta badira antzeko prototipoak, bat atorrak, io.h estandarraren barruan printf, hau da, orain ere nire kabuz Inprimatzeko izena funtzioa. Beraz, beste era batera esanda, denbora honetan guztian dut dugu berri da blindly kopiatu eta itsatsi besteak honetan, besteak beste, hori, zer gertatzen da? Horiek besterik Arrastoak mota daude Zein funtzio gisa Clang dira, hain zuzen ere, ezarri da, besterik gabe, beste nonbait fitxategi desberdinetan beste nonbait sistemaren gainean. Beraz inplementatu dugu inprimatu izena. Bigarren mailako efektu hau izan du Zerbait pantailan inprimatzeko. Baina ez du, benetan entregatu me zerbait itzuli. Zelan joan gara programa bat gauzatzeko duten entregatu ez dit zerbait itzuli? Beno, utzi hau. Dezagun aurrera eta ezartzeko izeneko fitxategi bat return.c beraz, nola zerbait frogatu ahal izango dugu bezala lortu katea, edo Talde Int, da benetan itzuli Zerbait erabiltzaileak atzera. Dezagun aurrera eta definitzeko int hutsune nagusia. Eta, berriro ere, etorkizunean, egingo dugu azaldu zer int dela eta hutsune hori da benetan egiten. Baina gaur, egingo dugu eraman emandako. Animatu eta printf joan noa, Erabiltzaile bat esperientzia ona da, x da. Eta, ondoren, itxaron noa Erabiltzaile me emateko get int x. Eta gero, aurrera noa eta inprimatu x plazara. Beraz, bakarrik behar duzu bat teklatua, jendeak normalean erabili azenario gutxi sinbolo teklatuan boterea irudikatzeko ren, edo adierazlerik. Beraz, x karratu present i da. Eta orain hau egin nahi dut. Besterik ezin dut zuzen ere, egin zer da x karratu? x karratu x aldiz x da. Eta egin dugu hau batzuk Duela denbora dagoeneko gaur. Horrek ez du gogorik askoz aurrerapen hori guztia. Ba al dakizu zer? Dezagun ideia horren batzuk leverage abstrakzioaren azken aldiz. Ez litzateke polita bada, izango da izeneko funtzio bat plaza hori zehazki noiz ez? Oraindik ere, amaieran Egun, matematika bera egiten du. Baina dezagun abstract kanpoan hartzea ideia zenbaki bat bider beste bat, eta besterik ez iezaiozu izena, atsegin plazan balio hau. Eta, beste era batera esanda, in C, dezagun funtzio bat plaza deitzen duten zehazki ez dagoela. Deitu behar plazara joan. Int bat hartu behar da. Eta egingo dugu eta hori deitu n, lehenetsita. Baina ezer nahi dugu deitu ahal izango dugu. Eta hori guztia da joan egin, literalki, bueltan da n aldiz n emaitza. Baina duelako zerbait itzuli, bertan morea dut dugun hitzarekin dago inoiz ikusi aurretik, I, on line 11, Ezin besterik esan hutsunea denbora honetan. Hutsa, adibidea ikusi besterik ez dugu baizik inprimatu izena, besterik esan nahi, Zerbait egin. Baina ez entregatu me zerbait itzuli. Kasu honetan, nahi dut itzultzeko n aldiz n, edo dena dela, kopuru hori. Beraz, ezin dut esan, beno, ordenagailua, ezer itzuliko naiz, hutsunea. Honez itzultzeko, naturak, int bat da. Eta beraz, hori da hemen gertatzen dena. sarrerako plaza int bat izango da. Eta, beraz, erabili ahal izango dugu, duela da izen bat dute, N. irteera da joan int bat ez duen izen bat behar. utzi ahal izango dugu nagusira, edo duenarentzat da me erabiliz badugu balio hau gogoratzeko bere aldagai egin nahi. Eta, berriro, berria bakarrik keyword hemen Return da. Eta besterik ez dut math batzuk egiten. Nahi izan dut alferrikako izan bada, Esan izan dut int produktua lortzen n aldiz n. Eta gero esan izan dut, itzuliko produktua. Baina, berriro ere, nire puntu bat lehenago besterik ez egotea diseinua da ona hau bezala, zergatik aurkeztu izen bat, sinbolo bat, produktu bezala, besterik ez da berehala itzultzeko? garbiagoa txiki bat da, apur bat estuagoa, beraz, Esateko, besterik bueltan n aldiz esan n, lerro hau kentzeko erabat. Eta kodea besterik gutxiago irakurri da, akatsak aukera gutxiago. Eta ikus dezagun bada benetan, orain lan egiten du. Orain, joan noa Animatu eta egin bueltan. Uh oh, funtzioaren adierazpena inplizituki. Akats hau big aurre ez egin nuen aurretik,. Demagun idatzi besterik me, edo nabarmendu eta kopiatu, zehatza bera funtzioa prototipoa, edo sinadura, funtzioa eman hemen. Edo funtzio osoa mugitu ahal izan nuen. Baina hori da pixka bat alferra. Beraz, ez dugu hori egin. Orain, bueltan egin dit berriro, dot barrarik bueltan. x da 2. x karratu 4 da. x dago 3. x karratu 9 da. Eta funtzioa badirudi orain lan egin behar da. Beraz, zein da diferentzia hemen? hori plaza izeneko funtzio bat daukat, Kasu honetan, bertan jarri dut sarrera batean ere. Eta ni itzuli irteera bat. Eta, hala ere, aldez aurretik, bada Beste adibide bat ireki dut lehenago, eta horrek prototype.c deitzen zen, inprimatu izena, izan nuen eta horrek itzuli hutsunea, nolabait esateko, Edo ezer itzuliko da, eta besterik izan bigarren mailako eragina. Beraz, zer gertatzen da hemen? Beno, kontuan funtzioa katea iritsi une bat besterik ez da. funtzio erabili dugu lortu honela katea. Izan dugu funtzio bat lortuko katea, horien artean CS50.h, besteak estandarra io.h, int, nagusia, hutsunea. Eta gero, denbora guztietan dut izeneko katea, orain arte, Nik esan nuen zerbait bezala, katea s lortzen katea iritsi, get kate delako dezagun dei get.c-- lortu katea hau berak kate bat itzultzen duten gero ezin dut erabili, eta esan, kaixo, koma, ehuneko s, backslash n, s. Beraz, hau adibide bera da, benetan, lehenago izan dugun. Beraz, kate-balio bat itzultzen. Baina une bat, inprimatu katea ez du baliorik itzuli. Albo-efektu bat du, besterik gabe. Beraz, hau funtsezko aldea da. desberdinak ikusi dugu funtzio mota orain, horietatik batzuk itzuli egin balioak, horietatik batzuk ez. Beraz, agian, kate, edo int, float edo da. Edo agian besterik void da. Eta diferentzia da funtzio horiek erabiltzen duten datuak lortu eta baliorik itzuli dira benetan Zerbait itzularaztea mahaira, nolabait esateko. Beraz, goazen aurrera eta azken multzo bat begiratu Adibide hori zentzu bat ematen, orain, de nola genuke, hain zuzen ere, abstraktua hobea, eta hobeto, eta hobeto, edo gehiago, eta gehiago, eta gehiago, ordena Idazteko, azken finean, kodea hobea. Dezagun aurrera, eta espiritua ere Scratch, honako hau. Dezagun aurrera eta besteak CS50.h eta io.h. Dezagun aurrera eta eman Neure burua int, nagusia, hutsunea. Eta utzi aurrera me, deitu cough.c hau. Eta utzi aurrera me eta besterik Scratch bezala, inprimatu eztul / n. Eta hau hiru aldiz egin nahi dut. Beraz, ez dut, noski, besterik joan kopiatu eta itsatsi hiru aldiz. Naiz orain egiteko joan eztul eztul dot barra. Dezagun eman neure burua apur bat gehiago gela Hemen, Sartu, eztul, eztul, eztul. Ez dago, jakina, dagoeneko bat hobetzeko aukera. kopiatu eta itsatsi dut aldiz gutxi gaur. Baina hori ez zen bakarra, beraz, ez nuen dituzun karaktere idatzi behar. Oraindik ere aldatu dut zer kode lerro horiek dira. Hiru lerro hauek berdinak dira, sentitzen alferrak eta hain zuzen ere, hau da, eta ziurrenik ez da planteamendu egokia. Beraz, zer osagairekin ezin kode hau hobetzen dugu? Ez dugu kopiatu eta itsatsi kodea. Eta, hain zuzen ere, une oro sentitzen duzu yourself kopiatu eta itsatsi, eta ez baita kodea aldatuz, odds dira hobeto modu bat da. Eta, hain zuzen ere, ez da. Dezagun aurrera me eta egin begizta, nahiz eta sintaxia agian ez naturalean etorri oraindik. Egin hori hiru aldiz, besterik gabe, honako hau eginez eta hau jakin praktika gertatuko dut. Baina adibide bat dugu orain. Eta ikusiko duzu online erreferentzia gehiago oraindik. Hau on line 6 sintaxia da, hori Scratch hori errepikatzen bezala askoz blokea, errepikatu ondorengo hiru aldiz. magiko pixka bat da oraingoz. Baina hau gehiago lortuko, eta gehiago ezagutzen. Eta hori da, errepikatu egingo da lerro zortzi hiru aldiz, beraz, hori badut berriro konpilatu egiteko eztula, dot barra eztul, eztul, eztul, eztul. oraindik ere modu berean lan egiten du. Beraz, hori guztia fina eta ona da. Baina hori ez da oso abstraktu. Primeran zuzena da. Baina sentitzen ez bezala aukera bat izan daiteke, munduan bezala Scratch, hasiera-mota semantika batzuk gehitzeko hemen, beraz, Ez besterik ez dut batzuk begizta, eta funtzio bat dela dio eztul, eztul edo duela. Ba al dakizu zer? Dezagun bat izan saiatzen me Hori baino freskoago gutxi, eta benetan funtzio bat idatzi duten bigarren mailako efektuak batzuk ditu, deitu eztula. Eta sarrera ez du egiten, eta balio no irteera bezala itzultzen. Baina zer egiten duen jakin nahi duzu? printf dute hau egiten du, aurrekontua unquote, eztula. Eta orain, hemen sortu, banoa Animatu eta int joan, i lortzen zero, i 3 baino gutxiago, i plus plus. ez printf egin, hau da, noa dudarik gabe, txikia mailan ezartzeko zehatz-mehatz. Ez zait axola nola eztula. eztul funtzioa erabili nahi dut. Eta besterik ez dut eztul deitu behar. Orain, nabarituko dikotomia. Funtzio bat deitzen duzu, ez baduzu Nahi jasotzen da, guztiz fina emateko. Just egin paren, itxi paren, eta Bukatutakoan. Noiz funtzio bat definitzen duzunean, edo deklaratzeko funtzio baten prototipoa, jakin aldez aurretik egiten bada, ez da argumenturik hartzen joan, esan parentesi horiek hor hutsunea. Eta horrek zenbait duzula ez du ustekabean gehiegikeria da. Dezagun aurrera eta eztula egiteko. Eta, jakina, akats bat egin dut. Dammit, ez da hori inplizituki adierazpena. Baina hori fina. konponketa erraza da. Behar dut, prototipoa gorago nire fitxategia benetan baino ez dut erabiltzen. Beraz, orain utzi egin zidan eztul berriro, polita. Orain, lan egiten du. Egin eztul, eztul, eztul, eztul. Beraz, agian benetan ari garela uste al duzu pasatxo arazo hau ingeniaritzako. Eta, hain zuzen ere, gara. Hau ez da ona programa baten hautagaia une , Refactoring eta zertarako egiten hierarkiko deskonposizio deitzen, non kodea pixka bat hartu duzu, eta, ondoren, nolako duzu faktore gauzak, eta, beraz, semantika gehiago haiei zien, eta berrerabiltzea da epe azken finean jada. Baina eraikin bloke bat lortze da programak sofistikatuagoa noiz hasiko gara luze baino lehen idatziz ahalbidetzen hiztegia gurekin horrekin kodea hobea idazteko. Eta, hain zuzen ere, ikus dezagun badugu ezin hau orokortu gehiago. herren pixka bat dirudi, I nagusiak, Behar den darn hau kezkatu begizta, eta eztul deituz, behin eta berriro. Zergatik ezin dut besterik esango eztula, mesedez eztul hiru aldiz? Beste era batera esanda, zergatik ezin dut besterik sarrera eztul eta hori egin dezaten? Zergatik ezin dut esan, in eztul nagusia hiru aldiz. Eta orain, hau da, mota magikoa. It oso-etorriko da hemen. Eta da, hain zuzen ere, haurra urrats bat. Baina gaitasuna besterik esateko lerro zortzi, eztul hiru aldiz, besterik ez da, beraz, askoz gehiago irakurtzen. Eta, plus, ez dut jakin edo zaintzeko eztul nola garatuko da. Eta, hain zuzen ere, beranduago hasi du epe eta azken proiektu, batera proiektu bat aurre baduzu Ikaskide bat edo bi ikaskideekin, konturatzen zarela joan izan, edo nahi den, zatitzea lana. Eta erabaki nahi joan zaren Aldez aurretik, nork zer egin behar zuen, eta bertan piezak ere? Eta ez litzateke polita izango da baduzu, adibidez, hartu idatziz nagusia arduratzen, egin. Eta zure gelakide, edo zure bazkide orokorrago, eztul gauzatzeko ardura hartzen. Eta zatiketa hori, horiek abstrakzioa hormak, edo abstrakzio-geruza bada izango duzu, dira super indartsua, batez ere handiago delako, konplexua programak eta sistemak, Jende anitz eraikitzeko aukera ematen du Gauzak elkarrekin, eta, azken finean, puntu euren lana elkarrekin modu honetan. Baina, jakina, dugu Behar den orain konpondu eztula. eztul kontatu behar dugu hori, beno, badakizu zer? bat hartu behar joan zaren input-- beraz, ez da hutsa, baina int eta orain. Dezagun aurrera eta jarri eztul int du. i lortzen zero. i zenbat aldiz baino txikiagoa da. Hiru esan dut lehenago. Baina hori ez da nahi dudana. nahi eztul I beharreko orokortua Bat iterazio kopurua onartzen. Beraz, hain zuzen ere, da n nahi dut, edozein erabiltzaileari esaten dit. Orain, aurrera I eta inprimatu eztul esan. Eta ez du axola zer zenbakia Erabiltzaile pasatzen ere, duten hainbat aldiz batetik bestera joateko egingo dut. Beraz, egunaren amaieran, programa berdina da. Baina hori guztia stuff nabarituko izan, nahiz eta beste fitxategi bat izan. Izan ere, ez dut ezagutzen Une nola printf ezarri da. Ez dut une jakin nola lortu katea, edo lortu int, float edo lortu burutzen dira. Eta ez dut nahi ikusi haiek nire pantailan. Denez, naiz ardatz hasita I nire programa, ez funtzio horiek. Eta horregatik, hain zuzen, laster duzun bezala hasteko hau bezalako kodea factoring out, nahiz eta ezin dugu mugitu eztul fitxategi bereizi behar? Beste norbaitek ezartzea izan. Eta zuk eta zure programa bihurtu oso ederra, eta oso irakurgarria, Dudarik gabe, benetan lau lerro programa bertan. Beraz, goazen aurrera orain eta aldaketa gehiago egin. Ohartu nire prototipoa aldatzeko gaina du. Hargatik hori konpondu dit, beraz, ez dut lortu oihu at. Egin eztul, eztul utzi exekutatu me behin gehiago, oraindik ere gauza bera egiten. Baina orain, nabarituko bat dugu final bertsio bat osagai. Ba al dakizu zer? Ez dut nahi, besterik eztula, nahitaez. Zerbait orokorrago izan nahi dut. Beraz, badakizu zer? Hau egin nahi dut. , Dute askoz Scratch bezala nahi dut ez, esan bloke bat, baina ez besterik zerbait esan zenbat aldiz batzuk. kate oso zehatz bat esan nahi dut. Eta, beraz, ez dut nahi, besterik esaten da eztula. esatea nahi dut edozein katea da gainditu. Oharra Beraz, orokortu dut hau, beraz, orain dela say izen ona bat bezala sentitzen hau da, Scratch bezala, Bi argumentu hartzen, Scratch bezala. One katea da. One int bat da. Eta horiek aldatzeko nezakeen. mota besterik ez dut ideia bezala katea esan lehenengo, eta, ondoren, zenbat aldiz geroago. Hutsa oraindik esan nahi du ez du ezer egin. Hauek besterik bisualak albo dira ondorioak, [ostean? Jordan,?] hitzezko albo yelling efektua. Oraindik ez du zerbait n aldiz, 0 gehienez, baina ez berdin n. Horrek esan n guztira aldiz. Eta gero, besterik inprimatu edozein katea dela. Beraz, benetan dut orokortu kode-lerro hau. Beraz, orain, nola ez dut ezartzeko eztul funtzioa? void eztul egin ahal izango dut. Eta oraindik ezin dut hartu ere nola hainbat aldiz eztul nahi. Baina badakizu zer? Dut orain punt daiteke esan. batera esateko deitu ahal dut hitza eztula, n pasatzerakoan. Eta, gainera, martxan jarri nahi badut, soilik ondo pasatzeko, doministikua funtzio bat, Aldiz kopuru batzuk doministiku dezaket. Eta berrerabiliz n gorde ahal izango dut, baita nabarituko testuinguru edo esparrua honetan m dagoela bakarrik funtzio honen barruan existitzen. Eta n testuinguru honetan bakarrik Funtzio hau hemen barruan badago. Beraz, itzuli dugu esparrua gai horiek. Eta hemen, besterik ez dut esan nahi, achoo, eta, ondoren, n aldiz, puntu. Eta orain, besterik gabe uzteko behar dut Funtzio hauen sinadurak sortu hemen. Beraz, eztul zuzena da. Hutsa doministikua zuzena da orain. Eta nik oraindik besterik esan behar. Beraz, ez dut, esan esateko joan katea, int n, puntu. Beraz, ez dut gehiago-ingeniaritza heck programa honen. Eta horrek ez du nahitaez esan hau da zer idaztean egin behar duzu are gehiago, programak errazena. Hartu zerbait da, jakina oso sinplea, oso laburra, eta berriro ezartzea da Modu gehiegi kodea erabiliz. Baina, egia esan, ikusi ahal izango dituzu, eta in denbora atzera begiratu adibide horietan oinarrituta, eta konturatzen, oh, horiek dira urratsak benetan orokortu hartu genuen, Zerbait faktore out, Egunaren amaieran arte Nire kodea da benetan nahiko arrazoizkoa. Hiru eztul nahi badut delako aldiz, gero eta doministiku hiru aldiz, ez dut besterik gabe berrabiarazi joan, Programa egiteko eztula, eta exekutatu eztula. Eta hiru eztula daukat eta hiru doministiku. Eta, beraz, hau da, oinarrizko bat paradigma, izango bada, nola liteke joan gara for benetan programa bat ezartzeko. Baina goazen ikusi besterik orain zer den dugun izan denbora hori guztia egiten, eta zer azken pieza batzuk agindu honen atzean daude. Egunaren amaieran, Dugu Clang gure konpiladore gisa erabiliz izan dira. Izan gara iturburu idazten kodea, bihurtzeko Clang bidez makina kodea. Eta Zuk Egin besterik erabiliz dugu Gure zanpatze beraz errazteko ez dugula izan behar gogoratu Clang beraren enkantamenduak horiek. Baina zer da benetan Egin egiten? Eta, aldi berean, zer da Clang benetan egiten? Bihurtzen da, sinplifikatu egin dugu, nahiz Gaur egungo eztabaida esanez, iturburu-kodea hartu duzu, bezala pasatzen da konpiladore bat, eta horrek ematen dizu sarrera Makina irteera kodea, bihurtzen ez en urrats ezberdinak batzuk han barruan. Eta konpilazioaren gertatzen euritakoa izan urrats sorta oso bat epe. Baina utzi tease besterik en out hau benetan azkar. Bihurtzen da dugun lana egiten duten Gauza gehiago aldi bakoitzean programa bat exekutatu dut, edo aldi bakoitzean programa bat bildu dut gaur. Beraz preprocessing aipatzen ezer Halako C programa batean, dugu behin eta berriro ikusiko dugun bezala, Hori hash sinbolo honekin hasten, edo hashtag ikurra hemen, esan nahi preprocessor direktiba da. Horrek esan nahi du, kasu honetan, hey ordenagailua, zerbait fitxategia honekin benetan konpilatu duzu nire kodea egin baino lehen. Kasu honetan, besteak beste fidatu da, funtsean, C-ren esateko modu, hey ordenagailua, joan edukiak zaitez CS50.h eta itsatsi hemen. Hey ordenagailua, joan zaitez kide Io.h estandarra edukiak, edonon duten on da disko gogorra, itsatsi hemen. Beraz, gauza horiek gertatuko Lehenengo preprocessing zehar. Eta Clang du hori guztia guretzat. Eta ez da, beraz, darn azkarra, nahiz eta ez duzu ikusi lau gauza desberdin gertatzen. Baina hori lehen urratsa, hala nola da. Zer da benetan gertatzen da hurrengoa? Beno, hurrengo ofiziala urrats konpilatzean da. Eta bihurtzen da programa bat konpilatzean Teknikoki esan nahi joan iturburu-kodea, stuff dut dugu ek idazten du gaur, zerbait izeneko muntaia kodea, zerbait itxura apur bat ezberdinak. Eta, hain zuzen ere, hau ikusiko dugu benetako azkar. Let me benetan nire IDE sartu. Dezagun aurrera me eta hello.c irekita, eta horrek Oso lehen programa da eta bertan lan egiten dugu gaur hasi zen. Eta utzi aurrera me eta exekutatu Clang bat gutxi ezberdinean, Clang-s, hello.c, hau da, benetan joan ematen dit beste fitxategi hello.s. Eta Ziurrenik inoiz ez Berriro ikusi kode mota hau. maila txikiagoa hartzen bada sistemak CS61 bezalako klase, Asko gehiago ikusteko aukera izango duzu kode mota honen. Baina hau muntaia hizkuntza da. Hau x86 muntaia hizkuntza da PUZaren hori azpiko CS50 IDE benetan ulertzen. Eta críptica egiten duen bezala begiratu, zerbait da Ordenagailua ulertzen nahiko ongi. Sub q, hau Kenketaren bat da. Ez dago mugimenduak. Ez da funtzio deituz hemen, x oring, mugimendu bat, iragarki bat, pop bat, itzulera bat. Beraz, ez da batzuk oso maila baxua argibideak PUZ ulertzen alluded lehenago dut. Hori zer Intel Inside da. Badira patroiak zeroen eta hori arcanely idatzitako hauei mapa, baina zertxobait ondo izendatu, argibideak, nolabait esateko. Hau da, zer gertatzen da zure kodea konpilatu duzu. muntaia lortuko duzu hizkuntza da, eta horrek esan nahi du, hirugarren urratsa da muntatzen muntaia kodea duten sartu, azken finean, makina, kode zeroen eta bai, ez du Testu hori ikusi besterik ez dugu une bat duela. Beraz, pre-prozesatzeko ez dela aurkitu eta ordezkatu, eta beste gauza batzuk. Konpilatzean zure source hartzen C-tik kodea, kode iturria , Idatzi zuen dugun muntaia ra kodea duten at begiratu besterik ez dugu. Muntaia muntaia eramango zero eta bai ondorengo kodea PUZaren benetan izango dela Egunaren amaieran ulertzeko. Eta linking azken urratsa da Hori us-- gertatzen berriro, hain azkar ez dugu, nahiz eta nabarituko dela dio, hey ordenagailua, hartu guztia zeroen eta bai Daviden kodea konpilatzean ondorioz, eta kasu honetan haren funtzio nagusia. Eta beno ordenagailua, joan zaitez zero eta bai guztia CS50 langileen idatzi duten CS50 liburutegi barruan. Nahastu haietan Daviden batera. Eta beno ordenagailua, joan zeroen guztiak lortu eta bai beste norbaitek idatzi zuen urte Duela printf da. Eta gehitu sartu dutenak Gauza osoa, beraz, amesten dugu Nire zeroen eta bai, lortu CS50 langileen zeroen eta bai, printf zeroen eta bai, eta erabiltzen ari garen beste ezer. konbinatzen emateko ziren denak elkarrekin bat sartu izeneko programa, kasu honetan, kaixo. Beraz, hemendik aurrera egingo dugu besterik erabili hitza konpilazioaren. Eta emandako egingo dugu hartu duten esaten dugu, konpilatu zure programa, esan nahi duen, hey egin du aurretiaz tratatzeko , Muntaia eta lotuz. Baina ez da benetan mamitsuena stuff batzuk han gertatzen kanpaia azpian. Eta batez ere baduzu lortu bitxi denbora pixka bat, poking hasteko dezakezu txikiagoa maila honetan inguruan. Baina orain konturatzen hori Gaurko takeaways artean dira nahiko besterik gabe, prozesu baten hasieran, eroso lortzeko kaixo mundua antzeko zerbait. Izan ere, gaur egun, zer egin dugun gehiena Zalantzarik ez hondoratzeko super azkarra. Eta pixka bat hartuko du denbora, eta praktika batzuk. Eta arlo honetan, ordenatzeko izango duzu nahi zure teklatua hit edo pantailan Yell. Eta hori guztia da OK. Nahiz eta, agian, ez saiatu ez da liburutegian hainbeste. Eta azken finean, egingo duzu egon arren, gai, hasteko ereduak ikusita, biak kodea onean idatzitakoa dela eta akatsak ere egin duzula. Eta prozesua ere askoz TF bihurtu edo CA bat bezalakoa da, hobea lortzeko hasi zara eta eredu horiek ikusiz hobeto, eta besterik zure konpontzeko egin arazoak, azken finean. Bitartean, han ugari izango dira Gutako asko laguntza eman nahi, eta lortu duzu honen bidez. Eta idazteko-up in arazoetako guztientzat egingo zehar gidatuko komando guztiak Hori, zalantzarik gabe, ezagutzen dut Praktika asko honezkero, baina flown izan liteke Norberaren burua orain baino gehiago. Eta guztiz fina. Baina, azken finean, bazoazela ereduak azaleratzen ikusteko hasteko. Eta behin guztia iraganeko duzu ergelak xehetasun, parentesi bezala, eta kizkur giltza, eta erdi-puntu bikoitza, eta stuff, Egia, Hori ez da batere intelektualki interesgarria. Eta ez da helburua, edozein klase sarrera hartzen. diren axola ideia da. loops da, eta baldintza, eta funtzioak, eta gehiago potentziaz abstrakzioa, eta kode factoring du, eta diseinu ona, eta ona du estiloa, eta, azken finean, zuzentasuna Zure kodea, hori da, azken finean, gehien axola joan. Beraz, datorren astean, hauek hartuko ditugu hori lehen Scratch ikusi genuen ideia eta orain itzuli C. Eta hasiko dugu lehen aurkeztu Jakina egungo munduan benetako domeinuak. segurtasun munduan dugu arreta, eta, zehatzago, kriptografia, Informazio scrambling arte. Eta lehenengo artean Duzu zeure burua haratago idazteko lortuko sintaxia batzuekin jolasten eta logikoa batzuk konpontzeko arazoak, azken finean, luze baino lehen, da benetan Scramble, edo enkriptatzeko, eta, azken finean, informazioa desenkriptatzeko. Eta hori guztia egin dugu Gaur egun, nahiko txikia maila, hau da, besterik gabe, aukera ematen joan bat, eta beste bat hartzeko aukera ematen digu, eta batez ere, urrats bat gehiago interesgarrienak kodea idatziz oraindik. Beraz, hurrengo astean gehiago. [Bideo-erreprodukzioa] -Zer esaten didazu buruz azken aldian zion ikusi duzu? -Zer, esan nuen, benetan? Esan nahi dut, izan zen beste edozein bezalakoa da pre-produkzio entsegu, ez zen zerbait izan ezik, esan zuen Oso amaiera hori nirekin itsatsita at. CS50 zen -Hau. -Hori Ebaki denek bat da, entsegu lan handi. -Hori Bazkaria? -Bai, Zuk eta nik, ahal har pixka bat ere ogitarteko bat. Let me with debrief besterik David benetan azkar. David? David? [END erreprodukzioa]