DAVID J. Malan: Pra, kjo është CS50. Dhe kjo ishte e Colton Ogden CS50-së, për më shumë se kush është muzikë që ju mund të shkarko në soundcloud.com/cs50. Pra, sot ne fokus të gjithë më shumë në artin e programimit. Dhe ne kemi marrë ku kemi lënë off javën e kaluar, duke u fokusuar në Scratch, e cila ishte kjo programimit Gjuha grafike. Dhe të marrin gjërat në një nivel më të ulët, duke përdorur një programim më tradicionale Gjuha njohur si C. Por, gjatë rrugës, e kuptuar se të njëjtat ide ne biseduar të premten e kaluar në lidhje me do të përsëritet jo vetëm në këtë gjuha C, por në më të çdo tjetër që ne shikojmë në këtë semestër. Pra, ne e quajti këtë gjë këtu çfarë për herë të fundit? Kjo është përfaqësues i një deklaratë. Pra, ne e quajti këtë një deklaratë. Dhe kjo e bën diçka. Është një udhëzim që një kompjuter ose Scratch mund të ekzekutuar. Dhe tani e tutje, le të fillojë duke e quajtur diçka si kjo një funksion, për arsye që ne së shpejti do të shohim. Ndërkohë, ne pamë gjëra të tilla si kjo. Dhe këto janë në përgjithësi i njohur si atë të ndërtuar? Audienca: loop. DAVID J. Malan: Pra një lak. Pra, shumë i thjeshtë. Është fjalë për fjalë bën atë që thotë. Dhe në Scratch, në qoftë se ju doni të të mbushur më shumë copa mister në atje, pjesë do të rritet për të përshtaten atë. Dhe ne do të shohim në C se ne mund të bëjë të njëjtën gjë. Një tjetër lloj i lak, edhe pse, në Scratch mund të jetë përgjithmonë, apo ka ndonjë numër e qasjeve të tjera. Por, le të marrin një shumë vështrim generalist, me një fytyrë të që ka gjasa mjaft të njohur, në sythe në përgjithësi. Mark Zuckerberg: Një gjë që kompjuterat janë me të vërtetë mirë në është përsëritur komandat. Si një person, ju do të merrni me të vërtetë i mërzitur në qoftë se ju kishte për të bërë të njëjtën gjë shumë herë në një rresht. Por një kompjuter mund të bëjë të njëjtën gjë miliona apo edhe miliarda herë, dhe nuk mërzitem, dhe të jenë në gjendje për të kryer që me të vërtetë mirë. Kështu për shembull, në qoftë se unë donte të uroj të gjithë në Facebook një ditëlindjen lumtur duke dërguar atyre një e-mail, ajo mund të marrë më shumë se një shekull që në fakt të shkruar nga të gjitha ato email tek të gjithë. Por me vetëm disa rreshta të kodit, unë mund të ketë një sistem të dërgoni një email për të gjithë në Facebook të cilët dëshirojnë ata të një ditëlindje të lumtur. Pra, kjo është ajo sythe janë dhe pse ata janë të vlefshme dhe diçka se kompjuterat mund të bëjë shumë mirë. DAVID J. Malan: Pra, nëse ju keni qenë marrësi e disa prej CS50-së dhe Hapësirë ​​Dropbox-së kohët e fundit, kjo është në fakt pikërisht ajo që ne të bëjë, duke përdorur kodin mjaft si kjo. Ne thelb kanë një i madh spreadsheet në të cilat folks kanë qenë inputting tyre emrat dhe adresat e-mail. Dhe ne shkroi një grimë të vogël e kodit që mund të iterate mbi ato adresat dhe nxjerr nga goja adresat unike në Rasti dikush paraqitur shumë herë. Dhe pas kësaj, ne kemi dërguar një automatizuar email nga bot CS50-së, duke përfshirë kodin kupon. Tani ne gjithashtu shikuar kjo ndërtojnë për herë të fundit. Dhe kjo është një të veçantë shembull i çfarë? Pra, vërtet, një shprehje Boolean. Dhe formë është menduar për të kapur se si. Të gjitha pyetjet e tilla të formuar e vërtetë apo e rreme në Scratch do të duket një diçka të vogël si kjo. Dhe ne e quajmë këtë një shprehje Boolean. Kjo është me të vërtetë e vërtetë apo e rreme, po ose jo. Kjo është një mënyrë për të iu përgjigjur një pyetje. Dhe Ndërkohë ju mund të përdorni këto Boolean Shprehjet brenda e ndërton si këto, të cilat e Sigurisht janë kushte ose degë, proverbiale forks në rrugë. Dhe ata mund të shikojnë jo vetëm si kjo, por ato gjithashtu mund të kanë elses të lidhur me to. Dhe në të vërtetë ju mund të ketë një mënyrë të tre pirun në rrugë ose një pirun katër mënyrë në rrugë, thjesht duke Shumimi këto gjëra, si ju do të shihni në Scratch në qoftë se ju nuk e keni tashmë. Dhe si ju mund të bëni në C si. Le të marrin një tjetër përgjithësuara shikoni në një alumnist, si dhe, të cilët mund të paraqesë një qasje të ndryshme për këto gjëra quajtur kushtet. BILL GATES: Njerëzit bëjnë Vendimet çdo ditë. Për shembull, para se të shkoni jashtë jush lloj i kanë një nëse deklaratë që thotë, nëse bie shi atëherë unë nevojë për të marrë xhaketën time. Dhe kompjuterët janë të mahnitshme një herë ju vendosin ato llojet e deklaratave, që ata të mund të besueshme të ekzekutuar ato gjëra me shpejtësi të pabesueshme. Dhe kështu që një program kompjuterik me të vërtetë është pak e matematikë dhe disa nëse deklaratat ku është vendimi merr bërë. DAVID J. Malan: Pra si ju mund ta dini, kjo ishte folks si Bill Gates, Paul Allen, dhe të tjerët që nisi me të vërtetë off ashtu-quajtur kompjuter personal Revolucioni disa vjet më parë. Mendova, para se të pikiatë në disa administrivia, ne do të bëjnë një përrallë nga Albuquerque, New Mexico Muzeu i Historisë Natyrore dhe shkenca ku disa nga Bill Gates ' dhe tregimet më të hershme Paul Allen janë shpalosur se si kemi tani PC sotme dhe Macs dhe më shumë. Për këtë, edhe pse, ne kemi nevojë për dy vullnetarë që kanë zëra shumë të mirë transmetim për të lexuar një skenar me zë të lartë. Në rregull, si në lidhje me atje. Eja lart. Dhe si për para këtu. Eja poshtë. Merrni vendet tuaja këtu. Si ju djema të dalë, një çift i njoftimeve administrative. sectioning, procesi i e zgjedhjes së një seksion, do të fillojë këtë E mërkura deri të premten. Më shumë në se kjo vjen Të mërkurën në leksion. Seksione Super, ndërkohë, janë diçka që ne ofrojmë javën e ardhshme ku e tërë klasa ftohet për të marrë pjesë në shkallë mjaft të madhe seksione, një më shumë i qetë, një më pak të rehatshme. Dhe ne do të njoftojë të dhënat e e që, si dhe, më vonë këtë javë. Seksione Ndërkohë, veten e tyre, do të fillojë në javën e tretë të kursit, indeksi zero, që do të thotë ata janë dy javë jashtë. Pra, mos u shqetësoni. Ju nuk kanë humbur ende diçka në këto linja. Ndërkohë në ndërkohë, në qoftë se ju keni ndonjë pyetje administrativisht, email veten dhe Devon dhe Gabe dhe Rob në këtë adresë këtu. Së fundi, problemi vendosur 0 është, natyrisht, jashtë. Ju mund të keni vënë re atë në faqen e internetit të kursit-së. Ajo duhet të japë me të gjitha përgjigjet e pyetjeve ju mund të keni gjatë rrugës për duke u nisur me grupin e problemit. Por në qoftë se ju të gjeni veten në nevojë për një dorë ndihmë, me të gjitha mjetet të marrë pjesë orarit të punës, Hënë, e martë, e mërkurë, e enjte e kësaj jave në mbrëmje në katër salla ngrënie. Shih se URL atje për të dhënat e ku orarit të punës do të jetë. Tani Le të takohen tonë dy të ftuar këtu sot. Si e keni emrin? JAY PAUL: Jay Paul. DAVID J. Malan: Jay Pali, nice to meet you. Hikari: Hikari. DAVID J. Malan: Hikari? Hikari: Hikari. DAVID J. Malan: Hikari. Gëzohem që u njohëm si. Jay Paul dhe Hikari kanë në para prej tyre në këto muzikë qëndron dy Scripts që unë të shtypura jashtë këtë mëngjes nga Meksika e Re Muzeu i Historisë Natyrore dhe Shkencës. Dhe ajo që kam menduar Unë do të bëj më lart është shoqëruar recitimin tuaj e shkrimit dhe këtë histori me disa imazhe vizuale, pa surpriza. Dhe ajo që unë kam bërë që më parë është prehighlight në shkrimin tuaj çfarë ju duhet të lexoni, dhe çfarë ju duhet të lexoni. Dhe ne do të në thelb paragrafët vetëm alternative. Pra, kjo është shumë si ju mund të kanë bërë në klasë anglisht. Kjo është me të vërtetë të detyrojë audiencën të besojnë në përrallë tuaj këtu. Do të kemi? Pra historia këtu është, ne kemi një THEMELORE, dhe ajo fillon në Kembrixh. JAY PAUL: Ishte dimër, 1974, në Cambridge, Massachusetts ku dimrat mund të jetë ftohtë. Një mjekër, me flokë të gjatë braktisjes së shkollës kolegj me emrin Paul Allen u drudging gjithë Harvard Sheshi, zhytur në mendimet e tij. Preokupimi i tij kryesor në ato ditë ishte se si për të marrë shoku i tij, Bill Gates, për të lënë shkollën dhe të shkojnë në biznes me të. Hikari: dy kishte shkuar tashmë përmes një numri të sipërmarrjeve të biznesit së bashku, duke filluar në Lakeside Shkolla në Seattle ku ata janë paguar në kohë të lirë kompjuterike për provuar një kompjuter PPD-10 në një kohë lokale ndarjen e kompanisë. Plani më i fundit kishte qenë për të lënë shkollë dhe të formojnë një kompani software. Allen kishte lënë Uashingtonin Universiteti Shtetëror. Por në minutën e fundit, Gates vendosur që të rrinë me Harvard. JAY PAUL: Atë ditë, duke kaluar në Harvard Sheshi, Allen dalloi janar, 1975 Çështja e elektronikës popullore me titull ndalimin tokë, Parë Botërore Minicomputer Kit për të rivale Modele afariste. Nën titull ishte një foto e një kuti të vogël stolisur me drita dhe ndizet. Ajo u quajt MITS Altair 8800. Dhe Allen e dinte se kjo ishte ajo që ai kishte qenë në kërkim për. Hikari: Ditët e diskutimit ndjekur. Allen dhe Gates kuptuar Rëndësia e Altair. Ata kishin biseduar shpesh për mikroprocesorët dhe ishin duke pritur për të parë se çfarë do të bëhet me ta. Tani ishte një kit minicomputer në mbuluar e Popular Electronics. Ajo me sa duket nuk ka pasur software ende. Ata imagjinuar një komb të programuesit e zbrisnin në MITS. Dhe në mënyrë që ata të quajtur Ed Roberts, kreu i kompanisë, duke pretenduar që të ketë një version të Gjuha e programimit BASIC pothuajse gati për Altair. Ata nuk e bëri. Dhe Roberts duhet të ketë njohur ata nuk kanë. Ai ishte duke u 10 telefonata në ditë nga njerëz të cilët kishin një THEMELORE pothuajse gati. Dhe përgjigja e tij të aksioneve ishte, "Personi i parë që tregon me një pune BAZË merr kontratën. " JAY PAUL: Gates dhe Allen kurrë nuk kishte parë një Altair. Ata kurrë nuk e kishte parë edhe Intel 8080 mikroprocesor në zemër të Altair. Por disa vite më parë Allen kishte shkruar një program në një kompjuter mainframe që emulated funksionimi i një Intel mëparshme mikroprocesor. Dhe këtë herë ata do të bëjë të njëjtën gjë. Hikari: Me një Intel 8080 manual në anën e tij, Allen u ul në një Harvard PDP-10 kompjuter dhe shkroi emulator dhe software mjetet e nevojshme për të bërë programimin. Ndërkohë Gates u ndal duke shkuar në klasa dhe të përkushtuar veten për dizajnimin themelore, duke përdorur çdo mashtrim ai e dinte për të marrë madhësinë poshtë nën 4 KB. JAY PAUL: Out në Albuquerque, Ed Roberts mori një thirrje nga Gates kërkoni detaje për mënyrën se si Altair trajtohen rutinat specifike. Askush nuk ka kërkuar kurrë që më parë. Dhe Roberts filloi të marrë të interesuar. Hikari: Me zhvillimin mjetet dhe projektimit të gatshëm, Gates dhe Allen shkroi kodi on PDP-10, enlisting një tjetër student i Harvardit, Monte Davidoff, për të shkruar rutinat matematikë. Pas një nate të fundit të programimit, Allen mori në një avion për të ofruar THEMELORE tyre për MITS. Ai kaloi avioni udhëtim jashtë shqetësuese. Dhe përsëri në Kembrixh Gates ishte shqetësuese. Ata kishin testuar e tyre themelore dhe të ajo kishte punuar në emulator. Por, çfarë nëse emulator ishte e gabuar? JAY PAUL: Si aeroplan afrua Albuquerque, Allen kuptuar se tyre THEMELORE, tani përmban mjeshtërisht në një listë të vogël të grushta kasetë letër, do të jetë e kotë pa një të veçantë Programi, i quajtur një hamall, që do të tregojë se si Altair për të lexuar kasetë letër qenien ushqyer në makinë teleshkrues. Ai e mori fletoren e tij dhe shpejt scribbled poshtë një program loader në gjuhën e Kuvendit, pastaj me dorë përkthyer që në 1s dhe 0s Altair do të kuptojnë. Hikari: Allen ishte duke pritur një pastër, pak, kompani të teknologjisë së lartë drejtuar nga burrat në kostume të biznesit. Pra, ai ishte i befasuar kur Roberts u takuan atë në aeroport në kërkim si një fermë dorë. Roberts ishte gjithashtu i habitur. Kur ai ra në Harvard programues në një hotel të shtrenjtë, Allen është dashur të pranojë se ai nuk mund të përballojë në dhomë. JAY Paul: MITS, vetë, ishte vendosur në një qendër të pluhurosur rrip. Brenda në një cluttered Mjedis pune ishte një Altair ngarkuar me 5 kilobytes e kujtesës dhe të lidhur me një kabëll në një makinë teleshkrues. Roberts dhe Shefi Engineer, Bill Yates, ka pritur me shpresë si Allen toggled hamall tij Programi në Altair. Teleshkrues filloi chugging si ajo tërhoqi shirit letër nëpërmjet lexuesit kasetë. Ajo mori ndoshta 15 minuta të ngarkesës programin. Pastaj teleshkrues befas shtypur një memorie të shpejtë, atëherë një të shpejtë gati, dhe Allen filloi shtypja një provë disa komandat. Për habinë e të gjithëve, software punuar. Ka pasur mete, natyrisht. Por gjëja kryesore ishte ai ka punuar. Hikari: Më vonë, në rrugën e tyre për një 3,00 $ drekë në Pancho-së, një grenzë fluturoi në dritaren e rastit kamion dhe stung Allen në krah. Por në atë pikë asgjë mund të prishin disponimin. Altair tani kishte bazike të saj, software e parë tregtare për një shtëpi kompjuter, bërë nga Paul Allen dhe Bill Gates, duke bërë biznes si Microsoft. DAVID J. Malan: Shumë në sajë të dy lexuesit tanë. [Duartrokitje] DAVID J. Malan: Tani ju keni zgjedhjen tuaj, para se të largohet, e një sparkly ose një shkëlqim në dark-- oh, prisni nje sec, wait-- sparkly dhe një shkëlqim në elefantit errët nga vet Cheng Gong CS50-së. Hikari: Aw, ju faleminderit. DAVID J. Malan: All drejtë, thank you so much. [Duartrokitje] DAVID J. Malan: Pra histori e vërtetë. Kjo do të thotë se të gjitha këto Makinat dhe lehtësia me të cilën ne përdorimin e tyre tani dhe për të marrë për të dhënë, me të vërtetë filluar këtu, vetëm disa hapa nga ky teatër aktuale. Dhe tani sot, në qoftë se ju nuk keni qenë, kjo është Maxwell Dworkin, kompjuter ndërtimin e shkencave, gjithashtu rreth qoshe. Dhe në katin e dytë të këtij Ndërtesa ka var tre faqe nga kodi burim origjinal që Bill Gates dhe Paul Allen shkroi. Në fakt, në qoftë se përdorimi ju zoom në ju mund të shohin jo vetëm emrat e tyre në tip origjinal, por edhe nënshkrimet e tyre që ata të stolisur një disa vjet mbrapa, kur ata e fundit vizitoi. Por ajo ishte veçanërisht bindëse në lidhje me këtë është ajo që ata përcaktuara për të bërë ishte për të shkruar një program që do të mundësojë njerëzve të tjerë për të shkruar programet e tyre. Në atë kohë të gjithë ka pasur me kjo makinë Altair bërë nga MITS. Dhe të gjithë ata kishin nevojë ishte një mënyrë për të duke e bërë atë të lehtë për hobbyists dhe njerëz na pëlqen në këtë sallë të vërtetë program se pa kuptuar domosdoshmërisht Kodi Kuvendi, ose makinë Kodi, ose Zoti na ruajt, 0s dhe 1s. Ne programuesit, si ata që janë në këtë dhomë, ne duan të jenë në gjendje të shprehin veten më shumë si pseudo kod edhe në qoftë se kjo është një lajthi pak më shumë picky se kemi biseduar javën e kaluar. Ne nuk duam të shkruani kodin si kjo, cila Paul Allen dhe Bill Gates e bëri. Ne, në vend të kësaj, dua të shkruaj kodin që duket pak më shumë përdorues miqësore. Tani kjo është një gjuhë e njohur si BAZE. Dhe numrat e linjës ka çfarë ju përdorin për të thjesht të numërosh rreshta të kodit se ju jeni me shkrim. Ne as nuk duhet të bëni që këto ditë. Por ju mund të shihni këtu si PRINT "Hello, World" do me të vërtetë me sa duket të shtypura vetëm se. Dhe kështu ajo që Bill dhe Pali bëri ishte fuqizojë njerëzit të shkruani kodin si kjo në vend të kësaj of-- nëse ju merrni një vështrim në shkenca kompjuterike wall-- kodin si kjo. Në fakt, kohët e fundit CS50 kishte një rast të të ulen me Profesor Harry Lewis në departamentin e Shkencave Kompjuterike, i cili në të vërtetë mësohet Bill Gates disa vjet më parë, dhe është duke qëndruar këtu më parë ato tri faqe të fragmente. Le të bëjmë një vështrim. Harry Lewis: Çfarë kemi këtu është një listë e një pjesë të hershme të softuerit shkruar nga Bill Gates dhe Paul Allen, themeluesit e Microsoft. Pra kodi është interesante për dy arsye. Para së gjithash, ajo u bë Produkti i parë i Microsoft, e cila ishte një përkthyes për gjuhë programimi BASIC. Dhe së dyti, kjo ishte një nga përpjekjet parë për të krijuar një përkthyes në mënyrë të zakonshme njerëzit mund të përdorin kompjuterat personale. Pra, Bill Gates ishte një universitare në Harvard. Unë fillova mësim në Harvard në vitin 1974. Kjo është bërë në vitin 1975. Kështu që ishte në fillim të karrierës së tij dhe në fillim të karrierës sime. Unë në fakt mësuar Bill në një kurs rreth kësaj kohe. Paul Allen nuk ishte një Student i Harvardit, por ai kishte qenë një shkollë të lartë shok klase e Bill Gates. Nëse ju vijnë dhe të kërkoni në listë, ju do të në fakt të gjeni një të tretë Emri, Monte Davidoff, i cili ishte shok klase Gates këtu në Harvard. OK, kështu që këtu është një Komenti interesante deri këtu. Ai thotë se "Në 4K mund të fshini rrënja katrore por për sythe duhet ende punë. " OK, kështu që ajo që do të thotë është se nuk ishin dy mënyra për të hartuar këtë program. Njëri ishte për të kandiduar në një version i këtij kompjuteri Altair se vetëm kishte 4k fjalët e kujtesës, 4096 fjalët e kujtesës. Por versioni i madh kishte 8K. Dhe kështu ajo që ky thotë se është që në versionin 4K ju duhet të fshini disa Kodi për ta bërë atë të arsyeshme. Dhe një nga gjërat që do të fshihet do të jetë katror rutinë rrënjë. Por me sa duket për sythe duhet ende punojnë edhe kur ju jeni hartimin poshtë për vetëm versionin 4K të kompjuterit. DAVID J. Malan: Pra, një nga temat, si ne do të shohim në shkenca kompjuterike, është ky nocion i layering dhe abstraksion, dhe me të vërtetë duke qëndruar mbi supet e folks që kanë ardhur para nesh, e jo ndryshe nga disa nga Bill Gates dhe Paul Allen narrative këtu. Dhe çfarë kjo do të thotë është se sot ne mund të marrë për dhënë se gjërat janë në të vërtetë më e lehtë për ne për të shkruar kodin. Në të vërtetë kodi, siç thamë të premten, është i njohur më shumë teknikisht si kod burim. Dhe është ky anglisht si sintaksë kjo është më e duhur dhe të përcaktuara më mirë se diçka si pseudo kod, për e cila nuk ka asnjë përkufizim formal. Dhe sot çfarë ne do të përqëndrohet në është kodi burim që duket si kjo, e cila pa dyshim në shikim të parë duket tërësisht i fshehtë. Dhe sinqerisht, kjo është mënyra më aesthetically komplekse se programi themelor është. E gjithë ky program bën, kujtojnë, është ajo që e themi? Ajo thjesht shtyp "hello botë." Dhe ende shikoni në të gjitha stuff ne kemi nevojë për të përfunduar rreth atë frazë shumë të thjeshtë. Por, para se të gjatë gjithë këto rreshta e më shumë do të kishte kuptim shumë më të mirë për ju. Dhe rrjedha është si vijon. Ajo që ne kemi nevojë në dispozicion është për të marrë kodin, si burim Kodi që ne sapo e pa. Dhe ne kemi nevojë për një program të ri për të drejtuar atë nëpërmjet. Ne kemi nevojë algoritme që mund kthyer kodin burim, si kjo, në kodin objekt, 0s dhe 1s. Me fjalë të tjera, ajo që ne jemi duke shkuar për të mësuar sot është se si për të bërë këtë, shkruani Kodi burim deri të lartë, kalojë atë si input për një të veçantë Programi i njohur si një përpilues, dhe ne jemi duke shkuar për të prodhuar kod objekt. E cila është vetëm një mënyrë e sofistikuar për të duke thënë se ne do të marrim diçka që duket si kjo, të kalojë atë në një program të quajtur një përpilues, prodhimin kodin objekt që duket si kjo. Pra, këto janë fjalë për fjalë modelet e 0s dhe 1s që janë kuptuar nga një Kompjuter Intel këto ditë, se në qoftë se interpretohet nga CPU, trurin brenda nga një kompjuter, fjalë për fjalë do të shtypura nga, mjaft thjesht, "hello botë." Tani nuk ka mënyrë më shumë 0s dhe 1s se ju do të shpresoj se mund të jetë e nevojshme për këtë. Por kjo është për shkak se ne jemi duke ndërtuar në një marrëveshje të mirë të kompleksitetit që ne mund të tani e tutje marrë për të dhënë. Me fjalë të tjera, shumë njerëz të zgjuar na kanë dhënë një shumë të mjeteve të ftohtë dhe software të fuqishme me të cilat ne tani mund të bëjë projektet e vet tonë. Pra, le të ketë filluar. Ndërsa të premten e kaluar, dhe për Problem Set 0 këtë javë, ju do të jetë duke luajtur në një Bota që duket si kjo. Duke filluar nga sot dhe për Problem Set 1 javën e ardhshme, kodin do të shikojmë pak më shumë i fshehtë, por funksionalisht është do të jenë të njëjta. Pra njoftim, i lartë është zeroja, fund është C. Sinqerisht Scratch është shumë më tepër përdorues miqësore dhe të arritshme. Por në qoftë se ju tani krahasoni vizualisht të lartë për të fund, nuk është lloj i një 1-1 korrespondencë mes copa mister dhe gjuha ne jemi gati për të luajtur me të. Në veçanti, thonë, mister blu copë deri të lartë, është me sa duket e barabartë me atë fjalen ose fraza të veçantë në këtë gjuhë quajtur C? Audienca: printf. DAVID J. Malan: printf. Kjo do të thotë shtypje formatuar. Dhe kjo është vetëm një dashuroj mënyrë për të thënë printf në C do të jetë një deklaratë ose një funksion që shtyp diçka në ekran. Çfarë do të shtypura në ekran? Çfarëdo që ju them se për të brenda i citon, brenda e kllapa. Pra, përsëri, pa dyshim, ka shumë gjëra që ju duhet të mbani në mend, kllapa, citate, pikpresje, dhe të gjithë këtë. Por të gjithë e që është lloj e jashtë diskutimit. Takeaway interesante për tani është se blloku të themi në Scratch është shumë e shumë të barabartë me Deklarata printf në C. Ndërkohë, puzzle copë të verdhë deri të lartë, kur flamuri gjelbër klikuar, është ndoshta ekuivalente për çfarë fjalen ketu? Audienca: Main. DAVID J. Malan: Pra kryesore. Ndoshta int, ndoshta pavlefshme. Por lloji kryesor i tingujve si është e rëndësishme, dhe në të vërtetë është. Pra, kur flamuri gjelbër klikuar është, përsëri, copë mister që nis një gjithë programi Scratch. Por ne do të tani të fillojnë duke e quajtur se kryesore, ky funksion i njohur si kryesor. Tani ndërkohë ne do të përgjithësojmë këtë si më poshtë. Ne mund të quajmë të themi një funksion. Dhe kjo mund të duket në mënyrë specifike si kjo. E pra, ajo që për sythe? Në qoftë se ne duam që të filloni konvertimin ose përkthimin më në Scratch për C, kjo gjë këtu me sa duket vetëm thotë "Hello World" përgjithmonë. Pra, nëse ju i shoqëroni këto Scripts me një mace në Scratch, ajo është vetëm duke shkuar për të mbajtur duke thënë në një lloj flluskë kartonave, "Hello World, Hello World, përshëndetje Bota, "ad nauseum, përgjithmonë. Nëse ne duam të bëjmë diçka të ngjashme në C, ajo do të duket i fshehtë pak. Por ne mund të arrijmë të njëjtën rezulton, si ne do të përfundimisht gjetur, me sintaksë si kjo. Unë jam duke shkuar për të përdorur printf përsëri, sepse në fund të ditës Unë dua të shtypura "botë Hello." Dhe unë jam me sa duket duke përdorur një fjalen se nuk është përgjithmonë. Është vend fjala ndërsa. Por vetëm semantike në Anglisht, ndërsa lloji i sugjeron një lloj lak apo ciklit. Pra, që ndodh të jetë fjalen se C përdor. Dhe ndërsa e vërtetë, pse e bën kohë e vërtetë në mënyrë efektive do të thotë përgjithmonë? E pra, ndërkohë që, si ne do të së shpejti vlerësojmë të gjithë më shumë, ka këtë kllapa afër saj ku ju mund të vendosni një shprehje Boolean. Dhe për sa kohë që shprehje është e vërtetë, ky kod, që shënohet në mes të këtyre dy formatimin e teksteve kaçurrel si ne do të thërrasë ato, vetëm do të mbajë drejtimin përsëri dhe përsëri. Pra, e vërtetë është e vërtetë. Kështu, ndërsa mjete të vërteta vetëm të bëjë këtë përgjithmonë. Kjo është pothuajse një budalla ndërtuar për të shprehur veten. Por nuk ka qenë gjithnjë fjalen në C. Nuk ishte duke. Dhe aty ishte një shumë e thjeshtë Shprehje Boolean si e vërtetë. Dhe kështu kjo, ne do të shohim, arrin të njëjtin rezultat. Si tjetër mund të zbatojë një lak? E pra, në Scratch ju mund Kodi vështirë një numër specifik e iterations në lak këtu. Dhe kështu kjo është pikërisht ajo që ne mund të bëni në këtë version të C, ku ne kemi një të ashtu-quajtur për lak. Dhe për lak këtu do për të iterate me zë të dridhur, nga vlera 0 deri në me por me pak se 10. Tani variablave në Scratch. Ju nuk mund të ketë pasur rast për të përdorur këto. Por ajo që është pika, në përgjithësi, e një variable nuk themi javën e kaluar? Çfarë është ajo? Audienca: Pikë. DAVID J. Malan: Të përmendësh? Oh, pikat. OK, mbajtja e pikave, për shembull, në një lojë. Ose më shumë në përgjithësi duke bërë atë me variablin? Çfarë është dobia e tyre? Audienca: Memory. DAVID J. Malan: Po, kështu kujtesës. Është për ruajtjen diçka. Dhe lloj I trashë vizuale përdorur Herën e fundit ishte si ky tas qelqi. Dhe në qoftë se ne të kërkuar për të ruajtur diçka brenda një ndryshore, për shembull tani vlerë të gjashtë për shkak se ka janë gjashtë topa ping pong në këtu. Është vetëm një lloj ruajtjen enë që nën kapuç zbatohet me bit, 0s dhe 1s, megjithatë një kompjuter ndodh për të bërë këtë. Pra në Scratch, në qoftë se ne duan të kenë një ndryshore, ne mund të përdorni një bllok portokalli si kjo. Ne do të thërrasë atë counter në këtë rast të veçantë. I nisur atë në 0. Dhe ajo që unë pastaj të bëjë? Gjithmone, thonë kundër, të cilat nëse ju të luajnë me atë në Scratch, ju do të shihni se e para. Cat ose çfarëdo kostum ju vënë në ai do të të flasë numrin në fjalë. Ndryshimi counter nga 1 është si bën rritjen nga 1. Dhe kështu kjo do të numërimin nga çfarë pastaj? Nga 0 til pafundësi, ose deri në pushimet e para, ose deri sa ju lloj humbasin interes në të shikuar si të lartë ai në fakt mund të llogarisë. Pra, si mund të kemi kthyer këtë në C? Ajo do të duket i fshehtë pak. Por përsëri, në qoftë se ju shikoni në çdo nga këto rreshta individualisht ata lloj formacion përgjithësi. Pra, me sa duket int do të kanë disa domethënie të veçantë në C. Ne do të shohim se përsëri. Si një mënjanë kjo do të thotë numër i plotë. Pra, ai thjesht do të thotë numër. Pra, kjo është lloji i qelqi tas unë dua, e që mund të ruajë numrat, nuk ping pong balls. Dhe unë jam duke shkuar për të përdorur shenjën e barazimit atje për të caktojë atë një vlerë prej 0. Pra, kjo është fare si grup kundër me 0, por në C. Ndërkohë, ndërsa e vërtetë, që ishte ekuivalente, natyrisht, për të përgjithmonë, edhe pse është pak i fshehtë, dhe pastaj brenda formatimin e teksteve kaçurrel. Dhe ju mund të mendoni për këto formatimin e teksteve kaçurrel, të cilat ju mund të shtypni në tastierën tuaj, si të vërtetë duke qenë si lakim në këto blloqe të verdhë lak në Scratch. Ajo përfshin linja të shumta të kodit. Printf po bëhet një pak e frikshme tani, sepse unë të shihni jo vetëm citon në kllapa. Por çfarë tjetër është e re sintaksore në këtë shembull? Ka një qind d. Dhe pastaj backslash n është atje. Ne e shohim se më parë, madje edhe pse unë nuk e përmend atë. Pastaj ka një presje. Dhe pastaj nuk ka një kundër. Por ne do të shohim në vetëm një moment se ky është vetëm një mënyrë standarde për të thënë të shtypura një "Numri dhjetor," quote, mbyll thonjëzat, disa Numri dhjetor. Por unë jam duke shkuar për të ju them me vone ajo që Numri dhjetor është. Pra, fakti se ka një presje në këtë linjë printf duke thënë, do të thotë të shkojnë përpara dhe të shtypura disa Numri dhjetor. Oh, dhe nga mënyra, numri është çdo gjë që vlera e kësaj variable është. Dhe kështu për të bërë këtë më shumë i qartë, ne do të shohim një shembull para se të gjatë që përfshin pikërisht printf në kontekstin e programeve të vërtetë C. Tani vetëm të mbyllë disa e këtyre ndërton. Shprehje Boolean, ju nuk mund të ketë rast për të përdorur këto në programin tuaj por ju mund shumë mirë, veçanërisht në qoftë se duke përdorur kushtet. Dhe kështu këto dy shembuj nga Heq thotë nëse x është më pak se y, ose nese x është më pak se y dhe y është më pak se z, se si mund të kemi të përkthehet se? E pra, në C është vetëm do të duket si ky. Pak fshehta, më shumë kllapa, disa ampersands pazakontë, por rrënjësisht idetë janë aq të thjeshta sa janë në botë copë mister. Ne jemi thjesht duke kontrolluar nëse diçka është më pak se diçka tjetër. Si në lidhje me kushtet? Në pak fjalë në anglisht, ajo që e bën këtë copë e kodit Scratch nuk do të thoni? Audienca: Krahason dy numra. DAVID J. Malan: Krahason dy numra, dhe nëse x është më pak se y ai thotë se sa më shumë. Nëse x është më i madh se y ai thotë se sa më shumë, tjetër nëse x është e barabartë me y ajo thotë sa më shumë. Tani ku ka x dhe y vijnë nga? Kush e di. Kjo copë e Scratch Kodi është jashtë kontekstit. Por ajo që ne duam të bëjmë tani është të përkthyer kjo për vetëm një moment për të parë. Pra, si ju merrni të rehatshme këtë javë në Problem Set 0 duke luajtur në këtë botë në të majtë, e kuptojnë se idetë nuk janë ndryshuar këtë javë ose e ardhshme apo më gjerë. Ne jemi thjesht duke shkuar për të filloni të shkruani gjëra në një mënyrë të ndryshme me tonë tastierë në vend të miut tonë. Kështu nëse x është më pak se y, dhe ka disa kllapa atje, atëherë ka disa formatimin e teksteve kaçurrel përsëri për të lloj encapsulate atë ashtu si copa të verdhë puzzle bëni. Dhe unë jam duke shkuar për të printf x është më pak se y etj. Çfarë është e mirë në lidhje me C, si ju mund të shihni këtu, është që ju nuk e merrni këtë shkatërroj fole, fole, fole që është domosdoshmërisht do të shtyjë kodin tuaj të djathtë. Ju në vend të kësaj mund të keni gjithçka formacion mjeshtërisht pëlqen këtë. Por kjo është vetëm një estetike detaje ne do të shohim një herë para se të gjatë. Të gjithë të drejtë. Kështu që na sjell përsëri në ky kërkim program i fshehtë. Le të vërtetë shkruani disa kodin. Tani se si do ju shkoj për të shkruar kodin? Të gjitha këto vite që ju keni në pronësi një Mac apo PC, desktop apo laptop, ju në të vërtetë keni pasur aftësinë për të filloni të shkruani kodin e programimit. Por ndoshta ju jeni të humbur një lloj i veçantë i programit. Ju me siguri mund të shkruani kodin. Por ju nuk mund domosdoshmërisht, jashtë kutisë, kthyer atë kod burim në kodin objekt, 0s dhe 1s pa atë në kompjuterin tuaj? Audienca: Compiler. DAVID J. Malan: Pra një përpilues, e drejtë. Tani shumica prej jush ndoshta mos vet një përpilues, kurrë nuk e kanë shkarkuar një përpilues. Por ju do të shihni ju mund ta shkarkoni atë si më të çdo pjesë tjetër e programeve. Në botën e Mac OS, ju mund të shkarkoni ose kanë shkarkuar tashmë diçka që quhet Xcode ose GCC apo tingëllimë. Nëse ju vijnë nga Dritaret bota ju mund keni shkarkuar Visual Studio, Visual Basic, mjedise si kjo. Ka dhjetra e hartuesit këto ditë që ju mund të përdorni. Por të shkurtër të tij këtu është se ajo do të jetë një dhimbje dhe, sinqerisht, a teknologjik makth për qindra e njerëzve me të ndryshme konfigurimin e kompjuterit për të gjithë konfiguroni makinat e tyre në të njëjtën mënyrë në mënyrë që ne të gjithë mund të jetë në të njëjtën faqe. Pra, ajo që ne, në vend të kësaj, të bëjë në CS50 është ne ju jap një mjedis standarde, një Mjedis Linux që është do të shikojmë pak diçka si kjo. Ju do të shihni më shumë për këtë në Problem Set 1 specifikim të cilat do të shkojnë në internet këtë natën e premte. Dhe çfarë do të thotë kjo është se ju tani e tutje do të jetë në gjendje të shkarkoni dhe të instaloni një program quajtur CS50 Appliance. Dhe ju do të jeni për të shkarkuar dhe të instaloni një tjetër program të quajtur a hypervisor, e cila është vetëm një mënyrë e sofistikuar për të arritur këtë. Nëse ju vetë një Mac apo PC apo Kompjuter Linux apo një kompjuter Solaris, ose çfarëdo operativ çmendur sistemi ju jeni duke, ju jeni do të shkarkoni një program quajtur hypervisor që është duke shkuar për të drejtuar CS50 Aplikim në kompjuterin tuaj pa marrë parasysh se çfarë sistemi juaj operativ është. Një hypervisor me fjalë të tjera konverton stuff tonë për çfarëdo gjuhe, çfarëdo udhëzimet tuaja kompjuter e kupton. Pra, kjo është një layering. Dhe përsëri, kjo është lloj i tematikë në kompjuter shkenca, ndërtesa në krye të gjërave. Ju mund të keni Windows. Ju mund të keni Mac OS. Por duke filluar javën e ardhshme ju jeni do të keni shkarkuar një pjesë e lirë të software quajtur hypervisor. Ju jeni do të keni shkarkuar një pjesë e software quajtur CS50 Appliance. Kjo do të kandidojë në hypervisor, i cili do të kandidojë në kompjuterin tuaj. Dhe rezultati përfundimtar është që të gjithë ne do të kanë një dritare të thjeshtë si këtë në Mac apo PC që na jep iluzionin e të gjitha drejtimin të njëjtin sistem operativ, pa ndonjë tjetër Ndikimi në kompjuterin tuaj. Dhe ju mund të ekran të plotë ajo dhe në thelb të sillen sikur ju jeni duke një sistem operativ i quajtur Linux, e cila është ajo që CS50 Aparati është i bazuar mbi. Pra, le të vërtetë e përdorin këtë tani për të shkruar një program. Ju mund të shkruani një program duke përdorur Microsoft Word. Ju mund të shkruani një program duke përdorur TextEdit, ose Notepad-in, ose WordPad, apo shumë e shumë çdo fjalë program të përpunimit ju keni përdorur ndonjëherë. Por realiteti është se ju nuk duhet të përdorin me të vërtetë ndonjë prej këtyre programeve. Ju me siguri nuk duhet të përdorin diçka si Microsoft Word, të cilat ka ballafaqohet guximshme dhe Italics, dhe fonts të mëdha dhe fonts më të vogla, sepse kompjuteri nuk kujdes për ndonjë nga se. Të gjitha kompjuteri është do të intereson është Anglisht si udhëzimet e shkruar në C. Pra, ajo që ne do të bëjmë brenda i Appliance CS50 është të përdorni një program të lirë në dispozicion, dhe kjo është para-instaluar në këtë aplikim, i quajtur gedit. Dhe Gedit është vetëm një super të thjeshtë editor teksti si TextEdit Mac OS-së, si Windows Notepad që do të shikoni një diçka të vogël si kjo. Pra, le të vërtetë nuk shikoni në slides e kësaj. Por le të vërtetë të shkojnë në mjedisi vetë. Unë jam duke shkuar për të shkuar përpara dhe të hyni në, në këtë dritare tjetër, të CS50 Appliance tim, që unë kam para-instaluar në laptop tim këtu. Vini re se, si Windows dhe Mac OS, atë e mori disa menutë. Ashtu si Windows ai vë ai atje poshtë në vend i Mac OS, i cili e vë atë atje. Por realiteti është se është të gjithë llojet e njëjtë. Dhe këtu është një tërësi bandë e software. Ka Dropbox. Ka një bandë e tërë e aksesorëve, programe grafike se ne do të përdorur më vonë në afat për grupe problemit. Ka një shfletues web ndërtuar në mënyrë se kjo është një kompjuter të drejta të plota brenda një kompjuter. Por unë jam duke shkuar për të klikoni këtë pari nga e majta ikonë bardhë këtu, e cila është ikonë për Gedit. Dhe ajo do të hapë një dritare që ka tre paneleve te saj, një e majtë, një top, dhe një fund. Tani është në këtë një të drejtë të lartë se Unë jam duke shkuar për të vërtetë shkruani disa kodin. Pra, le të bëjmë këtë ,. Unë jam duke shkuar për të shkuar tek File, Save. Dhe ju nuk mund të keni parë ndonjëherë kjo dritare të veçantë para. Por, kjo është si Mac OS ose Windows. Është vetëm një dritare me të gjitha dosjet që unë kam brenda këtij kompjuteri. Dhe unë jam duke shkuar për të shpëtuar fotografi si hello.c. Dhe unë jam duke shkuar për të shkuar përpara dhe klikoni Ruaj. Dhe tani vini re unë kam një skedë në krye të majtë të quajtur hello.c. Pra, ndoshta goxha të njohur edhe në qoftë se ju nuk e keni përdorur këtë program të veçantë para. Dhe tani unë jam duke shkuar për të shkruani në ato rend mjaft të fshehtë e komandave që ne pamë një moment më parë. Përfshijnë, I standarde / O.h. Më shumë për atë së shpejti. Pavlefshëm kryesore int, kaçurrel e hapur mbajtëse, mbyllur mbajtëse kaçurrel. Dhe pastaj brenda e nuk mendoj se është ku kemi pasur "Hello World", pikëpresje. Dhe tani të shpëtuar. Pra, ky është një program i shkruar në C, shkruar, për këtë arsye, në kodin burimor. Por unë nuk mund vetëm të drejtuar këtë program. Unë lloj doni të dyfishtë klikoni në një ikonë diku, por asnjë ikonë ekziston tjetër se kartela e kodit burim. Ajo që, përsëri, është proces tani që Unë kam nevojë për të drejtuar këtë fotografi nëpërmjet? Audienca: Compiler. DAVID J. Malan: Pra një përpilues. Pra, në kompjuterë të ndryshëm të bëni këtë në mënyra të ndryshme. Por ajo që ne kemi bërë këtu në Appliance CS50 që është Përfaqësuesi se si ju mund të bëni këtë në sisteme të ndryshme, po unë jam thjesht duke shkuar për të drejtuar një komandë të quajtur make. Dhe make është fjalë për fjalë do të bëjë që. Më bëj një program. Pra, ti do të drejtuar një përpilues për mua. Dhe emri i programit Dua të bëj është përshëndetje. Tani të bëjë është një program. Dhe të bëjë është mjaft i zgjuar për të të kuptojë se në qoftë se unë them të bëjë hello, ajo do të shikojmë automatikisht për një skedar të quajtur hello.c vetëm për shkak se është mënyrë është e konfiguruar. Pra, kur Unë tani hit Enter këtu, kjo Linja çmendur fshehtë sapo u ekzekutuan. Dhe besoni mua, para se të të gjatë, brenda vetëm ditë, ju do të kuptoni se çfarë të gjithë e që do të thotë të pakuptimta. Por tani për tani, vetëm e di se të bëjë Ekzekutimi Shkaktuar nga një përpilues. Me fjalë të tjera, ajo gjeti një përpilues në kompjuterin tim që është para-instaluar në Appliance CS50 se ne do të dorëzojë tek ju në Problem Set 1. Dhe pastaj mori hello.c si input, dhe prodhuar me sa duket 0s dhe 1s si prodhim. Dhe nga default atë që nuk është ajo kursen ata 0s dhe 1s në një skedar të quajtur përshëndetje. Dhe pse këtë sintaksë shumë mund të jetë e re për ju, thjesht duke thënë dot çaj përshëndetje do të jetë do të thotë me të cilën unë të drejtuar këtë program. Tani për tani dhe për të paktën një çift javë, pothuajse të gjitha programet shkruajmë do të jetë në dritaret zezë dhe e bardhë tekst. Jo minj, jo klikuar, pa dritare, pa ikona. Ne jemi duke shkuar për të mbajtur atë të thjeshtë dhe të përqëndrohet në idetë themelore fillimisht para se të merrni në diçka nivel më të lartë, për shembull, si pushim jashtë lojë që kemi biseduar lidhje në leksionin e parë javën e kaluar. Kështu që kur unë hit Enter këtu, është e ekuivalente në një tekst të vetëm të mjedisit të dyfishtë klikuar një ikonë të quajtur përshëndetje. Çfarë prisni vullnet ndodhë kur unë hit Enter pastaj? Audienca: Ajo do të shtypura "Hello World". DAVID J. Malan: Shpresojmë ajo do të shtypura "Hello World". Dhe me të vërtetë ai e bëri. Tani ka pasur disa Sintaksa fshehtë këtu. Le të Rewind për vetëm një moment dhe të shohim nëse ne nuk mund të fillojnë inferring vetëm nga ngatërresë, duke u përpjekur dhe duke dështuar, se çfarë po ndodh këtu. Çka nëse unë të shpëtoj nga të backslash n? Tani disa prej jush që keni programuar para ndoshta e di menjëherë se çfarë do të thotë. Por për ata prej jush që keni kurrë nuk e programuar më parë, të paktën të mendojnë për veten se çfarë po ndodh për të ndryshuar kur unë përsëritje këtë program? Kështu që unë jam duke shkuar për të shkuar përsëri poshtë në tim pak dritare të zezë dhe të bardhë, të cilat është dritarja në të cilën Unë mund të përpilojnë këtë. Unë jam duke shkuar për të përpiluar përshëndetje. Ne jemi duke shkuar për të parë të njëjtën gjë Sekuenca fshehtë e komandave. Dhe unë jam duke shkuar për të bërë dot plagë përshëndetje. Dhe tani dikush, në qoftë se ju do të, i cili kurrë nuk ka programuar më parë, çfarë mund të jetë ndryshe këtë herë? Po. Audienca: Kjo nuk do të ndalet shtypjen "Bota përshëndetje." DAVID J. Malan: Ajo do to-- vjen keq? Audienca: Kjo nuk do të ndalet shtypjen atë? DAVID J. Malan: Kjo nuk do të të ndaluar shtypjen "hello botë." Pra, nuk është një ide e keqe. Ide të tjera? Po. Audienca: Error message? DAVID J. Malan: Error mesazh, OK, mund të jetë. Çfarë tjetër? Audienca: Ajo mund të shtypura kllapa me pikëpresje, si dhe? DAVID J. Malan: Mund të shtypura kllapa me pikëpresje, si dhe. Pra, ndoshta se backslash pastaj disa lloj terminous kjo është e rëndësishme. Çdo mendime të tjera? Ide kështu që të gjitha të mira. Dhe në fakt, kjo që po ndodh të jetë një mesazh gabimi. Kjo është ndoshta më e mundshme të jetë përgjigje në përgjithësi për disa javëve të ardhshme si ne mësojmë të kodit këtu. Por tani për tani mbani mend se kompjuterët vetëm që ajo që ju tregoni atyre për të bërë. Shumë si badiava qesharake gjalpë dhe shembull pelte. Kompjutera jonë njerëzore është dashur vetëm për të bërë atë që ju u tha atyre për të bërë. Pra, në këtë rast, në qoftë se ju mos i thoni kompjuter për të lëvizur atë kursorin keq për të Linja tjetër, ai nuk do të bëjë atë. Pra, kur kam drejtuar këtë program tani, vini re ndryshimin. Duket si një bug. Kjo është një bug estetike, ndoshta. Por ajo që është e ndryshme në lidhje me këtë Prodhimi kundrejt të fundit padyshim? Po. Audienca: Ajo nuk e ka bërë një linjë të re. DAVID J. Malan: Ajo nuk e ka bërë një linjë të re. Tani ata që kanë faqet bërë ndoshta web para, ju mund të dini të BR tag ose paragrafi tag, shumë të ngjashme në frymë. Një shfletues web do të ju injorojnë deri ju tregoni atë se çfarë duhet bërë. Në mënyrë të ngjashme, është një gjuhë si C vetëm do të bëni atë që ju them se për të bërë. Pra arsyeja se të gjitha këto shembuj, deri më tani, kanë lloj rastësisht kishte këtë backslash në atje, kjo është mjetet me të cilën ju shprehin veten si një karakter të ri vijë, kështu që të flasin. Dhe ju mund të lloj të vlerësojmë, ndoshta, se kjo do të dukej lloj trashë nëse asgjë tjetër. Në qoftë se unë të kërkuar një linjë të re, vetëm goditur Enter dhe pastaj lloj i butchering kodin si kjo me të vërtetë nuk duhet të ju fshij rrugën e drejtë. Dhe edhe në qoftë se ju nuk e bëni kujdesit të vërtetë në këtë pikë, ju do të kuptojë se kjo nuk është një veçanërisht mirë në kërkim pjesë të kodit. Dhe kështu ajo që bota vjet më parë është vendosur që kur të doni për të vënë kursorin mbi një linjë të re në mënyrë të qartë, ju duhet të them në mënyrë të qartë Linja e re, backslash n. Dhe ka disa të tjera Simbolet si kjo. Por tani për tani ne vetëm do të përqëndrohet në backslash n. Tani le të bëjmë programin pak më shumë interesante. Unë jam duke shkuar për të shkuar përpara dhe të këtë herë hapur një skedë të re. Unë jam duke shkuar për të ruajtur këtë si tungjatjeta-1.c. Dhe vetëm për shkelma, unë jam duke shkuar për të shkoni vënë atë në dosjen time Dropbox. Si ju do të shihni në CS50 Dokumentacioni për aplikim, më vonë këtë javë për Problem Set 1, ne do të inkurajojmë ju për të përdorur Dropbox ose disa shërbim ekuivalente, sepse atëherë të gjithë kodin e juaj do të jenë të mbështetura automatikisht. Dhe në mënyrë që është arsyeja pse unë kam shkuar në këtë dosje këtu. Dhe tani unë jam duke shkuar për të shkruar një program pak më të ndryshme. Përfshijnë, I standarde / O.h, pavlefshëm kryesore int. Dhe pastaj në këtu printf, Hello botë, cila është saktësisht njëjtë si më parë. Por tani unë dua të shtypura diçka kjo është pak më ndryshe. Unë dua të shtypura nga, thonë, "Hello, David." Në rregull, kështu që natyrisht, ajo duhet të shpresojmë se jetë rasti se në qoftë se unë recompile ky program, përsëritje atë, ajo do të thonë "hello, Davidin." Por, çfarë nëse unë dua të prezantoj ky lloj ndryshore, nocioni i një enë që do për të ruajtur D-a-v-i-d dhe jo shumë kodin atë në programin tim. E pra ajo që në qoftë se unë të fillojë duke bërë diçka si kjo? String s, kështu që kjo është një variabël. Nëse doni një varg, alias një fjalë ose një frazë. Një rend i karaktereve është çfarë ne në programimin e quajmë një varg. Ne jemi vetëm duke shkuar për të generically thirrje ajo s, sepse është një emër i bukur i thjeshtë. Por unë mund të telefononi atë gjë. Unë jam duke shkuar për të thënë String s barabartëve quote mbyll thonjëzat, "David," pikëpresje. Dhe tani unë dua të futur D-një-v-i-d në atë që unë jam shtypjen. Dhe para se të pashë një ngacmues në ekran i disa sintaksë të veçantë që na lejohet të zëvendësues në një vlerë. Cili ishte i veçantë Simboli një slides pak më parë? Pra qind. Në atë kohë ajo ishte qind d për numër dhjetore. Kjo nuk ka të vërtetë duket e rëndësishme këtu. Rezulton se nuk ka një tjetër simbol për qind, cila është përqind s, e cila qëndron për një placeholder për një varg. Deri tani, shumë thjesht, unë jam do të shkojnë të bërë përshëndetje-1, sepse këtë fotografi quhet përshëndetje-1.c, dhe hit Enter. Dhe unë i dehur. Çfarë po ndodh? E pra, këtu është ku ne duhet të fillojmë të vlerësojmë se ne jemi në këtë komandë Mjedisi linjë, kjo Tekst i Thjeshtë mjedisit. Nuk ka klikuar mbi ikona si dosjet tani. Dhe mendoj se mbrapa një moment më parë. Në atë dosje nuk kam të them Unë u kursyer kodin tim? Pra dosje Dropbox. Mund të ishte quajtur asgjë. Por kjo ndodh që të quhet Dropbox. Kështu që unë disi duhet të klikoni dy herë mbi që Dropbox dosje në mënyrë që të merrni në të dhe për të marrë my Kodi quhet përshëndetje-1.c. Në fakt, më lejoni të shkoj përpara dhe të minimizuar kjo dritare për vetëm një moment. Ashtu si Windows dhe Mac OS, ka dosje në Linux. Ka dosje në CS50 Appliance. Është vetëm e drejtë tani që ne jemi duke i kufizuar veten në këtë mjedis tekst. Por nëse unë klikoni dy herë në Dropbox, njoftim nuk është skedari që unë dua për të hartuar. Por kam nevojë për këtë të zezë dhe të bardhë dritare terminali, mënyrë që të flasin. Por më duhet, pra, për të lëvizur në atë dosje apo directory. Pra pak misterioze, por ju do të merrni përdorur për këtë shumë. Në botën e Linux, e cila përsëri është operativ sistem ne jemi drejtimin brenda e CS50 Appliance, ka një komandë të quajtur CD. Që do të thotë unë mund të bëj CD, hapësirë, Dropbox. CD, directory ndryshim. Drejta. Kthehu në ditë, kur njerëzit ishin të shpikur kompjuterë dhe veprojnë sistemet e si kjo, ata donin të Lloji i tasteve fewest të jetë e mundur. Pra, mënyra më e lehtë për të thënë Lista ndryshim ishte CD. Pra, nëse unë goditi CD, hapësirë ​​Dropbox, njoftim se çfarë ka ndryshuar këtu. Brenda kllapa aplikim është lloj i humoring mua dhe kujtuar mua ku unë jam. Pra, dosje e hapur është Dropbox. Nëse unë tani shkruani ls për listë, përsëri ngjeshur, sepse njerëzit nuk duan të shkruani përsëri në ditën e l-i-s-t. Pra, ata në vend që e bëri të ls. Shkruani. Njoftim i shihni dy gjëra, Hello-1.c, dhe atëherë kjo gjë i fshehtë, 1m burimi. Kjo është vetëm mënyra ime për të thënë Kodi burim për javën 1 të hënën. Kjo është një dosje kam shkarkuar nga Website CS50-së që kam bërë më herët sot dhe vetëm vënë atë në aplikim paraprakisht. Por tani për tani e vetmja gjë që ne intereson është duke e bërë këtë program. Pra, kur unë lloji bërë përshëndetje-1, Enter. Damn atë. Diçka shkoi keq. Pra, le të vë në lojë këtë larg. Dhe për fat të keq kjo është ku gjërat merrni pak stresues në fillim, të paktën nëse ju keni kurrë nuk e programuar më parë. My god. Kam shkruar një program dy linjës dhe Unë kam katër rreshta të gabimeve. Pra, çfarë po ndodh këtu. Para së gjithash gjithmonë lëviz mbrapa up dhe për të gjetur mesazhin e parë gabimi, sepse shumë herë Hartuesit vetëm merrni hutuar nga ajo që ju dhe unë bëj. Hartuesit janë goxha memec. Ata do të bëjnë vetëm atë ju tregoni atyre për të bërë. Dhe në qoftë se ju ngatërruar ato, ata janë vetëm shkuar për të lloj të vjellë duart e tyre dhe ndoshta hedhin më shumë mesazhe gabimi se sa në të vërtetë janë të rëndësishme. Pra, le të shohim në fillim. Super fshehtë në fillim. Por njoftim, këtu është emri i fotografi në të cilat unë i dehur me sa duket. Colon 5, zorrës së trashë 5 thjesht do të thotë më Linja 5 në karakterin e pestë. Pra, kolona e pestë e karaktere, në qoftë se ju do, gabim. Përdorimi i vargut padeklaruar identifikues. A e keni të thotë n standarde? Jo, unë do të thotë string. Dhe atëherë kjo është lloj i kopjimi dhe pasting ajo që unë shtypur të vërtetë të nxjerrë tim vëmendje të, ku unë i dehur. Pra, për disa arsye C, ose të paktën përpiluesit nuk e kuptojnë vargun fjalën. Dhe kjo është për shkak se ne e bëri atë. Pra string nuk ekziston në C. Çfarë CS50 bën, për javët e para vetëm i klasës, është që ne ofrojmë disa trajnime rrota, kështu që të flasin. Dhe ne kemi vënë këto rrota të trajnimit brenda një dosje të veçantë të quajtur CS50.h. Pra, kjo është e dytë e dy dosje emra që me sa duket të përfundojë në dot h. Le të Rewind. Printf është deklaratë ose funksion që me sa duket shtyp diçka në ekran. Por ju nuk e keni parë mua zbatuar printf, të drejtë. Vjet më parë dikush zbatuar printf. Në atë fotografi do të ju bast ai ose ajo vendos zbatimin për printf, kodin për printf? Në një dosje të quajtur standardi I / O.h. Në fakt, kjo është ndoshta në dy fotografi, I standarde / O.h, i cili qëndron për kokë fotografi, dhe unë standarde / O.c, i cili qëndron për kodin burimor C. Pra, ai ose ajo disa vjet më parë plopped Kodi që ata shkruan në këtë dosje kështu që njerëzit si ne vite më vonë mund të përfshijë atë, mënyrë që të flasin, në vetë programet tona. Dhe me të vërtetë, kjo është ajo shenja funt pasuar nga fjala përfshijnë bën. Ajo duket në hard drive lokale, gjen dosjen e quajtur standardi I / O.h, dhe pastaj në mënyrë efektive kopje dhe xhel atë brenda dosjen time. Deri tani programi im e di si për të shtypur në ekran. Pra, nga kjo logjikë, ku është string përcaktuar? Audienca: CS50.h. DAVID J. Malan: CS50.h. Dhe me të vërtetë, kjo është ajo që ne, personeli kryesor, kanë bërë. Ne kemi zbuluar disa lloje të të dhënave, mënyrë që të flasin, si një varg, përveç atyre që ju të merrni për të lira, si një int. Dhe ne do të shohim të tjerët si një char për një karakter dhe një më pak. Brenda CS50.h me sa duket është të paktën disa përmendje e vargut. Deri tani më lejoni të shkoj përpara dhe make përsëritja përshëndetje-1. Unë do të zoom në përsëri dhe ndër gishtat e mi. Tani duke pas bërë një ndryshojnë I fiksuar gjërat më. Por mallkonte atë. Më shumë përqindjes se argumentet e të dhënave. Çfarë ka të bëj gabim këtë herë? Pra, është ende shumë e fshehtë. Por, ky gabim është më Linja 7 dhe karakter 21. Pra, le të shkojë të kërkoni këtu. Kjo është pak delikate. Por në qoftë se ju mendoni se çka idetë themelore këtu janë, ndoshta ne mund të vë në lojë këtë larg. Pra printf është emri i funksionit. Kllapa, deri më tani, është ashtu si ajo që ne kemi vënë rreth gjëra ne jemi duke kaluar si inpute në një funksion. Në rregull, vetëm një Konventa arbitrare njeriut. Përdorimi kllapa. Brenda këtyre kllapa ne kemi qenë vënë kuotat e dyfishtë, dhe pastaj një varg si "botë Hello." Por në atë shembull të hershme shumë shkurtimisht bëri shikojmë me Scratch. Dhe ne kishim për qind d, çfarë tjetër ishte brenda këtyre kllapa që unë thirri me gojë? Po. Audienca: Pra, kjo është ajo që ju jeni duke marrë [Padëgjueshme] nga brenda [padëgjueshme] ajo që këto [padëgjueshme]? DAVID J. Malan: Pikërisht. Pra, ne kishim për qind d. Por pastaj kemi pasur afër quote, presje, kundër. Drejta. Ne specifikuar atë që duam për të bërë si placeholder. Pra, ajo që unë jam duke shkuar për të bërë këtu është presje, çfarë ju doni mua për të vënë? Audienca: S. DAVID J. Malan: S, sepse s në këtë rast është emri i enë magazinimit. Është emri i atij tas qelqi. Ndërsa para se të ishte kundër në se shembull i thjeshtë Scratch kemi shikuar. Deri tani ka bërë dy Ndryshimet, më lejoni të zoom në dhe të përpiqen edhe një herë të hartuar këtë program. Tani unë shoh këtë linjë të fshehtë. Por kjo është në të vërtetë emrin e përpiluesit. Tingëllimë është emri i përpiluesit. Bëni është vetëm duke kursyer mua dhimbje koke e ndonjëherë shtypur atë komandë gjatë çmendur jashtë. Deri tani, nëse unë dot çaj përshëndetje-1, Unë duhet të shoh "hello, David." Pretty underwhelming, pse, apo jo? Ne mund të ketë bërë kjo shumë më thjesht pa folur për variablat dhe CS50.h dhe të gjithë se. Pra, le të bëjnë atë një pak më shumë interesante. Përveç CS50.h, duke pasur gjëra të tilla si varg deklaruar, biblioteka CS50 gjithashtu ka një funksione pak. Pra, ashtu si vite më parë, dikush ka shkruar printf dhe e vënë atë në standarde I / O.h dhe disa fotografi të tjera. Ne, stafi CS50, shkroi një funksion quajtur GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, dhe ne kemi vënë ato brenda një skedar quajtur CS50.h dhe CS50.c. Dhe ne kemi vënë ato brenda i CS50 Appliance. Dhe njerëzit mund të shkarkoni ato online në qoftë se ata duan të vënë ato në e tyre kompjutera vet si. Që do të thotë se ne kemi krijuar Funksionet që të merrni të dhëna nga përdoruesit. Unë nuk e di se çfarë të gjithë e këtyre të dhënave lloje janë. GetInt është lloj i thjeshtë, si merrni një numër të plotë në një farë mënyre nga përdoruesit. Dhe GetString është ndoshta si get një fjalë ose një fjali nga përdoruesit. Pra, le të përqëndrohet në se. Dhe unë jam duke shkuar për të shkuar mbrapa në aplikim dhe unë jam duke shkuar për të shkuar përpara dhe për të shpëtuar këtë foto si, le të thërrasë kjo përshëndetje-2.c si versionin tim të dytë. Dhe le të bëjë disa ndryshime. Këtë herë në vend të vështirë David coding, e cila bën një tepër të qëndrueshme por programi underwhelming, çfarë nëse unë në vend që të bëjë GetString? Tani njoftim GetString ka një parantezë të hapur, kllapë mbyllur, sepse ajo nuk ka nevojë për ndonjë kontribut. Është vetëm do të shkojë të marrë një varg nga përdoruesit. Dhe tani një fjalë në sintaksë tjetër. Pikpresje përfundojë vetëm një linjë e kodit. Ju nuk keni nevojë për to kudo. Por kjo vetëm do të thotë unë jam bërë me këtë linjë të kodit. Më lejoni të lëvizë mbi një tjetër deklaratë ose funksion. String deklaron një ndryshore. String është si duke thënë më jepni një tas, ju lutem. Dhe më lejoni të vënë një varg në të. Dhe tani shenjë të barabartë. Cila është shenja me të barabartë në thelb ekuivalent me? Audienca: Cakto. DAVID J. Malan: Po, caktimin e një vlerë. Pra, nëse unë, për shembull, thirrje kjo GetString funksion, dhe ne do të shohim në një moment që është do të menjëhershëm të përdoruesit për një varg. Kjo është si të lënë mua e pastaj shkruaj D-a-v-i-d në një fletë. Dhe kur them varg s është e barabartë GetString, barabartë nuk ka të vërtetë do të thotë barabartë në C programimit. Kjo do të thotë të caktojë nga e djathta hand side në anën e majtë. Kështu që unë kam marrë një varg. Dhe shenja të barabartë do të thotë vënë atë në ruajtje enë quajtur s. Dhe pastaj të kalojë këtë off për të printf për të vërtetë të bëjë gjë e saj. Pra, rezultati përfundimtar, atëherë do të shikojmë pak më ndryshe. Le të bëjnë përshëndetje-2. Ose mund të punojnë. Ju jeni në vijim së bashku. Bëni përshëndetje-2 punuar. Dot çaj përshëndetje-2, Enter. I duket të ketë një pafund loop ose diçka. Asgjë nuk po ndodh. Pse? Audienca: Është bërë një lak pafund. DAVID J. Malan: Kjo është një lak pafund. Kjo është lloj i pritur për mua për të në të vërtetë të sigurojë atë me disa informacione. Pra më lejoni të shkoj përpara dhe të shtypni në Davidin, dhe hit Enter. Dhe tani ai thotë se "hello, David." Nëse unë drejtuar atë përsëri. Le të shkruani Rob, "hello, Rob." Tani kjo është më e keqja user interface ndonjëherë. Ky përdorues është me sa duket duhet të dini çfarë të bëni. Por nuk ka rëndësi. Duke përdorur këto njëjtën ndërtesë blloqe ashtu si në Scratch, ne mund të zgjidhur këtë problem dhe thonë diçka si emrin tuaj ju lutem, zorrës së trashë, hapësirë, mbyllur quote, afër kllapë, pikëpresje. Pra, një shumë e përsëri marrëzi me sintaksë. Por vini re unë kam shtuar vetëm një copë mister mbi këtë dhe mbi këtë një të tillë. Deri tani, nëse unë këtë përsëritje, përshëndetje-2, Enter. Prisni një minutë. Çfarë është e gabuar? Kjo nuk është sillet ndryshe. Po. Audienca: Ju nuk e drejtuar të bëjë përsëri. DAVID J. Malan: Unë nuk e kam drejtuar të bëjë përsëri, apo jo. Kështu që unë kam ndryshuar kodin tim burim. Por përsëri, nuk ka se rrjedha. Source code përmes përpilues i jep ju kod të ri objekt, ose 0s dhe 1s. Kështu që kam nevojë për të vërtetë make përsëritja përshëndetje-2 Enter. OK, diçka duket se ka ndodhur. Dot çaj tungjatjeta-2. Emri juaj ju lutem. Dhe të jetë i qartë tani, pse është kursori në të njëjtin drejtim? Pikërisht. Unë nuk e vënë backslash n deri këtu në kodin tim. Deri tani unë mund të shkruaj diçka si Daven, Enter. Unë mund të kandidojë atë përsëri dhe shkruani diçka si Gabe, Shkruani, dhe kemi një program të ndryshëm përsëri dhe përsëri dhe përsëri. Tani në fund të fundit ne do të duhet për të përdorur një aftësi të disa të ndryshme. Ne kemi nevojë për të futur në fund të fundit disa kushtet për të bërë gjëra me kusht. Ndoshta sythe kështu që ne mund të bëjmë gjërat përsëri dhe përsëri. Ndoshta do të ishte mirë nëse ne mund të zbatojë vetë funksionet tona, si ne mund të zbatojë vetë tonë printf ose vet versioni ynë i GetString dhe GetFlow, sepse në fund të fundit edhe duke përdorur këtë mjedis të linjës komanduese mund të bëjmë edhe më të vizualisht interesante e gjërave. Në të vërtetë në përfundim më lejoni të bëjë këtë. Unë jam duke shkuar për të shkuar përpara dhe të mbyllur këto dritaret dhe të hapur këtë ikonë këtu, e cila është vetëm një e madhe version i se ngulitur dritare terminali. Pra Gedit ka jo vetëm vend për kodin tim, por edhe një ndërtuar në dritaren e terminalit, dritare e zezë dhe e bardhë, ku unë mund të kandidojë komandat. I ndodhur vetëm për të hapur një version më të madhe për këtë. Dhe tani unë jam duke shkuar për të shkuar në dosje që unë kam tashmë vënë paraprakisht në faqen e internetit të kursit-së. Dhe unë jam duke shkuar për të shkuar përpara dhe të të hapur një skedar të quajtur thadgavin.c, e cila është shkruar nga dikush tjetër. Dhe nëse ne shikojmë në këtë, kjo nuk është lloji i kodit ne do të jetë me shkrim që Qëllimi i këtij kodi ishte për të shkruar prettiest duke kërkuar kodin që ai apo ajo mund, pavarësisht nëse janë apo jo një tjetër qenie njerëzore mund kurrë kuptojnë këtë kod. Në të vërtetë, çdo vit ka çfarë është quajtur një garë turbulluara C, e cila është për geeks vërtetë që shkruajnë Kodi që askush tjetër nuk mund të lexohet, por se bën diçka ose të vërtetë të thjeshtë apo me të vërtetë e mahnitshme. Dhe ne menduam se do të të përfunduar me këtë vështrim në diçka që është shumë e mahnitshme ju mund të keni parë një herë më parë. Por ne do të përfundojë në këtë shënim, dot plagë, thadgavin. Kjo pastaj është ajo që i pret. Kjo është ajo për CS50. Ne do të ju shohim të mërkurën. [MUSIC Playing]