[Musika jotzen] HIZLARIA 1: Hau CS50 da, eta hau da aste bi hasteko da. Beraz, dezagun murgiltze eskubidea zerbait sartu da, akatsak, nolabait esateko. Beraz, hemen baino gehiago CS50 IDE da eta dut bota, aldez aurretik honen pantailan madarikatua da. Spoiler alerta. Ados. Bota dut pantaila hau hemen, zein programa oso sinplea du. Behera joan gara, gehienetan hau da, besterik gabe, komentario, baina hemen 13 lerro bidez 17 programa bat dugu. Sintaktikoki zuzena, eta horrek esan nahi du, bada Konpilatu, konpilatu eta exekutatu izango da, baina buggy da. Programa honek iruzkinak erreklamazioak duten goi 10 puntuak inprimatu behar da, baina ez da. Eta oinarritutako zure esperientzia, edo laster C esperientzia izan nahi du, ahal logikoki bereizten dituzu Horregatik, hori da, hain zuzen ere, akatsak egotea? Bai? Ikusleak: zero 10era doa. Hori 11 iterazio da. HIZLARIA 1: Bai. Beraz, zerotik da joan bidez sortu eta berdintasunaren eta 10, jakina bertan 11 iterazio da. Beraz, da joan inprimatu, hain zuzen ere, 11 izarrak. Beraz, informatika konbentzio programazio hizkuntza gehienetan da, hain zuzen ere, besterik gabe, hasteko zero at kontatuta, baina zenbatu, baina ez barrena balio duzula benetan axola buruz. Orain, hau da gauza bat dela hartzen du pixka bat ohitu ere erabiltzen eta are gehiago, Scratch, diseinatu baitu programatzaileak ez edo ez ordenagailuan Zientzialari eta umeentzat neurri handi batean, izan diseinatuta dago oro har kontatuta batean hasten zara. Eta hori da isuna. You erabat has daiteke kontatuta batean hori erosoago bada. Eta zenbatu eta 10 bitartez, baina konturatzen duzu bereziki aste honetan eta, hori baino haratago besterik orain programazio gauza asko bere gain hartzen 0 lehenengoa da digitua dituen duzu zenbatu, zarela errazago aurkituko joan besterik hasierako ohitura hau sartu Hutsetik eta kontatuta balioa emateko Honi buruz Laguntza batetik oraintxe zaitez joan. Beraz, hori izan finkoa. Baino gutxiago aldatu dugu, edo berdinen besterik baino gutxiago. Ikus dezagun begirada bat Bigarren adibide bat hemen. Beraz, programa hau ere aldarrikatu du bere iruzkinak goiko sortu duten inprimatu behar da Hamar izarrak, baina ez da. Zer da bug hemen? Beraz, what-- eta barkatu, dezagun argi. 10 puntuak. Bat lerroko, baina ez da. Beraz, hain zuzen ere, utzi aurrera me eta konpilatu Honek apur bat gutxiago delako garbitu oinarritutako deskribapen horretan. Goazen gure iturburu sartu. Egin buggy dot barra bat, buggy. Ados, 11 izarrak, ikusi dut bertan problematikoa da oraindik, baina, era berean, guztiak ari dira lerro bat. Zein da arazoa hemen? Bai. Ikusleak: [INAUDIBLE]. HIZLARIA 1: Bai. Beraz, hau sotiltasun bat da ziurrenik Gogoratzen aipamen laburra egiten dit. Nahiz Dena ongi badirudi, nahiz nahiko, eta nik nicely koska, eta mota itxura Scratch-bezala linea hori 16 eta 17 Hemen, hain zuzen ere, horren pean koskatuak begizta. Hori jakitean. Ordenagailuak ez du ezagutzen edo ikusten espazio zuria. Espazio White besterik ez da gizakia ez digu estilistikoki. Ordenagailu jakin duzunean kizkur giltza, zein izango litzateke, hain zuzen ere, Arazo hau konpontzeko. Beraz, benetan dugu joan bada eta Esplizituki kizkur horiek jarri Arazo hau konpondu litzateke arabera konpilatzailea argi egiteko dut hori benetan exekutatu nahi bi kode lerro berriro, eta berriro, eta berriro. Baina zer da, oinarrizko azalpen? Eskuin? Ez zorrozki behar dugu giltza kizkur denbora guztian, seguruenik, nahiz eta onena praktika ohitura hori sartu nahi, hala ere, lortu nahiz eta bi gehitzen arren zure kodeari pertsonaiak. zergatik? Ikusleak: [INAUDIBLE]? HIZLARIA 1: Bai, beraz, hori beste irtenbide guztiz. Eskuin? Lehen begiratuan ez baduzu batez ere benetan eskertzen zer gertatzen den. Beno, ziur asko, ezin izan dugu bi gauza aldi berean eta besterik saihesteko arazoa guztiz. Eta hori da isuna, baina, gaur egun, gaur egungo helburuetarako, zer bug azalpena da? Zergatik ez ziren lerro horiek izar guztiak? Bai? Ikusleak: balezake duten It kode lerro bat behar duzu, Egin ahal izango duzu horiek gabe. HIZLARIA: 1 Zehazki. Hau giza konbentzio bat besterik ez da. Pertsonak konturatzen bat dela gutxi gogaikarriak edo lapurtera giltza kizkur guztietan jarri ahal izateko berea egin nahi guztietako baduzu da kode lerro bat exekutatu. Beraz, gizakiak erabaki batzuk Garai batean, hori da isuna. Zure begizta guztiak jarri nahi baduzu besterik ez hau bezalako lerro horretan, hori da bakar batera fina amaieran puntu eta koma. Baina bakarrik egin ahal izango da, besteak beste, kizkur giltza gabe lerroan. Beraz, CS50 estilo gida seinalatu egingo den bezala, Oro har, ikusiko duzu Ohitura ona da Horri buruz ari zaren arte lortu iheskor baina oso gustura konbentzio mota horiek eta zure gauza egiten. Beraz, betiere Oraindik auto bezala koherentea. Eta buruz gehiago hitz egingo dugu estilo pixka bat geroago, gaur egun. Beraz, utzi ireki me beste programa bat. Jakina, behar dugu Konpondu 10 baita. Dezagun aurrera me eta idatzi erreal bat programa azkar egingo dudala deitu, demagun, begizta dot C. Beraz, begizta dot C. Eta begizta dot C, naiz izan joan, besteak beste, I standard / O dot H int hutsune nagusia. Eta orain egin dezagun, besterik gabe, hain zuzen ere, begizta bat utzi. Beraz, 4 int dut lortzen zero. Esan, baino 50 gutxiago da dut. I plus, plus. Eta gero, hemen dezagun aurrera eta inprimatu F. Eta ondoren, inprimatu nahi dut eta lerro berri bat, koma. Eta hori guztia inprimatu behar 50 zerotik zenbakiak? Burua gutxira Ezetz. Nos gutxira. Zer da bug dagoeneko? Zer da akats erraza egin dut? Bai. Ikusleak: [INAUDIBLE]. HIZLARIA 1: Bai. Beraz, nahiz eta itxura, nahiz hau da like zer I nahi, Gogoratzen dut, hau da, era berean, besterik ASCII karaktere bat. Beraz, esan badut, inprimatu "I." Honez literalki joan I. inprimatu beraz, badut plug-in den leku bat nahi balio benetan hori egin behar dut eta, ondoren, plug-in the I balioa dinamikoki. Bestela, besterik ez dut joan lortu 50 I-pantailan en. Beraz, utzi aurrera me eta begizta hau egiteko, exekutatu, eta, hain zuzen ere, guztiak egin behar dugu Modu 49 bidez eman. Eta atzera joan nintzen denboran badut ikusi zero kopuruaren hasieran. Beno, zer mota I hondatzeko bada? Zer egin behar dut? Just ez dut pentsatzen ez duelako. Zein da programa hau. Behin berriro konpilatu eta exekutatu, logikoki, zer egin? Ikusleak: Ezer ez. HIZLARIA 1: Ez da ezer. Zergatik da hori? Ikusleak: I zero diseinatuta dago. Beraz, baldintza faltsua. HIZLARIA 1: Bai, hain zuzen. Kode guztiek zuzena da, sintaktikoki. Hau bilduko, hau kodea ihes egingo du, baina ez da zerbait erabilgarria joan I hasieratu delako zero dut. Ondoren, egiaztatu dugu, hau da: orain 50 baino handiagoa? Jakina, ez, ez da. Beraz, begizta inoiz exekutatzen guztietan. Zer zerbait egiten badugu apur bat gehiago jokatuz? Beraz, zer egin bada int atsegin dugu zero lortzen dut. Eta orain utzi bitartean erabili me begizta, eta horrek baldintza bat izan zen. Eta, esan nuen bitartean I baino handiagoa den bitartean edo zero, eta, ondoren, hemen ere I aurrera eta gorde fitxategia, begizta egiteko. Eta exekutatu dut. Zer ari naiz hau ikusteko joan berriz, begizta bat denbora? Bai. Ikusleak: begizta infinitua bat? HIZLARIA: 1, begizta amaigabea? Bai, eta zergatik? Ikusleak: da zero buruan. HIZLARIA 1: Bai. Beraz, I zero bezala hasieratu. Jakina, beti ere handiagoa da I edo baino 0 berdina gertatzen da. Beraz, besterik ez dut joan ikusi honen infinituki. Eta orain, hau heldu da behin edo ikastaro buru birritan. Zer gertatzen da duzu begizta infinitua bat? Ikusleak: Kontrol C. HIZLARIA 1: Bai. Beraz Control C azkenean erantzungo. Zoritxarrez, inprimatutako dugu dugun Milioika eta zero milioika dagoeneko eta, beraz, ordenagailua dauka Mota lortu nire aurretik. Beraz, alde batetara utzi da joan Pixka bat niretzat. Baina baduzu sakatu besterik Control C gutxi barru aldiz, zure Mac edo PC teklatuan, Azkenean, hain zuzen ere, amaitutzat eman behar da. Eta hala ez bada, erakutsi dugu zenbait luze non duzu aurretik teknikak indarrez benetan programak hil ditzake, askoz Windows eta Mac OS bezala, behar izanez gero. Baina saiatu beste zerbait. Gehikuntza benetan ni hau oraindik infinitua izango da? Demagun hau exekutatu me. Eta orain ez duzu mota ikusi zer gertatzen. Hau ere, begizta amaigabea sortu da. Baina hau trikimailu galdera bat pixka bat da. Zenbakiak betiko, hau gertatzen da? Ikusleak: No. HIZLARIA: 1 º Zergatik? Nos batzuk entzun hemen baino gehiago dut. Someone-- Yeah. Ikusleak: Ez daukazu nahikoa bit benetan mantendu egingo da. HIZLARIA 1: Ondo da. Alegia, ez dute nahikoa bit jarraitzea. Beraz, zer gertatuko? Besterik gelditzeko? Ikusleak: Uneren the-- itxi egingo da HIZLARIA: 1 izango itxi ditu begizta behera, baina zergatik? Zer ari den gertatuko joan bere mugak oso amaieran? Bai? Ikusleak: ziklo Izango da Zenbaki negatiboak atzera. HIZLARIA 1: Zenbaki negatiboak, edo besterik ez ginen positiboa tratatzeko bada, zero gutxienez. Beraz, bai, erabat. Gogoratu denbora azken aldiz ikusi dugun baduzu Kontatzailea zure bit gehiegi aldiz, eta han trinketa duzu gainezkatzea Zure int edukiera edo datu-mota da edozein dela ere, bazara Itzulbiratu joan, ziurrenik, bi zenbaki negatiboa. Edo zuk zehaztu ditudan bada zure sorta positibo bakarra izan behar du, bertan egin ahal izango duzu, baina Nik ez duten ikusi gabe, azkenean baliteke duzu gutxienez zero atzera. Nahiz eta, egia esan, bai. Kasu honetan, negatiboa zenbakiak, eta kasu horretan begizta da amaitutzat eman behar dugu Ez da dudalako, hain zuzen ere, baino handiagoa edo berdina zero negatiboa bada. Beraz, zoritxarrez, nola luze itxaron egin beharko dugu? Oraintxe ari gara, gehienez zer, 2 milioi-ish? 2 milioi bezalako gara, itxaron beharko goaz Egia esan, ez dugu ikusiko arte sintoma hau. Baina apur bat azkarrago ikusi ahal izango dugu, maybe-- ikusi dugu eten bada utzi. Etorri. Nahiz menuak dira poliki-poliki, agertzen dira. Ados. Beraz, etorri egingo dugun atzera luze baino lehen. Da ona, aldi madarikatua da, puppies. Iragarkiak batzuk egiteko denbora ona da. Beraz, agian, nahi izanez to YHack burutzeko, hau da, ekitaldi bat izatearen Gure Yale lagun babesarekin. Eta, hain zuzen ere, zenbait ikastaro hamarkadan TFS Yale honekin parte hartzen dutelako. YHack da nazioartean hack-a-thon anfitrioi eta ospatu Yale, elkarrekin 1.500 jarriz zabaltasuna hacker eta sortzaileak biltzen bezalako Mundu osoan zehar. Hau interesgarria da bada, Begirada bat hartu hemen. Hau oso azkar piztuta badago pantaila, hartu gaurko diapositibak begirada bat yhack.org URL da. Beraz, deialdiak azkar gutxi batzuk ere. Beraz, ofizialki atal izango hasteko datorren astean bai hemen eta New Haven. Gogoan izan be bat lortzea izan beharko email asteburu honetan geroago ziurrenik. Denbora asko behar da atal CS50 egiteko, emandako pertsona guztiak Inguruan klase eta denek mugitzen. Eta irakaskuntza bekadun 'guztiak ordutegiak, gainera, oraindik ere, solidifying baina egonaldia sintonizatuta email bat da, eta behar izanez gero egon, berriro atalean dezakezu han ondoren. Study.cs50.net. Beraz, etengabeko Partaide bat bada ere atal batean, konturatzen ia guztiak baliabideak erabiltzen ditugu ataletan publikoki CS50 eskuragarri URL hau hemen lekurik egokiena. Beraz, zuk inoiz nahi izanez berrikuspena berriro material sekzio edo irakurri aurretik, edo ez egin dezakezu, aste batzuk, konturatzen lagin diapositibak hori, eta arazoak, eta definizioak, eta gehiago dira bertan, baita. Bulegoko ordutegia berrekiteko gaur, eta bihar, eta asteazkenean, eta ostegunetan egiaztatu noski hamarkadan egitaraua webgunean. Eta, gainera, orain abiarazi gaur da CS50 eztabaidatu. Beraz, bada, eta noiz dagoen galdera baduzu bata bestearen edo Ikastaro horrek langileentzat, eta, oro har, lanean ari Arazo multzo batzuk, ez duzula nahitaez konturatzen ondoan duzu giza piztu dute. Ez dago inor han bada, ahal duzun iristea gurekin eta ikaskideei online CS50 bidez eztabaidatu. Beraz, eztabaida bat da Ikastaroan parte hartzeko board, eta hau dela konturatzen da, beharbada onena jarri denean duzu hasteko galdera bulego orduetan kanpo zehazki. Bazkariak martxan dira aste honetan ere. Fire eta Ice [INAUDIBLE] New Haven. Hartu Ikastaro en begirada bat Ordena web RSVP. Lehen etorri, lehen horretarako balioko. Hala ez bada, aste honetan lortu egin dugu ostiral gehienetan behin horiek indarrean den bitartean. Ados, eta, orain, kalifikatzeko buruz hitz bat. Arazoa sartuko gara batez ere bat ezarri da, hau da, aste honetan, eta arazo bi eta hortik aurrera ezarri. Zelan P multzo ebaluatzeko joan gara eta kalitatea kontratuan ebaluatzeko? Beraz, erabili duten lau ardatzetan da CS50, eta ari dira lau horiek hemen. Esparrua, bertan zenbakizko batean harrapatzen oinarri bakarrik nola P multzo askoz zuen aparailua duzu. Honez gutxi gorabehera dagokio ahalegina, eta gure atzemateko modu da zuen P erdia saiatzen zara ezarri, P multzo guztia. Hau erraza bat ezin hobea lortu da Hau egiten baduzu partiturak, hain zuzen ere, saiatu P multzo alderdi guztietan. Beraz, kontuan izan hori. Zuzentasuna zehazki dela. Zure kodea du lan zehaztapen gisa eta plantillen 'lagin irtenbide gisa Zure kodea duten iradokitzen behar du, hain zuzen ere, lan egiteko. Check 50, ez duzu bete egiten bada oraindik, P da zehaztapen bat ezarri eta, oro har bai / ez erantzun emango dizu Zure kodea zuzena den ala ez. Gutxienez, orain arte goaz gisa ebaluatzeko oinarritutako probak programaren barruan exekutatu garela. Diseinu askoz gehiago subjektiboa da. Hau da zure kodea nola ondo idatzia da. Eta hau zerbait dela denboran zehar hobea lortuko dituzu, eta zerbait ez dugu kualitatibo buruzko iritzia. Eta diseinua I might luze baino lehen esan nahi duzu P batzuetan liteke tentazioa Zerbait loopingly egin ezarrita, baina agian hiru, edo lau, edo dute trinketa nested bost begiztak edo habiaratu bitartean begiztak. Hori, oro har, egin beharko lukete hasteko cringe egiteko eta, oro har, izan jotzen diseinu txarra. Eta klasean ikusten hasi zara eta Klase gauzak egiteko modu ona atera, Gauzak egiteko modu txarra dela Baliteke guztiak izan zuzena, baina ez nahitaez ondo diseinatuta. Entsegu bat idaztea bezalakoa. Batean hitzak jarri ahal izango duzu agian diren gramatikalki zuzenak orria, baina saiakera edo tesia ari dira besterik da erabat inkoherentea den edo unpersuasive. Eta beraz, hori ere analogikoa izan liteke txarra edo ona diseinuaren idatzitako munduan. Eta estilo, ere, nahiko subjektiboa. Baina, gutxienez, koherentzia espero dugu. Hau da zure kodea nola nahiko da. Dira gauzak ondo koskatuak? Are zure aldagaiak ondo izeneko / Are guztiak Zure parentesi eta kizkur giltza lerrokatzea izan beharko lukete? CS50 estilo gida gisa egiten dugu Arazo multzo seinalatu egingo dute. Horiek erosoagoa dira ongietorria emateko duten stray beraz, betiere duzun auto koherente gisa. Eta honetan ere, ikasgai bat da atalean ikusiko dugun indartzeko. Beraz, hau guztia pixka bat bada azkarra, konturatzen P multzo eta atal egingo sakonago sartu baino askoz lehenago joan. Baina, oro har, ez dugu CS50 kuboak oso gutxi. Puntuazioak, oro har, eskala batean hiru bat edo bost bat. Literalki ari gara, eta ezin dut esan honen lehenengo astean nahikoa. Hiru ona da. Beraz, nahiz eta, hori bai, hiru egindako bost normalean, matematikoki, ehuneko 60 edo D ken bat bezalakoa izan liteke. Hiru da, hain zuzen ere, ona. Eta, hain zuzen ere, espero dugu gelako ikasle gehien terminoaren inguruan hasiko twos eta hirukoak, eta hankan. Bosten Seguruenik, ez hainbeste. Ez da gehiegi direnak. Baina, oro har, hasteko kurba Leku hori gozoa beraz, denbora aurrera egin ahala, ez da benetan gela, eta goiko progresio aukerak. Beraz, mesedez, ez hiru golak sartzeko esaterako,% 60koa da. Hori baino askoz gehiago abstraktua da. Formula horrekin kalkulatuko dugu kalifikazio honela haztatuko da. Zuzentasuna gehien merezi. Diseinu merezi apur bat txikiagoa da. Style merezi apur bat txikiagoa da. Eta hau, oro har, Denbora kopuru harrapatzen Hori bakoitzaren lortzean sartzen da ardatz horiek besterik eskubidea. Style super erraza da, super azkarra izan behar du, baina ohitura erraz bat da buruz alferrak. Zuzentasuna iraun dezake zuk denbora gehiena. Bug kemen batzuk behera jarraitzen aparteko ordu edo gehiago hartzen dute, eta beraz, puntuagarria azken batean harrapatzen. Eta, beraz, orain hitza larria. Geroztik CS50 ditu bereizketa, hobeto edo okerrago, izatearen agian hobeto ezagutu akademiko gaiak gehienak beste edozein ikastaro baino zintzotasuna. Eta hain zuzen ere, ez da nire ezagutza dela ikasle gehiago bidaltzen dugu, zoritxarrez, Diziplina-helburuetarako urtero ondorioz. Beraz, osoa interesa ere dibulgazioa, Hitz laburki utzi zer gertatzen den CS50, eta zu zer egin daiteke, eta zer mindful izan dezakezu. Beraz, 2007ko hemen geroztik, Ikastaroaren heredatu nuen, ad Kontseiluko kasu kopurua da. Ad Kontseiluko Harvard diziplina da gorputza, edo orain Honor aholkularitza, horrek kasu aipatzen denean ikasleak zerbait egin Ikastaro hamarkadan curriculumaren unreasonable jotzen. Ez dago benetako eredua Hemen, esango nuke. Gorabeherak zehar It urte baina, oro har, honen kopurua da Hori aipatzen diren kasuetan. Ikasle-kopurua jokoan daudela? Gehiegi aldatu egiten da. Normalean, azken urte Esate baterako, 29 Harvard ikasleak Ad boarded, nolabait esateko ziren. Horiek egungo ikasleen 29 aldez aurretik haiek ikasleak bi, izan ziren laguntzaileak untoward nolabait. Eta gero dagokionez ehunekoa, izan ohi da,% 3 inguru klasearen, tamalez, erabakiak mota horiek egiten. Beraz, iaz% 3,5 izan zen CS50 ikaslea gorputzaren Ad boarded, nolabait esateko zen. Beraz, zer esan nahi du honek guztiak? Eta zer egiten dugu, benetan? Beraz, dibulgazioa osoa egiteko, dugu erabat, ordenagailu zientzialari gisa, software erremintak gure eskura eta guretzat oso erraza da, zuzentasuna, Ez diren beste duten ikaskideekin Lerro hauen gurutzatu gurutzatzeko konparatu bakoitzaren kontra aurten aurkezteko guztietan Azken zortzi urtez aurkezteko. Software du honek. Eta, azken finean, da giza begiak jarri behar dela zeri dagozkion ala ez adjudikazio gehiagorako axola, baina software zalantzarik laguntzen. Eta hau, Egia, eta horregatik dut uste CS50 hala nola, zenbakiak handiak ditugu. Ez da CS50 delako ikasle edo CS ikasle gehiago oro har, edozein gutxiago zintzoa Beste edozein ikasle baino, besterik ez da daukagun du tresnak eta teknikak horrekin lehen pass hau hartzeko. Baina begi bat mantendu egiten dugu Gauza horiek guztiak baita, berriro ere, interesak Hori jarri ari lana aitortuz Klase gehiengo super batek ere. Eta, jakina, horrek politika Zintzotasuna akademikoa, paragrafoetan mordo bat baldin bada ere balak sorta bat luzea Hori oso irakurgarriak dira, zorionez, hura benetan irakiten behera arrazoizkoa izan behar du. Eta thumb araua onena dela gora eskaintzen ditugu curriculumaren barruan honek, esentzia da lan guztien duzula Ikastaro honen aurkeztu zeure izan behar. Eta, hain zuzen ere, horietako ia guztiak kasu diziplina neurria aipatzen delako, ikasle batek berandu ote zen Gau normalean aktibatuta bere kodea outright ikaskide bat baino gehiago, nor ondoren onartu zuen bere osotasunean edo Nabarmen kontratuan. Baina, benetan, hau da, OK. Eta hain zuzen ere, bulegoan orduetan, paper babesleak du Zuk izan duenez, bulego arabera dugunik baduzu ordu aurreko astean bezainbeste animatzen. Oraindik erabat harrera eta animatu Arazo multzo eztabaidatzeko ikaskideekin. Denean stumbling elkarri laguntzeko. Baina, oro har, arau, egin beharko lukete izan hau, "betiere laguntza eske ari zaren, Zure kodea erakutsiko zaitezke besteak, baina ezin duzu ikusteko berea. " Beraz, beste era batera esanda, ez naiz bada P multzo batzuekin borrokan eta ez nago eserita batean hall jantoki, edo liburutegian, edo ikasgelan errua batzuk aurkitu nahian, I zalantzarik erakutsi ahal nire pantailan nire kodea hurrengo pertsona eserita me to, zalantzarik gabe, langileek, baina, era berean, ikaskide bat. Baina irtenbidea bada Nire ikaskide eskaintzen da, ai, Hemen, besterik gabe, begirada bat hartu zer Egin nuen duten lerroa zeharkatzen. Eta esaten da, oro har ausartuko nintzateke Jende gehien zentzuzko gauza bat oso erraz gelditzea lerroa. Eta, beraz, ikusi curriculumaren xehetasun gehiagorako. Eta orain gehiago bat alderdi polemiko CS50 curriculumaren duten pentsatu nuen esango zion Ondorio hemen damutu klausula deiturikoak da. Beraz, hemen fina inprimatu guztia da. Baina, oro har, ikusi ahal izan dugu Azken 8 plus urteotan , hain zuzen ere, ia guztiek CS50 dishonesty akademikoa kasuak Oraintxe pobrea emaitza izan Erabaki berandu egiten gauez. Estresa, ondorioz lortutako emaitza Jateko eza, lo falta, P multzo gehiegi, gehiegi epeak, konpromisoak gehiegi. Stress eraikitzeko 2:00 AM bat, 3:00 AM, 4:00 AM, epea looming. Kasu horietan, ikasle gehienek Oraintxe erabakiak txarra egin baliteke dutela oso ondo sentitzen du Hurrengo goizean minutu beranduago ez bada, baina iaz arte ez zegoen oharra balbula ikasle horiek Could benetan ireki berri den benetan helbidea Arazoa zen beldurrik gabe, burua Unibertsitatera abiaraziko guztira. Eta, hain zuzen ere, ezarri dugu damua klausula honetan iaz, bertan dioen barruan bada 72 ordu, hiru egunetan, lerro batzuk gurutzatzeko curriculumaren agindutako aurrera etorriko dira ikastaroa bat behar duzu buruak eta horri buruz hitz egin beharko dugu. Han dira oraindik izan batzuk emaitza, zer da kontrakoak dira kontrakoa nahi du. Oraindik ez dago emaitza batzuk Ikastaroaren arabera neurriak hartu da, Oro har, P multzo bat zeroing edo beste ekintza batzuk hartuta, baina, izango dugu, hain zuzen ere, kudeatzeko bai guretzat eta ez erreferentzia altuagoa balitz emaitza askoz gogorragoak izan liteke. Eta, hain zuzen ere, zer gertatu partekatzeko iaz, zortzi urteetan, eta orain Bederatzi urte, ikastaro hau irakasteko eta hainbat gasaren tinkering ondoren, Iraganean zehar hainbat lasterrak inflexio Zintzotasuna akademikoa hainbat urtez, eta datuak itxurazko no per ikusten inpaktua, nahiz eta hau bezalako hitzaldiak, hau izan zen esku gauzarik onena behera pedagogiko dugu sartu Zortzi urte batera CS50 lerro hauek. 19 ikasle izan zen aurrera iaz klausula honen pean. Jarraitu zuen dugu ikasle horietako zazpi, zirela zehazteko alferrik kezkatuta. Ez izan dute, hain zuzen ere, lerro bat zeharkatu, baina zen hala izan txat ona. Zeroed dugu puntuazioen 11 Aurkeztu ziren. Eta kasu batean dugun galdetu a Ikasle arazo multzo bat egin ahal izateko. Baina gehiago sinesgarria, zintzotasunez, 19 hitzaldian hauekin, bertan I baino bide gehiago izan da , horietako bakoitzean espero 10 minutu agian bati ordu luzez, halaber, ekarri buruzko gaiak zenbaki bat pizteko familia-gaiak, laguna gaiak, buruko osasun-arazoak ondoren, hori arduratzen gara, ikaslearen bedeinkazioa, egoiliar batekin dean, edo lagunak, edo beste edozein zenbaki laguntza-baliabideak. Beraz, hori oso urrun banan zen gure garaiko erabilerak onenak eta esku-hartzeak onenetako bat da. Dela esan zuen, eta ez zuen sarrerako detektatzeko tasa on dishonesty akademiko, oro har. Eta esango nuke, azpimultzo honetan azken urteko ikasleen demografiko bat izan ditugula Aurretik inoiz aurretik identifikatu eta inoiz aurretik lotuta zuen. Eta, beraz, hauek izan ziren wonderful arrakasta istorioak argi egin zituzten ekarri arren inguruabarrak optimoa baino gutxiagoan. Beraz, mantendu kontuan ezta gutxiagorik ere, agian, Erabaki pobreak batzuk yourself berandu gauez, ez dela baliabiderik hain luzea Egoera horretan ikaslearen gisa jabea eta zatoz aurrera ahal dugun beraz txat-mota hori izan da eta berarekin asko modu bat hezkuntza da, eta, ondoren, hurrengo egunean jarri ahal izango dugu gurekin atzean. Beraz, besterik esan gabe, hartu du Edge Elkarrizketa honen off, arrazoia Puppies sortu dira da Une batez izotza hausteko. Eta zoritxarrez, loa guztiak ari dira, baina zer zen ustezko gertatuko denek izan zen zen ustezko awe eta mota erlaxatu Elkarrizketa oso heavy ondoren. Baina, antza denez, jarri dut Puppies lo. Baina bazoaz CS50 den Webgune slash puppies, horiek egun osoan ikusi ahal izango duzu luzea. Bereziki, agian, 2:00, edo 3:00 edo 4:00 AM gauez Apur bat estresa erliebe ikusteko dago. Beraz, hori da barra puppies. Ados. Ez zen fun hori? ONDO DA. Beraz, ordenagailu batzuk atzera zientzia, I baliteke bada. Beraz, gogoratzen hasi ginen azken aldiz Ez bila besterik nagusian, eta bertan default funtzioa, noiz izan zen Ez berdea baliokidea klik egitean baina, aldi berean, hasi ginen laburki gure funtzioak batzuk idazten. Eta orain arte funtzio horietako bat ere ez izan dira bereziki handia edo meaty egon. Egingo dutenek handiagoa lortu ahal izango dituzu funtzio seguruenik, P ezarri 2, P ezarri 3, betiko P multzo 4 eta aurrerantzean. Orain zure programa gehienak, horiek guztiak, zalantzarik P ez bada Multzo 1 egin daiteke erabat nagusian. Bada zure programa da soilik bost lerro, 10 lerro, lerro nahiz eta 20 luze, primeran arrazoizkoa da idatzi zaildu gorakoei guztiak nagusian eta ez Zure kodea, baina, gaur egun, zer egiten ari garen eta da, dudarik aurrera, gainera, zenbait diseinu teknika ona aurkeztu beraz, zure kodea gehiago lortzen konplexua eta arazo gisa lortu gogorragoa konpondu nahi duzu eta gehiago interesgarria izan dezakezu, ordenatu, Zure eskura dituen tresna horrekin horiei irtenbideak onak diseinatzeko. Beraz, dezagun begirada bat atzera programa hau pasa den astean, eta horrek zen funtzio zero dot C. Eta nabarituko, nahiko besterik gabe, Itxura hau bi bezalakoa da funtzioak, nagusia eta inprimatu izena. Eta atzera edo agian pentsatzen alderantzizko ingeniaritza gaur, zer motibazio zen ezartzeaz line 28 izeneko funtzio bat, inprimatu izena? Edo zer zen honen adibide bat Printzipioz edo eramateko dagokionez, zenituzkeen bada. Zurrumurru batzuk. Zer? Bai deskonposizio beraz Funtzionala esaten modu dotore mota da, Zure programa deskonposatzen haren osagaien sartu eta, ondoren, zati horiek erabili osotasunean muntatzen. Beraz, hori ere besterik ez mota mokadu bat dagoeneko, baina hori da, beharbada, are gehiago, Zerbait adibide hobea besterik abstrakzio deitu. Eskuin? Abstrakzioa bat izango da errepikatutako CS50 gaietako eta, era berean, informatikako orokorrago da geroztik Teknika horrekin konpondu ahal izango duzu arazo gehiago eraginkortasunez duzulako irtenbide gehiago idatzi daiteke senez eta modu bat, eskalak eta beste pertsona batzuek ulergarria da. Zer esan nahi dut? Beraz, dudarik gabe, askoz ere irakur hau bezalako programa begiratu, super labur den arren. Noiz ikusiko duzu on line 22 hori ez da izeneko funtzio bat, inprimatu izena. Izen Hori bakarrik dio zer egiten. Funtzio itxuraz hartzen bere parentesi artean sarrera, eta, antza denez, zerbait egiten du, zentzuzkoa name inprimatzen ditu. Eta, beraz, nahiz eta dugun arren erabat ezin dute egin duela astebete zer egin dugu, eta hori izan zen besterik benetako kode lerro hau hartzeko, hau kentzeko, eta lortu hau kentzeko, guztiak batera, Sort abstrakziogune dugu kanpoan Izen bat inprimatzeko nozioa. Ez zait axola baduzu inprimatzeko def erabiliz gero. Ez zait axola badaukazu ehuneko S eta backslash N. a hauek oso urrutira xehetasunak dira. Zer axola zait gisa programatzaile izen bat inprimatzen da. Eta beraz, zer hobeto egin behar den ikusteko funtzioa, inprimatu izen deituz baino? Eta beraz, hori izan zen, motibazio bat honen antzeko zerbait egiten da. Kodea irakurgarriagoa egiteko, gehiago berrerabilgarriak, eta, gainera, auto deskribatzailea. Orain, dezagun begirada bat beste adibide bat, bertan funtzio bat izan zen, horren gainean izan genuen hemen. Beraz, hau da, agian, are gehiago sinesgarria delako, kasu honetan, Ez dut nahi int bat besterik lortu. Int positiboa lortu nahi dut. Eta bihurtzen da positiboa lortzeko int legwork mordo bat egin behar duzu. Eskuin? Ez da lerro bat simple bat egiten deitu bezala inprimatu izena izan zen, hau da, admittedly hain premiazkoa. Int positiboa lortzeko, logically-- utzi atzera joan me down hau ezkutatzeko. Zer egin behar duzu? Tresna guztiak Like dugu une izan dira Standard inprimatu def bezalako gauzak Liburutegia eta, era berean, CS50 liburutegia Talde Int dugu, eta iritsi karroza, Talde Long Long, lortu katea, baina bakarra, germane, oraintxe Alde Int. Beraz, bada tresna bakarrak duzu zure tresna kutxa batean Alde Int, nola egiten dugu gauzatzeko joan int positiboa lortzeko? Ikusleak: Sortu ezazu egunkari bat eta egiaztatu ala sarrerako dutela eman positiboa edo ez zen. HIZLARIA 1: Perfect. Hain zuzen ere. Ditugun beste tresna gure Aste bat edo bi ago from laukitik besterik eraikitzeko begizta da. Eta, beraz, bai, berriz, bat erabiltzen badugu begizta, edo do begizta bitartean, edo trinketa bat begizta ziurrenik, ihes inprimaki batzuk horietako edozein. Get nozioa gauzatu ahal izango dugu positiboa int Talde erabiliz Int arabera, eta, ondoren, besterik gabe, gorde deituz behin eta mantentzeko erabiltzaileak pestering arte berak benetan ematen digu guk nahi duguna. Eta, beraz, gaur egun, hau Prozesuaren abstrakzioa int positiboa lortzea izeneko funtzio bat sartu Talde Int Positiboa da apur bat gehiago hau begiratzen sinesgarria delako. Hauek 10 plus bezalakoak dira kode-lerro dira int positiboa lortzea parte hartzen, eta ez dut benetan axola nola egiten duzun. Guztiak zait dela egin dezake, eta, beraz, ez dizkiat baten atzean ezkutatzen datu horiek guztiak izeneko funtzio positiboa lortzeko int, hain zuzen ere, egin hau begizta bitartean. Eta ikusten azken aste sintaxia erabiliz ez, ordea, adierazten du, besterik ez da N, eta bistaratzen da etorri erabiltzaileari da agindua. Talde Int deitzen da eta, ondoren, egiaztatzen baldintza hau berriro, eta berriro, eta berriro erabiltzaileak Coopera arte. Beraz, orain, bat kontrol gutxi. Agian ezagutzen dutenentzat programazio batzuekin, zergatik N deklaratu, zergatik ez dut sortu N begizta bitartean do kanpo? Zergatik da on line 29 eta ez bezalako 33, adibidez. Ikusleak: noiz ematen duelako kanpo deklaratzen da, baita halako gehiago, handiagoak esparrua du HIZLARIA 1: Good. Ikusleak: --and deklaratzeko bada begizta barruan da, [INAUDIBLE] ez du horri buruz jakin duelako. HIZLARIA: 1 Zehazki. I simplify-- ahal bada esparrua gai bat da. Eta esparrua testuinguruan aipatzen aldagai bat existitzen edo ez da erabilgarria. Eta polita arau, hemen dagoela oro har, aldarrikatu duzu edo sortu aldagai bat duzu bakarrik barruan erabili ahal izango da hurbilena giltza kizkur besarkatzen. Beraz, zer esan nahi du horrek? Badut, horren ordez, desegin eta batera joan zerbait dela sentitzen pixka bat errazagoa. Eskuin? 32 Line itxura besterik ez da niretzat garbiagoa orain. Bi gauza egiten ari naiz behin eta, ondoren esleitzea ezkerreko eskua eskubidea. Arazoa orain oinarritutako esparruaren definizioa da N duten lerroak erabil daiteke 31 eta 32 begizta honen barruan, baina non definizio duten arabera ezin da erabili, ezta? Ildotik zer? Bai. Ikusleak: 35. HIZLARIA 1: 35. Definitely ez 35. Eta, gainera, non bestela? Ikusleak: 34. HIZLARIA 1: Nahiz 34 da problematikoa delako kizkur giltza kanpo. Eta hain zuzen ere, ikus dezagun zer gertatzen den. Eskuin? Hau pixka bat dirudi dezake agian edo intuitiboa ez, baina ikus dezagun zer egin Konpiladore esaten denean behar du Gaur egungo iturburu direktorioa sartu gara. Egin funtzioa. Ene Jainkoa. Beno, azkenik, bukatu dut , hori bide batez. Ados. Eta zer da arazoa hemen? Oso urrutira begiratzen. Baina hemen zer I typed-- horietako funtzioa. Hona hemen zer egin eragindako, hau da, benetan Konpiladore Clang erabiliz banderak horietako batzuk garela berriro ikusiko luze baino lehen. Eta berriro, beti itxura Lehenengo error at, besterik ez zitekeen izan delako Kaskadako bat beste lerro zentzugabeak efektu. Beraz, horrek esan nahi du, hori Arazoa funtzioa 1.c. da On line 32 da. Eta zutabe edo pertsonaia, 13 urte ditu. Beraz, zure testu-editore ahal lagundu non alea da identifikatzen duzu. Joan I hala bada, zer line 32? Hori da, hain zuzen ere, batek dagoeneko nabarmendu Honez hementxe unused aldakorreko n. Baina ez da erabili. Egiten ari naiz. Baina konpilatzailea en nahastu, zeren esparrua honen barruan bakarrik existitzen. Eta beraz, ezin dut erabili ezazu hemen. Ezin ditut hemen. Eta konpiladorea, hortaz, ez du ere zaintzen saiatzen ari naiz. Unused izango dela dirudi bere benetako esparruan. Beraz eremua handitzen dezakegu eginez zehazki zer gara hasi int with-- n. Eta ez baldin bada ere itxura dotorea bezala, agian, eta lerro estra bat hartzen ari gara Hemen, Orain esparrua da nonahi. Hargatik saiatu berriro. Beraz, inork funtzioa. Nice. Eta orain badut funtzioa exekutatu bada Bat, dezagun ezezko 10 emango da, negatiboak 1, 0, 1, eta, hain zuzen ere lan egiten du. Beraz, ez dago beste irtenbide bat da hemen. Badakizu zer? Zer egin behar dut am benetan honekin borroka? Ez dakit non n Honez joan suposatzen. Badakizu zer? Besterik ez dut jarri nahi dut guztia du nire fitxategia hemen goian bidea. Zer egin hau, ez duzu uste? Bai? Ikusleak: [INAUDIBLE]. HIZLARIA 1: Bai. Beraz, global bat egin dut, nolabait esateko. Aldagai bat behar duzu bada, hori da kanpo hori onartzen zure funtzio guztiak, eta kodea konpilatu behar, eta n orain izango eskuragarria get bakarra ere int positiboa, baina, aldi berean nagusian ere bertan Kezkagarria da apur bat ez delako beraz, dagoeneko nagusian n bat, gehiago momentu bat besterik ez direla on baina honek diseinu txarra kontuan hartu beharko litzateke. Ados. To jotzea badaukazu zerbait bezala, oh, ez dut besterik jarri ezazu hemen delako Kodea badirudi konpilatu da, oro har, ez praktika onenak. Baizik eta aukeratu nahi duzun ahalik eta estuena esparrua Zure aldagaiak, eta horrek esan nahi du Gure hasierako diseinua, batera joan eta bertan hementxe da. Orain alde batera utzita, bada, nahi duzun guztia dute bat hemen berdinean izeneko aldakorra, Bide c Halako jorratuko dute nahiz eta hau ez zen gertatu too often-- da hori ez dela oraindik primeran hemen fina. Baina lerro n definizio honetan 22 bat globala itzal egingo. Beraz, hau baitan lan egingo du nagusia, eta inork global benetan aplikatu beharko Oraindik duzun positiboa int Baina hori gehiago Beste behin, baina besterik ez horiek Bitxia da. Beraz, azken finean, hau konpondu irudirik. Orain dezagun aurre gain beste bi pieza begiratzen dugu kode azken lerroan batean aurretik programa honetan. Talde int positiboa. Ezkerreko aldean On bere hitza hitza int da. Zer adierazi ere ez dela uste duzu? Beraz, orain arte, batez ere, ikusi dugun hutsunea. Bai? Ikusleak: motaren da aldagai hori buruz galdetzen ari zaren. HIZLARIA 1: Bai mota da, let me Ez esan aldakorra, baina balio-mota duten galdetzen ari naiz atzera egiteko. Eta, hain zuzen, hori da intuitiboa hemen, zorionez. Eskuin? Bat lortu nahi baduzu int positiboa, zer da zuk bezalako funtzio nahi gure astetik boluntarioek eskuz itzuli pieza bat Gainean int batekin paper? Eta, beraz, zehaztu dugu hori funtzio honen bueltan mota deiturikoak da positiboa int. Ez bagenu nahi da ezer egin, hutsunea esan duzu. Nahi izanez gero itzuliko da katea, katea, esan duzu. Nahi izanez gero itzuliko da mugikor bat, karroza esan duzu. Baina hori aplikatzen hemen da bakarra logikoki, I get int erabiltzen ari delako, dut murriztaile nahiz naiz balioak positibo, int bat itzuli. Beraz, alderantziz, zer esan nahi du ez dagoela parentesi hutsa da? Zer egin parentesi oro har definitzeko? Bai? Ikusleak: Funtzio horrek esan nahi du Ez, benetan, da asmatzea. HIZLARIA: 1 Funtzio horrek esan nahi du Ez benetan zer lortzean? Ikusleak: sarrerako An. HIZLARIA 1: sarreraren bat, inondik inora ez. Beraz, hain zuzen ere, bada parentesi Hemen hutsunea zehazten duzunean, bakarrik esan nahi ez dut inolako sarrerako nahi. Arazoaren neure burua dut aurre. Eta hain zuzen ere, ez duzu nahi Esango int ezer positiborik lortu. Esaten duzu, besterik gabe, int positiboa lortzeko, eta hori Funtzio off joango dira eta bere gauza. Baina ez da izan trikimailu txiki bat dut jolasten hemen denbora honetan guztian Ziur kode hau konpilatzen egiteko. Iragarki int positiboa lortu int void-- on line 27 da. Baina arrazoi itxuraz bitxi batengatik gainera, ez da sortu hemen on line 16. Eta neurri ona errepikatu dut hau beraz, ezin hobeto berdina da. Eta esan dut batera prototipoa Bat-line iruzkin apur bat. Zer gertatzen da hori ezabatu badut, eta orain berrabiarazi egin 1 funtzioa, sartu. Whoops. Itxaron minutu bat. Non dago nire fitxan? Eh? Erreserba modua. Egin 1 funtzioa. Hor dugu. ONDO DA. Ez zuten behar bezala gordeta. Beraz, uste dut ez da apur bat bug hemen ez naiz fitxan une izenean ikusten. Beraz, zer gertatzen da hemen? Inplizitu adierazpena funtzioa positiboa int C99 baliogabea da. Beraz, berriro ere nahasgarria. Beraz, zer adierazgarri da hau? Beno, bihurtzen da C nahiko ergela. Beno, programazio da hizkuntza, edo, hobeto esanda, konpilatzailea da. Bakarrik daki hori zer duzu irakatsi, eta ez da bakarra Zerbait ezagutzen joan da aurretik irakatsi baduzu. Beste era batera esanda, in une nagusia, naiz funtzio bat deitu nahian izeneko int positiboa lortzeko. Baina konpiladoreak ez da joan Hori positiboa int nabarituko line 26 arte existitzen. Eta orain konpilatzailea zer egiten da, besterik gabe, Erroreak eta azkarren 17 lerro lortzen da, adierazpena inplizituki esanez int positiboa, eta horrek esaten modu dotore bat besterik ez da, ez dut Badakizu int positiboa zer lortu da oraindik. Java bezalako beste hizkuntzetan eta Python eta Ruby Aurrera begiratu dezake. C ez. Eta beraz, modu konpondu dugu hau bi modu bat da. Bai, hori lortzeko arazoa baldin bada int positiboa izan ez dela ikusi aurretik, bai, let me mugitu besterik ez da goian. Hori arazo hau konpondu litzateke. Baina, oro har, ez da jotzen hobeto teknika zure eginkizun nagusia jartzea oso at gora, beraz, giza zure kodea irakurtzen daki programak egiten duenaren, nagusia ez da guztia lurperatuta delako behealdean edo erdian bidea. Da, oso goian dago. Beraz, ez du hori sentitzen ideal. Eta benetan lor dezake Egoerak non sartu funtzio deiak bada beste bat, beste deiak, arazo bat sartu ahal izango duzu, non ez ahal bestearen gainetik joan, logikoki. Besterik ez da posible, ez. Eta beraz, lan egiteko modu honen inguruan dagoen besterik hartu funtzioa sinadura, beraz, hitz egiteko Lehenengo lerroa non declared-- da eta besterik kopiatu, itsatsi at gora, baina ez kizkur giltza batekin besterik koma erabiliz. Da gutxi aholku bat bezalakoa da zer da datozen. Eta hain zuzen ere, denbora hori guztia dugunean io.h estandar bezala gauzak ikusi dute eta cs50.h, era berean, in dot horiek h fitxategiak badira beste prototipoak. Eta ikusiko dugu hori baino lehenago. Beraz, azken finean, programa bat behar duzu funtzio bat baino gehiago dituzten fitxategi batean nagusiez gain, ia duzu beti aldarrikatu nahi besterik gabe, beren lehen bidez line, puntu eta koma ondoren, Fitxategiaren oso goialdean. Hori izan zen, asko aldi berean. Zalantzaren bat? Zalantzaren bat? Ados. Beraz, dezagun aurrera gero eztul antzeko zerbait. Oh. Nola egokitzea. Ados. Eztula. Hortaz, hona hemen c da programa bat ezartzeko beste egunean egin genuen Scratch hori oso erraz besterik dio eztul, eztul, eztul. Ados. Eta norbaitek esan gutxi barru Duela egun ez dagoela da Kode hau dagoeneko garbiketa sortu modu bat. Ados? Kopiatzea bezala zu bezain laster, eta a itsatsi diseinu ziurrenik txarra. Gutxienez behin lauzpabost nahi dugu edo 20 eztula, praktika txarra sentitzen da. Besterik kopia mantendu dugu, itsasteko. Zer da bistako irtenbidea programa hau sortu garbiketa? Ikusleak: Loop. HIZLARIA 1: Bai. Beraz, begizta bat erabili. Eta bat-begizta bat erabili ahal izango dugu, begizta, edozein planteamendu kopurua. Eta, hain zuzen, hori da ez inork bertsioa hemen dugu. Ordez Nik berridatzi da Bat bertsioa cough.c de eztul justu-begizta barruan izango da. Ondo da, baina ez da bat aukera orain hasteko motatako Hau apur bat diseinatzea bezalako gehiago ikasgaia une bat duela irakatsi dugu, bertan da hau suposatu nahi nuela eztul izeneko funtzio bat sortzea da, dezagun, une bat besterik ez zer ari den itxura. Beraz, bada zerbait egin nahi dut , eztul egin behar besterik ez dut funtzioaren barruan inprimatu f erabili. Eta hain zuzen ere, ni naiz. Eta hain zuzen ere, hori guztia denbora, edonoiz Oraindik zerbait inprimatzeko pantailan, programatzaile Albo-efektu bat dela esango luke. Ez da niretzat gozamenerako Atzera norbait balio bat. Honez me ekintza batzuk hartu ikusmen bistako izan daiteke. Baina funtzio eztul honetan, ez da itzuliko ezer oinarritutako bere lehen lerroan? Ez, bere itzulera mota delako hutsa da, eta horrek esan nahi Gertatzen ez dit ezer gozamenerako atzera. Ezazu zerbait egiten liteke ikusmen, baina ez da niretzat gozamenerako paper zati bat atzera joan den astean bezala. Edozein sarrera behar da? No. Eta beraz Hutsunea da hemen ere. Beraz, hau ere da, mota Arazo hau baino gehiago-ingeniaritza. Eskuin? Programaren gehiago egin ditut , kode lerro konplexuagoa, Nik ez dut egin du funtzionala, baina hau hurrats harri bat izango litzateke, agian, alde zabalago bat zailagoa kodearekin testuinguruan. Baina honi buruz zer? Zer egin dut besterik begiratu ere done-- hau iruzkin begiratu gabe fitxategi eman behar dute oso goialdean Funtsean hemen egin nuen nire eztul batekin ezartzeko hori da desberdina? Bai, berriro? Ikusleak: Egin ezazu ahal duzun beraz dute pertsonaia bat itzali. HIZLARIA 1: Bai. Beraz, hau sentitzen mota polita. Eskuin? Ezaugarri bat gehituz bezalakoa da zure programa edo zure funtzioa, kasu honetan. Oraindik ez da ezer itzultzen ditu. Dezake ikusmen albo efektu bat izan da, Honez inprimatu f deituz delako. Baina orain parametrized ditut funtzioa, eta horrek esan nahi dut nik zehaztu hartu mota int sarrera eta deitu n, baina ez dut ezer egin nahi dut deitu daiteke. Izan ere, izan zitekeen aldiz, are gehiago esplizitua izan. Eta gero, aski izan dut aldatu honetan hemen. Baina kontua da, hau da, nola egin nuen Hori sarrera hartzen funtzio bat sortzeko. Eta gogoratzen duzu iraultzeko bada agian online bat batean the walk-throughs, etorri Laugarren eta azken eztul adibidez, konturatu hemen duzu orokortu Nik Nire kode abstraktu mota further-- urrunago. Eztul eta sneeze bezala, bi dira zerbait esaten edo egiten like buruz Soinu-mota batzuk. Save the litzateke dagokion Scratch blokea. Eta orain zer bertsio honetan egin nuen, bertan begiratu besterik ahalko dugu, da eztula besterik esaten, [eztul] bezalakoa da, eztula, eta, bestalde, doministiku da esanez bezala, [achoo]. Eta hain orokortua Nik horiek ezartzeko orain martxan jarriz funtzio orokor horrek, esan, eta oso interesgarria gaur egungo helburuetarako bakarra delako oraindik ez du itzulera mota bat dute. Baina zenbat sarrera ditu? Ikusleak: Bi. HIZLARIA 1: Bi. Eta hala bada nahi duzun Bi argumentu hartu, besterik banandu koma batekin. Eta gero, nahi baduzu funtzio hori deitu, nabarituko duzu besterik deitu esan, aurrekontua, unquote, Lehen argumentua egiteko, ohikoa n, bigarren argumentua da. Beraz, berriro ere, besterik ez dugu orain eraikin bloke ahal dugun benetan, beraz, gure funtzioak batzuk ezartzea. Ados. Horiei buruzko edozein galdera? Beraz, gaur egun dezagun atzera azala geruza bat, hala bada. Eta helburua, azken finean, Datorren astean arazo multzo da da cryptogrophy-- inguruan izango diren Informazio scrambling arte. Eta, zehazki, informazioa enkriptatzen baduzu edo desenkriptatzeko aukera izango dute da testua izango da. Eta beraz, gonbidapen-mota hori Galdera gaur bezalako ongi, zer ari den gertatzen kanpaia azpian Testu ASCII haratago aste zero batera, eta nola ahal dugun benetan hasiko da manipulatzeko? Hortaz, hona hemen Zamyla izena da. Eta testu batean, hori gehitu direnak liteke Get kate funtzioa bezala sartu. Eta orain hasten denean, bat ikusiko duzu Halako Z-A-M-Y-L-A-- bezalako kate hasteko bakoitzak balu bezala pentsatzen karaktere horietako koadro bat dago, bere egin. Eta hain zuzen ere, aste bat edo, beraz, denbora, Kutxa horietako bakoitza da oso zehazki irudikatzeko joan memoria mokadu bat, memoria-bloke bat. Beraz, letrak horietako bakoitzari, azken batean, 8 bit adierazten dizu. Eta egia esan, ikusiko dugu zer gertatzen joan nire ordenadorean kanpaia azpian gunean. Baina ez da aski da for besterik nahi Zamyla begiratzeko lens hau, zeinaren bitartez Hizki hauek bere kutxa eta guzti dago. Eta nicely nahikoa C gaitezke kutxa horiek zuzenean bakoitzean sartzeko. Beraz, lehenengo lortu nahi baduzu Bere izenaren letra, super C. ere erraza Azken lortu nahi baduzu gutun, super erraza baita sintaxia berrien pieza batekin. Beraz, ez dut aurretik joan CS50 sartu joan IDE eta ireki katea zero dot C. Eta hemen adibide honetan, badira gauza berri pare bat joan. Beraz, lehenengo line 19, dugu lehenago lortu katea hau ikusi. Beraz, besterik gabe, azkar behatu txeke bat bezala, Norbaitek eskainiko bada hitzez ezin eman layman bat azalpen Zer gertatzen ari line 19. Like besterik ez itzultzeko honetan sartu English duten gelakide bat ez CS50 ulertu liteke. Bai. Ikusleak: Have erabiltzailearen sarrera bat katea eta gorde s aldagai batean. HIZLARIA 1: Good. Dute erabiltzailearen sarrera kate bat eta gorde s aldagai batean. Hori handia. Beraz, eskuin eskuko on albo, lortu katea deitu dugu. Hori balio bat itzultzen du Hori ez zen esleitzen Eskuinaldean ezker-eskua s izeneko aldakorra da sartu albo kate bat gordetzeko diseinatua. Hain zuzen ere. Beraz, gaur egun line 22 per Linea 21, iruzkina, Jakina, kate hori bistaratzen Lerro bakoitzeko karaktere. Baina nola? Beraz, lehenik eta behin, I 0 abiarazi dugu. Eta gero, nola lortu behar dugu Zamyla izenaren amaieran? Beno, amaieran Zamyla izena, eta ahal nuen Eskuz azken karaktereak idazten bere izena, nolabait, edo hura kopurua. Eskuin? Atzera hemen Z-A-M-L-- joaten bagara Y-L-A-- orain ere idatzi izan dut. Zer da indizean Zamyla azken gutuna? Hau da, 0-- mintzatuz bat bezala programmer-- 0, 1, 2, 3, 4, 5, Beraz, hain zuzen ere heard-- dut, azken gutunak Zamyla izenean seigarren da, baina zenbatu ditugu 0tik bada, Honez kopuru 5 izango da. Beraz, kontuan hartu hemen. Bihurtzen da han ere funtzio bat C izeneko strlen, eta egun atzera eta egun honetan, oraindik ere, programatzaile asko aukeratu izenak sinkronizatu for euren hitz bezala soinua duten funtzio esan saiatzen ari dira. Beraz strlen katea luzera da. Eta orain zer katea luzera litzateke S itzuliko denean Zamyla sarrera? Ikusleak: Bost. HIZLARIA 1: Z-A-M-Y-L. Sei. Eskuin? Zer da Zamyla izena luzera? Eskuin? Eta besterik ez, egia esan, sei letrak. Eskuin? Eta beraz, zer da hori gure begizta esan nahi du? Ra joan goaz 0 sei arte, eta horrek da digute bost aldiz aldatu egingo da. Zer egiten dugu iterazio bakoitzean? Beno, ehuneko C, norbait Lehengo egunean igarri, zer biltegia esan nahi? Ikusleak: Char. HIZLARIA 1: Just char bat. Beraz character-- bakar bat ez kate bat bezala karaktere bat baino gehiago. Eta gero, hona hemen zuzen berria dugula dut inprimatzeko. Eta gero, hemen sintaxia berria da. I-garren inprimatu nahi baduzu katea S pertsonaia, nolabait esateko, nahikoa da esan du katea S du izena, eta, ondoren, ireki kortxetea, eta Orduz kortxetea itxita, i batekin erdian. Eta mota horretako polita da mota itxura karratu bat bezala besterik plazetan bezala, eta bertan Zamyla Pertsonaien irudi hori ez da existitzen. Beraz, benetan exekutatu I bada orain, ikus dezagun zer gertatzen den. Egin katea 0 dot barra katea 0, eta ondoren, naiz to Zamyla izenean idazten da. Ez dago gonbita, ez nuen delako inprimatu f erabili, baina hori da isuna. Ezagutzen dut zer egin. Eta, hain zuzen ere, bistaratzen da Zamyla izena, lerro bakoitzeko. Orain dezagun apur bat jokatuz izan. Demagun, baina ez dut ezagutzen buruz strlen eta I hurrena, Ondo da, inork ez Honez bat izan da joan 50 karaktere bezalako baino handiagoa izendatzeko. Dezagun aurrera eta berkonpilatu honetan eta berrabiarazi, eta, ondoren, idatzi Zamyla berriro. Logikoa denez, zer da programara inprimatu saiatzeko joan? Z-A-M-Y-L-A orduan bezala 45 memoria byte ezezaguna. Eta hain zuzen ere, itzuli egingo dugu memoria ideia horri. Baina besterik logikoki, bada Zamyla izena hau da luze, Irudian bakoitzeko Hemen, esaten ari gara mantendu da inprimatzeko, inprimatzeko mantentzeko, gorde inprimatzeko, mantentzeko inprimatzeko, inprimatzeko mantentzeko, 50 pertsonaia modu guztiak, bertan, nork daki zer gertatuko. Hargatik begirada bat benetan hartu. Dezagun idatzi Zamyla. Interesgarria da. Zortea ginen. Just espazio zuri-sorta oso bat. Oh. Badira pertsonaia funky bat da. Motatako itxura Galdera bitxi bat bezalakoa da markatu dago, baina ez dago Zamyla izena da. Demagun, ordea, gauzak jokatuz. Nola buruz egindako 500 inprimatu dugu ezezagun bihurtu bloke? Dezagun aurrera eta hau egiteko baita, eta, ondoren, berriro exekutatu. Eta dezagun pantaila osoan, zeren leku gehiago ikusi behar dugu. Zamyla. Got zortea berriro. Ausartzen gehiago jokatuz lortuko dugu? Gaitezen gehiago jokatuz. 50.000 pertsonaiak. Hau da gehien, ziur aski, ez da ideia ona. Ados. Egin katea 0. Hau da gure azken demo izango da. Zamyla. Ugh. Ugh. ONDO DA. Beraz, nire memoria benetan hutsik dago oraintxe, hau da, benetan erosoa mota. Zer zaie lortzeko eskubidea guztiak saiatzen ari naiz. Eta orain ez dut besterik jokatuz iritsi. 500.000. Make-- dezagun full-pantaila da. Sartu. Zamyla. Hor dugu. Ideia ez daukat zer dela da, baina txarra soinuak. Ados. Eta hain zuzen ere, laster, artean baduzu bulego orduetan zorioneko bakanetakoa eta arazo bat ezartzeko, you Oso litekeena topo honetan. Segmentazioa errua benetan ondo definitutako dute zentzua. Akats mota batzuk esan nahi du memoria segmentu bati lotuta. Eta layman en dagokionez, ukitu dugu esan nahi du Bat memoria RAM erabili dugu nire ordenadorean horrek ez luke sarbidea izan dut. Eta horixe da bai indartsu eta arriskutsua ere C ingurukoa da benetan duzun hori unfettered sarbidea dute zure programa memorian osorik izateko edo byte edo RAM, zehatzago esanda. Beraz, nahiz eta Zamyla izena arren da pertsonaiak sei besterik ez luze, I oraindik joan daitezke edonon memorian nahi dut. Eta alde batera, nik baduzu gisa inoiz artikulu batzuk irakurri Zenbait urte baino gehiago zerbitzari edo programa batzuk ohitu pitzatu edo hacked hori da Zerbait abantaila hartu buffer overflow bat izeneko ustiatzeko benetan dugu hori buruz hitz aste batzuk, hori da Oro har, nolabait tricking aipatuz Ordenagailu bat ondo joan sartu memoria-eremutik hori izan behar da, eta Zerbait mamitsuena aurkitzeko hori, memoria bat pasahitza, agian, modu bat serie zenbakia batzuk circumventing egiaztatu, edo, besterik gabe, oro har, gai Ordenagailua exekutatzean engainatu helburua ez zen kodea. Baina dezagun itzuli une bat besterik ez errealitate Programa hau izan zen strlen inplementatu, eta gauza bat aurkeztuko sortu hemen. Zein da hiru goiko lerro hauen artean berria? Beraz, kate dot h. Bihurtzen da han liburutegi hau deitzen da String Dot H, edo String Bibliotekan, zeinen goiburua fitxategia, nolabait esateko, katea dot h ematen dit da strlen funtzio honetarako sarbidea. Duten ezikusia badut, konpilatzailea da me at Yell inprimaki batzuk joan. Baina, zer ezagutzen duzu? Orain dezagun benetan ñabardura. Linea 22, ez da zerbait mota ren inefficient-- gaizki diseinatua, Kode-lerro honi buruz arguably--. Think atzera nola Ba-begizta burutzen dira eta zer urrats berriro gertatuko eta behin eta initialization du, berriro, baldintza, kodea dagoela fusilatu, orduan gehikuntza lortzen edo aldaketa, orduan baldintza, gero gakoa eta ondoren aldaketa, orduan baldintza, ondoren, kodea, ondoren, aldaketa, eta abar. Beraz, zer txiki bat izan liteke worrisome edo gaizki hemen egiten? Bai, urdinez. Ikusleak: Strlen da asko, aldiz deitu. HIZLARIA 1: Bai. Beraz strlen deitzen da hainbat aldiz, baina zer da Zamyla izenean luzera Lehen aldiz begizta exekutatzen? Ikusleak: Sei. HIZLARIA: 1 Sei. Beno, zer egin bere izenaren luzera da bigarren aldi kodea exekutatzen? Ikusleak: Sei. HIZLARIA 1: Ondo da. Sei Oraindik da. Eskuin? Zarla izena ez dauka aldatu, egiten dit, nahiz bere izenean gutun-zati bakarra dira. Eta beraz, hain zuzen, modu eraginkorrean naizela Galdera hau galdetzen, zer da Zamyla luzera, zer da luzera Zamyla da, zer da Zamyla luzera, sei aldiz bereizi, edo zazpi are, besterik ez da ergela, hori da aldaezina erantzuna delako. Eta orain zer benetan izan dut ez da hau kate bat ere Bertsio mugagabeko hobea izan dut hemen. Han whoops-- katea bi tengo Bertsio mugagabeko hobea dua Ez dut Halako ordez i ere hasieratzean 0, I koma batekin izeneko bigarren aldagai bat izendatuko n-- ez daukat int berriro esateko. Nik ez, hain zuzen ere. Baina esan dut n. Eta gero abiarazi n I n strlen du, beraz, orain, Zenbat aldiz ez du strlen emateko fusilatu guztira? Just behin. Eta, beraz, hau da, zer esan nahi dugu diseinu hobea lehenago. Egia esan, behin zure kode zuzena da, Atzera joan eta pentsatzen bidez, Ni txiki gisa erabiliz I memoria edo segundo batzuk bezala edo ordenagailua garaiko milisegundotan gisa Posible da arazo batzuk martxan jarri ahal izateko? Eta ez dut nahi korrituko joan eman eta besterik aipatu ez dagoela aipamen hau da Bertsio honetan null of, baina etorri egingo dugun atzera luze baino lehen. Oraingoz delako, dezagun begirada bat non hau da gurekin eramango da. Bat, beraz, bihurtzen da orain dela gaitasuna dugu to pertsonaiak banakako begiratzen, Zerbait leverage dugu Aste 0tik oso urrutira zen eta garai hartan izanarren moduko. Baina orain, eta batez ere, ez dugu eskuratu aste batean kriptografia, nik nahiko indartsua izango. Bihurtzen da batzuk Datu types-- ints eta karroza eta karakteretan eta kateak eta Horietako batzuk gauza beste Oso erraz bestera bihur daiteke. Adibidez, hitz egin dugu ASCII buruz denbora pixka ago-- hona hemen letra maiuskulaz A M bidez, dot, dot, dot-- esan dugu ez dagoela mapping bat da Letrak eta zenbakiak horien artean. Eta hain zuzen ere, egia da minuskulak baita. Minuskulaz 97 da, kapital a 65 da. Eta han ASCII zenbaki bat da, bertan mapping hau besterik ez da beste hizki horiek guztiak sistema. Beraz, zer esan nahi du horrek? Beno, Aurretik eta irekita joan behar dut benetako azkar zerbait izeneko eman ASCII 0, eta horietatik gehienak iruzkinak da. Eta berriro online beti ahal duzun Begirada iruzkinak bidez. Eta begirada bat zer hau da egin behar. Beraz, funtzio nagusi bat lortu du. Nik zenbakiak hard-kodetuak besterik for orain, zer egiten ari naiz ezagutzen dudalako. Badakizu zer den jakin nahi dut. Eta zuk hasieratu dut 65era. Eta kontatuta naiz 26 bitartez letrak osotara. Eta zer egingo dut nahi Lerro bat inprimatu, garai hartan you interpretatu ahal bada hau nabarmenduko lerroa? Zer lortzen inprimatutako? Bai. Ikusleak: zoazte Gutun inprimatzeko dagoela mapa dagokio Gutun balio eta osoko balioa? HIZLARIA: 1 Zehazki. Gutunean inprimatu noa zenbaki oso dagokiona, eta alderantziz, honela. Beno, norbaitek hau esan zuen lehenago, besterik char bat biltegia da. Oraindik ez da. Hau, jakina, leku-marka bat da Ez int bat linea berri bat da. Eta orain konturatzen, nire lehen balioa I plugging naiz biltegian hori egiteko hau da, ez besterik I. esaten dut, parentesi artean, char dut, horrek Parentesi char da konpilatzailea kontatzea, tratatzeko I Ez da zein den, zein zenbaki bat baita. Begira ezazu benetako pertsonaia bat bezala. Bigarren balio Berriz plugging naiz in-- besterik zenbaki bat izan behar du nik. Beraz, programa honetan bildu ditut bada beraz, hau da ASCII 0, dot barra ASCII 0-- lortu besterik ez dut Taula gutxi erabilgarri hori erakusten dit posible guztia dela uste beharrik gabe mappings bidez edo irudikatu nire kabuz. Eta nik ere atera naiz inprimatzeko, nabarituko minuskulak, lerro batzuk geroago delako, I halaber mapping hau inprimatu baita, eta hori besterik ez da behin ulertzen esan zer ari azpian joan kanpaia, ahal duzun automatikoki bihurtzeko atzera eta aurrera. Eta hain zuzen ere, zuk edozein bada inoiz egin hau eskola kalifikazioa edo norbait buruz entzun mitikoki ohar bat hartuz eta hura iragaiten bere edo bere klaseko lagun, baina nahaskia dituzun letrak bezalako A B bihurtzen arabera, eta B C, edo zerbait bihurtzen hori baino zailagoa da, bai, nola litzateke buruz joan mutil bat dagoela gauzatzeko? Beno, besterik ez mota badakizu A B bihurtzen, B, C bihurtzen, baina matematikoki, mutil horrek zer egiten ari zen? Zer ari gehituz letra bakoitzari? Eraginkortasunez, 1. Beraz, noiz bat aldatu B, hori da motatako 65 aldatuz 66 to bezala, bertan matematikoki esan besterik gehitu 1. Eta, beraz, garatu ez bazina iruzurrekin teknika hori gutxi Zure irakasle kodea eman, zuk Hori besterik ez da zehazki egin liteke letra bakar bat batuz. Beraz, luze baino lehen, ez gara Nola egiten dugu ikusteko joan aprobetxatu ahal duten benetan nahi benetan scramble eta unscramble Informazio. Bitartean, ezagutzen ditudan hasi ginen Bikote bat beste liburutegi aurkeztera hemen katea gaur bat. Eta oso lagungarria gune bat zorionez aurkituko dituzu da reference.cs50.net izenekoa, irakasleen bildu dituzte, nahi izanez gero, beraz, nola strlen lanak begiratu, Idazteko hasi ahal izateko funtzioa izen, Ezkutatu han strlen, eta, ondoren, azalpen gutxiago erosoa da agertzen joan. Edo ofizialak agertzea nahi baduzu Linux oinarritutako azalpen, gehiago comfy klik egin dezakezu goian, eskuinean, eta hari Informazio bera aurkeztuko du, baina termino konplexuagoa da. Hori baliabide erabilgarria da benetan ezagutzen dena egiten duenari. Hurrengo denbora goaz Ovaltine begirada bat hartu eta gehiago, eta geure burua aurkeztu kriptografia munduari. Gero, aurretik, ikusiko dugu Aste batzuk geroago duzu hau. Eta orain, Colton Ogden. Ikusi duzu, asteazkenean. [Musika jotzen] [Musika jotzen] HIZLARIA 1: Zer egin [Bleep] egiten ari zara? HIZLARIA 1: nire postrea jaten dut? Nola jaten duzu? Eskuekin? [Musika jotzen]