DAVID J. Malan: Se konsa, sa a se CS50. Lè sa a te CS50 nan pwòp Colton Ogden, pou plis nan moun ki nan mizik ou ka download nan soundcloud.com/cs50. Se konsa, jodi a nou konsantre tout plis la sou atizay la nan pwogramasyon. Apre sa, nou pran kote nou te kite koupe semèn pase a, ki konsantre sou grafouyen, ki te sa a grafik lang programmation. Epi pran bagay sa yo desann nan yon nivo pi ba, lè l sèvi avèk yon pwogram plis tradisyonèl lang li te ye kòm C. Men, nan tout wout la, ka akonpli ki ide yo menm nou te pale osijè de Vandredi dènye pap repete se pa sèlman nan sa a lang C, men nan pifò tout lòt ki nou gade nan sa a semès. Se konsa, nou rele bagay sa a isit la ki sa ki dènye fwa? Sa a se reprezantan nan yon deklarasyon. Se konsa, nou rele sa a yon deklarasyon. Epi li fè yon bagay. Se yon enstriksyon ke yon òdinatè oswa grafouyen ta ka egzekite. Epi koulye a, se pou yo tou kòmanse rele yon bagay tankou sa a yon fonksyon, pou rezon nou pral byento wè. Pandan se tan, nou te wè bagay sa yo tankou sa a. Ak sa yo yo jeneralman li te ye kòm sa konstwi? ODYANS: Loop. DAVID J. Malan: Se konsa, yon bouk. Se konsa, trè senp. Li literalman fè sa li di. Ak nan grafouyen, si ou vle bachote plis moso devinèt nan la, moso nan ap grandi nan anfòm li. Epitou, n ap wè nan C ki nou ka fè menm bagay la. Yon lòt kalite riban, menm si, nan grafouyen ta ka pou tout tan, oswa gen nan nenpòt ki nimewo nan lòt fason. Men, kite a pran yon plis généraliste gade, ak yon figi sa a, se chans byen yo konnen yo, nan pasan plis jeneralman. Mak Zuckerberg: Youn bagay ki òdinatè se reyèlman bon nan se repete kòmandman. Kòm yon moun, ou ta jwenn reyèlman anwiye si ou te fè menm bagay la anpil nan fwa nan yon ranje. Men, yon òdinatè ka fè menm bagay la dè milyon oswa menm dè milya de fwa, epi yo pa jwenn anwiye, epi yo dwe kapab yo pote ki soti vrèman byen. Se konsa, pou egzanp, si mwen te vle swete tout moun sou Facebook yon anivèsè nesans kè kontan pa voye yo yon imèl, li ta ka pran m 'pi plis pase yon syèk yo aktyèlman ekri soti tout moun sa yo Imèl a tout moun. Men, liy ak jis yon kèk nan kòd, mwen kapab gen yon sistèm voye yon imèl bay tout moun sou Facebook ki vle yo yon anivèsè nesans kè kontan. Se konsa, se sa ki pasan yo ak poukisa yo ap gen anpil valè ak yon bagay ki òdinatè kapab fè trè byen. DAVID J. Malan: Se konsa, si ou rive ve te benefisyè a nan kèk nan CS50 a ak Espas Dropbox a nan an reta, sa a, se aktyèlman pwesizeman sa ki nou fè, lè l sèvi avèk Kòd byen tankou sa. Nou esansyèlman gen yon gwo calcul nan ki jan yo te Anthrax yo non ak adrès imel. Epi nou te ekri yon ti jan ti nan kòd ki ka repekte sou sa yo adrès ak krache soti adrès inik nan ka nenpòt moun ki soumèt plizyè fwa. Epi apre sa, nou voye yon otomatik ki fonksyone imèl ki soti nan bot CS50 a, ki gen ladan kòd la koupon. Koulye a, nou menm tou nou gade sa a konstwi dènye tan. Lè sa a se yon patikilye egzanp nan ki sa? Se konsa, yeah, yon ekspresyon Boolean. Epi li se fòm nan vle di pran ki kòm byen. Tout kesyon sa yo nan la fòme vre oubyen fo nan grafouyen ap gade yon ti kras yon bagay tankou sa a. Apre sa, nou rele sa a yon ekspresyon Boolean. Sa a tout bon vre oubyen fo, repons lan se wi oswa ki pa gen. Li se yon fason pou reponn yon kesyon. Epi Pandan se tan ou ka sèvi ak sa yo Boolean ekspresyon andedan nan konstwi tankou sa yo, kilès nan kou yo se kondisyon oswa branch, provèrbyo fouchèt nan wout la. Apre sa, yo ka gade pa sèlman tankou sa a, men yo kapab tou te elses asosye ak yo. Epi ou ka gen aktyèlman yon fason twa fouchèt nan wout la oswa yon fouchèt kat fason nan wout la, tou senpleman pa nidifikasyon bagay sa yo, jan ou pral wè nan grafouyen si ou pa gen deja. Ak jan ou ka fè nan C kòm byen. Se pou nou pran yon lòt généraliste gade nan yon alumnist, osi byen, ki moun ki ta ka prezante yon apwòch diferan bagay sa yo rele kondisyon. Bill Gates: Moun fè desizyon chak jou. Pou egzanp, anvan ou ale deyò ou kalite gen yon si deklarasyon ki di, si li nan lapli sa a, mwen bezwen jwenn levit mwen. Ak òdinatè yo se etonan yon fwa ou deside sa yo kalite deklarasyon, yo ke yo ka fiable egzekite bagay sa yo nan vitès enkwayab. Se konsa, yon pwogram òdinatè reyèlman se yon ti kras nan matematik ak kèk si deklarasyon ki kote desizyon an vin fè fè yo. DAVID J. Malan: Se konsa, kòm ou ka konnen, li te jan tankou Bill Gates, Pòl Allen, ak lòt moun ki vrèman derape a sa yo rele òdinatè pèsonèl revolisyon kèk ane de sa. Mwen te panse, anvan nou plonje nan kèk administrivia, nou ta gen rapò yon istwa ki soti nan Albuquerque a, New Mexico Museum of Natural History ak syans kote kèk nan Bill Gates ' ak pi bonè istwa Pòl Allen a yo konmanse jan nou gen kounye a PC yo jodi a ak Macs ak plis ankò. Pou sa, menm si, nou bezwen de volontè ki gen trè bon vwa narasyon li yon script byen fò. Tout dwa, ki jan sou nan do a. Vini non sou yo. Ak ki jan sou la devan isit la. Vini non sou desann. Pran kote ou isit la. Kòm ou nèg vini, yon koup nan anons administratif. koup, pwosesis la nan w ap chwazi yon seksyon, ap kòmanse sa a Mèkredi jiska Vandredi. Plis sou sa sa a ap vini Mèkredi nan konferans. Seksyon Super, pandan se tan, se yon bagay ke nou ofri semèn pwochèn kijan se tout klas la envite yo patisipe nan jistis gwo echèl seksyon, yon sèl plis confortable, yon sèl mwens konfòtab. Apre sa, nou pral anonse Nap yo de sa, kòm byen, pita semèn sa a. Seksyon Pandan se tan, tèt yo, ap kòmanse nan semèn twa nan kou a, zewo endèks, ki vle di sa yo se yon koup la semèn deyò. Se konsa, pa bezwen enkyete. Ou pa gen ankò rate anyen sou liy sa yo. Pandan se tan nan entre-temps la, si ou gen nenpòt kesyon administrativman, imèl tèt mwen ak Devon ak Gabe ak Rob nan adrès sa a isit la. Anfen, pwoblèm mete 0 se, nan kou, soti. Ou ka gen remake li sou sit entènèt kou a. Li ta ofri ou ak tout repons a kesyon ou ta ka gen nan tout wout la pou trape te kòmanse avèk mete nan pwoblèm. Men, si ou jwenn tèt ou nan bezwen nan yon men ede, pa tout vle di ale nan lè biwo louvri, Lendi, Madi, Mèkredi, Jedi nan semèn sa a nan aswè a nan kat koulwa manje. Wè ke URL la pou Nap yo nan kote lè biwo va. Koulye a, Se pou nou satisfè nou an de envite isit la jodi a. Ki sa ki nan non ou? JAY PAUL: Jay Pòl. DAVID J. Malan: Jay Pòl, bèl al kontre ou. Hikari: Hikari. DAVID J. Malan: Hikari? Hikari: Hikari. DAVID J. Malan: Hikari. Nice al kontre ou kòm byen. Jay Pòl ak Hikari gen nan devan yo sou sa yo mizik kanpe de Scripts ke mwen enprime soti sa a maten soti nan New Mexico a Museum of Natural History ak Syans. Ak sa ki mwen te panse Mwen ta fè sou anlè tèt yo se akonpaye resitasyon ou nan script la ak istwa sa a ak kèk imaj vizyèl, pa gen okenn supriz. Ak sa ki mwen te fè an avanse se prehighlight sou script ou sa ou ta dwe li, ak sa ou ta dwe li. Epitou, n ap esansyèlman jis altène paragraf yo. Se konsa, li anpil tankou ou ta ka te fè nan klas angle. Sa ki nan vrèman fòse odyans lan kwè nan istwa ou isit la. Pou nou? Se konsa, istwa a isit la se, nou gen yon BASIC, epi li kòmanse nan Cambridge. JAY PAUL: Se te sezon fredi, 1974, nan Cambridge, Massachusetts kote sezon ivè yo ka frèt. Yon krinit, depi lontan chveu elèv ki kite kolèj yo te rele Pòl Allen te drudging atravè Harvard Square, absòbe nan panse l 'yo. Konsantrasyon prensipal li nan jou sa yo te kòman ou kapab jwenn zanmi l ', Bill Gates, kite fimen lekòl epi ale nan biznis ak l '. Hikari: de la te deja ale nan yon nonb de inisyativ biznis ansanm, kòmanse nan Lakeside lekòl nan Seattle ki kote yo te peye nan tan òdinatè gratis nan teste yon òdinatè PDP-10 nan yon moman lokal pataje konpayi. Te plan an ki pi resan te kite fimen lekòl ak fòme yon konpayi lojisyèl. Allen te kite Washington Eta University. Men, nan dènye minit te, Gates deside bwa avèk Harvard. JAY PAUL: Jou sa a, travèse Harvard Square, Allen takte janvye a, 1975 pwoblèm nan popilè Elektwonik ak gran tit nan tè a kanpe, Premye mini Twous Mondyal la rival li Modèl Komèsyal. Anba tit la te yon foto nan yon ti bwat dekore ak limyè ak switch. Li te rele mits Altair an 8800. Ak Allen te konnen sa a se sa ki te li te kap chèche. Hikari: Jou nan diskisyon swiv. Allen ak Gates konprann nan siyifikasyon nan Altair la. Yo te pale souvan sou mikroproseseur ak te ap tann yo wè sa ki ta dwe fè avèk yo. Koulye a, te gen yon twous mini sou kouvèti a nan popilè Elektwonik. Li aparamman pa te gen okenn lojisyèl ankò. Yo imajine yon nasyon pwogramasyon desann sou mits. Se konsa, yo rele Ed Roberts, tèt la nan konpayi an, Reklame ke yo gen yon vèsyon nan la Lang programmation BASIC prèske pare pou Altair la. Yo pa t '. Ak Roberts dwe te li te ye yo pa t '. Li te resevwa 10 apèl yon jou soti nan moun ki te gen yon BASIC prèske pare. Ak repons stock l ' te, "premye moun nan ki moun ki montre moute ak yon k ap travay BASIC vin kontra a. " JAY PAUL: Gates ak Allen pa t janm wè yon Altair. Yo pa t 'janm menm wè a Intel 8080 mikro nan kè yo ak Altair la. Men, yon koup nan ane pi bonè Allen te ekri yon pwogram sou yon òdinatè mainframe ki imite operasyon an nan yon Intel anvan yo mikro. Ak tan sa a ozalantou yo ta fè menm bagay la. Hikari: Avèk yon Intel 8080 manyèl nan bò kote l 'yo, Allen chita bò tab la nan yon Harvard PDP-10 òdinatè e li te ekri Emulation a ak lojisyèl zouti nesesè yo fè pwogramasyon an. Pandan se tan Gates sispann ale nan klas ak konsakre tèt li desine BASIC a, lè l sèvi avèk tout Trick li te konnen yo ka resevwa gwosè a desann anba a 4 kilookte. JAY PAUL: Out nan Albuquerque, Ed Roberts te resevwa yon apèl soti nan Gates mande pou plis detay sou ki jan la Altair okipe woutin espesifik. Pa te gen okenn yon sèl janm mande ke anvan. Ak Roberts te kòmanse jwenn ki enterese. Hikari: Ak devlòpman sou zouti ak desen an pare, Gates ak Allen te ekri Kòd la sou PDP a-10, chache yon lòt elèv Harvard, Monte Davidoff, yo ekri woutin matematik. Apre yon jou lannwit final la nan pwogram, Allen te resevwa sou yon avyon rive delivre BASIC yo nan mits. Li te pase avyon an monte soti mangonmen. Ak tounen lakay ou nan Cambridge Gates te mangonmen. Yo te teste BASIC yo epi yo li te te travay sou Emulation la. Men, sa ki si Emulation a te mal? JAY PAUL: Kòm avyon an pwoche bò Albuquerque, Allen reyalize ke yo BASIC, kounye a nètman ki genyen sou yon ti woulo liv nan trou tep papye, ta dwe initil san yo pa yon separe pwogram, ki rele yon loader, ki ta di Altair la ki jan li ke yo te la tep papye manje nan machin nan teletip. Li pran soti kaye l ', li byen vit grifone desann yon pwogram loader nan lang Asanble, lè sa a manyèlman tradui ki nan 1S yo ak 0s Altair a ta konprann. Hikari: Allen te espere yon pwòp, ti kras, segondè teknoloji konpayi kouri pa moun nan kostim biznis. Se konsa, li te sezi lè Roberts te rankontre l 'nan ayewopò a kap tankou yon ranch men yo. Roberts te tou sezi. Lè l 'tonbe Harvard la pwogramè nan yon otèl chè, Allen te gen nan konfese ke li pa te kapab gen mwayen sal la. JAY PAUL: mits, li menm, te sitiye nan yon sant komèsyal lineyè pousyè. Anndan sou yon ankonbre sou li a te gen yon Altair chaje moute ak 5 kilookte nan memwa ak ki konekte ak yon kab nan yon machin teletip. Roberts ak Chèf Engineer, Bill Yates, tann expectantly kòm Allen baskule loader l ' pwogram nan Altair la. Teletip an te kòmanse chugging jan li rale kasèt la sou papye a lektè a tep. Li te pran petèt 15 minit chaj pwogram nan. Lè sa a, teletip a sibitman enprime yon èd memwa memwa, lè sa a yon èd memwa pare, ak Allen te kòmanse sezisman yon tès kèk kòmande. Nan surpri tout moun la, lojisyèl an te travay. Te gen pinèz, nan kou. Men, bagay prensipal la te li te travay. Hikari: Apre sa, sou wout yo nan yon $ 3.00 manje midi nan Pancho a, yon gèp te pran vòl nan fennèt la nan vin chèche la kamyon ak mòde Allen sou bra an. Men, nan pwen ke pa gen anyen te kapab piye atitid la. Altair a kounye a te gen BASIC li yo, nan premye lojisyèl komèsyal pou yon kay òdinatè, te fèt pa Pòl Allen ak Bill Gates, fè biznis kòm Microsoft. DAVID J. Malan: Anpil gras a de lektè nou yo. [Aplodisman] DAVID J. Malan: Koulye a, ou gen chwa ou, anvan ou kite, nan yon sparkly oswa yon lumière nan dark-- la oh, rete tann yon sec, wait-- sparkly ak yon lumière nan elefan nan fè nwa soti nan CS50 nan pwòp Cheng Gong. Hikari: Aw, di ou mèsi. DAVID J. Malan: Tout dwat, di ou mèsi anpil. [Aplodisman] DAVID J. Malan: Se konsa, vre istwa. Sa a se yo di ke tout moun sa yo machin ak fasilite la ak kote nou sèvi ak yo kounye a epi pran pou yo akòde, reyèlman te kòmanse isit la, jis yon mach kèk soti nan teyat sa a vrè. Epi, koulye a jodi a, si ou pa janm te, sa a se Maxwell Dworkin, òdinatè a syans bilding, tou nan kwen an. Yo, epi sou dezyèm etaj la nan sa a bilding fè pann twa paj soti nan kòd la sous orijinal ki Bill Gates ak Pòl Allen te ekri. An reyalite, si itilizasyon ou rale nan ou ka wè pa sèlman non yo nan a orijinal kalite, men tou, siyati yo ke yo dekore yon kèk ane tounen lè yo dènye te vizite. Men, sa ki te patikilyèman konvenkan sou sa a se sa yo mete soti nan fè te ekri yon pwogram ki ta pèmèt lòt moun yo ekri pwòp pwogram yo. Nan moman sa a tout te rete la avèk machin sa a Altair fèt pa mits. Ak tout sa yo bezwen se te kèk fason pou fè li fasil pou amater ak moun renmen nou nan sal sa a nan aktyèlman pwogram ke san yo pa nesesèman konprann Kòd Asanble a, oswa machin Kòd, oswa Bondye padon, 0s ak 1S. Nou pwogramasyon, tankou moun nan sal sa a, nou vle yo dwe kapab eksprime tèt nou pi plis tankou Kòd pseudo menm si li nan yon ti jan pi plis nit serye pase nou te pale semèn pase a. Nou pa vle ekri kòd tankou sa a, ki Pòl Allen ak Bill Gates te fè sa. Nou menm, olye de sa, vle ekri kòd ki sanble yon ti kras plis itilizatè zanmitay. Koulye a, sa a se yon lang ke yo rekonèt kòm BASIC. Ak nimewo yo liy gen sa ou itilize yo tou senpleman konte liy yo nan Kòd ke w ap ekri. Nou pa menm gen yo fè sa jou sa yo. Men, ou ka wè isit la ki jan EKRI AN LÈT DETACHE "hello, mond" ta vre prezimableman enprime sèlman sa. Se konsa, sa Bill ak Pòl te fè te pèmèt moun yo ekri kòd tankou sa a olye pou of-- si ou pran yon gade nan nan syans òdinatè wall-- Kòd tankou sa a. An reyalite, CS50 dènyèman te gen yon opòtinite yo chita ak Pwofesè Harry Lewis nan Syans depatman an Odinatè, ki moun ki aktyèlman anseye Bill Gates kèk ane de sa, epi li se kanpe isit la anvan sa yo twa paj nan Ekstrè. Se pou nou pran yon gade. HARRY LEWIS: Ki sa ou gen isit la se yon lis nan yon moso byen bonè nan lojisyèl ekri pa Bill Gates ak Pòl Allen, fondatè yo nan Microsoft. Se konsa, kòd la se enteresan pou de rezon. Premye a tout, li te vin Premye pwodwi Microsoft la, ki te yon entèprèt pou lang nan pwogram de baz yo. Ak Dezyèmman, sa a te youn nan tantativ yo an premye yo kreye yon entèprèt se konsa òdinè moun ki te kapab sèvi ak òdinatè pèsonèl. Se konsa, Bill Gates te yon bakaloreya nan Harvard. Mwen te kòmanse anseye nan Harvard nan 1974. Sa a te fè nan lane 1975. Se konsa, li te nan karyè li byen bonè ak byen bonè nan karyè mwen an. Mwen aktyèlman anseye Bill nan yon kou alantou tan sa a. Pòl Allen pa t 'yon Harvard elèv, men li te yon lekòl segondè kondisip klas nan Bill Gates. Si ou vini ak gade nan lis la, ou pral aktyèlman jwenn yon twazyèm non, Monte Davidoff, ki moun ki te kondisip klas Gates nan isit la nan Harvard. OK, se konsa isit la nan yon enteresan kòmantè moute isit la. Li di "Nan 4K ka efase rasin kare men pou pasan ta dwe toujou travay. " OK, Se konsa, sa sa vle di se ke gen te de fason yo konpile pwogram sa a. Yonn te nan kouri sou yon vèsyon nan òdinatè Altair sa a ke se sèlman te gen 4K mo nan memwa, 4,096 mo nan memwa. Men, vèsyon an gwo te gen 8k. Se konsa, sa sa a di se ki nan vèsyon an 4K ou te gen yo efase kèk Kòd fè li anfòm. Ak youn nan bagay ki ki ta dwe efase ta dwe woutin nan rasin kare. Men, aparamman a pou pasan yo ta dwe toujou travay menm lè w ap konpile desann pou jis vèsyon an 4K nan òdinatè a. DAVID J. Malan: Se konsa, youn nan tèm yo, jan nou pral wè nan syans konpitè, se sa a nosyon nan stratifikasyon ak distraksyon, ak reyèlman kanpe sou zepòl yo nan jan ki te vini anvan nou, pa kontrèman ak kèk nan Bill Gates nan ak Pòl Allen naratif isit la. E ki sa sa vle di se ke jodi a nou ka pran pou yo akòde ke bagay sa yo yo aktyèlman pi fasil pou nou ekri kòd. Vreman vre kòd, kòm nou te di nan Vandredi, se plis teknikman li te ye kòm kòd sous. Lè li nan angle sa a tankou sentaks sa a, se plis apwopriye ak plis byen defini pase yon bagay tankou Kòd pseudo, pou ki pa gen okenn definisyon fòmèl. Ak jodi a sa nou ap ale yo konsantre sou se kòd sous ki sanble tankou sa a, ki Byensir nan premye gade sanble konplètman skre. Ak franchman, li nan fason pi plis estetik konplèks pase pwogram lan kache se. Tout pwogram sa a fè, sonje, se sa nou t 'di nou fè? Li jis simagri "alo mond." Men, gade nan tout nan bagay la nou bezwen vlope toutotou ke fraz trè senp. Men, anvan lontan tout nan liy sa yo ak plis ankò pral fè pi bon sans ou yo. Ak koule a se jan sa a. Ki sa nou bezwen a jete nou an se pran kòd, tankou sous kòd ki nou jis te wè. Apre sa, nou bezwen yon nouvo pwogram nan kouri li a. Nou bezwen algoritm ki ka konvèti kòd sous, tankou sa a, nan kòd objè, 0s ak 1S. Nan lòt mo, ki sa nou ap ale nan aprann jodi a se ki jan fè sa a, ekri kòd sous moute tèt, pase li kòm D 'nan yon espesyal pwogram li te ye tankou yon du, epi nou ap ale yo pwodwi Kòd objè. Ki se jis yon fason anpenpan nan li di nou pral pran yon bagay ki sanble tankou sa a, pase l nan yon pwogram ki rele yon du, pwodwi kòd objè ki sanble tankou sa a. Se konsa, sa yo, se literalman modèl yo nan 0s ak 1S ke yo konprann pa yon Intel òdinatè jou sa yo, ke si entèprete pa CPU a, sèvo yo andedan nan yon òdinatè, pral literalman enprime soti, byen tou senpleman, "alo mond." Koulye a, gen nan fason pi plis 0s ak 1S pase ou ta swete ta kapab nesesè pou sa. Men, sa a paske nou ap bati sou yon kontra bon nan konpleksite ke nou ka koulye a pran pou yo akòde. Nan lòt mo, yon anpil nan moun entelijan te ban nou yon anpil nan zouti fre ak lojisyèl pwisan ak ki nou kapab kounye a fè pwojè nan pwòp nou yo. Se konsa, kite a jwenn te kòmanse. Lè nou konsidere ke Vandredi dènye a, ak pou Set Pwoblèm 0 semèn sa a, ou pral jwe nan yon mond ki sanble tankou sa a. Koumanse jodi a ak pou Pwoblèm Mete 1 semèn pwochèn, kòd a ki pral gade yon ti kras plis skre, men fonksyonèl se pral fè menm bagay la. Se konsa, avi, tèt se grafouyen, anba a se C. Franchman Grafouyen se yon anpil plis itilizatè zanmitay ak aksesib. Men, si ou kounye a konpare vizyèlman anwo jouk anba, gen nan kalite yon youn nan yon sèl korespondans ant a moso devinèt ak nan lang nou ap sou yo jwe avèk. An patikilye, di, nan ble devinèt moso moute tèt, se aparamman ekivalan a sa mo kle oubyen yon fraz espesyal nan lang sa a rele C? ODYANS: Printf. DAVID J. Malan: Printf. Sa vle di enprime fòma. Epi sa a, jis yon anpenpan fason pou li di printf nan C ki pral gen yon deklarasyon oubyen yon fonksyon ki simagri yon bagay yo ekran an. Ki sa ki li enprime nan ekran an? Kèlkeswa sa ou di l 'bay anndan nan quotes, andedan nan parantèz. Se konsa, ankò, Byensir, gen nan yon anpil nan bagay ki di ou gen kenbe nan tèt ou, parantèz, quotes, virgules, ak tout bagay sa yo. Men, nan tout sa a se sòt nan bò kote pwen an. Takeaway la enteresan pou kounye a se ke blòk la di nan grafouyen se bèl anpil ekivalan a deklarasyon an printf nan C. Pandan se tan, moso nan jòn devinèt moute tèt, lè vèt drapo klike, se pwobableman ekivalan nan sa mo kle isit la? ODYANS: Main. DAVID J. Malan: Se konsa, prensipal la. Petèt Int, petèt anile. Men, kalite prensipal la son tankou li enpòtan, ak tout bon li ye. Se konsa, lè vèt drapo klike se, ankò, moso nan devinèt ki anvwaye yon tout pwogram grafonyen moun. Men, nou yo ale nan kounye a kòmanse rele ki prensipal la, fonksyon sa a li te ye kòm prensipal la. Koulye a, pandan se tan nou pral jeneralizasyon sa a jan sa a. Nou ta ka rele di yon fonksyon. Epi li ta ka gade espesyalman tankou sa a. Oke, sa ki sou pasan? Si nou vle kòmanse konvèti oswa tradui plis nan grafouyen C, bagay sa a isit la aparamman jis di "alo mond" pou tout tan. Se konsa, si ou asosye sa yo Scripts ak yon chat nan grafouyen, li nan jis ale nan kenbe li di nan kèk kalite ti wonn desen ki pi ba, "Alo mond, alo mond, alo mond, "nauseum anons, pou tout tan. Si nou vle fè yon bagay menm jan an nan C, li pral gade yon ti kras skre. Men, nou kapab reyalize menm bagay la tou rezilta, kòm n ap pètèt chèche konnen, ak sentaks tankou sa a. Mwen pral sèvi ak printf ankò, paske nan fen a nan jounen an Mwen vle ekri ak lèt ​​detache "mond hello." Apre sa, mwen aparamman l sèvi avèk yon mo kle ke se pa pou tout tan. Li nan olye pou pawòl Bondye a pandan y ap. Men, jis Semantics nan Lang angle, pandan y ap kalite sijere kèk kalite riban oswa sik. Se konsa, ki k ap pase yo mo kle a ki C sèvi avèk yo. E pandan ke vre, poukisa fè pandan y ap vre efektivman vle di pou tout tan? Oke, pandan y ap, menm jan nou pral byento apresye tout plis la, gen parantèz sa a akote l kote ou ka mete yon ekspresyon Boolean. Se konsa, lontan ke sa ekspresyon ki vre, kòd sa a, kòm deziye ant de sa yo aparèy òtopedik Curly jan nou pral rele yo, yo pral jis kenbe kouri ankò e ankò. Se konsa, vre se vre. Se konsa, pandan vre vle di jis fè sa a pou tout tan. Li nan prèske yon estipid konstwi eksprime sa yo panse tèt ou. Men, pa te gen okenn pou tout tan mo kle nan C. Te gen ti tan. E te gen yon trè senp Boolean ekspresyon tankou vre. Se konsa, sa a, nou pral wè, reyalize rezilta a menm. Kouman lòt moun ou ta ka aplike yon riban? Oke, nan grafouyen ou ta ka Kòd difisil yon kantite espesifik nan itérations nan riban an isit la. Se konsa, sa a, se ekzakteman ki sa nou ta ka fè nan sa a vèsyon an C, kijan nou gen yon sa yo rele pou riban. Epi ki pral la pou riban isit la repekte, yon ti jan cryptically, soti nan valè a 0 sou moute men mwens pase 10. Koulye a, varyab nan grafonyen moun. Ou pa ka gen te gen okazyon yo sèvi ak sa yo. Men, sa ki nan pwen an, an jeneral, nan yon varyab nou t 'di semèn pase a? Ki sa ki nan sa? ODYANS: Pwen. DAVID J. Malan: Pou montre? Oh, pwen. OK, kenbe tras nan pwen, pou egzanp, nan yon jwèt. Oswa plis konn fè ki sa ki ak varyab la? Ki sa ki nan sèvis piblik la nan yo? ODYANS: memwa. DAVID J. Malan: Yeah, se konsa memwa. Li nan pou estoke yon bagay. Ak sòt la nan enbesil mwen vizyèl itilize dènye fwa te tankou bòl sa a vè. Men, si nou te vle nan magazen yon bagay andedan nan yon varyab, pou egzanp kounye a nan valè sis paske gen yo se sis voye boul ping pong nan isit la. Se jis kèk kalite depo veso ki anba kapo a se aplike ak Bits, 0s ak 1S, sepandan yon òdinatè k ap pase nan fè sa. Se konsa, nan grafouyen, si nou vle gen yon varyab, nou ka sèvi ak yon blòk zoranj tankou sa a. Nou pral rele ki vann san preskripsyon nan ka sa a an patikilye. Mwen initialisé li a 0. Ak sa ki li mwen Lè sa a, fè? Pou tout tan, di vann san preskripsyon, ki si ou jwe ak ke nan grafouyen, ou pral jis gade grafonyen moun. Chat la oswa kèlkeswa sa kostim ou mete sou l 'ap pale nimewo a nan kesyon an. Chanje vann san preskripsyon pa 1 se tankou incrementing pa 1. Se konsa, sa a se pral konte soti nan sa ki pou ki sa? Soti nan 0 til Infinity, oswa jouk repo grafouyen, oswa jiskaske ou sòt de pèdi enterè nan l ap gade kouman segondè li ka aktyèlman konte. Se konsa, ki jan ta ka nou konvèti sa a C? Li nan pral gade yon ti kras skre. Men, ankò, si ou gade nan chak nan liy sa yo endividyèlman yo kalite pwogramasyon jeneralman. Se konsa, aparamman int se ale nan gen kèk siyifikasyon espesyal nan C. Nou pral wè sa ankò. Kòm yon sou kote li vle di nonb antye relatif. Se konsa, li jis vle di kantite. Se konsa, se kalite a nan vè bòl mwen vle, yon sèl ki ka magazen nimewo, pa Ping voye boul Pong. Men, mwen pral yo sèvi ak siy ki egal gen yo asiyen li se yon valè de 0. Se konsa, se byen tankou seri vann san preskripsyon nan 0, men nan C. Pandan se tan, pandan y ap vre, sa ki te ekivalan, nan kou, nan tout tan, menm si li nan yon ti kras skre, ak Lè sa a andedan nan aparèy òtopedik yo Curly. Epi ou ka panse a sa yo aparèy òtopedik Curly, ki ou ka tape sou klavye ou, kòm reyèlman yo te tankou deviation a nan sa yo blòk bouk jòn nan grafonyen moun. Li kwoke liy miltip nan kòd. Printf ap resevwa yon ti kras pè kounye a paske mwen wè se pa sèlman quotes nan parantèz. Men, ki lòt bagay se nouvo syntactically nan egzanp sa a? Genyen yon pousan d. Lè sa a, antislach n ki gen la. Nou t 'wè sa anvan, menm menm si mwen pa t 'mansyone li. Lè sa a, gen nan yon vigil. Lè sa a, gen nan yon vann san preskripsyon. Men, nou pral wè nan jis yon moman sa a sa a se jis yon fason estanda nan ekri ak lèt ​​detache li di yon "Nimewo desimal," quote, unquote, kèk nimewo desimal. Men, mwen pral di ou pita ki sa sa nonb desimal ye. Se konsa, lefèt ke gen nan yon vigil nan pawòl sa a printf liy, vle di ale pi devan epi ekri ak lèt ​​detache kèk nimewo desimal. Oh, ak nan chemen an, nimewo a se tou sa valè a nan varyab sa a se. Se konsa, fè sa-a plis klè, nou pral wè yon egzanp anvan lontan ki enplike egzakteman printf nan yon kontèks la nan pwogram reyèl C. Koulye a, jis vlope moute kèk nan konstwi sa yo. Ekspresyon Boolean, ou pa ta ka gen okazyon yo sèvi ak sa yo nan pwogram ou an men ou ta ka trè byen, espesyalman si lè l sèvi avèk kondisyon. Se konsa, de egzanp sa yo soti nan Grate vle di si x se mwens pase y, oswa si x se mwens pase y ak y se mwens pase z, ki jan ta ka nou tradui sa? Oke, nan C li nan jis pral gade tankou sa a. Yon ti kras skre, plis parantèz, kèk ampersands etranj, men fondamantalman ide yo se kòm senp tankou yo se nan moso devinèt mond lan. Nou ap tou senpleman tcheke si gen yon bagay se mwens pase yon lòt bagay. Kouman sou kondisyon? Nan yon Nutshell nan lang angle, sa ki fè sa a ti moso nan Kòd grafouyen ou ta di? ODYANS: Compares de nonb. DAVID J. Malan: Compares de nimewo, epi si x se mwens pase y li di kòm anpil. Si x se pi gran pase y li di kòm anpil, lòt moun si x egal a y li di kòm anpil. Koulye a, kote x ak y soti? Ki moun ki konnen. Sa a ti moso nan grafouyen kòd se soti nan kontèks. Men, ki sa nou vle fè kounye a se tradui sa a sèlman pou moman yon moun wè. Se konsa, jan ou jwenn konfòtab semèn sa a nan Set Pwoblèm 0 jwe nan mond sa a sou bò gòch la, reyalize ke ide yo pa chanje semèn sa a oswa pwochen oswa pi lwen toujou. Nou ap tou senpleman ale nan kòmanse ekri bagay sa yo nan yon fason diferan ak nou an klavye olye pou yo sourit nou an. Se konsa, si x se mwens pase y, ak gen nan kèk parantèz la, Lè sa a, gen nan kèk aparèy òtopedik Curly ankò nan kalite ankapsulasyon li jis tankou moso yo jòn devinèt fè. Men, mwen pral printf x se mwens pase y ak pou fè. Ki sa ki se bèl sou C, jan ou ka wè isit la, se ke ou pa jwenn nidifikasyon sa a, nidifikasyon, nidifikasyon sa a, se nesesèman pral pouse kòd ou a dwat la. Ou ka olye pou gen tout bagay pwogramasyon nètman renmen sa a. Men, sa se sèlman yon ayestetik detay nou pral wè ankò anvan lontan. Tout dwa. Se konsa, ki pote nou tounen nan pwogram kap skre sa a. Se pou nou aktyèlman ekri kèk kòd. Koulye a, kouman ou ale sou ekri kòd? Tout ane sa yo ke ou te posede yon Mac oswa PC, desktop oswa laptop, ou te aktyèlman te gen kapasite a yo kòmanse ekri kòd pwogramasyon. Men, w ap pwobableman manke yon kalite espesyal nan pwogram nan. Ou ka sètènman ekri kòd. Men, ou pa kapab nesesèman, soti nan bwat la, konvèti ki kòd sous nan kòd objè, 0s ak 1S san yo pa sa ki sou òdinatè ou a? ODYANS: du. DAVID J. Malan: Se konsa, yon du, dwa. Koulye a, pi fò nan pwobableman ou pa posede yon du, pa janm te telechaje yon du. Men, ou pral wè ou ka telechaje li tankou pifò nenpòt lòt moso nan lojisyèl. Nan mond lan nan Mac OS, ou ta ka download oswa te telechaje deja yon bagay yo rele Xcode oswa GCC oswa sonnen. Si ou vini soti nan la Windows mond ou ta ka te telechaje vizyèl Studio, Visual Basic, anviwonman tankou sa. Genyen plizyè douzèn konpilateur jou sa yo ke ou ta ka sèvi ak. Men, kout nan li isit la se ke li ta dwe yon doulè ak, franchman, yon teknolojik kochma pou dè santèn nan moun ki gen diferan konfigirasyon òdinatè nan tout configured machin yo nan egzakteman menm jan an se konsa ke nou tout ka sou paj la menm. Se konsa, ki sa nou, olye de sa, fè nan CS50 se nou ba ou yon anviwònman estanda, yon Linux anviwònman sa a, se pral gade yon ti kras yon bagay tankou sa a. Ou pral wè pi plis nan sa a nan nan Set Pwoblèm 1 spesifikasyon ki pral ale sou entènèt sa a lannwit Vandredi. Ak sa ki sa sa vle di se ke ou koulye a yo pral yo dwe kapab download yo ak enstale yon pwogram rele CS50 Aparèy la. Epi w ap ale nan download yo ak enstale yon lòt pwogram ki rele yon ipèrvizeur, ki se jis yon anpenpan fason pou reyalize sa a. Si ou posede yon Mac oswa PC oswa yon Òdinatè Linux oswa yon òdinatè Solarin, oswa kèlkeswa sa fou opere sistèm w ap kouri, w ap ale nan download yon pwogram rele ipèrvizeur a ki nan ale nan kouri CS50 a Aparèy sou òdinatè ou pa gen pwoblèm sa sistèm opere ou se. Yon ipèrvizeur nan lòt mo konvèti bagay nou yo kèlkeswa lang, kèlkeswa sa enstriksyon ou pwòp òdinatè konprann. Se konsa, sa a se yon stratifikasyon. Epi ankò, sa a se kalite nan tematik nan òdinatè syans, bilding lan sou tèt bagay sa yo. Ou ta ka gen fenèt yo. Ou ta ka gen Mac OS. Men, kòmanse nan semèn kap vini w ap ale nan te telechaje yon moso gratis nan lojisyèl rele ipèrvizeur la. W ap ale nan te telechaje yon moso nan lojisyèl rele CS50 Aparèy la. Ki nan ale nan kouri nan ipèrvizeur a, ki se ale nan kouri sou òdinatè ou. Ak rezilta nan fen se ke tout nan nou pral gen yon fenèt senp tankou sa a sou Mac ou a oswa PC ki ba nou ilizyon an nan tout kouri sistèm nan fonksyone menm, san yo pa nenpòt lòt enpak sou òdinatè ou. Epi ou ka ekran plen li ak esansyèlman konpòte tankou si ou se kouri yon sistèm opere rele Linux, ki se ki sa CS50 a Se Aparèy ki baze sou. Se konsa, kite a aktyèlman sèvi ak sa a kounye a yo ekri yon pwogram. Ou ka ekri yon pwogram lè l sèvi avèk Microsoft Word. Ou ka ekri yon pwogram lè l sèvi avèk TextEdit, oswa notepad, oswa WordPad, oswa bèl anpil nenpòt mo pwogram pwosesis ou janm itilize yo. Men, reyalite a se ou pa ta dwe sèvi ak reyèlman nenpòt nan pwogram sa yo. Ou sètènman pa ta dwe itilize yon bagay tankou Microsoft Word, ki gen fè fas a fonse ak italik, ak pi gwo polis ak pi piti polis, paske òdinatè a pa fè sa pran swen sou nenpòt nan sa. Tout òdinatè a se ale nan pran swen sou se Angle tankou enstriksyon alekri nan C. Se konsa, sa nou pral fè anndan nan aparèy la CS50 se sèvi ak yon pwogram lib disponib, epi li pre-enstale nan sa a aparèy, ki rele Jdi. Epi Jdi se jis yon super senp editè tèks tankou TextEdit Mac OS a, tankou Windows notepad ki nan ale nan gade yon ti kras yon bagay tankou sa a. Se konsa, kite a aktyèlman pa gade nan glisad nan sa a. Men, kite a aktyèlman ale nan anviwònman nan tèt li. Mwen pral ale pi devan epi ouvri sesyon an, nan lòt fenèt sa a, CS50 Aparèy mwen an, ki mwen te pre-enstale sou konpitè pòtatif m 'isit la. Remake, tankou Windows ak Mac OS, li la gen kèk meni. Tankou Windows li mete li desann la olye pou nan Mac OS, ki mete l 'anba isit la. Men, reyalite a se li nan tout kalite menm bagay la. Ak nan isit la se yon antye pakèt moun sou lojisyèl. Genyen nan Dropbox. Genyen yon pakèt antye nan Pwodwi pou Telefòn, pwogram grafik ki nou pral sèvi ak pita nan tèm nan pou kouche pwoblèm. Genyen nan yon navigatè entènèt bati nan se konsa ke sa a se yon òdinatè plen véritable andedan nan yon òdinatè. Men, mwen pral klike sou sa a leftmost icon blan isit la, ki se icon a pou Jdi. Epi li k ap pase yo louvri yon fenèt ki gen twa panno nan li, yon yon sèl bò gòch, yon yon sèl tèt, ak yon yon sèl anba. Koulye a, li la nan yon sèl sa a tèt dwat ki Mwen pral aktyèlman ekri kèk kòd. Se konsa, kite a fè sa ,. Mwen pral pou yo ale nan ranpli, sove. Epi ou pa ta ka janm te wè fenèt sa a an patikilye anvan. Men, sa a se tankou Mac OS oswa Windows. Se jis nan yon fenèt ak tout dosye yo ke mwen gen andedan nan òdinatè sa a. Men, mwen pral pou konsève pou dosye a kòm hello.c. Apre sa, mwen pral ale pi devan epi klike sou Save. Epi, koulye a remake mwen gen yon tab sou bò gòch tèt rele hello.c. Se konsa, pwobableman trè abitye menm si ou te pa itilize pwogram sa a an patikilye anvan. Epi, koulye a, mwen pral tape nan moun san patipri skre sekans nan kòmandman ke nou te wè yon ti moman de sa. Mete, estanda Mwen / O.h. Plis sou sa byento. Int anile prensipal, Curly louvri atèl, fèmen atèl Curly. Lè sa a, andedan nan gen mwen panse ke se kote nou te gen "alo mond," virgules. Epi, koulye a sove. Se konsa, sa a se yon pwogram ekri nan C, ekri, Se poutèt sa, nan kòd sous. Men, mwen pa ka jis kouri pwogram sa a. Mwen kalite vle double klike sou yon icon yon kote, men pa gen okenn icon egziste lòt pase dosye a kòd sous. Ki sa ki, ankò, se pwosesis la kounye a ke Mwen bezwen kouri sa a ranpli nan? ODYANS: du. DAVID J. Malan: Se konsa, yon du. Se konsa, nan òdinatè diferan ou fè sa nan diferan fason. Men, sa ki nou te fè isit la nan Aparèy la CS50 sa a, se reprezantan nan ki jan ou ta ka fè sa sou sistèm anpil diferan, se mwen tou senpleman ale nan kouri nan yon lòd yo rele fè. Epi fè se literalman pral fè sa. Fè m 'yon pwogram nan. Se konsa, fè ki pral kouri yon du pou mwen. Ak non an nan pwogram nan Mwen vle fè se hello. Koulye a, fè se yon pwogram. Epi fè se entelijan ase yo reyalize ke si mwen di fè hello, li a pral gade otomatikman pou yon dosye rele hello.c jis paske sa a, se nan fason li nan configuré. Se konsa, lè mwen kounye a frape Antre isit la, sa fou liy skre fèk sot egzekite. Epi, fè konfyans mwen anvan long, nan jis jou, ou pral konprann ki sa tout nan ki istwa san sans vle di. Men, pou kounye a, jis konnen ke fè deklanche ekzekisyon nan yon du. Nan lòt mo, li te jwenn yon du sou òdinatè mwen an sa a, se pre-enstale sou aparèy la CS50 ke nou pral lage ou nan Set Pwoblèm 1. Epi li Lè sa a, te pran hello.c kòm D ', ak pwodwi aparamman 0s ak 1S kòm pwodiksyon. Ak pa default ki sa li fè a se li ekonomis moun 0s ak 1S nan yon dosye rele hello. Epi menm si sa a sentaks twò ta ka gen nouvo nou la a, tou senpleman pa di dot koupe alo a pwal nan vle di pa ki mwen kouri pwogram sa a. Pou kounye a, epi pou omwen yon koup nan semèn, prèske tout nan pwogram yo Nou ekri yo ale nan dwe nan nwa ak blan tèks fenèt yo. Pa sourit, pa gen klike, pa gen okenn fenèt yo, pa gen okenn ikon. Nou pwal kenbe li senp epi konsantre sou lide yo progrè okòmansman anvan nou jwenn nan yon bagay pi wo nivo, pou egzanp, tankou jwèt la kraze soti ke nou te pale sou nan konferans la premye semèn pase a. Se konsa, lè m 'frape Antre isit la, li nan ekivalan nan yon tèks sèlman anviwònman a doub klike yon icon rele hello. Sa w ap atann volonte rive lè mwen frape Antre lè sa a? ODYANS: Li pral enprime "alo mond." DAVID J. Malan: Nou swete ke li pral enprime "alo mond." Ak tout bon li te fè. Koulye a, gen nan gen kèk skre sentaks isit la. Se pou nou remonte pou jis yon moman epi wè si nou pa kapab kòmanse èksklamasyon jis pa brikolaj, ap eseye ak li pap resevwa, tankou sa ki k ap pase sou isit la. E si mwen debarase m de n nan antislach? Koulye a, kèk nan nou ki te gen pwograme anvan pwobableman konnen imedyatman ki sa sa vle di. Men, pou moun nan nou ki te gen pa janm pwograme anvan, omwen panse nan tèt ou ki sa ki pwal chanje lè m 'relance pwogram sa a? Se konsa, mwen pral ale tounen desann nan mwen ti kras nwa ak blan fenèt, ki se fenèt la nan ki Mwen ka konpile sa a. Mwen pral compile hello. Nou pwal gade menm bagay la tou skre sekans nan kòmandman. Apre sa, mwen pral fè dot koupe hello. Epi, koulye a yon moun, si ou ta, ki pa janm nan pwograme anvan, sa ki ta ka diferan tan sa a? Yeah. ODYANS: Li pa yo ap sispann enprime "alo nan lemonn." DAVID J. Malan: Li pral to-- regrèt? ODYANS: Li pa pral sispann enprime li? DAVID J. Malan: Li pa pral sispann enprime "alo mond." Se konsa, pa yon lide move. Lòt ide? Yeah. ODYANS: Mesaj erè? DAVID J. Malan: Erè mesaj, OK, te kapab. Ki lòt bagay? ODYANS: Li ta ka enprime nan bracket ak virgules a kòm byen? DAVID J. Malan: Ta ka enprime nan bracket ak virgules a tou. Se konsa, petèt ki antislach Lè sa a, se kèk kalite terminous sa a, se enpòtan. Nenpòt lòt panse? Se konsa, tout bon lide. Ak an reyalite, li la pral yo dwe genyen yon mesaj erè. Sa a pwobableman gen plis chans yo dwe repons lan an jeneral pou semèn kap vini yo pandan n ap aprann nan kòd isit la. Men, pou kounye sonje ke òdinatè sèlman sa ou di yo fè. Anpil tankou pistach la ridikil bè ak egzanp jele. Òdinatè moun nou te sèlman sipoze fè sa ou te di yo fè. Se konsa, nan ka sa a, si ou pa di òdinatè a pou avanse pou pi ki kurseur kliyote la liy kap vini an, li pa pral fè li. Se konsa, lè m 'kouri pwogram sa a kounye a, remake diferans-la. Sanble yon ensèk. Se yon ensèk ayestetik, petèt. Men, sa ki se diferan sou sa a pwodiksyon kont youn nan dènye evidamman? Yeah. ODYANS: Li pa t 'fè yon liy nouvo. DAVID J. Malan: Li pa t 'fè yon liy nouvo. Koulye a, moun nan nou ki gen petèt te fè paj wèb anvan, ou ta ka konnen nan la Tag BR oswa tag nan paragraf, trè menm jan nan Lespri Bondye. Yon navigatè entènèt pral inyore ou jiskaske ou di li egzakteman sa yo dwe fè. Menm jan tou, se yon lang tankou C sèlman pral fè sa ou di li fè. Se konsa, rezon ki fè tout nan egzanp sa yo, konsa byen lwen yo, yo gen kalite dekontrakte te gen antislach sa a nan la, sa a, se vle di la pa kote ou eksprime tèt ou kòm yon karaktè nouvo liy, se konsa pale. Epi ou ka apresye kalite, petèt, ke sa a ta gade kalite estipid si pa gen anyen lòt bagay. Si mwen te vle yon liy nouvo, jis frape Antre ak Lè sa a kalite nan butchering kòd la tankou sa pa ta dwe reyèlman fwote ou chemen dwat la. E menm si ou pa fè sa reyèlman sousye nan pwen sa a, ou pral reyalize ke sa a se pa yon patikilyèman bon kap moso nan kòd. Se konsa, sa mond lan deside zan de sa se ke lè ou vle mete nan cursor sou yon liy nouvo klèman, ou dwe di klèman nouvo liy, antislach n. Apre sa, nan kèk lòt senbòl tankou sa. Men, pou kounye a nou ap jis konsantre sou antislach n. Koulye a, kite a fè pwogram nan yon ti kras plis enteresan. Mwen pral ale pi devan epi tan sa a louvri moute yon dosye nouvo. Mwen pral pou konsève pou sa a kòm alo-1.c. Epi jis pou anvwaye, mwen pral ale mete l 'nan katab Dropbox mwen. Kòm ou pral wè nan CS50 a dokiman pou aparèy la, pita semèn sa a pou Pwoblèm Mete 1, nou pral ankouraje ou sèvi ak Dropbox oswa kèk sèvis ekivalan, paske lè sa a tout nan kòd la ou yo pral apiye moute otomatikman. Se konsa, Se poutèt sa mwen te ale nan sa a folder isit la. Epi, koulye a, mwen pral ekri yon yon ti kras diferan pwogram. Mete, estanda Mwen / O.h, Int anile prensipal. Lè sa a, nan isit la printf, alo mond, ki se ekzakteman menm bagay la tankou anvan. Men koulye a, mwen vle enprime yon bagay sa a, se yon ti kras diferan. Mwen vle enprime soti, di, "Hello, David." Tout dwa, se konsa evidamman, li ta dwe èspere ke ka a ke si mwen compile pwogram sa a, relance li, li a pral di "hello, David." Men, sa ki si mwen vle prezante sa a sòt de varyab, nosyon de yon veso ki k ap pase nan magazen D-yon-v-m-d epi yo pa difisil Kòd li nan pwogram mwen an. Oke sa ki si mwen kòmanse fè yon bagay tankou sa a? Fisèl la, se konsa sa a se yon varyab. Si ou vle yon fisèl, a.k.a. yon mo oswa yon fraz. Yon sekans nan karaktè se sa ki nou nan pwogram rele yon fisèl. Nou jis ap ale nan generic apèl li s, paske li nan yon non bèl senp. Men, mwen ta ka rele li anyen. Mwen pral di egal fisèl la quote unquote, "David," virgules. Epi, koulye a mwen vle insert D-yon-v-m-d nan sa ki mwen se enprime. Epi anvan nou te wè yon kol sou ekran an nan kèk sentaks espesyal ki pèmèt nou ranplasan nan yon valè. Ki sa ki te espesyal nan senbòl yon glisad kèk de sa? Se konsa, pousan. Nan moman sa a li te pousan d pou yon nimewo pou desimal. Ki pa vrèman sanble ki enpòtan isit la. Vire soti gen nan yon lòt senbòl pousan, ki se s pousan, ki vle di pou yon kontneur pou yon fisèl. Se konsa, kounye a, anpil tou senpleman, mwen pral ale fè hello-1, paske sa a ranpli yo rele alo-1.c, ak frape antre. Apre sa, mwen vise yo. Ki sa ki nan ale sou? Oke, isit la nan kote nou gen pou kòmanse apresye ke nou ap nan lòd sa a liy anviwònman, sa a tèks sèlman anviwònman. Gen nan pa gen klike sou ikon tankou dosye kounye a. Ak panse tounen yon ti moman de sa. Nan ki folder te fè m 'di Mwen te ekonomize Kòd mwen an? Se konsa, folder nan Dropbox. Te kapab yo te rele anyen. Men, li k ap pase yo dwe rele Dropbox. Se konsa, mwen yon jan kanmenm bezwen double klike sou ki Dropbox folder yo nan lòd jwenn nan li epi pou yo jwenn nan mwen an Kòd rele alo-1.c. An reyalite, kite m 'ale pi devan epi minimize chans pou fenèt sa a sèlman pou moman yon. Jis tankou Windows ak Mac OS, gen dosye nan Linux. Gen dosye nan aparèy la CS50. Se jis kounye a nou ap limite tèt nou nan sa a anviwònman tèks. Men, si mwen Double Sur sou Dropbox, remake gen se dosye a ke mwen vle konpile. Men, mwen bezwen sa a nwa ak blan fenèt tèminal, se konsa pale. Men, mwen bezwen, Se poutèt sa, pou avanse pou pi nan ki folder oswa anyè. Se konsa, yon ti kras Esoteric, men ou pral jwenn itilize sa a tou. Nan mond lan nan Linux, ki ankò se opere nan sistèm nou ap kouri andedan nan CS50 a Aparèy, gen nan yon lòd yo rele CD. Ki vle di mwen kapab fè CD, espas, Dropbox. CD, chanjman anyè. Dwa. Retounen nan jou a lè moun yo te envante òdinatè ak opere sistèm tankou sa a, yo te vle tape frap yo gen mwens posib. Se konsa, fason ki pi fasil yo di chanjman anyè te CD. Se konsa, si mwen frape CD, espas Dropbox, remake sa ki te chanje isit la. Andedan nan parantèz aparèy la se kalite nan humoring m 'ak raple m 'kote m' prale. Se konsa, folder nan louvri se Dropbox. Si m 'koulye a tape ls pou lis, ankò somèr, paske moun pa t 'vle tape tounen nan jou l-m-s-t la. Se konsa, yo olye pou te fè li LS. Antre nan. Remake mwen wè de bagay sa yo, alo-1.c, ak Lè sa a bagay sa a skre, sous 1m. Se jis fason mwen nan li di kòd sous pou semèn 1 Lendi. Sa a se yon katab mwen telechaje soti nan Sit entènèt CS50 nan ke mwen te fè pi bonè jodi a ak jis mete l 'nan a aparèy an davans. Men, pou kounye bagay la sèlman nou pran swen sou ap fè pwogram sa a. Se konsa, lè mwen tape fè hello-1, Antre. Modi li. Yon bagay ale mal. Se konsa, kite a toumante sa a apa. Ak malerezman sa a se kote bagay sa yo jwenn yon ti kras estrès nan premye, omwen si ou te pa janm pwograme anvan. Bondye mwen. Mwen te ekri yon pwogram de liy ak Mwen gen kat liy nan erè. Se konsa, sa k ap pase sou isit la. Premye ak premye toujou woulo liv tounen leve, li jwenn premye mesaj la erè, paske souvan konpilateur jis jwenn konfonn pa sa ki ou menm ak m 'fè. Konpilateur yo trè bèbè. Yo pral sèlman fè sa ou di yo fè. Men, si ou konfonn yo, yo ap jis ale nan kalite voye jete leve men yo e petèt voye jete plis mesaj erè pase yo aktyèlman ki enpòtan. Se konsa, kite pou yo gade nan premye an. Super skre an premye. Men, avi, isit la nan non an nan la dosye nan ki mwen vise moute aparamman. Colon 5, kolon 5 jis vle di sou liy 5 nan senkyèm karaktè la. Se konsa, kolòn senkyèm nan karaktè, si ou vle, erè. Sèvi ak nan fisèl idantifyan sekrè. Èske ou te vle di estanda n? Non, mwen vle di ke fisèl. Lè sa a, li nan kalite kopye ak kole sa m 'tape nan reyèlman trase m' atansyon a kote mwen vise yo. Se konsa, pou kèk rezon ki fè C, oswa omwen du a pa konprann pawòl fisèl la. Epi sa a, paske nou te fè l 'kanpe. Se konsa, fisèl pa egziste nan C. Ki CS50 fè sa, pou premye semèn yo kèk sèlman nan klas la, se nou bay kèk fòmasyon wou, se konsa pale. Epi nou mete sa yo wou fòmasyon andedan nan yon dosye espesyal ki rele CS50.h. Se konsa, sa a se dezyèm lan nan de dosye non ki aparamman fini nan dot h. Se pou nou remonte. Printf se yon deklarasyon oswa fonksyon ki aparamman simagri yon bagay nan ekran an. Men, ou pa t 'wè m' aplike printf, dwat. Ane yon moun de sa aplike printf. Nan ki dosye ou ta paryaj li oswa li te mete aplikasyon an pou printf a, kòd a pou printf? Nan yon dosye rele estanda Mwen / O.h. Anfèt, li la pwobableman nan de dosye, estanda Mwen / O.h, ki vle di pou header ranpli, ak estanda Mwen / O.c, ki vle di pou C kòd sous. Se konsa, li oswa li te kèk ane de sa plopped Kòd la yo ke yo te ekri nan ki dosye se konsa ke moun tankou nou ane pita ka gen ladan li, se konsa pale, nan pwogram pwòp nou yo. Ak tout bon, se sa ki siy nan liv ki te swiv pa pawòl Bondye a gen ladan fè. Li sanble sou kondwi a lokal difisil, jwenn dosye a rele estanda Mwen / O.h, ak Lè sa a efektivman kopi ak kole li andedan nan dosye pwòp mwen. Se konsa, kounye pwogram m 'konnen ki jan yo ekri ak lèt ​​detache nan ekran an. Se konsa, pa ki lojik, kote se fisèl defini? ODYANS: CS50.h. DAVID J. Malan: CS50.h. Ak tout bon, se sa ki nou, anplwaye a debaz yo, te fè. Nou te envante yon kalite done kèk, se konsa pale, tankou yon fisèl, nan adisyon a sa ou jwenn pou gratis, tankou yon Int. Epitou, n ap wè lòt moun tankou yon Char pou yon karaktè ak yon pi plis kèk. Anndan nan CS50.h aparamman se omwen kèk mansyone nan fisèl. Se konsa, kounye a kite m 'ale pi devan ak relance fè alo-1. Mwen pral rale nan ankò, li travèse dwèt mwen. Koulye a, pa gen te fè yon sèl chanje Mwen fiks pifò bagay sa yo. Men, modi li. Plis pousantaj pase done agiman. Ki sa mwen fè ki mal lè sa a? Se konsa, li toujou trè skre. Men, erè sa a se sou liy 7 ak karaktè 21. Se konsa, kite a ale gade moute isit la. Li se yon ti kras sibtil. Men, si ou panse sou sa lide yo fondamantal isit la yo se, petèt nou ka toumante sa a apa. Se konsa, printf se non an nan fonksyon an. Parantèz, konsa byen lwen, se jis tankou sa nou mete otou bagay la nou ap pase kòm entrain nan yon fonksyon. Tout dwa, jis yon abitrè konvansyon imen. Sèvi ak parantèz. Anndan nan tout sa yo parantèz nou ve yo te mete quotes doub, ak Lè sa a yon fisèl tankou "mond hello." Men, nan ke egzanp pi bonè trè yon ti tan te fè nou gade nan ak grafonyen moun. Epi nou te gen pousan d a, ki lòt bagay te andedan nan tout sa yo parantèz ke mwen rele vèbalman? Yeah. ODYANS: Se konsa, li ki sa ou ap pran [Fèbl] soti nan [fèbl] sa ki sa yo [fèbl]? DAVID J. Malan: Egzakteman. Se konsa, nou te gen pousan d la. Men, Lè sa a, nou te gen fèmen quote, vigil, vann san preskripsyon. Dwa. Nou espesifye ki sa nou vle fè kòm kontneur la. Se konsa, sa, mwen pral fè isit la se vigil, ki sa ou vle m 'mete? ODYANS: S. DAVID J. Malan: S, paske nan nan ka sa a se non an nan veso a. Li nan non an nan ki bòl an vè. Lè nou konsidere ke anvan li te vann san preskripsyon nan ki senp egzanp grafouyen nou te gade. Se konsa, kounye li te gen fè de chanjman, kite m 'rale nan epi eseye yon fwa plis konpile pwogram sa a. Koulye a, mwen wè ke liy skre. Men, sa a aktyèlman an non nan du a. Sonnen se non an nan du a. Fè se jis ekonomize m ' maltèt la nan tout tan tout tan sezisman ki lòd lontan fou soti. Se konsa, kounye a si mwen dot koupe alo-1, Mwen ta dwe al gade "hello, David." Joli underwhelming, menm si, dwa? Nou te ka fè sa a yon anpil plis tou senpleman san yo pa ap pale de varyab ak CS50.h ak nan tout sa. Se konsa, kite la fè l 'yon ti kras plis enteresan. Anplis de sa nan CS50.h, gen bagay sa yo tankou fisèl te deklare, bibliyotèk la CS50 tou te gen yon fonksyon kèk. Se konsa, jis tankou ane de sa, yon moun te ekri printf epi mete l nan estanda Mwen / O.h ak kèk lòt dosye. Nou menm, anplwaye a CS50, te ekri yon fonksyon rele GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, epi nou mete moun andedan yon dosye rele CS50.h ak CS50.c. Epi nou mete yo andedan nan aparèy la CS50. Ak moun ki kapab tou download yo sou entènèt si yo vle mete yo sou yo òdinatè pwòp tou. Sa vle di ke nou te kreye fonksyon ki jwenn enfòmasyon nan men gwoup itilizatè a. Mwen pa konnen sa tout nan done sa yo kalite yo se. GetInt se kalite senp, tankou jwenn yon nonb antye relatif yon jan kanmenm soti nan itilizatè a. Epi GetString se pwobableman tankou jwenn yon mo oswa yon fraz soti nan itilizatè a. Se konsa, kite la konsantre sou sa. Apre sa, mwen pral ale tounen nan la aparèy ak mwen pral ale pi devan epi sove sa a ranpli kòm, kite a rele li alo-2.c kòm dezyèm vèsyon mwen. Li kite yo fè yon koup la chanjman. Fwa sa a, olye pou yo difisil kodaj David, ki fè yon èkstrèmeman ki konsistan men pwogram underwhelming, E si mwen olye fè GetString? Koulye a, remake GetString gen yon parantèz louvri, fèmen parantèz, paske li pa bezwen nenpòt opinyon. Li nan jis ale nan ale jwenn yon fisèl soti nan itilizatè a. Epi, koulye a yon mo sou lòt sentaks. Virgules jis fini yon liy nan kòd. Ou pa bezwen yo toupatou. Men, ki jis vle di mwen se fè ak liy sa a nan kòd. Kite m 'deplase sou yon lòt deklarasyon oubyen fonksyon. Fisèl deklare yon varyab. Fisèl se tankou li di ban m 'yon bòl, tanpri. Ak kite m 'mete yon fisèl nan li. Epi, koulye a siyen an egal-ego. Ki sa ki se siy ki egal esansyèlman ekivalan a? ODYANS: Bay. DAVID J. Malan: Yeah, voye yon ti valè. Se konsa, si Mwen, pou egzanp, rele sa a GetString fonksyon, epi nou pral wè nan yon ti moman sa a, se ale nan fè itilizatè a pou yon fisèl. Sa a se tankou kite m 'Lè sa a, ekri D-yon-v-m-d sou yon moso papye. Ak lè m 'di fisèl s egal GetString, egal pa reyèlman vle di egal nan C pwogramasyon. Sa vle di bay de dwat la bò nan bò men gòch men yo. Se konsa, mwen te vinn yon fisèl. Ak vle di siy ki egal mete l ' nan depo a veso rele s. Ak Lè sa a, pase sa a yo ale nan printf aktyèlman fè bagay li yo. Se konsa, rezilta nan fen Lè sa a, ki pral yo gade yon ti kras diferan. Se pou nou fè hello-2. Swa karaktè te kapab travay. W ap swiv ansanm. Fè hello-2 te travay. Dot koupe alo-2, Antre. Mwen sanble yo gen yon enfini riban oswa yon bagay. Pa gen anyen k ap pase. Poukisa? ODYANS: Li nan fè yon riban enfini. DAVID J. Malan: Li se yon riban enfini. Li nan kalite tann pou m 'nan aktyèlman bay li ak kèk opinyon. Se konsa, kite m 'ale pi devan epi tape ak David, ak frape antre. Epi, koulye a li di "hello, David." Si mwen kouri l 'ankò. Se pou yo tape nan Rob, "hello, Rob." Koulye a, sa a se pi move a koòdone itilizatè tout tan. Itilizatè a nan aparamman sipoze konnen ki sa yo fè. Men, pa gen pwoblèm. Lè l sèvi avèk sa yo menm bilding blòk jis tankou nan grafouyen, nou ka rezoud pwoblèm sa ak di yon bagay tankou non ou, tanpri, kolon, espas, fèmen quote, fèmen parantèz, virgules. Se konsa, yon anpil nan ankò stupidity ak sentaks la. Men, remake Mwen te jis te ajoute yon moso devinèt pi wo a yon sèl sa a ak pi wo a yon sèl sa a. Se konsa, kounye a si mwen relance sa a, alo-2, Antre. Tann yon minit. Ki sa ki nan mal? Li pa nan konpòte nenpòt ki lòt jan. Yeah. ODYANS: Ou pa t 'kouri fè ankò. DAVID J. Malan: mwen pa t ' kouri fè ankò, dwat. Se konsa, mwen te chanje kòd sous mwen. Men, ankò, gen nan ki koule. Sous Kòd atravè du a bay ou Haitian Kòd objè, oswa 0s ak 1S. Se konsa, mwen bezwen aktyèlman relance fè alo-2 Antre nan. OK, yon bagay sanble yo te ki te pase. Dot koupe alo-2. Non ou tanpri. Ak yo dwe klè kounye a, poukisa se kurseur a sou liy lan menm? Egzakteman. Mwen pa t 'mete antislach a n moute isit la nan kòd m 'yo. Se konsa, koulye a, mwen ka ekri yon bagay tankou Daven, Antre. Mwen ka kouri l 'ankò ak kalite yon bagay tankou Gabe, Antre, e nou jwenn yon pwogram diferan ankò e ankò e ankò. Koulye a, finalman nou ap ale nan bezwen yo sèvi ak yon kèk kapasite diferan. Nou bezwen entwodui finalman kèk kondisyon fè bagay sa yo kondisyon. Petèt pasan pou nou ka fè bagay sa yo ankò epi ankò. Petèt li ta dwe nice si nou te kapab aplike pwòp fonksyon nou an, tankou nou te kapab aplike pwòp nou printf oswa pwòp vèsyon nou an GetString ak GetFlow, paske finalman menm lè l sèvi avèk liy sa a anviwònman lòd nou ka fè menm ki pi an vizyèlman enteresan nan bagay sa yo. Vreman vre nan konklizyon kite m 'fè sa a. Mwen pral ale pi devan epi fèmen fenèt sa yo ak louvri icon sa a isit la, ki se jis yon pi gwo vèsyon an ki embedded tèminal fenèt. Se konsa, Jdi gen pa sèlman plas la pou Kòd m 'yo, men tou, yon bati nan fenèt tèminal, nan fenèt nwa ak blan ki kote mwen ka kouri kòmande. Mwen jis rive yo louvri yon vèsyon pi gwo nan sa a. Epi, koulye a, mwen pral ale nan folder nan ki Mwen te deja mete nan davans sou sit entènèt kou a. Men, mwen pral ale pi devan epi louvri yon dosye rele thadgavin.c, ki te ekri pa yon lòt moun. Men, si nou gade nan sa a, sa a se pa ki kalite Kòd nou pral ekri depi objektif la nan Kòd sa a te ekri bèl la kap Kòd ke li oswa li te kapab, endepandaman de si wi ou non yon lòt moun yo te kapab tout tan tout tan konprann Kòd sa a. Vreman vre, chak ane gen nan sa ki nan rele yon C konkou obfuscated, ki se pou jik reyèl ki ekri kòd ki pa gen yon lòt ka li, men sa fè yon bagay swa vrèman senp oswa reyèlman etonan. Apre sa, nou te panse nou ta konkli ak gade sa a nan yon bagay sa a, se trè etonan ou ta ka gen pou wè yon fwa anvan. Men, nou pral fini sou sa a nòt, dot koupe, thadgavin. Sa a Lè sa a, se sa ki ap tann. Sa a li pou CS50. Nou pral wè ou nan Mèkredi. [Jwe mizik]