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

Читать онлайн книгу Искусственный интеллект. Строки, контекст и волны на Паскале - Сергей Соболенко страница 12

СКАЧАТЬ год.»

      То есть, в данном случае, если мы видим попадание в одно из условий, когда год не делится на 4 без остатка, либо когда делится на 100, но не делится на 400, то считаем этот год обычным и следующим днем считается 1 марта.

      Затем мы присваиваем в очередном блоке сравнений case значение месяцев в нужном нам склонении: «января», «февраля» и так далее. И наконец, в результате преобразований числовых данных в строковые, получаем итоговый, нужный результат.

      Теперь мы рассмотрим обратную процедуру Val (S, N, R), где происходит преобразование – строки, в N – число, с сообщении об ошибке (или ее отсутствие) в R.

      Ниже приведен фрагмент программы в которой число, записанное в строковой переменной S преобразуется в N. Результат операции R при этом сообщит нам, есть ли в преобразовании ошибка (код R <> 0) или ошибка отсутствует (R=0).

      Илл. 28. Пример использования процедуры преобразования строки S в число N с результатом преобразования R, с помощью процедуры Val.

      Теперь мы рассмотрим процедуру для преобразования фрагмента текста с использованием дополнительной информации. Предположим, мы имеем текст статьи, который необходимо дополнить некоторыми строковыми данными. В статье может встретиться употребление информации о процентах, которое мы должны расширить, например, «95%» заменить на фразу «почти все (95%)». Также при встрече дробного процентного показателя, процедура должна округлить его, например «19,2%» употребить «менее пятой части (19%)». Вариативность такого «очеловечивания» процентных показателей может быть достаточно широкой (в приведенном примере, до 24 вариантов).

      Что нам потребуется для упрощения этой задачи. Во-первых, это функция определения символов цифр Trycifra.

      Илл. 29. Функция trycifra проверяет символ на принадлежность к цифрам от 0 до 9.

      Во-вторых, это уже описанная ранее процедура InsInString. И в-третьих, это файл, «DictPer. txt», который необходимо сохранить в рабочем каталоге программы (по умолчанию это C:/TP/BIN). Он будет содержать числовые диапазоны значений и их описания (кодировка Win). Приведем его содержимое полностью:

      «0

      3

      незначительный процент

      3

      5

      менее двадцатой части

      5

      8

      чуть более двадцатой части

      8

      10

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

      10

      15

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

      15

      16

      менее шестой части

      16

      19

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

      19

      21

      пятая часть

      21

      25

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

      25

      25

      четверть

СКАЧАТЬ