Искусственный интеллект. Строки, контекст и волны на Паскале. Сергей Соболенко. Читать онлайн. Newlib. NEWLIB.NET

Автор: Сергей Соболенко
Издательство: Издательские решения
Серия:
Жанр произведения: Компьютеры: прочее
Год издания: 0
isbn: 9785449632814
Скачать книгу
шестой части

      16

      19

      менее пятой части

      19

      21

      пятая часть

      21

      25

      больше пятой части

      25

      25

      четверть

      26

      27

      более чем четверть

      27

      30

      почти третья часть

      30

      40

      более чем третья часть

      40

      50

      менее половины

      50

      58

      более половины

      59

      65

      около двух третей

      65

      75

      почти три четверти

      75

      77

      три четверти

      77

      80

      почти четыре пятых

      80

      82

      четыре пятых

      82

      92

      подавляющее большинство

      92

      100

      почти все

      100

      100

      все

      100

      10000000

      более 100%»

      Теперь приступим к сборке и рассмотрим происходящее подробнее.

      В процедуре нам потребовалось много строковых переменных для текущих операций (S-S8), две переменные для хранения диапазона (N2 и N3), одна – для текущего показателя (N типа Real), одна – символьного типа (C), одна переменная для связи файла (F типа Text), и две – логического типа (Boolean) для контроля над текущим состоянием операции (b и tryfalse).

      Илл.30. Процедура LogicPercent, дополняющая числовые данные процентов различными фразеологизмами.

      На вход в процедуру мы имеем строку S, к обработке которой приступаем в случае нахождения в ней символа «%». В цикле меняется значение текущего символа S [i], и если мы встречаем обычные буквы или иные символы, то устанавливаем текущее значение tryfalse=true.

      Если же нам встречается число или символы дроби, то мы храним его в переменной S3, поскольку оно может оказаться, а может и не оказаться процентом. Логический указатель числа («нужного» символа) устанавливаем на B=true, и отменяем значение «ненужного» символа TryFalse=false. Также мы дублируем это значение в переменной S8.

      Встретив символ процента, цикл завершается. Мы преобразуем значение строковой переменной S3 в число N. Результат преобразования j мы игнорируем, поскольку контролировали код символов и уверены в числовом содержимом переменной. Поэтому используем в дальнейшем j как хранилище для округленного значения N (Round (N)).

      Затем мы открываем файл словаря значений DictPer. txt, читаем его по 3 строки сразу, причем первые два «читаем» как числа (N2 и N3) с которыми сравниваем текущее число значения j. Если число j попадает в промежуток между указанными числами, нами используется символьное выражение из файла s6, которое мы не забываем переводить в кодировку DOS (процедура decodetodos).

      Теперь протестируем готовую процедуру в следующей программе.

      Илл. 31. Программа для тестирования процедуры LogicPercent.

      Илл. 32. Пример работы процедуры LogicPercent.

      По такому принципу можно обрабатывать большие массивы текста, добиваясь, к примеру, увеличения его уникальности.

      Сложное