2. Формулювання задачі

Дана програма повинна транслітерувати заданий текст. Також я повинен реалізувати у цій програмі введення тексту з клавіатури або зчитування його із файлу. Для реалізації цієї програми я використовую усі можливі оператори мови С, і для читання з клавіатури «пропатчую» систему

Метою розв’язання цієї задачі є запис україномовних слів латинськими літерами. В результаті реалізації користувач повинен отримати транслітерацію потрібного йому тексту. Текст може бути найрізноманітнішим.

3. Програмні реалізації алгоритму

 

Характеристика програми:

Назва – Translit.cpp

Розмір – 6,42 КБ

Кількість рядків - 270

Призначення програми:

Дана задача відноситься до класу задач по роботі з базами даних.

Метою розв’язання даної задачі є пошук конкретного запису в базі даних, а також редагування бази даних.

Вхідна інформація

Вхідною інформацією для програми є текстовий файл, що містить речення, записані українською мовою

Вхідний файл має назву - input.txt;

Його розмір – 1 Кб

Результуюча інформація

При виконанні програма виводить слова або речення,записані латинськими буквами. При будь-якій зміні букви чи слова у файлі при перезапуску програми змінюється наш результат.

Структура програми

Заголовні файли:

·  stdio.h - стандартний заголовочний файл введення/виведення даних;

·  stdlib.h - заголовочний файл стандартної бібліотеки загального призначення;

·  string.h - заготовочний файл, що містить функції для роботи з символьними рядками

·  conio.h – заголовочний файл, що містить функції для консольного введення/виведення даних

Функції

1.int main (void) – Заголовна функція програми. Параметрів не має.

2.ktl (char s) - функція, яка призначена для транслітерації тексту, введеного з клавіатури.

3. ktl1(char s) – функція, яка призначена транслітерації тексту, який зчитується із файлу.

Таблиця ідентифікаторів програми

