Курсовая работа: Программа для перевода текстов с транслита

В приложении №1 приводится блок-схема этого алгоритма.

Обратный перевод осуществляется аналогично прямому за исключением того, что из строки с транслитом сначала выбирается подстрока с длинной равной наибольшей длинне буквы в словаре транслита (для правильной обработки символов типа «ъ» - «’ ’» и «ь» - «’ ’»):

procedure TMainForm.acLatTuCyrExecute(Sender: TObject);

const

lat_small : set of char = ['a'..'z',''''];

lat_up : set of char = ['A'..'Z'];

var

i1,j1,i3,max_l,tek_l,len :integer;

str,str1,st2 :string;

ch :char;

ok1,f_ok :boolean;

function find(var st_in:string):boolean; //Эта функция ищет в alph['А'..'Я'] заданную строку

var //т.е. пытается определить какой букве русского алфавита соответствует введенная строка

i2 :char;

j2,i3 :integer;

st_mod :string;

ok :boolean;

begin

st_mod:= st_in; //Будем работать с локальной переменной, чтоб не испортить исходную строку

forj2:= 1 tolength(st_mod) do //уменьшаем регистр у символов в строке

st_mod[j2]:= downcase(st_mod[j2]);

find:= false; //Присваиваем начальное значение результату функции

ifb_jo = st_modthen //буква определяется Ё отдельно

begin

st_mod:= 'Ё';

if st_in[1] in lat_small then st_mod:= 'ё'; //проверяем должна ли буква быть маленькой

st_in:= st_mod; //меняем исходную на переведенную

find:= true; //да, мы нашли соответствие возвращаем true

exit; //досрочныйвыход.

К-во Просмотров: 718
Бесплатно скачать Курсовая работа: Программа для перевода текстов с транслита