Основы визуальной алгоритмизации


Алгоритмы обработки одномерных символьных массивов


Одномерные символьные масивы - это массивы, составленные из определенной последовательности символов, которые образуют тексты. Основными операциями, выполняемыми над текстами, являются операции по определению слов, выделению слова с максимальной длиной, удаление и перестановка слов,сортировка по алфавиту идр.

Для простоты будем считать, что символьный массив  представляет одну строку произвольного  текста, слово - любую последовательность подряд идущих символов не содержащую пробела. Пробел -  это специальный символ, используемый для отделения слов, он не может располагаться перед первым словом. Учитывая все эти допущения можно предложить для решения задачи определения количества слов использовать подсчет количества элементов массива, равных пробелу минус 1.

Рассмотрим алгоритмическое решение распространенной задачи определения в массиве символов слова с максимальной длиной.

Пусть исходный массив А содержит N символов. Для определения слова с максимальной длиной будем использовать сравнение длины текущего слова М с длиной предыдущего слова МАХ. Длина слова определяется как содержащееся в нем количество символов. Для того, чтобы вывести слово с максимальной длиной, необходимо запомнить номер элемента S, с которого начинается это слово.

Алгоритм поиска в символьном массиве слова с максимальной длиной приведен на рис. 32, а его таблица трассировки для массива (Дул теплый ветер)- в таблице 8.


 

 

 

 

 

 

Рис. 32.Алгоритм поиска в символьном массиве слова с максимальной длиной

 

 

 

 

 

Таблица 8. Таблица трассировки алгоритма поиска слова с максимальной длиной при N= 16 в тексте : "Дул теплый ветер"

 

 

 

К

 

 

А(К)

 

К=N

 

А(К)="   "

 

М>МАХ

 

М

 

МАХ

 

S

 

НОВОЕ   S

1

Д

Нет

Нет

 

1

0

1

1

2

у

Нет

Нет

 

2

 

 

 

3

л

Нет

Нет

 

3

 

 

 

4

"  "

Нет

ДА

Да

0

3

3

4

5

т

Нет

Нет

 

1

 

 

 

6

е

Нет

Нет

 

2

 

 

 

7

п

Нет

Нет

 

3

 

 

 

8

л

Нет

Нет

 

4

 

 

 

9

ы

Нет

Нет

 

5

 

 

 

10

й

Нет

Нет

 

6

 

 

 

11

"  "

Нет

ДА

Да

0

6

10

11

12

в

Нет

Нет

 

1

 

 

 

13

е

Нет

Нет

 

2

 

 

 

14

т

Нет

Нет

 

3

 

 

 

15

е

Нет

Нет

 

4

 

 

 

16

р

Да

Нет

Нет

5

 

 

 




Начало  Назад  Вперед