Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
15.06.2014
Размер:
424.45 Кб
Скачать

Задание курсовой работы:

Если число нулевых элементов массива четное, то отсортировать массив в порядке возрастания, если количество положительных элементов больше или равно, чем отрицательных, а по убыванию – если меньше.

Если число нулевых элементов массива нечетное, то отсортировать массив в по-рядке убывания, если количество положительных элементов больше или равно, чем отрицательных, а по возрастанию – если меньше.

1. Структурная карта Константайна

2. Алгоритмы

3. Структурное тестирование

На рис.1 представлена схема включения тестируемого модуля, где заглушки выделены другим цветом

Рис.1

Для схемы алгоритма mainsort(А, N), составляем следующий граф передачи управления.

Граф передачи управления процедуры mainsort(А, N)

Алгоритм предусматривает два пути: 1–2–3–5, 1–2–4–5 покрывающих решения. Для прохождения указанных маршрутов формируем следующие тестовые значения переменных pos и nnull (программа ”kursach_test”):

Pos=true, nnull=4 : 1–2–3–5

Pos=true, nnull=7 : 1–2–4–5

Pos=false, nnull=2 : 1–2–4–5

Pos=false, nnull=11 : 1–2–3–5

Для пути 1–2–3–5 имеем следующий протокол работы:

1. чтение файла

2. поиск нулей, положительных и отрицательных

3. сортировка по возрастанию

5. запись файла

Для пути 1–2–4–5 имеем следующий протокол работы:

1. чтение файла

2. поиск нулей, положительных и отрицательных

3. сортировка по убыванию

5. запись файла

Текст программы на этапе структурного тестирования:

program kursach_test;

type

massiv = array[1..100] of integer;

var

N: byte;

A: massiv;

procedure reads(var A: massiv; var N: byte);

begin

writeln('1. чтение файла');

end;

procedure mainsort(var A: massiv; N: byte);

var

nnull: integer;

pos: boolean;

procedure sortvozr(var A: massiv; N: integer);

begin

writeln('3. сортировка по возрастанию');

end;

procedure sortub(var A: massiv; N: integer);

begin

writeln('4. сортировка по убыванию');

end;

procedure find(A: massiv; N: integer; var nnull: integer; var pos: boolean);

begin

pos:=true;

nnull:=15;

writeln('2. поиск нулей, положительных и отрицательных');

end;

begin{начало программы сортировки массива}

find(a, N, nnull, pos);

if odd(nnull) then

begin

if pos=true then sortvozr(A,N) else sortub(A,N);

end

else

begin

if pos=true then sortub(A,N) else sortvozr(A,N);

end;

end; {конец программы сортировки массива}

procedure writes(A: massiv; N: byte);

begin

writeln('5. запись файла');

end;

begin

reads(a, N);

mainsort(a, N);

writes(a, N);

end.

Соседние файлы в папке курсач 24 вариант