-- EMU-alueen leikkirahat 1.0
-- Vaatimukset: AppleScript ja Standard Additions (Mac OS 8.5 mukana tulleet versiot tai uudemmat)
-- Skripti ei pyöristä, joten mahdolliset laskuvirheet aiheutuvat AINOASTAAN tietokoneesi liukulukutarkkuudesta.
-- Suurilla luvuilla laskiessa vastaus saattaa sisältää eksponetin muodossa E+(kokonaisluku).
-- Se tarkoittaa: kertaa kymmenen potenssiin positiivinen (kokonaisluku).
-- Muunnettaessa EMU-alueen kansallisia rahoja toisiksi kansallisiksi valuutoiksi muunnos
-- tehdään euron kautta käyttäen kansallisten valuuttojen muunnoskertoimia. Välituloksen,
-- joka on euroja, tulee sisältää vähintään kolme desimaalia.
property rates : ¬
{{name:"Suomen markka", currency:"FIM", rate:5.94573}, ¬
{name:"euro", currency:"Û", rate:1}, ¬
{name:"Belgian frangi", currency:"BEF", rate:40.3399}, ¬
{name:"Saksan markka", currency:"DEM", rate:1.95583}, ¬
{name:"Espanjan peseta", currency:"ESP", rate:166.386}, ¬
{name:"Ranskan frangi", currency:"FRF", rate:6.55957}, ¬
{name:"Irlannin punta", currency:"IEP", rate:0.787564}, ¬
{name:"Italian liira", currency:"ITL", rate:1936.27}, ¬
{name:"Luxemburgin frangi", currency:"LUF", rate:40.3399}, ¬
{name:"Alankomaiden guldeni", currency:"NLG", rate:2.20371}, ¬
{name:"Itävallan shillinki", currency:"ATS", rate:13.7603}, ¬
{name:"Portugalin escudo", currency:"PTE", rate:200.482}}
on run
-- Muuttujia:
set fromCurrency to ""
set value to ""
-- Laaditaan lista valuutoista, joiden kurssi on syötetty:
set currencies to {}
repeat with R in rates
set currencies to currencies & currency in R
end repeat
-- Käyttäjältä summa ja rahayksikkö:
repeat
display dialog ¬
"Anna rahamäärä yksikön kanssa. Esimerkkejä:" & return & ¬
"102,44 Û tai 12 FIM" default answer "" buttons {"Peru", "Jatka"} default button "Jatka"
if button returned of result is "Jatka" then
set txt to text returned of result
try
set tid to AppleScript's text item delimiters
set AppleScript's text item delimiters to " "
set fromCurrency to second text item in txt
set value to first text item in txt as real
set AppleScript's text item delimiters to tid
exit repeat
on error
end try
else -- peruttu.
exit repeat
end if
end repeat
if fromCurrency is not "" then
if value is not "" then
my evaluate(currencies, fromCurrency, value)
end if
end if
fromCurrency
end run
on evaluate(currencies, fromCurrency, value)
set A to ""
if fromCurrency is not "Û" then
repeat with R in rates
if currency in R is fromCurrency then
set A to rate in R
exit repeat
end if
end repeat
if A is not "" then
set euros to value / A
my calculations(currencies, euros)
else
display dialog ¬
"Tuntematon valuutta" buttons "Lopeta" default button 1
end if
else
set euros to value
my calculations(currencies, euros)
end if
end evaluate
on calculations(currencies, euros)
set toCurrency to (choose from list currencies with prompt "Mihin rahayksikköön muutetaan?")
if toCurrency is not false then -- käyttäjä ei perunut.
set toCurrency to toCurrency as string
repeat with R in rates
if currency in R is toCurrency then
set A to rate in R
exit repeat
end if
end repeat
set toValue to euros * A
set answerText to toValue & " " & toCurrency
set answerText to answerText as string
display dialog ¬
"Laskun tulos on " & answerText & return & ¬
"Voit kopioida sen Apupöydälle" & return & ¬
"valitsemalla Kopioi." buttons {"Lopeta", "Kopioi"} default button "Kopioi"
if button returned of result is "Kopioi" then
set the clipboard to answerText
end if
end if
end calculations