[viesti Survo-keskustelupalstalla (2001-2013)]
| Kirjoittaja: | Kimmo Vehkalahti |
|---|---|
| Sähköposti: | - |
| Päiväys: | 29.5.2004 23:26 |
Vähän yli kuukausi sitten esitelmöin Survo-Käyttäjäyhdistyksen
vuosikokousristeilyllä otsikolla "Survon käytöstä tutkimuksessa,
opetuksessa, hallinnossa ja harrastuksissa". Mainitsin tuolloin
yhtenä esimerkkinä Survoon liittyvistä harrastuksistani melonnan
ja näytin kesän 2003 melontareissua varten tekemiäni kaavioita
ja kuvioita. Samat hommat ovat meneillään tulevaa kesää varten,
viime vuoden pohjien avulla entistä helpommin - kuten yleensä
Survo-työskentelyssä.
Voisin netin välityksellä vähän jatkaa esitelmääni näyttämällä
muutamia ovelia temppuja, joissa osittain ovat käytössä vanhat
konstit mutta joissain kohdin otetaan mukaan pussillinen uusia.
Seuraavassa on kysymys n. viikon mittaisen reissun logistiikan
suunnittelusta. Käytössä on kaksi autoa, joiden ajokilometrit
on arvioitu karttojen perusteella. Tässä on pala suunnitelmasta:
...
11.00 Vaihto 23 Vehkataipale, koulu 13 Yaris
Ajo Kouvola 110 Golf
14.00 Vaihto 24 Lappeenranta, Myllysaari 25 Golf
Siirto Luumäki, Risulahti 25 Golf
Leiri Kouvola, Tykkimäki
Purku Lomakeskus Saimaanranta
Ajo Kouvola 130 Yaris
18.00 Vaihto 26 Kukasranta, leirikeskus 65 Yaris
...
Nyt kiinnosti tietää, paljonko kullekin autolle olisi yhteensä
tiedossa kilometrejä kyseisen viikon aikana. Reissun luonnehan
on sellainen, että suurin osa ajasta kuluu autoissa, ja vain
aika ajoin on edes kyse melonnasta - noin hieman karrikoituna.
Ensimmäinen ajatus oli käyttää kosketuslaskentaa ja vuorotellen
tökkiä plussalla "Golf"-luvut ja sitten "Yaris"-luvut. Kätevää
toki sekin, mutta vähän turhan paljon käsityötä. (Tässä Survon
käyttäjänä on oppinut aika ronkeliksi; moni tietokoneen äärellä
istuvahan ottaisi *laskukoneen* käteensä ja tökkisi nuo *luvut*
sillä uudelleen (!). Survossa riittää hipaista valmiina kentässä
olevia lukuja sopivilla laskutoimitusnapeilla, esim. plussalla.)
Niinpä mielessäni syntyi toisenlainen ajatus. "Otin lukua" vanhalla
kunnon blokkitoiminnolla. Tässä teille koko tuo blokki (juttu jatkuu
sen alapuolella...):
470 Golf
470 Yaris
2 Golf
12 Yaris
95 Golf
100 Yaris
35 Yaris
55 Yaris
18 Yaris
23 Yaris
40 Yaris
23 Yaris
7 Yaris
23 Yaris
100 Golf
116 Yaris
58 Yaris
35 Yaris
12 Yaris
70 Yaris
38 Yaris
55 Golf
75 Golf
95 Yaris
12 Yaris
38 Yaris
2 Yaris
125 Golf
141 Yaris
8 Yaris
8 Yaris
13 Yaris
110 Golf
25 Golf
25 Golf
130 Yaris
65 Yaris
32 Yaris
20 Yaris
60 Golf
60 Yaris
40 Golf
35 Yaris
5 Yaris
5 Golf
134 Yaris
134 Golf
Mitäkö sitten? Tietysti mielessäni oli pieni kiva havaintoaineisto,
mutta logistiikkasuunnitelman leiri- ym. rivit aiheuttivat ikäviä
aukkoja kuten edeltä on havaittavissa. Ne olisi tietysti voinut
käydä napsimassa pois rivi kerrallaan, mutta etenkin kun tällaisia
suunnitelmia väsäilee iltamyöhällä, on riski poistaa vahingossa
muitakin kuin tyhjiä rivejä. Eikä muutenkaan moinen käsityö taas
houkutellut lainkaan.
Hätä ei ollut tämän näköinen, sillä mokoman harvahampaisen datan
sai helposti tiivistettyä sen yllä annetulla LINEDEL-komennolla:
LINEDEL CUR+2,END,EMPTY / (Tämä on verrattain uusi toiminto!)
Viuh vain - ja johan kehtasin nimetä taulukon dataksi:
DATA _AUTOT
km auto
470 Golf
470 Yaris
2 Golf
...
Loppu on silkkaa rutiinia, jonka tulin kuvioineeksi tällä kertaa
seuraavasti:
(Ensin en innostuneisuuttani muistanut, että aggrekointi edellyttää
datatiedostoa; oheinen virheilmoitus muistuttaa samalla myös Survon
PC:lle tehtyjen toteutusten lähestyvästä 20-vuotisjuhlasta...) :-)
FILE AGGRE _AUTOT,AUTOT_KM / "_AUTOT must be a SURVO 84 data file!"
Tehdään siis taulukosta datatiedosto AUTOT:
FILE COPY _AUTOT TO AUTOT
Lasketaan sitten autokohtaiset summat datatiedostoon AUTOT_KM:
FILE AGGRE AUTOT,AUTOT_KM / AGGRE=auto,SUM
Sinänsä suoraviivainen FILE LOAD edellyttäisi tässä tapauksessa
km-muuttujan tulostusformaatin säätelyä, johon ei juuri nyt viitsi
ryhtyä. Onneksi asioita voi tehdä niin monilla vaihtoehtoisilla
tavoilla. Käytetään tässä vaikkapa matriiseja. Talletetaan data
AUTOT_KM (2 muuttujaa, 2 havaintoa) matriisiksi AUTOT:
MAT SAVE DATA AUTOT_KM TO AUTOT / MASK=BA
Tässä suorastaan herkullisen pikantti yksityiskohta on muuttujien
järjestyksen vaihtaminen maskikirjainten avulla, sillä nyt autojen
nimet siirtyvät nätisti matriisin riviotsikoiksi. Survon käyttäjä
ei todellakaan tyydy pelkkiin numeroihin matriisienkaan kanssa. :)
Lopputulos saadaan näkyviin esim. MAT LOAD -komennolla, mutta itse
pidän kovasti LOADM:stä ja sen erilaisista optioista, siispä:
LOADM AUTOT (4) CUR+2 / SORT=1
AUTOT
km
Yaris 1933
Golf 1321
Säätämällä tulostusparametria (4) voisi tehdä helposti juuri tietyn
levyisiä tulostaulukoita, esim.
LOADM AUTOT (33) CUR+2
AUTOT
km
Yaris 1933
Golf 1321
Täytyy lopuksi todeta, että minulle yksi motivaation lähde (ei
kuitenkaan ainoa!) koko tässä melontatouhussa on se että suunnittelu
talven ja kevään aikana on Survolla niin tolkuttoman hauskaa: voi
tehdä juttuja juuri niin kuin huvittaa. Näkisittepä ne kaikki
paperit, toimituskentistä nyt puhumattakaan... ;-)
- Kimmo
| Vastaukset: |
|---|
Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!