Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа по динамическим массивам (№...doc
Скачиваний:
3
Добавлен:
04.09.2019
Размер:
160.26 Кб
Скачать
  1. Порядок выполнения работы

Данная лабораторная работа состоит из двух частей. В первой части необходимо выполнить задание с использованием одномерных динамических массивов, во второй части, соответственно, с использованием двумерных динамических массивов.

Общий алгоритм выполнения обоих заданий

  1. Подключение необходимых модулей.

  2. Объявление необходимых глобальных переменных.

  3. Создание процедур выделения и освобождения памяти для динамических массивов.

  4. Создание необходимых процедур, реализующих основные операции по заданию.

  5. Освобождение динамической памяти.

Внимание: при выделении динамических массивов необходимо проверять наличие требуемого объема памяти в «куче».

Приведем пример процедуры, выделяющей память под одномерный динамический массив с проверкой на наличие требуемого объема памяти.

{Создание массива}

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

вар.

Задание

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; упорядочить (переставить) столбцы матрицы по убыванию значений наибольших элементов столбцов