>> Parolanto: Mi estas [inaudibles].
Kaj mi estas altranga ĉe Leverett Domo.
Mi studas komputiko, kaj mi estas TF por CS50.
Kiel novulo, mi eĉ ne havos portebla aŭ inteligenta telefono.
Mi ne havis programado sperto.
CS50 estis la plej memorinda kurso kiu Mi prenis ĉe Harvard ĉar estis
lukto, sed estis vere amuza lukto samtempe.
Kaj mi faris multe da mirindaj, permanenta amikoj, kaj mi lernis multe da vere
aplikebla kapabloj.
Mi estas nur tiel kontenta, ke mi ne forliberigos Mian manko de fono esti ekskuzo por mi
Ne malbonuzu CS50.
Mi estas [inaudibles].
Mi estas altranga ĉe Leverett Domo, klaso de 2014.
Kaj mi prenis CS50.
>> DAVID Malan: Do ĉi tiu estas CS50.
Jen la fino de semajno nulo.
Kaj memoru kie ni komencis la lasta fojo, estis kun tiuj lampoj, kiuj estis
tiel populara, ke ni iris, kaj aĉetis iujn pli hodiaŭ.
Do mi kredas ke tiu estos nia afero ĉi jaro -
skribtablo lampoj se vi supreniru sur la scenejo, almenaŭ ĝis ni elĉerpis.
>> Sed ni uzis tiujn revokon, por enkonduki la fundamentojn de reprezento de datumoj.
Ni bezonis maniero por komenci reprezenti informo ene de komputilo.
Kaj la plej simpla maniero por fari tion estis kun unu ingrediencon, elektro.
Kaj la plej simpla afero vi povas fari kun elektro estas turni ĝin kaj ĝin.
Lasu la elektronoj fluas aŭ ne.
Kaj uzante tiuj du bazaj statoj, off kaj sur, aŭ falsaj kaj veraj, aŭ nulo kaj
unu, ni komencis vidi, ke ni povus konstrui supren, en ĉi tiu kazo, kun lumo
bulbojn, pli ol nombroj nur nulo kaj unu.
Ni rakontis tiel alta kiel sep, ekzemple, lasta tempo.
Sed ĉiuj ni devas fari estas subteni ĵetante pli kaj pli ampoloj en tiu
problemon kaj, vere, ni povas reprezenti iu numero kiu ni
povus eble volas.
>> Nu, ni transiĝintaj rapide tiam Merkredo al ĉi bajto de volontuloj.
8 bitoj estas kion ni ĝenerale nomas bajto, tial jen ni havis ok volontuloj
merkrede, kiuj kolektive estis reprezenti ok bitoj.
Kaj kiam iliaj manoj estis supren, ili estis unu.
Kaj kiam iliaj manoj estis malsupren, esas nulo.
Kaj ni havis tiujn ulojn supreniru sur la scenejo kial?
Kion ni povas fari kun ĉi tiu vico de bitoj?
>> Por krei alfabeton.
Ni povis konstrui sur supro de tiu antaŭa leciono lernita kaj reale
komenci fari pli interesa informon kiu estas almenaŭ pli
familiara al ni homoj.
Kaj ĉi tiu tuj estos _recurring_ temo laŭlonge de 50, sed ankaŭ komputilo
scienco pli ĝenerale, ĉi tiu ideo de layering, kie, je la fino de la
tago, se vi vere komencis la basics kun komputilo, jes,
ĝi estas nuloj kaj.
Kaj malsupre, ke ĝi estas nur elektro.
Sed ni tre rapide komencas preni tiujn malalta nivelo detaloj por donita
kaj komencos mantelon sur supro de pasintaj laboris farita por ke ni, finfine, por
Fine de la semestro kaj, vere, pli ĝenerale kiel komputikistoj
kaj programistoj, ĝi povas fari iun vere potenca aĵojn por utiligante laboro
ke ni mem faris kaj ankaŭ starante sur la ŝultrojn de aliaj.
>> Nun ni rapide transiĝintaj merkrede el nur neceso
reprezentas informon por voli fari ion per ĝi.
Do kion ni difini algoritmon kiel?
Serio de instrukcioj.
Do estas serio de instrukcioj, nombro de paŝoj kiuj vi, homo, aŭ
komputilo, pli tipe, ĉu ekzekuti unu post la alia por
por atingi iun celon.
Kaj ni havis kelkajn celojn lasta fojo, unu el kiuj estis por rakonti
homoj en la ĉambro.
Kaj alia tia ekzemplo estis trovi Mike Smith en telefono libro.
>> Do vi povas memori ke mi disŝiris telefono libro en duono super cxi tiu finas
trovante Mike Smith.
La celo de tiu vida estis pruvi, denove, ke ni estis
laŭvorte disŝiri tiun problemon en duono, la duono, la duono, kaj tre
rapide irante de kiel 1.000 paĝoj al nur unu solan paĝon.
Tiuj el vi kiuj maltrafis tion en Merkredo, mi pensis ke ni ludos denove
iuj bildoj de kion vi maltrafis.
Ni rigardu.
>> [VIDEO reprodukto]
>> -Tie ni iru.
1500 paĝoj, Nice pura linio, legitima larmo.
>> [FINO reprodukto de vídeo]
>> DAVID Malan: Por ke estis merkredo.
Ni transiro, tamen, merkrede nun voli reprezenti algoritmoj
en iu iomete norma maniero, ne nur priskribante ilin parole, sed
klopodi esprimi ilin skribe aŭ en komputila ekrano tiel ke ni povis
komenci plibonigi kaj modifi ili, kaj, eventuale, reale
analizi, kiom ĝentilaj aŭ kiel rapide ili estis.
>> Do ni enkondukis tiun nocion de _pseudocode_, kiu,
lego de terminoj, estas kio?
OK, vortoj.
Ni iru iom pli profunda ol tio.
Angla, certe, estas nur al kio fino?
Vortoj kun kiu por ĝin krei aŭ por reprezenti algoritmoj.
Do ne estas unu lingvo konata kiel _pseudocode_ en la mondo.
Estas nur ke vi, en la angla, aŭ kion ajn via parolata lingvo estas, uzi
speco de supraĵa skribmaniero transdoni ideon tre koncize.
Sed ni vidos, ke, certe kun Esperanto _pseudocode_, kaj rezultas
plej programlingvoj sin estas derivaĵo de la angla mem,
ni trovos ke ekzistas iu normo manieroj reprezenti _pseudocode_ kaj
ankaŭ programado kodo.
Do kiel vi komencos vidi eĉ la plej simpla ekzemploj hodiaŭ, realigi tiujn
sama ŝablonoj estos ripetas proksima semajno.
>> Do _pseudocode_ ia de lingvo simila
lingvo de programado.
Kaj la unua ekzemplo ni vidis vide notita estis tiun.
Ĝi estis nur tri paŝo programo, la celo de kiu devis kalkuli la nombron
de personoj en dormejo spaco por ke video sur merkredo.
Sed estis kelkaj interesaj aspektoj de tiu simpla programo.
>> Kaj ĉi tio estos _recurring_ temoj.
Do por tiuj, kiuj estas ne konas tiu, oni, ni enkondukis variablo.
Kaj probable ĉiuj en tiu ĉi ĉambro estas familiara kun variablo en la
kunteksto de algebro.
Sed tie en programado, variabloj ili, oni, povas esti
nomas ion ni volas.
Ni estis uzante n kiel vendotablo.
Sed ni povus uzi la vorton vendotablo, aŭ, kiel vi vidos, la plimulto de iu frazo, ke
vi eble tiel longe kiel ĝi estas priskriba, sed estas vere nur
stokado ujo.
Estas eron de memoro, iu numero de bitoj, kaj ĝi varias de komputilo, kiel
multaj bitoj estas ke formi tiu variablo.
>> Sed ni povas meti valorojn en ĝi.
Tiel nun, ni nur metis nombrojn.
Sed ni povas meti realaj vortoj.
Ni povas meti alineojn.
Ni povas enmeti bildojn -
nenion, vere, ni povas reprezenti kun nuloj kaj aĵoj, ni povas meti en
tiu pli alta nivelo nocio de variablo.
>> Do sufiĉe rekte plusendu tien.
Kaj tio estas linio tiu.
Sed ni tre rapide moviĝis el linio oni efektive faras
ion kun tiu variablo.
Kaj en linio tri, ni ĝisdatigis N. Ni incremented N. Sed ni povus skribi ĉi
kiom ajn da manieroj.
Sed eble la plej evidenta estas nur diri, aro N egalas al
kion ajn N estas plus 1.
Por ke estis nia pliigo.
>> Dume, estis buklo.
Kaj ĉi tiu, tro, estas probable bela intuicia.
Ciklo estas nur io en programo kiu okazas denove kaj denove, iuj
speco de ciklo.
Kaj ĉi tiu ŝlosilo frazon ĉi tie, por ĉiu, estas vere tre komuna tra plej
programlingvoj, inter ili ones ni vidos en la kurso.
Anytime vi vidas la vorton, ĝi tipe transdonas la ideon, ke
buklo, iu cikla, estas okazonta.
>> Sed estas interese observi unu aliaj sintaksaj detaloj.
La fakto ke tria linio estas fakte marĝeno esti batis la
spaco trinkejo kelkaj tempoj estas intenca.
Ĉar homa konvencio estas tia, ke, kiam vi faras ion denove kaj
denove, en buklo, kiel komencita sur linio du, vi indent ion kiuj apartenis
al tiu buklo ĝuste fari certe ke ĝi estas linio tri kaj ne, ekzemple,
linio kvar aŭ kvin, se ekzistus linioj por aŭ kvin, kiuj estas
parto de tiu maŝojn.
Do tiu simpla deŝovon transdonas tiu baza ideo.
>> Do ni aplikis tiun algoritmon, nun, al kelkaj ekzemploj.
Kaj jen, ankaŭ, simpla ekzemplo en la reala mondo.
Sed ĝi tuj estos reprezentanto de kiel vi irus pri provi vian
posedi pli kompleksajn programojn.
Vi provu kelkaj scenaroj, iuj reprezentantoj enigoj, kaj vidi, cxu vi
preni la deziris eliroj.
>> Do tiu ekzemplo havis du personoj sidis en la dormejo ĉambro.
Maldekstre estas tiu sama pseŭdo-kodo.
Kaj ĉi tiu estas ekrankopio el la tre lasta paŝo de la apliko de tiu
algoritmo al tiuj eniroj, kie Estis du homoj en la ĉambro kaj,
memoras, kiel ni tretas tra linioj unu, kaj du, tri, kaj du
kaj tri kaj farita -
de la fino de tiu algoritmo, ni havis ja kalkulis du uloj, kiuj estas
en la ĉambro.
>> Tial ni provis alian ekzemplon.
Kaj ni diris kion se estas nulo homoj en la ĉambro?
Ĉu ĉi tiu kodo ankoraŭ ĝusta?
Kaj efektive estis.
Ĝi simple tiel okazas ke linio du kaj, tiel, linio tri aŭ
ne tuj ekzekuti.
Ili ne tuj okazos tute ĉar ili estas simple ne aplikebla se
tie estas nulo homoj en la ĉambro.
>> Sed ne granda interkonsento.
Linio unu inicializado N por nulo, tiel eĉ se nur unu linion de tiu
programo fakte finas esti utila, ĝi ankoraŭ donas la ĝustan respondon, kiel
indikita de la oranĝo nulo ĉe la malsupro.
Sed tiam ni decidis ke estis speco de stulta algoritmo.
Ĝi estis sufiĉe malrapida.
Certe, mi povas fari du, kvar, ses, ok, dek, kiam
rakonti homoj en ĉambro.
>> Do ni tweaked la algoritmo, la _pseudocode_, diri, nun en linio du,
por ĉiu paro de personoj en la ĉambron, procedi al, en linio tri, pliigo
tra du en ĉiu ripeto.
Por ke estus laborinta tie por ĉi tiu paro de personoj en la ĉambro.
>> Sed tiam, se vi komencas pensi ĉi, kaj ĝi ne portas longe
rimarki, atendu minuton ĉi estas tuj rompos, ĝi rompas
je kio simpla kazo?
Se tie estas tri homoj en la ĉambro aŭ, pli ĝenerale, kiam tie estas
nepara nombro de homoj en la ĉambro, inkluzive de unu.
Ni devus perdi tiun personon ĉi tie, ĉar ne ekzistas tiaj paroj.
Do ni rapide direktis per anstataŭ enkondukante kion aldonan
programado konstruoj al la pseŭdo-kodo.
>> Do kondiĉo, ni nomas ĝin, aŭ branĉo.
Kaj ĝi estas signifis transdoni, vide, la ideo de branĉo, forkon en la vojo
kie vi povas aŭ fari tion aŭ, eble, ion alian.
Kaj efektive, ni direktas ĉi tiun problemon aldonante linio 4, dirante, vere, ĉe
la fino, se unu persono restas, tiam iru antaŭen kaj rigardas cxion speciala.
Do vi ordigi de speciala okazo ili, tiel paroli, tiel ke nun ni povas manipuli
ambaŭ para nombro da personoj kaj nepara nombro de personoj.
>> Nun estas ajna nombro de manieroj Ni povis esti esprimita ĉi.
Kaj sincere, mi ne povis jam estis eĉ pli nit postulema kiam ĝi venis al mia elekto de
Angla por la _pseudocode_.
Sed almenaŭ la spirito de la ideo estas transdonitaj.
Se vi transdonis ĉi tiun kodon al amiko kiuj ne estas en CS, aŭ ĝi neniam prenis
CS, prognozoj estas ili povis diveni, donitaj tri homoj en la ĉambron, kiel
kalkuli tiujn personojn bazita sur ĉi tiuj instrukcioj.
Kaj jen ĉio vere ni volas atingi kun _pseudocode_, iel
normigi kiel ni iras sur reprezenti ideojn tiel ke ni povas
komencis fari pli komplika aferon ankoraŭ.
>> Do, kiu kondukas nin tiam, hodiaŭ, al reala kodo.
Ni komencas plani hodiaŭ, kvankam en amika medio.
Kaj tiam ni transiro tre rapide pli arkaikaj sintakso, sed kiu
vi vidos, estas fundamente la sama kiel la ideoj vidos manifestita per
tiu alia lingvo hodiaŭ.
Ĝi simple tuj serĉos iom malsama.
>> Do anstataŭ nur nomas ĉi tiun kodon, mi estas tuj estos iom pli precizan
kaj diru, de nun, kiam skribante programo, vi skribas fontkodo.
Estas speco de kiel _pseudocode_.
Sed ni vidos ĝi ne estas speco de malfiksas kiam temas pri elekti la vortojn
ke vi uzas.
Kiam programado en lingvo, vi havas uzi la vortojn, la frazojn,
la sintakso, ke aliaj personoj decidis reprezenti
tiu aparta lingvo.
Do pseudocodes estas ĝis vi.
Reala programlingvo kiel C, kiel ni fine vidas, estas
normigita de aliaj personoj.
>> Nu do kiel ni iru pri skribado iuj fontkodo?
Nu mi tuj iros antaŭeniras kaj fari ĉi tion.
Mi tuj iros antaŭen kaj malfermi fenestron tie.
Pli sur tiu proksima semajno.
Sed ĉi tiu estas mekanismo nomata la CS50 aparaton.
Mi kuras peco de programaro sur mia Mac, kvankam vi povas fari la saman aferon
sur Vindoza komputilo, kiuj donas mi la iluzion kurante malsama
mastruma sistemo tute dekstre ĉi tie en fenestro sur mia Mac.
Mi ĵus plena projektita tiel vi ne reale vidi Mac OS nun.
>> Tiu estas mastruma sistemo nomita Linukso.
Ĝi estas tre populara.
Estas tre rapida.
Ĝi estas tre libera, kiu faris ĝin tre konvinka, speciale en la
komerca mondo.
Kaj pli sur tiu al la fino de la semestro kiam ni uzas Linukson sufiĉe
por ttt programado kaj hosting de reala retejojn kaj projektoj.
Do nun, nur scias ke tiu estas labortabla ke tio signifis por rigardi pigre
familiara al Windows kaj Mac OS.
Ĝi nur havas iom malsamajn nomojn kaj ikonoj por aĵoj.
Sed tio estas la tn CS50 aparato, virtuala maŝino kiu,
proksima semajno, vi infanoj estos kuri ene de fenestro en
viajn proprajn Mac aŭ PC.
>> Por hodiaŭ, mi tuj malfermos la plej simpla de programoj.
Ĝi nomiĝas gedit.
Kaj tio estas nur grafika redaktilo.
Estas speco de kiel Microsoft Vorto, sed simpla.
Estas speco de kiel teksto redakti aŭ notepad.
Estas nur tre simplan programon kun kiu skribi vortojn sur la ekrano.
Ĝi simple do kion okazas ke se mi savos dosieroj, ke mi krei kiam ĉi programo
en speciala kromprogramo kiel. c, anstataŭ de. doc, aŭ. XLS, aŭ kion ajn
vi konas, mi povas vere krei programojn uzante eĉ tiu simpla
tekstoredaktilo.
>> Do lasu min fari tion.
Lasu min antaŭeniri kaj savi ĉi fajli unue kiel hello.c.
Kaj denove, ĉi uzantinterfaco volo familiara al vi rapide.
Sed por nun, mi nur tajpas en dosiero nomo.
Mi tuj savos ĝin en mian John Harvard hejma dosierujo.
Kaj nun mi havas ĉi langeto kiu indikas Mi ja redaktado
dosiero nomata hello.c.
Do nenio tro interesa ankoraŭ.
>> Kaj nun ĝi estas tuj akiri sufiĉe kamufla.
Mi tuj zomi, nur tial estas pli videblaj.
Kaj mi tuj komenci tajpi inkluzivi stdio.h, int main, malplena, malfermita krispa
streĉa, unu, du, tri, kvar spacoj de deŝovon, presita f, por presita
io formatan, citaĵo unquote, "Saluton, mondo" backslash, n, proksime
citaĵo, fermitaj parentezo, punktokomo, eniri Retropaŝo, Retropaŝo, Retropaŝo,
Retropaŝo, fermita krispa streĉa -
Mi planis.
>> Bone tiel ĉi estas super simpla programon, vere, la programo kiu
neniu dividu programado kun.
Kaj ĉiuj faras, por ĝia tuta komplekseco, estas presi la
ekrano, divenu kion?
Saluton mondo.
Sed ĝi ne estas sufiĉa nur verki programon.
Do tiu estas kodo.
Ĉi tiu estas fontkodo en lingvo nomata c.
Ĝi savis nuntempe en dosiero nomata hello.c.
>> Nun rigardu la malsupro de la ekrano tie.
Pli sur ĉi, denove, en la semajnojn por alveni.
Sed ĉi tiu estas kion ni nomas fina stacio fenestro.
Estas palpebrumante, nigra kaj blankajn prompto.
Ĝi estas speco de malnova lernejo interfacon al komputilo kiu ĝenerale ne
uzi muson aŭ aliaj grafikaj elementoj.
Ĝi nur uzas vian klavaron.
Kaj mi povas tajpi komandojn en ĉi palpebrumante prompto.
>> Kaj por la hodiaŭa intencoj, mi estas nur tuj tajpi la sekvan -
fari saluton.
Kaj tiu programo, fari, estas nur Programo kiu, en la reala mondo tiuj
tagoj, ni estus duoble klaku.
Sed en ĉi tiu interfaco por hodiaŭ, ni estas tuj tajpi lian nomon en ĉi prompto.
fari saluton estas laŭvorte tuj faru por Mi programo nomata saluton.
Kaj tuj fari tion per rigardado por dosiero, nur
Implicite, nomata hello.c.
Ĝi tuj supozi Mi volas C-programo laŭ sia naturo, pri tio kiel komputilo
estas agordita.
>> Do mi iras antaŭen kaj batis eniri.
Mi vidas iujn kamufla eligo, sed ĉi fariĝos tro
familiara antaŭ longe.
Ĉi tio okazis por kuri tradukilo, pli sur tiu en momento, nomita Clang.
Sed nun, mi havas nur alia palpebrumante instigas.
Kaj mi povas antaŭeniri nun kaj tajpu dot slash, por neinteresa kialoj ni instruos vin
revenu al proksima semajno -
saluton.
>> Do ĉio ĉi penado ĝis nun nur por skribi la plej simpla de programoj kiuj,
kiam mi batis Enter, faras tion.
Do mi skribis mian unuan programon.
Do mi intence ŝovas amuza en ĉi tiu tre simpla programo
por kelkaj kialoj.
Unu, estas malfacile akiri ekscitita pri preni klaso se
tio estas la fino ludo.
>> Sed pli ol tio, ke estas multajn distrojn ĉi tien.
La unua fojo vi lernas al plani, por tiuj el vi malpli komfortaj, kaj
ecx mi, tie en la tago, kiam mi unue vidis iun kiel ĉi tio - vi povas speco
de figuro kiu, bone, tiu estas en presita saluton mondo.
Sed estas tiom distro.
Estas tiel sintakso sur la ekrano kiuj metas sur la vojo de tre
simpla, alie simpla, ideojn.
>> Do kion ni faros hodiaŭ estas ni tuj metos flanken C kaj venu
reen al tiu lundon.
Kaj ni tuj uzi grafikan programlingvo nomas Scratch.
Tio ĉi estas programlingvo, kiun mi aluditaj merkredon, ke okazas
por permesi al ni fari la sama klaso de aĵoj sed turnas la okulojn, ĉar hodiaŭ,
al la frizita krampoj, la krampoj, la punktokomojn, kaj ĉiuj tiuj stultaj
distroj kiu alvenas en la maniero, en tiu unua tago, de iuj bazaj, sufiĉe
interesaj ideoj.
>> Do al tiu celo, mi tuj iros reen al mia labortablo super tie kaj
enkonduki vin en la alternativo por ke programo, kiu tuj aspekti
iom ion lumon ĉi.
Tiel estas kiel ni tuj planas akcepti sama programo hodiaŭ - du puzlo
pecoj ke, kiam interkroĉitaj kaj alklakis, diros al la mondo,
saluton mondo.
>> Do ni vere iras tien.
Do mi tuj iros antaŭen kaj malfermi retejo konata kiel scratch.mit.edu.
Kaj tio kondukos min al tiu retejo tie.
Anticipe, mi ensalutinta en tiun retpaĝo kaj la unuaj problemoj kiuj
marŝos vin tra kelkaj el tiuj paŝoj.
Mi tuj iros antaŭen kaj klaku sur mia nulo dosierujo tie.
>> Kaj tion tuj montros min iuj projektoj kiujn mi havas
fakte kreis anticipe.
Kaj ĝi rezultas ke ĉi grafikaĵo programlingvo ne nur tuj
al ni programon trenante kaj delasante tiuj puzlo pecoj, vi
eĉ ne bezonas specialan programaron.
Ĝi estas ĉiuj enigita ene de retumilo tiel ke vi povas fari tion, en teorio, sur
viaj komputiloj nun, kiel kelkaj el vi Povas esti, eĉ sen bezoni
programaro kiel la CS50 aparato, kiu venos proksiman semajnon.
>> Do mi tuj iros sur la supron angulo tie kaj alklaku Kreu.
Kaj post momento mi iros akiri malplenan ekranon per kiu mi povas komenci
programado en ĉi grafikaĵo programado medio.
Sed ĉi tiu tempo, ĝi tuj estos multe, multe pli simple efektive fari tion.
Do, en nur momento, kiam la Wi-Fi kunlaboru, ni nun havas tiun ekranon.
Tiel rapida parola tour, sed mi kuraĝas diri, certe kiam vi plonĝi en la
unua problemo aro, vi trovi ĉi ĉiuj tre
atingebla kaj honeste intuicia.
Sed ni pentri mensa bildo por nur momento.
>> Do sub ĉi prompto dirante save ŝanĝoj, vi estas por vidi nulo.
Tio ĉi estas sprite.
Estas karaktero.
Kaj li vivas sur kion ni nomas etapo, tiu granda blanka ortangulo sur
kiu povas movi supren, suben, lasis, Bone, kaj do, vere,
aliaj specoj de agoj.
>> Dume, en la mezo de ĉi tiu uzanto interfaco, ni havas tutan faskon da
enigmo pecoj.
Kaj vi vidos, kion ili diros aĵojn kiel movi 10 paŝoj, plenumis 15 gradoj,
punkto en certa direkto.
Sed estas kategorioj de blokoj ĝis tie ankaŭ.
Do, se mi iras al Looks, vi vidos ke ekzistas aliaj puzlo pecoj kiuj
ŝajne rakontos ĉi cit al diri saluton, pensi, montri
sin kaŝas sin.
Se mi iros Sonoj, rezultas ekzistas manieroj ludi sonojn kiel meow,
halti ĉiujn sonojn, ludi tamburon.
>> Do, longan rakonton, tie estas tuta faskon da puzlo pecoj kiuj permesas al vi
por diri al tiu kato, aŭ ajnan numeron de aliaj karakteroj, kion fari.
Sed por fari ĉi tiu tuta okazos al vi bezonas komenci programado.
Kaj ĉi tiu granda blanka skatolo, aŭ griza skatolo, sur dekstre mana flanko, ĉi tiu estas kie
Mi tuj efektive treni kaj faligi tiujn puzlo pecoj.
Tio estas mia celo teksto fenestro ekvivalento.
>> Do mi tuj iros antaŭen kaj klaku Kontroli en la mezo.
Aŭ pli ĝuste, lasu min eltiri sub Eventoj.
Sub Eventoj benko, vi rimarkos malmultaj aferoj, kiuj estas intence
kurbigita sur supro en tia maniero, ke ili probable ne interplektiĝas en la
supro de la puzlo pecoj.
Kaj tio estas ĉar ili demark la komenco de programo, la komenco de
skripton, tiel diri.
Do, se mi iras antaŭen kaj treni, kiam verda flago klakis super ĉi tie, kaj tiam mi
volas ke tiu kato diri io, unue.
Do mi tuj iros sub la aspektas panelo.
Kaj mi tuj iros antaŭen kaj kaptas la saluti bloko, kaj trenas, kaj malfiksi,
kaj liberigite tiel ke ĝi aŭtomate interlocks tie.
>> Kaj tiam rimarkos mi povas klaki sur la teksto.
Kaj mi povas nuligi ĝin por esti pli specifaj ŝatas, diru, saluton mondo.
Kaj nun ni havas la programon ke mi asertas estas ekvivalentaj al tio multe pli
arkaikaj programo implementado en C antaŭ momento.
>> Se mi transiru nun al la maldekstra flanko, rimarki tie estas granda halto signo
kaj granda verda flago.
Lasu min zomi por klareco.
Kaj kiam mi nun klaku ĉi verdan flagon, vi probable povas diveni kion tiu unua
programo estas nun tuj faros.
Do, ankaŭ, ni programado, sed ni ne efektive ekuzi enkaĉiĝis
en iu de tiuj sintaksaj, minuto detaloj.
>> Sed ni provu ion Iom pli interesa.
Permesu al mi iri en mian Scratch dosierujo tie.
Kaj fakte, lasu min lasu min malfermi apartan programon ĉi tie por nur
momento, Maksimumigi tiu fenestro, Arkivo Open, kaj mi tuj iri en la hodiaŭa
fonto dosierujo.
Kiel ĉiam, vi trovos, hodiaŭ kaj antaŭen, ke ĉiuj de la hodiaŭa ekzemploj
estas atingeblaj ene de la kurson de afiŝinto.
>> Kaj mi tuj iros antaŭen tien kaj elpiku supren iom ion malsama.
Ĉi tiu tie ĉi, por kiu Mi bezonas volontulo.
Kiu ŝatus skribotablon lampo hodiaŭ?
OK, kiom pri iu iom - vi estas je la fino?
Venu malsupren.
Nun, ĉu vi ŝatus partopreni, aŭ nur diru komencu per la skribtablo lampo?
>> Vanessa: [inaudibles].
>> DAVID Malan: okej.
Bonega, kio estas vi nomo?
Vanessa?
Davido.
Nice to meet you.
Do venu supren kaj Vanessa la irante preni la kontrolon de mia
klavaro por nur momento.
Kaj kion mi faris ĉi tie, nur por momento la sake, kiel mi rimarkis la
Wi-Fi estis iom malrapida, Scratch, la programado medio kiu ni estas
uzante, povas ankaŭ esti elŝutita kaj kuri sur via loka komputilo.
Do kion mi faris, anticipe de konferenco, en kazo ke okazas, estas mi elŝutis
ĉiuj dosieroj ni volis ludi kun tiel ke ili povas kuri iomete pli
rapide ĝuste ĉi tie en mia tekkomputilo.
Tial do, nun mi vidas Mac-specifan interfaco.
>> Do mi tuj iros antaŭen kaj malfermu ĉi tiu.
Mi tuj iros antaŭen nun kaj plena ekrano la fenestro.
Kaj kiel vi vidas, ni povas tre rapide, kiel tiu studento faris, unu el
viaj antaŭuloj, iri de saluton mondo al multe multe pli konvinka
apliko.
Do jen la instrukcioj.
Ho, kaj ni havas unu alia afero.
Mi pensis ke estus amuza, de kiam, normale, ni povas ruliĝi
ĉambroj ĉi vojo.
Mi pensis ke estus amuza se, Vanessa, ni povis vidi la mondon
per viaj okuloj.
Do jen ni havas iujn Google Pokalo.
>> [Mirigis GASPS]
>> DAVID Malan: ni nur povas doni for skribtablo lampoj hodiaŭ.
>> [Ridado]
>> Do mi cue ĉi supre.
Bone, do tuŝi ĉi.
OK, Pokalo, gravuri video.
Bone, Vanessa?
Nun, kiel flanken kiu havas nenion fari kun Scratch, se vi rigardas
iomete supren kaj dekstren, vi vidos la laŭvorta vitro, kaj vi devus
vidi iom rektangula fenestro.
Vi devus vidi ĉiujn viajn samklasanoj esti filmado ĝuste nun?
Jes.
>> Vanessa: Jes.
>> DAVID Malan: okej.
Por ke estas bone.
Ni liberigas tiun materialon poste.
Nuntempe, turnu vian atenton al la ekrano tie.
Kaj kion via antaŭulo faris estas metu iom instrukciojn sur la ekrano
nur uzante farbo programo.
Do vi iras al, en momento, premu la spaco trinkejo por komenci.
Kaj tiam iuj puzlo pecoj iras komenci movi supren la ekrano.
Kaj vi volis bati la sagoklavoj, nur kiel en reala DDR, en konsento
kun aĵoj tegante supren kun tiuj sagoj.
>> Vanessa: okej.
>> DAVID Malan: Vi ludi ĉi antaŭe.
>> Vanessa: Jes.
>> DAVID Malan: Bone, Vanessa, antaŭeniri kaj forportu.
>> [MUZIKO - KAYNE OKCIDENTO, "pli forta"]
>> [Aplaŭdo]
>> DAVID Malan: Do ni nun paŝon al tio.
Do klare, ke estas la fino ludo.
La fino ludo ne estas saluton mondo.
Sed vi ne devas nepre fari aferoj kiuj estas tiel interaga.
Vi povas ankaŭ fari kuraĝigo.
Do ekzemple, alia de via posteuloj faris tiun programon tie,
kiu rakontas historion pli ol ĝi implementado ludo.
Do lasu min antaŭeniri kaj malfermu ĉi tie programo en nia sama fonto dosierujon
de hodiaŭ.
Ĉi tiu alvoko, kaj ni komencu kun, biskviton amo.
>> Kaj ne fari ĉi tro akademiano, sed, kiel vi rigardas ĉi tiu, opinias
mem kiu el tiuj simplaj programado konceptoj ni parolis
pri tiel multe -
variabloj, kaj maŝojn kaj kondiĉoj, ne via antaŭulo probable uzas nur
apliki kelkaj el la visualizaciones.
Vi vidas tie.
Do mi donos al vi A kuketon amo.
>> [MUZIKO - VERDA TAGO, "Holiday"]
>> [CRASH]
>> [MUZIKO - la testudoj, "HAPPY KUNE"]
>> DAVID Malan: Bone, do tie, ni havis kuketon amo.
Sed eĉ tie -
>> [Aplaŭdo]
>> DAVID Malan: Bone, eĉ tie, pensi, kiel tiuj koroj iris de
la fundo al la supro de la ekrano, tie estis efektive iom de
hazardo okazas.
Kaj efektive, ni vidos, ke eĉ en la simpla de medioj, kiel
Nulo, kiel en C, oni povas generi hazardaj nombroj, aŭ la iluzio de
hazardaj nombroj, por ke la ludo estas iom pli interesa ol ĝi povus
se vi havus absolute malmola koditaj ĉion.
>> En la movado, kiun vi vidas, ekzistas ia respondemo.
Tuj kiam la gingerbread viro tuŝas la gingerbread virino, ŝi
ŝajnas malproksimigi.
Kaj do, ja, vi povas efektivigu, plej programlingvoj, la nocio
de eventoj, per kiu, se unuflanke tuŝas Aliflanke, tio povas provoki iun
de via fontkodo al fakte ekzekuti.
Vi povas aŭskulti por tia aĵoj en la ekrano.
>> Do ni prenu rapida ĝiras, tiam, de kelkaj el la blokoj ni povas uzi
por atingi iun el ĉi tiuj celoj.
Do jen kion ni nun voki komunikaĵo.
Komunikaĵo okazas al esti purpura Nulo, iom io tiamaniere,
sed tio estas arbitra.
Komunikaĵo estas nur puzlo peco aŭ, pli ĝenerale, instrukcio, ke
rakontas la komputilon fari ion, komunikaĵo.
>> Do jen simpla specimeno.
Diru saluton mondo.
Alia povus atendi unu sekundo.
Do tiu enigmo pecon, kiu estas subtenata en Scratch, ni lasu vian
karakteroj paŭzo por kelkaj numeron de duaj.
Ĉi tio, ankaŭ, estas nur deklaro.
>> Ĉi tie sekva, ni havas alian pli interesa, ludi sonon meow, kaj
la malgranda sago signifas ke en Scratch, ĉi tiu estas falmenuo.
Do vi povas importi sonoj.
Vi povas registri sonojn kaj fari aliajn amuzaj aferoj en Scratch.
Kaj, ankaŭ, kvankam, fine de la tago, estas nur deklaro.
Sed nun ni enkonduki pli interesa peco, kiu scias kiel
Bulea esprimo.
Ĉefurbo B, nomis post membro nomata Bool.
>> Kaj Bulea esprimo estas nur enigmo peco aŭ, pli ĝenerale,
peco de informo kiu estas ĉu vera aŭ malvera -
unu aŭ nulo, jes aŭ ne.
Do estas nur unu el tiuj, du kontraŭuloj.
Do unu tia Bulea esprimo en la mondo de Scratch aspektas kiel tiu blua
enigmi peco.
Kaj ĝi estas demandi demandon, muso malsupren, kaj tio povas ĉu esti, de
Kompreneble, vera aŭ malvera.
Do kun ĉi tiu enigmo pecon en Scratch, bone, vi povos detekti se
enigmi se la muso estas, fakte, estante tenis malsupren de la homa interagantaj
kun via programo.
>> Ĉi tiu estas iom pli abstrakta, sed tiuj du blankajn skatolojn
estas nur por nombroj.
Do vi povas fari tion kiel estas tiu nombro malpli ol la aliaj?
Kaj se jes, Scratch kondutos unu maniero aŭ alia.
Ĉi tiu estas iom pli grafika.
Ĝi estas se la sprite, se la kato, ĉar Ekzemple, estas reale pri la
muskursoron.
Do se la malgranda sago kapo ŝvebis super la kato, tiam ĉi tiu
enigmo peco taksos al vera.
Estos vera, en kiu kazo, se vi uzi ĉi Bulea esprimo, kiel ni instruos vin
vidi en momento, en branĉo, vi povas ĉu fari tion, aŭ vi povas fari tion,
multe kiel ni havis kondiĉo ke kontrolis, ĉu estas pli lasta persono
en la ĉambro?
Se tiel, aldonu unu.
Alie, ne maltrankviliĝu for.
>> Do Bulea esprimo povas ankaŭ esti kaj-ed kune aŭ or-ed kune.
Do vi povas kombini Buleaj esprimoj kaj diru tion kaj tio devas esti vera por
la tutan aferon al esti vera.
Kaj ĉi tie estas pli reala mondo ekzemplo.
Se vi uzas CS50 Kursoj fari kurson butikumi, tiuj ĉekon skatoloj
tie, kie se vi kontrolu ke skatolo sekva al kursoj, kiuj diros, jes,
nur montras min kursoj por kiu la Q valoro estas 4,5 aŭ supera.
Se vi malmarku gxin, ne, ne maltrankviliĝu pri tio.
Aŭ simile, dekstre, cxu ne Konflikto Kun Kursoj mi Prenante,
tio estas aŭ vera aŭ malvera.
Estas nur Bulea esprimo.
Do tiu tuta tempo, kiam vi jam uzata retejojn kun ĉeko skatoloj, vi estas nur
toggling la ekvivalento de Bulea esprimo por sezonoj.
>> Do en kia formo vi uzas ĉi tiujn?
Nu, en Scratch, ni vidos en momento ke estas kondiĉoj kiuj
aspekti kiel ĉi tio.
Kaj tio estas speco de saĝa ĉar multe kiel en _pseudocode_, ni dentado
la varon de U-forma puzlo pecoj, signifi ke io ene de tiu U estas
tuj ekzekuti, aŭ ne, depende de kie ĝi estas.
Do se Bulea esprimo, tiam kion ajn estas ene estos get ekzekutita.
>> Dume, tie estas se / alia bloko.
Do se vi volas branĉo kiu iras ĉi vojo aŭ kiu, Scratch donas al ni tion.
Kaj per tiu logiko, nun, eĉ se tiu enigmo peco estas klare tro malgranda
al kojno io en ĝi, la nulo puzlo pecojn, ili estas
nur tuj kreskos.
Kiam vi treni kaj faligi super io, ĝi nur kreskas por ĝustigi kion
estas vi provas fari.
>> Do ni povas preni du el tiuj rajtoj kaj fari tri maniero forkon en la vojo tiel
kiun oni aŭ fari tion, aŭ ke, aŭ tiu alia afero nur nestumado ilin
en tiu vojo.
Kompreneble, se vi faros tion tro multa, ĝi komencas akiri malbela.
Sed je tiu punkto, vi estas vere probable ne programado tre bone.
Kaj por ke estos _recurring_ temo ankaŭ, ke de stilo.
Ĝuste kiel bone vi vere formati via kodo?
Aŭ kiel bone vi desegni via kodo?
Sed pli en kiuj en la estonteco.
>> Kaj nun ni havas maŝojn.
Estas agrabla por ĉiam buklo en Scratch kiu laŭvorte signifas ke - fari
kion ajn estas ene de ĉi denove, kaj denove, kaj denove.
Vi povas esti pli konkreta, kaj diru: fari la sekva 10-foje.
Vi ankaŭ povas uzi variablojn.
Vi povas veni kun ajna nomo en tiu iom gutigas kaj diros, donu al mi
variablo nomis n kaj starigis ĝi egalus al iu valoro.
Kaj tiam vi povas havi funkcioj.
Sed pli sur tiujn en nur momento.
>> Lasu min reiri al mia Skrapi interfaco.
Kaj lasu min iri antaŭen tiu tempo.
Kaj ni iru antaŭen kaj malfermu, diru, ekzemplo de -
ke estas iom pli interesa.
Permesu al mi iri antaŭen, kaj, fakte, lasu min nur faros ĝin mi mem.
Mi ne bezonas malfermi ĉi tiu.
Permesu al mi iri al dosiero, Nov.
Mi tuj iros al Eventoj.
Mi tuj iros al kiam verda flago klakis, kaj mi tuj iros al Sono.
Kaj mi tuj treni kaj lasi ĉi enigmo peco, ludi sonon meow.
Ĝi picaportes kune.
Kaj nun se mi klakas la verdan flagon -
>> [Meow SOUND]
>> DAVID Malan: Adorable.
Bone, do nun ni faru ion iom pli logike nur por pruvi ke
ni povas, por nun.
Mi tuj unlatch tiu de tiu ulo.
Mi tuj iros al Kontrolo.
Kaj mi iros por rabi kondiĉo.
Do, se io tiam.
Do jen kiel aspektas tie.
Do mi bezonas Bulea esprimo.
Kaj lasu min antaŭeniri kaj diru: lasu min iri al Operatoroj.
Mi tuj fari ion iomete Mathy, nur por piedbatoj.
Mi tuj iros ĉi tien kaj diros, se io estas malpli ol iu alia,
antaŭeniri kaj fari ion.
Do nun, vi scias kion, hazarda bloko.
Do rimarki kiel, se mi ŝvebi super ĉi aferon ĉi tie, tio estos kapti en tie.
>> Do nun, avizo, mi komencis fari io jam pli logike
interesa.
Se hazarda nombro inter 1 kaj 10 estas malpli ol, ni diru ses.
Se mi elektas ses, kiu esence pere, faru la sekvajn kun 50%
probablo.
Estas kiel klakanta monero.
Nun, mi povas fari ion kondiĉe.
Kaj ke iu kiun mi tuj fari estas ludi la sono.
Do nun, kiam mi klakas sur la ekrano flago, estas kiel ĵetanta monero.
>> [Meow SOUND]
>> DAVID Malan: Estis kapoj aŭ whatnot tie.
Ni faru tion denove.
>> [Meow SOUND]
>> DAVID Malan: Kapoj denove.
>> [Meow SOUND]
>> DAVID Malan: Kapoj denove.
Phew, OK.
Vostojn tiu tempo.
Do 50% de la tempo, se ni tion malfinie longa, ni ricevos 50% meows
kaj 50% silentigas.
Do, nur bazaj konstruaĵo bloko kiu permesas nin fari tion.
Sed tio estas speco de teda, ke mi devas teni klakante ke butonon.
Do ni simple treni kaj ĵeti ĉiuj el tiuj for.
Se vi trenis ilin en la mezo, ili devos nur forigi sin.
>> Permesu al mi iri kontroli.
Permesu al mi iri al ĉiam.
Kaj ĉi tiu fojo, mi faros io minorly ĝena.
>> [Ridado]
>> DAVID Malan: Kaj lasu min iri antaŭeniras kaj fari kontrolon.
Atendu dua, nur tiel ĝi ne estas tro kradon.
>> [Meow SOUND]
>> DAVID Malan: Tio ne estas natura.
Akcepti.
>> [Meow SOUND]
>> DAVID Malan: Kaj avizo kio, nice pri Scratch, por tiuj el vi, kiuj
havi antaŭan programado sperto, vi Ne necesas komenci kaj ĉesi.
Vi ne bezonas kompili.
Vi nur ŝanĝi ĝin, kaj la programo adaptos dinamike.
Do tiu estas prenanta iom interesa.
Sed ni prenu unu pasxon plu.
Lasu min kaj akiri senigi de tiu programo.
>> [Meow SOUND]
>> DAVID Malan: Tion ni instruos vin voki cimon en Scratch.
Ĝi ne devus konservi farante tiun sonon.
Do ni ni diros al li halti.
Bone, do nun mi estas tuj iru en -
Mi permesos MIT scias.
Ni transiru tie Forever.
Kaj nun, mi volas fari ion denove kaj denove.
Mi tuj iros en Kontrolo.
>> Kaj vidu, mi tuj treni mia se kondiĉo tie.
Do nun rimarkas la logiko.
Kiam la verda flago klakis, faru ion por ĉiam, sed nur fari tion
iun se tiu alia afero estas vera.
Mi tuj iros al, ni diri, detekti.
Kaj mi tuj iros antaŭen kaj elekti tuŝi kaj faligi ĝin tie.
Tio estas Bulea esprimo.
>> Kaj nun, rimarki, en ĉi tiu guto malsupren menuo, ekzistas
iu antaŭdifinita valoroj.
Do mi povas diri, ĉu vi tuŝis la rando de la ekrano?
Aŭ vi pri la muskursoron, la sago sur la ekrano?
Do mi tuj faros tion.
Kaj se jes, tiam mi tuj iros antaŭeniris kaj ludi sonon meow.
Do nun mi specon de havi la Komence de la ludo -
adorable ludo.
>> [Meow SOUND]
>> DAVID Malan: OK, adorable, kalesxon ludo.
Lasu min atendi, diru, dua tie.
Nun ludi denove, klakante la verda flago.
>> [Meow SOUND]
>> DAVID Malan: Do nun estas kiel Petting kato.
>> [Meow SOUND]
>> DAVID Malan: Bone, nun ĉi unu mi fari anticipe.
Tre malfrue, ĝi alvenas speco de facila fari stultaj aferoj.
Do mi iros tien.
Diru, kiu estis Pet la Kato.
Ni nun malfermi Ne Pet la Kato.
Nun, se ni ludas ĉi tiu, vi povas diveni, se vi estas
rigardante la ekrano -
>> [Meow SOUND]
>> DAVID Malan: Nun, se mi maskoto la kato
>> [LION'S Roar]
>> DAVID Malan: Do ne vere maskoto la katon en tiu kazo.
Do nun ni nur devas ekzemplo de branĉo kiu okazas en du direktoj.
Nun lasu min antaŭeniri kaj malfermi alian ĉi tie.
Ĉi tiu, ankaux inter niaj vikitekston kodo dosierojn por la tago.
Do mi revenas al mia Fonto dosierujon kaj iru en, ni elektos
tiu knabo tie kaj vidu kio estas malsama.
>> Wow, bone, do nun ĝi iĝas iom pli kompleksa.
Kaj antaŭ ol ni vidu kion tiu ulo faras, ni provu konkludi, de la programo
ĉe la dekstra flanko.
Kaj nun nenio klare permesas nin havi multnombraj skriptoj, multnombra
programoj asociita kun unu sprite, kun unu signo, kaj, ŝajne,
ili estas ambaŭ tuj kuri en Sklava.
Ĉar ambaŭ de ĉi tiuj programoj komenciĝas kun kiam verda flago klakoj, ĉi tiu estas
sugestante al pli progresinta temo, kun kiu iuj el vi povus esti familiara,
konata kiel threading, aŭ multi-threading.
>> Rezultas, longan rakonton, komputiloj hodiaŭ povas esence fari multnombrajn
aferojn samtempe.
Aŭ ili povas fari unu afero je tempo tiom rapida ol vi eĉ ne rimarkas, ke
ĝi estas fakte faras unu afero je tempo.
Sed nuntempe, ni supozas, ke ambaŭ tiuj programoj tuj ekzekuti ĉe
la sama tempo.
Kaj rimarki, ambaŭ el ili havas ĉiam konfuzis pecoj.
Do ili estas tiel tuj subteni kurante ĝis mi batis la ruĝa halto signo.
>> Do kio ili intencas fari?
Maldekstre mana flanko, mi ŝajne deklari variablon nomata silentigita.
Do mi ne nomis ĝin iu kiel enuiga kiel N. Mi nomis ĝin silentigita ĉi
tempon por transdoni signifon.
Mi starigis gxin egalaj al nulo.
Ni pensas ke kiel Falsa, aŭ ni pensas ke tiel falsa.
>> Nun, por ĉiam faru la sekvajn.
Se la klavaro estas spaco stango estas premita, tiam se silentigita egalas nulo,
tiam ŝanĝu silentigita al egala unu.
Alie, turnu silentigita al nulo.
Do logike, kvankam tio estas tuta faskon da puzlo pecoj kiuj estas
nur diris, kiam mi batis la Spaco trinkejo, kion mi faru al la variablo
vokis silentigita?
Ŝanĝi ĝin de unu al nulo, aŭ nulo al oni.
Jen ĉio.
Do estas kiel igi malpeza ŝaltilo aŭ malŝalti kaj memorante, kun
variablo, ke mi faris tion.
>> Dume, en la dekstra flanko, en lego de terminoj, kio estas la celo de
la skripto dekstre?
>> Lernanto: Por ludi la maro leono sono.
>> DAVID Malan: Ludi Maro Leono sono, se li ne estas silentigita per
naturon de tiu variablo.
Do ni dividante stato, por tiel diri, dividi informojn trans tiuj du
skriptoj ĉar, rimarki tie, ni estas ĉiam faras la sekvajn.
Se silentigita estas nulo, do se ĝi ne estas silentigita - se silentigita estas falsa, do ludas
ĉi Maro Leono sono.
Kaj pensu al vi mem, hi, hi, hi, por du sekundoj, atendu momenton, kaj poste
kontrolu denove.
Do, se ni iru nun ĉi tie al la maldekstra, al kie tiu ulo estas, kaj batis la
verda flago,
>> [SEA LION SOUND]
>> DAVID Malan: Kie estas la limo faras tiu akiras vere tedas?
Pro tio nur daŭrigi eterne.
Do kelkfoje, senfinaj cikloj, por tiel diri, estas intenca.
Sed en tiu kazo, kiam mi batis la Spaco trinkejo, li haltas.
Nun la programo ne quit.
Ĝi estas ankoraŭ kurante en tiuj cikloj.
Sed se mi alvenas la spaco trinkejo denove -
>> [SEA LION SOUND]
>> DAVID Malan: Li iras por repreni tien, kie li lasis.
Do ekzistas unu vojon por ni fari io denove kaj denove, sed, ke
tempo, nur kondiĉe.
Nu, dum ni estas en ĉi tiu vejno de fari tion denove kaj denove, lasu min
iru en alia tia ekzemplo tie.
Ĉi tiu ni vokos rakonti ŝafoj.
>> Kaj rimarki kio estas tiu ulo faras.
Ĝi estas fakte iom pli kiel la _pseudocode_ ni ludis kun la
Merkredo, per kiu li metas iujn vendotablo, pensi pri ĝi kiel N denove, al
nulo, li ĉiam faras la sekvan.
Li diras la vendotablo valoro por unu dua, atendas la duan, kaj poste
ŝanĝas la nombrilo de unu.
Kaj en ĉi tiu kunteksto, ke nur signifas pliigoj ĝin.
Do li aldonas al ĝi.
Do tiu estas laŭvorte -
ĝi ne estas sufiĉe kion ni pensas de kiel rakonti ŝafoj.
Ĝi estas la sxafoj farante la kalkula, ĉiam, supren de nulo.
>> Do ni povas fari similajn aĵojn tie, logike.
Sed nun mi provu purigi kelkaj el tiuj aĵoj supren.
Lasu min nun en simpla ekzemplo kie nia kato estas ĝuste tuj
komenci tusado.
Bone, do tien ni havas tuson 0 -
komputikistoj komenci rakontante de 0.
Do tiu kato estas ĝuste tuj tusadi trifoje.
Kaj jen kiel mi implementado tio.
Kiam verda flago klakis, tuso, atendi, tusi, atendu, tusi, atendu.
Kaj mi faris tion nur trenante kaj delasante puzlo pecoj.
Aŭ se vi komencas toquetear Scratch, vi vidos vi povas reale
duobligi pecoj tiel, ke vi povas fari aĵoj pli rapide sen treni
kaj delasante ad nauseum.
>> Sed ni ne estas sur la bona vojo tien.
Ĉar kiel mi faru al li tusi kvara horo?
Nu, mi povus ordigi de malsupreniru tie.
Mi povus duobligi kaj poste alglui ĉi tien.
Kiel mi fari lin tusi kvina horo?
Nu, kopii kaj almeti denove.
Aŭ treni guto denove.
Kaj tre rapide, tiu programo komenciĝas akiri vere, vere superflua,
vere longa, sed vere neinteresa.
Sed estas maniero por purigi ĉi supre.
Kio estas la evidenta maniero por purigi ĉi kolektis?
>> Bone, do ni povus efektive vere iri ekstere kaj, kiam vi frapis la spaco
trinkejo, havi lin tusi.
Sed se mi nur volas fari ion ripete, memoru, ke ni ja havas
iuj kontrolo konstruas.
Lasu min movi tiun el la vojo, iru laŭ Kontrolo.
Lasu min fari ripetas, diri, trifoje.
Kaj nun mi volas ŝteli iom de ĉi tiuj puzlo pecoj.
Lasu min kapti tiun ĉi tien.
Lasu min ĵeti tiujn for kompleta.
>> Kaj nun, mi havas pli bonan desegnis programon.
Kial?
Se mi volas ŝanĝi la nombron da fojoj tiu kato coughs, ĉiuj mi devas
ne estas ŝanĝi unu variablo, aux unu valoron, pli ĝuste de tri, kvar, aŭ
kvin aux ses.
Aŭ mi povus fari ion kondiĉe, inkluzive, kun la spaco
bari, se mi volus.
>> Do tio estas ĝenerala principo.
Kiam vi komencas kopii kaj alglui kodo, ĉu ĝi estas en Scratch, aŭ en
C, vi faras ion erara, plej probabla.
Aŭ almenaŭ, unufoje vi jam superis iujn racia nombro de kopioj kaj
pastoj, vi probable fari ion malbonan.
>> Sed vi scias kion?
Mi ne vere ŝatas tion.
Ĉi tio ne estas la plej pura dezajno.
Mi deziras esas puzlo peco nomita tusi ĉar tiam mi ne
devas apliki ĉi mi mem, la antikva maniero, por
esti diras, kaj atendas -
kion se ili nur tuso puzlo peco.
>> Nu, mi efektive povas fari tion.
Permesu al mi iri sub pli blokoj, klaku Faru Bloko, kaj nun mi ricevas tiun
fenestro tie.
Mi tuj nomos tion tuso.
Mi tuj iros antaŭen kaj alklaku OK.
Kaj nun avizo, mi alvenas nova startanta peco kiu estas kurbigita en la supro.
Kaj kion mi faros kun ĉi tio, mi tuj nur ŝteli tiujn blokojn.
Mi tuj metos ilin ĉi tien.
>> Kaj nun, kun ĉi tiuj tri pecoj, mi havas implementado kion mi tuj vokos
funkcio, aŭ proceduro, aŭ iu de vi eble scias kiel metodo.
Malgravaj diferencoj inter la vortoj.
Sed nuntempe, ni nur nomas tiun funkcion.
Tiu estas nur nova enigmo peco.
Nun estas implementado kiel ĉi tio.
>> Sed rimarki ke Scratch donis al ni fizika reprezento de tiu tuta
bloki ĉi tie.
Do nun, mi povas simple treni ĉi tie, diri, ripeti tri fojojn, kaj
kio okazos nun, kiam mi ludas tiun skripton, estas nur unu programo
ruliĝas samtempe.
Ekzistas nur unu kiam verda flago klakis.
Sed tio purpura bloko nomita tuso estas efektive dirante Scratch, ĉiu
kiam vi vidas ke puzlo peco, reale ekzekuti tiujn paŝojn, ke mi
okazi apliki permane.
>> Do jen speco de neta.
Sed nun, supozu, ke mi decidis, mi ne volas ke tiu kato nur tusadi.
Mi volas ke li povos terni tiel.
Nu, kiel ni povus iri apliki ternas?
Nu mi povis sufiĉe multe fari la samon.
Mi povus fari alian bloko.
Mi povis nomi tiun ternon, klaku OK.
>> Tiam, ĉi tie mi povis efektive esti, lasu min duobligi tiun -
kaj tie estas kie vi devus sentas vi probable ne fari ion en
la plej bona maniero.
Mi povus diri ion kiel, achoo, por unu sekundo.
Atendu unu sekundo.
Nun mi havas novan bloko nomita ternas.
Kaj efektive, tie ĝi estas.
>> Sed tio, ankaŭ, devas komenci senti - eble ne la unua semajno de klaso, sed
por la dua - nur iom superflua.
Klare, ekzistas iuj redundo tie.
Do mi proponas, male, ke ni rafini ĉi tiu difino kiel sekvas.
>> Lasu min iri al mia dosiero menuo.
Mi ne tuj por savi ĉi tiun version.
Mi tuj iros en unu el mia premade dosierojn tie.
Kaj mi tuj iros antaŭen kaj malfermu tuso 2.
Whoops kiu estis tuso 2.
Lasu min kaj malfermu tuso 3, kiu estas tiu fonto dosierujo.
Tusi 3 kaj rimarkos - ho, mi diris la rakonto en la malĝusta ordo.
Permesu al mi resaniĝos de ĉi tiu rakonto.
>> La rakonto mi volis diri ekstremaj kun tuso 4 -
tie ĝi estas.
Do kio se mi, anstataŭ, difini pli granda enigmo peco nomita
difini, diru vorton n fojojn.
Sneezing estas justa, ŝajne, en Scratch, achoo.
Do ni esprimas ĝin kiel vorton, nur ĉar tio estas la
limigo de la programo.
Kaj tuso estas [TUSO], sed tuso, C-ho-U-G-H. Do tio estas nur du
malsamaj vortoj faras, esence, la sama aĵo.
>> Do mi efektive povas fari nova bloko ŝatas tion.
Mi ne uzis tiun menuon eblo antaŭe.
Sed kiam vi alklakos Faru Bloko, vi povas elekti iujn eblojn.
Kaj vi povas diri ke tiu bloko reale Necesas iom enigoj, alie
konata kiel argumentoj, aŭ parametroj, tiel ke vi povas modifi la konduton de
via bloko.
>> Do kion mi faris antaŭ momento estis Mi nomas ĉi tiun blokon Diru.
Kaj tiam mi diris, ĝi prenas ŝnureto enigo.
Kaj nun rimarkas, implicite, diras kordo 1.
Kordo estas nur vorto, aŭ frazo, por niaj celoj.
Sed mi simple tuj metis iom lokokupilo teksto ekzistas, ĝuste kiel en
TTT-ejo, kiam vi vidos salutnomon, aŭ pasvorto, kaj poste ĝi malaperas
vi ektajpu.
Tio estas ĉio, kio estas.
>> Kaj nun mi iras al aldoni numeron enigo.
Kaj mi tuj nomas tiun n - sed tio estas sufiĉe arbitra.
Kaj tiam nur etiketo, nur por fari tiu bloko iom pli mem
klarigan -
tempoj, jen kion mi ĵus faris.
Kaj la fina rezulto estas ke mi ricevas bloko kiu aspektas kiel ĉi tio.
>> Kaj nun rimarkas, mi uzas ripeto bloko.
Sed anstataŭ malmola kodigo tri, mi estas trenante kaj delasante n en tie do mi
povas parametrize la funkcio.
Mi povas fari ĉi tiun funkcion faras iun malsama nombro da fojoj bazita sur
tiun valoron.
>> Kaj rimarki, diru, ĉi tiu estas kion mi faris, ĉi tie, se mi treni vorto, mi povas diri ne
malmola koditaj vorto, sed kio ajn estas pasis en unu por la dua.
Dume, kiel mi re-implemento tusi?
Mi anstataŭ difini tuso kiel dirante tuso n fojojn.
>> Do mallonge, mi iros tra ĉi rapide, sed la baza ideo estas tiel frue
kiel vi komencos vidi en via programo ke, atendu minuton, mi faris
iu sufiĉe ŝatas tion antaŭe, mi povas faktorigi iun komunan
funkciojn?
Ĉu mi povas malkomponi kion mi faras en kelkaj bazaj ideoj?
Tio estas kion ni faras tie ĉi.
Kaj mi plata tion, vide, sur supro de unu la alian
ĉar ĝi estas atesto, ke ideo de komencante per duuma, tuj ASCII,
fari grafikajn programojn, ia layering ĉiufoje kompleksaj ideoj pri
supro de unu la alian.
>> Sama ideo tie.
Mi komencis de nulo, apliko tusado, tiam rimarkis tuso estas
vere nur diras ion.
Do mi anstataŭ apliki la nocio de diri ion.
Kaj sur supro de tio, mi povas apliki achoo, aŭ tuso?
Kaj ni povus fari pli tiaj variantoj ankoraŭ.
>> Tuj kiam de tiu baza principo, Ni povas komenci fari
ĉiufoje kompleksaj programoj.
Permesu al mi malfermi ĉi tiu.
Ni povas vere havi multoblajn koboldoj interagante sur la ekrano samtempe.
Se mi iras al mia fonto dosieroj kaj ekpreni unu nomita Fadenoj, memoru, ke
fadeno estas nur vere la kapablo de du skriptoj kuri apud
flankon ĉe la sama tempo.
>> Rimarku nun, havas ambaŭ birdo sprite kaj kato sprite, kiuj ambaŭ havas
siajn proprajn skriptojn.
Do rimarki, kiam mi premas la kato, mi alvenas tiuj skriptoj.
Kiam mi klakas la birdo, Mi alvenas tiuj skriptoj.
Do ĉiu el tiuj infanoj havas sian propran programoj.
Kiam mi nun klaku la verdan flagon, rimarki ke tio, kion tiu programo faras estas
havas la kato, nekredeble malrapide, persekuti la birdo.
Sed la kato havas la avantaĝon de havi estis planita en tia maniero,
ke negrave kie la birdo estas, la kato iras al li.
>> Ni povas ludi tiun ludon multe pli rapida.
Do, se mi estas sur la kato, rimarki ke mi estas uzante, diru movi unu paŝoj.
Ni havas lin movi kvin ŝtupoj ĉe tempo, do kvin punktoj samtempe.
Permesu al mi alklakos ludi.
>> [LION'S Roar]
>> DAVID Malan: Bone, ni nun povas vere donas la katon la avantaĝon.
10 paŝoj samtempe.
>> [LION'S Roar]
>> DAVID Malan: Bone, do tre rapide, metas iom avantaĝo
por la kato.
Sed mi skuos mian manon en iuj de la detaloj.
Sed la kialo, ke tiu vojo estas komencante iom malsama ĉiufoje
estas, ke mi faras iom de hazardo.
Mi vere notante la kato en malsama direkto bazita en kie mi
volas ke li komencas tiel ke ĉiu tempo la ludo, aŭ la kuraĝigo, estas
iomete malsamaj.
>> Nun, lasu min enkonduki unu alia konstrui tie.
Do, en tiu kazo, ni havis funkciojn.
Tie estas ankaŭ tuj estos puzlo peco konata kiel tabelo, aŭ listo,
kiu permesas stoki multnombra valoroj ene de variablo.
Ni vidis fadenoj, kaj nun ekzistas Eventoj.
>> Do jen okazaĵo uzante tiuj du infanoj ĉi tie.
Kaj se mi malfermu la dosieron nomata Eventoj de hodiaŭa ekzemploj, ni faros
vidu programon kiu aspektas iom kiel ĉi tio.
Kaj nun rimarkas tiun knabon -
tiom rimarkos mi havas la bluan Muppet klakis -
li nur faras la sekvan.
Li ne havas unu el tiuj, verda flago puzlo pecoj.
Li havas kiam mi ricevas okazaĵo -
tial iuj arbitraj vorto.
Mi ĵus tajpis okazaĵo tie -
li intencas diri, Polo, dum du sekundoj.
>> Do tiuj el vi, kiu estas familieca kun tiu ludo sciigxu
kie ĉi iras.
Se mi nun alklaku la oranĝo Muppet, lia programo faras tion.
Cxiam, se la klavaro spaco trinkejo elstrekita, li tuj diros, Marco,
dum du sekundoj sur la ekrano.
Sed li ankaŭ tuj uzos ĉi amatoro bloki konata kiel elsendo.
Li tuj elsendis citaĵo unquote, "okazaĵo".
>> Dume, la blua ulo, revokon, estas aŭskultante por citaĵo unquote, "okazaĵo".
Do iel, nun, ni povas havi du spiritoj interagi.
Kaj kiam ni atingos retejo programado, poste en la termino, simile volo ĉi
estu avantaĝa por havi retpagxon fari ion en respondo al, por
Ekzemple, klako de la klavaro.
>> Do lasu min antaŭeniri kaj batis la spaco trinkejo.
Oranĝo ulo diras Kadro.
Blua knabo diras Poluso.
Se mi faras ĝin denove oranĝo ulo diras Marco, blua ulo diras poluso.
Do ni prenu tiun paŝon pli.
Tiu tempo, ni iros, probable, nur kelkajn minutojn pli tie.
Ĉu ni havas -
skribtablo lampo, venu malsupren.
Vi pravas je la fino.
OK, vi povas ambaŭ venis.
Ni havas tablon lampoj por ĉiuj.
Venu.
Mi ne scias se ni povas subteni tiu ridinda ŝerco supren
ĉiuj semestro, though.
Bone, venu malsupren.
>> Kaj dume, ni havas la sekvaj ekzemploj tiri supren, nur por
akceli tion nun, tia, ke ni havi elmontro de alia
antaŭulo de via uzanta la sama baza konstruaĵo blokoj.
Kio estas via nomo?
>> JOHN: Johano.
>> DAVID Malan: Johano.
Nice al mi vi.
Kaj?
>> SETZ: Setz.
>> DAVID Malan: Setz, bela por mi vi.
Johano, se vi ŝatus veni ĉe komenco, ĉi tiu estas malnova
lernejo ludo nomata Frogger.
Vi uzas la klavaron por tio ankaŭ.
Kaj la celo estas atingi tra la strato kaj akvo.
>> [Frogger MUZIKO KAJ SOUND Teatraĵoj]
>> DAVID Malan: Mi bedaŭras, ne skribtablo lumilon por vi hodiaŭ.
Bone, Setz, ĉu vi ŝatus veni supren?
Bone, ni faru ĝin denove.
>> SETZ: Ĉu mi uzu la sagojn?
>> DAVID Malan: Nur la sagoklavoj.
Supre, sube, maldekstra, dekstra.
>> [Frogger MUZIKO KAJ SOUND Teatraĵoj]
>> DAVID Malan: Ni vokos ilin konsolo premiojn hodiaŭ,
tiam, tre bone farita.
Tie, por ambaŭ de vi, John kaj Setz.
Gratulon, tute certe.
Do denove, kiel ĉi tiu ludo ludas, pensu pri kio okazas?
>> Unu, estas klare multe da moviĝo.
Sed ni jam vidis kiel, kun la kato kaj la birdo Ekzemple, kiel vi povas fari la
iluzio de moviĝo por nur kopii iujn nombro de rastrumeroj denove kaj denove.
Kaj se vi havas ĉiam bloko, vi povus havi tiujn
aŭtoj faras ĉi eterne.
Ni havas la kapablon havi iu hazardo.
Do tiu ludo ne devas esti ĝuste la sama ĉiu fojo.
Tiuj protokoloj, tiuj aŭtoj, povas komenci ĉe iomete malsamaj tempoj tiel ke la
ludo estas pli interesa kun ĉiu ludo ludita.
>> Kaj dume, ni vidis la kapablo por aŭskulti la spaco trinkejo.
Sed klare, en Scratch, ĉu vi ankaŭ aŭskulti por supre, sube, maldekstra, dekstra, kaj
vere ajnan klavon sur la klavaro.
Kaj vi povas ankaŭ fari kelkajn aliajn aferojn.
Lasu min antaŭeniri kaj reiri al la retejo versio.
>> Permesu al mi iri en nia kolekto de ekzemploj ĉi tie.
Kaj sub Mia Studio, filmetoj kiuj estas, esence, de dosierujo en
scratch.mit.edu.
Ni havas la TTT-versioj de ĉiuj de ĉi tiuj projektoj.
Kaj vidu se mi povas akiri mian komputilo kunlabori ĉi tie.
Tiu estas skribita de unu el niaj amikoj ĉe MIT, nomata Movu la papilio.
>> Kaj fojo ĉi malfermas, ĉi tiu estas tuj vere uzas pli
mia komputilo aparataro.
Scratch okazas al esti realigita kun Flash.
Fulmilo povas paroli kun via webcam, se tion vi havas.
Do, se mi iras antaŭen kaj plena ekrano ĉi ĉi tie, klaku la verdan flagon, avizo
ke Flash sekurecon mesaĝon diras, ĉu vi volas
permesas uzi mian webcam?
>> Kutime, vi devus verŝajne diros Deny.
Sed en tiu kazo, ni diros permesas.
Tiam mi diros al Chrome por permesi ĉi tiel.
Kaj nun, en nur unu momento, vi vidos min, yep, mi.
Kaj se mia mano iras supren -
Mi devas ne movi mian kapo samtempe.
Ekzistas ankaŭ spegulbildo en la ekrano.
Venu, tie ni iru -
vi povas movi ĝin sur la ekrano ĉar ekzistas ankaŭ puzlo pecoj - ho, vi
scias, kio ĝi estas, ĝi estas ĉar vi ankaŭ vidu la projector ekrano malantaŭ mi.
Do ni havas iom malfinio afero okazas tie.
>> Bone, do mi ludos cxi tie.
Tie ni iru.
Do ankaŭ estas enigmo peco kiu diras, kiam vi vidos movado sub
unu el la spiritoj, vi povas havi ĝin iri supre, sube, maldekstra, dekstra aŭ similaj.
Do ni havas iom de virtuala realo okazas ĉi tie tiel, ĉiuj ene de la
limoj de mia retumilo, nur tie uzante mian webcam.
Do kio estas poste sur la horizonto.
La unua problemo aro, kiel vi vidos, aŭ la retejo iros enreta poste
vespere en cs50.net, estas bela multe tuj estos malfermita finis.
Kaj efektivigu Scratch projekto interesajn por vi, ludo, oni
interago, iu arta, kaj defii mem uzi ajnan numeron
de ĉi tiuj puzlo pecoj.
Kaj ĝi povas ĉu esti interaktiva en ĉi tiu maniero.
Aŭ ĝi povas esti io pli intence faris por rakonti historion.
>> Kaj efektive, jen kie ni finos ekstere hodiaŭ, kun unu fino ekzemplo.
Permesu al mi iri en Scratch loke.
Lasu min antaŭeniri kaj malfermu ĉi, kaj ludi lasta programo estas skribita de unu
de via antaŭuloj, nome ke oni ĉi tie.
Bona, levi la volumon por ĉi tiu.
>> [MUZIKO ludi]
>> Rakontanto: Je la sekvanta CS50, Davido invitas volontulo scenejo.
>> DAVID Malan: Por ĉi tiu pruvo, ni tuj bezonas unu volontulo.
Ĉu vi ŝatus veni malsupren?
Kio estas via nomo?
Pasante.