|
В библиотеке пишется простая функция для преобразования:
функция ЧислоВРимское(число
num): строка !в параметре передается целое
десятичное число
переменные
колонка(число) vals;
колонка(строка) roms;
число b := 13;
строка Рез;
начало
Рез := "";
vals := Массив(1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000);
roms := Массив('I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D',
'CM', 'M');
пока num > 0 делать
пока vals(b) > num делать Инк(b, -1); конец;
Инк(num, -vals(b));
Рез := Рез + roms(b)
конец;
выход Рез
конец
|
|
функция Транс(строка Стр) : строка !в
параметре передается строка на русском языке
переменные
строка Л, Л2, Рез;
число А, К;
начало
А := 0; Рез := "";
пока А < ДлинаСтроки(Стр) делать
Инк(А);
Л := ЧастьСтроки(Стр, А, 1); К := КодСим(Л);
если А < ДлинаСтроки(Стр) то Л2 := ЧастьСтроки(Стр,
А+1, 1); иначе Л2 := "" конец;
если Л = "А" или Л = "а" то Рез := Рез +
"A"; продолжить конец;
если Л = "Б" или Л = "б" то Рез := Рез +
"B"; продолжить конец;
если Л = "В" или Л = "в" то Рез := Рез +
"V"; продолжить конец;
если Л = "Г" или Л = "г" то Рез := Рез +
"G"; продолжить конец;
если Л = "Д" или Л = "д" то Рез := Рез +
"D"; продолжить конец;
если Л = "Е" или Л = "е" или Л = "Ё"
или Л = "ё" то
если Л2 <> "" и (Л2 = "Й" или
Л2 = "й") то
Рез := Рез + "EY"; Инк(А);
иначе
Рез := Рез + "YE";
конец;
продолжить
конец;
если Л = "Ж" или Л = "ж" то Рез := Рез +
"ZH"; продолжить конец;
если Л = "З" или Л = "з" то Рез := Рез +
"Z"; продолжить конец;
если Л = "И" или Л = "и" то Рез := Рез +
"I"; продолжить конец;
если Л = "Й" или Л = "й" то Рез := Рез +
"Y"; продолжить конец;
если Л = "Ф" или Л = "ф" то Рез := Рез +
"F"; продолжить конец;
если Л = "Х" или Л = "х" то Рез := Рез +
"KH"; продолжить конец;
если Л = "Ц" или Л = "ц" то Рез := Рез +
"TS"; продолжить конец;
если Л = "Ч" или Л = "ч" то Рез := Рез +
"CH"; продолжить конец;
если Л = "Ш" или Л = "ш" то Рез := Рез +
"SH"; продолжить конец;
если Л = "Щ" или Л = "щ" то Рез := Рез +
"SHCH"; продолжить конец;
если Л = "Ы" или Л = "ы" то Рез := Рез +
"Y"; продолжить конец;
если Л = "Э" или Л = "э" то Рез := Рез +
"E"; продолжить конец;
если Л = "Ю" или Л = "ю" то Рез := Рез +
"YU"; продолжить конец;
если Л = "Я" или Л = "я" то Рез := Рез +
"YA"; продолжить конец;
если Л2 <> "" и (Л = "Ь" или Л = "ь")
то
если Л = "А" или Л = "а" то
Рез := Рез + "YA"; продолжить конец;
если Л = "Е" или Л = "е" или
Л = "Ё" или Л = "ё" то
Рез := Рез + "YE"; продолжить
конец;
если Л = "И" или Л = "и" то
Рез := Рез + "YI"; продолжить конец;
если Л = "О" или Л = "о" то
Рез := Рез + "YO"; продолжить конец;
если Л = "Э" или Л = "э" то
Рез := Рез + "YE"; продолжить конец;
если Л = "Ю" или Л = "ю" то
Рез := Рез + "YYU"; продолжить конец;
если Л = "Я" или Л = "я" то
Рез := Рез + "YYA"; продолжить конец;
конец;
если К >= 202 и К <= 207 то Рез := Рез +
Символ(К-127); продолжить конец;
если К >= 234 и К <= 239 то Рез := Рез +
Символ(К-159); продолжить конец;
если К >= 208 и К <= 211 то Рез := Рез +
Символ(К-126); продолжить конец;
если К >= 240 и К <= 243 то Рез := Рез +
Символ(К-158); продолжить конец;
Рез := Рез + Л;
конец;
выход Рез;
конец
|