Feladat: I.387 Korcsoport: - Nehézségi fok: -
Füzet: 2015/november, 478 - 479. oldal  PDF  |  MathML 

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

A római számok arab számokká alakítása volt a témája a 2012. májusi emelt szintű informatika érettségi gyakorlati vizsga táblázatkezelés feladatának. Az ott megadott algoritmust funkcionális programozással is megvalósíthatjuk.
Alakítsuk át a római számokat arab számokká a megadott algoritmus alapján Logo nyelvű programmal. A római szám íráshelyességének vizsgálata most nem szükséges. Csak 1-től 4000-ig terjedő, nagybetűs római számokkal foglalkozunk, amelyek legfeljebb 20 karakterrel leírhatók.
Az átalakítás algoritmusa:

 
 

Az adott számjegy előjele akkor negatív, ha az utána következő számjegy nála nagyobb. Az utolsó számjegyérték mindenképpen pozitív.
Készítsük el az algoritmus egyes lépéseit megvalósító Logo szavakat, majd ezek segítségével az átváltást végrehajtó római_tízes szót.
 
Példa a parancsraEredmény   római_tízes "MCCXCIV1294   
 

A megoldás során csak a programozási nyelv automata és funkcionális részét használjuk. Ne alkalmazzunk változókat, csak paraméterezést.
Beküldendő a program projektállománya, forráskódja (i387.imp).