Ajokilometrien laskeskelua

[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:
[ei vastauksia]

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!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.