David Malan: Dit is CS50, en hierdie is die begin van die week een. En wat ons gedink ons ​​wil doen, is om terug te trek die gordyn van 'n toestel wat baie van julle het seker nou verby vir die jaar, maar miskien nooit heeltemal bekend wat dit is. So hierdie toestel sal waarskynlik kyk vertroud is met die meeste van julle deur die nou. [Video speel] -A triomf van wiskundige en meganiese vaardigheid is hierdie groot nuwe outomatiese sakrekenaar by Harvard Universiteit. Ingewikkelde probleme in wiskunde sit deur die masjien in gekodeerde vorm op band akkuraat opgelos in 'n minuut fraksie van die tyd wat nodig is vir menslike berekening. Ontwerp alle vorme van te bespoedig wiskundige en wetenskaplike navorsing, die reuse meganiese brein werk vir die Verenigde State van Amerika Marine tot oorlog se einde. [Einde video-vertoning] David Malan: So dit is wat jy sien in die Science Center, en dit is waar dat die masjien is nou gehuisves. Jy eintlik sien net deel van dit. Slegs 'n gedeelte is tans op uitstalling en dit is 'n toestel genoem die Mark ek, en dit was in wese 'n baie groot sakrekenaar. Dit is opgevolg deur die Mark II, en dit is van die Mark II dat ons eintlik kry 'n bietjie van die leksikon. Dit is die eerste keer geval van iets wat jy oor om te geword het die hele te vertroud is met die loop van die semester - naamlik, 'n fout. So dit blyk op 'n punt die Mark II toestel nie funksioneer nie behoorlik, en by nadere ondersoek, Daar was wel 'n fout - 'n mot - wat mot - binnekant. En sedertdien, het ons verwys na foute in programme as foute. So meer oor dit te kom. Praat van die video as goed, as jy nog nie het, weet dat CS50 is natuurlik verfilm. Die lesings tipies optrek regs na klas in soort van 'n pre-release ongeredigeerde formaat, en dan 'n dag of twee later, het ons 'n hoër resolusie en hoër gehalte weergawe. Jy kan onthou Vanessa, wat die het fortuin te speel met Google Glass, wat ek onthou om hef hierdie tyd. So as jy wil om te kom na die klas en speel, hulle moet werk vandag. En as jy wil om te sien wat Vanessa sien die ander dag, wat jy sien hier - laat my verhoog die volume hier op my laptop. [Video speel] -So laat my ry is dit up. Alle regte. So raak dit. Alle regte. OK, Glass. 'N video opneem. Alle regte. Vanessa? [Einde video-vertoning] David Malan: Alle reg, sodat die rede dat dit nie gewerk het nie vir die meeste van julle by die die einde van die klas was, want ek het voortgegaan 'n uur van daardie aan te teken beeldmateriaal wys op myself na Ek sit die bril af. So vandag, sal ek laat hulle af, maar dankie om jou te Vanessa vir die feit dat so 'n goeie sport. Intussen het 'n paar aankondigings voordat ons voortgaan vandag. So een, CS50 het 'n tradisie van doen wat ons kan om te probeer om 'n baie te maak groot klas voel kleiner. En in die rigting van die einde, die meeste elke Vrydag, Ons kom bymekaar by 'n restaurant in die vierkant, Fire and Ice, met 30 of 40 van jou klasmaats, myself, sommige van die personeel, en ons het net het 'n baie informele middagete. Ons het dikwels nooi vriende van die bedryf, alumni van die klas, alumni van die kollege, eintlik net elke gesels die ander op, praat oor die lewe na kollege, die lewe in die kollege, en dies meer. So as jy wil graag om deel te neem in hierdie eerste sodanige middagete hierdie Vrydag by 13:15, hoof tot daardie URL op 'n sekere punt. Ruimte is beperk, so sal ons doen eerste kom eerste bedien. Maar ons sal dit weer op 'n herhalende basis, so moenie bekommerd wees as jy dit nie doen nie maak dit in die eerste groep. Nou, in terme van die hulpbronne wat curricularly deur die loop, daar is 'n hele rits, en as jy nie trek die kursus se webblad reeds, in die besonder, onder lesings, jy sal vind dat alles Ons het verlede week is daar, beide in video en 'n soort van elektroniese vorm. Maar as die video, sal jy vind dat daar nou volle teks transkripsies, byvoorbeeld, van elke lesing. So as ons eintlik gaan terug na hierdie skerm hier saam met Vanessa, en opgevolg aan die onderkant van die skerm, jy wat eintlik vind, nie vir Vrydag se lesing, maar as ons gaan terug na Woensdag, aangesien hierdie funksie neem 'n n paar dae, sal jy vind dat jy kan eintlik trek, vir 'n beter of vir erger, elke woord wat ek of 'n vrywilliger op die verhoog gesê. En nog baie meer as net dit. Jy kan selfs soek, kan jy dit Klik op enige van die sinne, spring op daardie punt in die video, al na en die einde van die maak van die materiaal al die meer begaanbaar. Maar as jy liewer nie volg dit in so 'n detail, sal jy vind, vir byvoorbeeld, hierdie klein spyskaart hier vir 1.5x spoed, 2x spoed, of I F Ek het reeds praat te vinnig vir jou, 0.75x spoed. So besef alles is beskikbaar is daar vir jou. Maar as dit nie vir lesings, besef dat ons ook hierdie hulpbronne beskikbaar. Skyfies, voorbeeld kode, iets wat ek doen op die verhoog of in die opmars van die klas, ons sal daar so post wat jy kan speel saam by die huis of in Sanders. Maar wat ons ook gedink ons ​​dit wil doen jaar vir die eerste keer is ook u voorsien ipv van hierdie voorbeelde. Toenemend, soos ek aangedui op die waarde van CS50 se lesings, ek het begin te bevraagteken hoe nuttig dit is vir julle ouens om daar te sit, vir my om op te staan hier, en vir my om te praat oor jou, veral as die materiaal, die voorbeelde, kry meer kompleks. Want sonder uitsondering, na 'n paar aantal minute, iemand sal zone uit, en dan is jy mis 'n sleutel insig van 'n paar Byvoorbeeld, en dan is jy in wese weg vir die oorblywende gedeelte van die klas, Dit is nie die beste gebruik van jou tyd, of, regtig, ons s'n gesamentlik as 'n klas. En ja, wat ons gedink ons ​​sou probeer om te doen, veral vir 'n paar van die meer komplekse voorbeelde wat ek nie kon doen nie geregtigheid in die klas, dat ons dalk nie tyd vir in die klas, of jy dalk net zone uit tydens, is ons produseer 'n reeks van ipv van hierdie voorbeelde so dat as jy gaan om vir Byvoorbeeld, verlede Vrydag se video bladsy hier onder voorbeelde, sal jy sien dat vir Vrydag, is daar nou hierdie koppel aan ipv. En die formaat van hierdie sal mettertyd verander. Vir nou, is ons met behulp van 'n eenvoudige YouTube playlist. Maar wat ek gedoen het met ons produksie span daarna is loop deur elke en elkeen van daardie voorbeelde weer hopelik uit te wys in veel groter duidelikheid presies wat die wegneemetes kon wees of behoort te wees van mekaar. So jy sal vind, byvoorbeeld, van verlede week, almal van die kras voorbeelde ons het deur gedoen word lineêr in die mode. So voel vry om betrokke te raak of nie betrokke te raak in hierdie materiaal. Regtig 'n tema van hierdie kursus is dat daar waarskynlik meer in die weg van die hulpbronne as wat jy moontlik absorbeer meer die loop van 'n semester. Maar dit is doelbewuste. Dit is bedoel om so te wees dat jy as individuele studente kan self kies gebaseer op jou leer styl. So as lesings vir jou werk, groot. As afdelings vir jou werk, groot. As ipv werk vir jy 'n beter, groot. Dit is werklik sal wees vir jou om te kies watter hulpbronne die beste werk vir jou. Ten slotte, te danke aan 'n alumnus van die Natuurlik het ons ook 'n kanoniese stel skrywer notas. So eerder as om julle koppe af in lesings krap af dinge wat kom in die klas, ons, die personeel, sal jy met dit wat ons voel is 'n kanoniese stel aantekeninge te bevry van daardie afleiding, sodat As jy hier is en wat betrokke is, is jy werklik besig met wat aangaan, met jou klasmaats doen op stadium, met wat is op die skerm, en nie net neer te skryf woordeliks wat gebeur te gewees het gesê. So besef al dié hulpbronne is beskikbaar vir jou. Snitte, in antwoord op 'n FAQ, sal begin hierdie Woensdag. Ons het basies wag tot na die meeste ander klasse word gedoen sodat ons kan verminder die getal van die veranderinge wat ons nodig het om te doen. Maar kom die naweek begin Sondag is, sal 'n eenmalige geval van wees wat ons noem super afdelings. Dit sal verfilm word vir diegene wat nie kan woon, en in wese, die Natuurlik se koppe sal loop ons deur 'n paar van die C gedeelte van die kursus, in die rigting van 'n einde van die probleem stel een, wat gaan ons eerste C gebaseer wees probleem stel. En dit sal net wees opsionele afdelings in afwagting van wat sal geword herhalende afdelings gelei deur die loop se 50 plus onderrig metgeselle weeklikse. Op Sondag of Maandag of Dinsdag, het ons het 90 minute afdelings in 'n baie tradisionele sin, wat sal geleenthede vir die hande en meer intieme hersiening van die Natuurlik se materiaal. Sonder verdere uitstel het, laat my in te voer die kursus se koppe, wat agter die skerms met my, die maak van alles gebeur. As die wat hier vandag kan saam met my, Rob en Lauren en Josef en Lucas, al van wie was met die kursus vir 'n geruime tyd. RJ is die derde sodanige lid van ons span. Hy kon nie vandag hier nie, maar hy het my gevra om 'n foto van hom te wys. Ek is nie seker of hy wou dit een nie, maar daar is hy. En laat my net toelaat dat die span om te sê hallo en stel hulself sodat jy kry om hulle te sowel as weet wat jou eie onderrig mede-hierdie term. LAUREN CARVALHO: Hi. My naam is Lauren Carvalho. Ek is 'n inwoner tutor in Leverett House. Ek Super ook is opgewonde om 'n hoof TV vir CS50 hierdie jaar. CS50 is 'n baie uitdagende klas sowel as 'n baie groot klas, so as jy enige kommer, as jy voel soos jy agter is val, voel vry om te uit te reik na enige van ons by heads@cs50.het, of vir my, as jy wil speel graag met my goue retriever hondjie. Hier is Lucas. LUCAS FREITAS: Hey, ouens. My naam is Lucas Freitas. Ek is 'n junior [onhoorbaar] Rekenaarwetenskap en linguistiek. Ek is eintlik van Brasilië, en ek ook besef Oos-Asiatiese studies. So indien u enige vrae oor Rekenaarwetenskap of taal of enigiets, net laat my weet. Of CS50, veral. JOSEPH ONG: Hi. Ek is Josef. Ek is 'n senior studeer rekenaar wetenskap in Elliott House. So, laat ons sien. Jy sal sien my rond dra een van hierdie reuse-kameras. Ek is die inwonende personeel fotograaf 50 so goed, en dikwels deur studente soms verwar my 'n Asiatiese toeris. So as jy my sien met 'n kamera, moenie weghardloop nie. Net glimlag en moenie skaam wees nie. En ek hoop jy geniet 50. Ek het dit baie geniet wanneer ek het dit, en dit is hoekom ek al TFing vir hierdie drie jaar. ROB BOWDEN: Hi. Ek is Rob. Dit is my vierde semester met CS50. Ek het net gegradueer in Mei. Ek was in Kirkland. Ek is opgewonde vir hierdie semester, en ek hoop jy ook. David Malan: Baie dankie aan vanjaar se koppe, en RJ as well. So 'n paar finale notas oor hulpbronne. Een, p gestel 0 reeds om is. Hierdie een bestaan ​​slegs in standaard uitgawe, wat vir die bedoel geheel van die klas. Begin met p set 1, sal daar hacker uitgawes van die meeste probleem stelle, wat, weer, sal die materiaal met 'n bietjie meer van 'n uitdaging, terwyl nog steeds te raak op 'n paar van dieselfde onderwerpe. Doen 'n blik op die kursus se webblad vir daardie spesifikasie vir p set 0. Kantoorure, te, sal hierdie week begin, vanaand, môre, Woensdag, en Donderdag in verskeie eetkamer sale op die kampus. Check uit cs50.net/ohs vir die kantoor uur vir die kursus, en besef dat hierdie sal baie gemaklik geleenthede, seker, aan die begin van die semester, om te kom deur met jou laptop tydens brein breek. Bring 'n paar vriende en gesels tot die Natuurlik se TFS en geoktrooieerde rekenmeesters met enige vrae wat jy mag hê. En ek kan nie genoeg beklemtoon, selfs vir kras en probleem stel 0, is daar regtig geen dom vraag. Daar is geen student te ongemaklik vrae te vra. Voel asseblief vry om voordeel te trek van hierdie hulpbron. Dit sal ook daar wees recurringly regdeur die semester, as sal CS50 Bespreek. Dit is die kursus se aanlyn bespreking forums by daardie adres daar. Wat sal ons doen ook tydens lesings is ook monitor, te danke aan die Natuurlik se onderrig-span. En so, as jy 'n vraag tydens lesing, want ek het iets gesê swak of glad nie, deur al beteken, vra wat in die werklike tyd as jy jou laptop of selfoon op die webwerf, en ons sal ons bes doen om in die nabye real tyd tot daarop te reageer nie. Is daar enige vrae oor CS 50? En een laaste note van my. Dat die kwessie van die SAT UNSAT. As jy finaliseer om jou studie-kaarte, as jy nog nie het, besef dat die oorkoepelende visie van SAT UNSAT, beskikbaar vir alle studente, is regtig om te help om die rand af van 'n kursus soos hierdie, so te sê, so dat as jy vind jy jouself laat in die nag, 02:00, 03:00, regtig gebons jou kop teen die muur waar jy weet jy is 99% van die die manier waarop daar tot voltooiing, maar jy het so baie ander dinge te doen, Ek dink 'n beter gebruik, dikwels van studente se tyd is om inderdaad te beweeg na daardie ander dinge sodat jy kan optimaliseer jou tyd al rondom. En gaan sit UNSAT is een meganisme wat via jy kan troos in die feit dat 99% van die manier waarop daar nog redelik darn goeie. Net so ook as jy kom in die Natuurlik met geen vorige agtergrond of nie naastenby so baie agtergrond as jy dink jou klasmaats kan hê, waar of vals is, besef dat dit 'n geleentheid kry om jou hande vuil met die loop, sit jou tone in die water, om so te spreek, net soos ek myself het jare gelede met slaag / druip. Soos ek gesê het verlede week, het die kursus, soos ander, nie beskikbaar was slaag / druip in die tyd, sou ek waarskynlik nie ooit trap voet in die klas, selfs al het ek gedoen het, het vyf weke later, verander my gedagte, wat jy kan so goed, en oor te skakel na of uit die brief gegradeerde status. Alle regte. So het ons gekyk na dinge soos hierdie op Vrydag, en ons is baie vinnig gaan om die oorgang na iets wat lyk meer kriptiese vandag. Maar dit is nietemin die dieselfde fundamentele idee. Wat was die algemene term wat ons gebruik om 'n legkaart stuk te beskryf wat lyk soos hierdie? So, 'n verklaring gesê. En jy kan noem dit 'n aantal van die dinge. Maar ons sal net noem dit 'n verklaring, en 'n verklaring net vertel die program - of in die geval van nuuts af, die sprite - om iets te doen. Hallo sê in hierdie geval. Iets soos hierdie ons plaas genoem wat? Ja, so 'n Boole-uitdrukking. 'N Boole-uitdrukking is net iets dit is waar of vals is, en so Krap trek hulle met hierdie vorm nie, maar ook met 'n vraagteken die oor te dra idee dat die antwoord op hierdie vraag is waar of vals is, ja of nee een, 1 of 0. En ons gebruik hierdie Boolse uitdrukkings binnekant van konstrukte soos hierdie, wat ons geroep wat? So, toestand of tak. En die toestand wat jy hier sien in Nuuts af 'n bietjie plekhouer vir 'n legkaart stuk van die vorm, die doel waarvan sodat jy kan sleep dit en gooi dit bo-op en dan skryf aan die program as dit Boole uitdrukking waar is, doen dit stel instruksies, hierdie stel state, anders doen dit ander stel instruksies. En onthou dat jy kan nes hierdie dinge. Selfs al is daar nie veel kamer visueel in die legkaart stuk, Scratch sal groei en krimp wat pas stukke van die legkaart wat jy sleep en in daar so jy kan eintlik nes hierdie en het 'n drie wyse vurk in die pad. As, anders as, anders nie. En jy kan selfs verder gaan as wat deur nes verder en verder as wat nodig is. So laastens, het ons gesien konstrukte soos hierdie, andersins bekend as 'n lus. En dit is net iets wat nie iets wat weer en weer en weer. In hierdie geval, dit gebeur met 'n beperkte wees aantal kere, maar ons het ook het 'n voorbeeld waar die aantal keer kom uit 'n veranderlike, so dit kan verander. En ons het ook 'n ander blok heeltemal bekend as 'n ewig blok wat toegelaat om ons te loop oneindig lank. So 'n ander konstruk wat Scratch 2.0 het - en dié van nie meer gemaklik met vorige agtergrond is reeds goed vertroud is met hierdie bou - hierdie dinge is ons genoem wat? So ons noem hierdie funksies, andersins bekend as prosedures. Daar is 'n effense semantiese verskil, maar ons sal hulle noem net funksies. En 'n funksie, in die geval van nuuts af, is 'n persoonlike legkaart stuk wat jy jouself kan skep sodat jy 'n nuwe legkaart stuk wat in hierdie geval, sou genoem word hoes, wat verskyn onder al die ander beskikbaar stukke van die legkaart in nuuts af. Selfs al MIT het nie die uitvinder hierdie legkaart stuk, wat jy gedoen het. So 'n funksie kan jy 'n nuwe te skep gedrag, gee dit 'n funksie naam, en dan noem, om so te praat. Gebruik dit werklik in programme weer weer en weer sonder om te wag vir iemand soos MIT op die pad na bedink nuwe funksie van nuuts af. Jy jouself kan bou hierdie legkaart stukke jouself, en dan onthou hulle in jou eie programme. En ons sal sien 'n herhalende byvoorbeeld van wat vandag en verder. So vandag, ons oorgang nou na iets meer arcane. Maar aan die einde van die dag, iets meer kragtige en ekspressiewe en meer verteenwoordiger van die pad wat ons sal wees op al die semester oor 'n aantal van tale - wat van die kode of 'n bron-kode. En bron-kode, dit blyk, is nie wat 'n rekenaar tipies loop eintlik. Bron-kode lyk iets soos hierdie. So, dit is, weer, miskien die eenvoudigste program wat ons kan skryf in 'n taal, die sogenaamde C. Ons sal begin om te terg hierdie uitmekaar voor lank, en indien hierdie is regtig nie lyk soos Griekse jy nou, glo my. Binne 'n week of twee se tyd, hierdie sal wees al te bekend is en eintlik redelik verteenwoordigend van toenemend komplekse voorbeelde met wat jy sal kry ook meer gemaklik. Maar jy kan nie net die uitvoering van hierdie soort kode gewoonlik. Jy het dit te omskep in iets wat die rekenaar self verstaan. En so vir wat, ons nodig het om iets ons gaan 'n vertaler te noem. 'N Vertaler is 'n program wat vat bron-kode, soos jy nou net gesien het, soos insette, en dit produseer nulle en kinders as uitset, anders bekend as voorwerp kode. En dit is dié wat nulle en kinders wat kan nogal lyk soos hierdie wat uiteindelik verstaan ​​word deur jou Mac of jou rekenaar. As jy al ooit gehoor van die bemarking uitdrukking Intel Inside, wat net beteken dat 'n maatskappy genaamd Intel het vervaardig die brein van jou rekenaar - andersins bekend as die CPU, sentrale verwerking van eenheid - en dit is net die ding wat verstaan ​​patrone van nulle en ene. En so deur die omskakeling van die bron-kode in voorwerp-kode deur middel van hierdie proses hier dat ons sal doen met 'n paar van die opdragte in net 'n bietjie, jy is skep patrone van nulle en ene dat die werknemers by Intel het besluit verteenwoordig sekere state. Nou, ek is nie heeltemal weet wat is wat deur net skrams by hierdie nulle en ene. Die meeste mense deesdae doen nie. Maar iewers in daar is 'n patroon van nulle en ene wat verteenwoordig die verklaring druk. Iewers in daar kan 'n ander stel van nulle en ene wat verteenwoordig die idee van die ewigheid of herhaal 10 keer of selfs miaau, as dit eintlik 'n program wat kan sluit 'n paar klanke. Dus, in kort, mense het net besluit, baie soos ons gedoen het vir ASCII - vir letters van die alfabet het verlede week - mense het dat selfs besluit meer komplekse patrone van nulle en ene verteenwoordig meer komplekse gedrag soos druk of sê of miaau. En so is dit vir vandag, en grootliks af in die semester, sal ons neem vir verleen dat iemand gedink hoe dat kartering te doen. Maar ons, in ooreenstemming met die idee van lae bo-op die werk van mense wat gekom het voor ons sal neem vir verleen aan die feit dat dit gaan oor onder die kap. Maar ons is baie meer geïnteresseerd in gebou dinge wat meer interessante op die top van al hierdie. En so het inderdaad, die eerste program ons geskryf in Scratch was hierdie super eenvoudige een, Hello World. En jy kan dink van hierdie as die hoofprogram wat regeer Scratch se gedrag as van verlede Vrydag. Vandag gaan ons om te begin om te vertaal Krap stukke van die legkaart in bron-kode in hierdie taal genoem C sodat wat lyk soos hierdie op Vrydag, begin vandag af, is nou gaan lyk. Weliswaar meer kripties. Dit is baie aandag aftrek en soort van die gees numbing al die aanhalings om te sien en die kommapunte en die hakies en so meer. Maar as jy begin om iets te ignoreer jy verstaan ​​nie, en lyk regtig by die essensie van die wit teks op die skerm, sekerlik sal jy sien, soos ek doen, "Hello, World." Wat in lyn met die pers stelling tot bo, en dit blyk daarop dat die navraag hoof gaan line-up konseptueel met wanneer groen vlag gebruik. So met ander woorde, terwyl in nuuts af, ons hierdie Hello World program met dié twee stukke van die legkaart, in C, ons gaan om dit te implementeer met hierdie vier ietwat kriptiese lyne. Maar as ons duik dieper in hierdie, sal jy sien dat elkeen van daardie wit karakters op die skerm eintlik het 'n paar belangrike betekenis, en die meeste van ons programme gaan kyk struktureel heeltemal dieselfde nie. So 'n verklaring, duidelik te wees, wat lyk soos "Sê hallo wêreld" op Vrydag gaan om te begin soek soos hierdie op Maandag. printf ("Hello, World"). En daar is 'n paar vreemde agteroorskuisstreep n, is daar hakies, is daar kommapunte. Maar aan die einde van die dag, die sleutel afhaal vandag is dat alles wat ons doen is die vertaling van dinge van die foto vorm na die teks vorm. So 'n lus wat lyk soos hierdie laaste week gaan nou kyk iets soos hierdie. En laat my ontken, net soos in Nuuts af, daar is verskillende maniere om te bereik dieselfde doel te bereik. Dieselfde in C. Ek is nie wat jy die enigste manier om dinge te doen nie, maar een manier om te vertaal dit vir ewig blok na 'n lus in C. Hierdie een hier, herhaal 10 keer. Hierdie een regtig soort draaie die mind die eerste keer dat jy dit sien. Maar om van nou af te implementeer, ons gaan 'n te gebruik vir lus, om so te spreek. En duidelik is daar 'n paar sintaksis wat 'n bietjie kompleks is daar met I en gelyke en 0, maar wanneer ons duik in daardie vandag af, jy net gaan om te sien dat dit is net al besig met 'n basiese rekenkundige om ons te kry van 0 op tot 9 of 10 in hierdie geval. Ten slotte, met veranderlikes, sal jy onthou dat 'n veranderlike is 'n stukkie van die stoor. Wel, wat ons gehad het aan die linkerkant is daar verlede week gaan 'n bietjie om te kyk iets soos hierdie hierdie week. Maar weereens, om meer oor dit kom. Ons het Boole uitdrukkings wat verlede week, het gelyk soos hierdie. Hierdie week af, gaan hulle begin 'n bietjie te kyk soos dit. En hierdie een is eintlik 'n bietjie gerus. Dit is eintlik amper so eenvoudig Net soos die groen blokke. Maar hier het ons weer, 'n paar nuwe sintaks met amper sand, maar jy kan miskien dink terwyl dit in nuuts af, jy sê A-N-D, blykbaar in C, ons is gaan ampersand-teken om te sê. Maar al hierdie dinge sal natuurlike voor lank. Voorwaardes. Verlede week het dit gelyk asof hierdie aan die linkerkant. Hierdie week, op die reg, dit is gaan lyk nie. Maar weereens, die sleutel afhaal hier is dat as jy sien dinge soos dit op die reg, en veral as minder gemaklik, dit is soort van meer as jou kop, kry jy 'n bietjie oorweldig dat Ek het werklik geen idee hoe ek kon moontlik kom met wat van nuuts af - geen woordspeling bedoel - net besef dat dit werklik is dieselfde idee dat waarskynlik soveel meer gevoel natuurlike die vorige week. En selfs as jy nog nie geduik in gestelde probleem 0, Ek daresay jy sal vind dat die stukke van die legkaart is redelik intuïtief, of ten minste so met verloop van tyd. So laat ons duik in Kom ons kry ons hande vuil hier met hierdie eerste eenvoudige program. En eenvoudig is, natuurlik, relatief. Om dit te doen, ek gaan skerms te verander om daardie toestel Ek het die CS50 toestel. Die CS50 toestel is 'n stuk sagteware wat loop binne in 'n venster op my Mac, en jy kan ook hardloop dit in 'n venster binnekant van jou rekenaar, wat laat my toe om presies dieselfde te hê rekenaar omgewing as elke TF, soos elke CA, soos elke student in die klas. Omdat die CS50 toestel is letterlik 'n ander bedryfstelsel Linux genoem - spesifiek Fedora Linux - en ons, die personeel, ingestel het, die installasie proses vir hierdie bedryfstelsel in so 'n manier dat 'n mens, daar is 'n bietjie CS50 logo in die middel, twee, daar is 'n persoonlike menu aan die onderkant, en drie, pedagogies, ons vereenvoudig die gebruikerskoppelvlak as soveel as moontlik so dat wanneer jy eerste boot hierdie ding op jou eie Mac of PC, jy het dieselfde omgewing as almal anders, en jy het al die gereedskap wat jy nodig vir die kursus sonder om te vind uit te vind hoe om te installeer en elke elke instrument individueel. So dit lyk redelik soos Mac OS of Windows. In die onderste linker hoek, jy wese het 'n start menu van vorme, of 'n Apple menu. En dan moet jy wat ons vermoed sal wees om jou drie mees algemene ikone. Een daarvan is Chrome. Daar is 'n leser binne van die toestel. Twee is 'n program genaamd gedit, wat ons vlugtig verlede week, wat net 'n grafiese redakteur. En drie is 'n terminale program, wat is 'n swart en wit venster uit weleer wat ons toelaat om meer te tik arcane maar meer kragtige opdragte aan ons klawerbord. So ek gaan om voort te gaan en kliek op gedit, en wees verseker dat die probleem stel 1 vrygelaat te word op Vrydag, loop jy deur al hierdie stappe volg. Let daarop dat ek het 'n mooi eenvoudige user met drie dele. Aan die linkerkant, ek het 'n groot leë venster genoem bron-kode. Dit is waar ek gaan 'n opsomming te sien van enige kode wat ek skryf. Op die regterkant, ek het 'n groot blad, tans ongered is, en dit is waar my kode gaan om te gaan. En op die bodem, het ek 'n geïntegreerde Terminale venster, 'n swart-en-wit gevra waar ek kan tik opdragte te stel en my programme te loop - wat is, te maak en my programme te loop. So laat ons begin eenvoudig. Laat my gaan na File, Save. Ek gaan om voort te gaan en gaan in jharvard. So het die toestel, ongeag wat jou naam is, behoort aan 'n man met die naam John Harvard, wat 'n jharvard huis het Gids binnekant van wat al jou lêers sal gaan. Dit is jou eie kopie van sy rekening, so ons is nie almal deel dieselfde hardeskyf. Jy moet net die illusie van John Harvard se eie. In vooraf, het ek eintlik geïnstalleer Dropbox. Die toestel kom met preprepared Dropbox so dat as iets verkeerd gaan gedurende die semester, as jy het ingestel om jou toestel met 'n gratis Dropbox rekening, al jou lêers word outomaties back-up, sodat jy kan baie maklik herstel hulle. En ek gaan om te gaan in my Dropbox gids, en daar is reeds gaan om 'n paar ander dinge is daar. Maar ek gaan om voort te gaan en gaan na File, Save. Ek gaan om te gaan in jharvard, Dropbox, en hier, ek gaan gee my program 'n super eenvoudige naam, hello.c, en dan slaan. So ek het dieselfde koppelvlak nou. Die enigste ding wat verander is die blad up top. So ek is baie vinnig gaan te herskep die program van die gly 'n oomblik gelede. So in Hoofstraat (void), en dan printf, "Hallo, wêreld," het 'n ietwat kriptiese agteroorskuisstreep n, naby quote, sluit hakies, kommapunt, en dan te red Ctrl S. En kennis as 'n weg wat net verskyn hier op die links bo. En dit is nie nuttig vandag, maar nuttig sal wees oor die tyd. Jy moet net sien, weer, 'n opsomming van die kode wat jy geskryf het. En omdat ek het iets genoem hoof, dit is hoekom die woord hoof inloer tot daar. Maar vir die grootste deel, ons nie nodig dat ons vandag. Alle reg, so ek beweer dat dit is my eerste program geskryf in 'n programmeertaal taal, die sogenaamde C. Ons weet van Vrydag dat wat hierdie ding gaan doen baie uninterestingly toe ek hardloop en dit is net vertoon - Met ander woorde, druk, as 'n rekenaar wetenskaplike sou sê - hallo wêreld op die skerm. So om dit te doen, sal jy sien dat ek om af te gaan hier aan my terminale venster, en nou het ek ' 'n flikkerende vinnige. Maar dit is nou 'n klavier weergawe van my John Harvard tuisgids. Dit is 'n klawerbord manier via wat my hardeskyf te navigeer. So ek kan nie eintlik tik soos ek gedoen het laaste week maak hallo, want dit is gaan geen reël om te sê teiken te maak - iets is verkeerd. Ek weet nie mooi wat die boodskap beteken nie, maar dit is omdat by verstek, wanneer hierdie swart en wit venster oopgemaak het, ek is binnekant van John Harvard se tuisgids. Maar waar het ek behalwe dat program? In my Dropbox gids. Nou het ons almal grootgeword met rekenaars, waar jy net dubbel kliek op 'n gids se ikoon, is dit oopmaak, en siedaar. Dit is waar die lêer genaamd hello.c sou wees. So in werklikheid, laat ons dit doen. Laat my gaan voort en verminder gedit net soos jy sou op Windows of Mac OS. Laat my gaan in die Huis gids by die boonste linker. Ek sal hier te sien 'n klomp van die dopgehou. Hier is my Dropbox gids. Die regmerkies beteken dit is gesynchroniseerd. En daar is 'n paar dinge in hier, Maar let op dat hello.c is inderdaad reg daar. En so in Mac OS of Windows, normaalweg, Ek wil dubbel kliek wat, dit maak in alles wat die program, en ek is goed om te gaan. Maar nou, ten minste begin vandag, het ons nodig om 'n stap agteruit net te neem gee jou 'n paar basiese gereedskap vir jou tool kit met wat meer te doen kragtige dinge voor lank. So in hierdie vinnige, ek het om te doen ekwivalent van dubbel kliek op die Dropbox gids. En om dit te doen, ek gaan CD te tik vir verander gids, Dropbox, betree. En nou na die hakies aan my sogenaamde vinnige sê nou dat ek in tilde, die klein kronkel simbool op die links bo meeste keyboards, / Dropbox. Dit is net snelskriknotasie vir sê die mens, is jy nou binnekant van die Dropbox gids, net soos al jy het dubbel kliek op dit. So as ek nou gaan voort en tik maak hallo, tik, sien ek 'n baie kripties opdrag, maar nie 'n fout boodskap, dit lyk, en dan 'n ander flikkerende vinnige. En as jy onthou, ooit so vinnig op Vrydag, ons het dit gedoen. / Hallo.. Wat jy oor om te sien, is die resultaat van my hardloop hierdie program, of, in Mac OS en PC terme, as ek normaalweg sou verdubbel Klik op 'n program -. 'n app program of 'n. exe, dit maak 'n venster en lopies. Tik / hallo. Is net soos dubbel klik van 'n program om dit te doen nie, maar die gebruik van my klawerbord. Betree, hallo wêreld. En dit is dit. So laat terg hierdie uitmekaar te sodat dit voel nie te veel soos Grieks. So / beteken. Wat? Enigiemand wat al ooit 'n klawerbord navigator omgewing soos hierdie, wat is dot verwys na? Die huidige gids. So het die huidige gids is net 'n sinoniem vir 'n gids. So deur te sê dot streep, ek sê, kyk vir 'n program genaamd hallo in die huidige gids - in die huidige gids. Met ander woorde, my Dropbox gids. En dit is die rede waarom slaan Tik daarna eintlik loop die program. As ek nou tipe LS, sien wat ek sien alles in my Dropbox gids. Kry Started.pdf, wat Dropbox gee jou gratis, my foto's gids, 'n openbare gids, ongered Dokument 1 wat ek gemaak het per ongeluk 'n oomblik gelede, foo.c, wat ek vroeër gemaak het vandag, en dan twee lyne - hello.c en groet. Hello.c is die program wat ek geskryf het met gedit, en wat is hallo in groen? Die hallo in groen is die uitvoerbare. Met ander woorde, wanneer ek het hierdie opdrag 'n oomblik gelede - laat my rol terug in die tyd - toe ek gehardloop om hallo, dis die middel stap hier. En dit het hello.c as insette - AKA bron-kode - en dit het 'n lêer genaamd hallo as uitset, wat bevat al hierdie nulle en ene. En dit is hoekom, in die einde, kan ek eintlik loop 'n opdrag soos / hallo.. As gevolg van Intel Inside, my bedryfstelsel stelsel, Linux, open die nulle en kinders, voer hulle in die brein van my rekenaar - die CPU - en dat CPU weet, o, hier is 'n patroon van nulle en ene wat sê druk die volgende ding op die skerm. Wat is die volgende ding? Haal unquote, "hallo wêreld." Alle reg, so 'n vinnige opsomming van sommige van hierdie opdragte sodat ons kan begin neem dit as vanselfsprekend aanvaar. Laat my voor te slaan waar ons opgehou het. En jy sal onthou dat ons moes CD by ons terug 'n oomblik gelede beëindig. Dit is, durf ek sê, vir Vandag se doel - Miskien is hierdie week - die enigste bevele ons dalk nodig het om te tik op die command gevra Behalwe maak. So CD staan ​​vir wat? Verandering gids. Dis net die ekwivalent van dubbele kliek op 'n gids. En as 'n eenkant, as jy verloor ooit die binnekant van jou toestel, soos dat Dropbox - Ek wil terug te kry om my jharvard Gids - Wanneer jy twyfel, CD, betree, met geen ander woorde, en dit net ritssluiters jy terug na die plek waar jy begin het, wat is 'n mooi klein kortpad. Alle reg, so nou ander opdragte. LS. Ek getik wat 'n oomblik gelede. Wat dink jy LS staan ​​vir? So, lys, reg? Terug in die dag, wanneer die mens het gekom met hierdie opdragte, het hulle probeer om doeltreffend te wees, en eerder tik L-ek-S-T betree, hulle besluit LS. Dit is fyn. Dit klink soos genoeg lys. Laat ons net soort LS binnekom, en dat lys van die lêers of gidse in my huidige gids. mkdir, jy kan seker raai. Maak gids. So jy gaan nie na 'n lêer spyskaart en kies 'n nuwe gids in hierdie omgewing. Inteendeel, jy tik die opdrag mkdir ruimte en dan is die naam van die gids wat jy wil skep, en dit sal gedoen word. RM, jy kan seker raai. Verwyder of te verwyder. So as jy wil 'n lêer te verwyder, sal jy sien in die probleem stel hoe jy kan dit doen. En rmdir, verwyder gids. So, weer, sal ek geneig is om te vlieg deur 'n paar van hierdie inligting, een, want dit is nie al wat soveel pret te spandeer tyd op, maar twee, sal ons u voorsien in veel groter detail in enige van die Natuurlik se probleem sit, veral die standaard-uitgawes, enige van die stappe wat jy dalk nodig het om dit te tik dat jy meer en meer gemaklik met hierdie dinge. Maar nou laat my uitmekaar terg 'n ander ding. Wanneer ons getik hallo maak 'n oomblik gelede Ons het 'n kriptiese volgorde van instruksies. Ons het, weer, maak hallo. OK, laat ons dit doen. Ek was omtrent 'n fout te maak nie, maar [Onhoorbaar] nou erken ek was op die punt om en doen dit doelbewus. Wat het ek verkeerd gedoen net nou? Ja, so ek is nie in die Dropbox Gids, want 'n oomblik gelede het ek getikte CD en net getref betree. Dit ingezoomd my terug na waar ek begin het, Dit is nie waar my lêer word, so ek regtig nodig het om te doen CD Dropbox betree, en nou kan ek doen rm hallo betree, verwyder gewone lêer hallo. Ek weet nie hoekom dit so kripties. Dit beteken net is jy seker jy wil hallo te verwyder? Jy kan tik y vir ja, betree, en nou is dit weg. En as ek nou tik maak hallo weer, dit is gaan my voorwerp kode te skep, herskep die nulle en ene. Maar wat is die ooreenkoms met hierdie baie lang opdrag? Wel, ons sal terg hierdie uitmekaar kort voor lank, maar maak - Ek het 'n bietjie van 'n wit leuen voor - is nie 'n vertaler. Maak, is 'n program wat outomaties figure uit hoe om 'n te voer vertaler vir jou. So het die opdrag wat jy werklik moet wees loop om hello.c te omskep in hallo eintlik lyk 'n bietjie meer soos hierdie. En God verbied ons moet eintlik onthou om ooit tik dat die hele volgorde van instruksies uit. Die doel van die maak in die lewe is om te onthou dat graad van kompleksiteit vir ons en outomatiseer wat andersins baie vervelige stappe. Maar ek kan benader nie. So per hierdie klein cheat sheet hier, ek kan benader wat dit opdrag is doen deur eenvoudig te tik klang, wat die naam van die samesteller ons sal wees die gebruik van hierdie semester. Indien enige van julle het al ooit gedoen IOS ontwikkeling vir die iPhone of iPad, Klang is die program wat jy gebruik binne Xcode jou programme te maak. Klang, al is, is net nog 'n program wie se naam ons kan tik op die command gevra, en deur die bekendstelling van hierdie nou, Ek kan voer iets wat 'n bietjie verteenwoordiger instruksies te kom. So laat ek dit doen met die hand. So rm hallo, en nou in kennis geval Ek, net soos 'n gesonde verstand gaan - / Hallo., Doen wat jy dink ek moet sien as ek dit doen? 'N soort van fout. Geen so 'n lêer gids. Sodat 'n mens is eintlik redelik direkte. So nou laat my duidelik die skerm. Control S klaar net die skerm 'n afleiding te verwyder. En nou gaan ek met die hand te tipe klang-o hallo hello.c. So wat is dit oor te doen? Presies dieselfde ding wat gedoen het vir ons, maar ek het weggooi sommige van die onnodige woorde. Klang is die program wat gaan neem 'n C-lêer. as insette en produseer nulle en ene as uitset. Maar-o voortaan sal noem 'n skakelaar of 'n vlag. Dit is net techie jargon om te sê dit is 'n woord wat jy tik op 'n vinnige wat een of ander manier beïnvloed die gedrag van die program wat jy loop. So het iemand wil hê om te raai wat-o dra? Uitset. Dis net iemand besluit-o beteken uitset 'n lêer genaamd hallo en neem as insette wat die laaste woord oor die spoedige is, hello.c, so dat as ek getref Tik nou, blyk dit dat niks gebeur nie. En vreemd genoeg, in hierdie wêreld van ontwikkeling, as niks gebeur nie, dit is waarskynlik 'n goeie ding want daar is geen fout boodskap op die skerm. Hallo, Tik. My program is nou hardloop. Maar ek kan doen dom min dinge soos hierdie. klang-o, hihihi, hello.c, betree, en nou het ek 'n identiese program met die naam hihihi. Dit optree dieselfde, maar die naam is anders. So dit is net om te sê dat as jy wil die gedrag van 'n te beïnvloed program, gaan ons toenemend sien dinge genoem command line argumente. Dit is 'n lyn. Jy tik opdragte. Ergo, command line. En command line argumente is net woorde of klein stukkies van sintaksis wat een of ander manier beïnvloed die gedrag van programme wat ons hardloop. Alle reg, dit is dalk die mees vervelige program wat ons kan skryf en jy sien. Kom ons doen nou iets meer interessant. Laat my voort te gaan en 'n nuwe lêer. Ek gaan om voort te gaan en dit in red John Harvard se tuisgids as, Kom ons noem dit custom.c, te wees 'n bietjie persoonlike program. Ek gaan om te zoem op my bo- die oortjies hier en begin weer. Sluit in standaard stdio.h. Meer oor wat in 'n oomblik. int main (void), meer op wat in 'n oomblik. printf ("hallo, David"). Veel meer interessant, reg? So nou as - nie as gevolg van my naam, net omdat dit anders is - Maak persoonlike betree. Custom, hallo, David. Maar selfs dit is ook 'n wit leuen. Hierdie program kan net so goed genoem word david.c, want dit is nie persoonlike gedrag nie. Regtig, ek wil 'n program wat vra die gebruiker om hul naam. So, hoe doen ek dit? Wel, laat my blaai tot hier. En voor ek gebruik om 'n verklaring in Nuuts af, voordat ek gebruik printf, andersins bekend as 'n funksie, laat my eerste vra die gebruiker vir 'n paar insette. So om dit te doen, moet ek doen 'n paar dinge. Een, ek moet 'n plek om te stoor die gebruiker se noem nadat ek hom gevra het of haar vir dit. Wat konstruk moet ek waarskynlik gebruik 'n waarde soos dit op te slaan? 'N veranderlike. So anders as nuuts af, waar jy net 'n mooi legkaart stuk, hier, ons het te gebruik, natuurlik, om woorde te onsself uitdruk. En nou af, wanneer jy wil 'n woord of 'n frase in ontwikkeling, ons gaan om te noem dat 'n string. So 'n string is 'n woord of 'n frase. Dit is 'n reeks van nul of meer karakters, meer formeel. En as jy wil so 'n veranderlike te bestaan ​​nie, jy het om te sê gee my een. En die manier waarop jy dit doen is om te sê string s kommapunt, waar s kan wees enigiets wat jy wil. In werklikheid, s is 'n bietjie underwhelming. Laat my voor en meer gaan duidelik noem dit naam. Gee my 'n string genoem naam. Maar nou, wat is die persoon se naam by verstek? Wel, as die menslike nie tik enigiets in, natuurlik, daar gaan om geen waarde in naam. En dit blyk in C, as jy nie 'n veranderlike 'n waarde is, gaan dit het 'n gemors waarde. Dit kan 'n paar random nulle en kinders, sodat jy net gaan om te sien vullis, waarlik, op die skerm as jy probeer om dit te vertoon. Maar ek kan dit regmaak deur te sê, eintlik, winkel binnekant van die naam na aanleiding van waarde. Die manier waarop jy slaan waardes in veranderlikes as jy 'n veranderlike naam op die verlaat het, moet jy een of ander manier dit wat jy wil stoor in dit op die regte, en die sintaksis vir wat gaan te wees soos volg. Ons het nie gesien dit voor, maar neem op geloof vir 'n oomblik dat daar bestaan ​​nog 'n verklaring in die wêreld dat ek weer gaan roep funksie, en hierdie funksie is genoem kry snaar. En is dit nie letterlik nie. Dit raak een of ander manier 'n reeks van karakters van die menslike en dan doen iets met dit. En dit lyk nie of kriptiese sintaksis. Gewoonlik, as jy met gelyke tekens - jy is in die wêreld van, sê, algebra, en jy is eintlik sê x is gelyk aan 1. Hier is ons nie sê dat naam gelyk kry snaar. Ons sê winkel in naam wat is op die regterkant van daardie gelyk aan teken. Die gelykaanteken verteenwoordig die opdrag operateur. Dit is die sintaksis wat sê het wat op die regterkant binnekant wat is aan die linkerkant. So kry string is 'n nuwe stuk funksies wat nie net iets - vra die gebruiker vir 'n string - dit gee dit ook, om so te praat. So laat ons sien wat gaan hier gebeur. Ek gaan om voort te gaan nou en uitzoem, en ek gaan 'n paar te kry foute op my vinnige. Ek gaan om te tik persoonlike maak, betree. Sjoe. 'N Hele klomp van foute. Alle reg, so hierdie is 'n soort van oorweldigend, seker op die eerste, maar dit blyk al hierdie baie weliswaar kriptiese fout boodskappe verwys na 'n paar patrone wat ons sal begin om te sien met verloop van tyd. So hierdie een sal ek aftrek, want dit is die eerste. Gebruik van swart identifikasie string. Dit beteken net dat gedit, of klang, in hierdie geval, weet nie wat ek bedoel met tou. En dit is omdat in C, die ontwikkeling taal, is daar eintlik geen veranderlike van tipe string. C nie weet dat snare bestaan ​​nie. Maar ons, CS50 personeel, doen. En so in die hand van die klas, het ons 'n lêer genaamd CS50.h. En binnekant van hierdie lêer - en Meer oor die sintaksis te kom - binnekant van hierdie lêer is 'n definisie van wat ek nou net gedefinieer mondelings as 'n string. So eenvoudig deur die sluiting van hierdie een lyn van die kode in my program, is ek nou onderrig gedit en maak en klang al in draai wat 'n string is. Ek weet nie hoe nie. In 'n paar weke, sal ons skil terug wat laag. Maar vir nou, weet dat hierdie leer die samesteller wat 'n string is eintlik. So nou laat my skoon my terminale hier. Laat my weer uit te voer om persoonlike, en ek opgelos al die probleme. So ook dit gaan 'n herhalende tema. Ek het 'n 9 line program, en maar ek het 18 lyne van foute. Dit is soort van te intimideer. Maar besef dat hulle dikwels waterval soos dat 'n mens bietjie fout snellers die verwarring vir die samesteller, en dit lyk baie erger as wat dit is. So nou 'n slim waarnemer sal weet dat Ek kry 'n string van die gebruiker, maar ek is nie eintlik doen wat met dit? Ek het eintlik nie doen niks met dit. So as ek eintlik loop gewoonte weer dit gaan net daar sit. Wat gaan aan? My program blyk te wees vas op watter lyn, sou jy sê? So dit is eintlik vas on line 7. En ons het nie gesien dit voor, maar on line 7, daar is, weer, hierdie verklaring, kry snaar. En dit is wat dit sê. Dit is nou wag vir die menslike die string te neem. Dit is heeltemal unintuitive vir my, die mens, want ek het dit nie wat om te doen. Maar laat my gaan voort op geloof en laat my voorgee om te wees Rob. Betree. Dit is nie die program wat ek bedoel. So het ons ons eerste blog. Maar laat ons probeer om te redeneer deur waarom dit die geval is. Eerste, laat my los hierdie eerste probleem. Laat my voeg 'n lyn hier wat sê printf, wat is jou naam? Laat ons net naby quote, sluit hakies. Nou kan ek weer uit te voer die program. Probleem. Ek is nie sien nie. Reg. Ek het nie heropstel dit. So in 'n taal soos C, want jy verander die bron-kode, beteken nie dat jy het verander jou voorwerp-kode nuwe voorwerp kode te genereer, nuwe nulle en ene. Jy het om te heropstel. As ek nou weer uit te voer persoonlike, betree, Ag, 'n bietjie meer duidelik. My naam is Rob. Nog steeds karretjie. En Ek wil argumenteer daar is 'n paar foute nou. Dit lyk net afskuwelike, eerlik. Soos, minimaal, moet ek 'n ruimte is daar, of beweeg die wyser na die nuwe lyn. En eintlik, 'n nuwe lyn. Dit is soort van 'n sleutelbegrip hier is dat ons het gesien, maar nie gedefinieer nie. Die manier waarop jy 'n teks om te beweeg op die volgende reël, jy doen dit nie. Dit is verwarrend vir die rekenaar. Dit lyk soos twee afsonderlike lyne van die kode, wat nie is heeltemal korrek is. Jy plaas moet meer eksplisiete en sê, gee my 'n nuwe lyn, wat ons verteenwoordig in c met agteroorskuisstreep n. So is daar 'n paar sulke karakters. Agteroorskuisstreep n sal regmaak wat estetiese. Laat my heropstel my program. Laat my weer uit te voer my program. Dit lyk beter. Dit is nog baie primitief, maar dit is ook nog steeds karretjie. So daar is een - selfs as jy nog nooit geprogrammeer voor, jy kan waarskynlik 'n raaiskoot na die rede waarom hierdie program is nog gebrekkig. Wat het ek nodig om dit te doen Ek het nog nie gedoen nie? So ek het om werklik te doen iets met die naam. Net soos in nuuts af, jy kan eintlik toewys aan 'n veranderlike soos n of werk soos ons gedoen het die afgelope week - 'n waarde. Maar as jy niks doen nie met dit is niks gaan gebeur nie. Alle reg, so laat los. Laat my tik my veranderlike daar, en laat my gaan hier. Laat my heropstel, laat my re-run, Rob. Nou is ek net 'n idioot, reg? So, dit is nie regtig kry my nie verder. Maar dit was 'n volkome natuurlike instink, wil ek argumenteer, reg? As die veranderlike genoem naam, en ek dit wil hê om daar te gaan, hoekom ek nie net tik dit daar? Wel, natuurlik, ons het nou onderskei tussen wat 'n string? Let op dat die kwotasie unquote hier, hallo naam? Dit is eintlik self 'n string. Dit is moeilik om gekodeer. Dit is nie van die mens. Dit is vir my nie, die oorspronklike programmeerder, maar dit is nog steeds 'n string. So as jy letterlik skryf N-A-M-E binnekant van 'n string, wat gaan aan kry gedruk? Wel, N-A-M-E. Ons plaas nodig printf te vertel, druk nie uit letterlik noem. Druk die waarde van 'n naam. En om dit te doen, doen ons die volgende. En dit is net 'n menslike konvensie. Ons plaas sê% s, en wat staan ​​vir string. En dan aan die einde van my goeie aanhalings, Ek gaan 'n komma te sit en slaag 'n tweede argument in hierdie stelling. Ek gaan Naam daar te tik. So nou sien ons 'n effens nuwe sintaksis. Ons het nog twee hakies, en Verder moet ek sê dat die dinge tussen hakies verteenwoordig argumente in 'n funksie - insette wat een of ander manier gaan sy gedrag te beïnvloed. So deur daardie logika, hoeveel argumente nie printf blyk te wees neem op hierdie oomblik? So dit blyk te wees wat twee, en dit is inderdaad geïmpliseer deur die komma hier. So dit is een argument tussen aanhalingstekens. Selfs al is dit 'n komma, alles is in aanhalingstekens, wat beteken dit is 'n lang tou. Komma, veranderlike naam. So nou laat my zoom uit. Laat my weer uit te voer nie. Rob. Damn dit, wat het ek verkeerd gedoen? Alle reg, so jy hoef te heropstel. So weer, maklik foute maak vroeg weer en weer. So nou weer uit te voer persoonlike, Rob, betree, en siedaar. Ons het nou 'n persoonlike program. So ek het nou 'n program wat met behulp van 'n paar eienskappe wat opmerklik. Een, ek is met behulp van CS50.h, anders bekend as die CS50 biblioteek. En binnekant van die CS50 biblioteek funksies wat ander mense geskryf het - naamlik die personeel - vir jou om te gebruik, en kry string is een van hulle. Binnekant van die lyn 2 is stdio.h, en is die rede waarom dit daar? Neem 'n raaiskoot. Wat bestaan ​​binnekant van Standard IO ouer? Printf. So printf, het jy nie sien dit oral anders op die skerm. Dit moet saam met die rekenaar een of ander manier. Waar kom dit vandaan? Dit is binne-in - dit is verklaar, so te sê, binne 'n lêer genaamd stdio.h. Nou, vir hierdie dinge, sal ons terug te kom uiteindelik, want dit is 'n bietjie afleidende vir nou. Dit verwys na ons terugkeer tipe. Dit verwys na 'n argument. Maar vir vandag, ons is gefokus net hier op hierdie lyne. So string naam, net om te vat, Wat het hierdie vir my doen? So is dit verklaar 'n veranderlike string-tipe. So dit is bedoel om te wees vir woorde, nie vir getalle. Net soos 'n eenkant, as ek gedoen wil om dit te 'n getal wees, sou ek sê iets soos int. As ek wou 'n drywende punt wees waarde, iets met 'n desimale punt, Ek sou sê float. Maar vir vandag, ek het net gesê string. En Ek het aan hierdie veranderlike 'n naam van 'n naam nie, maar ek kon noem dit niks. Trouens, oorspronklik, ek het dit S. Dit is hier is net nog 'n verklaring gesê. Hoeveel argumente is hierdie verklaring te neem? So dit is net om een, en dat is bloot 'n estetiese detail van vertoon iets op die skerm vir my. Wat is hierdie lyn 8 doen in leketaal? Dit is om 'n waarde van die gebruiker - naamlik, 'n string - en wat dit doen met dit? Dit is in wese oorhandig dit aan die man op die linkerkant van die is gelyk aan teken so dat in hierdie geval, die naam veranderlike eintlik kan bêre dit. En dan is printf ander geval van 'n funksie. En ons sê 'n funksie te roep. 'N funksie te gebruik, is 'n funksie te roep. Hierdie ding glo neem twee argumente. Hierdie een, komma, hierdie een. Hierdie een self is net 'n string wat 'n plekhouer. % S van hulpbronne aan 'n ander string hier. En so deur om naam na die komma, dis te voeg dat die ding vir my. So kan ek doen ander dinge nog. Laat my voort te gaan nou en doen 'n bietjie van 'n dom program, maar laat my verwyder nie, en laat my 'n lus. Terwyl waar. Die simbool waar is, is natuurlik altyd gaan om waar te wees. So watter soort lus ek beïnvloeding deur die skryf van 'n lyn soos hierdie? So 'n oneindige lus, reg? Net terwyl ware. Daar is geen manier wat ek kan die woord verander getrou aan enigiets anders te wees nie, so dit is net gaan om vir ewig te hardloop. So, as jy al het eintlik 'n program in jou Mac of PC wat blyk het opgesluit, of dit doen iets en iets te doen, en jy net kan nie die ding om op te hou nie, tensy jy herlaai jou rekenaar of trek die Task Manager of die wil, hier is so 'n voorbeeld. Ek kan sê, "Ek is 'n karretjie program." Sluit kwotasie, sluit hakies, kommapunt. So weer, kennis van die patrone. Selfs al het sommige van ons sintaksis is 'n nuwe, die navraag, terwyl die term ware, KENNISGEWING Ek het dieselfde soort van krullerige draadjies. Ek het 'n kommapunt en hakies. So nou, laat ons gaan voort en stel hierdie. Maak persoonlike, persoonlike. So op hierdie punt, het jy nie nodig het om te herlaai die toestel, al reg? So is die maklike les hier is met twee vingers, beheer C, ons sal ophou die program. Maar jy kan sien presies hoekom hierdie ding is herhaal homself weer en weer. Ek kan iets doen om 'n bietjie meer kompleks as 'n teaser. Ek gaan om voort te gaan en sê die volgende. Vir int, wat 'n heelgetal is, ek is net 'n generiese naam wat ons gee aan die meeste veranderlikes in programme wanneer jy net tel, is gelyk aan 0. Laat my gaan voort en sê, terwyl Ek is, kom ons sê, minder as 100, i plus plus. Ons sal terugkom na hierdie sintaksis, maar dit beteken net inkrementeer ek weer en weer. En wat wil ek hier doen? Printf, "Ek kan tel tot i." Dit is 'n karretjie program. Wat ek het nie eintlik van plan hier? Persent nie, maar julle sal nie raai hierdie. % D is 'n desimale heelgetal. Komma i. Laat my terug te rol. Laat my nou heropstel met maak. Laat my nou weer uit te voer met persoonlike. Ek kan nie regtig damn vinnig wanneer tel Ek skryf 'n program soos hierdie. Nou laat ons iets doen 'n bietjie onbedoeld. Hoe gaan dit laat ons dit doen terwyl ek groter as of gelyk aan 0. Wat is dit gaan veroorsaak? So logies, dit is nie so wys, want nou as ek tik hierdie, vertel, Ek kan nou regtig tel, baie hoog. Ongelukkig is omtrent so hoog as wat ek kan telling is 4000000000, so dit gaan 'n rukkie neem. So hoekom laat ons dit nie as ons fotonische lewe, belowe dat op Woensdag, sal ons sien of hierdie program geskied. Twee, sal ons stel hoe jy jouself skryf jou eie funksie sodat baie vinnig, teen Woensdag, sal ons, as ons oorgang van nuuts af in C, begin skryf ooit toenemend komplekse programme wat veel nie, veel meer as dit. Ons sal sien jy dan. [Applous] Spreker 1: By die volgende CS50, Legkaart dag was 'n sukses te maak.