АЛГОРИТМИ И ПРОГРАМИ В ТЕКСТООБРАБОТКАТА

(дипломна работа, София, ФМИ, 1995 г.)

3.4.3. Функции, необходими за реализация на локалните правила

1. Определя дали знакът е редовна българска буква.

boolean little_bulgarian_letter (const char ch);

Входни данни:

ch            – знак.

Изходни данни: true или false.

2. Определя дали знакът е редовна латинска буква.

boolean little_latin_letter (const char ch);

Входни данни:

ch            – знак.

Изходни данни: true или false.

3. Определя дали знакът е главна българска буква.

boolean big_bulgarian_letter (const char ch);

Входни данни:

ch            – знак.

Изходни данни: true или false.

4. Определя дали знакът е главна латинска буква.

boolean big_latin_letter (const char ch);

Входни данни:

ch            – знак.

Изходни данни: true или false.

5. Определя дали знакът е редовна буква.

boolean little_letter (const char ch);

Входни данни:

ch            – знак.

Изходни данни: true или false.

6. Определя дали знакът е главна буква.

boolean big_letter (const char ch);

Входни данни:

ch            – знак.

Изходни данни: true или false.

7. Определя дали знакът е българска буква.

boolean bulgarian_letter (const char ch);

Входни данни:

ch            – знак.

Изходни данни: true или false.

8. Определя дали знакът е латинска буква.

boolean latin_letter (const char ch);

Входни данни:

ch – знак.

Изходни данни: true или false.

9. Определя дали знакът е буква.

boolean letter (const char ch);

Входни данни:

ch            – знак.

Изходни данни: true или false.

10. Определя дали знакът е цифра

boolean number (const char ch);

Входни данни:

ch            – знак.

Изходни данни: true или false.

11. Определя дали два знака са букви от една и съща азбука.

boolean same_alphabet (const char c1, const char c2);

Входни данни:

c1            – първи знак;

c2            – втори знак.

Изходни данни: true или false.

12. Определя дали две букви са еднотипни (редовни или главни).

boolean same_size (const char c1, const char c2);

Входни данни:

c1            – първи знак;

c2            – втори знак.

Изходни данни: true или false.

13. Функция-шаблон за проверка дали дадено правило, което се състои от произволен брой аргументи, може да се отнесе към съдържанието на буфера.

boolean shablon (int num, ...);

Входни данни:

num        – брой аргументи;

...             – аргументи от тип ar_list.

Изходни данни: true или false.

14. Помощна функция, която проверява за всеки един от аргументите на shablon дали съвпада със съдържанието на буфера.

boolean shablon_1 (char p0, char p1, char b0, char b1);

Входни данни:

p0            – форматиращ знак на шаблона;

p1            – информативен знак на шаблона;

b0            – форматиращ знак на буфера;

b1            – информативен знак на буфера;

Изходни данни: true или false.

15. Чете от входния файл.

int in_from_file (int num);

Входни данни:

num        – брой четения от файла.

Изходни данни: true или false в зависимост от успеха на операцията.

16. Записва в изходния файл.

int out_to_file (int ins, int del, int mark, int chng, char* ch_list, int new_in);

Входни данни:

ins         – брой включвания при прилагане на правилото;

del         – брой изключвания при прилагане на правилото;

mark       – брой маркирания при прилагане на правилото;

chng       – брой промени при прилагане на правилото;

ch_list – изходен текст към файла (във форматиран вид);

new_in   – брой необходими четения за попълване на буфера след изпълнение на записа.

Изходни данни: true или false в зависимост от успеха на операцията.

Страничен ефект: увеличава се броят на включванията, изключванията и маркиранията в зависимост от стойностите на входните параметри, а също така се извършва четене от входния файл за попълване на освободените места в буфера.

17. Настройка на файловете за четене-запис, както и пренасочване на активна директория (справочник), в която ще се извършват операциите и ще се създаде новият файл.

int open_files (void);

Изходни данни: true или false в зависимост от успеха на операцията.

Страничен ефект: отваряне и настройване на двата работни файла – входен и изходен.

18. Конкатенация на два низа, като се взима под внимание двузнаковата форма на елементите, от които те се състоят.

char* my_cat (int num...);

Входни данни:

num        – брой двойки променливи на функцията;

...       – поредица от четни числа и знакови низове.

Изходни данни: конкатениран низ, съставен от указан четен брой знакове от всеки низ.

19.Цикъл на прилагане на правилата.

void proccess (void);

Страничен ефект: осигурява се прилагане на правилата върху текста до пълното му изчерпване.

<< назад | отгоре | напред >>

Съдържание

0. Встъпление

1. Увод

2. Сричкопренасяне

2.1. Малко история

2.2. Правила за сричкопренасяне от 1983 г.

2.3. Метод на скандирането

2.4. Алгоритъм на сричкопренасянето по фонетичен и морфологичен принцип

2.4.1. Алгоритъм за откриване на морфема в дума

2.4.2. Алгоритъм за анализ на буква

2.4.3. Алгоритъм за анализ на дума

2.4.4. Алгоритъм за анализ на текст

2.4.5. Други възможности

3. Автоматизирано откриване и отстраняване на грешки в текст

3.1. Дефиниции и понятия

3.2. Често допускани грешки

3.3. Класификация на правилата

3.4. Примерна програмна реализация на локалните правила

3.4.1. Нови дефиниции, променливи, флагове и множества

3.4.2. Таблица на локалните правила

3.4.3. Функции, необходими за реализация на локалните правила

3.5. Глобални правила

3.5.1. Класификация на думите в текст на равнище знакове

3.5.2. Функции, необходими за реализация на глобалните правила

3.5.3. Функции и идеи, които предстоят да бъдат осъществени

4. Някои метрики в текстообработката

4.1. Текстови и шрифтови метрики

4.2. Сложност на текст

4.3. Професионализъм на предпечатната подготовка

4.3.1. Използване на възможностите на програмите чрез дефиниране на различни стилове

4.3.2. Премахване на излишното форматиране

4.3.3. Използване на възможностите за настройка на основните отношения между и в параграфите

5. Заключение

6. Литература

7. Приложениe

7.1. Списък на книгите, върху които са направени експерименти

7.2. Някои статистики и резултати от проведени изследвания