Последовательность выполнения работы

Задание на курсовую работу по дисциплине «Алгоритмические языки и программирование»

Тип заданий I

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

Дано:

· двумерный массив (матрица) целых чисел размерностью М*N, т.е. содержащий М строк и N столбцов. Значения М и N определяются таким образом, чтобы все три контура заданного варианта полностью умещались внутри матрицы (см. столбец 3 в табл. 1);

· направление сортировки одномерных массивов определен в таблице вариантов (см. столбец 2);

· способ дополнительной обработки одномерных массивов (см. столбец 4).

Варианты заданий

Таблица 1

Таблица вариантов заданий I типа

№ вар. Номер метода сортировки (направление) Контуры массивов* A, B, C Способ обработки массивов
  (по возрастанию) 1,1-4,4-7,1-1,1 1,9-7,9-4,6-1,9 4,8-4,11-7,11-4,8 Массив неупорядочен. Элементы группы, содержащей наи­большее число подряд идущих одинаковых элементов заменить на максимальный элемент массива
  (по убыванию) 1,1-1,4-5,4-4,3-4,1-1,1 2,5-4,7-4,9-7,9-7,6-6,5-2,5 1,8-1,11-3,11-3,8-1,8 Массив неупорядочен. Элементы группы, содержащей наибольшее число подряд идущих отрицатель­ных элементов, заменить на мини­мальный элемент этого массива
(по возрастанию) 1,1-1,7-4,4-1,1 7,3-4,6-7,9-7,3 4,9-4,11-7,11-7,9-4,9 Массив упорядочен. Группу, содержащую наибольшее число равных положительных эле­ментов, перенести в начало массива
(по убыванию) 1,1-1,5-3,5-3,1-1,1 4,8-1,11-4,11-4,6 4,4-4,7-7,4-4,4 Массив упорядочен. Элементы группы с наибольшим числом подряд идущих положительных элементов, кратных двум, заменить нулями
  (по возрастанию) 1,1-1,9-3,7-3,3-1,1 4,4-4,7-7,4-4,4 6,8-3,11-6,11-6,3 Массив упорядочен. Все положительные элементы, крат­ные 5, переписать в конец массива
(по убыванию) 4,1-4,7-7,4-4,1 1,8-1,11-5,11-5,8-1,8 1,5-1,7-5,7-5,5-1,5 Массив неупорядочен. Все группы элементов, содержащие более трех подряд идущих отрицательных элементов, поставить после наибольшего элемента массива
(по возрастанию) 1,1-1,7-4,4-4,1-1,1 4,9-7,9-7,3-4,6-4,9 4,1-4,4-3,5-5,5-7,3-7,1-4,1 Массив упорядочен. Все положительные элементы, имеющие четный порядковый номер, переписать в начало массива
(по убыванию) 3,1-3,3-7,3-7,1-3,1 1,7-4,7-4,4-1,7 1,11-7,11-4,8-1,11 Массив упорядочен. Все нулевые элементы переписать в конец массива
(по возрастанию) 1,1-1,4-4,4-1,1 1,8-1,11-4,8-1,8 4,5-4,7-7,7-7,5-4,5 Массив упорядочен. Подсчитать, сколько пар равных элементов и расположенных на соседних местах содержится в массиве. Первую пару равных элементов поменять местами с последней парой.
  (по убыванию) 1,1-1,7-7,1-1,1 7,4-5,6-5,9-7,9-7,4 4,8-1,11-4,11-4,8 Массив упорядочен. Заменить все элементы, для которых находится только один равный ему, на наименьший элемент этого массива.
    (по возрастанию) 1,1-4,4-7,1-1,1 3,5-3,7-6,7-6,5-3,5 1,11-7,11-4,8-1,11 Массив упорядочен. Все элементы, для которых находится хотя бы один равный ему элемент, переписать в конец массива.
  (по убыванию) 1,1-13-2,4-5,4-4,3-4,1-1,1 3,5-4,6-4,9-7,9-7,6-6,5-3,5 7,3-4,6-7,9-7,3   Массив упорядочен. Если в массиве обнаружится группа, состоящая из трех и более подряд стоящих нулей, то переписать ее в начало массива
