“рансл≥терац≥€ украњномовних текст≥в латинськими л≥терами (50511)

ѕосмотреть архив целиком

–азмещено на http://www.allbest.ru/

ћ≥н≥стерство осв≥ти ≥ науки ”крањни















 урсова робота

« дисципл≥ни "ѕроблемно-ор≥Їнтован≥ мови програмуванн€"

на тему

“рансл≥терац≥€ украњномовних текст≥в латинськими л≥терами









Ћьв≥в-2011



«м≥ст


¬ступ

1. ќгл€д л≥тератури

2. ‘ормулюванн€ задач≥

3. јлгоритм розвТ€занн€ ком≥с≥њ

4. ѕрограмн≥ реал≥зац≥њ алгоритму

5. ≤нструкц≥€ користувачев≥ програми

6.  онтрольн≥ приклади та анал≥з результат≥в њх реал≥зац≥њ

¬исновки

Ћ≥тература

ƒодатки



¬ступ


” наш≥ дн≥ компТютерн≥ технолог≥њ в≥д≥грають неаби€ку роль у житт≥ людства! ¬они допомагають йому справл€тись ≥з найр≥зноман≥тн≥шими ≥ найскладн≥шими завданн€ми набагато швидше й прост≥ше, н≥ж це було б потр≥бно робити без компТютера.

“ак, в≥н за дол≥ секунди обчислить найскладн≥ш≥ формули, а користувачу потр≥бно всього-на-всього ввести потр≥бн≥ дан≥! Ќе потр≥бно б≥льше величезних арх≥вних шафок Ц нею слугуЇ жорсткий диск компТютера, на €кому дуже легко знайти потр≥бну ≥нформац≥ю. ј мультимед≥йн≥ плеЇри, моб≥льн≥ телефони робл€ть наше житт€ також ≥ ц≥кав≥шим.

ƒуже часто ми пишемо пов≥домленн€ на моб≥льному телефон≥ своњм друз€м, але дехто пише њх незвичайним способом Ц записуЇ украњнськ≥ слова, але л≥терами з латинськоњ розкладки, тому що таких символ≥в у 1 смс вм≥щаЇтьс€ вдв≥ч≥ б≥льше! ЌазиваЇмо таку манеру писанн€ сленгом, а насправд≥ ми використовуЇмо трансл≥терац≥ю Ц одну з категор≥й, €ку вивчаЇ мовознавство.

“рансл≥терац≥€ (транс ≥ лат. litera Ч буква) Ч механ≥чна передача тексту й окремих сл≥в, €к≥ записан≥ одн≥Їю граф≥чною системою, засобами ≥ншоњ граф≥чноњ системи при другор€дн≥й рол≥ звуковоњ точност≥, тобто передача одн≥Їњ писемност≥ л≥терами ≥ншоњ.

“рансл≥терац≥€ в≥др≥зн€Їтьс€ в≥д транскрипц≥њ тим, що маЇ на мет≥ точну фонетичну або фонолог≥чну передачу звук≥в. Ќайкраща трансл≥терац≥€ така, €ка дозвол€Ї легко вернутис€ при потреб≥ до ориг≥нальноњ системи письма.



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

Т (апостроф)

Т (апостроф)


—истему найпрост≥ше зреал≥зувати на сучасному компТютер≥, де в таблиц≥ символ≥в Ї достатн≥й наб≥р латиничних л≥тер з д≥акритиками.

—истему трансл≥теруванн€ порекомендовано вживати скр≥зь, де це можливо, оск≥льки вона найпрост≥ша, безпомилкова й дотримуЇтьс€ украњнського правопису.


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. ѕрограмн≥ реал≥зац≥њ алгоритму


ЅЋќ -—’≈ћј ѕ–ќ√–јћ»

¬водимо текст з клав≥атури ≥ трансл≥теруЇмо його.

¬иводимо новий текст на екран, повертаЇмось до меню.

«аписуЇмо результат у файл≥ ≥ повертаЇмось до меню

кщо 1







  1. кщо 2

  2. кщо 4

  3. кщо 3



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

#include

#include

#include

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

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;

}

–азмещено на Allbest.ru



—лучайные файлы

‘айл
74208.rtf
4476-1.rtf
162602.rtf
29720.rtf
12838.rtf