SPEAKER: Bone, jes, vi ne kredos tion, sed la lasta semajno, je lundo, en Pierce, mi iris malsupren en la kelon. Mi neniam iros al Pierce. Kaj mi neniam iris returne, ĉar Mi forlasis mian stuff sole por, kiel, kvin minutojn kaj iu ŝtelis mian komputilon kaj mia telefono el mia tornistro. Kiu signifas Mi atingis ĝin, kaj tiam malpli ol unu semajno poste Ĝi alvenis ŝtelita denove. Kaj tiam ĝi got ŝaltis - Trovu Mia iPhone daŭre esti netaŭgaj. Do mi daŭrigos kuraĝigi vi ne uzas ĝin. Ĝi turniĝis sur unu fojon, kaj gxi estis en MIT, kiel 15 minutojn poste, kaj la persono vokis ĉi telefonon numeron kiu montris supren en mian AT & T alvoko ŝtipo. Do mi iris en linio, nomata tiu telefono nombro, kaj ĝi iris rekte al oriento respondante maŝino en la hispana. Kaj mi ne aŭdis pri ĝi tiam. Do mi devis akiri novajn komputilo kaj telefono. Mi scias. Jes. Sed se vi uloj volas blato en mia komputilo fonduso post tio, tial Mi petis vin tie ĉi. Nur ŝercas. Sed tio estis vere malgaja kaj traŭmata. Sed estas tute denove, kaj tial la p-ara 8 prenis tiom longe, ĉar Mi ne havas komputilon. Kaj iu ŝtelis ĝin. Kaj mi retpoŝtis, demandante se ili farus lernojaro via p-ara 8. Sed ili diris: Ne. Kaj mi, kiel, mi povas havi mia komputilo reen? Kaj ili estas similaj, ne. Nur ŝercas. OK. Ĉi tio estas nia lasta sekcio, kaj mi havas paro de - ni havas nur tri aferojn en la tagordo. Ni iras por paroli iom pri la Q gvidilo. Tiam ni iras por pasigi 15 minutoj je aplomba demo. Tiam ni iras por ĉiuj diri adiaŭ al unu la alian. Vi ne vere bezonas viajn komputilojn aŭ globkrajonon aŭ papero por fari notojn, nek sekvi kune. Do mi supozas, se vi havas vian komputilon supren, tiam vi estas en Facebook. Nur por diri. Krom se vi estas kompletigo el la Q gvidas, kiuj estas unue. La Q gvidas estas malfermita. Vi havis retmesaĝon pri tio. Iam ĉiuj Q ŝtofo estas donita ĉe la Fine de la jaro, mi alvenas ĉiuj Q komentoj en partituroj de ĉiuj kiu elektas doni al mi sugestoj. Kaj do, kiam vi iros en la Q - Mi ne scias se vi povos fari tion, Jeff, ĉar vi estas kaj sufikso studento. Sed kiam vi iros en la Q, se vi ne havas faris antaŭe, vi elektu vian Majstro, kiu estas David Malan. Vi devas fari al li. Kaj poste vi povas elekti TFS. Kaj vi povas elekti kiel multaj TFS kiom vi deziras. Sed estas 60 el ni. Vi ne devas preni ĉiujn. Vi povas simple preni min, aŭ nur pluki paro aliaj homoj, se vi volas, al doni ilin sugestoj tiel. Kaj tiam vi ricevas partituroj sur cxiuj tiuj malsamaj aksoj, kaj tiam vi povas forlasi ilin sugestoj. Kaj tiam, kiel monaton poste, Mi ricevos cxiujn kiuj sugestoj. Kaj ĝuste kiel la sugestoj vi jam estis donante al mi la tuta semestro, mi legu cxiujn pri tio. Kaj ĝi estas vere utila kaj tio helpas mi kreskos kiel instruisto kaj kiel individuo. Do, mi petas, prenu iom da tempo por fari ĝin. Ni nur tuj estos ĉi tie cxar, kiel, 30 minutoj. Do se vi volas, ĉe la fino de tiu, al prenu kvin minutojn, kaj ĝuste plenigi la Q, ĉar ĝi ne prenas plu tempo ol tio. Tio estus mirinda, kaj vi ankaŭ ricevi viajn kvalifikojn reen pli rapide, se vi plenigu la Q. Do plejparto de vi faris tion antaŭe - aŭ ne, proksimume la duono el vi faris tion antaŭe. Sed se vi estas novulo, tio estas kio tio estas. Ĝi estos la sama por ĉiuj klasoj. Ĉu ĝi. Ĝi prenas kvin minutoj. Sed ankaŭ, se vi faras ĝin iom serioze, tio ne estas la plej malbona afero en la mondo, ĉar mi certe preni serioze. Do se vi lasos min smiley vizaĝon, Mi dankas ke. Sed mi volas ankaŭ dankas, se vi forlasis min pli ol smiley face. Sed estas ĉe vi. Mi ne povas diri al vi - aŭ kiel granda smiley multekosta, kun majuskla D. Tio neserioze esti eĉ pli bona. OK, jen ĉio mi havas pro la Q. Se vi havas demandojn, vi povas peti mi, sed bela mem-klarigantaj. Nur, mi petas, plenigi ĝin. Mi vere dankas ŝin, kaj tio multon signifas al mi. OK, tio estas, kion ni pasigos 15 minutoj irante tra. Mi montros al vi iom da kodo. Mi pensas, ke estas vere malvarmeta, kaj tio kaptis min pli ekscitita en komputiko. Do mi esperas ke ĝi faros la sama por vi cxiuj. Ni iras malfermi - kaj ĉiuj ĉi kodo mi sendos al vi poste. Sed ni nur tuj malfermi - Mi estas en mia fina - Ni tuj malfermu tiun programon nomata [? MySum. ?] Ĉu ĉiuj legis tion, nek mi devus fari gxin pli granda? Ĉu iu ajn diros al mi, kio estas tiu kodo do kiam mi kuras ĝi, aŭ kio estas tiu programo faros kiam mi ruli ĝin? [? Avi,?] Kion vi opinias ĝi tuj faros? Fini maĉi. Vi ne devus paroli kun via buŝo malfermita. Spektantaro: Ĉu ĝi prenu faskon da argumentojn, trovi sumon de ili reveni sumo, kaj poste presas gxin? Aŭ ĝi faras en du argumentoj, kaj tiam ĝi faras [inaudibles]. Kaj poste presas el kio ajn La rezultoj estas. SPEAKER: Fermi, vere proksima. Iu volas aldoni al [? kio Avi?] diris? Ĉu vi bezonas doni tiun programon neniu komandlinion argumentoj? Spektantaro: N-ro SPEAKER: N-ro Kio okazas se vi ne donas al ĝi neniu komandlinion argumentoj? Mi nur skribas dot oblikvo MySum. Spektantaro: 1 plus 2 egalas 3. SPEAKER: 1 plus 2 egalas 3. Kaj gxi donos presi tion diveni. Tio estas ekzakte pravas. Vi vidos ke la presitaj f linio ĉe la malsupro. Ĝi devos presi a, b, kaj tiam la sumo de a kaj b. Kaj mi supozas ke vi supozas ke sumo funkcias korekte. Bonan supozo. OK, kaj kio okazas se mi doni ĝin kio argumento? [? Manu? ?] Spektantaro: Ĝi devos aldoni kion ajn La unua argumento estas al b. Aŭ al 2, pardonon. SPEAKER: dekstra, al 2. Ĉu iu scias kio strtol faras? Ĝi estas esence atoi. Atoi estas reale fantazio versio de - aŭ simpla versio de strtol. Sed fakte uzas strtol. Kaj mi trovis, ke ĉar mi volis iu kiel atoi, kaj tiam, kiam mi cxu atoi, mi legis cxi tie. Kaj mi trovis "tiun konduton estas la sama kiel "strtol. Do ĝi estas esence atoi por ĉiuj efektoj. Kaj vi vidas, Mi eĉ uzas nula kaj 10. Tiu fakte permesas preni kordo, kaj igi ĝin nombro, kaj elektu kia bazo vi volas fari gxin in Do tio estas bazo 10 rajton tie. Mi povus esti farita bazo du por dekuma, bazon 16 por deksesuma. Ĝi estas bela malvarmeta. Sed longan rakonton mallonga, tiu prenas du nombroj kaj aldonas ilin kune. Do ni ruli ĝin. Kaj vi ankaŭ rimarkos, tie kelkaj aferoj - tial mi havas makefile ĝuste ĉi tie, kaj se vi malfermas kiuj supre, iuj aferoj vi rimarkos estas malsamaj. Specife, tiu argumento ĝuste ĉi tie, vi probable ne vidis, ke antaŭe. Ĝenerale, ni kompilos tion per haltostreko nulo, nulo. Dash nulo, nulo, signifas ne plenumi neniu optimumigaĵoj, tradukilo. Ne provu fari ion fantazio, aŭ fari ion kuri pli rapide, aŭ akiri senigi de variabloj, kiuj estas necesaj. Ne optimumigi ĉi kodo en ĉiuj, Mi petas tria nivelo optimumigo. Do mi petas tradukilo fari multan optimumigaĵoj. Vi povas ŝanĝi tion en la makefile kiam Havante tiun kodon, se vi volas vidi malsamajn aferojn. Kiuj ni montros en sekundo. Do ni kuros mia sumo 1 plus 2 plus 3. Iu donu al mi du argumentojn. Spektantaro: 4 kaj 5. SPEAKER: 4 kaj 5. Dankon. Granda, ĝi funkcias. Kion estas kelkaj aliaj bonaj argumentoj provi, por certigi tio funkcias? Iu? Spektantaro: 0. SPEAKER: 0 kaj? Spektantaro: Negativa 3. SPEAKER: Ĝi funkcias. Sed tiuj estis bonaj elektoj. OK, do ni reiros tien. Ĉi tio estas mysum.c. Vi rimarkos ke estas ankaŭ io vokis sumfunction.c. Kaj tion diras, ho, tie estas io difinita en sumfunction.c. Mi ne inkluzivas tiun dosieron en ĉi tien ĉar mi ne bezonas. Sed mi ligas ĝin kiam mi kompilas, kiun vi rimarkis. Ni rulumu supren. Ni vidis, kiam ni kompilis mysum, dekstra tie, ni ligita en la duuma el sumfunction.o. Kaj mi ne bezonas la kaplinion dosieron ĉar, kompreneble, ne estas la funkcio deklaro. Do akraj inkluzivas kutime simple metas en funkcio deklaro. Jen mi ĵus metis gxin rekte en la kodo. Kaj do mi bezonas fari, estas ligilo en la duuma, kion mi faros. Ajna divenojn por kio en sumfunction.c? Kion kodo mi skribis en sumfunction.c? Spektantaro: [inaudibles]. SPEAKER: Ajna divenoj? Jes? Spektantaro: Mi opinias, difinas iuj [inaudibles]. SPEAKER: Jes. Do mi faras registran int sumo int a. Mi skribas ĉi tiun linion, tiam mi havas malferma krispa streĉa, fermita krispa streĉa. Kion vi pensas ke mi skribos interne tiuj krispa krampoj, la interno de tiu funkcio? Jes? Spektantaro: Return egalas al. Procesoro: Tio estas vere bona diveno. Kiu pensas [? Manu?] Estas justa? Ĝi diras resendas plus b. OK, ne ĉiuj. [? Akshar,?] vi faru ankaŭ? Vi estas certa? OK. Kio? Spektantaro: Vi literumis gxin erara. SPEAKER: Ne, mi ne faris tion. Jes, estas ŝerco. Vi pravas. Tio estas ekzakte, kion li diras. Estas resendas plus b. Tio faras multan sencon. Bone, ni iru tien. Ni vidos kiel la ĉapon - tio estas la reveno tipo. Memoru, ni jam vidis, ke la unua tago, la revenu tipon de la funkcio, sed iras antaŭ la nomo de la int funkcio. Ĉi tie, mi skribis int. Kion vi opinias, okazos, se en tiu funkcio, mi ne skribas int, sed Mi skribos sensigna? La diferenco, kompreneble, estante tiu sensigna reprezentas nur pozitiva entjeroj, kaj int povas esti pozitiva aŭ negativa. Do mi ŝanĝis la reveno tipo de ĉi tiu funkcio. Ĉi kodo ne kongruas tiu reveno tajpi tie ĉi. Kion vi pensas okazos kiam mi kompilas? Vi devas krii al mi. Neniu krioj. Kio pri kiam mi kuri la programon? Ni faru antaux 0 negativa 3, aŭ negativa 1. Ĝi ankoraŭ funkcias, eĉ kvankam mi estas diranta ĝi estas reveni sensigna entjera. Klare ĝi ne reveni sensigna entjera. Ĝi estas reveninte subskrib entjero. Ĝi estas reveninte negativa 1. OK, tio estas stranga. Kio pri se mi iros en ĉi tie kaj fari tion? Do mi ŝanĝis ĉiun el int al sensigna. Ĝi povas nur preni sensigna entjeroj. Sed ni ankoraŭ pensas gxi kuros? Spektantaro: Jes. SPEAKER: It will. Tio estas freneza. Kaj ni pasas en klare atribuitaj entjera, ni povas pasi du subskribis entjera, ĝi ankoraŭ funkcias. OK, iaj ideoj pri kial ĝi ankoraŭ funkcias, aŭ kio okazas? Yeah, Jeff. Spektantaro: Ĝi havas ion por fari kun via optimumigo, ke vi reliefigis. SPEAKER: N-ro Ni povis ŝanĝi la optimumigo, ĝi ankoraŭ funkcias. Mi povas fari tion por vi, sed - Spektantaro: Mi prenos vian vorton por gxi. SPEAKER: Jes. Se vi malfermas la makefile ĝuste ĉi tie, Mi ŝanĝis la optimumigo. Do vi povas fari haltostreko nulo, nulo. Ĝi ankoraŭ funkcias. Aliaj pensojn? You guys ĉiuj atendis labori, do why'd vi atendas ŝin labori? Neniu? Silento. OK. Mi devas atendi sep sekundoj, ĉar mi demandis. Do la malvarmeta afero pri C, kaj vi havas probable spertis antaŭe - vi eble ne havas, tiu potenco Estos la unua fojo. Sed kiel vi ĉiuj scias, kiam mi skribas io en C, ĝi ne savas kiel tio sur la komputilo. Ĝi savis tiel bonaj kaj nuloj. Ĝi iras de C-kodo al asembleo-kodo. Ĉu iu vidis asembleo kodo antaŭ, maŝino asembleo kodo? Ni rigardu en sekundo. Ĝi iras de C-kodo al asembleo-kodo. Kaj vi uloj konas la etapoj de kompilaĵo. Vi devis enmemorigi ke por kvizo unu, kaj tiam skribi ĝin je kvizo nulo. Plej multaj homoj akiris ĝin malĝusta. Mi kredas vi uloj najlis ĝin. Sed, vi uloj estas la plej bonaj sekcio por kvizojn, apud la vojo. Kiu estas timinda. Ke tio ne dolorigos vin. Ne estu maltrankvila. Sed estas vere genia. Bonan laboron. Do ĝi iras al asembla lingvo, kaj tiam iras al bonaj kaj nuloj. Kaj la bonaj kaj nuloj estas savitaj en la komputilo, kaj tio estas kio savis en la a.out, aŭ en ĉi tiu kazo, la plenumebla dosiero. Kaj la komputilo funkcias bonaj kaj nuloj. Ĝuste? Ni lernis tion antaŭ. Do la malvarmeta afero estas, tiu sensigna ideo, la ideo de tipoj ints sensigna, kaj tiel plu, kaj tiel plu, kiuj estas ĝis ĉi tie en la C-lingva. Tiuj ekzistas. Sed tipoj ne ekzistas la bonaj kaj nuloj. Tipoj eĉ ne vere ekzistas ĉe la asembleo lingvon nivelon. Do tio estas io kiu ekzistas en C mondo sed ne ekzistas en komputilo mondo aŭ procesoro mondo. Tio estas iom abstraktado ke la C lingvo inkluzivita, por fari nian vivas facile. Do, je la fino de la tago, mi povas skribi multaj diversaj aferoj ĉi tie, kaj ĝi tio ne faras diferencon. Pro tio nur ekzistas en la C mondo. Ĝi ne ekzistas en la bonaj kaj nuloj mondo. Kaj nia programo ekzekuti en la bonaj kaj nuloj mondo. Do via menso klare ne disblovata ankoraŭ. Sed mi kredas ke tio estas malvarmeta. Yeah, Jeff. Spektantaro: Do, se anstataŭ faranta int, vi faras char. Kaj vi estis - SPEAKER: Ni faru ĝin en sek. Spektantaro: Ĉar tiam vi ricevas sensigna irante de negativa 128 al 127 aux 0 kaj 255. SPEAKER: Do char estas problema. Ĉu iu scias kial char estus problema, kaj tio donus reale ŝanĝi aĵojn en tiuj kaj nuloj mondo? Spektantaro: Pro la grandeco de tipo char. SPEAKER: Grandeco char estas 1. Do sensigna estas ankaŭ 4 bitokoj. Do char estus screw aĵojn. Sed kio estas 4 bitokoj tio rilataj al char? Aŭ ĉe kiuj aldonas unu plian - vi povas meti pli karaktero post char. Spektantaro: Char stelo. SPEAKER: Char stelo havas 4 bitokoj. Do ni faru ion tio estas char stelo. Do tio versxajne funkcios, sed ni estas tuj fari ion eĉ pli freneza ol tiu. En mia opinio, pli freneza. Mi nun skribas funkcio kiu revenas puntero, kaj gxi prenas montrilon kaj sensigna valoro - Ni ŝanĝi ĉi reen al int tial ni ne estas fari tro multajn ŝanĝojn samtempe. Kaj ĝi havas tabelo nomata, indeksoj en la tabelo, kaj revenas la adreso de. Ni jam vidis tiuj operatoroj antaŭe. Tio, kion vi opinias ĉi tuj fari, ŝanĝo, kiam mi ruli ĝin? Kion vi pensas, ke tio faros? Ajna divenoj? Spektantaro: Segfault. SPEAKER: Kio? Segfault? Tio estas bona diveno. Tom diras la samon. Ajna alia divenoj? Kiu pensas ke tuj fari la samon? Kiu pensas ke tuj segfault? Ĝi faras la samon. Pardonon. Sed, kompreneble, ni metas en 1 kaj 2. Kaj tiuj estas ambaŭ validas, ĉu ne? Vidu, ni povas iri al la duan lokon de tabelo. Sed kion se ni faras b negativa nombro? Tio verŝajne estas pli bona diveno por ion segfaulting. Ĝi ankoraŭ funkcias. OK, tiu nun estas freneza. Tiu estas de egale valida sumo funkcio. Ĉi tio faras la saman ĝusta afero kiel reveno a kaj b. Ĉu iu ajn eksplikas kial tiu estas bona Resume funkcio, aŭ kial tio funkcias? Kio okazas ĉi tie? Kial tiu faras la ĝusta sama aĵo kiel nia malnova sumo funkcio? [? Akshar,?] kio okazas? Spektantaro: Ĉar, kiam vi havos oni jen adreso por la situo memoro - kaj kiam vi faras la signon, ke iras al tiu memoro adreso. Kaj kiam vi iros al b, vi estas speco de movanta paŝojn de tiu memoro adreson, vi reveninte tio. Do vi estas efektive, fakte, aldonante a kaj b [inaudibles]. Kie estas norma operacioj sur tiu reveno? Kiel, kie ne la parentezoj falu? Estas la reveno de la adreso sur antaŭe aŭ poste [inaudibles]? SPEAKER: Ĝi tuj indekson en b - aŭ indekso en - kaj tiam redoni la adreson. OK, do ne ĉiuj komprenos kion [? Akshar?] diris, kaj klarigis, kial tio funkcias? Mi ne faris tion, la unuan fojon iu klarigis ĉi tion al mi. Ĉu iu ajn ŝatus foton klarigi tion? Ni iras al desegni bildon, kun neniu markiloj, tio estas granda. Trovita iuj. Do ni havas tabelo tio serion de skatoloj. La unua estas indekso 0, indekso 1, 2, 3, 4, punkto, streketo punkto. Tipa tabelo. Kaj krom havi indeksoj, Ili ĉiuj havas memoron adresoj. Do ni donas ĉi memoro adreso 13, 14, 15, 16, 17, kaj tiel plu. Ĉies ĉi tie ĝis nun. Do oni estas adreso. La nomo de tabelo, puntero gardas tie. Ĝi estas montrilo, estas memoro situo, al la komenco de la tabelo. Do, se tiu estis la tabelo, oni devus esti valoro de 13. Kaj, kompreneble, ni povas doni oni neniun valoron ni volas. Char star a, ni povas doni ajnan memoro adreso ni volas. Ni povas doni ĝin 0, ni povas doni ĝin negativa 1 - negativa 1 ne ekzistas, do tio verŝajne problema, sed Vi vidis, ke ĝi ankoraŭ laboris. Do ni povas doni ajnan numeron ni volas, neniu memoro adreso ni volas. Tiam, int b diras, OK, iru ĉi nombro de paŝoj en la tabelo. Do se b egalas 2, kaj estas 13, Ni estas en memoro adreso 13. Kaj ni iros du paŝojn, kaj tiaj ni estas ĉi tie. Kaj-signo signifas revenon la adreso de ĉi loko. Kaj la adreso estas, kompreneble, 15. Do ni ricevas 13 plus 2, aŭ alpago b, kiu estas 15. La demando estas, kvankam - Mi bedaŭras. Ĉu tio klarigos aferojn Kial ĉi tio funkcias? Spektantaro: Kial ĝi funkcios irante - tial vi povas havi tabelon kaj iri al negativa indekso? SPEAKER: Ĝuste. Do ni faris negativajn nombrojn, do jen la - Ĉu tio havas sencon though, unua, [? Avi,?] por vi? Spektantaro: Jes mi estas nur [Inaudibles], sed - SPEAKER: Jes, tiu redonus 15. Se estis 13, kaj b estis 2, ĉi revenus 15. Spektantaro: Do ​​la nulo indeksado ne fariĝu afero, ĉu ne? Ĉar vi estas movanta de 0. SPEAKER: Ĝuste. Do vi estas movanta - do se b estis 0, vi ne movus ie. Kaj vi ŝatus ĝuste respondis la adreso - se b estis 0, kiu estas esence reveninte ke adreson de. Pasante en Char stelo a kaj redonante la adreso de a estas nur redoni al, esence. Estas bone, la demando estas kial negativaj nombroj labori? Kaj tio estas la vere malvarmeta afero pri tio, ĉar tiu devas segfault. Kaj tio estus segfault se ni faris iun kiel ĉi tio. Ni diru, int. Do tiu kodo aspektas identaj kaj devus konduti idente. Esence, x estas rubo variablo, kaj tiel ĉi tio devus konduti idente. Ni faras tion - oops - en stelo. OK, ni jam ricevas eraroj ĉi tie, ĉar ĝi estas jam tuj estos kolera ĉe mi, ĉar ĝi jam scias, kio venas. En aparta, la dua. Adreso de plata memoro asocias kun loka variablo. Esence, mi ne tuj kompili tiu, kaj tiam mi iros malfari fari kion ni ĵus faris. Sed ĉar ni estas neniam reale aliro kio estas cxe la memoro situo, ĝi ne estas tuj segfault. Ni neniam vere rigardis kio estas en la dua kesto aŭ kio estas en ajna skatolo de tiu tabelo. Ni nur diri, jen la adreso de la afero ni serĉas kaj revenu tiu adreso. Ni neniam reale iras en la tabelo por rigardi ke situo. Kaj ĉar ni neniam tuŝu la memoro, ni ne ricevas en mizero. Ni ne akiros segfault. Se ni provis, denove, tuŝi, ke memoro, tuŝi kio estis en aŭ b - aŭ harpinglo b, kaj supozante a estis 0 kaj - Se estis 0, ecx, ke estus bela malbona, ĉar ni ne povas iri malsupren tutan vojon tie. Se a kaj b estis ambaŭ 0, kaj ni provis tuŝi kio estis tie, tiam ni havus akiri en mizero. Sed se ni ne tuŝas, kio estas tie, ni ĵus revenis al la adreso, tio estas fakte ne tuj segfault ĉar ĝi ebligas realigi tiujn operaciojn. Ĝi nur gets frenezulo pri vi, kaj ricevas la super kolera, kiam oni provas kaj tusxu la efektiva memoro kaj reveni kio estas en tiu memoro situo. Ĉu tio havas sencon? Tio estas nur freneza parto de C. Do, ni havas unu pli el tiuj. Kiu pensas ĉi estas cool? Pli da homoj. Tio estas bona. OK, tio estas nia lasta. Kaj mi ŝatus ke vi diru al mi, cxu aŭ vi ne kredas ke ĉi tio estas iri fari same ĝusta afero. Mi tiujn notita ie. Mi ne parkeri ilin. Ni vidu, 8, B 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. Do tiu estas tabelo, nun, ne funkcio. Kaj ĝi estas tabelo ĉar ni havas kvadratan krampoj, ne krispa krampoj. Kaj ĝi estas tabelo de kia tipo? Iu ajn, hmm? Spektantaro: Liaj deksesumaj nombroj? SPEAKER: Sed kio estas la C tipo? Ili ĉiuj havas deksesumaj nombroj. Kio estas la C tipo? Ĝi diros al vi. Spektantaro: Ĝi estas sensigna signoj. SPEAKER: dekstra, sensigna signoj. Kaj du deksesumaj nombroj Estas unu bajto. Do jen estas 1, 2, 3, 4, 5, 6, 7, 8, 9 bitokoj. Ĝi estas tabelo el 9 bitokoj. OK, vi probable jam scias La respondo al tiu demando. Sed, kion vi opinias volo okazi kiam mi kuros ĉi? Mi diras, denove, en mysum.c, Mi esperas funkcio kiu prenas du entjeroj. Kaj mi anstataŭ diri ke sumo estas tabelo de signoj. Kio okazos, kiam Mi kuras. / Mysum kaj fari? Nu, unue, la plimulto el vi versxajne konsentas, ke make - ho ne, nur ŝercas. What'd mi faras malbone? Uh io. Tio devus esti krispa krampoj. Tiel estas kiel vi pravalorizi tabelo. Mia malbona. Do ni jam vidis antaŭe, ke tipoj estas C-nivelo abstraktado, ne komputilo nivelo abstraktado. Do plejparto de vi probable atendis ĝin fari, aŭ supozante ke tio farus. Sed kion mi kuros. / Mysum? Kio okazos? Ajna divenoj? Spektantaro: Ĝi estas tuj presi ion. SPEAKER: Ĝi estas tuj presi ion. Kion vorton? Spektantaro: [inaudibles]. SPEAKER: Ajna alia divenoj? OK, presi frazon. Vi povas havi neniun frazon. Tio estos via flanko. Iu, kiu havas malsaman diveno? Anna, kio estas via diveno? Spektantaro: Ĝi devos presi - du leterojn, aŭ [inaudibles] unu literon. SPEAKER: Unu litero. Spektantaro: Ĉu mi povas kalkuli kiom multaj [inaudibles]? SPEAKER: Naŭ. Nu, mi tuj ekkuros ĝin. Ĝi faras la saman ĝusta afero. Ĝi aldonas du numerojn kune. Nu, ni pasas la du argumentoj. Ĝi ne prenas argumentoj. Do mi ne scias, kie ĝi povis eble akiri tiujn argumentojn. Sed ni pasos ĉe 100 kaj 0. Kaj ĝi aldonas 100 kaj 0. Tio estas freneza. Mi opinias tiel. Negativa 4, kiu laboras tro. Vi povas fari kion ajn vi volas. Ĉi tio estas egale valida sumo funkcio. Tio ĉi estas sumo funkcio. Sed, ne, vi diris estas tabelo de bajtoj. Do kio okazas ĉi tie? Do, denove, ni reiru al tiu ideo kiuj ni diris en la komenco mem. Vi iru de C-nivelo kodo, por muntado lingvo, al bonaj kaj nuloj. Ĉi tio estas deksesumaj. Sed tio estas vere nur Multaj aĵoj kaj nuloj. Ĉi tiu estas la 72 bonaj kaj nuloj, ĉu ne? 72 bonaj kaj nuloj. 9 bitokoj. Ĉiu bajto havas 8 bitojn. Ĉiu bito estas unu aŭ nulo. Do 72 ones aŭ nuloj. Mi ĵus skribis al ili kiel tiu - prefere ol skribi ĝin kiel multaj bonaj kaj nuloj. Sed tiu iros de C-nivelo lingvo, al asembleo lingvo, al la kodo. Kaj tion presos en kodo, ie, tiuj 72 bonaj kaj nuloj ke mi skribis cxi tie. Do ie en tiu - ni iru ĉi tie - ie mysum, la programo, tie estas jenaj 72 bonaj kaj nuloj ke mi havas skribita kaj rakontis ĝin skribi. Nun, neniu divenas por kio tiuj 72 bonaj kaj nuloj signifi? Spektantaro: Probable la sama aĵo kiel reveni alpago b. SPEAKER: Probable la sama aĵo kiel reveni alpago b. Ni kontrolos tion. Ni elkompreni kiel mi faris tion. Do se vi reiros tien, mi rakontos al vi kuri ĉi komandon, objdump-S sumfunction.o. Ni iru ruli ĝin. objdump - obj, renversi. Esence ĝi povas doni al mi kion ajn mi volas vidi. Ĝi povas doni al mi la asembla lingvo. Ĝi povas doni al mi la bonaj kaj nuloj. Ĝi havas ton de flagoj. Tiu estas la unu ni iras uzi ĝis nun. Dot - kiel vi vidas en la diapozitivoj - haltostreko ĉefurbo S diras, intersperse, fontkodo - tiu linio estas de C - kun la asembleo kodo kaj kun la bonaj kaj nuloj. Kaj ni tuj kuri ĝin sur sumfunction.o. Ĉar ĝi estos pli facile vidi. Denove - hmm? Spektantaro: Vi literumis gxin erara. SPEAKER: Sed mi vere iras demeti ĝin dum sekundo. Mi unue iris malfermi nur sumfuntion.o. Spektantaro: Vi literumis gxin erara la unua fojo. SPEAKER: Classic. Sumo - ke estas malfacila vorto, kvankam. Vi estus surprizita. OK, do ĉi tiu estas sumfunction.o. Mi ecx ne povis diri al vi. Tie estas multe da nuloj, klare multe de nuloj, kaj tie estas kelkaj aliaj stuff tio ne estas nuloj. Sed plejparte nuloj. Ŝajnas ke estas iom da aĵoj. Do klare, tio estas malfacila por legi. Tio estas la duuma lingvo. Ni nun malfermu ĝin - kio? Kion mi faras malbone? Ĉu mi literumi gxin korekte? OK, tio estas mallerta. Mi bezonas unu dua ekkompreni kion mi faras malbone. Tio estas unu eraro. Tio estas stranga. Ho, jen kial. Mi tuj iros reen al nia komenca unu, do ni povas rigardi la celkodon de ĉi. Ĉar tie ne estas vere tuj esti io kiam ni nur metis la bonaj kaj nuloj in Tie ni iru. OK, tiel ĉiuj povas vidi ĉi tion. Ĉi tiu funkcio, kiel mi jam diris, meti ekster la C linioj - fontkodon linioj - kun iuj asembleo instrukcioj. Jen nia fontkodon linio. Jen unu, jen alian. Jen estas la eklezio de instrukcioj. Tio estas kio ili similas. Asembleo instrukcioj - vi povas lerni pli da tiuj, se vi prenas aliaj CS klasoj, sed ili estas ĝenerale instrukcio. Kaj tiam fonto kaj destino. Kaj tiam ĉi tie estas la duuma kodo kiu respondas al tiu asembleo admonon. Do kiel vi povas vidi, tiu sumo funkcion, ĉe la fino de la tago, estas tri asembleo instrukcioj. Nur tri. Oni mov - tiu m-o-v staras por moviĝi. Aldoni bazaĵojn por aldoni. Kaj r-kaj-t staras por Reveno. Do unu mov, oni aldonas, unu reveno. Kaj tiuj, ĉi tie, estas la nuloj kaj kiuj respondas al tiu kodo. Do tiuj nuloj kaj aĵoj, se vi konas tiujn, vi povas simple meti tiuj rektaj in Kaj tiam ĝi faros la sama ĝusta afero. Ĉar, je la fino de la tago, ĉiuj vi ekzekuti estas longa serio de nuloj kaj aĵoj. Kaj tio kion via kodo estas vere. Kaj la kialo - ni rigardu unu afero. Ĉu mi havas la makefile malfermitaj? Do, se ni reiris al interfrapigos nulo, nulo ĝis tie - bedaŭras, ĉefurbo o, ĉefurbo o nulo, nulo, nulo. Kaj ni ne faras, estus ankoraŭ prilabori la saman. Sed nun vi rimarkos ke ekzistas multe pli asembleo instrukcioj. Tio estas ĉar, denove, mi demandis al la tradukilo ne fari ajnan optimumigo. Do mi povis ankoraŭ porti ĉiujn el tiuj nuloj kaj aĵoj, kaj jxeti ilin en, kaj tio funkcius. Mi ĵus faris la optimumigaĵoj, ĉar ĝi estas iom pli facile, do, skribi ke tabelo. Sed tio funkcius same bone. OK, ni tuj faros unu fina afero, ĉar mi opinias estas la malvarmaj parto. Eĉ kvankam ĉies klare Jam blovitaj kaj mutaj. Niaj mensoj estas blovitaj. [Inaudibles] Do, tiuj estas de malsama CS klaso, kiu estas super interesa, kiun mi kaptis - CS61. Mi tre kuraĝigas vin por preni ĝin. Sed la malvarmeto parto pri tiu fakto, ke ajn justa nuloj kaj aĵoj, estas ke ĉiu estas nuloj kaj aĵoj. Do vi povas preni dosieron kiu havas la korekta nuloj kaj aĵoj vi volas ie en ĝi, kaj uzi tiun sekcion de nuloj kaj aĵoj kiel sumo funkcio. Kion mi celas per tio? Mi volas diri al vi povas preni bildon dosiero havas la korekta serio de nuloj kaj ones, kiuj presas ion el al bildo. Kaj unu programo povus interpreti estas bildon, sed oni povas interpreti ĝin, se vi volas, kiel sumo funkcio. Do, se ni volis malfermi pro Ekzemple, ĉi tiu bildo. Ni iru, Hello Kitty. Mirinda iom bildo. En ĉi tie estas ke kordo de nuloj kaj aĵoj. Tiuj 72 nuloj kaj aĵoj ekzistas en ĉi tiu bildo. Do kion mi povas fari, do estas skribi - Mi devas memori, kie ili estas. Mi trovos ke en dua. Sed ni devas fari - lasu min nur el kie ili estas. Unu sek. Ni do - Spektantaro: [inaudibles]. SPEAKER: Dankon. Do, se ni faros tiun programon, kiu anstataŭ legas en dosiero, tiam ĝi iras al tiu indekso en la dosiero. Kaj tiam, denove, simple ŝatas mysum, prenas du nombroj. Ni povas aldoni ciferojn ekzakte la sama kiel ni faris antaŭe, kiuj iras al montras al vi, ke la fakto ke, ĉe la fino de la tago, ĉiuj ĉi tiuj aferoj estas nuloj kaj aĵoj. Kaj ĝi estas precize kiel vi elektos interpreti ilin. Kaj se vi efektive aspektas en ĉi bildo - ni zomi iom. Ĉu ĉiuj vidi lin? Vi rimarkos ĉi tie, tie estas iuj strangaj makulon. Ni iru - tio estas la originala bildo. Vi rimarkos ĉi tie ne estas makulon. Tio estas la kodo por la sumo funkcion, estas, ke iom makulon rajton tie. Kaj efektive, denove, se oni lernas pli pri tio, vi rimarkos, ke tiu Hello Kitty, kiu havas eĉ pli grandan makulon, havas kodon kiu povas transpreni a komputilon, se ĝi ne estas protektita taŭge. Do vi povas reale kuri ĉi. Mi ne tuj kuri gxuste nun. Sed vi povas kuri ĉi Saluton Kitty bildo, kaj ĝi povas preni sur via komputilo. Do tio estas ĉio por la demo. Ĉu iu havas iun demandon, komentoj, maltrankviloj? Mi pensas ĉi ŝtofo estas fascina. Ĝi inspiris min por lerni pli. Mi forte rekomendas, se vi estas interesita ĉe ĉiuj en CS, paroli kun mi. Kvankam mi estas Sociaj Studoj Concentrador, mi CS, malĉefaj, tiel Mi ankoraŭ scias iomete. Sed mi certe scias, kio klasoj vi devas preni. Mi pensas, ke estas tuta vere interesa, kaj mi kuraĝigas vin, certe, al lerni pli, se vi interesiĝas. OK, mi havos unu finon afero. Pardonon. Demandojn? Mi ne detenis atendi se iu havis ajnajn demandojn pri tio. Ĉu iu ajn tuj estos CS Concentrador? Aŭ pensante pri ĝi? Unu, du, tri, kvar. Unu - nur unu. Anna estas la sola mano kiu estas levis aŭtoritate. OK, tio estas malvarmeta. Asamo, kion vi intencas fari? Spektantaro: [inaudibles]. SPEAKER: Constantine? Spektantaro: Fiziko. SPEAKER: Whoa, kiuj estis rapida. Vi havis malbonan sperton en CS50? [Inaudibles], kion vi intencas fari? Spektantaro: Mi havas nenian ideon. SPEAKER: Curt? Spektantaro: Econ aŭ CS. SPEAKER: Econ aŭ CS. Tom? Spektantaro: Mi fartas Stat. SPEAKER: Stat? OK. Kio vi estas? Spektantaro: Mi? SPEAKER: Jes. Spektantaro: Stat. SPEAKER: Stat. Ha, tie vi iros. Tom, paroli Alden. Emily, kio vi estas? Spektantaro: Biomédicos - SPEAKER: Ĉu vi estas en ĉi tiu sekcio? Spektantaro: N-ro SPEAKER: Bone, tio estas Emily. Ŝi estas mia amiko. Klare, ne ke bono de amiko, ĉar ŝi donas al mi malfacilan tempon. Vi povus esti pli agrabla al mi en antaŭa de ĉiuj, miaj studentaj - Spektantaro: Mi fartas via Q gvidilo. SPEAKER: Cxu? Uh io. OK, vi estas miriga. Mi amas vin tiom. Ho knabo. Iel, mi, hieraŭ nokte, kiel cxio - Mi estas certa ke ĉiuj similas vere substrekis ĝuste nun. Mi ne scias, estas novulo - estas you guys sentante emfazis? Mi sentas min emfazis. Ĝi estis kiel, vi iru hejmen por Thanksgiving. Vi ŝatas, mi tuj fari cxiujn tiujn aferojn. Spektantaro: Ĝi estas tiel malsamaj. SPEAKER: Jes, kaj vi revenos. Jeff, vi ne sentas, ke vojo? Spektantaro: Mi nur pensis Mi volus fari iomete. SPEAKER: OK, grandaj. Mi do revenos, kaj mi ne havas faris nenion. Kaj tio estas ĉio super streson. Kaj mi certas koncernita, malfalse raportas, pri tio, ĉu aŭ ne mi estas tuj finos ĉion, kion mi devas. Sed hieraŭ nokte, mi ne estis emfazis, Mi estis nur iom malgaja. Do mi skribis en mia taglibro pri kia mi estis malgaja pri. Kaj mi estis malĝoja pri ĉi sekcio en ĉi tiu kategorio venis al la fino. Do mi nur legos por vi infanoj iom fragmento el mia taglibro, de lasta nokto. Ĉu mi povas ricevi iun buŝtukoj, iuj histoj de Tom? Ne, mi tuj vokos. Mi ne krios. Ne tio, vi ne povas plori, Mi simple ne ploras. Mi eĉ ne scias se mia larmo glandoj laboris - larmon tuboj. Mi ne kriis en longa tempo. Spektantaro: [inaudibles]. SPEAKER: Bone, dankon. OK, tie estas iom prefaco - tie estas kelkaj aliaj partoj de mia taglibro enirejo, ĉar mi provas gazeto ĉiun nokto, antaŭ ol mi enlitiĝas. Mi forte rekomendas taglibro. Ĝi helpas al vi prilabori tion, kaj ankaŭ esti tre apreciativa de via tago. Kaj tio faras ĝin multe pli facile rigardu reen sur via tago kaj rimarkas ke tie estis multe da bonaj aferoj kiuj okazis. Eĉ se vi sentas vere emfazis nokto aŭ vere tedas, aŭ vere malgaja aŭ laca. Ho, mia dio. Mi eĉ ne scias se ĝi estas skribita, ke bone, ĉar mi ne provlegi ĝin. Sed ni legos ĝin. Mi kutime ne legas mian revuo, evidente. "Morgaŭ, mi instruas mian finon CS50 sekcio de la jaro. Estas freneze kiel rapide tempo flugas. Ankoraŭ, mi frapis per kiom malsama mia sperto instrui ĉi jaro estis ol kiam mi estis duan. Por komenci, mi certe konas la materialon bona. Sed ne diru mia unua kohorto de studentoj tion. Pli grave, tamen, mi rimarkis ke la ĝojo, ke ĝi venas de staranta supren antaŭ la ĉambro de kio startas el kiel fremduloj, sed finas kiel, ĉe Almenaŭ, amikoj en Facebook, estas Ne unuajara bonŝancaĵo. Pli ĝuste, ĝi estas el ni scias, ke en iu malgranda maniero, vi helpas talenta, pensema, plezuriga, kaj pasiaj homoj lernas iom pli pri komputiko. Vi estas sxangxigxantaj ke ampolo nur iom en lian socket, tiel ke ĝi estas kapabla brili hele ol vi, ĉu ili, povus esti imagitaj ĉe semestro komenco. Vi helpas igi tiujn fruntosulkoj upside malsupren kaj demandojn kiuj provizi subtenon, sed ankoraŭ permesi studentoj stari sur siaj propraj. Ĝi estas certe ne estas troigo diri, ke ĉi tiu sekcio estas mia plej ŝatata parton de la semajno. Aŭ eĉ ke Mi hezitas diri, ke estas ĉiuj, je la 5:30 PM ĉiu semajno, sciante ke estos tro longa gxis ni renkontos denove. Tamen, mi estas nekredeble dankas cxiu, kiu estas donita al mi ĉi ŝanco redoni al aliaj. Al David pro sia pacienco kaj fido. Por la filmo kaj produktado ŝipanaro, por fari al mi aspektas iom respektinda. Kaj, plej grave, miaj studentoj, sen kiu mi volus havi neniun kialon por pasigi 10 horojn elŝeligi la plej bonaj maniero por desegni montriloj, aŭ kuŝis ekstere ĉirkaŭ tablo de delfenoj, per JavaScript. Kiel ĉiam, jam pasis benon. " Do per tiu, thank you guys. Mi vidos vin cxiujn cxe la CS50 foiron, kaj la hackathon, se vi estas tie. Kaj se vi havas demandojn, mi algluita ĉirkaŭe ĝis neniu pli. Sed mi dankas al vi uloj por mirinda jaro. [Aplaŭdo] SPEAKER: Mi povus plori.