[Powered by Google Translate] Nate HARDISON: Kui sul on mitmeid programme avada edasi
arvuti, tundub, nagu kõik on
töötab samal ajal.
Näiteks võite olla töötab veebibrauseris nagu
Firefoxi või Internet Explorer, kuulata muusikat iTunes,
ja essee kirjutamiseks Wordi.
Kuid kapoti alla, programmid tegelikult
käivitada ühe korraga.
See on töö, operatsioonisüsteem Windows, Mac OSX või
Linux, hallata iga sellise eraldi protsessid, nagu
programmid on tuntud ja neid vahetada nii, et kui sa
minna kontrollida oma Facebook leht kallal oma essee
jälle sõna on see, et kandideerib.
>> Mõnikord, kuigi me tahame programme ise suutma
teha mitmeid asju niimoodi ka.
Kui sa oled nagu mina, siis ilmselt on hunnik
erinevaid kaarte avada oma veebibrauseris, üks e-posti,
üks kalender ja nii edasi.
Võiksime ravida iga sakk eraldi programm või protsess,
nagu Google Chrome ei, kuid paljud programmid kasutavad
kergemad kaalu versioon protsessi nimetatakse teema.
>> Niit on lihtsalt üks ühik töötlemine, komplekt
juhiseid või koodi, mida saab "sisse sõita", tsiteerin Tsitaat lõppeb,
samaaegselt teiste niidid.
See on see, mida võimaldab teil sirvida Facebook
kuulamise ajal mind taustal või kaks
YouTube'i videod mängida samal ajal.
Niisiis, see üldine teema, mida tuntakse kokkulangevus, tüüpiliselt
ei tule nii vara üleval infotehnoloogia kursused
sest madalama taseme üksikasju nõuavad arutelu
operatsioonisüsteemide jms.
Kuid programmeerimiskeelt me ​​kasutame juures
alguses CS50, Scratch, annab mõned vahva tööriistad
oleks lihtsam kirjutada programme mitme asjad
toimub korraga.
>> Kui teil ehitada Scratch programmid, sa oled pidevalt
töö lõngaga.
Iga Scratch skripti, mis on kood plokk, mis algab
üks "kui" puzzle tükki, võib kujutleda
eraldi teema.
Vaatame lihtsat Scratch programmi, et näha, kuidas see toimib.
>> Siin on meil kala objekti või sprite, kaks skripte
et nii algus kui me nuppu väike roheline lipp nuppu.
Esimene skript kontrollib kala liikumisandmeid.
Kui roheline lipp on klõpsatud, kala saab paigutada
vasakul pool ekraani, nimetatakse etapp,
ees paremal.
Siis, juhistega, et saad joosta igavesti, kuni me
programm peatada, kala libiseb paremale küljele,
pöördub ümber, läheb tagasi vasakule küljele ja
pöördub ümber uuesti.
Teine skript kontrollib kala mõttekäigust.
Selgub, et see on näljane kala.
Nii et pärast oodanud 3 sekundit, kala arvavad,
"Ma olen näljane," neljandaks sekundis.
See skript töötab ka igavesti.
Ja nagu me näeme, kus töötab programm, klõpsates
roheline lipp, mõlemad skriptid ilmuvad täita
samaaegselt.
Kala liigub ja mõtleb samal ajal.
>> Kuna vaeste kala tundub nii näljane, lähme lisada mõned
cheesy puudritupsud seda süüa.
Loodetavasti nad ei laguneda vees.
Kui me lisame teises sprite, siis me ka suutma
lisada skripte, mis vastab sprite.
Ja seega siis tuleb teine ​​rida
niidid, mis sa jooksed.
Et anda kasutajale meie programmi üle, kui
näljane kala saab toitu, oletame, et kui ruum
Baar on tabanud, cheesy puudritupsud ilmuvad lavale
kala süüa.
Enne kui me vajuta tühikut, me tahame hoida cheesy
puudritupsud peidetud nii, et kala ei näe neid.
Selleks vajame paar skripte
cheesy puudritupsud sprite.
Esimene skripti, roheline lipp, mis lihtsalt peita toitu.
Erinevalt teistest skriptid oleme kirjutanud, see üks ei hoia
töötab igavesti.
See algus ja lõpp väga kiiresti, eks kui me kliki
roheline lipp nuppu.
>> Järgmine skript meil ootab tühikut olla
pressitud enne täidesaatva.
Saame kõne oodanud kasutaja sisend "ootama" või "kuulates"
jaoks sündmus.
Ja kood, mis täidab kui sündmus on saanud või
kuulnud nimetatakse sündmus käitlemise kood.
Meie Tühiku sündmus näitab cheesy puudritupsud kohta
ekraan nii, et kala võib süüa.
Sel hetkel, kõik on hea.
>> Järgmine asi, mida peame tegema, on aru saada, kuidas saada
kala mõistma, et seal süüa.
Teeme veel ühe teema, et kala, mis pidevalt
kontrolli, kas see on liigutav cheesy puudritupsud.
Teeme seda eraldi teemat sest nii saame
pidevalt kontrollida toitu.
Muidu me tahaks ainult oleks võimalik perioodiliselt kontrollida toidu
vahel libisemine, keerates ümber, oodates, või mõelda.
>> OK.
Nüüd lähme jooksma meie Scratch programm.
Nagu oodatud, toit kohe peidab ja
näljane kala ujub edasi ja tagasi nii nagu enne.
Kui me vajuta tühikut, cheesy puudritupsud tulla vaadata,
ja näljane kala ütleb whoo.
Aga oodake, see on imelik.
Miks kala on "ma olen näljane" arvas katkestab
muud kraami?
Seda seetõttu, et me ei looda koordineerimine
vahel kolme kala skripte.
Iga töötab oma niit, hajameelne, mida
teised teevad.
Teeme seda parandada enne kui edasi liigume.
>> Kooskõlastamine mida on keeruline ülesanne, sest me
ei ole selge kontroll selle üle, millal iga niit jookseb või
ei jookse.
Sõnumi saatmiseks ühest niit teise, me vajame
kasutada muutuja, mis saame, või kirjutada, üks niit
ja lugeda teiste.
Loome muutuja nimega foodFound et saaksime seatud
tõsi kui kala satub cheesy puudritupsud.
Noh, muidugi, me tahame veenduda, et me seadke see
false esialgu.
Siis, kala mõtlemise teema, me vaadata, kui
kala on leidnud toit enne väljapanek "Ma olen näljane"
jutumull.
>> Nüüd töötab programm jälle näeme, et kala
ei saa katkestada mõtteid nälga, kui
cheesy puudritupsud on läbi.
Viimane probleem on selles, et cheesy puudritupsud ei lähe
ära pärast kala, tsiteerin Tsitaat lõppeb, "sööb" neid.
Alates kala skriptid, ei ole lihtne viis peita cheesy
puudritupsud, seega peame sõnumi saata cheesy puudritupsud
sprite peita end.
Me võiksime seda teha teise muutuja, mis cheesy puudritupsud
sprite on juurdepääs, samuti kala sprite.
>> Kuid seal on puhtam viis seda teha sel juhul,
alates saatmise asemel sõnum skripti, mis on
kuskil keset täidesaatva, saame saata
sõnum skript, mis ootab, et alustada.
Me teeme seda, millel kala eetrisse juhul üks me tulen
helistada söönud.
Seejärel loome skripti cheesy puudritupsud, mis
oodata seda sündmust.
See on sarnane Space Baar korral, kusjuures see
ajal kasutaja pole üks otse vallandada sündmus.
Nüüd kõik me peame tegema, on seatud meie foodFound muutuja tagasi
vale, ja me saame nüüd anda näljane kala nii palju
portsjonit cheesy puudritupsud nagu ta tahab.
>> Nii et ei ole liiga halb, eks?
C, kirjalikult multi-keermestatud programmid on keerulisem,
kuid põhitõed on samad.
Igatahes, ma loodan, et teil on suurepärane aeg ehitada mõned lõbus
samaaegne programmide Scratch.
Minu nimi on Nate Hardison.
See on CS50.