Antaaksemme todemman kuvan sukroista esittelemme muutamia valmiita ratkaisuja. Näihin esimerkkeihin kuuluvat sukrot ovat joko tähän oppaaseen liittyvällä levykkeellä tai kuuluvat Survon vakiovarustukseen. Emme yleensä esitä täydellisiä listauksia, vaan lukijaa kehoitetaan kaivamaan ne katseltavakseen oman Survonsa avulla. Esimerkeistä on toivottavasti hyötyä uusia ratkaisuja viriteltäessä.
Tämä lienee toistaiseksi laajin sukrojen muodossa tehty sovellus.
Siihen kuuluu yli 200 sukroa, joista osa on pakattu samoihin
.TUT
-tiedostoihin. Pelkät sukrotiedostot käsittävät yli puoli
miljoonaa tavua. Lisäksi opetussarjassa on useita toimituskenttiä,
joissa on valmiina mm. suurin osa valikoista.
Opetussarjasta kerrotaan Survo-oppaassa, jossa on myös liitteenä
opetusohjelmien otsikot valikkorakenteen mukaisessa järjestyksessä.
Opetussarja käynnistyy Survon TUT
-hakemistossa olevalla sukrolla
OPETUS
, jota voi käyttää myös aloitussukrona eli ottamalla Survo
käyttöön komennolla SURVO OPETUS
päästään välittömästi opetukseen.
Monet käyttäjät ovat toivoneet, että opetusohjelmia voisi katsella
myös tekeillä olevan työn lomassa niin, että katselun päätyttyä
palattaisiin automaattisesti takaisin omaan työhön. Tämä ominaisuus on
nyt (versiosta 3.22 lähtien) lisätty opetussarjaan seuraavalla
tavalla.
Sukro OPETUS
tallettaa nykyisen datapolun, kohdistimen sijainnin
ja toimituskentän sisällön ennen opetuksen aloittamista. Sukron OPETUS
listaus on seuraava:
|
|
Lähtökohtana olleen työn tiedot tallentuvat Survon
väliaikaistiedostoille tarkoitettuun tempdisk-hakemistoon tiedostoiksi
SURVOPE.STK
(sukromuistina, jossa on datapolku ja kohdistimen
sijainti) ja SURVOPE.EDT
(toimituskenttä).
Jotta toimituskenttää ei pilattaisi millään ylimääräisillä
teksteillä, sitä talleteta tavanomaisella Survon SAVE
-komennolla vaan
näkymättömällä sukrokielen käskyllä {save field SURVOPE}
.
Itse opetussarjankin saattaa aloittaa, kirjoittamatta komentoa
/OPETUS
, yksinkertaisesti näppäinsukrolla O
, eli näppäinyhdistelmällä
PREFIX M O
.
Kaikkiin opetussarjan valikkoihin on lisätty vaihtoehto
P. Paluu aikaisempaan työhön
jolla kutsutaan sukro PALUU
:
|
|
Huomaa, että sukro PALUU
tunnistaa sen tapauksen, jossa koko Survo
on aloitettu OPETUS
-sukrolla, jolloin ei löydy mitään "tekeillä olevaa
työtä", johon palata. Tunnistus tapahtuu sen kautta, että
aloitussukroissa muisti alustetaan arvolla W1=(start)
arvon
W1=(empty)
asemasta. Kuten riviltä 36 nähdään, tässä
aloitustilanteessa palataan koko Survon alkukenttään RETURN
-sukrolla.
Automaattinen paluu omaan työhön onnistuu jopa silloinkin, kun on
keskeyttänyt opetussarjan napilla piste ja tehnyt joitain omia
kokeitaan. Edellyttäen, että on pysytty opetushakemistossa, paluu
tapahtuu yksinkertaisesti komennolla /PALUU
.
Edellä mainitut sukrot OPETUS
ja PALUU
antavat mallia muille
vastaaville ratkaisuille, joiden halutaan toimivan ikäänkuin tekeillä
olevan työn aliohjelmina (itse asiassa jopa jonkin toisen sukron
alaisuudessa). Riittää, kun muuttaa tiedosto- ja polkunimet uuden
tilanteen mukaan.
OPETUS
-sukro päättää oman toimintansa asettamalla sukromuistin
sisällöksi W1=1
ja pyytää sukroa SEURAAVA
jatkamaan:
|
|
SEURAAVA
aloittaa kutsumalla käyttöönsä toimituskentän VALIKKO
,
jonka ensimmäisillä riveillä on opetussarjan päävalikko. Tämän valikon
alle (riville 22) sukro kirjoittaa valintaa koskevan kysymyksen,
jolloin kuvaruudussa näkyy:
|
|
Ottamalla valikot suoraan toimituskentistä edetään nopeammin kuin
panemalla sukro kirjoittamaan kaikki tekstit.
Muistipaikkaa W1
käytetään opetussarjassa jatkuvasti eräänlaisena
viestikapulana. Valikosta toiseen siirryttäessä se kertoo seuraavaksi
tarkoitetun oletusvastauksen. Tässä alussa sukro OPETUS
on asettanut
oletusvalinnaksi arvon 1
, jonka SEURAAVA
näyttää valintakysymyksen
perässä. Kun käyttäjä valitsee tämän tai jonkin muun vaihtoehdon,
pidetään huolta siitä, että oletusvastaus muuttuu asianmukaisesti
(yleensä seuraavaksi arvoksi) palattaessa takaisin tähän päävalikkoon.
Jos tyydytään oletusvastauksiin, koko opetussarja tulee näin käydyksi
läpi valikkojen mukaisessa järjestyksessä.
Jos käyttäjä valitsee esim. vaihtoehdon 7
(Matemaattiset
toiminnat), tämä johtaa sukron MATEMS
aloittamiseen (ei aliohjelmana
vaan sukron SEURAAVA
jatkona). MATEMS
puolestaan aloittaa näyttämällä
uutta valikkoa, josta päästään eri tavoilla eteenpäin. Vaihtoehtona
kussakin jatkovalikossa on kuitenkin aina
X. Paluu edelliseen valikkoon
jota käyttämällä saatetaan kelata
valikkojonoa taaksepäin. Lopulta voidaan tulla takaisin (sukron
MATEMS
kautta) päävalikkoon, jolloin MATEMS
ennen sukron SEURAAVA
kutsumista asettaa W1=8
ja näin päävalikossa ehdotetaan seuraavaa
vaihtoehtoa (Kuvien piirtäminen).
Kun haluaa tutkia tarkemmin esim. näitä opetusohjelmia, on välttämätöntä tietää niiden nimet, jotta voisi ottaa listauksen esille. Tämä onnistuu käyttämällä ko. sukroa (siis valitsemalla opetussarjassa kiinnostuksen kohteena olevan aiheen), siirtymällä askeltavaan etenemiseen HELP-napilla (F1) ja painamalla nappia HOME . Tällöin Survon ikkunan alle ilmestyy juuri toimivan sukron täydellinen polkunimi.
Survon havaintotiedostoja käsitellään normaalisti esim. FILE
SHOW
-operaatiolla, jolla mm. katsellaan aineistoja ja talletetaan
niitä. FILE SHOW
on erillinen Survon moduli, jonka Survon toimitin
kutsuu tarvittaessa käyttöön ns. lapsiprosessina.
Myös lapsiprosessit toimivat tarvittaessa sukrojen alaisina.
Normaalisti niillä ei ole kuitenkaan suoraa yhteyttä käyttäjään; ne
toteuttavat tehtävänsä toimittimesta annetun komennon, siihen
liittyvien parametrien ja täsmennysten opastamana. Tällöin on myös
samantekevää, ohjaako toimintaa inhimillinen käyttäjä vai sukro.
FILE SHOW
kuten myös muut vuorovaikutteiset Survon operaatiot
(esim. SHOW
, FILE EDIT
ja Survon neuvontajärjestelmä) on sikäli
poikkeuksellinen, että se odottaa käyttäjältä omaa aktiivisuutta.
Tällöin toimiessaan sukron alaisuudessa FILE SHOW
edellyttää sukron
sisältävän kaikki toimintansa ohjaamiseen tarvittavat
näppäinpainallukset, mikäli työskentely tapahtuu oletusarvoisessa
{interaction off}
-tilassa. Kuten kohdassa Käyttäjän vuorovaikutus
kuvattiin, FILE SHOW
ja muut lapsiprosesseina toimivat
vuorovaikutteiset Survo-modulit kuitenkin kytkeytyvät väliaikaisesti
irti sukron holhouksesta, kun ennen kyseistä toimintaa annetaan
{interaction on}
-käsky. Tätä tekniikkaa kannattaa suosia tehtäessä
sukroja tiedostojen vapaamuotoiseen selailuun ja päivitykseen.
Jos sen sijaan halutaan sukron tallettavan jonkin etukäteen
määrätyn tiedon havaintotiedostoon, sukron tulee sisältää kaikki
talletustoimenpiteeseen tarvittavat painallukset.
Sukrokieli toimii kuitenkin vain rajoitetusti vuorovaikutteisissa
Survon operaatioissa. Yleensä vain ne toimenpiteet, jotka voidaan
toteuttaa (mallityöskentelyllä) opetustilassa, ovat käytettävissä. Ei
ole siis mahdollista esim. viitata sukromuistiin vaan kaikki
toimenpiteet (näppäinpainallukset) on ilmaistava kirjaimellisesti.
Jos siis halutaan tallettaa esim. KUNNAT
-tiedostoon Helsingin
Äyri
-muuttujan arvoksi 15, se voisi tapahtua sukrolla TALL1
seuraavasti:
|
|
Listauksessa riveillä 33-45 esiintyvä sukrokoodi ohjaa FILE
SHOW
-operaation sisäistä toimintaa. Tässä koodissa saattaa esiintyä
vain suoraa tekstinkirjoitusta ja erikoisnäppäinten painalluksia siinä
laajuudessa kuin ao. operaatio niitä edellyttää. Parametritietoja ei
voi antaa sukromuistin välityksellä. Yllä olevaa TALL1
-sukroa ei siis
ole mahdollista yleistää koskemaan mielivaltaista tilannetta.
Yleinen ratkaisu saavutetaan kuitenkin panemalla talletussukro
ensin kirjoittamaan parametriensa mukaan apusukron, joka tekee
tarvittavan toimenpiteen aliohjelmana.
Näin on menetelty FILE
-sukroissa FILE-SAVE
ja FILE-LOAD
. Esim.
FILE-SAVE
-sukron listaus on näyttää tällaiselta:
|
|
Rivillä 77 näytetään, miten FILE-SAVE
-sukro tekee täsmälleen
saman työn kuin TALL1
. Tämä tapahtuu siten, että FILE-SAVE
kirjoittaa
itse toimituskenttään komennon TUTSAVE FILESAVE
(rivi 63) ja sen alle
tarvittavat sukrokieliset käskyt. Huomaa, että aaltosulut { }
on
kirjoitettava koodisanoina {(}
ja {)}
, jotta sukrotulkki ymmärtäisi ne
kirjaimellisesti. Kun siis FILE-SAVE
aloitetaan riviltä 77, se
kirjoittaa toimituskenttään listauksen
|
|
ja aktivoi sitten TUTSAVE
-komennon rivillä 78. Näin se tallettaa
sukron FILESAVE
, joka toiminnaltaan on sama kuin TALL1
. Sukro
FILE-SAVE
kutsuu lopuksi (listauksen rivillä 74) itse laatimaansa
sukroa FILESAVE
hoitamaan varsinaisen talletuksen.
Sitä, että ohjelma kirjoittaa itse lisää ohjelmakoodia ja käyttää sitä oman toimintansa apuna, on tietenkin aika erikoinen ratkaisu. Tällainen tekniikka luontuu sukrokielessä helpommin kuin monissa muissa kielissä, koska ohjelmointi- ja sovellusympäristöt ovat samat.
Sukrot FILE-SAVE
ja FILE-LOAD
ovat työkaluja, jotka on
liitettävissä aliohjelmina mihin tahansa tiedonhallintasukroon. Ne
toimivat myös malleina muille vastaaville ratkaisuille.
Monet tilastolliset analyysit ovat laskentasuorituksina
vaiheittaisia. Käyttäjä saattaa kussakin vaiheessa valita haluamansa
useista laskentamenetelmistä ja kokeilla erilaisia ratkaisutapoja.
Jotta hänelle jäisi täysi vapaus edetä omaan tyyliinsä, monivaiheisia
tilastollisia menetelmiä ei Survossa ole ohjelmoitu yhdeksi
operaatioksi vaan niitä sovelletaan yhdistelemällä useita operaatioita
peräkkäin.
Koska menetelmien suoritus jakautuu näin osiin, käyttäjältä
edellytetään ainakin sen verran ammattitaitoa, että hän tuntee ko.
menetelmän pääpiirteet.
Kokemattomia käyttäjiä on mahdollista auttaa tekemällä sukroja,
jotka hänen puolestaan toteuttavat menetelmän vaatimat laskentavaiheet
jonkin kaavamaisen periaatteen mukaisesti.
Sopiva esimerkki tällaisesta tilastollisesta sukrosta on FACTOR
,
joka käy läpi faktorianalyysin päävaiheet. Kun aktivoidaan komento
/FACTOR <havaintoaineiston_nimi>
sukro FACTOR
laskee aineiston
aktiivisista muuttujista ja havainnoista korrelaatiomatiisin
(CORR
-operaatiolla), tutkii tämän matriisin ominaisarvoja ja valitsee
sopivan faktoriluvun, tekee faktoroinnin suurimman uskottavuuden
menetelmällä (FACTA
) ja lopuksi (komennolla ROTATE
) Varimax-rotaation,
jonka antama faktorimatriisi tulostetaan toimituskenttään. Kenttään
ilmaantuvat myös vaiheittain kaikki käytetyt Survon komennot, jolloin
jälkikäteen voi itsenäisesti toistaa laskelmat jollakin toisella
faktoriluvulla.
FACTOR
-sukron ehkä mielenkiintoisin osavaihe on faktoriluvun
valinta korrelaatiomatriisin ominaisarvojen perusteella. Se tapahtuu
poimimalla laskevassa suuruusjärjestyksessä peräkkäisiä ominaisarvoja
sukromuistiin ja vertailemalla niiden suuruuksia. Katkaisu tehdään
sillä kohtaa, jossa arvot painuvat alle yhden ja katkaisun jälkeinen
ominaisarvo on edelliseen nähden suhteellisesti pienin. Tarkka kuvaus
löytyy FACTOR
-sukron listauksesta komennolla TUTLOAD C:\E\S\FACTOR
.
Suomenkieliseen opetusohjelmasarjaan sisältyy tilastollisten
menetelmien osastossa jakso "Tilastolliset testit". Se käsittelee
Survoon kuuluvan COMPARE
-operaation käyttöä. Ko. operaatio sisältää
kosolti vaihtoehtoisia tapoja tarkastella ja vertailla kahta tai
useampaa riippumatonta tai rinnakkaista otosta. Koska testien
soveltamiselle on erilaisia olettamuksia mitä tulee perusjoukkojen
jakaumiin ja mittauksen tasoon, käyttäjää tukee VERTAA
-niminen sukro.
VERTAA
selvittää muutaman käyttäjälle osoitetun kysymyksen
perusteella, millaisesta tilanteesta on kysymys, aktivoi sitten
COMPARE
-operaation sopivin parametrein, suomentaa tuloskaaviot ja
kirjoittaa lyhyet selväkieliset päätelmät. Tavoitteena on ollut antaa
tilastollisiin testeihin perehtymättömille jonkinlainen mahdollisuus
tutustua aiheeseen ja ratkaista käytännössä eteen tulevia tehtäviä.
VERTAA
koostuu kolmesta sukrosta (VERTAA
, VERTAA1
ja VERTAA2
),
joista itse VERTAA
pohjustaa työn esittämällä käyttäjälle kysymykset
ja kutsuu sen jälkeen joko sukron VERTAA1
(riippumattomien otosten
vertailu) tai sukron VERTAA2
(parittaiset otokset) jatkamaan. Nämä
sukrot löytyvät opetusohjelmien alihakemistosta OPETUS
.