[Powered by Google Translate] [Rock glasbe] [MUSIC - "Happy Together" želve] DAVID Malan: Danes smo začeli naše raziskovanje osnove računalništva in naši uvajanje, zdaj, da umetnost programiranja, za katere je to samo en primer. Toda v isti smeri reševanja problemov, vemo, da Tradicionalni Dan Puzzle CS50 je jutri. Če še niste RSVPed za ta dogodek, lahko greš na cs50.net/rsvp. Lahko prinese skupin 2 ali 3 ali 4. Ti bodo izpodbijati s težavami, kot tistega, ki ga je videl tam na začetku. Vsi novi problemi v letošnjem letu, če partook lani, in ti bodo imeli priložnost za zmago, potem nekaj čudovitih nagrad. Med njimi Wii in nekaj darilnih bonov in podobno, vsi pa se družim s CS50 študentov in sošolci in pice in Facebook. Torej, več o tem jutri, če bi želeli. To je torej CS50, za tiste, ki ste se nam pridružili za prvič. In vem, da je to predmet posebej določeno, da se si s tem seveda na končni namen in na kateri točki ste bo imel ne samo razumevanje teh osnove računalništva, vendar boste morali to je zelo praktično niz, ki ga lahko nato nazaj na svoje službe, pa naj gre za strojništvo, uporabne matematike, fizikalne znanosti, naravna Znanost, ali podobno. Res, kaj je tako vznemirljivo računalništva teh dni je, da je ravno tako velja za vse vrste polj. In čeprav danes, bomo samo praska površino zelo tradicionalno znan kot programski jezik C, bomo Namesto pogled na nekaj, kar ti nič, nekaj z , ki je bil ta piškotek ljubezenska zgodba izvaja eden od vaših predhodniki v preteklih letih, da pripovedujejo zgodbe, za ustvarjanje iger, ustvariti interaktivno umetnost, in dejansko začeli našo zavijanje um okoli nekaterih temeljnih konstruktov, ki osnova programiranja, vendar v okviru, kot boste videli, da je manj strašljivo, da je veliko manj skrivnostno, kot boste videli Pred dolgo. In spoznali, tudi za tiste, ki ste pravkar pridružil nam to semester, fraze, na katerem smo se znašli predavanje sreda je, to ni tako pomembno, kje boste na koncu glede na vašo sošolci v tem razredu, ampak kje si, po koncu semester V tednu, 11, na koncu glede na sebe prav to zelo dan. Torej, brez odlašanja, to je treba omeniti, da tiste manj udobno, so nekje vmes, so tudi po zasnovi tega seveda ni v neugodnem položaju vis-a-vis tiste bolj udobno ki prihajajo v ta razred. Kot boste videli v prihodnjih tednih, imamo različne proge za neskladne ozadju nazaj, oddelki za tiste, manj udoben, bolj udobno, so nekje vmes. Kot boste videli ta teden in naslednji teden, v dveh različicah večina kompleti problem v obeh različico standarda in heker tako da vse, kar lahko sami izberete na pot, s katero najbolj udobno. Torej, danes smo se potopite v to programiranje jezik se imenuje Scratch. To je grafični programski jezik, pa vendar ima Iste značilnosti nekaterih višjih programskih jezikov bomo raziskati kasneje v polletju, med njimi C JavaScript in PHP. Ampak to se dogaja, da nam omogočajo, da bi se izognili nekaj motečih zgodaj sintakse, stvari, kot podpičjem, oklepaji, in druge skrivnostne podrobnosti, ki se na prvi pogled, enostavno ne sploh intelektualno zanimiva in ponavadi dobijo v Tako iz nekega temeljnega razumevanja. Kar zadeva sedaj strukture za podporo pred, spoznal, orodje, CS50 Razprava, ki bo povezan na tečaj je Spletna stran kasneje danes, je spletni forum za razprave na ki jih boste lahko postavljajo vprašanja med seboj in osebja, in to je tudi orodje, kot bomo videli naslednji teden, da bomo uporabili kar integratedly v Uradne ure, kot tudi. Dejansko, uradne ure začeli v ponedeljek, in po pravici povedano, prvi Teden uradnih ur je dokaj nizko tipko. Ne verjamem, da boste našli vse, kar Scratch nedostopna. To je precej samoumevna, kot bomo videli, in kaj Uporabili jo bomo za danes je izločiti nekatere temeljne ideje, da bo, potem vztrajajo na celotnem Preostali del semestra. Vendar se bo z začetkom v ponedeljek ob 20:00 po 23:00 se Uradne ure v Annenberg več odmora možganov. Sestavni 2 se bo začelo drevi, tako da enkrat v tem vikend, pojdite na cs50.net/section, in boste je vprašal številna vprašanja. Med njimi je, kako bi opisali svojo udobje ravni kot danes? Ni težko, hitro pravilo o tem, kdo je v kateri žlica. To je samo nekaj kar verjetno veste, da če med tistimi, manj udobno ali drugače. In zdaj, walkthroughs. Problem niz specifikacij za ta teden, in sicer standardni heker in izdaja enako, je na spletni strani cs50.net, kot je zdaj. In boste videli, da je prvi od teh izdaj, Standard Edition vsak teden, je skupaj z nečem, kar nas pokličite kodo walkthrough, zasedanje pod vodstvom enega Seveda je učenje fantje, da vas vodi skozi, zagotavljajo nasvete o tem, in vam dol posebno pot, ko gre začetkom teh problematičnih sklopov. Torej, z vsako od teh težav določa, če boste kdaj želeli sami Kje naj začnem, začnete z njimi walkthroughs. In v resnici, mi dovolite, da uvede Zamyla Chan, to Letošnja poučevanje fant, ki bo kar vsak eden od teh walkthroughs. Zamyla? [APLAVZ] ZAMYLA CHAN: Živjo, vsi. Moje ime je Zamyla. Sem mladi študirajo inženiring Winthrop House. Ampak sem poskusil in jih je mogoče v čim večjem številu tečaje računalništva, kot sem lahko, zato sem res vesel, da se je ta vodilni Letošnji walkthroughs. Walkthroughs, zame so bistveni del mojega CS50 izkušnja. Med walkthrough za vsak p-set, bomo šli skozi Problem nastavite skupaj, poglej problemov, vrste jih razdelijo v obvladljive ugrizi. Dal ti bom nasvete in tehnike za pridobivanje skozi in kako začeti. Upam, da vas vidim vse na walkthroughs. Če ne morete priti osebno, potem prosim melodijo v spletu. DAVID Malan: Sijajno. Hvala, Zamyla. Tako so ugotovili, da walkthroughs, res, v petek popoldne, vendar je to namerno modela, tako da tudi če ne želite udeležiti razred na petek Popoldne bodo videi največ toliko hitreje kot vikend. Torej zavedati, da bo cs50.net biti vsi Zamyla je walkthroughs. In da je današnji datum in čas, 03:00, Harberd Hall, 104. In nekaj učnih tovariši pripravili tudi nekaj pripomb za vas v nenavzočnosti, da vam malo perspektiva, kaj so njihove izkušnje, ki prihajajo v in bo iz CS50 bilo. Torej, če bi se dim luči za trenutek, dal ti bom nekaterih zaposlenih v CS50. JACKSON STEINKAMP: Vzel sem CS50 lani kot novinec v padel, in to povsem zapravila mojih mislih. Nikoli nisem sprejela nobenega programiranja razrede prej, in nikoli prišel z vsemi računalništva izkušnje na vseh. In tako sem slišal buzz o razredu in odločila, da ga sprejme. JULIA MITELMAN: Bilo je zelo zabavno, zelo zanimiva. Še vedno sem, da ta dan - Pravkar sem pred kratkim videl sem disketo, ki nam je dal David na naši prvi dan predavanja. Imel sem ga obesil na steno. To je verjetno malo nerdy, ampak sem visel v na moji steno v razredu kot opomin, kako kul je. TRAVIS Downs: To je tako neprijetno. JACKSON STEINKAMP: Računalništvo je nekaj, kar se morajo potruditi, tudi če niste eden za tradicionalni znanosti. To je njegova lastna izkušnja, CS50 bodo poskrbeli, da si podprt tudi s tem s svojo vojsko pravemu TF. ALI NAHM: Vzel sem ga kot novinec, zato sem naredil veliko novih prijateljev. Sem se seznanijo tudi s tem celotno koncentracijo in celotna šola inženiringa, zato sem zelo priporočam in dobrodošli na naši CS50 družine. Yaniv YACOBY: CS50 le uči, kako uporabljati orodja ki so splošno dostopni. Potrebuješ samo prenosni računalnik, potrebujete spletni brskalnik, in ti se morajo naučiti, da napišem nekaj kode, da lahko resnično zgraditi urejene stvari. KAREN Xiao: To je tako kul, da lahko naredim nekaj in so ga ljudje uporabljajo in so ljudje videli, in to je kaj sem res všeč o tem. TIM McLaughlin: - občutek skupnosti, mislim, da je to Tečaj več kot katera koli druga seveda sem sprejela doslej. Ne boš samo ob drugo - ne boš polnjenje drugo zahtevo. Saj ne le, da bo predavanja in bo dela. Ampak delaš ton stvari, ki so vsi približno programiranje in vse o tehnologiji, vendar pa ne Res se počutim kot razred večino časa. Travis Downs: In prvi dan so razdelili torto, in Bil sem takoj prodal. JACOB PRITT: Prosti sladkarije in pice. ZAMYLA CHAN: - glede na vašo zanimanja, mislim, da CS50 boste zabavali, pa boste lahko intelektualno spodbujati. MARK GROZEN-Smith: Vedno stranka v razredu, in to je Stranka vsako noč delajo na p-set. JACKSON STEINKAMP: Vsakič, ko boste končali niz težav, saj bo počutil kot ste končali projekt. MELISSA NIU: To je bilo prvo leto, in sem naredil nakupovanje. Imel sem moji štirje razredi pripravljen, in sem bil v Annenberg. In sem naletel na prijatelja, in pravi, hej, jaz nakupovanje ta razred se imenuje CS50, zato morate z mano. Izteklo se je tako, da padec in po tem razredu, sem Mislil bom mladoletnika v DS. Ampak tukaj sem, tri leta kasneje, še vedno študira računalnik Znanost in dejansko je, da to veliko, in sem imel vsak trenutek za to. ROB Bowden: Nimam pojma. ALI NAHM: Pa poglejmo. MELISSA NIU: norosti. ZVOČNIK 1: Počutim se, kot da sem zelo kliše. Jaz bi samo rekel, recimo, super. Yaniv YACOBY: Dostopnost. JACOB PRITT: Prosti sladkarije in pice. TRAVIS Downs: Ne morem obrniti navzdol razred, roke torto. TIM McLaughlin: Energetic. VIPUL SHEKHAWAT: Essential. ROB Bowden: Naj pomislim na odgovor. Mislim, da imam nekaj. O, bog. Ja, moje ime je Rob Bowden, in to je CS50. [APLAVZ] DAVID Malan: V redu, tako da je začel slikati sliko v smeri, v kateri bomo lahko šli, in kaj je uvedla ta koncept sem znana kot psevdokod. Torej psevdokod ni programiranje jezik zase. Nič tehnična po sebi, ampak to je nekako Splošno način izražanja sebe precej natančno, dokaj algoritemsko, dokaj postopkovno, vendar brez da bi morali skrbeti, kateri jezik ste izražanje sam noter To je nekaj model angleščini in programskih jezikih z , ki se zgodi, da so seznanjeni, da lahko začnemo pisanju te stvari, ko gremo. In v resnici, Joseph, bi vas lahko sposodim na oder, da je Pisar tukaj? Sem šla naprej sem vnaprej in pozabili dati na nekaterih nogavice danes, in bo to naša med več smešne primeri. Sedaj te potrebujem tukaj. Jaz bom naredil nogavice del. Torej, tukaj imamo malo beležko. To je dobesedno le TextEdit na Mac. Ne bomo dejansko dogaja, da napišete loven program, vendar smo le, da bo začel risati iz psevdokod osnovi o nekaterih svetovalca, ki ga navedete do mene. Torej, tukaj je moj kup nogavic doma. Nimam nogavice, ko se zbudim zjutraj, in zdaj treba napisati program, algoritem z menoj, s katero da bi dobili te nogavice na nogah. In na tej poti, da vidimo, če smo se spotakniti ali naleti, nekaj idej, ki jih boste morali začeti razmišljati o bolj resno pri načrtovanju da ne vaši programi ne vedejo povsem v skladu z namenom. Tako sem sedel tukaj. Jaz imam kup nogavic. Kaj je prva stvar, razumen človek bi storiti, ko cilj je, da se na par nogavic? Nekdo mi en korak, in le en korak. Ja? OBČINSTVO: skloni. DAVID Malan: skloni se, Ok. Korak 2. Korak 2. OBČINSTVO: Poberi nogavico. DAVID Malan: Poberi nogavico. V redu, torej nekoliko nejasnosti tukaj, in to je eden od prvih spotike blokov, da smo naj bi jih namerno srečujejo tukaj. To je malce nejasen, zato vzemite nogavico. V redu, bom vzel tole, ampak računalnik, realizirati samo bit, se ne dogaja, da imajo te vrste ljudi instinkt za samo izberite najbližjo 1. Bomo morali začeti, preden dolgo, izrazil sami bolj natančno. V redu, torej korak je pobral svoje nogavice. Mi bomo prevzeli. Korak 3. V ozadju. OBČINSTVO: Najdi primernega par. DAVID Malan: Poiščite ujemanja parov. Ok, to je dobro. Moral sem izbrati to nogavico. Torej cilj je najti ujemanja nogavico, zdaj, ampak kaj pa to pomeni? Razumen človek, tako kot v sredo, ko sem vedel, kako je bil Mike Smith v imeniku, tako nekako je šel s svojim instinktom. Ampak tu je očitno to nogavica tu, vendar je računalnik Ne bo tako nagonsko. Računalnik bo imel zbirko bitov, kot smo razpravljali v sredo, in to so organizirana nekako v spominu. Toda dejstvo je, da ima računalnik samo sposobnost gledati na stvari ena na eno, in v resnici, čeprav smo ljudje - čeprav se zdi, kot da sem pogledal dol in split 2. kasneje Vem kje je nogavica je moje možgane in moje oči verjetno si hitro prelistati teh nogavic, nato latched na na sporni. Torej, če bomo vsi bolj premišljeno že kot računalnik, kako je bil ta ujemanja par? No, moramo ponoviti. Moramo morda zanke nad to zmešnjavo nogavic na tla, s katerim sem rekel nekaj podobnega ZA VSAKO nogavice, poberi up, in če je enake oblike in velikosti kot drugega, POTEM pika, pika, pika, bomo nadaljevali zgodbo. Torej za vsako nogavico, zato sem pobral to. Sem preveriti, je ta enaka tej. To ni, zato sem dal na stran stran. Potem sem še enkrat ponoviti. Je to eden enaki? Ne, to ni, zato sem ga dal na stran. Je to ena? Ne Tole? Ne, in tako naprej. In potem končno, upam, da bom naletite na to nogavico tukaj. Torej, če je enaka oblika, velikost, vzemi. In zdaj, kaj bi naš naslednji korak tukaj? Ja? OBČINSTVO: Ugotovite, desno od leve. DAVID Malan: Ok, opredeliti na levo in desno, tako da Na srečo, to vrsto del. Malo simetrična, ali pa sem samo nositi jim na ta način. V redu, tako da sem ugotovila, da je prav. In zdaj, preden nadaljujemo, naj poudariti, kaj je Joseph bil sem delal kot nekakšen razgledanega programer. Torej, še enkrat, ni eden od načinov za to, ampak več kot le oštevilčenje vrstic, je Jožef že začela, da to storijo vrsta zamika. Pravzaprav je to zelo pogosta konvencija v programiranju, , s katerim ko vam nekaj ponavlja, zanka slog, kot je bomo kar z angleško frazo "za vsako nogavic, "konvencije v Psevdokoda in, kot bomo videli, običajnih programskih jezikov, je le alinea. Hit preslednico nekajkrat udaril tipko Tab in podobno, tako da je ugnezdena pod "ZA VSAKO nogavici" je kos stvari, ki jih morate storiti, kot posledica te zanke. Tako, da je vse, kar semantično prevoz. Zdaj se je z "Če je to isto, oblike in velikosti," je Dejstvo, da je "Vzemi" je zamaknjena še samo pomeni, To je edina stvar, ki jo morate storiti, če tega pogoja, če je ta podružnica, da vilice v cestnem prometu, je v resnici pravi. Torej, zdaj tukaj, smo na stopnji 4, prepoznavanje desno in levo. Sem prav prepoznati. Daj mi peti korak. In tehnično, smo lahko res imenujemo FOR vsaka stvar - boste verjetno oštevilčiti vse vrstice, če bomo za to. JOSEPH: [neslišno] DAVID Malan: [neslišno]? V redu, v redu, v redu, bova na tvoj način. V redu, torej korak pet, kako narediti pravo nogavico? Kako Nadaljevanje je tu? Ja? OBČINSTVO: Dvignite desno nogo. DAVID Malan: Dvignite desno nogo, Ok. Korak 6? Hitro. Ja. OBČINSTVO: Poiščite odprt konec nogavico. DAVID Malan: Ok, našli odprti konec nogavico. Torej dobro. Torej, tukaj, po pravici povedano, bi zelo pogosta nagon bodi dal na desni nogavici, ampak tudi to je precej nejasno. Razen, če je računalnik ali ljudi ne ve, kaj to pomeni, to ne bo za izvedbo, da, tako da tukaj, imam ugotovila, da je odprtje parka. Korak 7? OBČINSTVO: Dotaknite prste. DAVID Malan: Touch prsti. Ok, zdaj gremo - V redu, bom vzeti nekaj svoboščin tukaj. Hvala. Korak 8? Nadenite nogavico. Ok, zdaj sem, da smo dovolj blizu, da bi nekako ta je doma. V redu, tako to gre gor. Vzel bom nekaj svoboščin s tem, kaj to pomeni, pravzaprav. Put nogavico naprej. V redu, zdaj korak 9? OBČINSTVO: Daj nogo dol. DAVID Malan: Hvala. Korak 9, dal nogo dol, in sedaj, bomo lahko ponovi. Torej verjetno lahko zdaj iti v korak 10 in rekel prepoznajo levo nogavico, vendar je to verjetno storili. In tako potem bom lahko nekako ponovite te korake. Ampak to nekako zastavlja vprašanje. Pred nazadnje, ko smo želeli ponoviti nekaj, smo je to storil iterativno, znova in znova, ZA Vsaka zanka se tako izrazim. Bi bilo smiselno uporabiti zanko, da bi obvladovali hkrati levo in desno nogavica? Ker se zdi, kot ti postopki precej enaki, razen dejstva, da je ena se začne tukaj in 1 Tu se začne? Ali smo zanke, ali pa bomo kar naprej pišejo ukrepe 10, 11 in 12? OBČINSTVO: Loop. DAVID Malan: Ok, tako da zanka. Jaz bi dejansko lahko rekli kar naprej dogaja. Torej, zakaj se to dogaja? No, to je pravzaprav prva naša neočiten oblikovanje odločitve, in v resnici, ena od meritev, s katerimi bomo začeli, da oceni, za nas in za vas, Kakovost programa je, kako dobro zasnovan je. Ali ste naredili minimalno količino dela, potrebnega za dobili delo opravljeno najbolj hitro, bodisi v smislu svoj čas ali glede na vozno računalnika času? Koliko operacije pa je potrebno izvesti? Torej, verjetno je to priložnost za zanke, saj takoj, ko sem začela kopiranje in lepljenje, kot je Joseph učinkovito bi s tem začeli ukvarjati v trenutku, si nekako zapravljaš čas, in ti da dvakrat ekspresivno. Toda hkrati so to res samo dva posebna primeri, levo in desno. In ker je pred tem, morda imam 10 ali 20 ali več nogavice v kup, prav gotovo smiselno, da nima 50 vrstic Koda rekel poglej to nogavico, potem pa naslednjič, potem naslednji. Tu je malo manj očitna, in jaz bi predlagal da bi lahko šla v katero koli smer. Lahko bi imeti to zanko, čeprav je to le zank dvakrat, ali pa bi preprosto kopiranje in lepljenje le malo tukaj, da bi dobili delo opravljeno. Vendar pa je ta program Otroški voziček, tako rekoč. Mogoče ima nekaj napak, napake ali kotne primere, tako da Govorimo, da smo v resnici ne pričakujemo. Nič je šlo narobe ta čas, ampak kaj bi lahko šlo narobe ob izvajanju tega programa? OBČINSTVO: Vi nimate nobenih nogavic. DAVID Malan: Torej bi smelo biti nogavice tam sploh. Torej, kaj menijo, da je zadevo kotu. Torej, če bi se lahko pomaknete nazaj na korak 1, zato stopi ena pa je bila upognite navzdol, tako da odjavi. Korak 2, vzemite nogavico, potem pa je bil ujemanje nogavice, prepoznajo prav. Mi nekako sprejeli cel kup predpostavk, in to je, odkrito povedano, zakaj program, včasih crash. Če ste, programer, je nekatere predpostavke, kot so Zagotovo pa bo v nogavice ali Gotovo se dogaja za spomin ostane v računalniku, zagotovo pa bo da je prostora na disku levo na trdem disku - No, če bi te predpostavke, in to ne v resnici realnost, ki ve, kaj je včasih računalnik je storili? In včasih, ko dobiš predenje plaža žogo ali zamrznjeno okno ali podobno, da je prav zato, ker nekateri programer ni predvidel te tako imenovane kotiček primerov. Kaj drugega bi lahko šlo narobe v tem programu? Ja? OBČINSTVO: Vi nimate desno nogo in levo nogo. DAVID Malan: Ok, morda ne bi bilo tako desno nogo in levo nogo, zato je ta program ne bi bilo splošno primerno. Drugo? OBČINSTVO: Morda ste pobrali osirotelega nogavico. DAVID Malan: Mogoče sem pobral osirotelega nogavico, zato neusklajene nogavice, ki samo nima sorodnikov ker sem izgubil, je raztrgana je, da je še vedno v pranje, ali podobno. Tako, da je preveč, ni bilo res ravna. Ja? OBČINSTVO: Morda že nogavice. DAVID Malan: Jaz bi že nogavice. Nisem dejansko preveriti. Če ne boste imeli nogavice, in nato nadaljujte storiti vrstica 1 in 2. In bi se to zgodilo. Zaspite z vašim nogavice na in podobno, tako Tudi to, zelo razumno kotiček primer. In morda še ena? OBČINSTVO: nogavica je od znotraj navzven. DAVID Malan: Torej je nogavica navzven, tako da smo naredili nobene napake preverjanje, na kratko. Nismo preverite, če je stanje na svetu, je, kot smo pričakovali. Nismo ugotovili, ali je dejansko našel tisto, kar smo iskali. In čeprav je to nekako smešno primer vključujejo nogavic, ob koncu dneva, to je točno vrsta miselnosti, morate imeti pri pisanju programov, tudi v Scratch, kot tudi v C, v JavaScriptu v PHP, ker drugače se bodo vaši programi kažejo enakovredna tej predenje žogo plaži ali pa samo dajejo nepravilni rezultati. Torej, najlepša hvala tukaj za naš pisar Jožef. [APLAVZ] DAVID Malan V redu, kaj je v Dejstvo, računalniški program? No, pa bo hiter pogled na Predstavnik tu. Torej, to je program napisan v jeziku imenuje C. C precej stara v teh dneh, vendar je veliko novejših jezikov zgrajena na vrhu je. Dejansko PHP, eden od spletnih usmerjenih jezikov, ki jih bomo uporabljati proti koncu izraza je, sam je tisto, kar se imenuje tolmač, program, ki je napisan v C, a več o tem V nekaj tednih od zdaj. Toda ta program, in to je tisto, kar pomeni, da napišete Program, čeprav je zelo preprost. Imamo nekaj precej Grobni sintakso, vendar lahko verjetno veš, tudi če ste nikoli prej programirani, kaj ta program ne. Pravzaprav ne vem, kaj printf je, ampak zagotovo tiskanje pričara idejo o tiskanju nekaj ven. Tako da, ta program je na koncu bo izpisal besede "Hello, world." Zdaj, če imate Mac ali PC ali Linux računalnik, odds so, vsaj če ste prenesli nekaj prostega Na voljo programska oprema, lahko so pisanje programov na svoj laptop za kar nekaj časa. V operacijskem sistemu Mac OS, na primer, tam je ta program, imenovan Terminal, ki prihaja z Mac, ki je običajno v Utilities mapo, in je na splošno odpira črno bela ali črna in bela okno, kjer imate poziv, na katerem lahko vnesete ukaze. Torej, to je pravzaprav spominja na kakšne računalniki Včasih je pred grafičnimi vmesniki, GUI, prišel. Zdaj, v operacijskem sistemu Windows, imate podoben mehanizem v obliki v ukazni poziv. Ampak, kaj bom naredil tukaj je odprl, recimo, TextEdit spet, tako da isti program smo s pomočjo za psevdokod trenutek nazaj, in bom, da gredo naprej in napisal svoj prvi program. Vključi stdio.h, karkoli že to pomeni, int glavne nična, karkoli že to pomeni, nato pa sredi tukaj, printf ("Pozdravljen svet."). In potem blizu, citiram, blizu paren, podpičje. Zdaj bom šel naprej in šele zadeti Command-S. Grem iti naprej in shranite kot hello.c, tako da je konvencija v svet programiranja C je ime datoteke dot c. Jaz bom samo dal v imeniku Home Johna Harvarda, Tukaj kliknite Shrani in zdaj bom šla na to terminalsko okno, kar je spet ta črni in beli hitro kje lahko izvajanje ukazov. Lahko zagon programov, ki jih vnesete svoje ime, ne po Z dvojnim klikom ikone v običajnem pomenu besede. Ampak stvar je v tem, da o C je jezik, kot so C 1. Na voljo je v tej obliki, kar se imenuje izvorno kodo. Nekaj, kar je videti malo všeč angleščini, vendar je vsekakor manj kot angleščino kot psevdokod Jožefa pred nekaj trenutki. To je malo bolj skrivnostno. Zdi se, da sledite nekaj vzorcev ali pravil. Dejstvo, da imam zavite oklepaje, podpičji, tečaje, kotni oporniki, počuti kot računalnik prišel s tem vrsta jeziku. Ampak, če grem, zdaj, v tem terminalskem oknu, lahko tečem ukaz, da bo za pretvorbo, da je izvorno kodo nekaj, kar ti predmetne kode. To se dogaja, da pretvorite angleškem podobno sintakso za ničlami in tisti, enake Pridali ničel in enic smo govoril sredo. Zdaj pa grem, da zaženete ukaz imenovano Jek. Več o tem v prihodnjih tednih, vendar je program, s ki lahko pretvorite v hello.c cel kup ničel in enic. Zdaj sem teči ta ukaz. Sem teči Jek, potem pa sem rekel, se izvajajo na tem dokumentu imenovano hello.c, ki sem ga ustvaril pred nekaj trenutki in nič ne zgodi. Ampak res, če sem podrezal okoli mojega domačega imenika, bi videli da je to neumno ime programa a.out zdaj obstaja. To je samo privzeto ime za program pri pisanju v C. Mi lahko preglasijo to na koncu, ampak je a.out ime programa sem pretvori v ničel in enic. In zdaj, ko je ničel in enic, moj Mac, v tem primeru, ali vaš Windows PC, lahko razumemo tiste bitov, navedenih ničel in enic. In tako, ko sem pritisnite tipko Enter, vidim, "Pozdravljen svet!" Ampak to je malo nečistnik. Nisem čisto pravi "Pozdravljen svet: zrak - jharvard." Zrak je ime mojega računalnika. Jharvard je ime računa, kaj sem jasno izpustiti iz programa? Nekakšna prelomom vrstice. Nisem zadel ekvivalent Vnesite ali povratek, in to je spet dokaz, da je dejstvo, da lahko računalniki Samo to, kar si povedal, da storijo. In dejstvo, da nisem povedal, računalnik, premaknite kazalec v naslednjo vrstico - No, to gotovo ne bo samo to presumptuously zame. Torej, če grem nazaj v mojem programu, in sem rekel, \ n - Torej, \ n, kot bomo kmalu videli, je pot kar čudne stvari, kot so nove linije znakov, stvari, ki bi sicer lahko posledica hitting tipko Enter. Ampak za zdaj, samo vem, da pritisnete na tipko Enter bi samo da si naša koda čudno, da je svet odločil, da veš kaj, da se stvari lepše, da ostane v eni vrstici, dajmo samo povem, \ n predstavlja novo vrstico. Naj shranili svojo datoteko, pojdite nazaj na terminalskem oknu, in re-run a.out, Enter. Še vedno vozičkom, ampak zakaj? OBČINSTVO: [neslišno] DAVID Malan: Ja, tako da moram to prevedem. Torej, da pripravi program samo pomeni, da ga pretvori iz vira koda za objektne kode, kode na ničel in enic. Zdaj pa samo dejstvo, da sem zadel, razen v tem TextEdit nima smer na teh ničel in enic, ker sem najprej treba Rdeča Jek hej, sem spremenil te vrstice kode, izvorno kodo. Moraš se regenerira a.out. Nič se zdi, da se je zgodilo, vendar v računalniku, v ukazni vrstici, če se tako izrazim, ko se nič ne zgodi, ponavadi pomeni, da je vse v redu. Ko se nekaj zgodi, to pomeni, si zamočil, na splošno. Torej, kaj je zdaj namenjen a.out in tudi zdaj, imam "zdravo, svet. " In zdaj, kaj o teh ničel in enic? Če v resnici pa je to? No, ne morem res samo nekako suniti okrog zelo učinkovito. Naj odprejo TextEdit. Tukaj je a.out. Naj gredo naprej in odprite to, in to je tisto, kar je očitno moja Program izgleda. Tako sem začela, ne hello.c, vendar a.out. Ampak to ni tisto, kar je pravzaprav moj program v resnici. Jasno je, da je to neke vrste črkovnih znakov. Ne vidim ničel in enic, vendar je to ker je a.out program. Ničel in enic - vendar TextEdit, kot že ime pove, je to tako kot na Windows Beležnica, je samo urejevalnik besedil, tako da je zmedeno vseh teh ničel in enic, kot čeprav so bili, kaj? ASCII znaki. Torej, opozarjajo v sredo, pravkar smo prišli do tega samovoljno razporejanje številk ali bitov, da črk abeceda in ločila in podobno. Torej TextEdit, da je urejevalnik besedila, je napačno razlago ti vzorci ničel in enic, ki naj bi se tiskanje besede, kot so "Hello, world." To je njihovo prikazovanje kot ASCII, in zato se zdi malo grdo. Zdaj, obstaja nekaj namigov o pravilnosti v tukaj. Obvestilo, če sem poudaril, da je namig dejansko "zdravo, svet, "tako nekje v tem programu, je stavek sem napisal. Ampak gremo naprej, zdaj pa vidim z drugim programom. To ni eden bomo uporabili, da pogosto, ampak tudi z Mac in bo notranjost CS50 aparata. Naj gredo naprej in odprite s programom, imenovanim XXD. Nazaj na dan, je bila večina programov imenovan precej cryptically, in tako bo ta trend nadaljeval. Ampak-b pljunil pomeni ta program izvajajo v binarni obliki. Ne deluje. Prikaz je z mano kot ničel in enic, in to je C Program, ki smo pravkar napisal. No, jaz kot človek sem, iskreno nimam pojma, kaj ti različni vzorci ničel in enic predstavljajo. Nazaj na dan, sem z mojimi luknjanih kartic ali podobno, bi dejansko morali pogledati, kaj te različne vzorce 01111000, dejansko predstavljajo. Ali še slabše, bi morali narediti za kovanje ali oblikovanje od teh vzorcev ničel in enic. Ampak za zdaj, da na veri, da je CPU Intel znotraj, tako govoriti, znotraj vseh naših računalnikov v teh dneh, ve Glede razlage teh ničel in enic. In še nekaj ničel in enic pomeni tisk. Nekateri ničel in enic pomeni predvajanje zvoka. Nekateri ničle in tisti, ki pomeni, da si vhod s tipkovnice. Tam je vse vrste različnih vzorcev, vendar smo na srečo, kot ljudje, samo na splošno treba skrbeti za načrtovanje na To precej višji ravni. In v drugih razredih CS lahko jama globlje navzdol in poglej na stvari, kot tistih ničel in enic, ali še še druge stvari. Torej, zdaj pa je to pretvorbo. Gremo hitro stran od C in se za nekaj v malo bolj tolažba, malo bolj razburljivo, saj bomo lahko dobili nazaj svoje animacije in zvoke in podobno, ki očitno so nam pobegnil v tem dokaj primitivno vmesnik. Zato se lahko ta isti program v C zastopali zdaj v to programski jezik imenovan praskam, kot sledi. To je enako, kot to zdravo programa, napisanega v svetu ta puzzle kos slog jezik imenuje Scratch. Torej, naj gredo naprej in odpira prav ta program. To je znova pozval Scratch. To je prosto na voljo, in to je ista stvar, začel danes naprej. Torej, ta tukaj je Scratch, in je razdeljen v nekaj različnih kosov. Na zelo zgornjem desnem kotu, imamo tako imenovano fazo in res, da je, če so piškotki izvaja le malo nazaj. In na tej stopnji, so stvari, ki se imenuje sprites, znaki ali predmeti ali subjekti. To sploh ni pomembno, kako si misliš o njih, vendar sta programabilni, premične stvari, in v tem primeru je to Program, ki smo študent napisal je nekaj medenega testa piškotke, nekaj okroglih piškotkov, cel kup src, cel kup očala. Zaradi tega, on ali ona lahko program vsaka od teh posameznih znakov ločeno. Zdaj, kar pomeni, da program te znake? No, naj gredo naprej in kliknite na ta levi strani piškotek in se pomaknite nad v zgornjem levem tukaj. V zgornji levi mojem zaslonu je sedaj tako imenovane skripte območje. To je neke vrste nepopisan list, na začetku, na katero sem lahko povleci in spusti koščke sestavljanke, ki, odkrito povedano, storite kaj pravijo. Na samem vrhu tega kupa koščke sestavljanke je beseda Ko Green Flag kliku, in če nisi opazil prej, Tako sem začel, da piškotek pesem je tako, da kliknete, dobesedno, zelena zastava. Tako, da puzzle kos v zgornjem levem kotu pomeni, da ko je človekovih klikov zelena zastava, nadaljevala storiti naslednje stvari. Torej, kaj si ti piškotek nadaljuje narediti? Res ne vem, kako je treba razlagati to še ni, vendar pa je Piškotek je očitno iz svoje groove na nič, potem je počakal 3 sekunde, nato pa je spremenila svojo skupino 1, potem je čakala trenutek, nato pa je spremenila svoje groove nazaj proti ena. In potem je to dejansko izgleda malo napako, ne bi smelo morali spremeniti svoj ritem znova in znova, razen če je to nekje drugje spremenilo, vendar je ta niz korakov, je tisto, kar je diktira obnašanje tem piškotkom. Torej, kaj je dejansko pomaknete nazaj in ne gledajo na nekaj tako zelo zapleten še. Naj gredo naprej in pojdite na File, New, in dobili čisto skrilavca. Torej, zdaj sem res imeti prazen prostor, scenarij prazen oder, Naš Scratch privzeto Vilenjak in na levem na mojem zaslonu se imam paleto vseh svojih Na voljo kosov sestavljanke. In mi ne bo šel skozi skoraj, da je veliko teh stvari danes, ker, spet, večina je samoumevna, ampak bomo poskusite jih kategorizirati in poudarjajo podobnosti s temi prihodnjimi jezikov, ki jih bomo potapljati. In v zgornjem levem kotu, tukaj je 1. Ko Green Flag kliku, zato naj vleči to tukaj, pomanjšave malo. In če sem še zeleno zastavo, nič se zgodi, ker Nisem priloženo vsako logiko, vsaka izjava, tako rekoč, da da je zelena zastava, zato naj gredo do višine Kategorije tukaj. Jaz sem trenutno v nadzornem kategoriji. Jaz sem namesto tega šel dol v kategoriji izgleda, in tam je cel kup stvari, ki sem rekel Povejte, Pomislite, spremenite barvo, Zamenjaj noša. Torej, lahko to storite z neumnostmi kostume in zvoke in podobno. Naj gredo naprej in samo reči Povejte, in zdaj, ko sem opazil, povlecite in spusti ta del v sestavljanki, da se bo želite zapah v ustrezno obliko. Torej, ko sem šel naprej in izpustil mojo miško, da zaklenete skupaj, in zdaj, če grem tja in kliknite zeleno zastavo, mačka v resnici ne pozdravi, ker to je tisto, kar je notri to belo barvo. Kmalu bomo videli, da je to bela škatla je tisto, kar se imenuje Argument, ali parameter. To je način za spreminjanje vedenja, v tem primeru, puzzle kos, če pa bi rad povedal, točno to, kar sem rekel, pred, pozdravi, svet, lahko greste nazaj tja, kliknite igrajo, in "Pozdravljen svet", je tisto, kar je rekel. Tako smo se dobesedno programiranja zdaj. To pa še ni vse, da je nujen programa, najmanj pa to je malo bolj prepričljiv kot nekaj, kar je videti na na prvi pogled, kot je ta. In bomo lahko zelo hitro dobili vse bolj izrazite ker v nič, tako kot tudi v drugih jezikih, tam je vse vrste izjav, ne samo Povejte ali tiskanje nekaj, vendar lahko stvari, kot so čakali, kot smo pravkar videli z piškotek, nekaj več sekund. Igrate lahko zvoke v okolju Scratch samo kot si lahko v normalnem računalniškega programa zvokom igro. To lahko preverite tako imenovanih logičnih izrazov. Torej, zdaj, začnimo dodali na naš orodij nekatere terminološke ki dejansko nanaša na primer, da sta se Jožef in sem storil tukaj s temi nogavicami. Torej izjave so samo navedbe dejstev. Naredite to. Direktiva za Vilenjak, ali me človek, kaj storiti. Logični izraz je nekaj, kar ima vrednost, ti resnična vrednost, to je bodisi nič ali ena, napačne ali Res, izklopljen ali v ne ali da. Sploh ni pomembno, kako misliš o tem, ampak to je binarno stanje. Kot Nate razpravljali v video sredo, 2 različni stvari. Torej, Scratch, Boolovi izrazi se zgodi, da si kot ti modrih stvari tukaj, v tem primeru vprašanje Oznaka pomeni, da ste sprašuje vprašanje. Je mačka, ali sprite, dotakne se miškin kazalec? Torej, to je samo en primer Scratch bloka, ki se odvija nam omogočajo, da preveri, da ali ne, je miška dotika sprite na zaslonu? In to lahko bilo koristno, če si dejansko želijo delati stvari z miško. Poleg logičnih izrazov, imamo stvari kot je miška navzdol, tako da lahko zazna to vrsto vprašanje, kot dobro. To lahko storimo matematiko, če si dejansko želijo, in tam pravzaprav bolj prepričljivi uporabe za to kot le čistega aritmetično, kot bomo videli. Lažni naključja in tako svoj program se zdi, da mislijo ali se obnašajo drugače, temelji na nekaterih navidez naključnih vrednosti, in potem imamo stvari, kot Boolovih izrazov, kot so IN. Torej, če si dejansko želijo preveriti dve vrednosti, bomo videli v Scratch, da lahko dejansko preveriti, če je to Res, to je res. Na primer, v primeru mojih nogavic, lahko Imam hotelu Čisto na koncu vprašala, če je na levi nogavice in desni Izlemati se no, nehaj. Ti si vse naredil za dan, tako da bi bilo priložnost za to. Torej, gremo naprej in poskusite kos nekatere od njih skupaj in šel v nekaj primerih več prepričljiv kot je ta. Torej, kaj mi daj tukaj in odprli nekaj primerov da bo vedno na spletni strani seveda, kot tudi, in odpiranje hello2. Torej, v hello2 tukaj, imamo program, ki počne nekaj stvari, vendar to ne počne tako učinkovito, kot smo lahko. Torej, tukaj piše "Zdravo, svet" za eno sekundo, nato pa čaka za sekundo. In potem se je pa spet, nato pa ga spet ne. Torej, če sem kliknite zeleno zastavo, Scratch pravi: "Pozdravljen, svet. Pozdravljen, svet. Pozdravljen, svet. "In to je očitno kandidat za zdaj izboljšanje. Kaj je mejna izboljšanje, upajmo, lahko Zdaj bo, če Scratch podpira zamisel? Neke vrste zanke. Nekakšna ponavljanje, zdaj bi bilo lepo, da me pusti dejansko poskusiti. Naj dejansko šel in se tega. Tako lahko obvestilo odstranite blokov tako preprosto, kot jih lahko dodate jih priložite. Spustite me pod nadzor, se pomaknite dol, in sicer, tam je ta puzzle piece tukaj, ponavljanje in vedno in Če Forever. Torej je več načinov izražanja zanka konstrukti V Scratch. Tisti, najbrž hočeš tu ni vedno samo zato, ker sem rad bi se to zgodilo trikrat, verjetno pa se ponovi. Torej, kaj mi povlecite ponovi tukaj, povleci in spusti, in Zdaj, namesto da bi rekli "Hello, world" tri ločene dobave, Naj povlecite puzzle kos tukaj. In čeprav se ne zdi, da se prilega, program je pameten dovolj, da spoznaš, da bo rast izpolniti, zato je Oblike, ki so pomembne, in ne absolutna velikost. Naj spremeniti ponovitev na tri, zdaj pa me spusti naprej in povlecite Počakajte eno sekundo, se tudi tam. To se dogaja, da snap v kot dobro in sedaj bom povlecite ti fantje več kot le tu in jih vrgel proč, ker sem Ne potrebujemo jih več. Naj pomanjšanje in kliknete na zeleno zastavo zdaj, in imamo isti program, vendar, kot sem napovedal pred boljši zasnovan zato, ker si lahko predstavljate, kako slabo je ta program bi dobili, seveda estetsko, če bi morali začeti kopiranje in lepljenje, kopiranje in lepljenje, ali povleci in spusti istih prekletih stvari znova in znova. Zdaj pa samo rekel stvari na zaslonu, tiskanje na zaslon, res ni vse, da je zanimivo, tako da je odprto 3. varianca tukaj. In zdaj, ko boste videli, bo to kmalu dobili nadležno - [Mijav] DAVID Malan: - ampak to je tudi malo bolj sladek. [Mijav] DAVID Malan: Ok, tako da bolje in bomo lahko zagotovo uporabljati, da Enako prehod Trganje to gor v zanka strukturo, vendar naj bi bilo še bolj zanimivo. Naj gredo naprej in odprla 1/4 varianco tu, kjer sem da se stvari še korak dlje. Torej, glede na to, neumno, čeprav je to na prvi pogled pogled, kaj je ta program naredil? To se dogaja, mijav enkrat. Zakaj? No, ena je, kolikor vem, vedno manjše od dveh. Ni pojem naključja tukaj. Imam dobesedno težko kodirane 1 in 2, vendar je to Primer zdaj dejansko uporabo logični izraz. Podobno kot je Jožef naredil v svojem psevdokod, stisnila IF Vam je bil ujemanje nogavice naredite naslednje, tukaj imamo izraz, če je ta manjša od 2 POTEM - in v resnici smo celo malo zamika, če je nekoliko zamaknjena vijolično na desno - Nato boste za predvajanje zvoka mijav. Zdaj, v tem primeru, da je eden vedno manj kot dve, tako da je to je neke vrste odpadkov pogoj. Vendar pa bomo lahko, kot bomo videli, da bi zapolnili druge stvari v Te ograde, kjer 1 in 2 so zdaj. Torej, kaj je zdaj napredoval na primer 5 od teh več hellos in poglej, kaj je ta program bo naredil. Torej, zdaj, v angleškem stavku, kako to program obnašati? OBČINSTVO: mijavkanje polovico časa. DAVID Malan: polovica mijav je časa, tako da je to način prenos zelo preprosto idejo. Čeprav se zgodi, da se z uporabo nekaterih neenakosti tukaj V nekaj številk, to je res samo programmatical Tako natančen način, da bi rekel, če kovanca pride glave, pojdite naprej in mijav. Ali obratno, če je kovanec pride repe, ne mijav. In v tem primeru, kako izraziti to? Mi bomo izbrali naključno število od 1 do 10, in če je to število je manjše od 6, pojdi naprej in mijav. In kako se je to noter? Torej še enkrat, samo opazil povleci in spusti in stvari zaskoči. Torej, zdaj pa poglejmo, če je ta naključja deluje. Naj gredo naprej in kliknete na zeleno zastavo. [Mijav] DAVID Malan: Ok. [Mijav] DAVID Malan: Ok. Dobro, dobro, da imamo glave, glave, repe učinkovito. Repi. [Mijav] DAVID Malan: vodje. [Mijav] DAVID Malan: Sijajno. Vedno je neprijetno, ko dobiš samo statistično slabo teči, in to je vse glave in program dejansko ne deluje, kot bi si upajo. Toda tokrat je delal, in se zdi, da je, če smo To neskončno število krat, 50% kvote. Zdaj pa spet ne vsi, da je zanimivo, samo izdelavo mačke mijav, tako da vidimo, če ne moremo napredovati to malo dlje tukaj v različici 6. Torej, zdaj imamo zelo nadležno različico - [Mijavkanje vsakih nekaj sekund] DAVID Malan: - in to je tisto, kar je znano, splošno, kot je neskončna zanka. Torej neskončna zanka v tem primeru meni slabo. To se bo zagotovo začela opozarjati slabo, in še neskončno zanke ni vedno slabo. Lahko si misliš o kontekstu, v računalniških programih, kjer bi lahko dejansko želijo neskončno zanko? Ja? OBČINSTVO: Če želite preveriti stanje. DAVID Malan: V redu, če želite, da pregledajo stanje? Kot kaj? OBČINSTVO: [neslišno] DAVID Malan: Dobro, dobro, tako da, če ste imeli nek program, nekateri vrste avtomatizacije doma stvar, če želite, da stalno Monitor je nekaj zgodilo. Ali so luči? Ali morda zato, ker v luči imate časa, in hočeš, da gredo off, boste morda morali narediti nekaj znova in znova. In v resnici govorimo o ure, kdo od vas, ki so ure na vašem računalniku ali digitalne ure, to je neskončna zanka. Še naprej posodablja čas, ker je neprestano preverjanje in preverjanje ter preverjanje je čas spremenil, in če je tako, o moj bog. Ura je končno spremenil. Treba prikazati, da je vrednost za vas. Torej, ker večino časa neskončnih zank napaka, ali vsaj slabo odločitev design, včasih pa ne imajo svojo vrednost. No, pa še bolj napredovala tukaj za hello7. Torej, zdaj bo program dobil malo bolj interaktivne. Dovolite mi, da povečate tukaj, in še enkrat, to je tisto, kar je lepo O Scratch. In ga bomo uporabili za jasna, Scratch, samo danes in v naslednji teden problem določiti. Ampak v ponedeljek, smo se potopite v C. V tem programu sem, da ne, vedno, naslednje. ČE dotika miške - sedaj, kdo je ozadje tukaj? No, in obvestilo, da kdo izbere dol na dnu Pravica je mačka, sprite, zato naj te datoteke, to Program, zanj posebej. Torej, če je mačka dotika z miško, nato pa bo igrati to dol in čakati dve sekundi in ponovite oglas nauseum. Torej, gremo naprej in zadel igro. Nič se ne zgodi, če pa želim hišnih mačka zdaj, ne morem preprosto. [Mijav] DAVID Malan: Adorable. [Mijav] DAVID Malan: Ok, manj siten, ampak tudi postane dolgočasno, tako da gremo naprej in videli, če ne moremo injicirajte malo logike. To je bil primer sedem. Tu, v primeru 8, bomo uvesti drug pogoj. Toliko kot dobesedni razpotja, kjer lahko greste levo ali desno, lahko greš, stanje v programiranju jezik kot nič, ali pa bomo videli, C, lahko vam omogočajo, da iti v eno smer ali drugo prek ČE ŠE konstrukt. Torej, dobesedno, če se dotaknete miškin kazalec, ta bo imela določene zvoke, drugače se dogaja, da imajo ta drugi zvok, mijav. Zdaj, če lahko sklepamo iz imena teh zvokov, lahko Verjetno veš, kaj ta program naj bi pričarali ideja. Ta mačka je srečno meowing. [Mijav] DAVID Malan: Srečno, vendar ne zelo rad bi se dotaknil. [Steče] DAVID Malan: Torej, zdaj imamo mačka, ki bo kričati na vas. V redu, no, eden zadnji primer z mačkami tukaj, in Odprimo različice 9 o tem tukaj. Torej, zdaj imamo poleg najbolj moteč zvok, da sem lahko najdejo, tako da imamo mroža ali Sea Lion tukaj, ki se dogaja, da naredite naslednje. [SEAL BARK] DAVID Malan: Ok, tako da bo ta šel na dokler ne ugotovimo, kako ta program deluje. Torej ta čas, ta žival ima dve skripte, in kaj je zanimivo je, da te skripte se bodo za izvajanje vzporedno. Zato, ker se začnejo z enim klikom zeleno zastavo, To je kot se dogaja kot je ta, in oba programa začeli prikazovati enkrat, tudi če ste vedno zanka. Torej, v zgornjem scenariju, imam nekaj logike. Katere funkcije pa zagotavlja, da je tam zgoraj? [SEAL BARK] OBČINSTVO: [neslišno] DAVID Malan: Če je kaj? [SEAL BARK] OBČINSTVO: Če nemo nič, to se dogaja, da igranje zvok. [SEAL BARK] DAVID Malan: Dobro, dobro. Torej, če izključen, ne glede na to, ta oranžna stvar je nič, POTEM predvajati zvok lev morje in mislijo: "Oh, hi, "za dve sekundi. Zdaj pa ne vem, kaj je utišan, vendar nič pričara Ideja napačne ali dol. Torej, če je izključen napačen, tako da, če ni izklopljen, vztrajati igranje zvoka. V redu, torej, kako onemogočiti to stvar? No, pa si poglejmo na drugem scenariju tam. Drugi scenarij pravi iz izključen nič. Obvestilo je tudi oranžna, kaj pa je to Scratch barve bloki v istem odtenku, če je vrsta za logično povezani. Torej, tako kot je bil izključen gor na vrh oranžna, zato je izključen tukaj navedeno v oranžni blok. Ampak to je spremenljivka naloge, zato tako kot v algebra, imaš x in y in z, načrtovanja imate spremenljivke, ampak oni so na splošno - dajva premor za trenutek in ugotoviti, kako ustaviti to lajanje. Kako naj to naredim? [SEAL BARK] DAVID Malan: Ok. Ustavil se je. Ok. Torej, tako kot v algebri imate spremenljivke x, y in z, vendar programiranje, ob spremenljivk, kot so x, y in z na splošno frowned ker oni sploh niso izrazite. Nimajo semantični pomen in razlog, da je v večini programskih jezikov, lahko spremenljivke celoti oblikovanih imena ali besede ali besedne zveze, kot utišan, in sicer kaj počnejo. Torej, ta drugi scenarij je bil tudi vedno posluša, in je rekel, če je ključ, na tipkovnici tipko Space, je pritisku, vprašaj. Torej je stanje z Logični izraz, ki je bomo odgovoriti na vprašanje, ali po resnici ali neresnična, potem imam znotraj nje, če je pritisnjena tipka in prostor ČE izključen nič, nastavite na eno izključen, utišan ŠE nastavljena na ničlo. Torej, ta druga vilice v cestnem prometu, in obvestilo, kako Imam gnezdila dva IF razmere, je nemogoče preveriti, se Space pritisku, ker če je tako, ali sem rad šel ta Tako ali tako. In kako naj obrnemo vrednost izključen? Moram preveriti, ali je nič? Če je tako, da je eden, sicer bi bilo nič, da zato toggle njenih dveh držav. V redu, tako da imamo še nekaj teh temeljnih konstrukti. Imamo logičnih izrazov in zavedaš, preveč, so ne vsi, da ne poznajo. Dejstvo je, tukaj je hiter screenshot seveda Harvard je CS50 nakupovanje orodje in vsaka spletna stran tam, da ima polja in padec padale so res, ves ta čas uporabljam Logični izrazi. V tem primeru tukaj, če kliknete potrditveno polje poleg Tečaj je večji ali enak 4,5 ali isti zraven fakulteta, ti podate logični izraz. Pokaži mi tečaje, ki jih ta izraz je res. Ali pa na desni, ni v nasprotju s tečaji sem dosegljiv odvzem, če ta preveri, potem ja, ki ga želite preveriti ta pogoj pa želite prezreti. Torej, logični izrazi so nekako vse okoli, toda ko smo jih v pogojih, ali če pogoji, ČE Elses, ali pa lahko celo simulirajo globlje ravni, ČE ŠE ČE ŠE - tako da je nekako trikomponentne države. Lahko greš na ta način, ali ta način ali v to smer. Mi lahko vodijo gnezdijo stvari, da gredo v različnih smereh. Torej Scratch ima te zanke, kot vedno. Ima te funkcije, kot so Ponovitev 10, del končno število krat. Imamo možnost, da določijo zdaj spremenljivk, tako da v tem primeru Sem prijavljena na primer spremenljivko z imenom nogavice. Sem inicializira na 0, in to je še ena smer smo lahko prevzeli tukaj z Jožefom, pri čemer morda sem Samo slediti, koliko nogavice imam na in prenehanje program, ko te spremenljivke vrednost je 2. To bi bil še en način, da nekako posploševati problem in kaj počne znova in znova. No, gremo naprej in se zdaj uvede nekaj novih stvari. Torej tiste, ki ste pred programing izkušenj bo vem, da je veliko jezikov, imajo polja ali vektorjev ali seznami, in res, Scratch je kaj takega, preveč. Torej, da vidimo, če ne moremo vzeti stvari v naslednjo stopnjo tukaj. Če imam možnost, zdaj, s temi koščke sestavljanke v kaj dodati, tako kot besedo ali številko, na spremenljivko, ne morem začeli kopičiti stvari. In to je pravzaprav zelo apropos za stvari, kot so igre, Vloga-igranje iger, kjer ste nekako sprehaja nekateri fantazijski svet, zbiranje stvari, pobiranje, zaslužek točk ali podobno. Morda boste želeli slediti neke vrste zalog in res, da je tisto, kar eden od naših nekdanjih študentov tu naredili z nekaj, kar ti Fruitcraft RPG. Torej, naj gredo naprej in odprla to stvar tukaj, in Fruitcraft imamo ta svet gor na vrhu. Torej, naj gredo naprej in kliknete na zeleno zastavo. Obvestilo v zgornjem levem kotu je neke vrste inventarja. To je izvajal v Scratch, kaj bomo poklicali niz ali seznam, zdaj pa imamo to malo animacijo. Torej, tako kot smo začeli že v tej zgodbi piškotek ljubezni, in potem bomo napredovali na mačke in morskih levov, zdaj imamo lahko stvari, ki so še bolj interaktivni. In ta mali modri mož, lahko začnem gibati njegovega Malo doma tukaj. Torej izgleda, da ima izhod tukaj, tako da sem s pomočjo Puščice tipke, gor, dol, levo desno. In zdaj sem zunaj, tako da je tisto, kar sem prišel sem. Izgleda, pomaranče in celo takoj, ko se dotaknem oranžna, da dobi plopped v svoj inventar. Če grem tja do češnje, zdaj imam nekaj ostalo v mojem seznamu. In to je vse lepo in srčkan, ampak pomislite, kako zdaj ta se izvaja. No, imamo to idejo na seznamu, in to je očitno puzzle kos, ki si rekel, kaj želite dodati ji dodamo oranžna, dodamo češnje. Zdaj, kaj je to malo modro človek počne? No, on je sprite. In verjetno je oranžna in češnje - sami so bili ločeni sprites. In z uporabo pogojev v logičnih izrazih, je Študent je verjetno sposoben izraziti ČE modra fant dotik češnje, nato dodamo besedo češenj v njegovo inventar, nato pa tudi skrijete češnje sprite. Torej, pod pokrovom motorja, je verjetno še vedno je češnja sprite tam. Pravkar smo jo povedali, da se učinkovito neviden. Zdaj, če sem hodi tja, bomo lahko tudi to proksimalni stvar, če bom lahko šel in preberite znak. Torej, če moder fant dotika znak, lahko imamo to reči blok tako kot mačka govoril, da nas z besedami, hello, prej, "Got nekaj sadja? Prinesite s sadnim mestu. "V redu, zdaj, kot kaže, Imam svoje smeri. Lahko grem tam na mestu sadja, sem se postavijo v vrsto z vrati. Zdaj sem tukaj. Lahko grem do človeka, pri pultu. On odkriva, da sem mu blizu, tako da ni nujno, da se povsem enako dotika, in sem zmagal. Torej imamo Fruitcraft RPG. Torej lahko delamo še bolj napredno od tega. Mi lahko dodate zvoke. Mi lahko dodamo psevdo naključja. Mi lahko dodamo kompleksnost. Naj gredo naprej tukaj, in ne to sam, Naj vam pokažem eno izmed bolj zahtevnih vlog smo dobili lani iz določenega nekoga z imenom Blake. Lahko imamo enega prostovoljca, ki je udoben, prikazane na fotoaparat in je pripravljen za igranje igre? Kaj pa tukaj? Pridi gor. V redu, tako da se igra, da ste pravkar nevede javil, da igrajo - [APLAVZ] DAVID Malan: - je nekaj, kar se imenuje iz minulih dni "Frogger." Kako ti je ime? RENDA: Renda. DAVID Malan: Redna? RENDA: To je kot Brenda z b. DAVID Malan: Ok, Renda. David. Me veseli, da sva se spoznala. Torej, tukaj v "Frogger," in če bi lahko povečanje obsega samo malo, ti si to malo zelena žaba na dnu. Lahko uporabite levo, desno, navzgor in navzdol, in vaš cilj je, da čez cesto, čez reko, in dotik blazinice lilijama na vrhu. Ah. Ena več t - redo, v redu? Gremo stop. Nihče videl. [APLAVZ] [APLAVZ] DAVID Malan: Ja. Zelo dobro opravljeno. Odlično, hvala. Tako, da je bilo Frogger. Zdaj ko veste, kaj ste sebe spravil, ena bolj prostovoljec drugačna Igra vpisali drugega študenta. Hočeš, da gremo gor? Kako ti je ime? RICHARD: Richard. DAVID Malan: Richard. V redu, Richard, pridi gor. [APLAVZ] DAVID Malan: Imaš nekaj, kar bo zvočno znano kmalu, tako da tukaj je vaš navodila. Torej, v trenutku, nekateri kosi sestavljanke se bodo pomikajte navzgor Na zaslonu, ki izgledajo bodisi levo ali desno, gor ali dol. Vi boste morali zadeti puščice tako da ustreza tistim koščke sluznice z so ograde na vrhu. Torej, ko vidite levo puščico, in ga vodi z levo puščica zadela levo puščico. Lahko začnete. [MUSIC - "močnejša" Kayne WEST] DAVID Malan V redu, velik aplavz za Richardom. [APLAVZ] DAVID Malan: Zelo dobro opravljeno. Hvala. [APLAVZ] DAVID Malan: Tako zabavno in videz, nekako zastrašujoče, kot bi bilo za izvajanje nekaj tako videz prefinjene, kot to, da se zavedaš, študent ni določen, samo napisati vse to naenkrat. Namesto tega lahko razčleniti problem kot navidez zapleten kot je to v veliko manjše kose, in to, kar je prav bo tema. Najslabša stvar, ki jo lahko storite v pisni obliki programa v najbolj koli Jezik je, da se usedem, zares navdušena, pisati Celo prekleto stvar, in potem samo upam, da deluje tako, da Čas končate pisanje. Namesto tega mora proces načrtovanja splošno zelo premišljeno, zelo ponavlja, pri čemer si postavljeni zelo majhne korake zase, za grižljaj velike koščke hočeš odgrizne, in da imate te duševnega zdravja samem, malo mejnikov lahko izpolniti. In potem graditi na vrhu tistih, ki bi zagotovili večjo zapletene stvari še vedno. Torej, na primer, kako bi lahko šel okoli izvajanje igro, kot je ta? No, če sem odkrit, bi zagotovo začeli z le podpira eno tipko hkrati. Reciva izvajanje podpore za levo puščico. Tako študent moral nekako ustvariti v Photoshopu, ali v Scratch se z malo grafični urejevalnik, je smerna tipka, da izgleda kot eno na vrhu pustil tam, samo siva ogrado. Nato študent moral ugotoviti, kaj je x, y uskladila je zapisal, da če se ga v oknu. 0, 0 je gor, tako da boste morali ugotoviti število pik ali pik, za izravnavo te puščice iz na vrhu zaslona. In potem, ko je to na mestu, vaš program ne dejansko ničesar ni, tako da boste potem morali drugi sprite, za Na primer zelena puščica, ki je zapustil tudi Kazanje, in ti potem je treba začeti pisati nekaj skript za to. In ste opazili morda, da te stvari so začeli prihajati na z različnimi hitrostmi, in barve so v različnih lokacijah, in da je zato, ker študent uporabil malo psevdo naključnosti. In psevdo naključja, sem pomeni izbrati številko med nekaj in kaj, saj lahko začeti zemljevidu stvari, kot, če je število med 1 in 5, no, dajmo narediti nekaj zelene barve. Če je med 6 in 10, naredimo puzzle kos rdeče namesto tega. Tako dolgo, kot ste način proizvodnje neke vrste naključnosti, lahko nato odločitev, ki temelji na naključnosti. In pravijo, da pseudo naključno, ker obstaja malo umazano skrivnost. Računalniki, ne more dohiteti naključnih številk. To lahko storijo le tisto, kar si rekel, da zato, ker oni so umetna naprave. Ne moreš uganiti število ljudi, kot smo zanima moremo. Računalnik mora nekaj storiti za matematično zaklinjajo Iluzija matematično število, včasih z uporabo Trenutni dan časa kot prispevek k poskušal ugotoviti, kaj Število vrniti, ampak bolj o tem kdaj drugič. Za zdaj samo vem, da bomo lahko ustvarjajo psevdo naključja. Torej, ko sem imel možnost za levo puščico za začetek se pojavljajo v različnih časih in z različnimi hitrostmi, nato Lahko grem nazaj in dodamo nekaj od tega, če pogoji. Če je to sprite se dotika drugega, in puščico v levo tipka je pritisnjena - zato trije pogoji v tem primeru. Lahko uporabim, da blokirajo in morda v tem primeru - Nato želim iti naprej in prirastek rezultat. In na vrhu, imamo rezultat, imamo super, Cool, dobro in Boo. Torej je očitno, da je to pet spremenljivk študent uporablja za sledenje teh različnih meritev. Torej na kratko, končni rezultat je neverjetno. To je zabavno, da je zabavno igrati, to je vključevanje, vendar to ni kjer je študent začel. On ali ona se je začela ob precej manjši niz korakov. Torej, kaj so nekateri drugi gradniki, da smo lahko vezava v te programe? No, ta drugi koncept v večini jezikov, Scratch med njimi, znan kot niti. Torej, računalnik dejansko ne morem narediti več stvari čas, vsaj ponavadi ne. Nasprotno, na splošno ima računalnik samo en CPU, in še Čeprav so računalniki zelo hitro in lahko zato ustvariti iluzijo počne več stvari hkrati - preverjanje pošte, pridobivanje strank sporočilo, tiskanju - Res, računalnik je samo skakanje iz tiska do IMing za pošiljanje e-pošte, nazaj in naprej in naprej in nazaj tako hitro, da smo počasne neumen ljudje preprosto ne zavedajo, da je dejansko vodenje teh programov malo naenkrat. Zdaj je to malo bele laži v teh dneh, saj danes mnogi naši računalniki so tisto, kar se imenuje multi-jedro, tako da boste en CPU, ampak več jeder, ki je nekako kot ob več procesorjev. In tako včasih lahko računalniki resnično storiti več stvari naenkrat, ampak na splošno v programu, programi zanesejo na te stvari, imenovane teme. Torej nit je nekako kot mini program, ki lahko obstajajo poleg drugega miniaturni program in se lahko izvaja vzporedno, ali pa vsaj potekal v okviru te iluzije oni so hkrati teče. Torej Scratch podpira te stvari, imenovane teme. Lahko imaš več scenarijev izvršne naenkrat, tako kot mi naredil z levom na morje, in to nam omogoča, da dejansko nato pa so interakcije med temi sprites. Naj gredo naprej tukaj in potegnite navzgor, recimo, teme in igrajo takole. Imamo dve sprites, vsak od njih pa bomo videli Ima samo eno scenarij. In opazite, se zdi, da nekaj inteligence v mačka v tem 1 zato, ker je bližje - [Steče] DAVID Malan: - in bližje malo ptic. Torej, kako je ptica deluje? No, pa si poglejmo na ptico prvi. Ptica scenarij je dejal ob kliku na zeleno zastavo, pojdite x enak negativen 115 in y enaka 150. Zato sem pogruntal naključno mesto, kamor sem želel ptica za začetek, in sem ga plopped je privzeto. Potem Forever ČE ne dotika mačko, zato je to drugačna vrsta zanka konstrukt, ampak isto idejo, to ponoviti in znova in znova. Tako dolgo, dokler ne boste dotaknili mačko, premakniti tri korake in če si na robu, bounce, kjer je vrsta razmišljanje v smislu, biljard. Torej, to je, kako se ptica premika po vrsti navidez naključno, ampak to je samo zato, ker se odbijajo stene v tem primeru. Sedaj je maček, medtem, je neke vrste varanje. Mačka, ko je kliknil zelena zastava, ja, začne nekateri lokacija, naključno mesto - vsaj deloma, saj se po kramp naključno zelene blok tam - in potem vedno ČE dotika ptic, igra lev zvok, in potem stop scenarij. Torej, ko sem rekel, prekine ali zapreti prej, tam je uganka kos v Scratch, da bo le ubiti, da program na točko, saj je nekako logično narediti. Drugače pa je, da vidite, kaj se bo zgodilo. Točka proti ptice in premik za en korak. Torej je ta točka proti ptica je nekako prednost je mačka je v tem, da je v nastanitvi na premični ptice, in bomo lahko Zdaj bo ta program še toliko bolj zanimivo. Namesto, da bi se gibljejo en korak naenkrat na cikel CPU, na stavke davek na zvonec, tako rekoč, naj gredo naprej in premikanje, recimo, pet korakov hkrati kot mačka. Kliknite teči, sedaj pa ga res najde hitro. Če bomo to še podvojiti na 10 korakov, pa nekako gre prav za njega. Zdaj bomo lahko ptico, morda malo prednosti. Pojdimo na ptico in rekel, namesto premika tri korake, gremo ga 30 korakov. Ampak je dobil še vedno ujetih na koncu. Torej, tukaj imamo dve teme. To je zaprt v Scratch z dvema skripte in 2 sprites, vendar je zamisel v drugih jezikih, ki jih lahko pisanje, v bistvu preveč programov, kot je ta, in ima jih vodijo resnično ali imaginarily, vzporedno. No, tam je tudi ta koncept v programskem znan kot dogodke, in to je nekaj, kar ne bomo videli v C, je jeziku znano kot C. Bomo videli proti koncu semester V spletnem programiranju, ko uvajamo JavaScript in Pojem strani stavbe, ki so dinamične spletne in interakcijo z uporabniki. Torej, v tem primeru imamo zelo preprost primer 2 sprites, fant in dekle, od katerih vsak ima njuno teme, ampak nekako ti dve sta med komunikacijo prek za kaj se imenuje prireditev. Torej, naj gredo naprej tu in povečate scenarij fantove, ki izgleda takole. Ko zelena zastava kliknili, vedno naredite naslednje. Če pritisnete tipko Space, ali Space, recimo Marco dve sekundi, da je to zgolj estetsko na zaslon, malo govora mehurček, potem pa oddaja. Tako oddajanje je en kos na praske, da je Predstavnik razreda funkcije v programskem ki omogoča različne programe, različne teme, da komunicirajo med seboj, da bi nekako poslati sporočil, ena na drugo. Podaje kos papirja v razredu neke vrste nizko tech enakovredni. Torej oddaja dogodek. Ne morem poslati to sporočilo, in beseda dogodkov je popolnoma arbitrarna. Scratch včasih je ta padec padale, tako da sem prišel z naključno besedo podobnega dogodka, saj zdaj, kaj je deček ne ko pritisnem tipko, je bil ta dogodek oddaja. In če pogledam zdaj na scenarij je dekle, njen scenarij je super enostavno zato, ker vse, kar je potrebno storiti je, da ne deluje, če zelena zastava je kliknil. Ona je namenjen za ukrepanje, ko jo prejme, citiram, konec citata, "Dogodek", in na tej točki, ona je torej poslušate tako imenovani dogodek znova in znova. Takoj ko dobi ta dogodek, ona se dogaja, da kričati Polo za dve sekundi. In tako lahko morda sklepamo iz tega točno tisto, kar Naslednji rezultat bo. Naj kliknite zeleno zastavo. Nič se ne zgodi, ker moram narediti kaj? OBČINSTVO: Space Bar. DAVID Malan: Space Bar. Fant pravi Marco, dekle pravi, Polo. Vendar pa to ni težko kodirane po sebi. To je med komunikacija med scenariji, tako da zdaj smo imeti možnost, da bi še bolj zapletene programe, kjer ta dva sta nekako med komuniciranja. Torej, kakšne so smeri lahko naredimo to? No, v kompletu problema 0, res, je cilj zabavajte se z Scratch. Za hacker različico, boste namesto zabavali z več dovršena različica Scratch pozval BYOB, Build Vaše lastne pripadnosti, ampak ideja je ista. Boste lahko - Ja, to je bilo namerno. Prišel je iz Berkeley. BYOB je heker izdaja modela, vendar sta demografije, Standard Edition in Hacker izdaja kot popotnike, Cilj pri roki v prihodnjem tednu, je res samo, da se potopite v globoko, da se vaše roke umazane s programiranjem, in da kaj zanimivega, da je nekaj interaktiven, poskrbite, nekaj umetniškega, da kaj zabavnega, da se dejansko dokaže, da do konca tedna, da boste imeli projekt, ne samo za svoj prvi CS50 pset, vendar boste morali Nekaj ​​malega, da lahko pokažejo, da v Annenberg prijateljev ali celo družine z nalaganjem na spletni strani MIT. In tako kot sem dejal v sredo, pričakujemo, da bo 90% razreda, na splošno, ne standardne izdaje. Zavedam se, da obstaja tudi ta izhod za tiste, ki vas bi sicer lahko znajdete malo dolgčas z osnovami in res želim, da se potopite v obrti in vizijo ste že imajo s predhodnim ozadje na ta bolj prijazna okolje. Torej, kaj mi dvigni en drug primer, da je eden od naš bivši Študenti tukaj ni in povedal nekaj malega skozi pesem. To je podobno, kot je to igra, razmišljajo o tem, kako si šel o izvajanju tega programa z ravno ti isti gradniki, malo psevdo naključnosti, in Malo znano pesem. Če bi Povečati obseg le malo? [MUSIC - "dežuje Men" The Weather Girls] DAVID Malan: To je to, za CS50. Vas bomo videli v ponedeljek. [APLAVZ]