Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсая

.docx
Скачиваний:
5
Добавлен:
09.02.2015
Размер:
653.17 Кб
Скачать

Исходные данные:

A – указатель на строку текста

size_d – количество элементов в строке разделителей

POD_S – количество элементов

в подстроке.

POD - указатель на подстроку

D – указатель на строку разделителей.

N указатель на количество чисел в массиве информации

Рабочие переменные:

I – Индекс символа текста

Dl– количество символов в текущем слове строки

K – Количество элементов совпавших со строкой

J – индекс элемента строки разделителей

K_Slov – количество подстрок в строке

Результат:

B –указатель на массив чисел содержащий информацию о расположении слов и количество подстрок.

Блог-схема алгоритма функции inf_fun.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

16

17

18

19

20

21

22

23

24

Описание функции inf_fun.

Прототип int* inf_fun(*A, *N, *D, size_d, POD, POD_S);

Функция принимает 6 аргументов: указатель на строку (строка текста которую будет анализировать функция), указатель на целочисленный элемент(количество элементов в массиве информации), указатель на строку (строка разделителей),целочисленная переменная(количество символов в строке разделителей), указатель на строку(подстрока), целочисленная переменная(количество элементов в подстроке). Функция исследует строку и записывает в целочисленный массив информацию в виде последовательно записанных индексов первых и последних символов слова в строке текста. В последний элемент массива записывается информация о количество подстрок в строке текста.

Возвращает указатель на массив информации о массиве.

Таблица проверки алгоритма функции inf_fun.

блока

I

J

Size_str

Size_d

N

K

K_slov

DL

DL

POD_S

B[N]

B[N+1]

I != ‘\0’

J < size_d

A[I] != D[J]

J = size_d

DL != 0

K = POD_S

Dl <= POD_S

&&

A[I] = POD[DL]

6

2

0

0

2

1

0

2

Да

3

0

6

Да

4

Да

5

1

6

Да

4

Да

5

2

6

Нет

7

Да

8

Нет

10

1

12

1

2

Да

3

0

6

Да

4

Да

5

1

6

Да

4

Да

5

2

6

Нет

7

Да

8

Да

9

1

10

2

12

2

2

Да

3

0

блока

I

J

Size_str

Size_d

N

K

K_slov

DL

DL

POD_S

B[N]

B[N+1]

I != ‘\0’

J < size_d

A[I] != D[J]

J = size_d

DL != 0

K = POD_S

Dl <= POD_S

&&

A[I] = POD[DL]

6

Да

4

Нет

11

2

5

3

6

Нет

7

Нет

13

Да

14

0

2

16

2

0

17

Нет

18

0

12

3

2

Да

3

0

6

Да

4

Да

5

1

6

Да

4

Да

5

2

6

Нет

7

Да

8

Да

9

1

10

1

12

4

2

Да

3

0

6

Да

4

Да

5

1

6

Да

4

Да

5

2

6

Нет

7

Да

8

Да

9

2

10

2

12

5

2

Да

3

0

6

Да

4

Да

5

1

блока

I

J

Size_str

Size_d

N

K

K_slov

DL

DL

POD_S

B[N]

B[N+1]

I != ‘\0’

J < size_d

A[I] != D[J]

J = size_d

DL != 0

K = POD_S

Dl <= POD_S

&&

A[I] = POD[DL]

6

Да

4

Нет

11

2

5

3

6

Нет

7

Нет

13

Да

14

3

5

16

4

0

17

Да

20

1

18

0

12

6

2

Нет

19

Нет

22

5

1

23

Возврат B