Курсая
.docx
Блог-схема алгоритма функции Sort:
Исходные
данные: B
–указатель на массив чисел size
–
количество
элементов в массиве информации
Рабочие
переменные: I
– Индекс
первого числа, в левой паре чисел J
– Индекс
первого числа, в правой паре чисел T1,
T2
– временная
переменные для копируемой пары элементов
Результат: B
– отсортированный массив информации
1
2
3
4
5
6
8
9
7
10
11
Описание Функции:
Прототип : Void Sort(*B,size);
Функция принимает два аргумента указатель на массив целочисленных элементов и размер этого массива. Сортирует массив из целочисленных элементов в убывающем порядке. Сортировка происходит следующим образом: если разность двух рядом стоящих элементов меньше чем разность двух других элементов то эти четыре элемента попарно меняются местами. Например если при входе разность первого и второго элементов меньше разности третьего и четвертого то меняются местами значения первого и третьего элементов и второго и четвертого. Функция ничего не возвращает.
Таблица проверки алгоритма функции Sort:
№ Блока |
I |
J |
A[I+1] |
A[I] |
T1 |
T2 |
A[J+1] |
A[J] |
I < size-3 |
A[I+1] - A[I] > A[J+1] - A[J]
|
J < size-1 |
|
|
size = 7 |
|
||||||||||
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
Да |
|
|
|
3 |
|
2 |
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
Да |
|
5 |
|
|
|
|
|
|
|
|
|
Да |
|
|
6 |
|
|
|
|
8 |
4 |
|
|
|
|
|
|
7 |
|
|
3 |
1 |
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
8 |
4 |
|
|
|
|
9 |
|
4 |
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
Да |
|
5 |
|
|
|
|
|
|
|
|
|
Нет |
|
|
9 |
|
6 |
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
Нет |
|
10 |
2 |
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
Да |
|
|
|
3 |
|
4 |
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
Да |
|
5 |
|
|
|
|
|
|
|
|
|
Нет |
|
|
9 |
|
6 |
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
Нет |
|
10 |
4 |
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
Нет |
|
|
Исходные
данные: f_ar
–указатель на целочисленный массив
информации о строке. col
–
количество
элементов в массиве информации Text_or-
указатель на исходную строку
Рабочие
переменные: K
– Индекс
копируемого элемента в исходной строке
I
– Индекс
элемента в массиве информации str_size
– индекс
элемента в результирующей строке Text_n
– результирующая строка. Результат: Text_or-
указатель на преобразованную строку.
Блок-схема функции Copy.
1
2
3
4
5
6
7
8
10
Описание функции Copy.
Прототип:
Функция принимает три аргумента: указатель на целочисленный массив( информация о строке), целочисленная переменная(количество элементов в массиве информации), указатель на строку(исходная строка текста).Функция копирует слова из исходной строки во временную (Text_n), кроме последнего элемента ,затем присваивает адрес временной строки указателю исходной строки.
Таблица проверки алгоритма функции Copy.
№ Блока |
I |
K |
Col |
str_size |
Text_n[str_size] |
I < col -1 |
K <= f_ar[I+1]
|
1 |
Text_or = “ab.abс.”;f_ar = “3 6 0 2 0”;col = 5; |
||||||
2 |
0 |
|
|
0 |
|
|
|
3 |
|
|
|
|
|
Да |
|
4 |
|
3 |
|
|
|
|
|
5 |
|
|
|
|
|
|
Да |
6 |
|
|
|
|
a |
|
|
7 |
|
4 |
|
1 |
|
|
|
5 |
|
|
|
|
|
|
Да |
6 |
|
|
|
|
b |
|
|
7 |
|
5 |
|
2 |
|
|
|
5 |
|
|
|
|
|
|
Да |
6 |
|
|
|
|
с |
|
|
7 |
|
6 |
|
3 |
|
|
|
5 |
|
|
|
|
|
|
Да |
6 |
|
|
|
|
. |
|
|
7 |
|
7 |
|
4 |
|
|
|
5 |
|
|
|
|
|
|
Нет |
8 |
2 |
|
|
|
|
|
|
3 |
|
|
|
|
|
Да |
|
4 |
|
0 |
|
|
|
|
|
5 |
|
|
|
|
|
|
Да |
6 |
|
|
|
|
a |
|
|
7 |
|
1 |
|
5 |
|
|
|
5 |
|
|
|
|
|
|
Да |
6 |
|
|
|
|
b |
|
|
7 |
|
2 |
|
6 |
|
|
|
5 |
|
|
|
|
|
|
Да |
6 |
|
|
|
|
. |
|
|
7 |
|
3 |
|
7 |
|
|
|
5 |
|
|
|
|
|
|
Нет |
8 |
4 |
|
|
|
|
|
|
3 |
|
|
|
|
|
Нет |
|
Функция F_text.
Блок-схема функции F_text.
1
2
3
4
5
6
7
8
9
Описание функции F_text.
Прототип:
Функция F_text принимает указатель на целочисленную переменную. Возвращает указатель на массив строк, при этом значение по адресу целочисленной переменной становится равной количеству строк в массиве строк. Для считывания каждой строки используется функция create_str. Если длина созданной строки равна нулю то она не добавляется в массив строк. Функция прекращает свою работу когда введенная строка равна максимальной по длине из ранее введенных строк.
Таблица проверки блок схемы функции F_text
№ Блока |
I |
*Dlina |
*Rows |
Max |
*Dlina != Max
|
*Dlina > Max
|
Dlina != 0
|
1 |
|
||||||
2 |
|
|
0 |
0 |
|
|
|
3 |
|
3 |
|
|
|
|
|
4 |
|
|
|
|
Да |
|
|
5 |
|
|
|
|
|
Да |
|
6 |
|
|
|
3 |
|
|
|
7 |
|
|
|
|
|
|
Да |
8 |
|
|
1 |
|
|
|
|
3 |
|
0 |
|
|
|
|
|
4 |
|
|
|
|
Да |
|
|
5 |
|
|
|
|
|
Нет |
|
7 |
|
|
|
|
|
|
Нет |
3 |
|
3 |
|
|
|
|
|
4 |
|
|
|
|
Нет |
|
|
9 |
Возврат TEXT |