DAVID J. Malan: Tātad tas ir CS50. Un tas bija CS50 pašas Colton Ogden, vairāk par to, kas ir mūzika, jūs varat lejupielādēt soundcloud.com/cs50. Tātad šodien mēs koncentrējamies visi vairāk par mākslas programmēšanu. Un mēs, ja mēs pa kreisi off pagājušajā nedēļā, koncentrējoties uz nulles, kas bija šī grafiskā programmēšanas valoda. Un veikt lietas uz zemāku līmeni, izmantojot tradicionālo plānojumu valoda pazīstams kā C. Bet pa ceļu, realizējot ka pašiem idejas, kuras mēs runāja par pagājušajā piektdienā atkārtojas ne tikai šajā valodas C, bet vairumā katru otro ka mēs skatāmies šajā semestrī. Tātad mēs sauc šo lietu šeit kāda pēdējo reizi? Tas ir pārstāvis paziņojumu. Tātad mēs to nosauca paziņojumu. Un tas dara kaut ko. Tas ir norādījums, ka dators vai Scratch varētu izpildīt. Un turpmāk, pieņemsim arī sākt aicinot kaut kas līdzīgs šī funkcija, iemeslu dēļ mēs drīz redzēt. Tikmēr, mēs redzējām lietas, kā šis. Un tie parasti pazīstams kā to, ko būvēt? AUDITORIJA: Loop. DAVID J. Malan: Tātad cilpa. Tā diezgan vienkārši. Tas burtiski dara to, ko tā saka. Un Scratch, ja vēlaties piestūķēt vairāk puzzle gabalus tur, gabals pieaugs to uzstādīt. Un mēs redzam, ka C mēs varam darīt to pašu. Vēl viens cilpa veidu, lai gan, in Scratch varētu būt mūžīgi, vai tur ir kāds numurs citas pieejas. Bet pieņemsim vairāk vispārējs izskatu, ar seju ka ir iespējams, diezgan pazīstams, pie cilpas kopumā. Mark Zuckerberg: One lieta, ka datori ir patiešām labi, ir atkārtojot komandas. Kā persona, jūs saņemsiet patiešām garlaicīgi, ja jums nācās darīt to pašu daudz reižu pēc kārtas. Bet dators var darīt to pašu miljoniem vai pat miljardiem reižu, un nav garlaicīgi, un jāspēj to izpildīt tiešām labi. Tā, piemēram, ja es gribēju novēlēt visiem Facebook happy birthday , nosūtot e-pastu, tas var aizņemt mani vairāk nekā gadsimtā, lai faktiski rakstīt out visus šos e-pastus uz visiem. Bet ar tikai dažas rindiņas kodu, es varu ir sistēma Uzrakstīt ikvienam Facebook vēlas viņiem daudz laimes dzimšanas dienā. Tātad tas, kas cilpas ir un kāpēc viņi ir vērtīgi un kaut ka datori var darīt ļoti labi. DAVID J. Malan: Tātad, ja esat bijis saņēmējs daži no CS50 s un Dropbox kosmosa par vēlu, ka patiesībā tieši tas, ko mēs darīt, izmantojot kodu, gluži tāpat. Mums būtībā ir liels izklājlapu, kurā ļaudīm ir ievadot to vārdi un e-pasta adreses. Un mēs rakstījām tiny mazliet kodu, kas var atkārtot nekā šos adreses un izspļaut unikālas adreses lieta ikviens iesniegta vairākas reizes. Un pēc tam, mēs nosūtām automatizēts e-pastu no CS50 s bot, ieskaitot kupona kods. Tagad mēs arī apskatīja šis būvēt pēdējo reizi. Un tas ir īpaši piemērs, ko? Tātad, jā, Būla izteiksme. Un forma ir domāts , lai attēlotu, ka labi. Visi šie jautājumi veido patiess vai nepatiess Scratch izskatīsies mazliet kaut kas līdzīgs šim. Un mēs saucam Būla izteiksme. Tas ir patiešām patiess vai nepatiess, jā vai nē. Tas ir veids, kā atbildēt uz jautājumu. Un Tikmēr jūs varat izmantot šos Būla izteiksmes iekšpusē konstrukcijas piemēram, tie, kuri no Protams, ir apstākļi vai filiāles, proverbial dakšas uz ceļa. Un viņi var izskatīties ne tikai kā šis, bet tie var arī ir elses saistītas ar tiem. Un jūs faktiski var būt trīs veidu dakša ceļa vai četri ceļu dakša uz ceļa, vienkārši ligzdošanas šīs lietas, kā jūs redzēsiet Scratch Ja Jums vēl nav. Un kā jūs varat darīt, C, kā arī. Paņemsim citu vispārējas aprūpes ārsts paskatās alumnist, kā arī, kas var radīt atšķirīgu pieeju uz šīm lietām, ko sauc nosacījumi. Bill Gates: Cilvēki veido lēmumi katru dienu. Piemēram, pirms jūs iet ārā jums veids ir, ja paziņojumu, ka saka, ja līst, tad es nepieciešams, lai iegūtu mana jaka. Un datori ir pārsteidzošs, kad jums izlemt tos pārskatu veidu, ka tie var droši izpildīt tās lietas, pie neticamu ātrumu. Un tā datorprogramma patiešām ir mazliet par matemātiku un daži ja pārskatu vajadzības lēmums izpaužas veikts. DAVID J. Malan: Tā kā Jūs zināt, tas bija folks, piemēram, Bill Gates, Pols Allens un citi kas patiesi kicked off tā saukto personālo datoru revolūcija pirms dažiem gadiem. Es domāju, pirms mēs nodoties uz kādu administrivia, mēs gribētu attiecas stāsts no Albukerke, New Mexico Dabas muzejs un zinātne, ja daži no Bill Gates " un Paul Allen Agrākais stāsti tiek apskatīti kā mēs esam tagad šodienas PC un Mac, un vairāk. Lai to izdarītu, lai gan, mums vajag divus brīvprātīgos kam ir ļoti labas stāstījumu balsis lasīt skriptu skaļi. Nu labi, kā par in atpakaļ tur. Nāciet uz augšu. Un kā par priekšā šeit. Nāc uz leju. Veikt savu vietu šeit. Kā jūs puiši nāk uz augšu, pāris Administratīvo paziņojumiem. sekcijās, process izvēloties sadaļu, sāksies šī No trešdienas līdz piektdienai. Vairāk par ka tas nāk Trešdiena lekciju. Super sekcijas, tikmēr, ir kaut kas, ko mēs piedāvājam nākamnedēļ saskaņā ar kuru visa klase tiek aicināta piedalīties diezgan liela mēroga sekcijas, vēl viens comfy, vienu mazāk apmierināti. Un mēs paziņos ziņas no tā, kā arī, vēlāk šonedēļ. Tikmēr sekcijas, paši, sāks nedēļā trīs kursa, nulles indekss, kas nozīmē, ka tie ir pāris nedēļas out. Tāpēc nav jāuztraucas. Jums vēl nav garām kaut kas pa šo līniju. Tikmēr tajā pašā laikā, ja jums ir kādi jautājumi administratīvi, rakstiet sevi un Devon un Gabe un Rob šajā adresē šeit. Visbeidzot, problēma noteikti 0, protams, out. Jums var būt ievērojuši to par kursu mājas lapā. Tajā jāsniedz Jums visas atbildes uz jautājumiem Jums varētu būt pa ceļu iesākumam ar problēmu kopumu. Bet, ja jums atrast sev nepieciešama palīdzīgu roku, ar visiem līdzekļiem apmeklēt darba laiks, Pirmdien, otrdien, trešdien, ceturtdien Šīs nedēļas vakarā četros ēdamzāles. Redzēt, ka URL tur ziņas , kur darba laiks ir. Tagad Tiksimies mūsu divi viesi šeit šodien. Kāds ir tavs vārds? JAY PAUL: Jay Paul. DAVID J. Malan: Jay Pāvils, nice to meet you. Hikari: Hikari. DAVID J. Malan: Hikari? Hikari: Hikari. DAVID J. Malan: Hikari. Nice to meet you, kā arī. Jay Paul un Hikari būt priekšā viņiem par šo mūziku stāv divas skriptus, ka es drukātas out šorīt no Ņūmeksika Muzejs Dabas vēstures un zinātnes. Un tas, ko es domāju Es gribētu darīt pie griestiem ir pavadīt savu deklamēšana scenārija un šo vēsturi ar dažiem vizuāliem attēliem, bez pārsteigumiem. Un to, ko es esmu darījusi iepriekš tiek prehighlight jūsu skriptu ko jums vajadzētu izlasīt, un ko jums vajadzētu izlasīt. Un mēs būtībā tikko aizstājējus punktu. Tātad, tas ir daudz, piemēram, jūs varētu ir darījuši angļu klasē. Tas ir patiešām piespiest auditoriju ticēt jūsu stāsts šeit. Ir mums? Tātad stāsts šeit ir, mēs esam BASIC, un tas sākas Cambridge. JAY PAUL: Tā bija ziema, 1974, Cambridge, Massachusetts kur ziemas var būt auksti. Bārdains, ilgi haired koledžas pamešanas nosaukts Paul Allen tika drudging pāri Harvard Square, uzsūcas viņa domas. Viņa galvenais rūpes šajās dienās bija kā iegūt savu draugu, Bill Gates, pamest skolu un iet uzņēmējdarbībai ar viņu. Hikari: divi bija jau aizgājuši izmantojot virkni uzņēmējdarbībai kopā, sākot Lakeside skola Sietlā kur tie tika izmaksāti brīvā datora laiku, lai pārbaudīt PDP-10 datoru vietējā laika koplietošanas uzņēmumam. Jaunākais plāns bija atmest skola un veido programmatūras kompānija. Allen atstāja Vašingtonu State University. Taču pēdējā brīdī, vārti nolēma stick ar Harvard. JAY PAUL: Todien, šķērsojot Harvard Square, Allen plankumainais janvārī, 1975 izsniegšana Tautas Electronics ar zemes apturēšanas virsrakstu, Pasaulē pirmais Minidatora Kit sāncenšu Tirdzniecības modeļi. Zem virsraksta bija priekšstatu par mazu lodziņu rotāti ar gaismas un slēdžiem. To sauca MITS Altair 8800. Un Allen zināja, tas bija tas, ko viņš bija meklējis. Hikari: dienas diskusijas sekoja. Allen un Vārti sapratis nozīmīgums Altair. Viņi runāja bieži par mikroprocesoriem un gaidīja, lai redzētu, kas būtu jādara ar tiem. Tagad tur bija minidatoru komplektu par segums Popular Electronics. Tas acīmredzot nebija programmatūru vēl. Viņi iedomājās nācija programmētāji dilstošā par Mits. Un tā viņi sauc Ed Roberts, vadītājs uzņēmumā, apgalvo, ka ir versija BASIC programmēšanas valoda gandrīz gatavs par Altair. Viņi to nedarīja. Un Roberts ir zināms viņi to nedarīja. Viņš kļūst 10 zvani dienā no cilvēki, kuri bija BASIC gandrīz gatavs. Un viņa akciju atbilde bija "pirmais cilvēks kas rāda uz augšu ar darba BASIC izpaužas līgumu. " JAY PAUL: Vārti un Allen nekad nebija redzējis Altair. Viņi nekad nav pat redzējis Intel 8080 mikroprocesors centrā Altair. Bet pāris gadus agrāk Allen bija uzrakstījis programmu uz lieldatoru datoru, kas pārņēmušas darbība iepriekšējā Intel mikroprocesors. Un šoreiz tie neatbilst darītu to pašu. Hikari: Ar Intel 8080 manuālā viņa pusē, Allen apsēdās pie Harvard PDP-10 datoram un uzrakstīja emulatora un programmatūru instrumentus, kas vajadzīgi, lai veiktu programmēšanu. Tikmēr Gates apstājās dodas klasēm un nodevās lai projektējot BASIC, izmantot katru triks viņš zināja, lai iegūtu izmēru lejā 4 kilobaiti. JAY PAUL: Out Albukerke, Ed Roberts saņēmu zvanu no Gates lūdzot informāciju par to, kā Altair apstrādā īpašās rutīnu. Neviens nekad nebija lūgusi, ka pirms. Un Roberts sāka interesēties. Hikari: Ar attīstību instrumenti un dizains gatavs, Vārti un Allen rakstīja kodu PDP-10, kopsakarība citu Hārvardas students, Monte Davidoff, rakstīt math rutīnu. Pēc pēdējā nakts programmēšana, Allen iekāpa lidmašīnā piegādāt to BASIC līdz Mits. Viņš pavadīja plakne braukt out satraucošs. Un atpakaļ Cambridge Vārti bija satraucoši. Viņi bija pārbaudīts savu BASIC un tas bija strādājis uz emulatora. Bet ko tad, ja emulatora bija nepareizi? JAY PAUL: Kā plaknes tuvojās Albukerke, Allen saprata, ka viņu BASIC, tagad glīti ietverts uz neliela ruļļa perforētu papīra lenti, būtu bezjēdzīgi bez atsevišķa programma, ko sauc par iekrāvējs, ka varētu pateikt Altair cik lasīt papīra lentes būtni padots teletaipa mašīna. Viņš paņēma savu notebook un ātri ierakstījis leju iekrāvējs programmu Montāžas valodā, tad manuāli tulkots kas stājas 1s un 0s Altair saprastu. Hikari: Allen biju gaidījis tīru, maz, augsto tehnoloģiju uzņēmums vada vīriešu biznesa uzvalki. Tāpēc viņš bija pārsteigts, kad Roberts met viņam lidostā meklējat, piemēram rančo roku. Roberts bija arī pārsteigts. Kad viņš samazinājās Harvard programmētājs pie dārgu viesnīcu, Allen nācās atzīties, ka viņš nevarēja atļauties telpā. JAY PAUL: MITS, pati par sevi, bija atrodas putekļainā sloksnes Mall. Iekšpusē uz pārblīvēta darbagaldu bija Altair piekrauts ar 5 kilobaiti par atmiņu un savienots ar kabeli uz teletaipa mašīna. Roberts un galvenais inženieris, Bill Yates, gaidīja expectantly kā Allen pārslēgts viņa iekrāvējs Programma uz Altair. Teletaipa sākās chugging jo tas velk papīra lentes cauri lentes lasītājs. Pagāja varbūt 15 minūtes ielādēt programmu. Tad teletaipa pēkšņi iespiests atmiņa ātra, tad gatavs ātru, un Allen sāka rakstīt maz tests komandas. Lai ikviena izbrīnu, programmatūra strādāja. Bija kļūdas, protams. Bet pats galvenais bija tas strādāja. Hikari: Vēlāk, ceļā uz $ 3,00 pusdienas Pancho s, lapseņu lidoja in loga pickup kravas automašīnu un Stung Allen uz rokas. Bet tajā brīdī nekas varētu sabojāt noskaņojumu. Altair tagad bija tās pamata, Pirmā komerciālā programmatūra mājas dators, ko pēc Paul Allen un Bill Vārti, veicot uzņēmējdarbību, kā Microsoft. DAVID J. Malan: Daudzi pateicoties mūsu diviem lasītājiem. [Aplausi] DAVID J. Malan: Tagad Jums ir jūsu izvēle, Pirms jūs atstāt, un sparkly vai spīd dark-- oh, uzgaidiet vienu sek, wait-- sparkly un spīd tumsā zilonis no CS50 pašu Cheng Gong. Hikari: Aw, paldies. DAVID J. Malan: All labi, paldies jums tik daudz. [Aplausi] DAVID J. Malan: Tātad patiess stāsts. Tas ir teikt, ka visi šie mašīnas un vieglums, ar kuru mēs izmantot tos tagad un veikt par pašsaprotamu, patiešām sākās šeit, tikai dažus soļus no šīs faktiskās teātra. Un tagad šodien, ja jums nav bijis, tas ir Maxwell Dworkin, dators zinātnes ēka, arī ap stūri. Un otrajā stāvā tas Ēka nav pakārt trīs lapas no sākotnējā avota kodu, kas Bill Gates un Paul Allen rakstīja. Faktiski, ja izmanto jūs tuvinātu jo jūs varat redzēt ne tikai viņu vārdi oriģināls veids, bet arī viņu parakstus, ka tie rotāti Dažus gadus atpakaļ, kad viņi pēdējo reizi apmeklēja. Bet to, kas bija īpaši pārliecinošs par šo ir tas, ko viņi noteikti, lai darīt bija uzrakstīt programmu, kas ļaut citiem cilvēkiem, lai rakstītu savas programmas. Tajā laikā viss tur bija ar šis Altair mašīnu, ko Mits. Un visi viņi nepieciešams, bija kaut kādā veidā padarot to viegli hobiju un cilvēkiem patīk mums šajā telpā faktiski programma ka ne vienmēr izpratne Montāžas kodu vai mašīnu kods, vai nedod Dievs, 0s un 1s. Mēs programmētāji, piemēram, tiem, kas šajā telpā, mēs vēlas, lai varētu izteikt sevi daudz vairāk kā pseido kodu pat ja tas ir mazliet vairāk gnīda picky nekā mēs runājām pagājušajā nedēļā. Mēs nevēlamies, lai rakstīt kodu, piemēram, tas, kas Pols Allens un Bils Geits darīja. Mēs, tā vietā, gribu uzrakstīt kodu, kas izskatās nedaudz vairāk lietotājam draudzīgu. Tagad tas ir valoda pazīstams kā BASIC. Un līniju numuri ir tas, ko jūs izmanto, lai vienkārši numuru līnijas koda ka jūs esat rakstiski. Mums nav pat ir darīt, ka šajās dienās. Bet jūs varat redzēt šeit cik PRINT "hello, pasaule" patiešām jādomā, drukāt tikai to. Un tā, ko Bill un Pāvils darīja, bija dot iespēju cilvēkiem rakstīt kodu kā šis vietā of-- ja jūs to apskatīt datorzinātnes wall-- kodu kā šis. Patiesībā, CS50 nesen bija iespēja sēdēt ar profesoru Hariju Lewis Computer Science departaments, kurš faktiski māca Bill Vārti pirms dažiem gadiem, un stāv šeit pirms šie trīs lapas izvilkumiem. Pieņemsim to apskatīt. HARRY LEWIS: Kas jums ir šeit ir uzskaitījums agrīnā gabals programmatūru raksta Bill Gates un Paul Allen, dibinātāji Microsoft. Tātad, kods ir interesanti divu iemeslu dēļ. Pirmkārt, tas kļuva Microsoft pirmais produkts, kas bija tulks BASIC programmēšanas valoda. Un, otrkārt, tas bija viens no pirmajiem mēģinājumu izveidot tulku tik parasta cilvēki varētu izmantot personālos datorus. Tātad Bill Gates bija bakalaura Hārvardā. Es sāku mācīt Hārvardā 1974.gadā. Tas tika izdarīts 1975. Tātad tas bija sākumā savu karjeru un agri manā karjerā. Es tiešām māca likumprojektu Protams, ap šo laiku. Paul Allen nebija Harvardas students, bet viņš bija vidusskola klasesbiedrs Bill Gates. Ja jūs nākt un skatīties tajā sarakstā, jūs faktiski atrast trešā nosaukums, Monte Davidoff, kurš bija Gates ir klasesbiedrs šeit Hārvardā. Labi, tāpēc šeit ir Interesanti komentāru šeit. Tā saka: "In 4K var dzēst kvadrātsakni bet cilpas vēl jāstrādā. " Labi, lai to, kas nozīmē, ka tur bija divi veidi, lai savāktu šo programmu. Viens no tiem bija palaist uz versiju Šīs Altair datora ka bija tikai 4K vārdus atmiņa, 4096 vārdi atmiņas. Bet liels versija bija 8K. Un tā, ko tas saka, ir ka 4K versiju jums bija izdzēst dažus kodu, lai padarītu to par vajadzīgu. Un viena no lietām kas būtu jāsvītro būtu kvadrātsakne rutīnas. Bet acīmredzot par cilpas vēl vajadzētu strādāt pat tad, kad jūs esat apkopojot leju lai tikai ar 4K versiju datora. DAVID J. Malan: Tātad viena no tēmām, kā mēs redzēsim datorzinātnēs, tas ir jēdziens layering un abstrakcija, un tiešām stāv uz pleciem ļaudīm, kuri ir ieradušies pirms mums, nevis atšķirībā no dažiem no Bill Gates un Paul Allen stāstījuma šeit. Un ko tas nozīmē, , ka šodien mēs varam veikt, lai pašsaprotamu, ka lietas ir patiesībā vieglāk mums rakstīt kodu. Patiešām kods, kā mēs teicām piektdien, ir vairāk tehniski sauc par avota kodu. Un tas ir šo angļu līdzīgu sintaksi , kas ir vairāk pareiza un vairāk labi definētas par kaut ko līdzīgu pseido kodu, kas nav formāla definīcija. Un šodien, ko mēs ejam pievērsties, ir pirmkods , kas izskatās kā šis, kas protams, pēc pirmā acu uzmetiena izskatās pilnīgi mistisks. Un godīgi sakot, tas ir veids, kā vairāk estētiski sarežģītāka nekā pamata programma ir. Visa šī programma nav, atgādināt, ir tas, ko mēs esam teikt? Tas vienkārši drukā "hello world." Un tomēr apskatīt visu sīkumi mums ir nepieciešams wrap ap šo ļoti vienkāršu frāzi. Bet pirms ilgi visu šīs līnijas un vairāk dos daudz labāku jēga jums. Un plūsma ir šāds. Kas mums ir vajadzīgs mūsu rīcībā ir ņemt kodu, piemēram avots kods, ka mēs tikko redzējām. Un mums ir nepieciešama jauna programma palaist to caur. Mums vajag algoritmu, kas var pārvērst pirmkodu, piemēram, tas, uz objekta kodu, 0s un 1s. Citiem vārdiem sakot, tas, ko mēs ejam mācīties šodien ir, kā to izdarīt, rakstiet pirmkods up top, nodot to kā ievade īpašu Programma pazīstams kā kompilatoru, un mēs spēsim ražot objekta kodu. Kas ir tikai iedomātā veids sakot, mēs veiksim kaut ka izskatās, nododiet to par programmu, ko sauc kompilatoru, ražošanas objekta kodu ka izskatās šādi. Tātad šie ir burtiski tipus 0s un 1s , kas tiek saprasts ar Intel datoru šajās dienās, ka, ja to interpretē CPU, smadzenes iekšpusē datora, burtiski izdrukāt, gluži vienkārši, "hello world." Tagad tur ir veids, kā vairāk 0s un 1s nekā jums ceru, varētu būt nepieciešams, ka. Bet tas ir tāpēc, ka mēs būvējam uz labu darījumu sarežģītības ka mēs varam turpmāk pieņemt par pašsaprotamu. Citiem vārdiem sakot, daudz gudru cilvēku ir devuši mums daudz atdzist instrumentus un jaudīgu programmatūru, ar kuru mēs tagad var veikt projektus mūsu pašu. Tātad, pieņemsim sāktu. Tā kā pagājušajā piektdienā, un par Problem Set 0 šonedēļ, jūs būsiet spēlē pasaulē, kas izskatās šādi. Sākot no šodienas, un par problēmu Noteikts 1 nākamnedēļ, kodu gatavojas izskatās nedaudz vairāk noslēpumains, bet funkcionāli ir būs vienādi. Tātad paziņojums, top ir Scratch, apakšā ir C. Atklāti Scratch ir daudz vairāk lietotājam draudzīgu un pieejamu. Bet, ja jūs tagad salīdzināt vizuāli augšas uz apakšas, tur ir sava veida viens pret vienu sarakste starp puzzle gabalus un valodas mēs esam par to, lai atskaņotu ar. Jo īpaši, teiksim, blue puzzle gabals up top, acīmredzot līdzvērtīgs kādā atslēgvārdu vai īpašu frāze šajā valodā sauc par C? AUDITORIJA: Printf. DAVID J. Malan: Printf. Tas nozīmē formatēts drukāšanu. Un tas ir tikai iedomātā veids, kā pateikt printf C būs paziņojumu vai funkciju kas drukā kaut uz ekrāna. Ko tas drukāt uz ekrāna? Kāds jums pateikt to iekšā citātus, iekšpusē iekavās. Tātad vēlreiz, protams, tur ir daudz sīkumi kas jums ir jāpatur prātā, iekavas, citātus, semikoliem, un tas viss. Bet visi, kas ir sava veida no blakus punktu. Interesanti takeaway tagad ir tas, ka teiksim bloks Scratch ir diezgan daudz līdzvērtīgs printf paziņojums C. Tikmēr, dzeltena puzzle gabals up top, kad zaļais karogs uzklikšķināt, ir iespējams ekvivalents kādā atslēgvārdu šeit? AUDITORIJA: Main. DAVID J. Malan: Tātad galvenais. Varbūt int, varbūt par spēkā neesošu. Bet galvenais veida izklausās tas ir svarīgi, un tas patiešām ir. Tātad, kad zaļais karogs uzklikšķināt ir, atkal, puzzle gabals , kas sākas Visa Scratch programma. Bet mēs gatavojamies, lai tagad sāktu zvanīt ka galvenais, šī funkcija pazīstams kā galveno. Tagad tikmēr mēs ņemšu vispārināt to šādi. Mēs varētu aicināt teikt funkciju. Un tas varētu izskatīties īpaši kā šis. Nu, ko par cilpas? Ja mēs gribam, lai sāktu pārveidot vai tulkojot vairāk Scratch C, šī lieta šeit acīmredzot tikko saka "hello world" uz visiem laikiem. Tātad, ja jūs saista šos skriptus ar kaķis Scratch, tas ir tikai gatavojas glabāt sakot sava veida karikatūra burbulis, "Hello world, hello world, hello pasaule, "ad nauseum, uz visiem laikiem. Ja mēs vēlamies darīt kaut ko līdzīgu C, tas notiek, lai izskatās mazliet noslēpumains. Bet mēs varam sasniegt to pašu rezultātu, jo mēs galu galā uzzināt, ar sintaksi, kā šis. Es esmu gatavojas izmantot printf atkal, jo beigās, dienā Es gribu, lai drukātu "Hello World". Un es esmu, acīmredzot, izmantojot atslēgvārds, kas nav uz visiem laikiem. Tas ir nevis vārds, bet. Bet tikai semantiski in Angļu, bet sava veida iesaka kādu sakaru līnijai vai ciklā. Tāpēc, ka notiek, ir atslēgvārds, ka C izmanto. Un, lai gan ir taisnība, kāpēc brīdi taisnība efektīvi nozīmē uz visiem laikiem? Nu, bet, kā mēs drīz novērtēt visu vairāk, ir šo parenthetical blakus tai kur var ievietot Būla izteiksme. Un tik ilgi, kamēr, ka izteiksme ir taisnība, šo kodu, kā apzīmē starp šiem diviem cirtaini bikšturi, kā mēs saucam tos, būs tikai jāuztur atkal un atkal. Tik patiess ir taisnība. Tāpēc, kamēr patiesajiem līdzekļiem vienkārši darīt to uz visiem laikiem. Tas ir gandrīz stulba būvēt izteikt sevi. Bet nebija mūžīgi atslēgvārds C. Tur bija kamēr. Un tur bija ļoti vienkāršs Būla izteiksme tāpat taisnība. Un tā tas, mēs redzēsim, sasniedz to pašu rezultātu. Kā gan citādi jūs varētu īstenot cilpu? Nu, Scratch jūs varētu grūti koda konkrētu skaitu iterāciju cilpa šeit. Un tā tas ir tieši tas, ko mēs varētu darīt šajā versijā C, kurā mums ir tā aicināja cilpa. Un cilpa šeit notiek atkārtot, nedaudz cryptically, no vērtības 0 uz augšu lai, bet mazāks par 10. Tagad mainīgie nulles. Jūs, iespējams, nav bijis izdevība izmantot šos. Bet kāda jēga, vispār, ir mainīgs vai mēs sakām pagājušajā nedēļā? Kas tas ir? Mērķauditorija: Punkti. DAVID J. Malan: Lai norādītu? Ak, punkti. OK, sekotu punktiem , piemēram, tādā spēle. Vai vispār dara , kas ar mainīgo? Kas ir lietderība no tiem? AUDITORIJA: Memory. DAVID J. Malan: Jā, tā atmiņa. Tas ir, lai uzglabātu kaut ko. Un veida dumjš vizuālās I izmantoti pēdējo reizi bija kā šī stikla trauks. Un, ja mēs vēlējāmies, lai uzglabātu kaut kas iekšā ir mainīgs, piemēram, tieši tagad vērtība ir seši, jo tur seši galda tenisa bumbiņas šeit. Tas ir tikai sava veida uzglabāšanas konteiners, ka zem motora pārsega tiek īstenots ar biti, 0s un 1s, Taču dators notiek to darīt. Tātad Scratch, ja mēs vēlas, lai būtu mainīgo, mēs varam izmantot oranža bloku kā šis. Mēs to saucam par skaitītāju šajā konkrētajā gadījumā. Es inicializēts to 0. Un ko tas man tad darīt? Uz visiem laikiem, saka skaitītājs, kas, ja tu spēlē ar, ka nulles, jūs vienkārši redzēt Scratch. Kaķis vai kāds kostīms jūs likts uz viņu runās numuru jautājumā. Mainīt skaitītājs ar 1 ir tāpat palielināšanai līdz 1. Un tā tas notiek, lai skaitīt no kāda arī tā, ko? No 0 til bezgalībai, vai līdz Scratch pārtraukumiem, vai līdz brīdim, kad jums veida zaudēt interesi skatoties cik augstu viņš tiešām var rēķināties. Tātad, kā mēs varbūt pārvērst to C? Tas notiek, lai izskatās mazliet noslēpumains. Bet atkal, ja paskatās uz katru no šīm līnijām atsevišķi viņi veida lineup kopumā. Tātad acīmredzot int gatavojas ir kāda īpaša nozīme C. Mēs redzam, ka atkal. Kā malā, tas nozīmē skaitlim. Tātad, tas nozīmē tikai numuru. Tāpēc, ka tas ir veids stikla trauks Es gribu, viens ka var saglabāt numurus, nav ping tenisa bumbiņas. Un es esmu gatavojas izmantot vienādības zīmi tur, lai piešķirtu tai vērtību 0. Tātad tas ir diezgan līdzīgi komplektu counter līdz 0, bet C. Tikmēr, lai gan ir taisnība, ka bija ekvivalents, protams, uz visiem laikiem, pat ja tas ir mazliet noslēpumains, un tad iekšpusē cirtaini lencēm. Un jūs varat iedomāties šo cirtaini bikšturi, ko jūs varat rakstīt uz tastatūras, kas tiešām ir kā izliekumu šie dzeltenās cilpa bloki nulles. Tā ietver vairākas līnijas kodu. Printf kļūst nedaudz biedējošu tagad, jo I redzēt ne tikai citē iekavās. Bet to, kas vēl ir jauna sintaktiski šajā piemērā? Tur procentiem d. Un tad slīpsvītru n ir tur. Mēs to redzam, ka līdz šim, pat gan man neminēja to. Tad tur ir komats. Un tad tur ir skaitītājs. Bet mēs redzēsim tikai brīdis, ka tas ir tikai standarta veids, kā pateikt izdrukāt "Decimal numuru" quote, likt pēdiņas beigās, daži decimāls skaitlis. Bet es esmu gatavojas jums pastāstīt vēlāk kas tas decimal numurs ir. Tātad fakts, ka tur ir komats Šajā līnijas teiciens printf, nozīmē, iet uz priekšu un izdrukāt daži decimāls skaitlis. Ak, un starp citu, skaits ir kāda vērtība šim mainīgajam ir. Un tāpēc, lai padarītu šo vairāk skaidrs, mēs redzēsim piemēru pirms ilgi iesaistot tieši printf saistībā ar nekustamā C programmas. Tagad tikai satīt kādu Šo konstrukcijas. Būla izteiksmes, iespējams, jums nav izdevība tos izmantot savā programmā bet jūs varētu ļoti labi, it īpaši, ja, izmantojot nosacījumus. Un tāpēc šie divi piemēri no Scratch nozīmē, ja x ir mazāks nekā y, vai arī, ja x ir mazāks nekā y un y ir mazāks nekā z, kā mēs varbūt tulkot, ka? Nu, C tas ir tikai gatavojas izskatās šādi. A maz mistisks, vairāk iekavas, daži dīvaini ampersands, bet pašos pamatos idejas ir tikpat vienkārša kā viņi ir puzzle gabals pasaulē. Mēs vienkārši pārbaudīt, ja kaut kas ir mazāks par kaut ko citu. Kā par apstākļiem? Īsumā angļu valodā, ko dara rieciens Scratch kodu Vai jūs teiktu? AUDITORIJA: Salīdzina divus numurus. DAVID J. Malan: Salīdzina divas skaitļi, un, ja X ir mazāks par y tā saka tik daudz. Ja x ir lielāks par y tā saka tik daudz, kas cits ja x ir vienāds ar y tā saka par daudz. Tagad, kad bija x un y nāk no? Kurš zina. Šī Scratch rieciens kods ir ārpus konteksta. Bet tas, ko mēs vēlamies darīt tagad, ir tulkot tas tikai brīdi, lai redzētu. Tātad, kā jūs iegūt apmierināti šonedēļ Problēma Set 0 spēlējot šajā pasaulē pa kreisi, realizēt ka idejas netiek mainās šonedēļ vai nākamā vai ārpus tās. Mēs vienkārši gatavojas sāciet rakstīt lietas citādā veidā ar mūsu tastatūra nevis mūsu peli. Tātad, ja x ir mazāks nekā y, un tur ir dažas iekavas tur, tad tur ir dažas cirtaini bikšturi atkal veida iekapsulēt to tāpat kā dzeltenā puzzle gabalus darīt. Un es esmu gatavojas printf x ir mazāks nekā y un tā tālāk. Kas ir jauka par C, kā jūs varat redzēt šeit, ir tas, ka jums nav saņemt šo ligzdošanas, ligzdošanas, ligzdošanas, ka ir obligāti gatavojas virzīt savu kodu uz labo pusi. Varat tā vietā ir viss lineup glīti patīk. Bet tas ir tikai estētisks detaļa mēs redzēsim atkal pirms ilgi. Viss labi. Tāpēc, ka mūs noved atpakaļ pie šī mistisks meklē programma. Pieņemsim faktiski rakstīt kādu kodu. Tagad, kā jūs iet par rakstveidā kodu? Visus šos gadus, ka esat piederošās Mac vai PC, galda vai portatīvo datoru, jūs esat faktiski bija spējas lai sāktu rakstīt programmēšanas kodu. Bet jūs, iespējams, trūkst īpaša veida programmas. Jūs noteikti var rakstīt kodu. Bet jūs varat ne vienmēr, no kastes, konvertētu šo pirmkodu par objekta kodu, 0s un 1s bez kādiem datorā? AUDITORIJA: Compiler. DAVID J. Malan: Tātad kompilatoru, tiesības. Tagad lielākā daļa no jums, iespējams, nepieder kompilatoru, nekad lejupielādēt kompilatoru. Bet jūs redzēsiet, jūs varat lejupielādēt to tāpat kā lielākā daļa citu gabals programmatūru. Pasaulē Mac OS, jūs varētu lejupielādēt vai jau lejupielādētas kaut kas ko sauc Xcode vai GCC vai šķindēt. Ja jums nāk no Logi pasaule jums varētu lejupielādējis Visual Studio, Visual Basic, vidēs, piemēram, ka. Ir desmitiem kompilatoru šajās dienās, ka jūs varētu izmantot. Bet pietrūkst to šeit ir tā, ka tas būtu sāpes un, atklāti sakot, tehnoloģiskā murgs simtiem cilvēku ar dažādu datoru konfigurācijas, visiem konfigurēt savas mašīnas tieši tādā pašā veidā tāpēc, ka mēs visi varam būt tajā pašā lapā. Tātad, ko mēs, tā vietā, do in CS50 ir mēs dodam jums standarts vide, Linux vidi, kas ir skatīsies mazliet kaut kas līdzīgs šim. Jūs redzēsiet vairāk par to Problem Set 1 specifikācija, kas dosies online šo piektdien naktī. Un ko tas nozīmē ir tas, ka tu turpmāk gatavojas, lai varētu lejupielādēt un instalēt programmu sauc CS50 Appliance. Un jūs gatavojas lejupielādēt un instalēt citu programmu, ko sauc hypervisor, kas ir tikai iedomātā veids, kā to panākt. Vai jums pieder Mac vai PC vai Linux dators vai Solaris dators, vai kāds traks darbības Sistēma jūs strādājat, jūs gatavojas, lai lejupielādētu programmu sauc Hypervisor, kas ir gatavojas palaist CS50 Appliance datorā neatkarīgi no jūsu operētājsistēma ir. Hypervisor citiem vārdiem pārvērš Mūsu stuff jebkādā valodā, neatkarīgi instrukciju Jūsu paša datora saprot. Tātad tas ir izkārtojums. Un atkal, tas ir sava veida Tematisko in datora zinātne, balstoties uz augšu lietas. Jums varētu būt Windows. Jums varētu būt Mac OS. Bet sākot ar nākamo nedēļu tu esi gatavojas lejupielādējis bezmaksas gabals programmatūru sauc hypervisor. Jūs esat gatavojas lejupielādējis gabals programmatūras sauc CS50 Appliance. Kas notiek, lai palaistu ar hypervisor, kas gatavojas palaist datorā. Un gala rezultāts ir ka mums visiem būs ir vienkāršs logu kā šo jūsu Mac vai PC , kas dod mums ilūziju visu darbojas to pašu operētājsistēmu, bez jebkāda cita ietekme uz jūsu datora. Un jūs varat pilnekrāna tā un būtībā uzvesties it kā jūs izmantojat operētājsistēmas sauc Linux, kas ir tas, ko CS50 Ierīce ir balstīta uz. Tātad pieņemsim faktiski izmantot šo Tagad uzrakstīt programmu. Jūs varat uzrakstīt programmu izmantojot Microsoft Word. Jūs varat uzrakstīt programmu izmantojot TextEdit vai Notepad, vai WordPad, vai diezgan daudz jebkuru vārdu apstrādes programma esat kādreiz izmanto. Bet realitāte ir jums nevajadzētu izmantot tiešām kādu no šīm programmām. Jums noteikti nevajadzētu lietot kaut kas, piemēram, Microsoft Word, kas ir drosmīga apšuvumu un kursīvā, un lielāki fonti un mazākas fontus, jo dators nav rūp, kāds no tā. Viss dators ir gatavojas rūp, ir Angļu tāpat instrukcijas rakstītas C. Tātad, ko mēs darīsim iekšā no CS50 Appliance ir izmantot programmu brīvi pieejami, un tas ir iepriekš uzstādīta šajā ierīce, ko sauc Gedit. Un gedit ir vienkārši super vienkāršs teksta redaktoru, piemēram, Mac OS ir TextEdit, piemēram, Windows Notepad, kas notiek, lai izskatās mazliet kaut kas līdzīgs šim. Tātad pieņemsim faktiski nav apskatīt diapozitīvu šo. Bet pieņemsim faktiski iedziļināties vide pati. Es iešu uz priekšu un ieiet šajā citā logā, manam CS50 Appliance, kas es esmu iepriekš instalēta uz manu klēpjdators šeit. Ievērojiet, ka, piemēram, Windows un Mac OS, tas ieguva dažas izvēlnes. Piemēram, Windows tas liek tas tur lejā vietā Mac OS, kas liek to uz leju tur. Bet realitāte ir tā visa veida pašu. Un šeit ir vesels ķekars programmatūru. Tur ir Dropbox. Tur ir viss ķekars aksesuāri, grafiskās programmas, ka mēs izmantot vēlāk termiņu problēmu kopu. Tur interneta pārlūku uzcelta tik ka tas ir pilnvērtīga dators iekšpusē datoru. Bet es esmu gatavojas klikšķi šis kreisās malas balto ikonu šeit, kas ir ikona gedit. Un tas notiek, lai atvērtu logu ka ir trīs paneļi to, kreisās vienu, top viens, un apakšā vienu. Tagad tas ir šajā augšējā labajā viens, ka Es esmu gatavojas faktiski rakstīt kādu kodu. Tātad, pieņemsim darīt ,. Es iešu uz File, Save. Un jūs, iespējams, nav kādreiz redzējis šis konkrētais logs pirms. Bet tas ir, piemēram, Mac OS vai Windows. Tas ir tikai logs ar visas mapes ka man ir iekšā šajā datorā. Un es esmu gatavojas, lai saglabātu failu kā hello.c. Un es iešu priekšu un noklikšķiniet uz Saglabāt. Un tagad paziņojums man ir cilni kreisajā augšējā stūrī sauc hello.c. Tātad iespējams, ir diezgan iepazinušies pat ja jūs esat nav Pirms izmanto šo konkrēto programmu. Un tagad es esmu gatavojas rakstīt tiem diezgan mistisks secība komandām ka mēs redzējām pirms brīža. Iekļaut, standarta I / O.h. Vairāk par šo drīz. Int galvenais anulēts, open cirtaini lencēm, slēgta cirtaini lencēm. Un tad iekšā tur, manuprāt, ir kur mums bija "Hello World", semikolu. Un tagad ietaupīt. Tātad šī ir programma rakstīts C, rakstīts, tāpēc, pirmkodu. Bet es nevaru vienkārši palaist šo programmu. Es veida gribu divkāršot noklikšķiniet uz ikonas, kaut kur, bet neviens ikona pastāv cits nekā pirmkoda failā. Kas, atkal, ir process, ka šobrīd Man vajag, lai palaistu šo failu cauri? AUDITORIJA: Compiler. DAVID J. Malan: Tātad kompilatoru. Tātad dažādiem datoriem tu darīt dažādos veidos. Bet tas, ko mēs esam darījuši šeit CS50 Appliance, kas ir pārstāvis, kā jūs varētu izdarītu daudzās dažādās sistēmās, ir Es esmu vienkārši gatavojas palaist komandu sauc marka. Un marka ir burtiski gatavojas to darīt. Make me programma. Tātad, lai gatavojas palaist kompilators par mani. Un programmas nosaukums Es gribu, lai ir sveiki. Tagad darīt ir programma. Un lai ir pietiekami gudrs saprast, ka, ja es saku darīt sveiki, tas skatīsies automātiski par failu sauc hello.c tikai tāpēc, ka tas veids, kā tas ir konfigurēts. Tātad, kad es tagad hit Enter šeit, tas traks mistisks line tikko got izpildīts. Un ticiet man, pirms sen, tikai dienu laikā jūs saprotat, ko visi Minētās nesakarīgiem līdzekļiem. Bet tagad, tikai zināt, kas padara ieslēgusies izpilde kompilatoru. Citiem vārdiem sakot, tā konstatēja kompilators manā datorā kas ir iepriekš instalēta uz CS50 Appliance ka mēs pasniedzam jums Problēmas Set 1. Un tas tad ņēma hello.c kā ievadi, un ražo acīmredzot 0s un 1s, kā produkciju. Un pēc noklusējuma, ko tā dara, ir tas ietaupa šie 0s un 1s failā sauc sveiki. Un, lai gan šī sintakse too varētu būt jauns, lai jūs, vienkārši sakot, dot slash sveiki būs Veidi, ar kuriem es palaist šo programmu. Tagad un vismaz pāris nedēļām, gandrīz visas programmas mēs rakstīt gribam būt melnā un baltā teksta logi. Ne pelēm, ne noklikšķinot, nav logu, nav ikonas. Mēs ejam, lai saglabātu tā vienkārši un koncentrēties uz notikušo idejām sākotnēji, pirms mēs uz kaut ko augstāka līmeņa, piemēram, kā izcelties spēli, ka mēs runājām par pirmajā lekcijā pagājušajā nedēļā. Tātad, kad es hit Enter šeit, tas ir ekvivalents tekstu tikai vides divkāršot uz ikonas sauc sveiki. Ko Jūs sagaidāt gribu notikt, ja es hit Enter, tad? AUDITORIJA: Tas būs print "Hello World". DAVID J. Malan: Cerams tas būs drukāt "Hello World". Un tiešām tā darīja. Tagad tur ir bijis dažas mistisks sintakse šeit. Pieņemsim attīt atpakaļ, lai tikai brīdis, un redzēt, ja mēs nevar sākt secināt tikai pēc tinkering, mēģinot un ja, par to, kas notiek šeit. Ko darīt, ja es varu atbrīvoties no slīpsvītru n? Tagad daži no jums, kas esat ieprogrammēts pirms iespējams zināt, uzreiz, ko tas nozīmē. Bet tiem no jums, kas esat nekad ieprogrammēts iepriekš, vismaz domāju pie sevis, kas notiek mainīties, kad es atkārto šo programmu? Tāpēc es esmu gatavojas doties atpakaļ uz leju, lai manu maz melns un balts logs, kurā ir logs, kurā Es varu sastādīt to. Es esmu gatavojas recompile Sveiki. Mēs ejam, lai redzētu pašu mistisks secība komandas. Un es esmu gatavojas darīt dot slīpsvītru sveiki. Un tagad kāds, ja tu būtu, kurš nekad nav ieprogrammēta iepriekš, kādi varētu būt atšķirīgs šoreiz? Jā. AUDITORIJA: Tas neapstāsies iespiešana "hello world." DAVID J. Malan: Tas būs kuri paredzēti, žēl? AUDITORIJA: Tas neapstāsies drukāšana? DAVID J. Malan: Tas nebūs stop drukāšanas "hello world." Tāpēc nav slikta ideja. Citas idejas? Jā. AUDITORIJA: Kļūdas ziņojums? DAVID J. Malan: Kļūda ziņa, OK, varētu būt. Kas vēl? AUDITORIJA: Tas varētu drukāt kronšteins ar semikolu, kā arī? DAVID J. Malan: varētu drukāt kronšteins ar semikolu, kā arī. Tāpēc varbūt, ka slīpsvītru, tad ir daži veida terminous tas ir svarīgi. Jebkuras citas domas? Tātad visas labas idejas. Un patiesībā, tas notiek būt kļūdas ziņojums. Tas ir iespējams, visticamāk būt vispār atbilde lai tuvāko nedēļu laikā kā mēs mācīties kodu šeit. Bet tagad atcerieties, ka datori darīt tikai to, ko tu viņiem darīt. Līdzīgi kā smieklīgi zemesriekstu sviests un želejas piemērs. Mūsu cilvēku datori tika tikai šķietamu darīt to, ko jūs viņiem teicu, lai to izdarītu. Tātad šajā gadījumā, ja jūs nestāstiet datoru , lai pārvietotu šo mirgojošo kursoru Nākamais rindā, tas nav gatavojas to darīt. Tātad, kad es palaist šo programmu Tagad, paziņojums starpību. Izskatās bug. Tas ir estētisks bug, varbūt. Bet to, kas ir atšķirīgs par šo izlaide pret pēdējais acīmredzami? Jā. AUDITORIJA: Tas nedarīja jaunu līniju. DAVID J. Malan: Tas nav izdarījusi jaunu līniju. Tagad tiem, kuri ir varbūt veiktos tīmekļa lapas pirms, jūs varētu zināt BR tag vai tag punkts ļoti līdzīgs garā. Interneta pārlūks būs ignorēt jums līdz Jums pateikt to, tieši to, ko darīt. Tāpat, ir valodas, piemēram, C tikai gatavojas darīt to, ko jūs liekat darīt. Tā iemesla dēļ, ka visi no šiem piemēriem, līdz šim, ir sava veida pagadās bija šo slīpsvītru tur, kas ir līdzekļi ar kuru jūs izteikt sevi kā jaunu līnijas raksturu, lai runāt. Un jūs varat veida novērtēt, iespējams, ka tas izskatās veida stulba ja nekas cits. Ja es gribēju jaunu līniju, tikko hitting Enter un pēc tam veida no butchering līdzīgu, ka kodu nav īsti berzēt jums pareizo ceļu. Un pat tad, ja jums nav rūp šajā brīdī, jūs apzināties, ka tas nav sevišķi labs meklē gabals kodu. Un tā, ko pasaule Pirms nolēma gadi ir ka, ja jūs vēlaties, lai kursoru uz jaunu līniju skaidri, Jums ir skaidri jāsaka Jaunā līnija, slīpsvītru n. Un tur ir daži citi simbolus, piemēram, ka. Bet tagad mēs vienkārši koncentrēties uz slīpsvītru n. Tagad pieņemsim padarīt programmu nedaudz vairāk interesants. Es iešu uz priekšu un šoreiz atvērt jaunu failu. Es esmu gatavojas, lai saglabātu šo kā sveiks-1.C. Un tikai sākas, es esmu gatavojas iet nodot to manā Dropbox mapē. Kā jūs redzēsiet šajā CS50 dokumentācija ierīces, vēlāk šonedēļ Problēma Noteikts 1, mēs mudināt jums izmantot Dropbox vai kādu līdzvērtīgu pakalpojumu, jo tad visi jūsu kods ir būs jāpapildina automātiski. Un tā tas ir iemesls, kāpēc es esmu devies šajā mapē šeit. Un tagad es esmu gatavojas rakstīt nedaudz atšķirīga programma. Iekļaut, standarta I / O.h, int galvenais anulēts. Un tad šeit printf, sveiki pasaulē, , kas ir tieši tāds pats, kā iepriekš. Bet tagad es gribu izdrukāt kaut ko tas ir nedaudz atšķirīgs. Es gribu, lai izdrukāt, saka: "Sveiki, David." Labi, tā acīmredzot, tas būtu cerams būt gadījums, ka, ja es recompile šī programma, atkārto to, tas notiek teikt "Hello, David." Bet ko darīt, ja es gribu, lai ieviestu šāda veida mainīgo, jēdziens konteinerā, kas notiek uzglabāt D-a-v-i-d un nav grūti koda to manā programmā. Nu ko, ja es sāktu darīt kaut kas līdzīgs šim? String s, tāpēc tas ir mainīgs. Ja vēlaties virkni, pazīstama arī kā vārdu vai frāzi. Rakstzīmju secība ir tas, ko mēs plānošanas saucam virkni. Mēs esam tikai gatavojas vispārēji zvanu tas s, jo tas ir jauki vienkāršs nosaukums. Bet es varētu to nosaukt neko. Es esmu gatavojas teikt String s vienāds quote likt pēdiņas beigās, "Dāvids," semikols. Un tagad es gribu, lai ievietotu D--v-i-d par to, kas es esmu druka. Un pirms mēs redzēju teaser par ekrāna kādu īpašu sintaksi , kas ļāva mums aizstājējs vērtību. Kāda bija īpašs simbols pirms pāris slaidiem? Tik procentiem. Tajā laikā tā bija procenti d par decimāls skaitlis. Tas nav īsti šķiet būtisks. Izrādās, tur ir cits procenti simbols, kas ir procenti s, kas apzīmē par vietturi virkni. Tāpēc tagad, ir ļoti vienkārši, es esmu gatavojas doties darīt sveiki-1, jo šo failu sauc sveiki-1.c, un hit Enter. Un es ieskrūvē augšu. Kas notiek? Nu, lūk, kur mums ir jāsāk saprotu, ka mēs esam šo komandu line vidē, šis Tikai teksts vidi. Nav noklikšķinot uz ikonas kā mapes tiesības tagad. Un domāju, ka atpakaļ pirms brīža. Kādā mapē darīju es saku Es biju ietaupot savu kodu? Tātad Dropbox mapi. Varēja sauc par neko. Bet tas notiek, lai varētu saukt Dropbox. Tāpēc man kaut kā ir nepieciešams, lai dubultklikšķi uz ka Dropbox mapi, lai iegūtu tajā un saņemt pie mana kods sauc sveiki-1.c. Patiesībā, ļaujiet man iet uz priekšu un samazinātu šis logs tikai brīdi. Tāpat kā Windows un Mac OS, tur ir mapes Linux. Ir mapes CS50 Appliance. Tas ir tikai tagad mēs esam norobežošanai sevi šajā teksta vidē. Bet, ja es dubultā klikšķi uz Dropbox, ievērosiet, ka ir fails, ko es gribu, lai apkopotu. Bet man ir nepieciešams šī melnā un baltā krāsā termināla logu, lai runāt. Bet man ir nepieciešams, tāpēc, lai pārvietotos šajā mapē vai direktorijā. Tik nedaudz mistisks, bet jūs pierast pie šo pārāk. Pasaulē Linux, kas atkal ir darba Sistēma mēs esam darbojas iekšpusē CS50 Appliance, tur ir komanda, ko sauc par CD. Kas nozīmē, ka es varu darīt CD, telpu, Dropbox. CD, mainīt direktoriju. Labi. Atpakaļ dienā, kad cilvēki bija izgudrojot datorus un darbojas sistēmām, piemēram, tas, viņi gribēja Ierakstiet Vismazāk keystrokes iespējams. Tāpēc vienkāršākais veids, kā pateikt maiņa direktorija bija CD. Tātad, ja es hit CD, kosmosa Dropbox, paziņojums, kas šeit ir mainījies. Iekšpusē iekavās ierīce ir sava veida no humoring mani un atgādinot man, kur es esmu. Tātad atvērta mape ir Dropbox. Ja es tagad tipa ls par saraksta, atkal īss, tāpēc, ka cilvēki nevēlējās tipa atpakaļ dienā l-i-s-t. Tāpēc viņi nevis padarīja ls. Enter. Paziņojums Es redzu divas lietas, Sveiki-1.C, un tad šī noslēpumains lieta, avots 1m. Tas ir tikai mans veids, kā pateikt pirmkods nedēļu 1 Pirmdiena. Tas ir mape es lejupielādēt no CS50 Mājas, ka es agrāk šodien un vienkārši nodot to ierīce iepriekš. Bet tagad vienīgā lieta mums rūp, ir padarīt šo programmu. Tātad, kad es tipa darīt sveiki-1, Enter. Damn to. Kaut kas nogāja greizi. Tāpēc pieņemsim diedelēt šo intervālu. Un diemžēl tas ir, ja lietas get nedaudz stresa sākumā, vismaz, ja esat nekad ieprogrammēts agrāk. Mans dievs. Es uzrakstīju divas līnijas programmu un Man ir četras līnijas kļūdas. Tātad, kas notiek šeit. Pirmkārt un galvenokārt, vienmēr ritināt atpakaļ augšu un atrast pirmo kļūdas ziņojumu, jo nereti sastādītāji tikko apmulst ar to, ko jūs un es daru. Sastādītāji ir diezgan mēms. Tie būs darīt tikai to, ko tu viņiem darīt. Un, ja jūs sajaukt, viņi ir vienkārši gatavojas veida uzmest rokas un varbūt mest vairāk kļūdu ziņojumus nekā patiesībā ir būtiski. Tātad, aplūkosim pirmās. Super mistisks sākumā. Bet paziņojums, šeit ir vārds fails, kurā es ieskrūvē augšu acīmredzot. Colon 5, resnās zarnas 5 nozīmē tikai uz 5 līnija pie piektajā raksturs. Tātad piektā kolonna rakstzīmes, ja jūs, kļūda. Izmantošana nedeklarētas identifikators virkni. Vai jūs domājāt standarta n? Nē, es gribēju virkni. Un tad tas ir sava veida kopēšana un aplīmēšana ko es drukāti, lai tiešām pievērst manu uzmanību uz to, kur es ieskrūvē augšu. Tātad kādu iemeslu dēļ C, vai vismaz kompilators nesaprot vārdu virkni. Un tas ir tāpēc, ka mēs, kas to uz augšu. Tātad stīgu neeksistē in C. Kas CS50 dara, pirmajās pāris nedēļās tikai klasē, ir mēs piedāvājam dažas mācības diski, lai runāt. Un mēs uzdodam šos mācību riteņiem iekšpusē īpašu failu sauc CS50.h. Tātad šis ir otrais no diviem faila vārdi, kas acīmredzot beidzas dot h. Pieņemsim attīt atpakaļ. Printf ir paziņojums vai funkcija ka acīmredzot drukā kaut ko uz ekrāna. Bet jūs neredzat mani īstenot printf, labi. Pirms kāds gadus īstenoti printf. Kādā fails jūs derēt viņš vai viņai nodot īstenošanu par printf, koda printf? Failā sauc standarta I / O.h. Faktiski, tas ir iespējams, divi faili, standarta I / O.h, kas apzīmē galveni failu, un standarta I / O.c, kas apzīmē C pirmkodu. Lai viņš vai viņa pirms dažiem gadiem plopped kods, kas viņi rakstīja minētajā failā tā, ka cilvēkiem patīk mums gadus vēlāk var iekļaut to, tā sakot, mūsu pašu programmās. Un tiešām, tas, ko mārciņu zīme , kam seko vārds ietver dara. Tas izskatās uz vietējo cieto disku, atrod failu ar nosaukumu standarta I / O.h, un pēc tam efektīvi kopijas un pastas to iekšā manas failu. Tāpēc tagad mana programma zina kā drukāt uz ekrāna. Tātad, šī loģika, kur ir virkne definēta? AUDITORIJA: CS50.h. DAVID J. Malan: CS50.h. Un, protams, ka tas, ko mēs, kodols darbinieki, ir darīts. Mēs esam izgudrojuši dažas datu tipi, tā sakot, kā virkni, papildus tiem, jūs iegūt par brīvu, piemēram, int. Un mēs redzēsim citiem kā char par raksturu un vēl dažus. Iekšpusē CS50.h acīmredzot vismaz daži pieminēšana virkni. Tāpēc tagad ļaujiet man iet uz priekšu un atkārto make sveiki-1. Es tuvinātu atkal un šķērsot manu pirkstu. Tagad pēc tam, vienu mainīties Es noteikti leitas. Bet damn it. Vairāk procenti nekā datu argumentiem. Ko es daru nepareizi šoreiz? Tātad, tas joprojām ir diezgan noslēpumains. Bet šī kļūda ir ieslēgts 7 līnijas un raksturu 21. Tāpēc iesim apskatīt šeit. Tas ir nedaudz smalks. Bet, ja jūs domājat par to, ko fundamentālās idejas šeit ir, varbūt mēs varam diedelēt to intervālu. Tātad printf ir nosaukums funkciju. Iekavas, līdz šim, ir tāpat kā tas, ko mēs ieliekam apkārt sīkumi mēs iet par izejvielām, līdz funkciju. Viss labi, tikai patvaļīga cilvēka konvencija. Izmantot iekavas. Inside šo iekavās mēs esam liekot pēdiņās, un tad virkne, piemēram, "Hello World". Bet šīs agrākās piemēram ļoti īsi darīja mēs skatāmies ar nulles. Un mums bija procentu d, kas cits bija iekšā no tiem iekavās ka man uzsauca mutiski? Jā. AUDITORIJA: Tātad tas ir tas, ko jūs lietojat [Dzirdams] no iekšpuses [nedzirdama] kādi tie [nedzirdama]? DAVID J. Malan: Tieši tā. Tātad mums bija procentu d. Bet tad mums bija tuvu quote, komats, skaitītājs. Labi. Mēs norādīts, ko mēs gribam to darīt, kā viettura. Tātad, ko es esmu gatavojas darīt, šeit ir komats, ko tu gribi likt? AUDITORIJA: S. DAVID J. Malan: S, jo s šajā gadījumā ir nosaukums uzglabāšanas tvertnes. Tas ir vārds, ka stikla traukā. Tā kā pirms tam bija skaitītājs, ka vienkāršs Scratch piemērs mēs paskatījās. Tāpēc tagad ir veikušas divas izmaiņas, ļaujiet man tuvinātu un mēģiniet vēlreiz apkopot šo programmu. Tagad es redzu, ka mistisks līniju. Bet tas ir patiesībā nosaukt par kompilatoru. Šķindēt ir nosaukums kompilatoru. Padarīt ir tikai ietaupīt mani galvassāpes jebkad ierakstot, ka ilgi traks komandu out. Tāpēc tagad, ja man dot slash sveiki-1, Man vajadzētu redzēt "hello, David." Diezgan underwhelming, lai gan, vai ne? Mēs būtu varējuši izdarīt Tas daudz vairāk vienkārši bez runā par mainīgajiem un CS50.h un tas viss. Tātad pieņemsim padara nedaudz vairāk interesants. Papildus CS50.h, ar lietām, piemēram, stīgu pasludināja, CS50 bibliotēka arī ir dažas funkcijas. Pirms tik tāpat kā gadu, kāds uzrakstīja printf un nodot to standarta I / O.h un kādu citu failu. Mēs, CS50 darbinieki, rakstīja funkciju sauc getchar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, un mēs ievietot tās iekšpusē failu sauc CS50.h un CS50.c. Un mēs viņus iekšā no CS50 Appliance. Un cilvēki var arī lejupielādēt tos tiešsaistē, ja tie vēlas, lai viņus par to pašu datoriem, kā arī. Kas nozīmē, ka mēs esam radījuši funkcijas, kas saņem datus no lietotāja. Es nezinu, ko visi Šo datu veidi. GetInt ir veida vienkārša, piemēram, get vesels skaitlis kaut no lietotāja. Un GetString ir iespējams, piemēram, get vārds vai teikums no lietotāja. Tāpēc pieņemsim koncentrēties uz to. Un es iešu atpakaļ ierīce, un es esmu gatavojas iet uz priekšu un saglabājiet šo failu kā, sauksim tā sveiki-2.c kā manu otro versiju. Un pieņemsim veikt pāris izmaiņas. Šoreiz vietā grūti kodēšanas David, kas padara neticami konsekventa bet underwhelming programma Ko darīt, ja es tā vietā darīt GetString? Tagad paziņojums GetString ir atvērta iekavas, slēgts iekavas, jo tas nav vajadzīgs ievadi. Tas ir tikai gatavojas iet saņemt string no lietotāja. Un tagad vārds par citu sintaksi. Semikoliem tikai beigās līnijas kodu. Jums nav nepieciešams tos visur. Bet tas tikai nozīmē, ka es esmu darīts ar šo līniju kodu. Ļaujiet man pāriet uz citu paziņojums vai funkcija. String deklarē mainīgo. String ir tāpat kā teikt man bļodu, lūdzu. Un ļaujiet man nodot virkni tajā. Un tagad vienādības zīme. Kas ir vienādības zīme būtībā ir līdzvērtīgi? AUDITORIJA: Piešķirt. DAVID J. Malan: Jā, piešķirot vērtību. Tātad, ja es, piemēram, zvanu šī funkcija GetString, un mēs redzēsim pēc brīža, kas ir gatavojas atgādinās lietotājam par virkni. Tas ir tāpat, ļaujot tam man uzrakstīt D-a-v-i-d uz papīra. Un, kad es saku virkne s vienāds GetString, vienāds nav īsti nozīmē vienāds C programmēšanu. Tas nozīmē, piešķirt no labās labajā pusē, lai kreisajā pusē. Tāpēc es esmu gotten virkni. Un vienādības zīme nozīmē nodot to no uzglabāšanas konteineru sauc s. Un tad iet tas off printf lai faktiski darīt lieta. Tātad gala rezultāts, tad notiek izskatīties mazliet atšķirīgs. Darīsim padarīt sveiki-2. Nu varētu strādāt. Jūs sekojat līdzi. Make sveiki-2 strādāja. Dot slash sveiki-2, Enter. Man šķiet, ir bezgalīgs cilpa vai kaut ko. Nekas notiek. Kāpēc? AUDITORIJA: Tas ir padarīt bezgalīgu cilpu. DAVID J. Malan: Tā ir bezgalīga cilpa. Tas ir sava veida gaida mani, lai faktiski nodrošina to ar kādu ieguldījumu. Tāpēc ļaujiet man iet uz priekšu un ierakstiet Dāvidu, un hit Enter. Un tagad tā saka "hello, David." Ja es palaist vēlreiz. Pieņemsim ierakstiet Rob, "Sveiki, Rob." Tagad tas ir sliktākais lietotāja saskarne jebkad. Lietotājs acīmredzot vajadzēja zināt, ko darīt. Bet vienalga. Izmantojot šos pašu ēku bloki tāpat kā ar nulles, mēs varam atrisināt šo problēmu un saka kaut kas, piemēram, jūsu vārdu, lūdzu, resnās zarnas, telpa, slēgta quote, close iekavas, semikols. Tik daudz jauna muļķība ar sintaksi. Bet paziņojums Esmu tikko pievienotās puzzle gabals iepriekš šo vienu un virs šo vienu. Tāpēc tagad, ja es atkārto to, hello-2, Enter. Pagaidiet minūti. Kas ir nepareizi? Tas nav uzvedas savādāk. Jā. AUDITORIJA: Jums nav palaist darīt vēlreiz. DAVID J. Malan: man nav palaist izdarīt atkal, labi. Tāpēc es esmu mainījis savu pirmkodu. Bet atkal, tur ir, ka plūsma. Pirmkods caur kompilators dod Jums jaunu objektu kodu, vai 0s un 1s. Tāpēc man ir nepieciešams, lai faktiski atkārto make sveiki-2 Enter. OK, kaut kas, šķiet, ir noticis. Dot slash sveiks-2. Tavs vārds lūdzu. Un, lai būtu skaidrs tagad, kāpēc ir kursoru uz vienas līnijas? Tieši tā. Man nelika slīpsvītru n šeit manā kodu. Tāpēc tagad es varētu uzrakstīt kaut kas līdzīgs Daven, Enter. Es varu palaist to atkal un ierakstiet kaut kas līdzīgs Gabe, Enter, un mēs iegūstam citu programmu atkal un atkal un atkal. Tagad beidzot mēs ejam uz nepieciešamību izmantot dažas atšķirīgas iespējas. Mums ir nepieciešams, lai ieviestu galu galā kādu nosacījumi darīt lietas nosacīti. Varbūt cilpas lai mēs varam darīt lietas, atkal un atkal. Varbūt tas būtu jauki, ja mēs varētu īstenot mūsu pašu funkciju, kā mēs varētu īstenot mūsu pašu printf vai mūsu pašu versiju GetString un GetFlow, jo galu galā pat Izmantojot šo komandrindas vidi mēs varam darīt vēl visvairāk vizuāli interesants lietas. Patiešām nobeigumā ļaujiet man darīt. Es iešu uz priekšu un aizveriet šo logu un atvērt šo ikonu šeit, kas ir tikai lielāks versija, ka iegulto termināla logu. Tāpēc gedit ir ne tikai vieta manu kodu, bet arī uzcelta termināla logā, melnā un baltā loga, kur es varu palaist komandas. Es tikko notika, lai atvērtu lielāks versiju par to. Un tagad es esmu gatavojas iedziļināties mape, ka es esmu jau likts jau iepriekš par kursu mājas lapā. Un es iešu uz priekšu un atveriet failu ar nosaukumu thadgavin.c, ko raksta kāds cits. Un, ja mēs skatāmies uz to, tas nav veida koda mēs būsim rakstiski, jo mērķis šo kodu bija uzrakstīt visjaukākā meklē kodu, kas viņš vai viņa varētu, neatkarīgi no tā, vai vēl viens cilvēks varētu kādreiz saprast šo kodu. Patiešām, katru gadu tur ir to, kas ir sauc obfuscated C konkurss, kurā ir reālā geeks, kas raksta kods, ka neviens cits var lasīt, bet, kas dara kaut ko, vai nu ļoti vienkārša vai patiešām pārsteidzošs. Un mēs domājam, ka mēs gribētu noslēgt ar šo izskatu kaut ko, kas ir diezgan pārsteidzošs Jums varētu būt redzējis vienu reizi pirms. Bet mēs galu par šo piezīme, dot slīpsvītra thadgavin. Šis tad ir tas, ko gaida. Tas ir tas CS50. Mēs redzēsim tevi trešdien. [Mūzikas atskaņošanai]