Euromuunto

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 3.8.2001 14:46

Kaikki tietävät, että lähiaikoina joudutaan aika paljon muuntelemaan
hintoja markoista euroiksi ja päinvastoin.
Survossa lienee tähän jo tällä hetkellä riittävästi keinoja esim.
muunnosten 100*(EUR:FIM)=594.573 ja 594.573(FIM:EUR)=100 kaltaisesti.

Tästä huolimatta jotkut (kuten minä) saattavat kaivata vielä kätevämpiä
keinoja ja niitähän syntyy Survoon vaikka minkälaisia sukrotekniikalla.

Tarjoan tässä malliksi yhtä sukroa, joka jopa tekstin seassa muuntaa
suoraan molempiin suuntiin.
Sukron nimi on (kuinkas muuten) E ja sen listaus on tämän viestin
lopussa, joten siitä vain kokeilemaan.

Toimintaperiaate on seuraava:
Omenasurvoksen hinta on 12 mk (ei siis kovin kallis).
Jos haluan saada tuon 12 mk muunnetuksi euroiksi, vien kohdistimen
mk:n perään (12 mk_) ja aktivoin sukron E painamalla näppäimiä
F2 M E
Tällöin tuo hintarivi muuntuu seuraavaksi:
Omenasurvoksen hinta on 12 mk (2.02 e) (ei siis kovin kallis).

Vastaavasti:
Eurosurvoksen hinta on 3.25 e eikä ihan mahdoton.
Jos tässä E aktivoidaan e:n perästä (e_) rivistä tulee
Eurosurvoksen hinta on 3.25 e (19.32 mk) eikä ihan mahdoton.

Siis sama E-sukro tekee muunnokset molempiin suuntiin. Suunnan
määrää luonnollisesti yksikön nimi, jollaiseksi kelpaa markkoina
mk, MK, FIM ja fim ja toiseen suuntaan euroina e, E, EUR, eur.
Huomaa myös pyöristykset sadasosiin.

Tässä ehdotuksessa saattaa olla vielä kehittämisen varaa ja
joillakin voi olla toisenlaisia näkemyksiä siitä, mitä tarvitaan
ja mikä on kätevintä.
Eli, tehkää parempia ehdotuksia. Paras pääsköön Survon vakiojakeluun.

Kokeilkaa kuitenkin ensin tätä eli siirtäkää alla oleva teksti
esim. leikepöydän kautta Survon toimituskenttään:

DELETE / Vie kohdistin kontrollisarakkeeseen ja aktivoi tämä!
*TUTSAVE <Survo>\U\S\E / Sitten talleta sukro E tällä komennolla!
/
/  def Weuro=W1 Wyksikkö=W2 Wmäärä=W3
/
*{tempo -1}{init}{Weuro=5.94573}{ref}
+ A: {save char W4}
- if W4 '<>' {sp} then goto B
*{l}{save cursor W4,W5}
- if W5 = 1 then goto C else goto A
+ B: {save word Wyksikkö}
+ D: {l}{save char W4}
- if W4 '=' {sp} then goto E
*{save cursor W4,W5}
- if W5 = 1 then goto C else goto D
+ E: {l}{save char W4}
- if W4 '<>' {sp} then goto F
*{save cursor W4,W5}
- if W5 = 1 then goto C else goto E
+ F: {save word Wmäärä}
- if Wmäärä <= 0 then goto C
- switch Wyksikkö
-   case mk: goto MK
-   case MK: goto MK
-   case FIM: goto MK
-   case fim: goto MK
-   case e: goto EU
-   case E: goto EU
-   case EUR: goto EU
-   case eur: goto EU
-   default: goto C
+ MK: {W4=1}{Wmäärä=Wmäärä/Weuro}{goto G}
+ EU: {W4=2}{Wmäärä=Wmäärä*Weuro}
+ G: {d}{u}{ins line}int(100*{print Wmäärä}+0.5)/100={act}
*{l} {save word Wmäärä}{del line}
*{ref}{ref}{ins} ({write Wmäärä} {}
- if W4 = 1 then goto MK2
*mk){ins}{goto END}
+ MK2: e){ins}{goto END}
+ C: {ref}{ref}{goto END}
+ END: {tempo +1}{end}

- Seppo M.

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!

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