Постановка и актуальность задачи написания программы для перевода текстов с транслита. Метод ее решения, входные и выходные данные. Список процедур и функций выполняемые программой. Ее структура: главная форма, форма "О программе" и "Редактор алфавита".
Аннотация к работе
Программа должна иметь функцию перевода символов текста к верхнему и нижнему регистру, функцию подсчета количества символов в тексте.Перевод текста из кириллицы в транслит используется очень часто. Многие программы не поддерживают кириллицу и приходится вводить какие-либо комментарии на транслите.Так как программа должна иметь графический и интуитивно понятный интерфейс, то для решения очень подходит DELPHI. Вся программа была разбита на 3 формы: главная, форма работы со словарями и форма «О программе». Весь интерфейс был разработан на стандартных компонентах и обработчиках событий. Входные и выходные параметры могут быть двух типов: словарь и текст для перевода.Алфавит перевода представляет из себя массив переменных типа shortstring с индексами от «А» до «Я».var res:char; begin case ch_in of //проверяет является ли параметр ch_in русской буквой и если да "й": res:= "Й"; //то заменяет ее на аналогичную, но в верхнем регистре. else begin if not(ch_in in al_set) then res:= UPCASE(ch_in) else res:= ch_in; var res:char; "Й": res:= "й"; // буквой и если да, то возвращает соответствующую буквуПрограмма состоит из трех частей: · Главной формы (модуль unit_main) · Формы «О программе» (модуль unit_about) рис 2. При выборе меню «Перевод-> Редактор алфавита» вызывается форма работы с алфавитом, а при выборе «Справка-> О программе» вызывается форма «О программе».Обработчики событий главной формы: При создании формы загружается стандартный ГОСТ’овский словарь перевода из кириллицы в транслит и обнуляется текст выводящий количество символов в полях. Обработчики событий для кнопок: · Кнопка (редактировать алфавит), событие ACALPHEDIT «Обработчик события нажатия на кнопку Редактировать алфавит» procedure TMAINFORM.ACALPHEDITEXECUTE(Sender: TOBJECT); «Обработчик события нажатия на кнопку Открыть» procedure TMAINFORM.ACCYROPENEXECUTE(Sender: TOBJECT); «Обработчик события нажатия на кнопку Сохранить» procedure TMAINFORM.ACSAVECYREXECUTE(Sender: TOBJECT);Перевод из кириллицы в транслит: Построчно для каждой строки поля MEMCYR и посимвольно для каждого символа этой строки, программа проверяет ее вхождение в множество больших или маленьких символов русского алфавита. MAINFORM.MEMCYR.Clear;//чистим то, куда будем писать переведенный текст for i1:= 0 to MAINFORM.MEMCYR.Lines.Count-1 do //проходим по всем строкам в первом окошке begin str:= MAINFORM.MEMCYR.Lines[i1]; //считываем данные и обнуляем переменные str2:= ""; if ch in al_set then //если ch - заглавная русская буква begin if UPCASE_R(ch) = "Е" then str1:= b_jo //Е проверяем отдельно else str1:= alph[UPCASE_R(ch)]; //А все остальные берем из alph if str1 "" then //Этот блок делает заглавным то, begin //что должно быть заглавным. if (length(str)> j1)and(str[j1 1] in al_set)or (j1 > 1)and(str[j1-1] in al_set)then for i3:= 1 to length(str1) do //тут либо поднимается вся буква MAINFORM.MEMLAT.Lines.Add(str2); //добавляем переведенную строку в окошко с переводом end; //и все с начала (след. строка) end; begin st_mod:= st_in; //Будем работать с локальной переменной, чтоб не испортить исходную строку for j2:= 1 to length(st_mod) do //уменьшаем регистр у символов в строке st_mod[j2]:= downcase(st_mod[j2]);Текст для перевода может загружаться из файла или вводиться с клавиатуры, а результат работы - сохраняться в файл.Для тестов использовались два отрывка текста, написанных на кириллице. Первый из них - отрывок из первой главы книги «Библия Delphi» Михаила Фленова: «Прежде чем программировать компьютер, мы должны понять, как он работает.Как говорил какой-то полководец: «Нужно хорошо изучить своего врага!!!».Возможно, это говорил и не полководец, но это не важно :). Компьютер состоит из следующих основных компонентов: процессор, память, видеокарта, винчестер (жесткий диск) и различные разъемы для подключения дополнительных устройств. Второй текст для теста был взят из книги Фрэнка Херберта «Бог - император Дюны», глава первая: «Я не только с огромным удовольствием сообщаю вам сегодня об открытии чудесного содержимого тайного хранилища с его значительной коллекцией рукописей, запечатленных на Редуланской хрустальной бумаге, но также горда привести вам доводы в защиту подлинности наших открытий, сообщить вам, почему мы считаем, что открыли подлинные дневники Лито II, Бога Императора.