( по возрастанию) 4,1-4,4-7,1-4,1 4,5-1,8-4,8-4,5 4,9-4,11-7,11-7,9-4,9 Массив неупорядочен. Все нулевые элементы переписать в конец массива
(по убыванию) 1,1-1,3-2,4-5,4-4,3-4,1-1,1 3,5-4,6-4,9-7,9-7,6-6,5-3,5 3,11-7,11-7,7-3,11     Массив неупорядочен. Подсчитать, сколько пар равных элементов и расположенных на соседних местах содержится в массиве. Первую пару равных элементов поменять местами с последней парой.
(по возрастанию) 1,1-4,4-4,1-1,1 3,5-3,7-7,7-7,5-3,5 3,11-7,11-7,7-3,11 Массив неупорядочен. Заменить все элементы, для которых находится только один равный ему, на наименьший элемент этого массива.
(по убыванию) 4,1-4,3-7,3-7,1-4,1 1,5-1,9-7,9-7,3-4,5-1,5 3,11-7,11-7,7-3,11 Массив неупорядочен. Все элементы, для которых находит­ся хотя бы один равный ему элемент, переписать в конец массива.
(по возрастанию) 3,1-3,5-7,1-3,1 6,4-9,7-9,4-6,4 4,8-4,11-7,11-4,8   Массив неупорядочен. Если в массиве обнаружится группа, состоящая из трех и более подряд стоящих нулей, то переписать ее в начало массива
(по убыванию) 1,1-7,7-7,1-1,1 1,3-1,9-4,9-4,6-1,3 3,11-7,11-7,7-3,11 Массив неупорядочен. Группу, содержащую наибольшее число подряд идущих одинаковых элементов, поставить после минимального элемента массива
(по возрастанию) 5,1-5,5-9,1-5,1 1,8-4,11-4,5-1,8 3,11-7,11-7,7-3,11     Массив неупорядочен. Группу, содержащую наибольшее число подряд идущих отрицательных элементов, поставить перед минимальным элементом этого массива
(по убыванию) 1,3-1,7-3,7-3,3-1,3 7,1-5,3-5,7-7,9-7,1 3,11-7,11-7,7-3,11 Массив упорядочен. Группу, содержащую наибольшее число равных положительных элементов, в начало массива
(по возрастанию) 1,1-4,4-7,1-1,1 5,5-5,9-7,9-7,5-5,5 1,11-4,11-4,8-1,11   Массив упорядочен. Группу элементов с наибольшим числом подряд идущих положительных элементов, кратных двум, перенести в конец массива
(по убыванию) 1,1-4,4-7,1-1,1 1,6-1,9-4,9-4,6-1,6 3,11-7,11-7,7-3,11   Массив упорядочен. Все положительные элементы, кратные 5, переписать в конец массива
(по возрастанию) 1,1-4,4-7,1-1,1 2,5-2,7-5,7-5,5-2,5 6,8-3,11-6,11-6,8 Массив упорядочен. Заменить все элементы, для которых находится только один равный ему, на наименьший элемент этого массива.
(по убыванию) 1,3-1,7-3,7-3,3-1,3 7,1-5,3-5,7-7,9-7,1 3,11-7,11-7,7-3,11     Массив упорядочен. Все элементы, для которых находится хотя бы один равный ему элемент, переписать в конец массива.
(по возрастанию) 1,4-4,4-4,1-1,4 3,5-3,7-6,7-6,5-3,5 1,8-4,11-4,8-1,8   Массив упорядочен. Если в массиве обнаружится группа, состоящая из трех и более подряд стоящих нулей, то переписать ее в начало массива

