[Mūzikas atskaņošanai] DAVID Malan: Nu labi tas ir CS50 un tas ir beigu nedēļā vienu. Tāpēc es gribētu iepazīstināt mans bijušais advisee, Andel Duff, kas ne tikai padara iPhone 5 stendi, kā arī šo lectern, viņš arī padara automašīnas. Ansel DUFF: Kā iet, visi? Es tikai gribu jums pastāstīt mazliet mazliet par Formula SAE, par kuru es esmu kapteinis. Tas ir MIT komanda. Es tikai gribu pateikt, puiši mazliet par to un cerams radīt zināmu interesi. Tāpēc ļaujiet man vienkārši palaist cauri Pāris lietas, par mūsu komandu. Tātad, mēs esam pilnīgi students palaist, kur visi no locekļi dizains, simulēt, tests, un ražotājs apakšsistēma no automašīnas. Mums ir mūsu pašu mašīnu veikals un garāžas, un N52-- vai žēl, N51-- kas ir tāda pati ēkas kā MIT Zinātnes muzejs. Un mēs esam cilvēki ka vadīt automašīnu. Tur ir valsts konkurences sākumā vasarā, un tad tur ir mazākas shootout sacensības visu gadu. Un tad mēs autovadītāju apmācība dienas, lai iegūtu jaunus dalībniekus iepazīties. Mūsu būvēt dienas ir par Sestdienās 11:00-20:00. Pusdienas un vakariņas ir rūpēties gada, no Bertucci s un Beantown attiecīgi. Mums ir iknedēļas sanāksmi un seminārs, kas ir, protams kredītu. Kas ir jauns, jo šajā semestrī, un tā būs arī nākamajā semestrī, lai jūs varētu šķērsot-reģ par to. Un tad mums ir projektēšana, veikals, un CAD dienas nedēļas laikā, tā dalībnieki būs patstāvīgi CAD daļas, pasūtījums akciju un tā tālāk. Tātad elektrisko inženierija pie komandas mums ir mūsu vilces, augstsprieguma sistēma kas darbojas pie nominālā 300 volti, kas ietver motori, motoru kontrolieri, un akumulatori. Tad mums ir zema sprieguma sistēma, kas darbojas pie 12 voltu, kas ietver kontrole, CAN mezglu, smadzenes kaste, un paneļa. Ciktāl CS iet, mēs darām ir mājas lapas uzturēšana ka mums ir nepieciešams darīts notikumiem, dalība izmaiņas, jauni attēli un PR materiāls. Un tad mums ir kods, kas kontrolē auto mūsu vilces kontroles, palaišanas kontrole, domuzīme kontrole, griezes moments cikloidālā, un reģeneratīvās bremžu sistēmas, kas palaist parasti MATLAB, Simulink, un LabView. Jums pastāstīt mazliet par automašīnu. Tātad, tas ir aptuveni 500 mārciņas. Tas ir noteikumi, ko izmanto tikai 85 kilovatiem. Tā ir 2 EMRAX 207 motorus atpakaļ, viens attiecībā uz katru aizmugurējo riteni. Tā ir custom-built akumulatori no Prizmatiski A123 maisiņš šūnām, sasniedzot 300 volti un 5.6 kilovatstundas. Un tas ir tiešā piedziņa ar 2,64-1 disku attiecība. Šeit ir dažas bildes mēs ņēma to pie konkurences. Lūk atpakaļ, deguna konuss, un šeit ir motors, šie liels melns disks zem et mens manus. Lūk slaidu, ka man velk no mūsu sacensību shēmu. Un tas ir tikai salīdzinot mūsu automašīnu Pāris komerciāli pieejamo automašīnu, piemēram KTM XBOW, Ariel Atom, un Caterha M 7-280. Ja Jūs esat iepazinušies ar cenu, jaudu pull svaru, dolāru uz vienu zirgspēku, dolāru par griezes momentu, un mūsu auto sitieniem tos visus ārā no ūdens. Ja jums ir kādi jautājumi, pierakstītu šo e-pasta adresi. Atvašu mums e-pastu pie fsae@mit.edu. Mēs esam priecīgi, lai runātu par kaut ko vēlaties. Hārvardas studentiem ir sava veida minoritātes uz komandu. Ja Jums ir kādi jautājumi par ka lūdzu atvašu mums e-pastu, laimīgs runāt, un es esmu gatavojas doties atpakaļ pār Dāvidam. Paldies. Es novērtēju to, puiši. [Aplausi] DAVID Malan: Ansel pavadīja vasaru strādājot ar mums šeit uz Campus CS50 šovasar. Un papildus strādā lietas, piemēram, bināro spuldzes, Viņš tiešām ļoti atvēra mūsu eyes-- un raktuves particular-- uz to, kas patiešām krustojumā nav aparatūras un programmatūras var būt. Patiesībā daudz lietām, ko viņš tikko apceļoja jūs caur galu galā izveidots pirmais programmatūru, un tad galu galā gatavo reālajā pasaulē aparatūru. Tātad, ja jūs interesē izpētīt šo krustojumu, varbūt sākt šo grupu. Tagad tikmēr, tiem no jums kuri ir fani tehnoloģijas, un Apple produktiem īpaši, zina, ka tur bija pāris paziņojumi vakar. Bet mēs domājam, ka mēs gribētu parādīt jūs viens, kas iznāca dažas dienas pirms tā jums varētu būt redzējis. Jørgen EGHAMMER: Jūs zināt, reizi awhile kaut nāk kopā, kas maina veidu, kā mēs dzīvojam. Ierīce tik vienkārša un intuitīva izmantojot to jūtas gandrīz pazīstams. Ieviešot 2015 IKEA katalogu. Tas nav digitālo grāmatu vai e-grāmata, tā ir grāmata-grāmatu. Pirmā lieta ir tas nav kabeļi, kas nav pat elektrības kabelis. 2015. IKEA katalogs runa ir pilnībā uzlādēts, un akumulatoru dzīves ir mūžīga. Saskarne ir 7.5 līdz 8 collas, bet var paplašināt līdz 15 par 8 collas. Navigācija ir balstīta uz taustes pieskārienu tehnoloģija, ka jūs faktiski var justies. Content nāk iepriekš instalēta izmantojot 328 augstas izšķirtspējas lapām iedvesmot mājas interjera idejas. Lai sāktu pārlūkošanu, vienkārši pieskarties un velciet. Labās uz kreiso pusi virzīties uz priekšu, kreisās uz labo, lai pārvietotos atpakaļ. Novērojat kaut ko citu? Tas ir labi. Nē lag. Katrs kristāldzidru lapa slodzes acumirklī nav svarīgi, cik ātri jūs ritināt. Ja jūs vēlaties saņemt ātru pārskatu, tikai turiet to ar palmu jūsu puses, un izmantojot tikai īkšķi, ātrums pārlūkot saturu. Ja jūs atradīsiet kaut ko vēlaties saglabāt vēlāk, jūs varat vienkārši grāmatzīmi to. Un pat ja jūs aizvērt programmu, Jūs varat viegli atrast grāmatzīmi vēlreiz. Pārsteidzošs. [Smiekli] [Aplausi] Tāpēc, ka mūs noved gals nedēļā vienu. Daži paziņojumi tagad. Tātad pārgriešana tagad ir progress. Iet uz šo URL šeit dažkārt starp tagad un piektdien pusdienlaikā faktiski norādīt, vai Jums ir starp tiem mazāk apmierināti, vairāk ērti, vai kaut kur pa vidu. Tas parasti ir viens no tiem lietas, kuras jūs vienkārši veida zināt. Un patiesībā tiem no jums, kas ir mazāk ērti droši vien zināt, cik, tiem no jums, kas ir vairāk ērts zinu tik daudz, un atkal, ja jūs neesat pilnīgi pārliecināts, kura Šo spaiņos jūs nonākt jūs iespējams, kaut kur pa vidu. Bet drošs, varat mijmaiņas pēc pāris nedēļām, ja tas būtu nepieciešams. Tikmēr, lai nākamajā nedēļā mēs nesāksim sekcijas per se, bet super sekcijas, kas ir atvērtas visiem studentiem. Šo svētdien vietā, lai paziņoti kursa mājas lapā mums būs viens tie mazāk apmierināti, kā arī viens tiem ērtāk. Un tie, kaut kur pa vidu var izvēlēties, kuru no šiem diviem, vai arī abus, ja vēlaties, lai sēdēt-in on. Un uzmanība tiem būs galu galā uz C, kuru mēs turpināsim mūsu saruna šodien. Problēma noteikti 0 tikmēr ir cerams, ka jūsu rokās. Oficiāli dēļ rīt, Ceturtdien, plkst. Ja vien jūs naudas vienu Sava 5 vēlu dienām, kas lai to līdz piektdienai plkst. Problēma noteikti 1 tikmēr būs publicēta kursa mājas lapā. Un šis būs mūsu pirmais iebrukt kā klasē stāšanās C. Un šī problēma noteikti spec būs staigāt jums cauri daudz mehānikā ko mēs sākām runāt par pirmdien, un mēs turpināsim runāt par šodien. C, Linux, CS50 ierīce, tas viss gaidīs jūs specifikācijā. Darba laiks tikmēr ir progress, ar bakalaura ēdamzālē. Dodies uz šo URL šeit, lai aplūkotu ieplānot šovakar un rīt, Ja vēlaties piedalīties. Jautājumi tikmēr, lai jums ir iespējas uzdot jautājumus asinhroni, 24/7, saprotam, jūs esat neaprobežojas ar sadaļām un biroju stundas, bet gan šis rīks šeit, CS50 Apspriest tajā URL būs kurss tiešsaistes dēļa programmatūru, caur kuru Jūs varat uzdot jautājumus klasesbiedri un arī darbinieki. Tāpēc paturiet prātā, ka resurss, kā arī. Tikmēr tradīcija sākas šo piektdien. Kā Jums var būt glimpsed no Pagājušā Trešdienas teaser video, mums ir tradīcija visvairāk katru piektdienu termiņa laikā ņemt aptuveni 50 studentus un personāls, lai vietējā restorānā sauc Uguns un ledus, kurā mēs esam parasti pievienojās daži absolventu vai draugi no rūpniecības vispārpieņemtiem tiecas veikt lielu klasi justies mazāks. Tātad, tas ir pilnīgi gadījuma pusdienas. Ķekars no mums, darbiniekiem it īpaši, būs spēlēt mūzikas krēsli un tērzēt ar skolēniem par 50, dzīve ārpus 50, dzīve nākotnē, reālajā pasaulē, Es runāju par darba iespējām ar draugiem rūpniecībā. Tātad, ja jūs vēlētos pievienoties mums šo piektdien, dodies uz šo URL šeit. Telpa ir ierobežota, bet mēs to izdarītu recurringly visā termiņā. Galvu tur cs50.harvard.edu/rsvp. Un, ja jums nav iegūt šoreiz, nav jāuztraucas. Mēs darīsim to atkal tuvākajās nedēļās, kā arī. Tāpēc šī ir aina mēs krāsotas pagājušajā nedēļā, un jūs, iespējams, bijis niekošanās līdz šim. Bet pamēģināsim savienot šo tagad to, ko mēs gatavojamies darīt šodien un tālāk. Es varētu būt viens brīvprātīgais? Nu labi, vai vairākas. Kā par šeit beigas, zilā kreklā. Nāciet uz augšu, kāds ir tavs vārds? Alana: Alana. DAVID Malan: Alana. Tātad Alana, lai tikai moment-- nice to meet you-- gatavojas spēlēt lomu Šīs funkcijas šeit. Purpura bloks mēs esam sauc līdz šim funkciju. Tātad, ko es iešu priekšu šeit un piedāvā Alana ir nedaudz nosaukums tag, lai padarītu skaidrs, kādu lomu tu spēlē. Tātad jums ir teiksim bloku. Ja jūs vēlaties, lai iet uz priekšu un nodot, ka. Un mēs ejam saglabāt šo super vienkārši. Ja mērķis pie rokas ir vienkārši Tagad īstenot ar Alana, šī tā sauktā teikt bloku, lūk, kā tas notiek, lai strādātu. Es have-- sauksim to arguments vai parametru, tas patiešām ir tikai tukša papīra lapas. Un tas ir balts vai veida būt atgādina par balto kasti, kurā jūs var rakstīt vārdus. Tajā pašā laikā es iešu šeit. Es iešu uz priekšu un rakstīt H-E-L-L-O komatu pasauli. Un tagad es, kā saka programmētājs, nav tiešām zina, kā pateikt kaut ko. Es varu nākt klajā ar vārdiem, bet man ne vienmēr zina, kā izteikt sevi mutiski vai uz ekrāna. Un tā, ko es esmu jādara, ir veikt šo gabalu funkcionalitāti, kura input-- vai argumenti, kā mēs to saucam, Esmu rakstījis par šo gabals paper-- un es esmu gatavojas ārējus to. Un tiešām tas nozīme, ka funkcijas programmēšanas valodu var spēlēt. Kaut kā teikt bloks var izmantot ārpakalpojumus ar kādu, kurš īsti nezina , ko viņa vai viņš runā. Tātad, ja jūs soli pa šeit tikai brīdi, Es esmu gatavojas nodot šo ieguldījumu Alana, un lūgt, lai jūs sakāt šo ieguldījumu. Alana: Sveiki, pasaule. DAVID Malan: Tas ir tas. Tā, ka ir funkcija. Tagad mēs varam ņemt to nedaudz vairāk, mēs varam spert soli uz priekšu šeit. Jo tas bija skaidri underwhelming. Tātad pieņemsim tagad pārvērst to kaut nedaudz sarežģītākas. Tātad tas, protams, ir mūsu C versija. Tāpēc tagad, ja jūs vēlaties veikt, ka vienreizējs, šis nosaukums tag off, un pieņemsim ir jūs likts uz jaunu nosaukumu. Bet būtībā tu esi spēlē tādu pašu lomu, tas tikai tā notiek, saukt printf tagad. Stāsts, protams, gatavojas be-- iespējams tikpat underwhelming-- ir būs šādi. Jūs tagad funkcija printf. Es esmu zvanītāja, vai programmētājs, kas grib stāvēt uz pleciem cilvēki kā jūs agrāk, kas esam jau izpētījuši, kā faktiski uzrakstīt kaut ko uz leju. Un tā šoreiz, nevis teikt, tas pieņemsim faktiski izmantot mūsu ekrānu nekā šeit. Tātad, ja jūs vēlaties, lai soli nekā šeit, es esmu iziet atkal tas, kā ieejas uz manu printf draugu. Ja jūs varētu iet uz priekšu un drukāt, ka uz ekrāna, vienkārši novelkot ar savu pirkstu uz melna ekrāna. Excellent. Labi, tāpēc daudz neziņā par kā tas bija gatavojas izspēlē. Tāpēc tagad pieņemsim lietas veido vienu final robs, ja mēs varētu šādi. Tātad tas ir C programma kā mēs teicām pēdējo reizi. Un tas tikai tas, ko jūs, to izdrukā uz ekrāna, sveiki, pasaule. Pat ja tur ir skaidri daudz no kaitinošas sīkumi tur. Bet pieņemsim lietām up iecirtums un ieviest šo versiju, kas atgādināt bija trešā versija, ka mēs beidzās ar pēdējo reizi. Un tagad tur ir skaidri divi lietojumi printf. Tur ir 2 zvani uz Alana šajā gadījumā par printf, bet tur ir arī aicinājums uz citu funkciju. Kas ir šī funkcija ir skaidri? Getstring. Mēs varam iegūt vēl viens brīvprātīgais? OK, nāk uz augšu. Kāds ir tavs vārds? JAVIER: Javier. DAVID Malan: Javier, nākt uz augšu. Tātad Javier loma ir par šis papīra gabaliņš. Ko es esmu gatavojas, lai izsauktu vispārēji s. Tagad tas ir mainīgs, tas ir tipa virknes, kā tas ir šajā otrajā rindā vidū tur. Un es gribētu, lai jūs iet saņemt man virkni. Konkrēti galvu uz leju, lai orķestrim nodaļā un saņemt man vārdu kādam, un nāk atpakaļ ar mainīgo satur šo vērtību. Tas var būt kāds jūs vēlaties. Šeit mēs iet. Nu labi, Javier ir ierakstot vārdu. Viss labi. Mēs visi varam droši uzminēt, cik tas notiek, lai izspēlē. Mēs varbūt belaboring punkts, kas funkcija ir darot, bet tomēr liels paldies. Tātad Javier ir atgriezies šo virkni šeit, kas nevar diezgan skat Jonathan ir virkne ka mēs esam gotten. Tāpēc tagad, ko es esmu faktiski gatavojas sniegt Alana though ir kaut nedaudz atšķiras. Jo šajā versijā programma, vispirms tur norādīt savu vārdu. Tik ļoti pirmo argumentu Man vajag, lai nodrošinātu Alana ar būs burtiski norādiet savu vārdu. Labi, tik vienkārši kā Es vēlētos nodot to jums. Un, kā es rakstīt up nākamais arguments, ja jums gribu iet uz priekšu un rakstīt šo uz kuģa, iesim uz priekšu un darīt galīgo piemēru šeit, lai padarītu skaidrs, kas ir galu galā dabūja notikt. Tātad norādīt savu vārdu, uzrakstiet to uz augšu ja jums nav prātā, tikai tāpēc, ka mums ir vieta vienam otrā rindā. Jo pēdējā lieta, ko es esmu lai tagad sniedz jums nav viens, bet divi gabali papīra. Viss labi. H-E-L-L-O atdalot un tad tukšu līniju. Tātad, ko es esmu par to, lai rokas Alana tagad ir kaut nedaudz atšķiras. Ne tikai viņa kļūst tas, kur aizpildīt tukšu pārstāv ka percent-- kas bija vietturis mēs esam, izmantojot? Jā, tāpēc procenti s. Tajā pašā laikā es esmu gatavojas iet viņai ar otro argumentu, kas Tieši to Javier iegūti no Jonathan. Tātad, ļaujiet man sniegt jums šīs divas. Ja vēlaties, iet uz priekšu un drukas ka efekts. Kas galu galā notiek tagad ir, Alana atkal spēlē lomu printf. Javier bija spēlē loma GetString. Tāpēc, ka būs jūsu suvenīru. Un galu galā, kas notiek, neskatoties šis hello-- yep iet uz priekšu un komatu. Alana: Vai es varu saņemt šo ziņu, vai nē? DAVID Malan: Yep, jūs saņēma tos abus uzreiz. Tātad ideja ir tāda, ka jums tagad var uzsist lapu rīkoties otro no šīm divām ieejām. Tātad tas ir tikai āmurs mājās norāda, ka, tā Alana izpildīts šī zaļā līnija šeit, un pēc tam Javier izdarīja vienu mums un atgriezties pie manis kaut ko mēs saucam s, bet tas bija tiešām tikai, ka gabals no papīra uz viņa paša. Un tagad Alana ir paveicis šo trešo pozīciju. Un, lai gan tas viss izskatās tik neticami mistisks varbūt pēc pirmā acu uzmetiena, tas tiešām ir tik vienkārši. Iet ieejas apkārt, iegūt rezultātus, vai nu tiek fiziski jānodod atpakaļ kaut ko, vai redzēt blakusparādība, kā šis. Kaut kas vizuāli rakstīts uz ekrāna. Tāpēc iesim uz priekšu un paldies Alana un Javier, kurš bija uz leju šeit, lai pievienoties mums šeit. [Aplausi] Tāpēc tagad pieņemsim par pašsaprotamu to, cik vienkārši viss, kas varētu būt. Un pieņemsim pāriet uz faktiski darīt kaut ko faktisko kodu. Tik uz augšu uz ekrāna šeit ir screenshot no tā saukto CS50 ierīci. Un, ja jums bija tajā, kā 02:00 trešdienas pēcpusdienā, izskaidrot kādu draugu kāda CS50 ierīce ir, kā jūs definētu tā vienā teikumā? Kāds teikums? Yeah? STUDENT: Tas ir tāpat kā programmas kas padara ikviena datoru darbināt ar to pašu sistēmu. DAVID Malan: Labi! Tā ir programma, kas ļauj ikvienam ir datoru, lai darbotos ar to pašu sistēmu. Tas ir sava veida savu kopija darbības sistēma, kas notiek ar saukt Ubuntu Linux. Un tas darbojas efektīvi iekšpusē logs uz savu Mac vai PC, tā, ka šādā veidā tieši no vārtiem nedēļā 1, ikviens šeit klasē ir piekļuve tiem pašiem instrumentiem, pati konfigurācija, un tur nav mācīšanās līkne īpaša uz Mac vai PC, jo īpaši. Tagad mēs atvēra, iekšpusē CS50 ierīce pirmdien, šī programma šeit. Tas notiek, lai varētu saukt gedit. Bet tas patiešām ir tikai grafisko redaktoru. Tas ir kaut kas līdzīgs Notepad vai teksts Rediģēt uz Windows vai Mac OS attiecīgi. Un es ierosināju, ka tur bija patiešām trīs svarīgas detaļas šai ekrānu. Augšējā pusē ir vieta, kur jūs varētu rakstīt savu kodu. Un tas ir, ja mēs pavadījām daudz mūsu Trīs piemēri pirmdienas lekciju. Apakšējā mēs sauc to, kas, šī melnā logu, jā? STUDENT: Compiler? DAVID Malan: Compiler mēs piekļūt, kā minētā loga. Bet vispār. Jā, tas bija tikai termināļa logu. Tas ir vecums vecs termins, kas tikko apraksta būtībā mirgot ātru, ka gadiem izmanto, lai būt viens no tiem lielajiem CRT stila monitoriem. Bet mūsdienās tas ir sava veida Virtuālo programmatūru. Un gala logi pieņemsim mums tipa komandas. Tā veida vienkāršotās versijas lietotāja interfeisa vai UI. Tas nav grafiskā lietotāja saskarne vai GUI, tas ir teksta pamatā saskarne vai komandrindas interfeisu. Un tiešām tas ir, ja galu galā Man bija iespēja uzrakstīt kādu kodu. Kad man bija uzrakstījis kādu kodu, lai gan, atgādināt, ka es izmanto šo komandu. Un kā tas vārds veida liecina, šis ļauj man darīt programmu, ko sauc Sveiki. Bet ko tas bija īsti dara? Nu marka ir lietojis manu ievades, mans pirmkodu, un pārveidojot to, ko, galu galā? Objekta kodu. Un objektu kods ir tikai iedomātā veids, kā pateikt nullēm un tiem. Un tad, kad es gribēju palaist šo objekta kodu, kad es gribēju iet kā ievade tām nullēm un tiem sava datora smadzenes, tā saukto CPU vai centrālā procesora bloks, Man bija, lai palaistu programmu. Bet tas nebija gluži vienkāršs pirmdien kā tikko dubultā noklikšķinot dažas ikonas. Kas vietā bija man jādara, lai palaistu programmu? Kas bija tas, ka otrā komanda? Es esmu dzirdes mazliet slīpsvītras? Jā, jā? STUDENT: Dot slīpsvītra un ka programmas nosaukums. DAVID Malan: Tieši tā. Dot slīpsvītra un programmas nosaukumu. Tagad ko darīja tas nozīmē? Nu dot ir tikai mistisks veids , sakot pašreizējo direktoriju. Neatkarīgi mapi jums ir, ir atsauce kā, tiek attēlots kā dot. Slash ir tieši tas, ko jūs esat redzējuši Mac OS un Windows daudzus gadus, tas atdalītāju starp direktorijā vai mapi un pārējo kādu vārdu. Windows tas notiek, lai iet atpakaļ, Linux un Mac OS tas notiek, lai iet uz priekšu. Bet tas ir tikai separators, tāpēc tas ir tikai neinteresanti sintaktisko detaļa. Sulīgs daļa, protams, ir programmas nosaukums, Sveiki. Un tas, ko padara radīta mums. Tā izvadīts šo failu mums. Bet kā mēs uz šo jautājumu? Pieņemsim tagad jautāt Jautājums, kas bija patiešām notiek šeit, vismaz ar Attiecībā uz dažām šī sintakse? Tātad kādā teikumā, vai arī tā, kā mēs izskaidrot prom šī pirmā līnija, kas ir iezīmēts zaļā krāsā? Kas bija tas, ka pirmajā rindā dara, attiecībā uz manu programmu? Yeah? STUDENT: [nedzirdama]. DAVID Malan: Pasaki to vēlreiz? STUDENT: Ieskaitot un lejupielādi pagātnes funkcijas [nedzirdama]. DAVID Malan: Labi. Ieskaitot, es neteikšu lejupielādi, bet teiksim ieskaitot funkcijas, ka cilvēki ir rakstīts agrāk. Un šīs funkcijas tiek īstenotas kaut kur manā datorā. Kāds rakstīja failu gadus atpakaļ, un ka fails ir kaut kur iekšpusē CS50 ierīce, vai par manu cieto disku kopumā. Un tāpēc šī pozīcija ir būtībā sakot, iet atrast šo failu, standarta I / O dot h, un kopēt un ielīmēt tās saturu tepat uz augšu manu failu tāpēc, ka man nav darīt manuāli sevi. Un starp juiciest gabaliem iekšpusē no ka fails mēs apgalvoja, bija kāda funkcija? Kādu funkciju vai mēs sakām tika pasludināts vai minēts standarta I / O dot h visticamāk? Printf, labi? Mums nav rakstīt printf uz Pirmdien, tā vienkārši pastāvēja. Daudz, piemēram, Alana tikko atnāca uz skatuves, un viņa tikko pastāvēja un prata izdarīt kaut ko uz ekrāna, lai vai printf pastāv jau daudzus gadus. Un tā tas ir, kā mēs to piekļūt. Tagad, ja mēs pārejam šeit Galvenais bija analogi mums teica puzzle gabals sauc, kad zaļais karogs uzklikšķināt pasaulē nulles. Tas ir tikai sava veida noklusējuma nosaukums, ka cilvēki nolēma nozīmētu noklusējuma sākumpunkts ar programmu. Gada programmēšanas kodu rieciens kas izpaužas izpildīts pirmais. Tikmēr šīs cirtaini bikšturi ir veida, piemēram, izliektu formu par daudz šiem dzelteniem scratch gabaliem. Viņi veida iekapsulēt vesels ķekars instrukciju kopā. Tātad, tas tikai veida saista daži, kas saistīti funkcionalitāti. printf, protams, ir funkcija, kas drukā ekrānu, jo mēs tikko izdarījām. Kas par šiem iekavās? Kā tu define-- pat ja jūs esat nekad ieprogrammēts agrāk, bet tikai, pamatojoties tagad pieaug cerams intuīcija, ko ir redzamas iekavas dara mums šeit? Vai arī ko viņi apkārtējo? Yeah? STUDENT: Viņi saka to, ko jūs gatavojas drukāt ar printf. DAVID Malan: Jā, viņi saka to, ko jūs gatavojas drukāt ar printf. Vai biežāk, tie ir ap ieejas uz funkciju. Tātad jūs varat gandrīz domāt Šo iekavās kā, piemēram, metāla klipu par šo starpliktuvi. Tas ir to, kas saimniecībā, tas ir tas, kas ir tiks izmantoti, lai nodrošinātu argumentus uz funkciju, kas in šajā gadījumā sauc par printf. Tātad kopumā gandrīz jebkuru reizi, kad mēs saucam funkciju, mēs redzēt pāris iekavas. Varbūt ar kaut ko tajā, kā tagad, varbūt nekas tajā. Bet tas ir, ja tu liktu izejvielas vai tā saucamie argumenti līdz funkcijai. Lūk, viens šāds arguments. Esmu uzsvēra visu starp pēdiņām, jo izrādās šajā valodā sauc C, ja jūs vēlaties, lai pārstāvētu string-- ka ir vārds vai frāze vai pat paragraph-- jums ir surround to ar pēdiņas. Ne vienu pēdiņām, pēdiņas. Un tas ir tieši tas, ko es esmu darījusi šeit. Tikmēr tur bailīgs simbols uz beigām tur. Slīpsvītru n. Ko mēs sakām, ka pārstāv? Yeah? STUDENT: Jaunā līnija. DAVID Malan: Jauna pozīcija. Labi, jums nav parasti hit Enter, kad vēlaties programmu izspļaut jaunu rindu. Drīzāk jums pateikt to skaidri ar šo protams mistiskā gabals par sintaksi, slīpsvītru n, ka jūs vēlaties jaunu līniju iet uz turieni. Beidzot semikolu. Mums nav īsti runāt pārāk daudz par to, , un līdz šim tas būs bane dažu par savu eksistenci pirmo problēmu noteikt, ja jūs vienkārši neizdevās realizēt esat aizmirsis kaut kā stulbi kā semikolu. Un parasti ievietojot to tur būs noteikt šo problēmu. Bet kas ir tas dara mums, jūs teiktu? STUDENT: [nedzirdama]. DAVID Malan: Sorry? STUDENT: [nedzirdama]. DAVID Malan: Apdare paziņojumu. Tas ir veida, piemēram, attiecīgajā laika posmā beigas angļu teikuma tā kā šajā valodā C tas beidzas paziņojumu. Instrukcija programmēšanas kodu, ka jūs vienkārši vēlaties teikt, Es esmu darīts ar to. Tagad paziņojums, ka ir tikai viens šeit. Tātad, jūs nevēlaties, lai saņemtu ieradums liekot semikoloniem pēc katras slēgtā iekavās. Piemēram, tur ir neviens blakus neesošu, un mēs atgriezties nākotnē , ko par spēkā neesošu līdzekļiem. Bet šajā gadījumā jūsu printf ir funkcija, vai paziņojums tiek izmantots, un tāpēc mēs vēlamies, lai būtu, ka gals pašās beigās tā. Un es esmu apzināti pacelt uz C. And atklāti daudz valodām kā C, C ++ Java, JavaScript, un jebkuru skaitu citas valodas ir daudz no šiem veida sintaktisko detaļas. Tas, protams, ja jūs esat jauns, lai programmēšana var patiesi ceļojums jums augšu. Un jūs, iezīmēs my vārdiem, daži no jums būs ir šo pieredzi biroju stundās vai vēlu naktī strādā pie dažiem p-komplektu, kur Jūsu damn programma vienkārši nav apkopot, tas nedarbojas, jums ir ne jausmas, kas ir nepareizi, šķiet pilnīgi loģiski pareizi jums. Un tas ir tāpēc, ka jūs aizmirsāt kaut kā hitting Semikolu beigās dažas līnijas. Bet tie ir lietas veidu tu esi gatavojas nekavējoties iemācīties redzēt. Un tiešām tās ir lietas ka CA ir un TF ir jābūt ir sava veida apmācīti, lai redzētu daudz ātrāk, nekā jūs. Un tā tas ir tikai teikt, kā jūs nirt vērā problēmu komplekts 1, jo īpaši, nesaņem neapmierinātas ar šo stuff. Kad jūs veida aklimatizēties pasaulei, tu sākam redzēt lietas, kas jums, iespējams, nav redzēt pēc pirmā acu uzmetiena tas pirmajā nedēļā. Tātad pirmkods ir kaut kas tamlīdzīgs. Mēs gribam nodot to tā saukto kompilatoru. Un tas kompilators kā mēs teicām piedāvā produkciju pazīstams kā objekta kodu, tā sauktā nulles un ones. Bet no turienes, ko tas mums dod? Nu tas dod mums šos modeļus. Un atkal dators, Jūsu Intel iekšpusē, saprot šos modeļus nullēm un tiem. Un dažreiz modelis pārstāv faktisko decimālskaitlis kā mēs redzējām pagājušajā nedēļā, dažreiz tas ir vēstuli kā mēs redzējām pagājušajā nedēļā, dažreiz tā pārstāv norādījumu, piemēram, drukājot kaut uz ekrāna. Tātad printf par instance-- bet gan, ļaujiet man attīt atpakaļ. Mēs esam, ņemot par pašsaprotamu ka šie nullēm un tiem ir ražots ar šo komandu marku. Bet marka nav kompilatoru. Padarīt nav lieta vidū kas ir ražo nullēm un tiem. Drīzāk darīt ir tikai ļoti ērti nosaukts programma, kuras mērķis dzīvē būtībā izdomāt kā sastādīt savu programmu. Un mēs to izmantot šos pirmās nedēļas, jo tas vienkārši ietaupa mums daudz nepatikšanas. Bet ko darīt, ir patiešām dara, kad jūs sastādīt hello, ir, kā mēs teicām pēdējo reizi, tas ir skatoties uz jūsu cietā diska vai pašreizējā mapē, lai failu sauc to, kas, acīmredzot? Hello.c, labi? Tas ir tikai sava veida konvenciju. Tas ir patvaļīga, bet tas ir veids, kā lietas ir. Marka, ja jūs vienkārši norādīt vārdu no programmas, kas vēl nepastāv, tas dodas meklēt pirmkodu failā, pēc noklusējuma nozīmē hello.c. Un, ja tā konstatē to, lieliski. Tas notiek, lai konvertētu šo avotu kods uz objekta kodu jums. Bet katru reizi, kad es esmu hit Enter pēc darbības veikt hello, Vai jūs atceraties redzēt pēdējo reizi diezgan garš un noslēpumains secība Citu baltiem burtiem un Rakstu zīmes uz ekrāna? Labi, ka bija faktiskais komandu, faktiskais kompilatoru, kas skrēja. Tātad faktiskais kompilatoru mēs izmantot lielāko daļu semestris ir kaut ko sauc šķindēt. Daži no jums, iespējams, ir izmantoti Visual Studio pirms, vai GCC, vai kādu citu kompilatoru skaits. Mēs izmantosim šķindēt. Un šķindēt ļauj mums faktiski konvertēt ka pirmkods iebilst kodu. Ko tas reāli nozīmē praksē? Nu ļaujiet man iet vienā no Manas mapes no pēdējo reizi. Iekšpusē CS50 ierīces. Un ļaujiet man iet uz priekšu un izveidot šo pats fails, ietver standarta I / O dot h. Int galvenais anulēts. Un mēs būsim atpakaļ nākotnē, jo kādā int nozīmē un kādas spēkā neesošu līdzekļus. Bet tagad pieņemsim darīt hello world slīpsvītru n, tāpat kā mēs to darījām uz kuģa. Ļaujiet man saglabājiet šo failu ar nosaukumu hello.c. Un tagad, ja es gribu, lai apkopotu šo Es could-- ļaujiet man tuvinātu in-- palaist padarīt sveiki ienākt. Un tas atkal bija ka ļoti mistisks līnija. Bet nu vismaz viens vārds iespējams, lec ārā pie jums. Šķindēt ir, mēs redzējām pirms tam līnija. Tagad tur ir daudz citas lietas atklāti ka mēs vilnis mūsu rokās ir šodien. Bet tur ir dažas apakšgrupās, dažas rakstzīmes šeit ka ir interese. Bet es esmu gatavojas iet uz priekšu un darīt to. Es esmu gatavojas pirmajā braucienā hello, tikai, lai pierādītu , ka tas strādā, jo tas bija pirmdien. Bet tagad es esmu gatavojas, lai izdzēstu programmu. Un daudz, piemēram mums bija tie īsi vārdi pēdējais laiks, komandu noņemšanai kaut kas ir rm, noņemt, ievadiet. Jūs gatavojas iegūt kādu diezgan mistisks jautājumi. Grūti noticēt, ka jūs varat veikt pat šis jautājums grūti saprast. Bet izņemt regulāru failu sveiki tikko līdzekļus jūs vēlaties dzēst sveiki. Un es varu iet uz priekšu un ierakstiet Y jā, Enter, un tagad tas ir pagājis. Ko tas nozīmē, tagad, ja es iztīrītu ekrānu, ir tā, ka tā vietā, lai darām veikt hello-- tevi zināt, ko, es saņemu labi tas. Es esmu gatavojas palaist kompilatoru sevi. Man nav nepieciešams kādu programmu, lai izdomāt, ko mans fails sauc. Es uzrakstīju hello.c, es zināt, kas tā sauc, Es esmu nepārprotami var rakstīt, ka. Tāpēc es esmu gatavojas iet uz priekšu un tie šķindēt hello.c Enter. Šķiet, darbojas. Un tur nav papildu izejas, jo šķindēt ir kompilators. Tas ir tas, ko ir pārveidojot pirmkods uz nullēm un uzņēmumiem. Tātad, ja man tagad darīt dot slash sveiki Enter, hm. Jaunais kļūdas ziņojums šodien. Tik bash ir tikai nosaukums mirgo ātri, ka mēs esam, izmantojot. Tas ir bruto pārmērīga, bet tagad tas ir viss, kas ir, tas mirgo ātri. Un tas ir iemesls, kāpēc tas ir kliedza uz mums. Nav šādu failu vai direktoriju ir mazliet vienkāršāka. Bet, protams, es šo objekta kodu. Bet nozveja ir, ka ja es ierakstiet komandu uzskaitīt saturu šīs katalogs, kas ir kas? ls par sarakstā. Tur ķekars sīkumi šeit, no kuriem daži nāca ar ierīci, kā mana Desktop mapi, lejupielādes mapi, Dropbox mapi, un viss ka sīkumi. Bet kas ir interesanti ir hello.c, kas I izveidojis pirms brīža ar gedit. Un, kas ir dīvainākā meklē vārdu šeit, varbūt, ka mēs neesam skatīt pēdējo reizi vispār? a.out, labi? Tātad atpakaļ dienā, to bija tikai nolēma, ka tad, kad jūs sastādīt programmu Pirmo reizi, un jums nav jānorāda vārds, uzvārds faila, sauksim to par. Un a.out tikai nozīmē, tas bija izlaide kompilatoru. Tātad, tas ir briesmīgs vārds programmu. Bet šai loģikai, dot slash par pašreizējā direktorijā, slash a.out, jānozīmē tur ir patiesībā Manā hello world programma. Tagad nedaudz iesildīties izmantot, too. Ja es gribu, lai pārdēvētu šo failu, izrādās, ka jums failu pārvietotu no viena vārda uz citu. Tātad mv a.out, un tad es varam saukt sveiki Enter. Tātad tas ir Linux komandu. DOS bija jau pirms gadiem, Windows ir termināla logu kaut kāda, kas izskatās patīk šī, Linux un Mac datori ir šī mirgot ātri. Pat ja lielākā daļa no mums droši vien reti, ja vispār kādreiz, izmantojiet to. Bet tas, ko es esmu darījusi, ir palaist programma, kura vārds ir mv, un es esmu sniedza tai divi argumenti, lai runāt. Divas ieejas. a.out ir sākotnējais nosaukums. Sveiki ir jaunais nosaukums. Tātad, ja man tagad darīt dot slash hello, Enter, ka pastāv. Un, ja man dot slash a.out, Ko jūs sagaidāt man vajadzētu redzēt? Bash, nav šādu failu vai direktoriju. Jo es vienkārši to pārdēvēja. Tātad tas aizņem mazliet kļūst izmantoti, lai. Bet problēma komplekts 1 specifikācija būs patiesi turēt savu roku caur daļa šīs minutae. Tāpēc, ka tas ir pilnīgs intelektuālā izklaidēšanās No vairāk interesanti idejas pie rokas, kas ir faktiski radot kaut kas no kodu. Bet pieņemsim darīt vienu modifikāciju Tagad šai programmai. Atgādināt, ka pēdējo reizi, es darīju kaut ko , piemēram, tas, printf norādīt savu vārdu. Un tiešām mēs vienkārši darījām uz lielā ekrāna vairāk nekā tur. Un tad es darīju string s izpaužas GetString atklātus paren, tuvu paren. Un paren vienkārši saīsinājums notācija par iekavās. Tātad nav GetString veikt nekādus argumentus? Nē ieejas nē, bet tas ir nepieciešami iekavas, jo tas, ko norobežo aicinājums funkciju. Tāpēc es esmu gatavojas iet uz priekšu un mēģināt palaist kompilators par šo programmu tagad. Šķindēt hello.c, jo I nemainīja savu nosaukumu tagad. Un es saņēmu ķekars kļūdas. Pieņemsim zoom out šeit. Ja es ritiniet uz augšu atkal, kā jau teicu pēdējo reizi, ar pirmo, paša kļūdu , ka es saņēmu pēdējo reizi. Par hello.c 6 līnijas man bija nedeklarētu identifikators string, tad es domāju standarta? Man nebija. Jo tas, ko kļūda ir es šajā programmu, ja jūs atceraties no pēdējo reizi? Jā, mums ir nepieciešams tā sauktais mācību riteņi ka mēs tikai izmantot dažas nedēļas. Bet man ir nepieciešams norādīt, ka arī, kaut kur iekšpusē ierīces, ir fails, kas mēs rakstījām tikai dažus gadus atpakaļ. Iekšpusē, kas ir funkcijas tāpat acīmredzot GetString. Tāpēc tagad, ja es eju atpakaļ uz leju šeit, tuvinātu, un atkārtoti palaist šķindēt hello.c. Sasodīts, vēl kļūda. Bet mēs neesam redzējuši šo vienu pirms. Šis viena ir nedaudz vairāk nesaprotams izrēķināt. Bet tas ir apzināti uz ekrāna, jo mēs vēlējāmies, lai pastāstītu šo stāstu. Kad jūs sastādīt hello.c, tāpat kā bilde no iepriekš ierosināts, jūs tikai konvertējot ka pirmkods uz nullēm un uzņēmumiem. Tagad CS50 darbinieki pirms dažiem gadiem rakstīja CS50.h, un atbilstošais fails, CS50.c. Un mēs, pirms dažiem gadiem, apkopoti šos failus failā, kas notiek saukt CS50.o. Vai to var pārdēvēt dažas dažādas lietas. Bet tas ir vienkāršs veids, kā domājot par to. Tātad mēs apkopoti CS50 's Bibliotēka uz nullēm un uzņēmumiem. Bet nekur es esmu norādīts ka es gribu apvienot manu nulles un domātos manā sveiki pasaulē programma ar nullēm un uzņēmumiem ka CS50 darbinieki izveidoja dažus gadus atpakaļ vienā pilnu programmu. Viss, ko es esmu noteicis rakstiski šķindēt hello.c ir apkopot hello.c. Man nav teicis šķindēt uz posms nullēm un tiem ka CS50 darbinieki izveidoja Jums pirms kāda laika. Tātad, tas ir viegli noteikt, domuzīme l uz saiti, CS50. Un mēs atkal redzam pirms ilgi atkal un atkal. Bet paziņojums tagad nebija nekādu sūdzību. Tāpēc tagad, ja man palaist dot slīpsvītra sveiki, tagad tas strādā. Kaut gan tas ir nedaudz maldinošs jo es tikko pārbūvēts kāda failu? a.out. Tāpēc ļaujiet man attīt tikai brīdi. Programma mēs vienkārši apkopoti ir trīs rindas kodu. Kad es skrēja Hello World, sveiki brīdis atpakaļ, es neredzēju, norādiet savu vārdu. Un tas ir tāpēc, ka man skrēja vecā versija programmā. Bet, ja es patiešām palaist dot slash a.out Ievadiet, norādiet savu vārdu, Rob, hello, pasaulē. Hm. Tas ir sava veida bug. Droši vien nozīmē teikt Rob, vai ne? Tātad, kas ir noteikt šeit kodu. STUDENT: [nedzirdama]. DAVID Malan: Tieši tā. Tāpēc es vienkārši nepieciešams, lai šo galīgo iekniebt tāpēc, ka es esmu, kas iet vietturi, kā aizpildīt tukšu, tāpat kā mēs to darījām pirms brīža. Bet procenti s tagad kas aizpilda tukšās. So visbeidzot pieņemsim atklāt vienu pēdējo detaļa tā, ka tur nav burvju. Es iešu uz priekšu un atbrīvoties no HELLOW. Es iešu uz priekšu un atbrīvoties no a.out. Tāpēc tagad man nav programmas, tikai mans pirmkodu. Un es esmu gatavojas palaist nedaudz garāks komandu, šķindēt domuzīme o sveiks hello.c domuzīme LCS50. Tagad šis sāk veida iet vienā ausī, un no otras puses varbūt. Bet tikai kaitināt neatkarīgi, ko tas dara. Šķindēt ir kompilators, domuzīme LCS50 apzināti pašās beigās ko dara teikumā? Saites uz CS50 bibliotēkā. Grabs nullēm un tie, kas darbinieki veiktie un crams tos manā programmā. Tātad pēdējais jautājums pie rokas ir, kāda ir domuzīme o sveiki iespējams darot, pat ja jūs nekad neesmu redzējis šo sintakse pirms? Izvadi programmu, kas ir nav nosaukts noklusējuma a.out. Drīzāk tas ir nosaukts sveiki. Tāpēc tagad nav a.out. Nav šādu failu vai direktoriju, jo es skaidri teicu sauc šo programmu hello, lai Es tagad var ievadīt nosaukumu, piemēram, ka un ir tā uzvesties. Tagad godīgi sakot, zēns ir tas, ka neinteresanti būt atcerēties visu, kas maz minutia, labi? Tāpēc iesim uz priekšu un atbrīvoties no sveiki atkal. Un pieņemsim tagad atgriezties pasaulē, kas pietiek pateikt padarīt Sveiki. Bet tas ir maģija, ka padarīt dara jums, tas ir garlaicība, ka tas dara jums. Un, tā kā mūsu programmām un problēmas saņemt sarežģītāka, padarīt patiesi ir jūsu draugs. Tāpēc, ka ne pārāk ilgi no šī brīža mēs ejam ir programmas, kas ir rakstīts ne ar vienu failu, bet vairākiem failiem, un veikt automatizētu procesu apkopojot visu, kas mums kopā. Tāpēc tagad drukāt. printf ir iekšā šo failu, standarta I / O dot st, ka mēs esam redzējuši iepriekš, bet tur ir vairāk, lai printf nekā. Tur ir slīpsvītru n, bet tur ir arī ķekars citu evakuācijas sekvences. Un aizbēgt secība ir tikai iedomātā veidā pasakot kaut ko kas sākas ar slīpsvītru, nav slīpsvītra, slīpsvītru, un tas kādu īpašu lieta. Un mēs ne aiztures par lielāko daļu no tiem, bet kāpēc tur slīpsvītru dubultu citātu, jūs domājat? Kāpēc tur tas dīvaini secība rakstzīmes, slīpsvītru dubultā quote, Tāpēc, iespējams, ka būtu noderīgi? STUDENT: [nedzirdama]. DAVID Malan: Tieši tā, labi? Domāju, ka atpakaļ uz mūsu sveiki pasaules programma ka mēs esam redzējuši diezgan maz reizes tagad, Katru reizi, kad mēs esam redzējuši, ka Hello pasaulē programma, mēs esam bija dubultās pēdiņas iekšpusē no kuriem ir sveiki komats pasaules slīpsvītru n. Bet domāju, lai sevi, Ko darīt, ja jūs faktiski vēlējās izdrukāt pēdiņas? Tavs pirmais instinkts var būt, man nav zināt, kāpēc es varētu vēlēties, lai do-- šeit mēs var būt nedaudz pasīva agresīvs, sveiki draugs. Mēs varētu vēlēties kaut ko darīt, piemēram, ka. Bet kāpēc tas ir tagad problemātiski? Ignorējot cirtaini citātus malā, ka pamattonis jāparedz mums automātiski. Kāpēc tas ir problemātiski? Tieši tā. Tāpēc, ka mums ir, piemēram, 4 pēdiņās. Nu pirmais, iespējams, iet ar otro, un varbūt ceturtais iet ar trešo vienu, vai, es domāju, es neesmu pat pārliecināts, nedz dators būs. Datori atkal, sastādītāju atkal, ir diezgan mēms. Tie būs darīt tikai to, ko tu viņiem darīt. Un, ja jūs neesat viennozīmīgi viņi , iespējams, gatavojas mest kļūdu. Ja jūs neesat viennozīmīga, kā to padarīt zemesriekstu sviestu un želejas sendvičs dīvainas lietas varētu ierasties. Tā ir pati ideja. Tagad pietiek pateikt, tur ir daži citi evakuācijas sekvences, bet mēs nonākam pie tiem, pirms ilgi. Būtībā šie escape sekvences ir kaut ka jūs, iespējams, nevarēs pārāk viegli pie klaviatūras, nesajauc datoru. Tagad tikmēr mums ir vietturus ar printf. Percent d, kas var būt arī rakstīts gandrīz visos gadījumos kā procentiem i, ir vietturis kādam datu veidu? Kāda veida vērtības? Decimāls skaitlis. Tik tiešām, mēs sāksim izmantojot procentu i, jo tas ir mazliet vienkāršāku, piemēram, veselam skaitlim. Procenti i. Skaitlis, kas notiek, ir decimal. Procenti s mums jau teica, bija vietturis virkni. Kas ir tikai vārds, frāze, punktu, eseja, neatkarīgi. Tas ir secība rakstzīmes kādu garuma. Un mēs redzēsim pirms ilgi daži no šiem citiem. Bet procenti c ir par vienu rakstzīmi. Procenti f ir peldošā punkta skaitlis, kā reālais skaitlis, kas ir komatu tajā, kurā Ir, protams, ne veselam. Un tur ir vesela ķekars citiem, kā labi. Tajā pašā laikā ir C, un ir daudz valodu, mums ir dažādi datu tipi. Dažādu veidu stikla bļodas, ja Jums gribas. Bļoda Es mēdzu pēdējo reizi bija galda tenisa bumbiņas, bet mēs varam glabāt arī dažādi vērtības, piemēram, simboliem un stīgām un veseli skaitļi konteinerā, kā mainīgo, un C ir tie. Char ir datu veids, Mainīgā tips, , kurā jūs varat saglabāt raksturs. Pludiņš ir veids mainīgo ko jūs varat uzglabāt reālo skaitu. Int, protams, ir par int. Un diezgan smieklīgi nosaukts ilgi ilgi ir vieta, kur jūs varat glabāt būtībā tiešām garš numuru, ar vēl vairāk cipari tad Tipisks int varenība veikals. Bet mēs atgriezīsimies pie ka pirms ilgi. In CS50 dot h tikmēr otra header failu ka mēs esam redzējuši pāris reizes lietošanai, tur ir divi citi datu tipi, ka nepastāv C parasti. Viens no tiem ir virkne, un mēs redzēsim dažas nedēļas kādas stīgas patiešām ir zem motora pārsega. Un viens ir loģiska. Un bool ir mainīgs, ka var veikt tikai uz noteiktām vērtībām. Un tikai, pamatojoties uz pagājušajā nedēļā izskaidrojums Scratch, un pēdējā C, ko jūs uzminēt ir divas iespējamās vērtības daži konteiners, kas ir tipa Bool? Jā un nē. Viens un nulle. Patiess vai nepatiess. Un tiešām tas ir pēdējais, kas tiecas būt parasto ar programmēšanas valoda, sakot kaut ko piemēram, patiess vai nepatiess. Tikmēr CS50 bibliotēku nāk ar ķekars funkcionalitāti ka darbinieki rakstīja par jums, turklāt tikai iegūt virkni. Mēs rakstījām jau iepriekš funkcijas, kas var iegūt vesels skaitlis no lietotāja, saņemt vienu rakstzīmi, saņemt peldēt, ka ir tikai numurs ar komata. Saņemt ilgi ilgi, patiešām liela vērtība, no lietotāja. Tātad, mēs esam tikai redzējis šo darbība formā GetString. Bet ar šīm funkcijām drīz varēs rakstīt programmas, kas saņem datus no lietotāja. Tikmēr uzskata, ka tas programmu, un apsvērt kā mēs varētu tagad sākt pievienot lai tā ar jaunām konstrukcijas. Quick viesulis tūre un tad mēs skatīsim dažas rakstot dažas programmas manuāli sevi. Turpmāk, ja mēs gribam, lai ieviest nosacījumu, tas nav gatavojas izskatās jauki maz diezgan puzzle gabals. Tas notiek, lai izskatās nedaudz vairāk mistisks. Bet tas ir kanonisko struktūra nosacījuma C. Vārds, ja divas iekavās, no kuriem iekšpusē būs kaut kāds no Būla izteiksmes. Tagad slash slash vidū, tas ir šobrīd veida, piemēram, pseudocode kods vietturis. Bet vēl pareizi, kādu rindiņu kodu C, kas sākas ar slash slīpsvītra ir komentārs. Tas ir tāpat kā līmlapas, ka jūs varētu likts uz eseju, uzdrukāts uz papīra. Tas ir piezīme, lai sevi. Tā ir ne funkcionālas ietekme uz programmu. Tas ir sava veida atgādinājums, tas ir jūsu pašu dokumentācija par to, kas notiek. Tātad to izdarītu brīdī ir sava veida vietturi kāda ir iekšā Šo cirtaini lencēm beidzot gatavojas darīt kaut ko. Tikmēr jums ir divas dakšas ceļu, ja cits būvēt kā šis. Jūs varat, ja, ElseIf, cits. Tagad tas ir vērts atzīmēt, jo īpaši ja jums ir Googling apkārt internetā par resursu izvešanu no ziņkārība, vai, ja jūs uzņemt viens kurss ir ieteicamās grāmatas par C, Jūs redzēsiet, ka cilvēki ir daudz Dažādu preferences kā izteikties kodu. Dažiem cilvēkiem patīk likt cirtaini bikšturi kā es esmu darījusi šeit. Dažiem cilvēkiem patīk likt cirtaini bikšturi piemēram šeit. Dažiem cilvēkiem patīk likt elses šeit, un tad tas vairāk nekā šeit. Tur ir kāda vairāki veidi, kā rakstīt kodu, un neviens no viņiem ir taisnība per se. Lai gan tur ir maz ka ir diezgan nepareizi. Bet ir no--, ja tas ir galu galā ļoti reliģioza debates. Patiesībā, viens no visvairāk kaitinošas lietas par datorzinātnē ir kā pašpārliecināts datoru zinātnieki var būt. Un jūs atradīsiet laiku, kas pat jums attīstīt personīgo izvēli par to, kā jūsu kods jāizskatās. Ne tikai uzvesties, ne tikai izveidot produkciju, bet kā tas izskatās estētiski. Tātad, ko mēs darīsim, ir jums gar kā pret, tagad vismaz, standarta CS50 style, ka vismaz tur lietas vienota un viegli lasīt. Bet vairāk uz tām atšķirības pirms ilgi. Būla izteiksme C, ja jums gribēju teikt, ja šis nosacījums ir patiess un šis cits nosacījums ir taisnība, jums nav rakstīt vārdu un, kā jūs būtu angļu valodā. Jūs tā vietā izmantot aizvieto & zīmes aizvieto & zīmes, iemeslu dēļ mēs atgriezties. Ja jūs vēlaties teikt, vai jūs izmantojat divas vertikālas svītras, kas uz ASV tastatūras parasti virs Enter Galvenais blakus slīpsvītru. Un tas nozīmē tikai to, ja šo nosacījumu vai šis cits nosacījums ir patiess darīt. Tajā pašā laikā tur ir šis traks lieta, kas jums ir izdevība izmantot reizi awhile. Bet tas ir tikai alternatīva veids, kā izteikt sevi. Tas, tagad, pieņemsim paredz, tā ir tikai vēl viens bailīgs veids, kā paust ja, ElseIf, ElseIf, ElseIf, ElseIf. Tas ir tikai formatēts ziņā gadījumu, kad tevi burtiski uzskaitīt tās vērtības, kas Jūs varētu vēlēties, lai pārbaudītu. Tikmēr cilpas. Mēs redzējām salīdzinājumu Scratch ar cilpu. Un es esmu gatavojas vilnis savu roku pie ko katrs no šīm lietām nozīmē. Bet paziņo, ka cilpa būs ļoti bieži sākas ar atslēgvārdu. Vai tas sāksies ar atslēgvārdu brītiņa. Vai tas sāksies ar atslēgvārdu darīt, un beidzas ar atslēgvārdu brītiņa. Bet tas, ko mēs esam par to, lai redzētu Ir lietas, vairāk kā šis. Šeit ir, vispār C, kā jūs varētu deklarēt mainīgo un piešķir tai vērtību. C tas nav pietiekams, tāpat kā nulles, jūs vienkārši saka man mainīgu sauc par kaut ko. Jums ir pateikt C, un pateiks jūsu sastādītājs, precīzāk, kāda veida vērtības do you gribu, lai ar stikla traukā. Vai tas skaitlis? Ja tā, tad jums ir burtiski teikt int un tad nosaukums mainīgo, tad semikolu. Ja jūs tā vietā gribēja stīgu un aicināja tas ir tāpat kā es darīju savu kodu šeit šodien, jūs teiktu String s semikolu. Pēc tam, kad jūs vēlaties, lai dotu tai vērtību tad jūs varat izmantot vienādības zīmi, citādi zināma kā piešķiršana operators. Un paziņojums, kā katrs Šo līniju koda ir semikolu beigās tā. Bet atklāti sakot tas tikai izskatās mazliet neglīts. Kāpēc es nevaru teikt, ar datoru, dot man mainīga un sāktu to līdz nullei. Ti, dod man tukšu stikla trauks. Kamēr tas ir iespējams. Un tāpēc viens no sprieduma zvani jūs ir padarīt stilistiski laika gaitā ir, jūs rakstīt savu kodu, piemēram, tas, vai jūs veida tīrīt to uz augšu, un ieskaidrot cilvēki, rakstot divas līnijas, kā tikai vienā. Un tas būtu uzskatāms parasti vairāk elegants veids rakstot savu kodu stilistiski. Funkcijas mēs esam, protams, redzējuši. Viņi gatavojas izmantot šo formātu. Par funkciju nosaukumu, daži iekavas, un tad varbūt daži sīkumi iekšā. Vai jūs varētu redzēt lietojumus vairākas funkcijas side līdzās, piemēram, kaut kas līdzīgs šim. Tagad kā pieskari, nav šis joks tagad jēga? [Smiekli] Tas nenozīmē, ka tas ir smieklīgi, bet tā nav iespējams padarīt nedaudz lielāka jēga. Tāpēc tagad iesim uz CS50 ierīce uz brīdi. Un ļaujiet man atvērt vienu teaser šeit. Un patiešām ir viens no iemesliem, ieviešanai IKEA katalogs un mirgo attēlu iPhone mazliet atpakaļ bija faktiski kaklasaiti kopā Fakts, ka tikai pirms dažiem gadiem, 2007.gadā, šis gabals kodu bija atbrīvota, kas tika viens no pirmās īstenošanas gabals programmatūras ka tas, ko sauc jailbreaking. Tiem, nepazīstamā, jailbreaking kaut kas līdzīgs tālruni vai iPhone būtībā nozīmē norādītas , kā darīt lietas ar to, ka uzņēmums kas par tā neplāno. Tāpat kā jūs vēlaties instalēt noteiktu programmatūru, kas nav no App Store, jailbreaking savu tālruni, kas jūs darīt lietas, piemēram, ka, un vairāk. Bet to, kas bija jautri 2007-- un tur ir bijis desmitiem dažādās versijās no šīm lietām kopš tā laika, visādos no languages-- ir tas, ka šī programma šeit, ko sauc iUnlock, faktiski tika rakstīts C. Un tā es velk uz augšu pirmkodu par šo, tikai, lai veida parādīs dažus līdzības ar konstrukcijas mēs esam runājuši līdz šim. Tagad tur ir veids, kā vairāk sarežģītība šeit nekā mēs esam redzējuši jau klasē. Ļaujiet man ritiniet uz augšu tikai nedaudz šeit. Bet paziņojums these-- arī mēs pamanām maz things-- bet paziņojums šīs rindas šeit ieskaitot standarta I / O dot h. Un all-- līnija 24, please-- ievērosiet standarta I / O dot h un viss ķekars citu faili, ka acīmredzot citi cilvēki ir uzrakstījuši. Un, ja mēs ritiniet uz leju pa tas, maz patvaļīgi, Paziņojums Es nezinu, kā rakstīt viss tas pats noteikti vēl, bet tur ir, ja. Tātad acīmredzot tas ir filiāle. Un, ja es ritiniet uz leju mazliet turklāt tur ir vēl viens, ja. Ja es ritiniet uz augšu, es domāju, ka ap līnijas 100 es redzēju. Tāpēc es neesmu pilnīgi pārliecināts kā tas darbojas vēl, bet tas ir cilpa, kas notiek, lai ļaujiet man atkārtot kādu skaitu reižu. Un, ja es ritiniet visu ceļu uz leju Es redzu, ka tur ir darbotos uz leju šeit sauc galvenais, un daži papildu kredītus Jūsu lasīšanas prieku. Tātad tas ir tikai say-- un mēs nodot šis tiešsaistes starp kursa avota kods today-- ka pat daži no šiem ierīces, kuras mēs uztveram par pašsaprotamu, beigās, dienā jūs vēl izmantojot šos pamata konstrukcijas, ka mēs esam ir ieviest jau līdz šim. Tas ir pietiekami daudz, ka viens. Labi, tāpēc tagad pieņemsim faktiski veidot kaut ko. Iesim tālāk kaut ko līdzīgu hello.c, un atvērt to, pieņemsim rakstīt šo programmu šeit. Es iešu uz priekšu un uzrakstīt programmu, ko sauc adder.c, kuru mērķis dzīvē būs līdzīgi manu pirmo super vienkāršu kalkulatoru ka tikai piebilst pāris numuriem. Ne tāpēc, ka tas ir grūti problēma, bet tāpēc, ka tas ļauj man tagad tie kopā dažas lietas. Tāpēc es esmu gatavojas iet uz priekšu un ietver standarta I / O dot h un CS50 dot h. Es esmu gatavojas teikt int galvenais tukšumu. Un atkal nākotnē mēs atgriezties pie tā uz šajā kontekstā un spēkā neesošu līdzekļiem. Un tagad es esmu gatavojas teikt kaut ko piemēram printf, dod man skaitlim. Un tagad par manu otro līniju, kā es varu izteikt sevi, piemēram , ka es gribu, lai deklarēt mainīgo kas notiek, lai saglabātu int? Burtiski ko man rakstīt, ja es gribu izveidot mainīgo, kas saglabā int jūs teiktu? int vienāds getint. Protams, tāpēc, ka darbojas. Un tikai konsekvences ar kodu jūs redzēt online, ļaujiet man mainīt to x, tikai tāpēc, ka x ir kopīgs mainīgā vārds izmantot vismaz algebrā. Tagad ļaujiet man iet uz priekšu un darīt printf vēlreiz. Dodiet man vēl skaitlim. Un tagad es esmu gatavojas veida gada mācīties no šī modeļa, Es esmu gatavojas teikt int y izpaužas GetInt. Un mēs esam nav izmantoti GetInt agrāk, bet tikai tāpat GetString iet un saņem virkni, tāpat Javier darīja no auditorijas, Līdzīgi dara GetInt sāk mirgot uzvedni. Un efektīvi gaida lietotājam lai dotu tai skaitli, ierakstot to un nospiežot Enter. Tagad beidzot es esmu gatavojas darīt tas, printf summu of-- un ļaujiet man iegūt iedomātā now-- procenti i un procenti i ir klāt i izsaukuma zīme reversā slīpsvītra n. Un ko jūs domājat, ka es esmu gatavojas īstenot tagad, jo papildu izejvielas lai printf? Es negribu teikt, burtiski citēt likt pēdiņas beigās x. Es gribu, lai klasē x un Tad, un tagad pieņemsim nokļūt fancy un pieņemsim tikai uzņemties mēs varam darīt to, ko mēs gribam. Ko jūs vēlaties teikt nākamo? x plus y. Un tiešām, kas strādās. Tā ir minimāli programmēšanas valodas saprotu aritmētiskās, un tā tas būtu faktiski darbs. Tāpēc ļaujiet man iet uz priekšu un darīsim papildinātājs manā melnā un baltā loga šeit lejā, Enter. Mistisks line bet ne kļūda ziņa, tā ka ir labi. Dot slash papildinātājs, dod man veselu skaitli, 1. Dodiet man vēl skaitlim, 2. Gada 1 un 2 summa ir 3. Labi, tāpēc diezgan triviāls programmu, bet to, kas ir izdarīts? Tas ļāva man izmantot funkciju zvanu šeit, izsauktu citu funkciju šeit, divi zvani uz GetInt, a Trešais zvans printf, un tad, izmantojot šo vietturus. Tātad, tas ir nedaudz vairāk sarežģītāka nekā pēdējo reizi. Bet ko darīt, ja es gribu get nedaudz mīļotājs? Ļaujiet man iet uz priekšu, un tagad to izdarītu. Ļaujiet man iet uz priekšu un izveidot jauns faila sauc nosacījumi nulles. Un es esmu gatavojas, lai saglabātu kādu laiku klases dēļ un tikai ielīmēt, ka kodu, kā sākumpunktu. Un tagad es esmu tikai gatavojas nodot kaut kas jauns šeit vidū. Tātad printf es gribētu skaitlim lūdzu. Un tas viss kods ir pieejams par kursu mājas lapā, jums nav rakstīt to visu ārā klasē, ja jūs labprātāk nav. int, un tagad es esmu gatavojas izmantot, tā vietā, x un y, Es esmu gatavojas izmantot n, kas ir iespējams, visbiežāk nosaukums par skaitlim ar datorprogrammu. Un tagad es gribu darīt maz spriedums šeit. Es esmu gatavojas, lai redzētu, vai n ir lielāks par 0, tad Es esmu gatavojas teikt printf-- Whoops, printf-- jūs noplūktiem pozitīvu skaitli, izsaukuma zīme slīpsvītru n. Aizveriet to. Vēl es esmu gatavojas izdrukāt printf jūs noplūktiem negatīvu skaitli. Tagad, pirms jūs kliegt uz mani, pieņemsim palaist šo programmu. Ļaujiet man iet uz leju šeit. Un kā es varu sastādīt programmu sauc apstākļi domuzīme 0? Padarīt apstākļiem domuzīme 0. Veida stulbu vārdu, but-- dammit. Labi, labi mācību brīdis. Kāpēc, ka pauze? Ko es nejauši aicinu šo failu? Jūs varat veida secināt No cilnes šeit. Tātad, tas nav slikti, ka es darīja, jo tas notiks varbūt daži no jums. Tāpēc es nejauši nosauca manu pirmkods stāvoklis 0. Bet mans pirmkods pēc vienošanās būtu būt failu sauc nosacījums 0 domuzīme c, vai kāds dot c. Tāpēc ļaujiet man noteikt šo. Tāpat kā Microsoft Word es varu iet uz augšu Saglabāt As un darīt nosacījums 0 dot c. Tagad tikai, lai būtu sakopta es esmu gatavojas iet uz priekšu un izņemiet nosacījums 0, kas bija mana vecā versija. Un tagad pieņemsim darīsim nosacījums 0, Enter. Labi, šķiet labi. Stāvoklis 0, Enter. Es gribētu vesels skaitlis, lūdzu, 50, jūs noplūktiem pozitīvu skaitli. Tagad, kā par negatīvu 50? Jūs noplūktiem negatīvu skaitli. Kā par tagad 0. Diezgan pārliecināts, ka 0 nav negatīva. Tātad šis ir sava veida loģiskā bug. Kā es varu noteikt šo? Cits, ja n ir mazāks par 0, to izdarītu, cits mēs varam būt trīs veidu filiāli šeit, printf jūs noplūktiem 0. Tāpēc tagad, ja es atkārto šo programma, pēc apkopojot to atkal ar marku, un tagad atkārto nosacījums 0, ko es redzu šeit ir 0, dod man šo produkciju. Tātad, ja mēs ejam ar šo? Nu tas ir ļoti viegli zaudēt redzi meža par kokiem. Un tā mums ļauj secināt ar šo 2 un 1/2 minūšu video kas galu galā ir nedaudz no reklāmas no Google, bet tas tiešām ir apliecinājums ko pat izmantojot šos pamata ēka bloki mēs galu galā var darīt reizi mums ir mazliet programmēšanas savvy saskaņā ar mūsu jostām. [Mūzikas atskaņošanai] SAROO Brierley (aizkadra balss): Tas bija pirms 26 gadiem, un man bija tikai par to, lai ieslēgtu 5. Mēs saņēmām uz staciju un mēs iekāpuši mūsu vilcienu kopā. Mans brālis tikko teicu es ņemšu palikt šeit, un es atgriezīšos. Un es tikai domāju, labi jūs zināt, Es varētu arī vienkārši iet gulēt un viņš vienkārši pamodiniet mani. Un, kad es pamodos nākamais diena, viss pārvadāšana bija tukša uz bēguļojošs vilcienu, spoku vilciens ņemot mani es nezinu, kur. Man tika pieņemts, lai Austrāliju, uz Austrālijas ģimenei. Un mamma bija dekorētas my istaba ar karti Indijas, kas viņai likts blakus manas gultas. Es pamodos katru rītu redzot šo karti, un līdz ar to tā veida tur atmiņas dzīvs. Cilvēki teiktu, tu esi mēģinot atrast adatu siena kaudzē, Saroo jūs nekad atrast to. Man ir pazibēja no vietām, ka es izmanto, lai iet, mirgo mana ģimene sejas. Tur bija tēls mana māte, sēžot ar viņas sakrustotām kājām, tikai skatoties viņas raudāt. Dzīve ir tikai tik grūti. Tas bija mans dārgums. Un es skatījos uz Google Map un sapratu, tur ir Google Earth, kā arī. Pasaulē, kur jūs varētu zoom vērā, Es sāku, lai visas šīs domas un kādas iespējas ka tas varētu darīt man. Es sev teicu, jūs zināt, jūs esat ieguva visus šos foto atmiņas un orientieri, kur tu esi no, un Jūs zināt, ko pilsēta izskatās. Tas varētu būt programma, kas Jūs varat izmantot, lai atrastu savu ceļu atpakaļ. Es domāju, labi es nolikšu dot uz Kalkuta dzelzceļa stacijas, un rādiuss līniju, jūs zināt, ka jums Būtu meklējot ap šajā jomā. I veida nāca pāri šie vilciena sliedes. Un es sāku pēc tā, un Es atbraucu pie dzelzceļa stacijas, kas atspoguļoja pašu attēlu kas bija manā atmiņās. Viss saskaņota. Es tikai domāju, yep, es zina, kur es eju. Es esmu tikai gatavojas let karte, kas man ir manā galvā svina mani un ņem mani atpakaļ uz manu dzimtajā pilsētā. Es atbraucu uz sliekšņa māja, kas man bija piedzimis. Un staigāja apkārt aptuveni 15 metrus ap stūri, tur bija trīs dāmas stāv ārpuses, kas atrodas blakus viens otram. Un vidējā viens piegāja, un Es tikai domāju, tas ir jūsu māte. Viņa nāca uz priekšu, viņa mani apskāva, un mēs tur bijām apmēram piecas minūtes. Viņa satvēra manu roku un viņa aizveda mani uz māju un ieguva pa tālruni, kur viņa zvanīja mana māsa un mans brālis teikt, ka jūs zināt, tavs brālis ir tikko visi pēkšņi parādījās kā spoks. Un tad ģimene bija apvienoties vēlreiz. Viss, viss ir labi, Man palīdzēja manu māti, kas, viņai nav jābūt vergojot prom. Viņa var dzīvot pārējo viņas dzīvi mierā. Tas bija adatu siena kaudzē, bet adata bija tur. Viss ir tur. Viss mums ir pasaulē ir krāna pogu. Bet tev ir griba un apņēmība vēlas to. [Mūzikas atskaņošanai] DAVID Malan: Brīnišķīgi salds atsauksme tikai to, ko jūs varat tagad darīt ar tehnoloģijām. Mēs redzēsim tevi nākamnedēļ.