RiistvarastArvuti struktuur ja põhikomponendidSuvaline arvuti, üldisemalvõiks öelda - programmjuhtimisega seade (PJS): arvuti, telefon, robot jm, koosneb või kasutab tüüpiliselt järgmisi seadmeid:
Kõikide seadmete liikide osas valitseb väga suur mitmekesisus ning tänapäeval rakenduse koostaja ei pruugigi alati teada, millise konkreetse arvutiga ta parasjagu töötab. See käib näiteks ka Scratch 2.0 kohta, kus rakenduste loomine ja täitmine võib toimuda nii kohalikus arvutis instaleeritud tarvara abil kui ka brauseri vahendusel nö "pilvedes" - Scratchi koduserveris. Scratch 2.0 rakendusi saab täita ka veebidokumentidesse salvestatud Flashi kasutajaliidestes (klippides). Informatsiooni esitamise põhimõtteMärkandmed: eeskätt arvud ja tekstid, esitatakse rahvusvaheite standarditega reglamenteeritud koodeerimissüsteemide abil. Peamine kodeerimissüsteem on ASCII (American Standard Code for Information Interchange), viimasel ajal ka UNICODE. Arvude jaoks, milledega tehakse arvutusi, on spetsiaalsed kodeerimissüsteemid, mis võimaldavad esitada arve tunduvalt kompaktemalt ja täita tehteid kiiremini, kui seda võimaldab ASCII. Need kodeerimissüsteemid teatud määral sõltuvad arvuti (protsessori) liigist ja operatsioonisüsteemist. Esialgu ei ole neid asju vaja eriti täpselt teada, kuid on kasulik teada et täisarvude ja reaalarvude salvestamisel kasutatakse erinevaid viise. Scratchis valib süsteem salvestusviisi ise, kuid mõnikord kaudselt tuleb sellega kokku puutuda (n. ümardamise probleemid). Esialgse visiooni tekitamiseks, on allpool toodud mõned näited. Graafika- ja heliandmete salvestatakse kindlate standarditega määratud vormingutes. Scratchi kasutamisel täpsemat infot vormingute kohtaeriti vaja ei ole. Nende andmete käsitlemist Scratchis vaadeldakse eraldi. On kasulik teada ja arvestatada kahe erineva graafika esitusviisiga: rastergraafika ja vektorgraafika. Neid saab kasutada Scratchi joonistamisredaktoris, pilide loomisel ja redigeerimisel. Programmides erinevustega ei arvestada. Arvutis täidetav programm on alati masinakeeles ehk masinakoodis. Masinakeel, on setud konkreetse protsessori liigga (Intel, AMD, IBM jm). Keel koosneb elementaarsetest käskudest: liitmine, lahutamine, korrutamine, võrdlemine, suunamine jm. Allpool on toodud võimalik masinakeele nn kolmeaadressiline käsk. Lihtsustalt käsk koosneb käsukoodist (n 110 - korrutanine) ja kolmwat aadressist, mis näitavad mäluvälju, kust võtta operandid ja kuhu salvestada tulemus. Taolisele masinakäsule vastab näiteks taoline omistamislause c = a * b enamikus programmeerimiskeeltes või Scratchis. TranslaatorMasinakeeles vist praegu juba keegi ei programmeeri. Kasutatakse erinevaid nn kõrgtaseme programmeerimiskeeli (C, C++, C#, Java, Python, PHP, Scratch, Logo, Alice jt). Kõikide programmeerimissüsteemide kõige tähtsam osa on spetsiaalne programm: translaator, mis tõlgib programmi lähtekeelest vastava arvuti protsessori masinakeelde. On kaks translaator tüüpi:
Veidi lihtsustatult. Mõnikord translaator tõlgib lähteprogrammi kõgepealt nn vahekoodi ja juba sealt masinakoodi. Allpool on toodud taolise töötluse üsna tinglik skeem (mudel). Virtuaalarvuti Toodud lihtsustatud arvutimudel ja selle tööpõhimõtete käsitlemine tugineb eeskätt Scratchi programme töödeldavatele süsteemidele, kuid üldised põhimõtted on praktiliselt samad kõikides programmjuhtimisega süsteemides, kus kasutatakse mälus salvestatud andmeid ja programme.
Redaktor on vahendite kompleks, mille abil toimub rakenduse loomine, redigeerimine ja silumine. Sctatchis see seisneb peamiselt skriptide koostamises. AndmedRakenduse loojale oleks väga kasulik teada ja tunnetada andmete ja andmeploki olemust ja põhiomadusi. Programmisüsteemi spetsifikatsioonisga on täpselt määratletud andmete liigid ja organsatsioon ning fikseeritud võimalikud tegevused ja operatsioonid sõltuvalt liigist ja organisatsioonid.
Näide "Krapsu sünnipäev"Allpool esitatud Flashi klipis on toodud kõikide peamiste andmeliikide ja mõnede skriptide kasutamise näited. Ei tasu püüda saada kohe aru kõikidest detailidest. Hiljem võib pöörduda tagasi, käivitades ka toodud lingilt rakenduse Scratchi koduserveril. Siis saate tutvuda täpsemal rakenduse struktuuriga, teha ka programmis muudatusi ja täiendusi, veebi klipi kasutamisel skripte ei näe ja neid muuta ei saa. Kui Teil on instaleeritud oma arvutis Scratch 2.0, võite käsuga Fail/Lae oma arvutisse, salvestada rakenduse oma arvutisse,
Rakenduses on kasutusel üks aktiivne sprait: Kraps, sellel on kaks kostüümi, mis kujutavad endast graafikaobjekte (pilte). Kasutusel on ka kaks, võiks öelda passiivset spraiti: skriptide pildid ja selgituste tekst. Rakenduse töötavad skriptid asuvad loomulikult skripide alas, siin kasutakse nende pilte illustratsiooniks ja selgituseks. Formaalselt on tegemist spraitidega, milledel on mitu kostüümi. Klõpsates spraiti, saab näha järgmist kostüümi (paegu järgmise skripti pilti). GraafikaobjektidGraafikaobjektid on olulisemad Scratch programmide komponendid. Scratchi peamine objekt: spraitkoosneb ühest või mitmest kostüümist, mis on lihtsalt graafikaobjekt: pilt. Kasutatakse erineva vormingus graafikat: JPG, BMP, PNG, GIF (kaasaarvatud animeeritud GIF). Süsteemis on olemas suur valik spraite (täpsemalt kostüüme: graafikaobjekte) ja saab kasutada oma graafikafaile spraitide loomiseks, lihtsalt importideks neid projekti. Seega võiks veelkord öelda, et peamine Scratchi programmides seisneb graafikaobjektide kasutamises. Ühtlasi see võimaldab tutvuda objektorienteeritud lähenemisviisiga ja modelleerimisega. Tegevuste määramiseks graafikaobjektidega on Scratchis suur hulk käske. Võiks isegi öelda, et põhiosa neist on just mõeldud manipuleerimiseks spraitidega (asukoha, suuruse, värvuse muutmine jm) või spraitide poolt täidetavate tegevuste (arvutamine, joonistamine, rääkimine jm). Käskude abil loodud programmiüksus: skript, kuulub ainut ühele spraidile ja saab määrata ainult selle tegevusi. Taoline käsitlus on üsna lähedane objektorienteeritud programmerimis-süsteemides (Java, C, Python jt) kasutatavates meetodite kasutamisele. Heliobjektid ja helindidHeliandmed leiavad tänapäeval üha laiemat kasutamist infotehnoloogias. Seda eeskätt mäluseamete mahu ning andmete ülekande kiiruse olulisele kasvusele. Ka Scratch 2.0 on olulist tähelepanu pööratud heliandmete kasutamisele. Rakenduste loojale on nende kasutamine oma projektides väga lihtne. Saab kasutada MP3 ja WAV faile. Neid saab importida vastava vorminguga failidest või lindistada ise.
Scratch 2.0-s on võrdlemisi efektiivsed ja paindlikud vahendid heli salvestamiseks ja redakteerimiseks (eeskätt kõne), Heliredaktor kuvab linndistatud heli "lainete" pildi. Saab kuulata lindistaud heli ja peatada seda vajalikus kohtades, kerida edasi ja tagasi. Nö tavaliste redigeerimise käskude (kopeeri, lõika, kleebi, eemalda jm) abil, saab muuta salvestatud heli. Saab muuta ka lindistatud heli vaiksemas ja tugevamaks. Helindite kasutamisel siin pikemalt ei peatu. Neid saab panna kõlama käskudega [mängi nooti nr ...] ja [mängi trummi nr ...]. Käskudest koostatud skriptide abil saab koostada lihtsamaid komposatsioone, kui selleks peab veidi tundma muusikat. MuutujadMuutuja on keskseks mõisteks kõikides pr0grammeerimiskeeltes. Nende kasutamine sageli tekitab algajale programmeerijale teatud probleeme. Üheks põhjuseks on muutuja. matemaatikast tuleneva, liiga abstrakse käsitlemine. Programmeerimises on muutuja näol tegemist hoopis füüsikalise objektiga - mäluvälja ehk mälupesaga. Mäluvälja kasutatakse muutuva suuruse salvestamiseks, kusjuures väärtus programmi täitmisel ei pruugigi muutuda.
Allpool on toodud skeem, mis näitab muutujate esitamise põhimõtted arvuti sisemälus. Näide "Korrutamine"Rakendus simuleerib (imiteerib) programmi täitmist virtuaalarvutis. Põhirõhk on siin muutujate kasutamisel, kuid peegeldatakse ka mõningaid teisi elemente. Objektide ja veidi ka muutujate kasutamist oli demonstreeritud ka esimeses näites "Krapsu sünnipäev".
Väärtuste väljastamineScratch ei saa printida andmeid ega väljastada neid välismälu faili, Andmeid saab ainult kuvada kuvari ekraanile kahel viisil:
Näidikute abil väärtuse kuvamine kaasneb väärtuse leidmisele käskudega Väärtuste sisestamine klaviatuuriltVäärtuse lugemiseks klaviatuurilt saab kasutada käsku [küsi...]: Kui kasutaja tipib tekstiväljas väärtuse (tekst või arv) ja vajutab klahvile Enter või klõpsab märkeringi tekstivälja paremas otsas, võetakse väärtus ploki väärtuseks. Ploki [vastus] näol on tegemist omamoodi süsteemi sisemuutujaga. Seda võib kasutada avaldistes ja käskudes või selle väärtuse võib omistada muutujale. Järgmise käsu [küsi …] täitmisel asendab uus sisend ploki (muutuja) [vastus] eelmise väärtuse. Näide "Liikumine"Antud rakenduses demonstreeritakse korduse ja selles muutujate kasutamist objekti (Krapsu) asukoha muutmiseks. Kasutusel on kaks põhimuutujat: n - kordamiste (sammude) arv ja h - sammu pikkus (pikslites). Igal kordamisel teeb Kraps ühe sammu, vahetab kostüümi ja teeb väikese pausi.
Näide "Naturaalarvude ruutude summa"Rakendus simuleerib programmi tööd, mis leiab naturaalarvude ruutude summa, Kasutusel on kolm muutujat: k - liikme jooksev number, n - liikmete arv, Sum - liikmete ruutude summa. Siin on näidatud Scratchi spraidi täitmist.
Loendid. Maksimumi leidmine
|