-- 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