·  *fp/*fp1 – вказівники з типом FILE, що вказують на файли, з якого читається/в який записується база даних.

·  k - змінна типу int, що неодноразово оголошувалась, як локальна змінна в різних функціях, в якості лічильників циклу, міток та ін.

·  с- змінна типу char, з якою ми пов’язуємо у програмі зчитані або введені символи.

Середовище реалізації програм

Операційна система – MS-DOS;

Для транслітерації тексту, введеного з клавіатури, застосував українізатор середовища UKRDOS_2.

Необхідні допоміжні технічні пристрої – монітор, клавіатура.

Технологія виконання та відлагодження програм

Для написання програми використовувалось середовище програмування BORLAND C . Для відлагодження та компіляції програми використовувались такі його можливості, як:

·  Compile(Alt+F9) – компіляція програми;

·  Run(Ctrl+F9) - виконання програми;

·  Trace into(F7) – покрокове виконання програми;


4. Програмні реалізації алгоритму

БЛОК-СХЕМА ПРОГРАМИ

                                   

 



5. Інструкція користувачеві

Користувач повинен запустити програму. Після чого на робочому столі з’явиться вікно:

У вікні користувач побачить пункти меню, після чого він повинен натиснути на одну із клавіш 1,2,3 або 4, і зможе потрапити в один із пунктів. Наприклад користувач натиснув клавішу 1:

На екран виводиться текст, який міститься у файлі, але у нечитабельному вигляді, що спричинене неспівпаданням кодування у Windows XP та у Borland C.

Повернувшись в робоче меню, користувач повинен знову ввести одну із клавіш наприклад користувач натискає клавішу 2:

Користувачу пропонується ввести з клавіатури речення українською мовою. Для цього потрібно натиснути клавішу Right Shift.

Після натискання клавіші Enter на екрані з’явиться транслітерація введеного вище тексту.

Користувач може знову повернутись у меню програми, і, наприклад, натиснути клавішу 4. На екран буде виведено:


6. Контрольні приклади та аналіз їх реалізації

Для відлагодження та перевірки працездатності програми я використовував такі тестові набори:

1.  У файл input.txt занесено такий текст: «Курсову роботу виконав Гелеш Юрій».

У файл output.txt буде внесено: «Kyrsovy roboty vukonav Helew @rij».

2. З клавіатури введено: «Сесія майже закінчилась!».

Отримаємо результат: «Sesi9 maj*e zakin4ulas6!».

За результатами тестів які я проводив можна сказати, що програма працює якісно і швидко та без жодної помилки.


Висновок

В результаті роботи над завданням було сформовано кінцевий продукт – програму: транс літератор україномовних текстів латинськими літерами.

В ній реалізовані наступні можливості:

·  Можливість виконувати транслітерацію, зчитуючи текст із файлу і записуючи його у вихідний файл.

·  Можливість виконувати транслітерацію через ввід тексту з клавіатури.

·  В програмі реалізовано зручний та зрозумілий інтерфейс.

Дана програма для зчитування тексту з клавіатури потребує підключення спеціального драйвера UKRDOS_2.

 


Література

1.  Шпак З.Я. - Мова програмування С

2.  Керниган Б., Ритчи Д. - Мова програмування Си

3.  Інтернет - http://uk.wikipedia.org/wiki/Транслітерація

4.  Інтернет - http://lp.edu.ua/tc.terminology/TK_translit.htm

5.  Інтернет - http://lukom.org/Pages/Blog.aspx/transliteration


Додаток

Текст програми

#include<stdio.h>

#include<conio.h>

#include<string.h>

#include<stdlib.h>

char ktl1(char s);

char ktl(char s);

void main(void)

{

m:

clrscr();

printf("\t\t\t Љ“ђ‘Ћ‚Ђ ђЋЃЋ’Ђ ­ ⥬г:\n\n");

printf("\t\t\"’а ­б«iвҐа жiп гЄа х­®¬®ў­Ёе ⥪бвiў\"\n\n");

printf("\n 1)ђ®Ў®в § д ©« ¬Ё");

printf("\n 2)‚ўҐ¤Ґ­­п § Є« ўi вгаЁ");

printf("\n 3)‚Ёеi¤ § Їа®Ја ¬Ё");

printf("\n 4)Џi¤Є §Є Є®аЁбв㢠祢i=)");

printf("\n\n\t‚ўҐ¤iвм ­®¬Ґа Їг­Євг ");

int k;

switch(k=getch()){

case '1': clrscr();

char c,res1;

FILE *fp,*fp1;

if((fp=fopen("E:\\input.txt","r"))==NULL)

{

puts("‚еi¤­Ё© д ©« ­Ґ §­ ©¤Ґ­®");getch();

exit(1);

}

if((fp1=fopen("E:\\output.txt","w"))==NULL)

{

puts("ERROR");getch();

exit(1);

}

puts("’ҐЄбв, й® ¬iбвЁўбп г д ©«i\n");

rewind(fp);

while(!feof(fp))

{

c=fgetc(fp);

putc(c,stdout);

res1=ktl1(c);

fputc(res1,fp1);

}

fclose(fp1);

fclose(fp);

getch();

goto m;

break;

case '2':

clrscr();

printf("‚ўҐ¤iвм аҐзҐ­­п гЄа. «iвҐа ¬Ё: ");

char x[256];

gets(x);

for(int i=0;i<strlen(x);i++){

x[i]=ktl(x[i]);

}

printf("\n’а ­б«iвҐа жiп: %s",x);

getch();

goto m;

break;

case '3': exit(0);

case '4': clrscr();

puts("\n\t„«п а®Ў®вЁ § д ©« ¬Ё Ї®ваiЎ­® бЇҐаиг г Є®аҐ­i ¤ЁбЄ ‘ бвў®аЁвЁ");

puts("д ©« § i¬Ґ­Ґ¬ include.txt, ўЁеi¤­Ё© д ©« Ўг¤Ґ б⢮७® Їа®Ја ¬®о");

puts(" ўв®¬ вЁз­®. ЏаЁ ўўҐ¤Ґ­­i ⥪бвг i§ Є« ўi вгаЁ ­ вЁб­гвЁ Right Shift.");

getch();

break;

}

}

char ktl(char s)

{

char res;

switch (s) {

case '0': res = '0';break;

case '1': res = '1';break;

case '2': res = '2';break;

case '3': res = '3';break;

case '4': res = '4';break;

case '5': res = '5';break;

case '6': res = '6';break;

case '7': res = '7';break;

case '8': res = '8';break;

case '9': res = '9';break;

case 'Ђ': res = 'A';break;

case 'Ѓ': res = 'B';break;

case '‚': res = 'V';break;

case 'ѓ': res = 'H';break;

case '„': res = 'D';break;

case '…': res = 'E';break;

case 'т': res = 'р';break;

case '†': res = '*';break;

case '‡': res = 'Z';break;

case 'I': res = 'I';break;

case 'ф': res = '|';break;

case '‰': res = 'J';break;

case 'Љ': res = 'K';break;

case '‹': res = 'L';break;

case 'Њ': res = 'M';break;

case 'Ќ': res = 'N';break;

case 'Ћ': res = 'O';break;

case 'Џ': res = 'P';break;

case 'ђ': res = 'R';break;

case '‘': res = 'S';break;

case '’': res = 'T';break;

case '“': res = 'Y';break;

case '”': res = 'F';break;

case '•': res = 'X';break;

case '–': res = 'C';break;

case '—': res = '4';break;

case '?': res = 'W';break;

case '™': res = '#';break;

case 'ћ': res = '@';break;

case 'џ': res = '9';break;

case ' ': res = 'a';break;

case 'Ў': res = 'b';break;

case 'ў': res = 'v';break;

case 'Ј': res = 'h';break;

case '¤': res = 'd';break;

case 'Ґ': res = 'e';break;

case 'у': res = 'с';break;

case '¦': res = '*';break;

case '§': res = 'z';break;

case 'Ё': res = 'u';break;

case 'i': res = 'i';break;

case 'х': res = '|';break;

case '©': res = 'j';break;

case 'Є': res = 'k';break;

case '«': res = 'l';break;

case '¬': res = 'm';break;

case '­': res = 'n';break;

case '®': res = 'o';break;

case 'Ї': res = 'p';break;

case 'а': res = 'r';break;

case 'б': res = 's';break;

case 'в': res = 't';break;

case 'г': res = 'y';break;

case 'д': res = 'f';break;

case 'е': res = 'x';break;

case 'ж': res = 'c';break;

case 'з': res = '4';break;

case 'и': res = 'w';break;

case 'й': res = '#';break;

case 'м': res = '6';break;

case 'о': res = '@';break;

case 'п': res = '9';break;

case ' ': res = ' ';break;

case ',': res = ',';break;

case '.': res = '.';break;

case '-': res = '-';break;

case ':': res = ':';break;

case ';': res = ';';break;

case '?': res = '?';break;

case '!': res = '!';break;

default: res = NULL;

}

return res;

}

char ktl1(char s)

{

char res1;

switch(s){

case '0': res1 = '0';break;

case '1': res1 = '1';break;

case '2': res1 = '2';break;

case '3': res1 = '3';break;

case '4': res1 = '4';break;

case '5': res1 = '5';break;

case '6': res1 = '6';break;

case '7': res1 = '7';break;

case '8': res1 = '8';break;

case '9': res1 = '9';break;

case 'А': res1 = 'A';break;

case 'Б': res1 = 'B';break;

case 'В': res1 = 'V';break;

case 'Г': res1 = 'H';break;

case 'Д': res1 = 'D';break;

case 'Е': res1 = 'E';break;

case 'Є': res1 = 'Ё';break;

case 'Ж': res1 = '*';break;

case 'З': res1 = 'Z';break;

case 'І': res1 = 'I';break;

case 'Ї': res1 = '|';break;

case 'Й': res1 = 'J';break;

case 'К': res1 = 'K';break;

case 'Л': res1 = 'L';break;

case 'М': res1 = 'M';break;

case 'Н': res1 = 'N';break;

case 'О': res1 = 'O';break;

case 'П': res1 = 'P';break;

case 'Р': res1 = 'R';break;

case 'С': res1 = 'S';break;

case 'Т': res1 = 'T';break;

case 'У': res1 = 'Y';break;

case 'Ф': res1 = 'F';break;

case 'Х': res1 = 'X';break;

case 'Ц': res1 = 'C';break;

case 'Ч': res1 = '4';break;

case 'Ш': res1 = 'W';break;

case 'Щ': res1 = '#';break;

case 'Ю': res1 = '@';break;

case 'Я': res1 = '9';break;

case 'а': res1 = 'a';break;

case 'б': res1 = 'b';break;

case 'в': res1 = 'v';break;

case 'г': res1 = 'h';break;

case 'д': res1 = 'd';break;

case 'е': res1 = 'e';break;

case 'є': res1 = 'ё';break;

case 'ж': res1 = '*';break;

case 'з': res1 = 'z';break;

case 'и': res1 = 'u';break;

case 'і': res1 = 'i';break;

case 'ї': res1 = '|';break;

case 'й': res1 = 'j';break;

case 'к': res1 = 'k';break;

case 'л': res1 = 'l';break;

case 'м': res1 = 'm';break;

case 'н': res1 = 'n';break;

case 'о': res1 = 'o';break;

case 'п': res1 = 'p';break;

case 'р': res1 = 'r';break;

case 'с': res1 = 's';break;

case 'т': res1 = 't';break;

case 'у': res1 = 'y';break;

case 'ф': res1 = 'f';break;

case 'х': res1 = 'x';break;

case 'ц': res1 = 'c';break;

case 'ч': res1 = '4';break;

case 'ш': res1 = 'w';break;

case 'щ': res1 = '#';break;

case 'ь': res1 = '6';break;

case 'ю': res1 = 'ў';break;

case 'я': res1 = '9';break;

case ' ': res1 = ' ';break;

case ',': res1 = ',';break;

case '.': res1 = '.';break;

case '-': res1 = '-';break;

case ':': res1 = ':';break;

case ';': res1 = ';';break;

case '?': res1 = '?';break;

case '!': res1 = '!';break;

default: res1=NULL;

}

return res1;

}


Информация о работе «Транслітерація україномовних текстів латинськими літерами»
Раздел: Информатика, программирование
Количество знаков с пробелами: 16295
Количество таблиц: 1
Количество изображений: 5

Похожие работы

Скачать
90349
0
0

... ізації» таких імен (на жаль, сьогодні це вже стало сумною масовою тенденцією, особливо відносно імен власних зі східних мов). 3.3 Топоніми-американізми в перекладі У найзагальнішому випадку передбачається, що іноземний топонім має передаватися українською мовою наближено до вихідної форми звучання, тобто по правилах практичної транскрипції. Проте на це загальне правило накладаються додатков ...

Скачать
173947
17
0

... певного суспільно-політичного, юридичного поняття, те вона творити їх не зі старої книжної мови, не на живомовній традиції, а з мов чужих: польської, латинської, німецької. Подальше формування українських юридичних термінів відбувається під впливом польської, німецької, а в окремих регіонах – угорської мови. Усі чужомовні запозичення юридичної термінології в давньоукраїнській мові можна поділити ...

Скачать
96202
0
0

... стилістичних систем різних мов. Розділ ІІ. «Гаррі Поттер і Таємна кімната» Д.К. Роулінґ. Особливості українського перекладу. 2.1 Лексичні особливості роману Книга Дж. К. Роулінґ «Гаррі Поттер і таємна кімната» є другою книгою з циклу про Гаррі Поттера, що продовжує розкривати перед читачами магічний світ чарівників, створений письменницею. У цій літературній казці продовжується розповідь ...

Скачать
120367
7
1

... » кошти на такі дослідження і патентувати винахід, який не забезпечить отримання прибутку від реалізації продукції на його основі. 1 ХАРАКТЕРИСТИКА РОЗТОЧУВАЛЬНОГО ІНСТРУМЕНТУ ЯК ОБ’ЄКТА ДОСЛІДЖЕННЯ Сучасна машинобудівна галузь промисловості відіграє чи не найголовнішу роль в розвитку економіки України. Машинобудівною промисловістю України виробляється найрізноманітніша продукція ...

0 комментариев


Наверх