DAVID Malan: Ĉi tiu estas CS50, kaj ĉi estas la komenco de la semajno unu. Kaj kion ni pensis ke ni volas fari estas tiri reen la kurteno de aparato kiun multaj de vi probable piediris pasinteco nun dum jaroj, sed eble neniam sufiĉe scias kion ĝi estas. Do tiu mekanismo estos probable aspektas familiara al plej el vi per nun. [VIDEO reprodukto] -Al triumfo de matematikaj kaj mekanikan lertecon estas tiu granda nova aŭtomata kalkulilo je Universitato Harvard. Komplika problemoj en matematiko meti tra la maŝino en kodita formo sur bendo estas precize solvitaj en minuto frakcio de la tempo bezonata por homa kalkulo. Desegnita por akceli ĉiujn formojn de matematika kaj scienca esplorado, la giganto mekanikaj cerbo volas laboros por la Unuiĝintaj Ŝtatoj Armita ĝis la milito finiĝis. [FINO reprodukto de vídeo] DAVID Malan: Do tio, kion vi vidas en la Science Center, kiu estas kie tiu maŝino estas nun gastigis. Vi fakte nur vidi parton de ĝi. Nur porcio estas nuntempe en elmontrado, kaj tio estas nomita mekanismo la Mark mi, kaj gxi estis esence vere grandega kalkulilo. Ĝi okazis la Mark II, kaj ĝi estas de la Mark II ke ni efektive akiri iom de leksiko. Ĉi tiu estas la unua registrita petskribo de io, kion vi estas iĝonta ĉiuj tro familiara kun super la kurson de la semestro - nome, cimon. Do ĝi rezultis je unu punkto la Mark II aparato ne funkcias konvene kaj sur proksima inspektado, estis ja cimon - tineo - ke tineo - enen. Kaj ekde tiam, ni raportis al erarojn en programoj kiel cimojn. Do pli en la venonta. Parolante pri video tiel, se vi ne jam, scias, ke CS50 estas evidente filmado. La prelegoj kutime iru tuj post klaso en ia antaŭ-versio sen eldoni formato, kaj poste dum unu aux du poste, ni metas ĉe pli alta distingivo kaj pli alta kvalito versio. Vi eble memoras Vanessa, kiu havis la fortuno de ludi kun Google Pokalo, kiun mi memoris ŝarĝi ĉi tiun fojon. Do se vi volas veni post klaso kaj ludi, ili devus labori hodiaŭ. Kaj se vi ŝatus vidi kion Vanessa vidis la alia tago, kion vi vidos tie - lasu min levi la volumo ĉi tie en mia tekkomputilo. [VIDEO reprodukto] -Do mi vosto estas supre. Ĉio bone. Do tuŝi ĉi. Ĉio bone. OK, Pokalo. Gravuri video. Ĉio bone. Vanessa? [FINO reprodukto de vídeo] DAVID Malan: Bone, do la kialo ke tio ne funkcias por la plimulto el vi en la fino de klaso estis ĉar mi plue gravuri horo de tiu bildoj indik mem post Mi metis la okulvitrojn malsupren. Do hodiaŭ, mi lasos ilin, sed dankon vi Vanessa por esti tia bona sporto. Dume, paro de anoncoj antaŭ ol ni forĝi antaŭen hodiaŭ. Do unu, CS50 havas tradicion de fari kion ni povas provi fari tre granda klaso sentas pli malgranda. Kaj al tiu celo, plej ĉiun vendredon, ni kunvenas en restoracio la placo, Fajro kaj Glacio, kun 30 aŭ 40 de via samklasanoj, mi mem, kelkaj el la instruistaro, kaj ni simple havas tre hazardaj lunĉo. Ni ofte invitas geamikoj el industrio, lernantoj de la klaso, lernantoj de la kolegio, vere nur babili ĉiu aliaj ĉe, paroli pri vivo post kolegio, la vivo en la universitato, kaj similaj. Do se vi ŝatus partopreni en ĉi tiu unuaj tiaj tagmanĝo tiun vendredon ĉe 1:15 PM, kapon por ke URL je iu punkto. Spaco estas limigita, tiel ni faros veni antauxe unua utilas. Sed ni tion faros ĉi denove sur _recurring_ bazo, do ne zorgu se vi ne fari ĝin en tiu unua parto. Nun, en terminoj de la rimedoj havigitaj curricularly de la kurso, tie estas tuta mortigis, kaj se vi ne havas tiris supren la kurso de afiŝinto Jam, en aparta, sub prelegoj, vi trovos, ke ĉio ni faris pasintsemajne estas tie, ambaŭ en video kaj ia de elektronika formo. Sed transe de videoj, vi trovos ke nun estas plena teksto transskriboj, ekzemple, de ĉiu prelego. Do, se ni efektive reiros al tiu ekrano tie kun Vanessa, kaj navigi al la fundo angulo de la ekrano, vi trovos, ke fakte, ne por Vendreda prelego, sed se ni reiru al Merkredo, ekde tiu karakterizaĵo donas malmultaj tagoj, vi trovos, ke vi povas fakte elsxiros, por pli bona aŭ por malbona, ĉiun vorton, kiun mi aŭ volontulo en la scenejo diris. Kaj pli ol nur tio. Vi povas fakte esplorrigardi gxin, vi povas alklaku iun el tiuj frazoj, salti al tiu punkto en la video, ĉiuj al kaj fino de farante la materialo ĉiuj pli ŝipveturebla. Sed se vi preferus ne sekvi ĝin en tia detalo, vi trovos, por Ekzemple, tiu malgranda menuo tie por 1.5x rapido, 2x rapido, aŭ i f mi jam parolu tro rapide por vi, 0.75x rapido. Do realigi ĉiuj kiuj estas disponebla tie por vi. Sed krome, por prelegoj, realigi ke ni ankaŭ faros tiuj rimedoj disponebla ankaŭ. Diapozitivoj, ekzemple kodon, ion kiun mi fari en la scenejo aŭ en antaŭeniras de klaso, ni afiŝi tie por ke vi povas ludi kune hejme aŭ en Sanders. Sed kion ni ankaŭ pensis ke ni volas fari ĉi jaro por la unua fojo ankaŭ provizi vin per walkthroughs el tiuj ekzemploj. Ĉiufoje, kiel mi meditis pri la valoro de CS50 de prelegoj, mi komencis pridubi, kiom utila estas por you guys sidi tie, por mi staras ĉi tie, kaj por mi paroli pri vi, aparte kiel la materialo, la ekzemploj, akiru pli kompleksa. Ĉar nevarie, post iu kvanto de minutoj, iu volo zono, kaj tiam mankas al vi iuj ŝlosilaj sagaceco de iu ekzemple, kaj tiam vi estas esence foriris por la cetera porcio de klaso, kiu ne estas la plej bona uzo de vian tempon, aŭ, vere, nia kolektive kiel klaso. Kaj do kion ni pensis ke ni provas fari, aparte por kelkaj pli kompleksa ekzemplojn por ke mi ne faru justecon al la klaso, ke ni ne fariĝu havas tempon por en klaso, aŭ vi povus nur zono ekster dum, estas ni produktas serio de walkthroughs de tiuj ekzemploj tiel ke se vi iras al, por Ekzemple, lasta vendreda video paĝon tie sub ekzemploj, vi vidos ke por vendredo, estas nun ĉi ligi al walkthroughs. Kaj la formaton de tiuj ŝanĝos la tempo. Nun, ni uzas simplan YouTube playlist. Sed kion Mi faris kun niaj teamo de produktado poste estis marŝi tra ĉiu kaj ĉiu el tiuj ekzemploj denove, espereble markante en multe pli granda klareco ĝuste kion la takeaways povus aŭ devus esti de ĉiu. Do vi trovos, ekzemple, de la pasinta semajno, ĉiu el la nulo ekzemploj Ni trapasis estas farata lineare en tiu modo. Do bonvolu partopreni aŭ ne partopreni en ĉi tiu materialo. Vere temo de ĉi tiu aparta kurson estas ke ekzistas probable pli laŭ la vojo de rimedoj ol vi povus sorbi super la paso de duonjaro. Sed tio estas intenca. Ĝi celas esti tiel ke vi kiel individuaj studentoj povas mem-unuaranga surbaze de via lernado stilo. Do se prelegoj funkcios por vi, granda. Se sekcioj labori por vi, granda. Se walkthroughs labori por vi pli bone, granda. Ĝi vere estos ĝis vin elekti kio rimedoj funkcias plej bone por vi. Fine, danke al lernanto de la Kompreneble, ni ankaŭ provizas kanona aro de skribisto notoj. Do anstataŭ havi you guys kapoj malsupren en prelegoj scribbling malsupren aĵoj kiuj venis en la klaso, ni, la bastono, provizos vin per kio ni sentas estas kanonaj aro de notoj liberigi vin de tiu distro, por ke se vi estas tie kaj dediĉis, vi estas vere okupata pri kio okazas, kun via samklasanoj faras sur etapo, kun kio estas supre sur la ekrano, kaj ne simple notante verbatim kio okazis al ili diris. Do realigi ĉiuj tiuj rimedoj estas disponebla por vi. Sekciigo, en respondo al Oftaj Demandoj, komencos tiun merkredon. Ni esence atendu ĝis post plej aliaj klasoj estas farita por ke ni povu minimumigi la nombron de ŝanĝoj ke ni devas fari. Sed venante al li ĉi tiun semajnfinon, komencante Dimanĉo, estos iam petskribo de kion ni nomas super sekcioj. Ĉi tiuj estos filmado por tiuj kiuj ne povas ĉeesti, kaj esence, la Kompreneble la kapoj irados nin tra iuj de la C porcion de la kurso, al la fino de problemo aro, kio tuj estos nia unua C bazita problemo aro. Kaj ĉi tiuj nur esti nedeviga sekcioj en antaŭvido de kio estos fariĝis _recurring_ sekcioj kondukis por la paso de 50 plus instruante uloj ĉiusemajne. Dimanĉe aŭ lunde aŭ marde, ni havas 90 minutoj sekciojn en tre tradicia senco, kiu estos ŝancojn por manojn sur kaj pli intima revizio de la Kompreneble la materialo. Sen pli enkonduko, lasu min enkonduki la kurson de kapoj, kiuj estas malantaŭ la scenoj kun mi, fari ĉion okazi. Se tiuj ĉi tien hodiaŭ povus akompani min, Rob kaj Lauren kaj Jozef kaj Lucas, ĉiuj el kiuj estis kun la kurso por iu tempo. RJ estas la tria tia membro de nia teamo. Li ne povis esti ĉi tie hodiaŭ, sed li petis min montri foton de li. Mi ne estas certa ke li volis tiun unu, sed li estas. Kaj lasu min nur permesus la teamo diri saluton kaj enkonduki sin tiel ke vi ekkoni ilin tiel kiel via propra instruado ulo ĉi tiu termino. Lauren Carvalho: Hi. Mia nomo estas Lauren Carvalho. Mi estas loĝanto lingvohelpanto en Leverett Domo. Mi ankaŭ Super ekscitita esti kapo TV por CS50 ĉi tiu jaro. CS50 estas tre defia klaso tiel kiel tre granda klaso, do se vi havas neniun maltrankviloj, se vi sentas kiel vi falas malantaŭen, sentu vin libera alveni al iu el ni, heads@cs50.het aux al mi, se vi volas ŝatas ludi kun mia ora Retriever ido. Jen Lucas. Lucas Freitas: Hej, knaboj. Mia nomo estas Lucas Freitas. Mi estas juna [inaudibles] komputiko kaj lingvistiko. Mi efektive el Brazilo, kaj mi ankaŭ realigi oriente aziaj studoj. Do se vi havas demandojn pri komputiko aŭ lingvo aŭ nenion, nur lasu min scii. Aŭ CS50, speciale. JOSEPH ONG: Hi. Mi estas Jozef. Mi estas altranga studi komputilo scienco en Elliott Domo. Do, ni vidu. Vi vidos min ĉirkaŭ portante unu el tiuj enormaj ĉambroj. Mi estas la loĝanta bastonon fotisto por 50 tiel, kaj studentoj ofte kelkfoje konfuzas min azia turisto. Do, se vi vidos min, kun ĉambro, ne kuras for. Nur ridetas kaj ne timema. Kaj mi esperas ke vi ĝuos 50. Mi ĝuis ĝin tre multe, kiam Mi prenis ĝin, kaj tial Mi estis TFing por ĉi tiuj tri jaroj. ROB Bowden: Hi. Mi Rob. Ĉi tio estas mia kvara semestro kun CS50. Mi ĵus diplomiĝis en majo. Mi estis en Kirkland. Mi ekscitita por ĉi tiu semestro, kaj mi esperas ke vi estas tro. DAVID Malan: Dankon por ĉi-jara kapoj, kaj al RJ tiel. Do kelkaj fina notojn sur rimedoj. Unu, p starigis 0 estas jam supre. Ĉi tiu ekzistas nur en normo eldono, kiu estas intencita por la tuteco de la klaso. Komencante kun p aro 1, estos hacker eldonoj de plej problemo aroj, kiu, denove, kovros la materialo kun iom pli de defio, dum ankoraŭ tuŝante iuj de la sama temo. Ĉu rigardi la kurson de afiŝinto por tiu specifo por p aro 0. Oficejo horoj, tro, ili komencos tiu semajno, ĉi tiun nokton, morgaŭ, merkredon, kaj Ĵaŭdo en diversaj manĝejo haloj en la campus. Check out cs50.net/ohs por la oficejo horojn por la kurso, kaj realigi tiun estos tre hazardaj ŝancoj, certe, en la komenco de la semestro, veni por kun via portebla dum cerbo ripozon. Alportu kelkajn amikojn kaj babilas ĉe la Kompreneble la TFS kaj CAS kun ajna demandojn, ke vi povus havi. Kaj mi ne povas elstari sufiĉas, eĉ por nulo kaj problemo aro 0, vere estas neniu muta demando. Ne estas studento tro malkomforta demandi demandojn. Ne hezitu utiligi de ĉi tiu rimedo. Ĝi estos tie recurringly tra la semestro, kiel estos CS50 Diskutu. Tio estas la kurso la retan diskuto forumoj en tiu adreso tie. Kion ni ankaŭ fari dum prelegoj estas ankaŭ kontroli tion, danke al la Kompreneble la instruado teamo. Kaj do se vi havas demandon dum prelegi, ĉar mi diris ion malbone aŭ tute ne, por supozita, petu ke en reala tempo se vi havas vian portebla aŭ telefono en la retejo, kaj Ni faros nian eblon en proksimaj reala tempo al respondi al tio. Ĉu estas demandoj pri la CS 50? Tiam unu lastaj notoj el mia. Tiu temo de SAT UNSAT. Kiel vi finos vian studon kartoj, se vi ne jam, rimarkas ke la komunajn vidado de SAT UNSAT, disponebla por ĉiuj studentoj, estas vere helpi preni la rando ekstere de kurso kiel tiu, por tiel diri, por ke, se vi trovi mem malfrua nokto, 2am, 3AM, vere banging via kapo kontraŭ la muro kie vi scias ke vi estas 99% de la vojo al finaĵon, sed vi havas tiom da aliaj aferoj por fari, Mi kredas pli bonan uzon, ofte, de studentoj 'tempo estas ja movi antaŭen al tiuj aliaj aĵoj por ke vi povas optimumigi vian tempon cxirkauxe. Kaj SAT UNSAT estas mekanismo per kiu vi povas preni komforto en la fakto ke 99% de la vojo estas ankoraŭ sufiĉe Darn bona. Simile, ankaŭ, se vi venos en la kurso kun neniu antaŭa fono aŭ Ne preskaŭ tiel fono kiel vi pensas, ke via samklasanoj povus havi, vera aŭ malvera, rimarkas ke ĉi tiu estas ŝanco atingi viajn manojn malpurajn kun la kurso, metu viajn piedfingrojn en la akvo, por tiel diri, multe kiel mi mem faris jarojn kun pass / malsukceso. Kiel mi diris pasintsemajne, havis ĉi kurso, kiel aliaj, ne estis disponebla pasi / malsukceso ĉe la momento, mi probable estus Ne iam elpaŝis piedon en la klaso, kvankam mi faris, kvin semajnoj poste, ŝanĝi mian menson, kiujn vi Eble tiel, kaj ŝanĝi super al aŭ el letero gradita statuso. Ĉio bone. Do ni rigardis tion kiel tiu en Vendredo, kaj ni tre rapide irante por transiro al iu kiu aspektas pli kripta hodiaŭ. Sed estas tamen la sama fundamenta ideo. Kio estis la ĝenerala termino kiu ni uzata por priskribi puzlo peco kiu aspektis tiel? Do, komunikaĵo. Kaj vi povas nomi ĉi ajna nombro de aĵoj. Sed ni simple nomas ĝin deklaro, kaj deklaro nur rakontas la programo - aŭ en la kazo de Scratch, la sprite - fari ion. Diru saluton en ĉi tiu kazo. Io tiamaniere ni anstataŭ nomi kion? Jes, tiel Bulea esprimo. Al Bulea esprimo estas nur io tio estas vera aŭ falsa, do nulo altiras ilin per tiu formo, sed ankaŭ kun demandosigno transdoni la ideo, ke la respondo al tiu demando estas ĉu vera aŭ malvera, jes aŭ ne unu, 1 aŭ 0. Kaj ni uzas tiujn Buleaj esprimoj ene de konstruoj kiel tiuj, kiuj ni nomas kion? Do, kondiĉo aŭ branĉo. Kaj la kondiĉo vi vidas tie en Scratch havas iom lokokupilo por enigmo peco de tiu formo, la celo el kiuj estas tiel ke vi povas treni ĝin kaj faligis ĝin supren kaj poste dikti al la programo se tiu Bulea esprimo estas vera, do ĉi tiu aro de instrukcioj, tiu aro de deklaroj, alie fari ĉi tiu alia aro de instrukcioj. Kaj memoru ke vi povas nesto tion. Kvankam tie ne estas multe ĉambron vide en tiu enigmo peco, Scratch kreskos kaj retiri por persvadi ajn enigmo pecoj vi treni kaj lasi en tie tiel vi povas reale nesto tio kaj havas tri maniero forkon en la vojo. Se, alie se, alia. Kaj vi povas eĉ iri preter tiu de nestumado pli kaj pli kiel necesas. Do fine, ni vidis konstruoj kiel ĉi, alie sciata kiel buklo. Kaj tio estas nur iu kiu faras io denove kaj denove kaj denove. En tiu kazo, ĝi okazas al esti finia nombro de fojoj, sed ni ankaŭ vidis ekzemplon kie la nombro de fojoj venis de variablo, do povis ŝanĝi. Kaj ni ankaŭ vidis alian bloko aro nomata ĉiam bloko kiu nin permesis buklo malfinie longa. Do unu alia konstruo ke Scratch 2.0 havas - kaj la de vi pli komforta kun antaŭaj fono estas jam bone konas ĉi tiun konstrui - tion ni nomas kion? Do ni nomas tiujn funkciojn, alie konata kiel proceduroj. Ekzistas malpeza semantika diferenco, sed ni nomas ilin simple funkcioj. Kaj funkcio, en la kazo de Scratch, Estas kutimo puzlo peco kiu vi mem povas krei tiel ke vi havas nova enigmo peco kiu, en tiu kazo, nomus tuso, ke aperas inter ĉiuj aliaj disponebla puzlo pecoj en Scratch. Kvankam MIT ne inventis tiu enigmo pecon, vi faris. Do funkcio permesas vin krei novan konduto, donu gxin funkcio nomo, kaj tiam nomas ĝin, por tiel diri. Vere uzi ĝin en programoj denove kaj ree kaj ree sen devi atendi por iu kiel MIT laŭ la vojo al elpensi novajn funkciojn de nulo. Vi mem povas konstrui tiujn puzlo pecoj vi mem, kaj poste reuzi ilin en via propra programoj. Kaj ni vidos _recurring_ ekzemplo de tiu hodiaŭ kaj pluen. Do hodiaŭ, ni transiro nun al iu pli arkaikaj. Sed je la fino de la tago, iu pli potenca kaj esprimplena kaj pli reprezentanto de la vojo, ke ni estos en la tuta semestro tuta nombro de lingvoj - tiu de kodo aŭ kodo fonto. Kaj fontkodo, rezultas, ne estas kion komputilo tipe vere kuras. Fontkodo aspektas iu kiel ĉi tio. Do tiu estas, denove, eble la plej simpla programo povas skribi en lingvo nomas C. Ni komencos turmentus tiu aparte post nelonge, kaj se tiu ja aspektas kiel greka al vi nun, fidu min. Ene nur unu-du semajnoj la tempo, ĉi Estos tro familiara kaj reale sufiĉe reprezentaj de ĉiufoje kompleksa ekzemploj kun kiu vi instruos vin ankaŭ akiri pli komforta. Sed vi ne povas kuri ĉi speco de kodo kutime. Vi devas igi ĝin iu kiu la propra komputilo komprenas. Kaj tial por tio, ni bezonas iun Ni tuj voki kompililon. Al kompililo estas programo kiu prenas fonta kodo, kiel vi ĵus vidis, kiel eniro, kaj ĝi produktas nuloj kaj ones kiel eliro, alie konata kiel objekto kodo. Kaj estas tiuj nuloj kaj kiuj eble aspektas tute kiel ĉi tio finfine komprenas per Mac aŭ via PC. Se vi iam aŭdis la merkatiko esprimo Intel Ene, ke nur signifas ke kompanio nomita Intel fabrikis la cerboj de via komputilo - alie sciata kiel la CPU, centra prilaborado unueco - kaj tio estas ĝuste tio, kion komprenas ŝablonoj de nuloj kaj aĵoj. Kaj tiel per konvertado fontkodon en celkodo tra tiu procezo tie ke ni faros kun paro da ordonoj en nur iom, vi estas krei mastrojn de nuloj kaj aĵoj ke la oficistoj de Intel havas decidis reprezenti iujn deklarojn. Nun, mi ne tute scias kio estas kiu por nur rigardante tiuj nuloj kaj aĵoj. Plej homoj tiuj tagoj ne. Sed ie en estas mastro de nuloj kaj kiuj reprezentas la deklaro impreso. Ie tie povus esti malsama aro de nuloj kaj kiuj reprezentas la nocion de ĉiam aŭ ripetu 10 fojoj eĉ meow, se estas fakte programo kiu povas inkluzivas iujn sonojn. Do, en mallonga, homoj ĵus decidis, multe kiel ni faris por Askio - por literoj de la alfabeto lasta semajno - homoj decidis, ke eĉ pli kompleksaj modeloj de nuloj kaj aĵoj reprezenti pli kompleksajn konduto kiel videbligi aŭ diri aŭ meowing. Kaj tiel hodiaŭ, kaj plejparte antaŭen en la semestro, ni prenos por koncedis ke iu figured el kiel fari ke surĵeto. Sed ni, kohera kun tiu ideo de layering supre sur la laboro de homoj kiuj jam venis antaŭ ni, prenos por donita la fakto ke ĉi tio okazas sub la kapuĉo. Sed ni estas multe pli interesiĝis konstruaĵo aĵoj kiuj estas pli interesa sur supro de ĉio ĉi. Kaj tiel efektive, la unua programo ni skribis en Scratch estis ĉi tiu super simpla unu, Saluton Mondo. Kaj vi povas pensi pri tio kiel la ĉefa programo kiu regas Scratch la konduto ekde la pasinta vendredo. Hodiaŭ, ni tuj komencos traduki Skrapi puzlo pecojn en fonta kodo en tiu ĉi lingvo nomata C por ke kion similis tiun de Vendredo, komencante hodiaŭ antaŭen, estas nun tuj aspekti kiel ĉi tio. Certe pli kripta. Ĝi estas bela distrante kaj varo de menso numbing vidi ĉiujn citaĵoj kaj la punktokomojn kaj la parentezoj kaj tiel plu. Sed se vi komencas ignori ion ajn ne komprenas, kaj vere aspektas ĉe la esenco de la blanka teksto sur la ekrano, verŝajne vi vidas, kiel mi faras, "Saluton, mondo." Tiu regiono kun la purpura deklaro ĝis supre, kaj ĝi rezultas ke la ŝlosilvorto ĉefa tuj laŭliniigi koncepte kun kiam verda flago klakis. Do alivorte, dum kiu en Scratch, ni apliki ĉi Saluton Mondo programo kun tiuj du puzlo pecoj, en C, Ni tuj apliki ĝin per tiuj kvar iomete kripta linioj. Sed kiel ni plonĝi profunden en tio, ke vi vidas, ke cxiu el tiuj blanka karakteroj sur la ekrano fakte havas iujn signifajn signifo, kaj la plimulto de niaj programoj tuj rigardi strukture tute la sama. Do komunikaĵo, esti klara, kion rigardis kiel "diras saluton mondo" on Vendredo tuj komencos serĉi ŝatas tiun lundon. printf ("Saluton, mondo"). Kaj tie estas iuj strangaj backslash n, estas parentezoj, estas punktokomojn. Sed je la fino de la tago, la ŝlosilo takeaway hodiaŭ estas, ke ĉiuj ni faras estas traduki tion for bildo formi al teksto formo. Do loop kiu similis tiun lasta semajno tuj nun rigardu iu kiel ĉi tio. Kaj lasu min disclaim, ĝuste kiel en Nulo, ekzistas malsamaj manieroj atingi la saman celon. Sama en C. Mi ne montras al vi la sola maniero por fari tion, sed unu maniero traduki ĉi ĉiam bloki al buklo en C. Ĉi tiu tie, ripetu 10 fojoj. Ĉi tiu vere speco de kurbiĝoj la gravas la unua fojo vi vidos. Sed por apliki ke de nun, Ni tuj uzi por ciklo, tiel diri. Kaj klare ekzistas iuj sintakso tio iom kompleksa tie kun mi kaj egalaj kaj 0, sed iam ni plonĝi en tiun hodiaŭ antaŭen, vi nur irante vidi ke jen ĉio simple faras kelkajn baza aritmetiko por liberigi nin de 0 sur ĝis 9 aŭ 10 en tiu kazo. Fine, kun variabloj, vi memoras ke variablo estas peco de stokado. Nu, kion ni havis sur la maldekstra lasta semajno tuj serĉos iom iu kiel ĉi tiu semajno. Sed denove, pli en la venonta. Ni havis Buleaj esprimoj, kiuj lasta semajno, aspektis kiel ĉi tio. Ĉi tiu semajno antaŭen, ili tuj komencas aspekti iom tiel. Kaj ĉi tiu estas efektive iom tranquilizadores. Fakte preskaŭ same simpla kiel verdan blokoj. Sed ĉi tie ni havas, denove, iu nova sintakso kun ampersands, sed vi povas eble diveni dum en Scratch, vi diras Al-N-D, ŝajne en C, ni estas dironta ampersand kaj-signo. Sed ĉio ĉi iĝos naturaj antaŭ longe. Kondiĉoj. Pasintsemajne, ĝi aspektis kiel ĉi maldekstre. Ĉi tiu semajno, en la dekstra, ĝi estas tuj serĉos tiel. Sed denove, la ŝlosilo takeaway tie estas ke kiel vi vidas aĵojn kiel ke sur dekstre, kaj precipe se malpli komforta, ĝi estas speco de super via kapo, vi ricevas iom premita ke Mi vere ne havas ideon kiom mi povis eble supreniru kun ke el nenio - neniu pun intended - nur rimarki ke ĝi estas vere la sama ideo kiu probable sentis tiom pli natura la antaŭa semajno. Kaj eĉ se vi ne plonĝis en problemo aro 0, mi daresay vi trovos ke la enigmo pecoj estas sufiĉe intuicia, aŭ almenaŭ tiom super tempo. Do ni plonĝi in Ni lasu nin manoj malpuraj tie kun tiu unua simpla programo. Kaj simpla estas, kompreneble, relativa. Por fari tion, mi tuj ŝanĝos ekranoj al tiu mekanismo Mi nomis la CS50 aparaton. La CS50 aparato estas peco de programaro kiu estas lancxi interne fenestro sur mia Mac, kaj vi ankaŭ povas funkcii ĝin en fenestro ene de via PC, kiu permesu al mi havi la sama ekzakta komputilo medio kiel ĉiu TF, kiel ĉiun CA, kiel ĉiu studento en la klaso. Ĉar la CS50 aparato estas laŭvorte alia mastruma sistemo nomita Linukso - specife Fedora Linux - kaj ni, la dungitaro, agordis la instalado procezo por ĉi mastruma sistemo en tia maniero, ke oni, tie estas iom CS50 logo en la mezo, du, tie estas kutimo menuo la fundo, kaj tri, pedagogie, ni simpligita la uzantinterfaco kiel kiel eble plej multe por ke, kiam vi unua startigi tiun aferon sur via propra Mac aŭ PC, vi havas la saman medio, kiel ĉiuj aliaj, kaj vi havas ĉiujn ilojn kiujn vi bezonos por la kurso, sen devi kompreni el kiel instali ĉiu kaj ĉiu ilo individue. Do tio aspektas relative kiel Mac OS aŭ Vindozo. En la fundo maldekstra angulo, vi esence havas Komenco menuo de varojn, aŭ Apple menuo. Kaj tiam vi havas, kion ni suspektas volo estu via tri plej komunaj ikonoj. Unu estas Chrome. Tie estas retumilo ene de la aparato. Du estas programo nomata gedit, kiu ni vidis mallonge pasintsemajne, kiu estas nur grafika redaktilo. Kaj tri estas Terminal programo, kiu estas nigra kaj blanka fenestro de pasintaj tempoj kiu nin permesas tajpi pli arkaikaj sed pli potencaj ordonoj nia klavaro. Do mi tuj iros antaŭen kaj klaku sur gedit, kaj estu certaj, ke problemo aro 1, kiel eldonita en vendredo, volo marŝi vi tra ĉiuj ĉi tiuj samaj piedosignoj. Rimarku, ke mi havas sufiĉe simpla uzantinterfaco kun tri partoj. Sur la maldekstra, Mi havas grandan malplenan fenestro nomata fontkodo. Tie estas kie mi iros vidi resumon de iu kodo kiu mi skribas. Sur la dekstra flanko, mi havas grandan langeton, aktuale Ne konservitaj, kaj tio estas kie mia kodo tuj foriri. Kaj sur la fundo, mi enigita Terminal fenestro, nigra kaj blanka instigas je kiu mi povas tajpi komandojn al kompili kaj kuri miaj programoj - tio estas, por fari kaj kuri miaj programoj. Do ni komencu simpla. Permesu al mi iri al dosiero: Savu. Mi tuj iros antaŭen kaj iru en jharvard. Do la aparato, sendepende de kio via nomo estas, apartenas al ulo nomata John Harvard, kiu havas jharvard hejmo katalogo ene de kiu ĉiuj de viaj dosieroj iros. Estas via propra kopio de sia konto, tial ni ne estas ĉiuj interŝanĝo la sama malmola disko. Vi nur havas la iluzion de John Harvard propra. Anticipe, mi vere instalita Dropbox. La aparato venas preprepared kun Dropbox tiel ke se iu iras malbone dum la semestro, se vi havas agordi vian aparaton kun libera Dropbox konton, ĉiuj de viaj dosieroj estos estos aŭtomate asist do vi povas tre facile forprenis ilin. Kaj mi tuj iros en mian Dropbox dosierujo, kaj tie estas jam tuj esti paro aliaj aferoj. Sed mi tuj iros antaŭen kaj iru al dosiero: Savu. Mi tuj iros en jharvard, Dropbox, kaj ĝis ĉi tie, mi tuj donas mian programon super simpla nomo, hello.c, kaj poste konservu. Do mi havas la saman interfacon nun. La sola afero, kiun oni ŝanĝis estas la langeton supre supro. Do mi tre rapide tuj amuzi tiu programo de la glitas antaŭ momento. Do en main (void), kaj tiam printf, "Saluton, mondo," iom kamufla backslash n, proksime citaĵo, fermi parentezo, punktokomo, kaj tiam Ctrl S savi. Kaj avizo kiel flanken kio ĵus aperis tie sur la supro maldekstro. Kaj tio ne estas utila hodiaŭ, sed estos utila tempo. Vi nur vidi, denove, resumo de la kodo kiun vi skribis. Kaj ĉar mi skribis ion nomatan ĉefa, jen kial la vorto ĉefa pusxis super tie. Sed plejparte, ni Ne necesas, ke hodiaŭ. Bone, do mi asertas ke ĉi tiu estas mia unua programo skribita en programado lingvo nomas C. Ni scias de vendredo ke kion ĉi afero tuj faros tre uninterestingly kiam mi kuri estas ĝuste montri - en aliaj vortoj, presi, kiel komputilo sciencisto dirus - saluton mondo sur la ekrano. Do fari tion, vi rimarkos ke mi devas malsupreniri tien por mia fina stacio fenestro, kaj nun mi havas oni palpebrumante prompto. Sed tio estas nun klavaro versio de mia John Harvard hejma dosierujo. Estas klavaro maniero per kiu por navigi mia malmola disko. Do mi ne povas efektive tajpi kiel mi faris pasintsemajne fari saluton, ĉar estas tuj diros neniu regulo por fari celo - io estas malĝusta. Mi ne tute scias, kion tiu mesaĝo rimedoj, sed ke estas ĉar implicite, kiam tiu nigra-blanka fenestro estas malfermita, mi estas ene de John Harvard hejma dosierujo. Sed kien mi savos tiun programon? En mia Dropbox dosierujo. Nun, ni ĉiuj jam elkreskis kune kun komputiloj kie vi ĵus duobla klaku sur dosierujo la ikono, ĝi malfermas, kaj voilà. Tie estas kie la dosiero nomata hello.c estus. Do fakte, ni faros. Lasu min antaŭeniri kaj minimumigi gedit kiel vi tajpus ĝin Windows aŭ Mac OS. Permesu al mi iri en la Ĉefpaĝo dosierujo ĉe supro maldekstro. Mi vidos tie faskon da dosierujoj. Jen mia Dropbox dosierujo. La checkmarks signifas ĝi estas estinta synced. Kaj estas kelkaj aferoj en ĉi tie, sed rimarki ke hello.c estas ja rajtas tie. Kaj tiel en Mac OS aŭ Vindozo, kutime, Mi duoble klaku tio, malfermas en kion ajn programon, kaj mi bone iri. Sed nun, almenaŭ ekde hodiaŭ, ni bezonas paŝon malantaŭen nur por doni al vi kelkajn bazajn ilojn por via ilo kit kun kiu fari pli potenca aĵoj antaŭ longe. Do en ĉi tiu invito, mi devas fari la ekvivalento de duobla alklako la Dropbox dosierujo. Kaj fari tion, mi tuj tajpi KD por ŝanĝi dosierujon, Dropbox, eniru. Kaj nun rimarkas la parentezoj miaj tn prompto nun diras ke mi estas en supersigno, la eta squiggly simbolon supre maldekstre de plej klavaroj, / Dropbox. Ĉi tio estas nur stenografio skribmaniero por dirante homa, vi nun ene de la Dropbox dosierujo, same kiel se vi estis duobla klakis sur ĝi. Do nun, se mi iras antaŭen kaj tajpu fari saluton, eniru, mi vidas tre kamufla komando, sed ne erarmesagxon, ĝi similas, kaj poste alia palpebrumante prompto. Kaj se vi memoras, iam tiel rapide Vendredon, ni faris tion ĉi. . / Saluton. Kio vi estas, por vidi estas la rezulto de miaj kurante tiun programon, aŭ, en Mac VIN kaj PC terminoj, se mi estus normale duobligi alklaku programo - al. app programo aŭ al. exe, ĝi malfermiĝas fenestro kaj kuras. Tajpi. / Saluton estas ĝuste kiel duobla klakante programon por ruli ĝin, sed uzante mia klavaro. Enter, saluton mondo. Kaj tio estas ĝi. Do ni turmentus tiu sola, por tiel ne sentas tro kiel greko. Do. / Signifas kion? Ĉiu kiu estas iam kapturna klavaro medio kiel tiu, kio estas skalara raportante al? La nuna dosierujo. Do la nuna dosierujo estas nur sinonimo por dosierujo. Tiel dirante dot oblikvo, mi diras, serĉi programo nomata saluton en la aktuala dosierujo - en la aktuala dosierujo. Alivorte, mia Dropbox dosierujo. Kaj tio estas kial batoj Entajpu poste vere kuras tiu programo. Se mi nun tipo LS, rimarki ke mi vidas ĉio en mia Dropbox dosierujo. Ricevi Started.pdf, kiu Dropbox donas al vi libera, miaj fotoj katalogo, publika dosierujo, Ne konservitaj Dokumento 1 kiujn mi faris por eraro estas antaŭ momento, foo.c, kiujn mi faris antaŭe hodiaŭ, kaj poste du linioj - hello.c kaj saluton. Hello.c estas la programo mi skribis kun gedit, kaj kio estas saluton en verdo? La saluton en verdo estas la plenumebla. En aliaj vortoj, kiam mi kuris ĉi komando antaŭ momento - lasu min ruliĝi reen al tempo - kiam mi kuris fari saluton, jen la meza ŝtupo tie. Kaj prenis hello.c kiel eniro - AKA fontkodo - kaj produktis dosiero nomata saluton kiel eliro, kiu enhavas ĉiujn de tiuj nuloj kaj. Kaj tial, en la fino, mi povos fakte kuri ordonon. / saluton. Pro Intel Inside, mia mastruma sistemo, Linukso, malfermas nulojn kaj tiuj, nutras ilin en la cerbon de mia komputilo - la CPU - kaj tiu CPU scias, ho, tie estas ŝablono de nuloj kaj kiu diras presi la sekva en la ekrano. Kio estas la jena afero? Citi unquote, "saluton mondo." Bone, do rapida resumo de kelkaj tiujn ordonojn, por ke ni povas komenci portante ilin por sentado. Lasu min salti antaŭeniris kie ni lasis. Kaj vi memoras ke ni havis KD en nia malantaŭa fini antaŭ momento. Tio estas, mi kuraĝas diri, ĉar hodiaŭa celoj - eble tiu semajno - la sola komandoj ni eble bezonas por tajpi en la komando instigas krom fari. Do KD staris por kio? Ŝanĝi dosierujo. Estas nur la ekvivalento de duobla klaki sur dosierujo. Kaj kiel flanken, se vi ricevas perdis iam ene de via aparato, tia ke Dropbox - Mi volas reiri al mia jharvard directory - kiam en dubo, KD, eniri, sen alia vortojn, kaj tio nur zips vin al kie vi komencis, kiu Estas belan ŝparvojo. Bone, do nun aliaj komandoj. LS. Mi tajpis, ke antaŭ momento. Kion vi pensas LS signifas? Do, lerta, ĉu ne? Back en la tago, kiam homoj venis kun tiuj ordonoj, ili estis klopodante esti efika, kaj sufiĉe tajpi el L-mi-S-T eniras, ili decidis LS. Tio estas bone. Ĝi sonas sufiĉe kiel listo. Ni simple tipo LS eniros, kaj ke listigas la dosierojn aŭ dosierujojn en mia aktuala dosierujo. mkdir, vi probable povas diveni. Faru dosierujo. Do vi ne iras al iu dosiero kaj menuo elekti novan dosierujon en tiu medio. Pli ĝuste, vi tajpu la komandon mkdir spaco kaj tiam la nomo de la dosierujo ke vi volas krei, kaj tio estos farita. rm, vi probable povas diveni. Forigi aŭ forigi. Do se vi volas forigi dosieron, vi vidi en la problemo aro kiel vi povas fari ĉi tion. Kaj RMDIR, forigu dosierujo. Do, denove, mi emas flugi tra iu de tiuj detaloj, unu, ĉar ili ne estas ĉiuj kiuj multe amuze pasigi tiam, sed du, ni provizos vin en multe pli detale en iu el la Kompreneble la problemo aroj, aparte la normo eldonoj, neniun el la ŝtupoj ke vi eble bezonas tajpi tiel ke vi ricevas pli kaj pli comfy kun tio. Sed nun permesu al mi turmentus aparte unu alia afero. Kiam ni tajpis fari saluton antaŭ momento, ni vidis kamufla sekvenco de ordonoj. Ni vidis, denove, fari saluton. Bone, ni faru tion. Mi volis fari eraron, sed [Inaudibles] nun agnoskas mi volis kaj agu intence. Kion mi faras maljustecon ĝuste nun? Jes, do mi ne estas en la Dropbox dosierujo, ĉar antaŭ momento mi tajpitaj KD kaj ĝuste batis eniri. Tio zomita min al kie mi komencis, kio ne estas kie mia dosieron estas, do mi vere bezonas fari KD Dropbox eniri, kaj nun mi povas fari rm saluton eniri, forigu regula dosiero saluton. Mi ne scias kial estas tiel kamufla. Tio simple signifas ĉu vi certas vi volas forigi saluton? Vi povas tajpi y por jes, eniri, kaj nun ĝi estas for. Kaj nun se mi tajpas fari saluton denove, ĝi estas tuj rekrei mia celkodo, amuzi tiujn nuloj kaj. Sed kio estas la interkonsento kun tiun tre longe ordonas? Nu, ni turmentus tiu aparte antaŭ longe, sed fari - Mi rakontis al iom de blanka kuŝas antaŭe - ne estas tradukilo. Make estas programo kiu aŭtomate figuroj, kiel eblas ekzekuti tradukilo por vi. Do la ordono, ke vi vere devus esti kurante por konverti hello.c en saluton efektive aspektas iom pli kiel ĉi tio. Kaj Dio gardu ni devas reale memori iam tajpi ke tutaj vico de ordonoj eksteren. La celo de fari en la vivo estas memoru, ke grado de komplekseco por ni kaj aŭtomatigi kion farus alie esti tre teda paŝoj. Sed mi povas proksimigi tio. Do por tiu malgranda cheat folio ĉi tie, mi povas proksimigi kion tiu komando estas faras per simple tajpante clang, kiu estas la nomo de la tradukilo ni estos uzante ĉi semestro. Se iu el vi iam ajn farita IOS disvolviĝo por la iPhone aŭ iPad, Clang estas la programo vi uzis ene Xcode fari vian apps. Clang, tamen, estas nur alia programo kies nomon oni povas tajpi la komandon instigas, kaj por enkonduki ĉi nun, Mi povas prezenti iun kiu estas iom reprezenta de komandoj venonta. Do lasu min fari tion permane. Do rm saluton, kaj nun rimarkas en kazo Mi, same kiel prudento kontroli - . / Saluton, kion vi opinias min devus vidi se mi faras tion? Ia eraro. Neniu tia dosierujo. Tiel ke oni fakte sufiĉe rekta. Do nun lasu min liberigi la ekrano. Kontrolo S apenaŭ tuŝetas la ekrano forigi iuj distroj. Kaj nun mi tuj permane tipo clang-o saluton hello.c. Do kio estas tio celas fari? Ĝuste la samon kiuj faris por ni, sed mi ne forĵetu kelkaj el la superfluaj vortoj. Clang estas la programo kiu tuj preni. c dosiero enigo kaj produkti nuloj kaj kiel eliro. Sed-o plu nomos ŝaltilo aŭ flagon. Ĉi tio estas nur techie slango por diri ĉi tiu estas vorto vi tajpas en prompto ke iel influas la konduton de la programo, ke vi uzas. Do ĉu iu volas diveni kio-o transdonas? Eligo. Estas nur ke iu decidis-o signifas eligo dosiero nomata saluton kaj preni kiel enigo ajn estas la lasta vorto en la prompt estas, hello.c, tiel ke se mi batas Eniru nun, nenio ŝajnas okazi. Kaj strange sufiĉe, en ĉi tiu mondo de programado, se nenio okazas, tio estas probable bona afero ĉar ne estas eraro mesaĝo sur la ekrano. Saluton, Enter. Mia programo nun kuras. Sed mi povas fari stulta iom aĵojn kiel ĉi. clang-o, hihihi, hello.c, eniri, kaj nun mi havas identan programo nomata hihihi. Ĝi kondutas la sama, sed la nomo estas malsama. Do ĉi tiu estas nur diri ke se vi volas influi la konduton de programo, ni tuj ĉiufoje vidi tion nomis komandlinio argumentoj. Tiu estas linio. Vi tajpas komandojn. Ergo, komandlinio. Kaj komandlinio argumentoj estas nur vortoj aŭ malgrandaj pecoj de sintakso ke iel influi la konduton de programoj kiuj ni kuras. Bone, ke estas eble la plej enuiga programo ni povas skribi kaj vidu. Ni nun faru ion pli interesa. Lasu min antaŭeniri kaj krei novan dosieron. Mi tuj iros antaŭen kaj savi tion en John Harvard hejma dosierujo kiel, ni nomas ĝin custom.c, esti iom kutimo programo. Mi tuj zomi ĉe mia supro de la langetoj tie kaj komenci denove. Inkluzivi normo stdio.h. Pli sur kiuj en momento. int main (void), pli en kiu tre frue. printf ("Saluton, Davido"). Multe pli interesa, ĉu ne? Do nun se - ne pro mia nomo, nur ĉar ĝi estas malsamaj - fari kutimo eniri. Kutimo, saluton, David. Sed eĉ tio, ankaŭ, estas blanka mensogo. Ĉi tiu programo povus tiel nomi david.c, ĉar ĝi ne estas kutimo konduto je ĉiu. Vere, mi volas programo kiu demandas la uzanto por sia nomo. Do kiel mi faru tion? Nu, lasu min rulumi supren super tie. Kaj antaŭ mi uzas deklaron en Nulo, antaŭ ol mi uzas printf, alie sciata kiel funkcio, lasu min unue demandi la uzanto por iu enigo. Do fari tion, mi bezonas fari kelkajn aferojn. Unu, mi bezonas lokon por stoki la uzanto enoficigi post kiam mi petis lin aŭ sxi por tio. Kio konstruo mi bezonas uzi probable stoki valoro tiel? Al variablo. Do kontraste Scratch, kie vi ĵus ricevas bela puzlo peco, tie, ni devas uzi, evidente, vortoj esprimi nin. Kaj nun, iam ajn vi volas vorton aŭ frazon, en programado, Ni tuj nomas ŝnureto. Do cxeno estas vorto aŭ frazo. Ĝi estas vico de nulo aŭ pli karakterojn, pli formale. Kaj se vi volas tian variablon al ekzistas, vi devas diri al mi unu. Kaj la vojo, per kiu vi faras tio estas diru string s punktokomo, kie s povas esti kion ajn vi volas. Fakte, s estas iom underwhelming. Lasu min antaŭeniri kaj pli klare nomas ĝin nomo. Donu al mi ŝnuro nomita nomo. Sed nun, kio estas la persono nomo implicite? Nu, se la homa ne tajpas ion en, evidente, ne okazas esti neniu valoro en nomo. Kaj rezultas en C, se vi ne donas variablo valoron, ĝi tuj havi rubo valoro. Ĝi havu iom hazarda nuloj kaj karaj, do vi nur tuj vidos rubo, vere, sur la ekrano se vi provas vidigi ĝin. Sed mi povas ripari tiun dirante, vere, vendejo ene de nomo de la post valoro. La vojo vi stoki valorojn en variabloj estas se vi havas variablo nomon sur la lasis, vi devas iel meti kion vi volas konservi en ĝi en la dekstra, kaj la sintakson por ke tuj esti kiel sekvas. Ni ne vidis ĉi tion antaŭe, sed prenu sur fido dum momento, ke Ekzistas alia aserto en la mondo ke mi tuj denove nomas funkcion, kaj ĉi tiu funkcio estas vokis akiri kordo. Kaj ĝi faras laŭvorte tio. Ĝi iel ricevas vico de signoj de la homaj kaj poste faras ion per ĝi. Kaj ĉi tio aspektas kiel kamufla sintakso. Kutime, se vi uzas egala signoj - vi estas en la mondo de, ekzemple, algebro, kaj vi estas vere dirante x egalas 1. Ĉi tie ni ne diras ke nomo egalas atingi ŝnuron. Ni dirante vendejo en nomo kio estas ĉe la dekstra flanko de tiu signo de egaleco. La egala signo reprezentas la atribuo operatoro. Ĝi estas la sintakso kiu diras metis kio estas sur la dekstra flanko ene kio estas maldekstre. Do get kordo estas nova peco de funkciojn kiuj ne nur faras io - demandas la uzanto por ĉenon - ĝi ankaŭ revenas, por tiel diri. Do ni vidu kio okazas okazi tie. Mi tuj iros antaŭen nun kaj malzomi, kaj mi tuj alvenos kelkaj erarojn en mia prompto. Mi tuj tajpi fari kutimon, eniru. Wow. Tuta aro da eraroj. Bone, do ĉi tiu estas speco de blindiga, verŝajne al la komenco, sed rezultas ĉiuj tiuj tre Certe kamufla erarmesaĝoj estas raportante al iuj ŝablonoj kiuj ni komencas vidi la tempo. Do ĉi tiu mi desxiri for, ĉar ĝi estas unua. Uzo de nedeklarita ensalutilo kordo. Tio nur signifas ke gedit aux Clang, en ĉi tiu kazo, ne scias kion mi celas per ŝnuro. Kaj tio estas ĉar en C, la programado lingvo, ekzistas efektive neniu variablo de tipo kordo. C ne scias, ke kordoj ekzisti. Sed ni, CS50 bastonon, faru. Kaj tiel anticipe de klaso, ni kreis dosieron nomata CS50.h. Kaj ene de ĉi tiu dosiero - kaj pli en la sintakso veni - ene de ĉi tiu dosiero estas difino de kio mi nur difinis parole kiel linio. Do simple finante ĉi tiu linio de kodo en mia programo, mi jam instruado gedit kaj faru kaj Clang ĉiuj laŭvice kion cxeno estas. Mi ne scias, kiel ankoraŭ. Post kelkaj semajnoj, ni instruos vin senŝeligi dorso kiu tavolo. Sed nuntempe, scias ke tiu instruas la tradukilo kio kordo reale estas. Do nun lasu min klarigi mian fina stacio cxi tie. Permesu al mi re-kuri fari kutimo, kaj mi solvis ĉiujn el tiuj problemoj. Do tiu, tro, tuj esti _recurring_ temo. Mi nur skribis 9 linio programo, kaj tamen mi havis 18 linioj de eraroj. Tio estas speco de intimidándolos. Sed komprenu ke ili ofte akvofalo tiaj ke unu malgranda eraro pafas la konfuzon por la tradukilo, kaj ĝi aspektas multe pli malbone ol ĝi estas. Do nun ruza observanto scios ke mi ricevas ĉenon de la uzanto, sed mi ne vere fari kion kun ĝi? Mi ne vere faras ion per ĝi. Do, se mi efektive kuri kutimo denove, ĝi tuj nur sidas tie. Kio okazas? Mia programo ŝajnas esti algluis kio linio, vi dirus? Do ĝi estas fakte metitaj en linion 7. Kaj ni ne vidis tiun antaŭe, sed en linio 7, estas, denove, ĉi deklaro, atingi ŝnuron. Kaj ĝi faras kion ĝi diras. Oni atendas nun por la homa preni la kordo. Tio estas tute unintuitive al mi, la homo, ĉar mi ne rakontis kion fari. Sed permesu al mi iri antaŭen je kredo kaj lasu min ŝajnigi esti Rob. Eniru. Tio ne estas la programo mi intencis. Do ni havas nian unuan blogo. Sed ni provu rezoni tra kial tiu estas la kazo. Unue, lasu min korekti tiun unuan problemon. Mi aldonu linion tie kiu diras printf, kio estas via nomo? Ni nur faru proksime citaĵo, fermi parentezo. Nun mi denove ruli la programon. Problemo. Mi ne vidas tion. Ĝuste. Mi ne recompilar ĝin. Do en lingvo kiel C, ĉar vi ŝanĝi la fontkodon ne signifas ke vi ŝanĝis vian celon kodo por generi novan kodon kontestas, nova nuloj kaj. Vi devas recompilar. Se mi nun re-kuri kutimo, eniri, ah, iom pli klara. Mia nomo estas Rob. Ankoraŭ kalesxo. Kaj mi volas argumenti ekzistas paro erarojn nun. Ĉi nur aspektas malbelega, sincere. Kiel, minimume, mi devus havi spaco tie, aŭ movi la kursoron al la nova linio. Kaj vere, novan linion. Tio estas speco de klavo frazo tie ni vidis sed ne difinita. La maniero en kiu vi ricevas teksto movi sur la sekva linio, vi ne faras tion. Ĉi tio estas malklara al la komputilo. Ĉi aspektas kiel du apartaj linioj de kodo, nek el kiuj estas perfekte ĝustaj. Vi anstataŭ esti pli eksplicita kaj diri, donu al mi novan linion, kiun ni reprezenti en c kun backslash n. Do tie estas kelkaj tiaj karakteroj. Backslash n fiksos tiu estetiko. Lasu min recompilar mia programo. Permesu al mi re-kuros mia programo. Ĉi aspektas pli bone. Ĝi estas ankoraŭ sufiĉe primitiva, sed estas ankaŭ ankoraŭ kalesxo. Do ekzistas unu - eĉ se vi neniam planis antaŭ, vi versxajne povas preni konjekton ĉe kial tiu programo estas ankoraŭ misa. Kion mi devas fari tion Mi ne faris ankoraŭ? Do mi devas efektive plenumi io kun nomo. Same kiel en nulo, vi povus reale asigni variablo kiel n aŭ kontraŭstari kiel ni faris lastan semajno - valoro. Sed se vi ne faru ion kun ĝi, nenio okazos. Bone, do ni ripari. Permesu al mi tajpas mian variablo tie, kaj mi iros tien. Lasu min recompilar, lasu min ripeto, Rob. Nun mi estas nur idioto, ĉu ne? Do tiu estas ne vere atingi min plu. Sed tio estis tute natura instinkto, mi argumentas, ĉu ne? Se la variablo estas nomita nomo, kaj mi volas iri tien, kial ne mi nur tajpu ĝin tie? Nu, kompreneble, ni havas distingi nun inter kio estas kordo? Rimarku, ke citaĵo unquote ĉi tie, saluton nomo? Gxuste tio fakte mem estas ĉeno. Ĝi estas malmola kodita. Ĝi estas ne de la homo. Ĝi estas de mi, la originala programisto, sed ankoraŭ ĉenon. Do se vi laŭvorte skribi N-Al-M-Kaj ene de kordo, kio okazas al akiri presita? Nu, N-Al-M-E. Ni anstataŭ bezonas por diri al printf, ne presi el laŭvorte enoficigi. Elprinti la valoro de nomo. Kaj fari tion, ni faros la sekvajn. Kaj tio estas nur homa konvencio. Ni anstataŭ diri% s, kaj ke staras por linio. Kaj poste fine de miaj proksimaj citaĵoj, Mi tuj metos komon kaj pasi dua argumento en tiu deklaro. Mi tuj tajpi nomon. Do nun rimarkas ke ni havas iomete nova sintakso. Ni havas ankoraŭ du krampoj, kaj nun lasu min diri ke la aĵoj inter krampoj reprezentas argumentoj en funkcio - enigoj, kiuj estas iel tuj por influi lian konduton. Do per tiu logiko, kiom da argumentoj ne printf ŝajnas esti prenante en ĉi tiu momento? Do ŝajnas esti prenante du, kaj tio ja implicis per la komo ĉi tie. Do tiu estas unu argumento en inter citiloj. Kvankam ĝi havas komo en ĝi, ĉio estas en citiloj, kiu signifas ĝi estas longa ĉeno. Komo, nomo de la variablo. Do nun mi malzomi. Permesu al mi re-ruli ĝin. Rob. Damn it, kion mi faras malbone? Bone, do vi devas recompilar. Do denove, facila erarojn fari frue denove kaj denove. Do nun denove kuri kutimo, Rob, eniros, kaj voilà. Ni nun havas kutimon programo. Do mi nun havas programon kiu uzante kelkajn trajtojn ke estas interese observi. Unu, Mi uzas CS50.h, alie konata kiel la CS50 biblioteko. Kaj ene de la CS50 biblioteko estas funkcioj, ke aliaj homoj skribis - nome la bastonon - por vi uzi, kaj akiri linio estas unu el ili. Ene de linio 2 estas stdio.h, kaj kial estas ĉi tie? Prenu konjekton. Kio ekzistas ene de norma IO patro? Printf. Do printf, vi ne vidas ĝin ie alie en la ekrano. Ĝi devas veni kun la komputilo iel. Kie ĝi venas? Ĝi estas interne - ĝi estas deklarita, por tiel diri, interne de dosiero nomata stdio.h. Nun, cxar cxi materialon, ni revenos por eventuale, ĉar ĝi estas iom distrante por nun. Tiu raportas al nia reveno tipo. Tiu raportas al argumento. Sed por hodiaŭ, ni enfokusigis nur tie sur tiuj linioj. Do string nomo, nur por recap, Kion tio do por mi? Do ĝi deklaris variablo de tipo kordo. Do ĝi estas signifis esti por vortoj, ne por nombroj. Ĝuste kiel flanken, se mi faris volas ĝin esti nombro, mi dirus iu kiel int. Se mi volis esti glitpunktaj valoro, iun kun dekuma punkto, Mi dirus flosas. Sed por hodiaŭ, mi ĵus diris kordo. Kaj Mi donos ĉi tiun variablon nomo de nomo, sed mi povis nomis ĝin nenion. Fakte, origine, mi nomis ĝin S. Ĉi tie estas nur alia aserto. Kiom da argumentoj estas ĉi deklaro prenante? Do ĝi estas simple preni unu, kaj ke estas simple estetika detalo de montri iun sur la ekrano al mi. Kio estas tiu linio 8 faranta en lego la terminoj? Ĝi estas prenanta valoron de la uzanto - nome, ŝnureto - kaj kio ĝi faras per ĝi? Ĝi estas esence cedi ŝin al la ulo sur la maldekstra flanko de la egala signo tiel ke en tiu kazo, la nomo variabloj povas fakte stoki ĝin. Kaj tiam printf estas alia Ekzemple de funkcio. Kaj ni diras nomi funkcio. Uzi funkcio estas nomi funkcio. Tiu afero ŝajne prenas du argumentojn. Ĉi tiu, komo, ĉi tiu. Ĉi tiu mem estas nur ĉeno kiu enhavas lokokupilo. % S per meti alian kordo tie. Kaj tiel metante nomon post la komo, tio enmeto ke afero por mi. Do mi povas fari aliajn aferojn ankoraŭ. Lasu min nun kaj faros iom de stulta programo, sed lasu min forigi tiun, kaj lasu min krei buklon. Dum vera. La simbolo vera estas evidente ĉiam tuj estos vera. Do kia buklo mi indukti per skribanta linion tiel? Do senfina ciklo, ĉu ne? Nur dum vera. Ne estas maniero mi povas ŝanĝi la vorton vera esti io alia, do ĉi tiu estas nur tuj kuri eterne. Do, se vi iam vere havis programon en via Mac aŭ PC kiu ŝajnas esti enfermita, aŭ ĝi estas faranta io kaj io, kaj vi nur ne povas atingi la afero quit krom se vi restartu vian komputilon aŭ elsxiros Taskoj Direktisto aŭ similaj, jen tia ekzemplo. Mi povas diri, "I am a buggy programo." Fermi citaĵo, fermi parentezo, punktokomo. Do denove, rimarki la ŝablonoj. Kvankam kelkaj el niaj sintakso estas nova, la ŝlosilvorto dum, la ŝlosilvorto vera, Rimarku ke mi havas la saman speco de frizita krampoj. Mi havas punktokomo kaj krampoj. Do nun ni iru antaŭen kaj kompili ĉi. Faru kutimo, kutimo. Do, je tiu punkto, vi ne bezonas restartu vian aparaton, ĉiuj rajtas? Do la facila leciono tie estas kun du fingroj, Kontrolo C, ni quit tiu programo. Sed vi povas vidi ĝuste kial tiu afero Estis ripetante denove kaj denove. Mi povas fari iu iom pli kompleksa kiel teaser. Mi tuj iros antaŭen kaj diri la sekvajn. Por int, kiu estas entjero, i estas nur ĝenerala nomo ni donos al pli variabloj en programado kiam vi estas nur rakonti, egalas 0. Lasu min kaj diru dum i estas, diru, malpli ol 100, i plus plus. Ni apogi al ĉi tiu sintakso, sed tiu nur signifas pliigo i denove kaj denove. Kaj kion mi volas fari tie? Printf ", mi povas rakonti al i." Tio ĉi estas kalesxon programo. Kion mi vere celas ĉi tie? Elcento ne s, sed vi ne divenas ĉi. % D estas dekuma entjero. Komo i. Lasu min ruliĝi dorso. Permesu al mi recompilar kun fari. Permesu al mi rerun kun kutimo. Mi povas kalkuli vere malbenita rapida kiam Mi skribos programon kiel ĉi tio. Nun ni faru ion iom intenca. Kion pri ni faru ĉi tion dum i estas pli granda ol aŭ egala al 0. Kio ĉi tuj indukti? Do logike, tiu ne estas tiel saĝa, ĉar nun, se mi rerun tio, rakonti, Mi povas nun kalkuli vere, vere alta. Bedaŭrinde, proksimume tiel alta kiel mi povas grafo estas 4 miliardoj, do ĉi tiu tuj preni momenton. Do kial ni ne lasi tion kiel nia cliffhanger, promesante ke sur Merkredo, ni vidos se tiu programo estas farita. Du, ni devos enkonduki kiel vi mem skribu vian propran funkcion tiel ke tre rapide, por merkredon, ni instruos vin, kiel ni transiro de Scratch en C, starti skribi iam pli kompleksa programoj kiuj faras multe, multe pli ol tio. Ni vidos vin tiam. [Aplaŭdo] Parolanto 1: En la sekvanta CS50, Puzlo Tago estis sukceso.