* контуры заданы координатами узлов контуров: i1,j1 - i2,j2- … - in,jn,

где ik, - номер строки k-го узла, jk – номер столбца k-го узла.

Последовательность выполнения работы

Выполнение задания состоит из следующих этапов:

1. Определить необходимую для выполнения задания размерность матрицы, т.е. значения М и N. Следует учитывать, что правая и нижняя границы контуров не должны совпадать с границами матрицы.

Например, если задан контур 1,1-1,2-3,2-3,1-1,1, то размерность матрицы должна быть не менее 4х3 (на рисунке 1 контур обозначен цветом).


i j
-3
-24 -6
-44
-5
-35 -4 -50
рис. 1. Схема контура

2. Сформировать файл исходных данных на диске. Записать в него элементы матрицы. Значения элементам матрицы задаются случайным образом.

3. Составить программу, которая выполняет следующие операции:

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

Пользовательскую функцию настройки цветов текста и фона описать следующим образом:

void SetColor(int text, int background)

{

HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hStdOut,(WORD)((background << 4)|text));

}

Параметры text и background – коды цветов текста и фона. Соответствие кодов и названий цвета следующее:

код название цвета
Black черный
Blue синий
Green зеленый
Cyan голубой
Red красный
Magenta лиловый
Brown желтый
LightGray белый
DarkGray серый
LightBlue светло-синий
LightGreen светло-зеленый
LightCyan светло-голубой
LightRed светло-красный
LightMagenta светло-лиловый
Yellow светло-желтый
White ярко-белый

Сформировать три одномерных массива (А, B, и C) из элементов матрицы, расположенных внутри заданных контуров. В процессе формирования массивов обход матрицы внутри контуров выполнять по строкам. Каждый из полученных массивов вывести на экран.

Например, из элементов матрицы, входящих в заданный в п.1 контур, будет сформирован следующий массив:

а0 а1 а2 а3 а4 а5
-6 -44

Сформировать одномерный массив D из элементов матрицы, расположенных за пределами всех заданных контуров. Полученный массив вывести на экран.

Для рассматриваемого примера массив D будет следующим:

d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15
-3 -24 -5 -35 -4 -50

Если в начале задания, расположенного в колонке 4 таблицы, стоит фраза «Массив неупорядочен», то необходимо для каждого из полученных 4-х одномерных массивов выполнить это задание (в противном случае этот пункт временно пропустить). Скорректированные массивы вывести на экран. Алгоритм обработки массива описать с помощью процедуры пользователя. Организовать обращение к данной процедуре 4 раза для каждого из массивов.

Разработать алгоритм сортировки одномерного массива в заданном направлении. Описать данный алгоритм с помощью пользовательской функции. Организовать обращение к данной функции 4 раза для выполнения сортировки каждого из массивов. Каждый из отсортированных массивов вывести на экран (для вывода массива описать отдельную функцию).

Если в начале задания, расположенного в колонке 4 таблицы, стоит фраза «Массив упорядочен», то необходимо для каждого из полученных 4-х одномерных массивов выполнить это задание (В противном случае этот пункт был уже выполнен ранее). Скорректированные массивы вывести на экран. Алгоритм обработки массива описать с помощью функции пользователя. Организовать обращение к данной функции 4 раза для каждого из массивов.

Вставить скорректированные массивы в матрицу:

· Массивы А, B, и C расположить внутри соответствующих контуров, выполняя обход матрицы ПО СТОЛБЦАМ;

· массив D поместить в межконтурное пространство, выполняя обход матрицы ПО СТРОКАМ.

Полученную матрицу вывести на экран. При выводе элементы каждого контура должны быть окрашены различными цветами. Таким образом, при выводе матрицы должны быть использованы 4 различных (произвольных) цвета текста.

4. Сформировать пояснительную записку к курсовой работе.

Наши рекомендации