Порядок выполнения работы
Данная лабораторная работа состоит из двух частей. В первой части необходимо выполнить задание с использованием одномерных динамических массивов, во второй части, соответственно, с использованием двумерных динамических массивов.
Общий алгоритм выполнения обоих заданий
Подключение необходимых модулей.
Объявление необходимых глобальных переменных.
Создание процедур выделения и освобождения памяти для динамических массивов.
Создание необходимых процедур, реализующих основные операции по заданию.
Освобождение динамической памяти.
Внимание: при выделении динамических массивов необходимо проверять наличие требуемого объема памяти в «куче».
Приведем пример процедуры, выделяющей память под одномерный динамический массив с проверкой на наличие требуемого объема памяти.
{Создание массива}
Procedure CreateMass (var _PMass: TPMass; _size: integer);
Begin
if (MaxAvail<sizeof(TMass)*_size) then
begin
Writeln(‘Нет достаточного количества памяти в “куче” для создаваемого массива’);
Readln;
Halt;
end;
GetMem (_PMass, sizeof (TMass)*_size);
End;
Список заданий
В табл. 1. представлен список заданий на одномерные динамические массивы.
Таблица 1
№ вар. |
Задание |
1 |
Удалить максимальный элемент в массиве |
2 |
Удалить минимальный элемент в массиве |
3 |
Найти сколько простых чисел в массиве |
4 |
Удалить из массива все четные числа |
5 |
Удалить из массива все нечетные числа |
6 |
Сложить два массива, вычесть и перемножить |
7 |
Нарастить массив А, приставив ему в конец массив В |
8 |
Укоротить массив А, отрезав от его конца n элементов |
9 |
Вырезать из массива А отрезок из n элементов, начиная с k-ого элемента |
10 |
Нарастить массив, приставив ему в конец минимальное и максимальное значение |
11 |
Создать динамический массив и заполнить его числами из таблицы умножения, так чтобы при выводе массива строилась таблица умножения |
12 |
Поменять местами любые два элемента динамического массива, номера которых заданы пользователем. |
13 |
Создать динамический массив из латинских букв и удалить из него все гласные буквы. |
14 |
Создать динамический массив из латинских букв и удалить из него все согласные буквы. |
15 |
Создать динамический массив из русских букв и удалить из него все гласные буквы. |
16 |
Создать динамический массив из русских букв и удалить из него все согласные буквы. |
17 |
Преобразовать динамический массив вещественных чисел в динамический массив целых чисел, отсечением дробной части. |
18 |
Удалить все элементы после максимального элемента массива. |
19 |
Удалить все элементы после минимального элемента массива. |
20 |
Добавить в динамический массив элемент, значение которого введено с клавиатуры, поставив его после элемента, номер которого также введён с клавиатуры. |
21 |
Удалить из динамического массива все элементы, значения которых совпадает со значением, введённым с клавиатуры. |
22 |
Нарастить динамический массив А приставив ему в конец тот же массив А, но уже упорядоченный. |
23 |
Создать программу, которая при вводе букв с клавиатуры увеличивает размерность массива и помещает в массив введенную букву |
24 |
Создать программу, которая по введенной строке с клавиатуры создает динамический массив, в котором в каждой ячейке хранится по одной букве; размерность массива равна количеству букв в строке |
В табл. 2. представлен список заданий на двумерные динамические массивы.
Таблица 2
№ вар. |
Задание |
1 |
Найти сумму элементов матрицы с нечетной суммой индексов столбцов и строк |
2 |
Заменить все четные элементы матрицы нулями, а нечётные – единицами |
3 |
Составить программу умножения матрицы на число |
4 |
Составить программу нахождения суммы двух квадратных матриц |
5 |
Даны целые числа a1,…, a10, целочисленная квадратная матрица порядка n. Заменить нулями в матрице те элементы с четной суммой индексов, для которых имеются равные среди a1,…, a10 |
6 |
Дана целочисленная матрица размера 6х9. Найти матрицу, получающуюся перестановкой столбцов – первого с последним, второго – с предпоследним и т.д. |
7 |
Дана целочисленная матрица размера 7х8. Найти матрицу, получающуюся перестановкой строк - первой с последней, второй – с предпоследней и т.д. |
8 |
Дана квадратная матрица порядка n. Преобразовать матрицу по правилу: строку с номером n сделать столбцом с номером n, а столбец с номером n сделать строкой с номером n. |
9 |
Даны две квадратные матрицы порядка n. Получить новую матрицу умножением элементов каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки второй матрицы |
10 |
Даны две квадратные матрицы порядка n. Получить новую матрицу прибавлением к элементам каждого столбца первой матрицы произведения элементов соответствующих строк второй матрицы. |
11 |
Дана квадратная матрица порядка n. С помощью перестановок двух строк или двух столбцов добиться того, чтобы один из элементов матрицы, обладающий наибольшим по модулю значением располагался в левом верхнем углу матрицы |
12 |
Дана квадратная матрица порядка n. С помощью перестановок двух строк или двух столбцов добиться того, чтобы один из элементов матрицы, обладающий наименьшим значением располагался в левом нижнем углу матрицы |
13 |
Дана квадратная матрица порядка n. С помощью перестановок двух строк или двух столбцов добиться того, чтобы один из элементов матрицы, обладающий наибольшим по модулю значением располагался в правом верхнем углу матрицы |
14 |
Дана квадратная матрица порядка n. С помощью перестановок двух строк или двух столбцов добиться того, чтобы один из элементов матрицы, обладающий наименьшим значением располагался в правом нижнем углу матрицы |
15 |
Получить целочисленную квадратную матрицу порядка 7, элементами которой являются числа 1, 2, …, 49, расположенные в ней по спирали |
16 |
В данной квадратной матрице порядка n найти наибольший по модулю элемент. Получить квадратную матрицу порядка n-1 путем выбрасывания из исходной матрицы какой-нибудь строки и столбца, на пересечении которых расположен элемент с найденным значением |
17 |
Дана квадратная матрица порядка n; упорядочить (переставить) строки матрицы по возрастанию значений первых элементов строк |
18 |
Дана квадратная матрица порядка n; упорядочить (переставить) строки матрицы по убыванию сумм элементов строк |
19 |
Дана квадратная матрица порядка n; упорядочить (переставить) строки матрицы по возрастанию значений наименьших элементов строк |
20 |
Дана квадратная матрица порядка n; упорядочить (переставить) строки матрицы по убыванию значений наибольших элементов строк |
21 |
Дана квадратная матрица порядка n; упорядочить (переставить) столбцы матрицы по возрастанию значений первых элементов столбцов |
22 |
Дана квадратная матрица порядка n; упорядочить (переставить) столбцы матрицы по убыванию сумм элементов столбцов |
23 |
Дана квадратная матрица порядка n; упорядочить (переставить) столбцы матрицы по возрастанию значений наименьших элементов столбцов |
24 |
Дана квадратная матрица порядка n; упорядочить (переставить) столбцы матрицы по убыванию значений наибольших элементов столбцов |