[Jwe mizik] DAVID Malan: Tout dwa sa a se CS50 ak sa a se nan fen semèn yon sèl. Se konsa, mwen ta renmen prezante ansyen m ' advisee, Andel Duff, ki moun ki pa sèlman fè iPhone 5 kanpe, osi byen ke sa a lutren, li tou fè machin. ANSEL DUFF: Ki jan nan li prale a, tout moun? Mwen jis vle di ou yon ti kras ti jan sou Fòmil SAE, nan ki mwen menm kòmandan an. Se yon ekip MIT. Mwen jis vle di ou mesye yon ti kras sou li ak èspere ke jenere kèk enterè yo. Se konsa, kite m 'jis kouri nan yon koup bagay sa yo sou ekip nou an. Se konsa, nou ap konplètman elèv kouri, kote tout nan desen an manm, simulation, tès, ak manifakti yon Subsystem nan machin nan. Nou gen boutik pwòp machin nou an ak garaj, ak N52-- oswa regrèt, N51-- ki se menm bilding nan kòm Syans Mize a MIT. Apre sa, nou yo se moun yo ki kondwi machin nan. Genyen yon konpetisyon nasyonal nan konmansman an nan sezon lete an, ak Lè sa a, gen pi piti fiziyad konpetisyon pandan tout ane a. Lè sa a, nou fè fòmasyon chofè jou jwenn nouvo manm konnen. Jou bati nou yo se sou Samdi soti nan 11 am jiska 8 pm. Manje midi ak dine ap pran swen nan, ki soti nan Bertucci a ak Beantown respektivman. Nou gen yon reyinyon chak semèn ak seminè, ki se pou kou kredi. Ki se nouvo kòm nan semès sa a, epi li pral tou pou pou pwochen semès, konsa ou ka travèse-reg pou sa. Lè sa a, nou gen desine, magazen, ak jou CAD pandan semèn nan, Lè nou konsidere ke manm pral poukont Pati CAD, lòd stock et setra. Se konsa, pou elektrik jeni nan ekip la nou gen lap nou an, vòltaj segondè sistèm, ki te kouri nan yon nominal 300 vòlt, ki gen ladan motè, contrôleur motè, ak pake batri. Lè sa a, nou gen yon ba vòltaj sistèm, ki te kouri nan 12 vòlt, ki gen ladan kontwòl, KAPAB nœuds, sèvo a bwat, ak tablo enstriman an. Osi lwen CS ale, nou fè gen antretyen sit entènèt ke nou bezwen fè pou evènman yo, rapòte chanjman, foto nouvo, ak materyèl PR. Lè sa a, nou gen Kòd ki kontwole la machin pou kontwòl traction nou an, lansman kontwòl, kontwòl priz, koupl gidaj, ak rejenerasyon sistèm frenaj, ki kouri tipikman nan Matleb, Simulink, ak LabView. Di ou yon ti kras sou machin nan. Se konsa, li sou 500 liv. Li nan règ limite a sa sèlman 85 kilowat. Li te gen 2 EMRAX 207 motè nan la tounen, yonn pou chak wou dèyè. Li te gen pake batri koutim-bati soti nan selil A123 Sak prismatik, totalize 300 vòlt ak 5.6 èdtan kilowat. Lè li nan kondwi dirèk ak yon rapò 2.64 nan 1 kondwi. Isit la yo se kèk foto nou te pran nan li nan konpetisyon. Isit la nan kòn lan tounen, nen, ak isit la yo se motè yo, moun gwo disk nwa anba manus la et chòp. Isit la nan yon glise ke mwen rale soti nan konplo konpetisyon nou an. Lè sa a se jis konpare machin nou an nan yon koup la machin Commerce disponib, tankou km XBOW a, Ariel Atom, ak Caterha M 7-280. Si w ap abitye ak pri, pouvwa rale pwa, dola pou chak puisans, dola pou chak koupl, ak machin nou soufle yo tout soti nan dlo a. Si w gen nenpòt kesyon, ekrir desann adrès imel sa a. Tire nou yon imèl nan fsae@mit.edu. Nou kontan pale sou anyen ou ta renmen. Harvard elèv yo se kalite nan minorite a nan ekip la. Si w gen nenpòt kesyon sou ki tanpri fè tire nou yon imèl, kè kontan yo pale, ak mwen pral nan tèt tounen sou bay David. Mèsi. Mwen apresye li, guys. [Aplodisman] DAVID Malan: Ansel pase sezon ete a travay avèk nou isit la nan kan nan CS50 sa a ete. Ak nan adisyon a travay sou bagay sa yo tankou anpoul yo binè, li aktyèlman vrèman louvri nou an eyes-- ak m 'nan particular-- sa ki vrèman entèseksyon an nan pa nan kenkayri ak lojisyèl kapab. An reyalite yon anpil nan bagay sa yo li jis te fè yon toune ou atravè yo finalman kreye premye nan lojisyèl, ak Lè sa a finalman fabrike nan mond lan reyèl nan kenkayri. Se konsa, si w ap enterese nan eksplore ki entèseksyon, petèt pran gwoup sa a. Koulye a, pandan se tan, moun nan nou ki se fanatik nan teknoloji, ak Apple pwodwi nan patikilye konnen ke gen yo te yon koup la anons yè. Men, nou te panse nou ta montre ou youn ki te soti yon kèk jou anvan ke ou pa ta ka gen pou wè. Jorgen EGHAMMER: Ou konnen, yon fwa nan yon ti moman yon bagay vini ansanm ki chanje fason nou ap viv. Yon aparèy konsa senp ak entwisyon lè l sèvi avèk li santi l prèske yo konnen yo. Entwodwi 2015 ika catalogue. Li pa yon liv dijital oubyen yon e-liv, li nan yon liv-liv. Premye bagay yo sonje gen okenn câbles, pa menm yon kab pouvwa. 2015 ika katalòg la vini byen chaje, ak lavi a batri a se p'ap janm fini an. Koòdone a se 7.5 pa 8 pous, men ka elaji nan 15 pa 8 pous. Se navigasyon a ki baze sou moun touche manyen teknoloji ki ou ka aktyèlman santi. Kontni vini pre-enstale via 328 paj sa definisyon-wo nan enspire lide Mobile lakay yo. Pou kòmanse Navigasyon, tou senpleman manyen ak trennen. Dwat a gòch pou avanse pou pi devan, goch a dwat pou avanse pou pi bak. Avi yon lòt bagay? Sa a dwat. Pa gen lag. Chak paj klè kristal charj enstantane, pa gen pwoblèm konbyen vit ou woulo liv. Si ou vle jwenn yon BECA rapid, jis kenbe l 'nan pla men ou, ak lè l sèvi avèk jis gwo pous ou, vitès browse kontni an. Si ou jwenn yon bagay ou vle pou konsève pou pou pita, ou ka senpleman bookmark li. E menm si ou fèmen aplikasyon an, ou ka fasilman jwenn makè a ankò. Dwòl. [Ri] [Aplodisman] Se konsa, ki pote nou nan nan fen semèn yon sèl. Yon anons kèk kounye a. Se konsa, Koup se kounye a nan pwogrè. Ale nan URL sa a isit la nenpòt moman ant koulye a ak Vandredi a midi yo aktyèlman presize si wi ou non ou se nan mitan moun mwens konfòtab, plis konfòtab, oubyen yon kote nan ant. Sa a se tipikman youn nan moun ki bagay ke ou jis kalite konnen. Ak nan reyalite moun nan nou ki yo gen mwens konfòtab pwobableman konnen kòm anpil, moun nan nou ki gen plis konfòtab konnen kòm anpil, epi ankò si ou pa byen asire ki nan tout sa yo bokit ou tonbe nan w ap pwobableman yon kote nan ant. Men, rès asire ou ka swap apre yon koup la semèn si yo bezwen. Pandan se tan, pou semèn k ap vini nou pa kòmanse seksyon se pou chak, men seksyon super, ki ki ouvè a tout elèv. Sa a ap vini Dimanch nan yon kote ap anonse sou sit entènèt la kou nou pral gen yon sèl pou moun ki mwens konfòtab, osi byen ke yon sèl pou moun plis konfòtab. Ak moun ki yon kote nan ant ka chwazi ki nan tout sa yo de, oswa toude si ou ta renmen, yo chita-a sou. Ak konsantre nan nan tout sa yo yo pral finalman sou C, ki nou pral kontinye nou an konvèsasyon nan jounen jodi a. Pwoblèm mete 0 pandan se tan se èspere ke nan men ou. Ofisyèlman akòz demen, Jedi, a midi. Sof si ou lajan kach nan yon sèl nan 5 jou an reta ou, ki ta pote l ' jiska Vandredi a midi. Pwoblèm mete 1 pandan se tan yo pral afiche sou sit entènèt kou a. Lè sa a pral premye nou an plonge kòm yon klas nan C. Epi sa pwoblèm mete espèk ap mache ou nan yon anpil nan mekanik yo nan sa ki Nou te kòmanse pale sou nan Lendi, epi n ap kontinye pale sou jodi an. C, Linux, CS50 a aparèy, nan tout sa ap tann ou nan spesifikasyon la. Lè biwo pandan se tan yo nan pwogrè, nan sal la kote moun bakaloreya. Tèt nan sa a URL isit la yo wè nan randevou pou pou aswè a ak demen, si ou ta renmen patisipe. Kesyon pandan se tan, se konsa ke ou gen opòtinite poze kesyon asenkron, 24/7, reyalize w ap pa limite a seksyon ak biwo èdtan, men pito zouti sa a isit la, CS50 Diskite nan ki URL pral sou entènèt kou a nan lojisyèl tablo afichaj, via ki ou ka poze kesyon nan kamarad klas ak tou anplwaye yo. Se konsa, kenbe nan tèt ou ke resous yo tou. Pandan se tan yon tradisyon kòmanse sa a Vandredi. Kòm ou ka gen yon apèsi soti nan videyo kol mèkredi dènye a, nou gen yon tradisyon ki pi chak vandredi pandan tèm nan pran kèk 50 elèv yo ak anplwaye nan yon restoran lokal yo rele Dife ak glas, nan ki nou ap tipikman ansanm ak kèk elèv oswa zanmi ki soti nan endistri jeneralman aspire fè yon gwo klas santi pi piti. Se konsa, li yon manje midi konplètman aksidantèl. Yon pakèt moun nou, anplwaye a espesyalman, yo pral jwe chèz mizik epi yo chat ak elèv sou 50, lavi andeyò 50, lavi nan lavni an, mond reyèl la, Mwen ap pale de opòtinite travay ak zanmi nan endistri. Se konsa, si ou ta renmen rantre nan nou sa a Vandredi, tèt nan sa a URL isit la. Plas yo limite, men nou pral fè sa recurringly nan tout tèm. Tèt gen cs50.harvard.edu/rsvp. Men, si ou pa jwenn nan tan sa a, pa enkyete. Nou pral fè l 'ankò nan semèn kap vini yo tou. Se konsa, sa a se foto a nou pentire semèn pase a, ak ou te pwobableman te diletantism nan konsa byen lwen. Men, kite a eseye konekte sa a kounye a nan sa nou ap ale nan fè jodi a ak pati. Te kapab mwen gen yon sèl volontè? Tout dwa, oswa plizyè. Kouman sou isit la sou la fen, nan chemiz la ble. Vini non sou yo, sa ki nan non ou? Alana: Alana. DAVID Malan: Alana. Se konsa, Alana, pou jis yon moment-- bèl al kontre you-- ki pral jwe wòl nan nan sa a fonksyon isit la. Blòk la koulè wouj violèt nou te rele konsa byen lwen yon fonksyon. Se konsa, sa, mwen pral ale pi devan isit la epi yo ofri Alana se yon tag non ti kras, yo fè klè ki wòl w ap jwe. Se konsa, ou va gen blòk la di. Si ou vle ale pi devan epi mete sa sou. Epi nou ap ale nan kenbe sa a super senp. Si objektif la nan men se tou senpleman kounye a aplike ak Alana, sa a sa yo rele di blòk, isit la nan ki jan li k ap pase nan travay. Mwen have-- kite a rele l ' yon agiman oswa paramèt, li a vrèman jis yon fèy papye vid. Lè li nan blan nan kalite gen okoumansman nan bwat la blan nan ki w ka ekri mo yo. Pandan se tan, mwen pral ale isit la. Mwen pral ale pi devan epi ekri H-E-L-L-O vigil nan lemonn. Epi, koulye a mwen menm, kòm di pwogramè a, pa fè sa aktyèlman konnen ki jan yo di yon bagay. Mwen ka vini ak mo sa yo, men mwen fè pa nesesèman konnen ki jan yo eksprime tèt mwen bouch oswa sou ekran an. Se konsa, ki sa mwen pral fè se pran pyès sa a nan fonctionnalités, ki gen input-- oswa agiman, jan nou pral rele li, Mwen te ekri sou pyès sa a nan paper-- ak mwen pral konfye li. Ak tout bon sa a, se wòl a ki fonksyon nan yon lang programmation ka jwe. Yon bagay tankou di nan ka blòk dwe tretans ak yon moun ki vrèman konnen sa li oswa li ap pale de. Se konsa, si ou pral etap sou isit la pou jis yon ti moman, Mwen pral pase sa a D ' Alana, epi mande ke ou di opinyon sa a. Alana: Hello, lemonn. DAVID Malan: Sa a li. Se konsa, ke gen yon fonksyon. Koulye a, nou ka pran li yon ti kras plis, nou ka pran yon etap pi devan isit la. Paske sa ki te klèman underwhelming. Se konsa, kite a kounye a konvèti sa a bagay yon ti kras pi plis sofistike. Se konsa, sa a nan kou a se vèsyon nou an C. Se konsa, kounye a si ou vle pran ki yon sèl la, ki tag non koupe, e kite yo gen ou mete yo sou yon nouvo non. Men, fondamantalman w ap ap jwe wòl la menm, li jis pou k ap pase nan dwe rele printf kounye a. Istwa a se, nan kou, ale nan be-- pwobableman menm jan underwhelming-- se pral fè bagay sa a. Ou se kounye a printf an fonksyon. Se mwen menm ki moun kap rele a, oswa nan pwogramè, ki moun ki vle yo kanpe sou zepòl yo nan moun ki nan tan lontan an tankou ou, ki moun ki te deja kalkile konnen kouman ou ki aktyèlman ekri yon bagay desann. Se konsa, tan sa a, olye ke yo di li se pou yo aktyèlman sèvi ak ekran nou an sou isit la. Se konsa, si ou ta renmen nan etap sou isit la, mwen pral yo pase ankò sa a kòm D 'nan zanmi printf mwen. Si ou te kapab ale pi devan epi enprime ki sou ekran an, tou senpleman pa fè desen ak ou dwèt sou ekran an nwa. Ekselan. Tout dwa, kidonk anpil sispens pou ki jan ki te ale nan jwe deyò. Se konsa, kounye a kite a pran bagay sa yo moute yon sèl dan final la, si nou te kapab, jan sa a. Se konsa, sa a se yon pwogram C jan nou te di dènye tan. Lè sa a jis fè sa ou te fè, li simagri soti nan ekran, hello, mond lan. Menm si gen nan byen klè yon anpil nan trouble bagay moute a. Men, kite a pran bagay yo yon Notch ak prezante vèsyon sa-a, ki sonje te vèsyon an twazyèm ki nou te fini ak dènye tan. Epi, koulye a gen nan byen klè de itilizasyon nan printf. Genyen 2 rele nan zòrèy Alana nan ka sa a pou printf, men gen la tou yon apèl nan yon lòt fonksyon. Ki sa ki nan ke fonksyon byen klè? Getstring. Èske nou ka jwenn yon sèl plis volontè? OK, vini sou yo. Ki sa ki nan non ou? Javier: Javier. DAVID Malan: Javier, vini sou yo. Se konsa, wòl Javier a se sou sa a moso papye. Ki Mwen pral rele generic an. Koulye a, sa a se yon varyab, li nan nan kalite fisèl, kòm enplisit pa ke liy dezyèm nan mitan an la. Apre sa, mwen ta renmen ou yo ale jwenn m 'yon fisèl. Espesyalman tèt desann nan òkès ​​la seksyon epi pou yo jwenn m 'non an nan yon moun, ak vini tounen ak yon varyab ki gen ki valè. Li kapab nenpòt moun ki ou vle. Isit la nou ale. Tout dwa, Javier se ekri desann non yo. Tout dwa. Nou tout ka pwobableman devine ki jan sa a se ale nan jwe deyò. Nou ap petèt belaboring pwen an nan sa ki yon fonksyon se fè, men Alòske di ou mèsi anpil. Se konsa, Javier te retounen fisèl sa a isit la, ki, pa ka byen wè, Jonatan se fisèl la ke nou te vinn. Se konsa, kounye sa m ap aktyèlman pral bay Alana menm si se yon bagay yon ti kras diferan. Paske nan sa a vèsyon an nan pwogram, premye gen nan eta non ou. Se konsa, agiman an trè premye Mwen bezwen bay Alana ak a pwal literalman deklare non ou. Tout dwa, kidonk senp tankou sa Mwen ta men sa a ba ou. Ak jan mwen ekri moute nan agiman vini an, si ou vle ale pi devan epi ekri sa a sou tablo a, se pou yo ale pi devan ak fè egzanp final la isit la fè klè sa k finalman te rive nan rive. Se konsa, eta non ou, ekri li nan direksyon tèt la si ou pa lide, jis pou ke nou gen plas pou yon dezyèm liy. Paske bagay la pase mwen pral kounye a ofri ou ak se pa yon sèl, men de moso papye. Tout dwa. H-E-L-L-O vigil ak Lè sa a yon liy vid. Se konsa, sa mwen se sou nan men Alana kounye a se yon bagay yon ti kras diferan. Se pa sèlman se li ap resevwa sa a, ki kote ranpli nan vid la reprezante ki percent-- sa ki te nan kontneur nou ve yo te lè l sèvi avèk? Yeah, se konsa pousan an. Pandan se tan, mwen pral pase li nan yon agiman dezyèm lan, ki se pwesizeman sa ki Javier Retrieved soti nan Jonatan. Se konsa, kite m 'ba ou sa yo de. Si ou ta renmen, ale pi devan epi enprime ki efè. Ki sa ki nan k ap pase finalman kounye a se, Alana ankò ap jwe wòl nan printf. Javier te jwe wòl nan GetString. Se konsa, ki pral souvni ou. Ak finalman sa k ap pase, malgre sa a hello-- YEP ale pi devan epi vigil. Alana: Èske mwen resevwa sa a ankò oswa ki pa gen? DAVID Malan: Oui, ou resevwa yo tou de nan yon fwa. Se konsa, lide a se ke ou kapab kounye a baskile paj la okipe dezyèm lan nan tout sa yo de entrain. Se konsa, sa a se sèlman yon mato kay la pwen ki Lè nou konsidere ke Alana egzekite liy vèt sa a isit la, ak Lè sa a, Javier te fè yon sèl sa a pou nou yo epi retounen nan m 'yon bagay nou pral rele a, men li te vrèman jis ki moso papye nan pwòp li. Epi, koulye a Alana te fè liy sa a twazyèm. E menm si tout bagay sa yo sanble konsa èkstrèmeman skre petèt nan premye gade, li vrèman se kòm senp tankou sa. Pase entrain alantou li, ap resevwa rezilta, swa ke yo te lage fizikman tounen yon bagay, oswa wè yon efè segondè tankou sa a. Yon bagay vizyèlman ekri sou ekran an. Se konsa, kite a ale pi devan epi mèsi Alana ak Javier, ki moun ki te desann isit la, pou rantre nan nou moute isit la. [Aplodisman] Se konsa, kounye a kite a pran pou yo akòde jis ki jan senp nan tout sa ta kapab. Li kite yo kontinye nan aktyèlman fè yon bagay nan kòd vrè. Se konsa, moute sou ekran an isit la se yon D nan sa yo rele CS50 aparèy la. Men, si ou te gen yo a, kòm yon 2:00 PM nan Mèkredi apremidi, eksplike nan kèk zanmi sa aparèy la CS50 se, ki jan ou ta defini l nan yon fraz? Nenpòt fraz yon sèl? Yeah? ELÈV: Se tankou yon pwogram ki fè òdinatè tout moun nan kouri ak sistèm la menm. DAVID Malan: Bon! Li se yon pwogram ki pèmèt tout moun nan òdinatè a kouri ak sistèm la menm. Li nan sòt de pwòp ou a kopi yon fonksyònman sistèm ki k ap pase nan dwe rele Ubuntu Linux. Epi li kouri efektivman andedan nan yon fenèt sou pwòp Mac ou a oswa PC, se konsa ke fason sa a dwa soti nan pòtay lavil la nan semèn 1, tout moun isit la nan klas la gen aksè a zouti yo menm, konfigirasyon an menm, ak gen nan pa gen espesifik koub aprantisaj nan yon Mac oswa yon PC an patikilye. Koulye a, nou louvri moute, andedan nan CS50 a aparèy nan Lendi, pwogram sa a isit la. Li k ap pase yo dwe rele jdi. Men, sa a vrèman jis yon editè grafik. Li nan yon bagay tankou notepad oswa tèks Edit sou Windows oswa Mac OS respektivman. Apre sa, mwen pwopoze ke te gen reyèlman twa pati enpòtan nan ekran sa a. Bò nan tèt se kote ou ta ekri kòd ou a. Epi sa a, kote nou pase anpil nan nou an twa egzanp nan konferans Lendi a. Anba a nou te rele sa ki, fenèt sa a nwa, yeah? ELÈV: Compiler? DAVID Malan: Compiler nou accessible pa fason pou ki fenèt. Men, plis jeneralman. Yeah, li te jis yon fenèt tèminal. Sa a se yon laj fin vye granmoun tèm ki jis dekri esansyèlman se yon kliyote èd memwa, ki ane de sa itilize yo dwe sou youn nan moun ki monitè gwo style CRT. Men, sèjousi li nan sòt nan vityèl nan lojisyèl. Ak fenèt yo tèminal kite a nou tape kòmandman. Li sòt de vèsyon an senplifye nan koòdone nan itilizatè oswa UI. Li pa yon grafik koòdone itilizatè oswa entèfas, li nan yon koòdone tèks ki baze sou oswa yon koòdone liy lòd. Ak tout bon sa a, kote finalman Mwen te kapab ekri kèk kòd. Yon fwa mwen te ekri kèk kòd menm si, sonje ke mwen itilize yo lòd sa a. Ak jan li non an kalite sijere, sa a pèmèt m 'nan fè yon pwogram yo rele Hello. Men, sa ki te li vrèman ap fè? Oke fè te pran m ' D ', kòd sous m' yo, ak konvèti li nan sa, finalman? Objè kòd. Ak kòd objè se jis yon anpenpan fason pou li di zewo ak inite. Lè sa a, yon fwa mwen te vle nan kouri ke kòd objè, yon fwa mwen te vle pase kòm opinyon moun zewo ak moun yo nan òdinatè mwen an nan sèvo, CPU a sa yo rele oswa inite tretman santral, Mwen te oblije kouri pwogram nan. Men, li te pa byen yon senp nan Lendi kòm jis double klike kèk icon. Ki sa ki olye pou t 'mwen gen yo fè yo nan lòd yo kouri nan yon pwogram? Ki sa sa dezyèm lòd te ye? Mwen tande yon ti kras bar? Wi, yeah? ELÈV: Dot koupe ak Non pwogram nan. DAVID Malan: Egzakteman. Dot koupe ak non pwogram nan. Koulye a, ki sa sa vle di? Oke dot se jis yon fason Esoteric pou li di anyè aktyèl la. Kèlkeswa folder ou se nan se referans kòm, se reprezante kòm dot. Koupe an se jis sa ou te wè nan Mac OS ak fenèt pou ane, li nan yon séparation ant yon anyè oswa Katab ak rès la nan kèk non. Nan Windows li k ap pase yo ale bak, nan Linux ak Mac OS li k ap pase yo ale anvwa. Men, li la jis séparation a, se konsa li a jis yon entérésan Massachusetts Institute of Technology detay. Pati nan juicy nan kou se non an nan pwogram nan, Hello. Epi sa a, sa ki fè kreye pou nou. Li outputted ki dosye pou nou. Men, ki jan t 'nou jwenn nan pwen sa a? Se pou nou kounye a mande a kesyon, sa ki te vrèman ale sou isit la, omwen ak konsiderasyon kèk nan sentaks sa a? Se konsa, nan yon fraz oswa konsa, ki jan nou t 'eksplike lwen liy sa a premye sa a, se make nan vèt? Ki sa ki te ke premye liy fè, ki gen rapò ak pwogram mwen an? Yeah? ELÈV: [fèbl]. DAVID Malan: Di l 'ankò? ELÈV: Ki gen ladan ak Téléchargez fonksyon sot pase [fèbl]. DAVID Malan: Bon. Ki gen ladan, Mwen pa pwal di Téléchargez, men kite a di ki gen ladan fonksyon ke gen moun ki te ekri nan tan lontan an. Ak moun ki fonksyon yo nan faz egzekisyon yon kote nan òdinatè mwen an. Yon moun te ekri yon dosye ane de sa, e ke dosye se yon kote andedan nan CS50 a aparèy, oswa sou kondwi difisil mwen plis jeneralman. Se konsa, liy sa a se esansyèlman li di: ale jwenn ke ranpli, estanda I / O dot h, ak kopi epi kole sa li yo dwa isit la sou tèt la nan dosye mwen se konsa ke mwen pa oblije fè sa manyèlman tèt mwen. , Ak nan mitan moso yo juiciest andedan nan ki dosye nou reklame se sa ki te fonksyon? Ki sa ki fonksyon nou te di te deklare oswa mansyone nan estanda I / O dot h gen plis chans? Printf, dwa? Nou pa t 'ekri printf sou Lendi, li jis te egziste. Anpil tankou Alana jis rive moute sou sèn epi li jis egziste, e te konnen ki jan yo desine yon bagay sou ekran an, Se konsa, printf egziste pou plizyè ane. Se konsa, sa a se ki jan nou aksè a li. Koulye a, si nou deplase sou isit la, prensipal te analoji nou di moso nan devinèt rele lè vèt drapo klike nan mond lan nan grafonyen moun. Se jis sòt de la Non default lezòm deside ta ka repwezante a default pwen antre nan yon pwogram. Moso nan Kòd pwogram ki vin egzekite premye. Pandan se tan sa yo aparèy òtopedik Curly yo kalite tankou fòm nan koube nan yon anpil nan moso sa yo grate jòn. Yo kalite ankapsulasyon yon antye pakèt moun sou enstriksyon yo ansanm. Se konsa, li jis kalite mare ansanm kèk fonctionnalités ki gen rapò. printf nan kou se yon fonksyon ki simagri ekran an, jan nou jis te fè. Ki sa ki sou parantèz sa yo? Kouman ou ta define-- menm si ou te pa janm pwograme anvan, men jis ki baze kounye a sou yon ogmante èspere ke entwisyon, sa ki yo parantèz yo fè pou nou isit la? Oswa sa yo y 'ki antoure? Yeah? ELÈV: Yo ap di sa w ap ale nan enprime ak printf. DAVID Malan: Yeah, yo ap di ki sa w ap ale nan enprime ak printf. Oswa plis jeneralman yo, yo se ki antoure entrain yo nan fonksyon an. Se konsa, ou ka prèske panse nan tout sa yo parantèz tankou se te tankou metal la Clip sou papye sa a. Li nan sa k ap kenbe, li nan sa ki nan yo pral itilize yo bay agiman nan fonksyon an, ki nan se ka sa a yo rele printf. Se konsa, an jeneral prèske nenpòt fwa nou rele yon fonksyon, nou pral wè yon pè parantèz. Petèt ak yon bagay nan li, tankou kounye a, petèt pa gen anyen nan li. Men, sa a kote ou ta mete entrain yo oswa sa yo rele agiman nan yon fonksyon. Isit la nan yon sèl agiman sa yo. Mwen te make tout bagay ant quotes yo, paske li vire soti nan lang sa a yo rele C, lè ou vle reprezante yon fisèl ki se yon mo oswa yon fraz oswa menm yon paragraph-- ou gen antoure li ak quotes doub. Quotes pa yon sèl, quotes doub. Epi sa a, egzakteman sa mwen te fè isit la. Pandan se tan, gen nan yon fenki senbòl nan direksyon fen a la. Antislach n nan. Ki sa nou di ke reprezante? Yeah? ELÈV: Yon liy nouvo. DAVID Malan: New liy. Dwa, ou pa fè sa jeneralman frape Antre lè ou vle pwogram lan yo tonbe krache soti yon liy nouvo. Olye de sa ou di li klèman ak sa a moso Byensir Esoteric nan sentaks, antislach n, ki ou vle yon liy nouvo ale la. Finalman virgules la. Nou pa t 'reyèlman pale twòp sou sa a, ak pa lwen sa a pral malheurs a nan kèk nan egzistans ou pou pwoblèm nan premye mete, lè ou jis echwe pou pou reyalize ou te bliye yon bagay tankou estipid kòm yon virgules. Epi jeneralman mete l ' gen pral ranje pwoblèm sa. Men, sa ki nan li ap fè pou nou, ou ta di? ELÈV: [fèbl]. DAVID Malan: Padon? ELÈV: [fèbl]. DAVID Malan: Fini yon deklarasyon. Li nan sòt de tankou peryòd la nan nan fen yon fraz angle, Lè nou konsidere ke nan lang sa a C li nan mete fen nan yon deklarasyon. Yon ansèyman nan pwogram kòd ki ou jis vle di, Mwen fè ak sa a. Koulye a, remake ke sa a yon sèl la sèlman isit la. Se konsa, ou pa vle jwenn nan yon abitid nan mete virgules apre chak parantèz fèmen. Pou egzanp, gen nan okenn akote anile, ak nou pral tounen vin nan tan kap vini an nan sa vle di anile. Men, nan ka sa a printf ou a se yon fonksyon, oswa ke yo te yon deklarasyon itilize, ak Se konsa, nou vle gen sa tèminal nan fen anpil nan li. Apre sa, mwen fè espre davwa sou C. Apre sa, franchman yon anpil nan lang tankou C, C ++, Java, JavaScript, ak nenpòt ki kantite lòt lang gen yon anpil nan sa yo sòt de detay Massachusetts Institute of Technology. Ki sètènman si ou nouvo nan pwogramasyon ka vrèman vwayaj ou leve. Epi w ap, make m ' mo, kèk nan ou pral gen eksperyans sa a nan lè biwo louvri oswa anreta nan mitan lannwit ap travay sou kèk p-seri, kote pwogram modi ou jis pa konpile, li pa kouri, ou gen okenn lide sa ki nan sa ki mal, li sanble konplètman lojikman kòrèk la ou. Lè li nan paske ou bliye yon bagay tankou frape yon virgules nan fen a nan kèk liy. Men, sa yo, se kalite sa yo de bagay sa yo w ap ale nan imedyatman aprann yo wè. Ak tout bon bagay sa yo ki CA an ak TF a gen te sòt de ki resevwa fòmasyon yo wè pi vit pase ou. Se konsa, sa a se sèlman vle di, jan ou plonje nan pwoblèm mete 1 espesyalman, pa jwenn fristre pa bagay sa a. Yon fwa ou sòt de aklimate nan mond lan, ou kòmanse wè bagay sa yo ke ou ta ka pa gade nan premye gade sa a premye semèn. Se konsa, kòd sous se yon bagay tankou sa. Nou vle pase l 'nan du a sa yo rele. Epi sa du kòm nou te di bay randman li te ye kòm Kòd objè, nan sa yo rele zewo ak inite. Men, soti nan gen, ki sa sa ban nou? Oke li ba nou modèl sa yo. Epi ankò òdinatè w lan, Intel ou andedan, konprann sa yo modèl nan zewo ak inite. Epi pafwa modèl la reprezante yon nonb desimal aktyèl kòm nou te wè semèn pase a, pafwa li reprezante yon lèt tankou nou te wè semèn pase a, pafwa li reprezante yon enstriksyon, tankou enprime yon bagay yo ekran an. Se konsa, printf pou instance-- men pito, kite m 'remonte. Nou te pran pou yo akòde ke moun zewo ak moun yo se ki te pwodwi pa sa a fè lòd. Men, fè se pa yon du. Fè se pa bagay la nan mitan an ki nan pwodwi zewo yo ak moun yo. Olye de sa fè se jis yon trè bon yo te rele pwogram ki gen objektif nan lavi se esansyèlman eseye figi konnen ki jan yo konpile pwogram ou an. Apre sa, nou sèvi ak li nan sa yo premye semèn paske li jis sove nou yon anpil nan pwoblèm. Men, sa ki fè se reyèlman fè lè ou konpile hello, se, jan nou te di dènye fwa, li nan kap sou kondwi difisil ou oswa nan dosye a kounye a, pou dosye rele sa, aparamman? Hello.c, dwa? Se jis kalite yon konvansyon. Li nan abitrè, men ki nan wout la bagay sa yo yo. Fè, si ou jis presize non an nan yon pwogram ki pa ankò egziste, li a pral gade pou kòd la sous nan yon dosye, pa default vle di hello.c. Men, si li jwenn li, gwo. Li nan ale nan konvèti ke sous Kòd nan kòd objè pou ou. Men, chak fwa mwen te frape Antre apre kouri fè hello, fè ou sonje wè tan pase a yon san patipri long ak sekans skre nan lòt lèt blan ak karaktè sou ekran an? Oke sa ki te bay lòd aktyèl la, nan aktyèl du, ki te kouri. Se konsa, du aktyèl la nou pral sèvi ak pi fò nan semès la se yon bagay yo rele sonnen. Gen kèk nan ou ta ka te itilize Vizyèl Studio anvan, oswa GCC, oswa nenpòt ki kantite lòt konpilateur. Nou pral sèvi ak sonnen. Ak rezone pèmèt nou aktyèlman konvèti ki kòd sous fè objeksyon kòd. Ki sa sa a aktyèlman vle di nan pratik? Oke kite m 'ale nan yonn nan dosye mwen yo ki nan dènye fwa. Andedan nan aparèy la CS50. Ak kite m 'ale pi devan epi kreye sa a menm dosye, gen ladan yo estanda I / O dot h. Int anile prensipal. Epitou, n ap tounen vin nan tan kap vini an kòm nan sa Int vle di ak ki sa vle di anile. Men, pou kounye a kite a fè alo antislach mond n, jis tankou nou te fè sa sou tablo a. Kite m 'sove sa a ranpli rele hello.c. Epi, koulye a si mwen vle konpile sa a Mwen could-- kite m 'rale in-- kouri fè hello antre. Lè sa a ankò te ki liy trè skre. Men koulye a, omwen yon mo pwobableman sote soti nan ou. Sonnen se ke liy nou te wè anvan. Koulye a, gen nan yon anpil nan lòt bagay franchman ke nou pral balanse men nou an nan pou jodi a. Men, gen nan yon ansanbl kèk, yon karaktè kèk nan isit la ki nan enterè yo. Men, mwen pral ale pi devan epi fè sa. Mwen pral premye kouri hello, jis pwouve ke sa a ap travay jan li te ye Lendi. Men koulye a, mwen pral efase pwogram nan. Ak anpil tankou nou te gen sa yo non kout dènye fwa, lòd la pou retire yon bagay ki RM, retire, antre. W ap ale nan jwenn kèk kesyon san patipri skre. Difisil yo kwè ke ou ka fè menm kesyon sa a difisil a konprann. Men, retire alo dosye regilye jis vle di fè ou vle efase hello. Apre sa, mwen ka ale pi devan epi tape y pou repons lan se wi, Antre, epi kounye a li a ale. Kisa sa vle di kounye a, si mwen klè ekran m 'yo, se ke olye pou yo fè fè hello-- ou konnen ki sa, mwen ap resevwa bon nan sa a. Mwen pral kouri du a tèt mwen. Mwen pa bezwen kèk pwogram nan figi konnen ki sa ki dosye mwen rele. Mwen te ekri hello.c, mwen konnen ki sa sa yo rele, Mwen se klèman kapab nan sezisman sa. Se konsa, mwen pral ale pi devan ak sonnen hello.c Antre nan. Sanble nan travay. Epi gen nan pa gen pwodiksyon adisyonèl, paske rezone se du a. Li nan sa k ap konvèti an kòd sous zewo ak inite. Se konsa, si mwen fè kounye a dot koupe alo Antre, HM. New mesaj erè jodi a. Se konsa, frape se jis non an nan la kliyote èd memwa ki nou ap sèvi ak. Sa a se yon Senplifikasyon brit, men pou kounye a sa a, se tout ki se, se li nan èd memwa a kliyote. Epi sa a, poukisa li nan tap rele ke nan nou. Pa gen tankou dosye oswa anyè se yon ti kras plis senp. Men, siman mwen te fè ke kòd objè. Men, trape an se, ki si mwen tape yo lòd, ki nan lis sa ki nan sa a anyè, ki se ki sa? ls pou lis. Genyen yon pakèt moun sou bagay nan isit la, kèk nan yo ki te vini ak aparèy la, tankou folder Desktop m 'yo, Downloads folder, Dropbox folder, ansanm ak tout ki bagay. Men, sa ki se enteresan se hello.c, ki Mwen te kreye yon ti moman de sa ak jdi. Ak sa ki nan etranj a kap non yo nan isit la, petèt ke nou pa t ' gade dènye fwa nan tout? a.out, dwa? Se konsa, tounen nan jou a, li te jis deside ke lè ou konpile yon pwogram la pou premye fwa a, epi ou pa presize non an nan yon dosye, se pou yo rele li yon. Epi a.out jis vle di sa a te pwodiksyon an nan du a. Se konsa, li yon non terib pou yon pwogram. Men, pa ki lojik, dot koupe pou anyè aktyèl, koupe a.out, ta dwe vle di gen nan an reyalite mwen alo pwogram nan lemonn. Koulye a, yon ti kras chofe fè egzèsis, tou. Si m 'vle chanje non sa a dosye, vire soti ke ou deplase yon dosye soti nan yon sèl non a yon lòt. Se konsa, MV a.out, ak Lè sa a, mwen ka rele li alo Antre nan. Se konsa, sa a se yon lòd Linux. DOS te gen sa a ane de sa, Windows te gen yon fenèt tèminal nan kèk sòt ki sanble tankou sa a, Linux ak Mac òdinatè gen èd memwa kliyote sa a. Menm si pi fò nan nou pwobableman raman, si tout tan, sèvi ak li. Men, sa ki mwen te fè se kouri yon pwogram nan, ki gen non se MV, epi mwen te bay l 'ak de agiman, se konsa pale. De entrain. a.out se non orijinal la. Bonjou se nouvo non an. Se konsa, si mwen fè kounye a dot koupe hello, Antre, ki egziste. Men, si m 'fè dot a.out koupe, sa w ap atann mwen ta dwe wè? Bach, pa gen okenn dosye sa yo oswa anyè. Paske mwen jis chanje non li. Se konsa, sa a pran yon ti jan nan ap resevwa itilize yo. Men, pwoblèm nan mete 1 spesifikasyon pral se vre wi: kenbe men ou nan kèk nan minutae sa a. Paske sa a se yon nèt sou tout distraksyon entelektyèl soti nan plis enteresan an ide nan men, ki se aktyèlman kreye yon bagay soti nan kòd. Men, kite a fè yon sèl modifikasyon kounye a nan pwogram sa a. Sonje byen, dènye fwa mwen te fè yon bagay tankou sa a, printf deklare non ou. Ak tout bon nou jis te fè sa a sou ekran an gwo sou la. Lè sa a, mwen te fè fisèl la vin GetString louvri paren, fèmen paren. Ak paren jis steno notasyon pou parantèz. Se konsa, GetString pran okenn agiman? Pa gen entrain pa gen okenn, men li bezwen parantèz yo, paske se sa ki demarcates rele nan yon fonksyon. Se konsa, mwen pral ale pi devan epi eseye kouri du a sou pwogram sa a kounye a. Sonnen hello.c, paske mwen pa t 'chanje non li pou kounye a. Apre sa, mwen te resevwa yon pakèt moun sou erè. Se pou nou rale soti isit la. Si m 'moute ankò, tankou mwen te di dènye fwa, premye, erè a menm ke mwen te resevwa dènye fwa. Sou liy 6 nan hello.c mwen te gen yon fisèl idantifyan sekrè, t 'mwen vle di estanda nan? Mwen pa t '. Paske sa erè gen mwen te fè nan sa a pwogram nan, si ou sonje soti nan dènye fwa? Yeah, nou bezwen an sa yo rele wou fòmasyon ke nou pral jis itilize pou yon semèn. Men, mwen bezwen presize ki tou, yon kote andedan nan aparèy la, se yon dosye ke nou te ekri jis yon kèk ane de sa. Anndan nan yo ki fonksyon tankou aparamman GetString. Se konsa, kounye a si mwen ale tounen desann isit la, rale nan, ak re-kouri rezone hello.c. Modi, yon lòt erè. Men, nou pa te wè yon sèl sa a anvan. Sa a yon sèl nan yon ti kras pi plis Esoteric eseye figi konnen. Men, sa a se fè espre sou ekran an, paske nou te vle rakonte istwa sa a. Lè ou konpile hello.c, menm jan foto ki sou devan sijere, w ap sèlman konvèti ki kòd sous zewo ak inite. Koulye a, anplwaye CS50 kèk ane de sa te ekri CS50.h, ak yon dosye ki koresponn, CS50.c. Epi nou, yon kèk ane de sa, konpile sa yo dosye nan yon dosye ki k ap pase yo dwe rele CS50.o. Oswa li ka chanje non yon kèk bagay diferan. Men, sa a yon fason ki senp nan panse sou li. Se konsa, nou konpile CS50 nan bibliyotèk nan zewo ak inite. Men, okenn kote m 'espesifye ke mwen vle konbine zero mwen ak moun yo pou mond alo mwen pwogram ak zewo yo ak moun yo ke anplwaye CS50 kreye yon kèk ane de sa nan yon sèl pwogram konplè. Tout sa mwen te espesifye nan ekri rezone hello.c se konpile hello.c. Mwen pa te di rezone lyen an nan zewo yo ak moun yo ke anplwaye CS50 kreye pou ou kèk tan de sa. Se konsa, li nan yon ranje fasil, kase l pou lyen, CS50. Epitou, n ap ankò wè sa a anvan lontan ankò e ankò. Men, remake kounye a pa te gen okenn plent. Se konsa, kounye a si mwen kouri dot koupe hello, kounye a li nan travay. Malgre ke sa a, se yon ti jan twonpe depi m 'jis rkre sa dosye? a.out. Se pou m 'remonte sèlman pou moman yon. Pwogram nan nou jis konpile gen twa liy ki nan kòd. Lè m 'kouri al alo mond, alo yon ti moman de sa, mwen pa t 'wè deklare non ou. Epi sa a, paske mwen te kouri nan vèsyon fin vye granmoun nan pwogram nan. Men, si mwen tout bon kouri dot a.out koupe Antre, deklare non ou, Rob, hello, nan lemonn. Hm. Sa a kalite yon ensèk. Pwobableman vle di ke yo di Rob, dwa? Se konsa, sa ki nan ranje a isit la nan kòd. ELÈV: [fèbl]. DAVID Malan: Egzakteman. Se konsa, mwen jis bezwen fè ki tweak final se konsa ke mwen pase nan yon kontneur, tankou yon ranpli nan vid la, tankou nou te fè yon ti moman de sa. Men, pousan nan se kounye a ki ranpli nan vid la. Se konsa, anfen kite nan revele yon dènye detay pou ke gen nan pa gen majik. Mwen pral ale pi devan ak debarase m de Hellow. Mwen pral ale pi devan ak debarase m de a.out. Se konsa, koulye a, mwen pa gen okenn pwogram, jis kòd sous mwen. Men, mwen pral kouri nan yon ti kras pi lontan lòd, rezone priz o alo lcs50 priz hello.c. Koulye a, sa a se kòmanse sòt de ale nan yon sèl zòrèy ak soti lòt la petèt. Men, jis toumante apa ki sa sa a ap fè. Sonnen se du, lcs50 nan priz fè espre nan fen an trè fè sa nan yon fraz? Lyen ki mennen nan bibliyotèk la CS50. Bèn zewo yo ak moun yo ki anplwaye a te fè ak crams yo nan pwogram pwòp mwen. Se konsa, dènye kesyon an nan men se, ki sa ki priz o alo pwobableman fè, menm si ou te janm wè sentaks sa a anvan? Sorti yon pwogram sa a, se pa yo te rele a.out nan default. Olye de sa li an yo te rele hello. Se konsa, kounye a pa gen okenn a.out. Pa gen tankou dosye oswa anyè, paske mwen klèman di rele pwogram sa a alo, se konsa ke Mwen kapab kounye a tape nan yon non tankou sa epi yo gen li konpòte yo. Koulye a, franchman, ti gason se ke entérésan yo gen yo sonje nan tout sa ti kras ti detay, dwa? Se konsa, kite a ale pi devan epi debarase m de alo ankò. Li kite yo kounye a retounen nan yon mond nan ki li sifizan yo di fè hello. Men, sa a majik la ki fè ap fè pou ou, sa a, se annwi a ki li nan fè pou ou. Epi kòm pwogram nou yo ak pwoblèm jwenn plis konplèks, fè ap vrèman dwe zanmi ou yo. Paske pa twò lontan soti nan kounye a nou pwal gen pwogram ki ekri pa ak yon sèl dosye, men plizyè dosye, epi fè pral otomatize pwosesis la nan konpile nan tout sa pou nou ansanm. Se konsa, kounye enprime. printf se andedan sa a ranpli, estanda I / O dot h, ke nou te wè anvan, men gen nan plis nan printf pase sa. Genyen antislach n, men gen la tou yon pakèt moun sou lòt sekans chape. Ak sekans chape se jis yon anpenpan fason pou li di yon bagay ki kòmanse ak yon antislach, pa yon koupe pi devan, yon antislach, ak fè sa ki yon bagay espesyal. Epi nou pa pral rete sou pi fò nan sa yo, men poukisa ki gen la antislach doub quote, ou panse? Poukisa gen sa a sekans etranj nan karaktè, antislach quote doub, poukisa sa kapab itil? ELÈV: [fèbl]. DAVID Malan: Egzakteman, dwa? Panse tounen nan pwogram mond alo nou an ke nou te wè byen yon fwa kèk kounye a, chak fwa nou te wè ke mond alo pwogram nou te gen quotes doub andedan nan ki se alo vigil antislach mond n. Men, panse nan tèt ou, sa ki si ou aktyèlman te vle enprime soti yon mak sitasyon pi ba? Premye ensten ou yo ka, mwen pa fè sa konnen poukisa mwen ta ka vle do-- isit la, nou ka gen yon ti kras pasif agresif, alo zanmi. Nou ta ka vle fè yon bagay tankou sa. Men, poukisa se sa a kounye a pwoblèm? Inyore quotes yo Curly sou kote ki moderatè te fè pou nou otomatikman. Poukisa se sa a pwoblèm? Egzakteman. Paske nou gen tankou 4 giymè. Oke youn nan premye pwobableman ale ak yon sèl, dezyèm lan, e petèt yon sèl nan katriyèm ale ak yon sèl nan twazyèm, oswa, mwen vle di mwen se pa menm asire w, ni se òdinatè a pral fè. Odinatè ankò, konpilateur ankò, yo egalman bèbè. Yo pral sèlman fè sa ou di yo fè. Men, si ou pa ékivok yo yo se pwobableman ale nan voye jete yon erè. Si ou pa ékivok sou fason pou fè yon manba ak sandwich jele bagay dwòl ta ka rive. Li nan lide a menm. Koulye a, sufi li vle di gen nan kèk sekans chape lòt, men nou pral vini nan moun anvan lontan. Esansyèlman sa yo chape sekans reprezante yon bagay ke ou pa ka kapab twò fasil nan klavye a, san yo pa konfizyon òdinatè a. Koulye a, pandan se tan nou gen placeholders nan printf. Pousan d, ki kapab tou dwe ekri nan prèske tout ka kòm pousan mwen, se yon kontneur pou ki kalite done? Ki kalite valè? Yon nimewo desimal. Se konsa, aktyèlman nou pral kòmanse lè l sèvi avèk pousan mwen paske li nan yon ti kras ki pi senp, tankou yon antye relatif. Pousan mwen. Yon nonb antye relatif ki k ap pase yo dwe desimal. Pousan nan nou deja te di se te yon kontneur pou yon fisèl. Ki se jis yon mo, yon fraz, yon paragraf, yon redaksyon an, kèlkeswa sa. Li se yon sekans nan karaktè nan kèk longè. Epi nou pral wè anvan lontan kèk nan lòt moun sa yo. Men, pousan c se pou yon karaktè sèl. Pousan f se pou yon k ap flote Nimewo pwen, tankou yon nimewo reyèl ki gen yon pwen desimal nan li, ki se nan kou pa yon nonb antye relatif. Apre sa, nan yon antye pakèt moun sou lòt moun yo tou. Pandan se tan nan C, ak nan yon anpil nan lang, nou gen kalite done diferan. Diferan kalite vè bòl si ou pral. Bòl la mwen itilize dènye fwa te pou voye boul jwe ping pong, men nou kapab tou magazen diferan valè tankou charaktèr ak strings ak nonm antye relatif nan yon veso, tankou yon varyab, ak C gen sa yo. Char se ki kalite done, kalite a nan varyab, nan ki ou ka magazen yon karaktè. Flote se yon kalite varyab nan ki ou ka magazen yon nimewo reyèl. Int se nan kou pou yon Int. Ak olye ridikulousli yo te rele yon long long se kote ou ka magazen esansyèlman yon nimewo reyèlman long, ak menm plis chif Lè sa a, yon tipik Int fòs magazen. Men, nou pral tounen vin jwenn ke anvan lontan. Nan CS50 dot h pandan se tan lòt dosye a header ke nou te wè yon koup fwa nan itilize, gen nan de kalite done lòt ki pa egziste nan C tipikman. Youn nan se fisèl, epi nou pral wè nan yon kèk semèn sa strings reyèlman yo anba kapo a. Ak se yon sèl bouleen. Ak yon bouleen se yon varyab ki kapab sèlman pran sou sèten valè. Ak jis ki baze sou semèn pase a eksplikasyon sou grafouyen, ak plis ankò dènyèman C, ki sa ou ta devine yo se de valè yo posib pou kèk veso ki se nan kalite bouleen? Wi epi pa gen. Yon sèl ak zewo. Vre oubyen fo. Ak tout bon li nan dènye a ki gen tandans yo dwe konvansyonèl nan yon pwogram lang, li di yon bagay tankou vre oubyen fo. Pandan se tan bibliyotèk la CS50 vini ak yon pakèt nan fonctionnalités ki anplwaye a te ekri pou ou, san konte jis ap resevwa yon kòd. Nou ekri nan fonksyon davans ki ka jwenn yon nonb antye relatif soti nan itilizatè a, jwenn yon karaktè sèl, jwenn yon flote, ki se jis yon nimewo ak pwen an desimal. Jwenn yon long long, yon vrèman gwo valè soti nan itilizatè a. Se konsa, nou te sèlman wè sa a nan aksyon nan fòm la nan GetString. Men, via fonksyon sa yo pral byento dwe kapab ekri pwogram ki jwenn enfòmasyon nan men gwoup itilizatè a. Pandan se tan konsidere sa a pwogram, epi konsidere ki jan nou ta ka kounye a kòmanse yo ajoute nan li ak nouvo konstwi. Yon rapid toune toubouyon ak Lè sa a nou pral gade nan kèk kèk ekri pwogram manyèlman tèt nou. Koulye a, si nou vle aplike yon kondisyon, li pa nan ale nan gade tankou yon bèl ti moso devinèt bèl. Li nan pral gade yon ti kras pi plis Esoteric. Men, sa a se kanonyal a estrikti nan yon kondisyon nan C. Pawòl Bondye a si, de parantèz, andedan nan yo ki a pwal kèk kalite nan ekspresyon Boolean. Koulye a, koupe an koupe nan mitan an, sa a se nan moman sa a sòt de tankou Kòd pseudocode kontneur. Men, plis byen, nenpòt ki liy nan kòd nan C ki kòmanse ak koupe koupe se yon kòmantè. Se tankou yon nòt kolan ke ou ta ka mete yo sou yon redaksyon, enprime sou papye. Li nan yon nòt nan tèt ou. Li pa gen okenn fonksyonèl enpak sou pwogram lan. Li nan sòt de yon rapèl, li nan pwòp ou a dokiman tankou sa ki k ap pase sou. Se konsa, fè sa nan moman sa a se sòt de yon kontneur pou kèlkeswa ki andedan nan tout sa yo aparèy òtopedik Curly evantyèlman ki pral fè yon bagay. Pandan se tan ou gen de fouchèt an nan wout, yon si lòt moun konstwi tankou sa a. Ou ka si, èlzif, lòt bagay. Kounye a li nan vo anyen, espesyalman si ou ve yo te Googling alantou jwèt pou resous soti nan kiryozite, oswa si ou ranmase youn nan la a kou liv ki rekòmande sou C, ou pral wè ke moun gen anpil bagay preferans nan diferan pou konbyen yo eksprime tèt yo nan kòd. Gen kèk moun ki renmen mete nan aparèy òtopedik Curly jan mwen te fè isit la. Gen kèk moun ki renmen mete Curly la aparèy òtopedik pou egzanp moute isit la. Gen kèk moun ki renmen mete elses la moute isit la ak Lè sa a sa a sou isit la. Genyen nan nenpòt ki nimewo nan fason yo Kòd ekri, e pa youn nan yo se dwa se pou chak. Malgre ke gen nan yon kèk ki yo trè mal. Men, gen no-- si sa a se finalman yon deba renmen relijyon anpil. An reyalite, youn nan ki pi anmèdan nan bagay sa yo sou syans òdinatè se ki jan dogmatik syantis konpitè kapab. Epi w ap jwenn sou tan ki menm ou devlope preferans pèsonèl ki di kòman kòd ou a ta dwe gade. Pa sèlman konpòte, pa sèlman kreye pwodiksyon, men li montre kouman li ta dwe gade estetik. Se konsa, sa nou pral fè se gide ou ansanm wout la nan direksyon, pou kounye a omwen, yon style estanda CS50 ke omwen kenbe bagay sa yo inifòm epi fasil li. Men, plis sou sa yo Distenksyon anvan lontan. Yon ekspresyon Boolean nan C, si ou te vle di si kondisyon sa a se vre ak kondisyon sa a lòt se vre, ou pa ekri mo a epi, jan ou ta nan lang angle. Ou olye sèvi ak comercial comercial, pou rezon nou pral tounen vin jwenn. Si ou vle di oswa ou sèvi ak de ba vètikal, ki sou yon klavye US se jeneralman pi wo a Mete nan kle akote antislach la. Lè sa a jis vle di si kondisyon sa a oswa kondisyon sa a lòt se vre fè sa. Pandan se tan, gen nan sa a fou bagay, ki ou pral gen okazyon yo sèvi ak yon fwa nan yon ti moman. Men, li la jis yon altènativ fason eksprime sa yo panse tèt ou. Sa a, pou kounye a, se pou yo ladann, li nan jis yon lòt fason fenki de jan pou eksprime si, èlzif, èlzif, èlzif, èlzif. Li nan jis fòma an tèm nan ka yo, ki kote ou literalman resanse valè yo ke ou ta ka vle tcheke pou. Pandan se tan pasan. Nou te wè yon konparezon nan Grate ak yon riban. Men, mwen pral fè ofrann men m 'nan ki sa chak nan bagay sa yo vle di. Men, avi ke yon bouk pral trè souvan kòmanse ak mo kle a pou. Oswa li pral kòmanse ak pandan y ap nan mo kle. Oswa li pral kòmanse ak mo kle a fè, ak fini ak pandan y ap nan mo kle. Men, sa nou ap sou yo wè se bagay sa yo pi plis tankou sa a. Isit la se, an jeneral nan C, ki jan ou ta ka deklare yon varyab ak ba li yon valè. Nan C li pa sifi, tankou nan grafouyen, ou jis di, ban m 'yon varyab rele yon bagay. Ou gen di C, ak di du ou, plis espesyalman, ki kalite valè ou vle mete nan bòl la vè. Èske li yon nonb antye relatif? Si se konsa, ou gen yo literalman di Int ak Lè sa a, non an nan varyab la, Lè sa a, yon virgules. Si ou olye pou te kòd li ansanm ak rele li s tankou m 'te fè Kòd m' isit la jodi a, ou ta di virgules fisèl la. Yon fwa ou vle bay li yon valè ou ka Lè sa a, sèvi ak siy ki egal, ki te rekonèt kòm a plasman operatè. Ak avi ki jan chak nan liy sa yo nan Kòd gen virgules a nan fen an nan li. Men, franchman sa a jis sanble yon ti kras lèd. Poukisa mwen pa ka di nan òdinatè a, bay m 'yon varyab ak inisyalize li a zewo. Ki se, se ban m 'yon bòl an vè vid. Pandan ke ou kapab. Se konsa, youn nan jijman an rele ou pral gen fè estilitikman sou tan se, ou ekri kòd ou a tankou sa a, oswa ou kalite netwaye li moute ak enpresyone moun ki pa ekri de liy kòm jis yon sèl. Lè sa a ta dwe konsidere kòm jeneralman yon fason pi plis elegant nan ekri kòd ou estilitikman. Fonksyon nou ap nan kou wè. Yo ap pral pran fòma sa a. Non an nan yon fonksyon, gen kèk parantèz, ak Lè sa a petèt kèk bagay anndan an. Oswa ou ta ka wè itilizasyon nan anpil fonksyon ladan bò a kòt, tankou yon bagay tankou sa a. Koulye a, kòm yon tanjant, fè sa ki blag sa a kounye a fè sans? [Ri] Li pa vle di li nan komik, men li petèt fè yon sans ti kras pi plis. Se konsa, kounye a kite a antre nan a Aparèy CS50 pou yon moman. Se pou m 'louvri moute yon sèl kol isit la. Ak tout bon youn nan rezon ki pou entwodwi ika catalogue ak flache foto a nan iPhone a yon ti jan de sa te aktyèlman mare nan ansanm nan reyalite ki jis yon kèk ane de sa, an 2007, pyès sa a nan kòd te lage, ki te youn nan aplikasyon an trè premye nan yon moso nan lojisyèl ki fè sa ki rele jailbreaking. Pou moun ki abitye, jailbreaking yon bagay tankou yon telefòn oswa yon ifon vle di lè n ap kalkile esansyèlman konnen kouman ou kapab fè bagay sa yo ak li ke konpayi an ki te fè li pa t 'gen entansyon. Menm jan ak ou vle enstale sèten lojisyèl sa a, se pa nan magazen an app, jailbreaking telefòn ou ki ou fè bagay sa yo tankou sa ak plis ankò. Men, sa ki te plezi nan 2007-- epi gen te gen plizyè douzèn diferan vèsyon nan bagay sa yo depi lè sa a, nan tout kalite languages-- se ke pwogram sa a isit la, ki rele iUnlock, te aktyèlman ekri nan C. Se konsa, mwen rale moute kòd la sous pou sa a, jis kalite montre w kèk nan resanblans yo ak konstwi yo nou ve yo te diskite sou konsa byen lwen. Koulye a, gen nan fason pi plis konpleksite isit la pase nou te wè deja nan klas la. Kite m 'woulo liv moute jis yon ti jan isit la. Men, remake these-- byen nou remake yon kèk things-- men remake liy sa yo isit la, ki gen ladan estanda I / O dot h. Epi all-- liy 24, please-- remake estanda I / O dot h ak yon pakèt antye nan lòt dosye ki aparamman lòt moun te ekri. Men, si nou desann nan sa a, ti kras abitrèman, remake mwen pa konnen ki jan yo ekri tout bagay sa yo tèt mwen nesesèman ankò, men gen nan si. Se konsa, aparamman sa a te gen yon branch. Men, si m 'desann yon ti kras plis gen nan yon lòt si. Si m 'moute, mwen panse ke alantou liy 100 Mwen te wè pou. Se konsa, mwen pa byen asire ki jan sa a ap travay ankò, men sa a se yon riban pou ki nan ale nan kite m 'repekte kèk kantite fwa. Men, si mwen woulo liv tout wout la nan pati anba a Mwen wè ke gen nan yon fonksyone desann isit la rele prensipal yo, ak kèk kredi anplis pou plezi lekti ou. Se konsa, sa a se sèlman nan say-- epi nou pral mete sou entènèt sa a nan mitan sous kou a nan Kòd today-- ke menm kèk nan sa yo aparèy ke nou pran pou yo akòde, nan fen an nan jounen an w ap toujou lè l sèvi avèk sa yo konstwi debaz ki nou te te entwodwi deja konsa byen lwen. Sa a ase nan ki yon sèl. Tout dwa, kidonk kounye a kite a aktyèlman bati yon bagay. Se pou yo ale pi lwen pase yon bagay tankou hello.c, epi louvri moute sa a, kite a ekri pwogram sa a isit la. Mwen pral ale pi devan epi ekri yon pwogram ki rele adder.c, objektif ki gen nan lavi a pwal tankou premye kalkilatris super senp mwen ki jis ajoute yon koup nan nimewo. Se pa paske sa a, se yon difisil pwoblèm, men paske li pèmèt m 'nan kounye a mare ansanm yon kèk bagay sa yo. Se konsa, mwen pral ale pi devan epi yo genyen ladan estanda I / O dot h ak CS50 dot h. Mwen pral di Int anile prensipal. Epi ankò nan tan kap vini an nou pral tounen vin jwenn li nan nan kontèks sa a ak vle di anile. Epi, koulye a, mwen pral di yon bagay tankou printf, ban m 'yon nonb antye relatif. Epi, koulye a sou liy dezyèm m 'yo, ki jan mwen eksprime tèt mwen tankou ke mwen vle deklare yon varyab ki k ap pase nan magazen yon int? Literalman sa m 'tape si mwen vle kreye yon varyab ki magazen yon int ou ta di? int yon egal getint. Asire w, se konsa ki travay. Epi jis pou konsistans ak kòd la ou pral gade sou entènèt, kite m 'chanjman sa a x, jis paske x se yon non varyab komen yo sèvi ak, nan omwen nan aljèb. Koulye a, kite m 'ale pi devan epi printf ankò. Ban m 'yon lòt antye relatif. Epi, koulye a, mwen pral kalite nan aprann nan ki modèl, Mwen pral di Int y vin GetInt. Epi nou pa te itilize GetInt anvan, men jis tankou GetString ale ak vin yon fisèl, tankou Javier te fè soti nan odyans lan, Menm jan an tou fè GetInt kòmanse kliyote èd memwa a. Ak efektivman ap tann pou itilizatè a bay li yon nonb antye relatif, lè ou tape li nan ak frape antre. Koulye a, anfen, mwen pral fè sa a, printf sòm la of-- ak kite m 'jwenn anpenpan now-- mwen pousan ak pousan mwen se prezan mwen esklamasyon pwen antislach n. Ak ki sa ou panse mwen pral mete nan kounye a kòm entrain yo adisyonèl printf? Mwen pa vle yo di literalman site x unquote. Mwen vle klas nan x ak lè sa a, e kounye a, kite a jwenn anpenpan e kite yo jis asime nou ka fè sa nou vle. Ki sa ou vle di pwochen? x plis y. Ak tout bon ki pral travay. Li nan minim lang programmation fè konprann aritmetik debaz yo, ak kidonk sa a ta dwe an reyalite travay. Se konsa, kite m 'ale pi devan epi fè koulevr nan fennèt nwa ak blan m ' desann isit la, Antre. Liy skre men pa erè mesaj, se konsa sa a, se bon. Dot koupe sèpan, ban m 'yon nonb antye relatif, 1. Ban m 'yon lòt nonb antye relatif, 2. Sòm la 1 ak 2 yo 3. Tout dwa, se konsa yon trè trivial pwogram, men ki sa ki li fè konsa? Li nan pèmèt m 'nan sèvi ak yon fonksyon rele isit la, rele yon lòt fonksyon isit la, de apèl GetInt, yon twazyèm rele nan printf, ak Lè sa a lè l sèvi avèk placeholders sa yo. Se konsa, li nan yon ti kras pi plis sofistike pase dènye tan. Men, sa ki si mwen vle jwenn yon ti kras amateur? Kite m 'ale pi devan e kounye a, fè sa. Kite m 'ale pi devan epi kreye yon nouvo dosye rele kondisyon zewo. Men, mwen pral pou konsève pou kèk tan pou klas dedomajman ak jis keratin nan ki Kòd kòm yon pwen depa. Epi, koulye a, mwen jis ale nan mete yon bagay nouvo isit la nan mitan yo. Se konsa, printf Mwen ta renmen yon nonb antye relatif tanpri. Apre sa, tout Kòd sa a se ki disponib sou sit entènèt kou a, ou pa bezwen tape li tout soti nan klas si ou ta pito pa. int, e kounye a, mwen pral sèvi ak, olye pou yo x ak y, Mwen pral sèvi ak n, ki se pwobableman non an ki pi komen pou yon nonb antye relatif nan yon pwogram òdinatè. Epi, koulye a mwen vle fè yon ti kras jijman isit la. Mwen pral wè si n se pi gran pase 0, lè sa a Mwen pral di whoops printf, printf ou te chwazi yon chif pozitif, esklamasyon pwen antislach n. Fèmen sa. Lòt Bagay Mwen pral enprime soti printf ou te chwazi yon chif negatif. Koulye a, anvan ou rele nan m ', kite a kouri pwogram sa a. Kite m 'ale desann isit la. Ak ki jan mwen konpile yon pwogram rele kondisyon priz 0? Fè kondisyon priz 0. Kalite yon non estipid, but-- dammit. OK, bon moman ansèyman. Poukisa ki t 'kraze? Ki sa mwen aksidantèlman rele sa a ranpli? Ou ka kalite dégager soti nan tab la moute isit la. Se konsa, li pa move ke mwen te fè sa a, paske sa a pral rive petèt nan kèk nan ou. Se konsa, aksidantèlman mwen yo te rele m ' kòd sous kondisyon 0. Men, kòd sous mwen pa konvansyon ta dwe dwe nan yon dosye rele kondisyon 0 priz c, oswa kèlkeswa sa dot c. Se pou m 'ranje sa a. Jis tankou Microsoft Word mwen ka ale moute pou konsève pou Kòm ak fè kondisyon 0 dot c. Koulye a, jis yo dwe pwòp mwen se pral ale pi devan epi retire kondisyon 0, ki te fin vye granmoun vèsyon mwen. Epi, koulye a kite a fè kondisyon 0, Antre. OK, sanble bon. Condition 0, Antre. Mwen ta renmen yon nonb antye relatif tanpri, 50, ou te chwazi yon chif pozitif. Koulye a, ki jan sou negatif 50? Ou te chwazi yon chif negatif. Kouman sou kounye a, 0. Trè asire w 0 a pa negatif. Se konsa, sa a se kalite yon ensèk ki lojik. Kouman pou mwen ranje sa a? Lòt Bagay si n se mwens pase 0, fè sa, lòt moun nou ka gen yon branch twa fason isit la, printf ou te chwazi 0. Se konsa, kounye a si mwen relance sa a pwogram, apre yo fin konpile li ankò ak fè, epi kounye a relance kondisyon 0, ki sa mwen pral wè isit la se 0 ban m 'ke randman. Se konsa, kote nou prale ak sa a? Oke li a trè fasil a pèdi devan je nan forè a pou pyebwa yo. Se konsa, pèmèt nou konkli ak sa a videyo 2 ak 1/2 minit ki finalman se yon ti jan nan yon anons soti nan Google, men sa vrèman se kontra Bondye sa menm lè l sèvi avèk sa yo bilding debaz blòk nou ka finalman fè yon fwa nou gen yon ti jan nan pwogram konprandr anba senti nou an. [Jwe mizik] SAROO Brierley (vwasove): Li te 26 ane de sa, epi mwen te jis sou yo vire 5. Nou te rive nan estasyon tren a ak nou akòste tren nou an ansanm. Frè m 'lan jis di mwen pral rete isit la, epi mwen pral tounen. Apre sa, mwen jis te panse, byen ou konnen, Mwen ta ka kòm byen jis ale nan dòmi epi li pral jis reveye m '. Lè mwen leve pwochen an jou, cha nan tout antye te vid sou yon tren ki sove kite, yon revenan tren pran m 'mwen pa konnen ki kote. Mwen te adopte soti nan Ostrali, nan yon fanmi Ostralyen. Ak manman te dekore mwen chanm ak kat jeyografik la nan peyi Zend, ki li te mete akote kabann mwen. Mwen leve chak maten wè kat jeyografik sa a, yo e pakonsekan li sòt de kenbe memwa yo vivan. Moun ki ta di, w ap ap eseye jwenn yon zegwi nan yon gwo pile zèb, Saroo ou pa janm ap jwenn li. Mwen ta te klere nan kote yo ke mwen itilize yo ale, kliyot yo nan fanmi m ' ap fè fas. Te gen imaj la nan manman m ', chita sou tab ansanm ak janm li janbe lòt, jis gade rèl li. Lavi se jis pou difisil. Sa ki te trezò mwen. Apre sa, mwen te gade nan Google Map ak reyalize gen nan Google Latè tou. Nan yon mond kote ou ta ka rale nan, Mwen te kòmanse gen tout sa yo panse ak sa ki posiblite ke sa a ta ka fè pou mwen. Mwen te di tèt mwen, ou konnen, ou te te resevwa tout souvni sa yo fotografi ak Landmarks ki kote ou ap soti nan, ak ou konnen ki sa vil la sanble. Sa a te kapab yon aplikasyon ki ou ka itilize yo jwenn wout ou tounen. Mwen te panse, byen mwen pral mete yon dot sou Kalkita estasyon tren, ak yon liy reyon, ou konnen, ke ou yo ta dwe chèche nan zòn sa a. Mwen sòt de te vini atravè tren tren sa yo. Apre sa, mwen te kòmanse yo li, epi M 'rive bò yon estasyon tren ki reflete imaj la menm sa ki te nan memwa mwen. Tout matche. Mwen jis te panse YEP, mwen konnen ki kote mwen pral. Mwen jis ale nan kite a kat jeyografik ke mwen gen nan tèt mwen mennen m 'ak pran m' tounen nan peyi m '. M 'rive bò devan pòt la nan kay la ke mwen te fèt. Epi te mache alantou sou 15 mèt alantou kwen an, te gen twa medam kanpe deyò, adjasan a chak lòt. Ak youn nan mitan demisyone pou pi devan, ak Mwen jis te panse, sa a se manman ou. Lè li rive pou pi devan, li anbwase lòt m ', epi nou te la pou apeprè senk minit. Li te pwan men m 'ak li te pran m 'nan kay la ak te resevwa sou telefòn la, kote li te sonnen sè m 'ak frè m' lan yo di ke, ou konnen, frè ou gen jis tout toudenkou parèt tankou yon revenan. Lè sa a, te fanmi an reyini ankò. Tout nan tout bon, Mwen te ede manman m 'soti, li pa gen yo dwe slaving ale. Li ka viv rès la nan lavi li ak kè poze. Se te yon zegwi nan yon gwo pile zèb, men zegwi a te la. Tout nan la. Tout bagay nou gen nan mond lan se nan tiyo a nan yon bouton. Men, ou te gen yo gen volonte la ak detèminasyon an vle li. [Jwe mizik] DAVID Malan: Bèl sètifika dous jis sa ou kapab kounye a fè ak teknoloji. Nou pral wè ou an semèn pwochèn.