Транслітерація україномовних текстів латинськими літерами

 

Міністерство освіти і науки України

Національний університет «Львівська політехніка»

Кафедра автоматизованих систем управління











КУРСОВА РОБОТА

З дисципліни Проблемно-орієнтовані мови програмування

на тему

Транслітерація україномовних текстів латинськими літерами












Львів-2010

Завдання на курсову роботу з дисципліни Проблемно-орієнтовані мови програмування

Прізвище, імя студента: Гелеш Юрій

Група: КН-10

Тема курсової роботи Транслітерація україномовних текстів латинськими літерами

Спеціальна частина завдання:

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

2.Текст, що обробляється, може бути введений з клавіатури або зчитаний з файлу.

3.Результат виконання також повинен виводитися або на екран, або записуватись у файл.

4.Середовище функціонування програми - MS DOS.

5.Термін завершення роботи - 6 червня 2010р.


Зміст


Вступ

Огляд літератури

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

Алгоритм розвязання комісії

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

Інструкція користувачеві програми

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

Висновки

Література

Додатки

Додаток 1. Текст програми


Вступ


У наші дні компютерні технології відіграють неабияку роль у житті людства! Вони допомагають йому справлятись із найрізноманітнішими і найскладнішими завданнями набагато швидше й простіше, ніж це було б потрібно робити без компютера.

Так, він за долі секунди обчислить найскладніші формули, а користувачу потрібно всього-на-всього ввести потрібні дані! Не потрібно більше величезних архівних шафок - нею слугує жорсткий диск компютера, на якому дуже легко знайти потрібну інформацію. А мультимедійні плеєри, мобільні телефонии роблять наше життя також і цікавішим.

Дуже часто ми пишемо повідомлення на мобільному телефоні своїм друзям, але дехто пише їх незвичайним способом - записує українські слова, але літерами з латинської розкладки, тому що таких символів у 1 смс вміщається вдвічі більше! Називаємо таку манеру писання сленгом, а насправді ми використовуємо транслітерацію - одну з категорій, яку вивчає мовознавство.

Транслітерація (транс і лат. <#"justify">1.Огляд літератури


Система транслітерування українських текстів з кирилиці на латиницю згідно з узагальненими вимогами міжнародних стандартів, а також українських науковців має такі властивості:

? нормативність (повна відповідність системи до українського правопису, що може зробити її невідокремною частиною цього мовного закону)

? безпомилковість (система не вносить у тексти інформаційних помилок)

? системність (побудованість на основі правил, закладених у таблицю транслітерації)

? універсальність (здатність системи вирішувати різноманітні задачі міжнародного обмінювання текстовою інформацією)

? літерооснащеність (забезпеченість компютерного варіанту системи потрібним набором латиничних літер з діакритиками)

? одномовність (зорієнтованість лише на одну мову - українську)

? традиційність (ураховано традиційні фонетичні та естетичні норми української мови, світові традиції вживання латинської абетки, створення транслітераційних пар, найближчих за вимовою і міжнародним транскрибуванням).

? повнота (здатність системи странслітерувати будь-які тексти, зокрема зі скороченнями та чужомовними запозиченнями)

? однозначність (кожну з однакових українських літер передає тою самою унікальною латинською літерою)

? зворотність (здатність точно відтворювати кириличний текст із странслітерованого латиничного)

? запрограмовність (придатність до розроблення програмних засобів та компютерного застосовування системи)

? простота (здатність швидко странслітерувати текст автоматичними засобами чи власноручно).

Вимога до користувачів: безпосередність (не будувати слова через мову-посередника). У проекті ДСТУ враховано вимоги міжнародного стандарту ISO 9: 1995(E) щодо створення національного стандарту міжнародного рівня.

Транслітерування відбувається згідно з транслітераційною таблицею, яка складається з транслітераційних пар, де пара - це кирилична літера і відповідна до неї латинична літера, що мають однакову чи подібну вимову. Серед 32-х латиничних літер- відповідників є 8 з діакритиками (є-ê, ж-?, ї-ï, ч-?, ш-?, щ-?, ю-û, я-â) та 24 вибрані з основної латиниці. Добиранню пар допоміг аналіз стандартних систем транслітерування (ISO/R9-1968(Е), ISO 9:1995(Е), ГОСТ 7.79-2000 СИБИД, ГОСТ 16876-71, проекту ДСТУ -2002, та численних пропозицій щодо модифікації систем.

Усі транслітераційні пари зі згаданих стандартів, які спотворюють українське письмо на латиниці (в-v, г-g, ґ-?, и-i, і-ì, х-h), відкинено й замінено на прийнятніші (в-w, г-h, ґ-g, и-y, і-i, х-x).


Транслітераційна таблиця

НомерЛітера кирилиціЛітера латиниці1а, Аa, A 2б, Бb, B 3в, Вw, W 4г, Гh, H 5ґ, ґg, G 6д, Дd, D 7е, Еe, E 8є, Єê, Ê 9ж, Ж?, ? 10з, Зz, Z 11и, Иy, Y 12і, Іi, I 13ї, Їï, Ï 14й, Йj, J 15к, Кk, K 16л, Лl, L 17м, Мm, M 18н, Н n, N 19о, О o, O 20п, П p, P 21р, Р r, R 22с, С s, S 23т, Т t, T 24у, У u, U 25ф, Ф f, F 26х, Х x, X 27ц, Ц c, C 28ч, Ч ?, ? 29ш, Ш ?, ? 30щ, Щ ?, ? 31ю, Ю û, Û 32я, Я â, Â 33ь'34 (апостроф) (апостроф)

Систему найпростіше зреалізувати на сучасному компютері, де в таблиці символів є достатній набір латиничних літер з діакритиками.

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


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


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

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

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


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


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

Назва - Translit.cpp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Функції

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

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

. 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.Інструкція користувачеві


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

транслітерація текст програма алгоритм


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


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

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



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

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

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


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


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

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

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

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

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

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


Висновок


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

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

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

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

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

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


Література


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

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

.Інтернет - #"justify">.Інтернет - #"justify">.Інтернет - #"justify">Додаток 1


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

#include<stdio.h>

#include<conio.h>

#include<string.h>

#include<stdlib.h>ktl1(char s);ktl(char s);main(void)

{ :();("\t\t\t ЉђЋ‚Ђ ђЋЃЋЂ ⥬г:\n\n");("\t\tа б«iвҐа жiп гЄа х®¬®ўЁе ⥪бвiў\n\n");("\n 1)ђ®Ў®в § д ©« ¬Ё");("\n 2)‚ўҐ¤Ґп § Є« ўi вгаЁ");("\n 3)‚Ёеi¤ § Їа®Ја ¬Ё");("\n 4)Џi¤Є §Є Є®аЁбв㢠祢i=)");("\n\n\t‚ўҐ¤iвм ®¬Ґа ЇгЄвг ");k;(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;

}

}ktl(char s)

{res;(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;

}res;

}ktl1(char s)

{res1;(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;: res1=NULL;

}res1;

}


Міністерство освіти і науки України Національний університет «Львівська політехніка» Кафедра автоматизованих систем управління

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