Министерство образования Российской Федерации Тверской государственный технический университет Динамические одномерные и двумерные массивы Методические указания к лабораторной работе №1 Тверь, 2023 Цель работы Научиться создавать и использовать динамические одномерные и двумерные массивы (матрицы) Содержание отчета Отчет по работе должен содержать: 1. Цель работы 2. Вариант задания на выполнение работы 3. Алгоритм программы в виде псевдокода. 4. Исходный текст программы. 5. Результаты выполнения программы. Варианты выполнения работы 1. Описать функцию, получающую целочисленную матрицу и переписывающую в другую матрицу те её столбцы, сумма элементов которых больше, чем сумма первого столбца; при этом новая матрица размещается в памяти, и функция возвращает указатель на неё. Разместить в памяти исходную матрицу, ввести её, использовать описанную функцию и напечатать результат. 2. Описать функцию, получающую одномерный массив, размешавшую квадратную матрицу и заполняющую ее строками сдвигая их на один элемент, и возвращающую указатель на полученную матрицу, разместить в памяти исходный массив, ввести его, использовать функцию и напечатать матрицу. 3. Разместить одномерном матрицу массиве написать функцию, удаляющую в максимальный нечетный элемент и MхN, формирующую новый массив. Вызвать эту функцию для каждой строки матрицы и получить новую матрицу. 4. Создать динамическую матрицу M*N. В каждой строке матрицы определить массив, состоящий из элементов, находящихся между min и max. Найти самый длинный массив и напечатать его. 5. Разместить в память два матрицу размером M*N элементов. Ввести ее. Описать функцию, находящую в матрице столбец с максимальным произведением элементов и возвращающую массив, содержащий элементы этого столбца. Напечатать этот массив. 6. Разместить в памяти массив из n элементов и матрицу m*n. Описать функцию, находящую в матрице строку, содержащую наибольшее колво элементов массива и возвращающую указатель на эту строку. Ввести массив и матрицу, использовать описанную функцию и напечатать найденную строку. 7. Описать функцию, получающую одномерный массив, размещающую в памяти квадратную матрицу и заполняющую ее строки числами из исходного массива, для каждой строки сдвигая их на один элемент, и возвращающую указатель на полученную матрицу. Разместить в памяти исходный массив, ввести его, использовать функцию и напечатать матрицу. 8. Описать функцию, получающую матрицу М*N и массив из N чисел, размещающую в памяти новую матрицу с меньшим количеством строк, переписывающую в неё те строки матрицы, которые не совпадают с заданным массивом. Разместить в памяти исходную матрицу и массив, ввести их, использовать функцию и напечатать результат. 9. Разместить в памяти два массива А и В. Описать функцию проверяющую есть ли во втором массиве подмассив совпадающий с первым и возвращающую указатель на этот подмассив. Напечатать индекс начала этого подмассива 10. Разместить матрицу размером m*n и массив размером l. Найти в матрице строки, содержащие все элементы массива и записать их в другую матрицу. 11. Ввести массив из n элементов и матрицу размера m на n. Описать функцию, которая сдвигает элементы массива вправо и формирует из них новый массив. Сформировать матрицу из ведённой путём сдвига её строк на число позиций заданными элементами массива. 12. Описать функцию, получающую квадратную матрицу N*N элементов и массив из M элементов (M<=N)? проверяющую, имеется ли в полученной матрице диагональ, элементы которой совпадают с элементами заданного массива, и переписывающая часть матрицы, расположенную над найденной диагональю в одну матрицу, а расположенную под ней – в другую. 13. Ввести массив. Сформировать матрицу, которая должна быть результатом работы функции, сдвигающей элементы каждой строки вправо. 14. Разместить в памяти матрицу размера m*n и ввести её. Описать функцию, находящую столбец с максимальным произведением элементов, вернуть массив, содержащий элементы этого столбец. Напечатать этот массив. 15. Разместить в памяти матрицу из M*N целых чисел, ввести ее элементы и с помощью функции, использующей указатели, поменять строки с максимальным и минимальным элементами. 16. Разместить в памяти матрицу размером M*N и ввести её. Описать функцию находящую в матрице столбец с максимальным произведением элементов и возвращающую массив, содержащий элементы этого столбца. Напечатать этот массив. 17. Описать функцию, получающую 2 массива чисел, находящую во втором массиве содержащихся в максимальную первом и последовательность возвращающую указатель чисел, на эту последовательность. Разместить в памяти матрицу, ввести ее и найти пару строк этой матрицы, дающих максимальную последовательность. Напечатать эти строки и найденную последовательность. 18. Разместить в памяти матрицу, ввести ее, найти в ней строку, содержащую наибольшую последовательность элементов одинакового знака, напечатать эту строку. 19. Разместить в памяти массив из N целых чисел. Ввести в массив элементы. Описать функции, упорядочивающие массив по возрастанию (с помощью функции) и выводящие на печать k наибольших значений элементов массива (с помощью функции). 20. Разместить в памяти две матрицы размером m*m и k*k (k<m) и ввести их. Описать функцию, проверяющую имеется ли во второй матрице подматрица, совпадающая с первой и удаляющую строки и столбцы, содержащие эту подматрицу. Напечатать найденную подматрицу. 21. Двумя точками нарисовать на экране рамку с текстом, ввести слово отображаемое посередине прямоугольника, нажатием на Enter закончить ввод и рисовать следующий прямоугольник другим цветом. 22. Описать функцию, получающую квадратичную матрицу, сравнивающую её диагонали одинаковой длины, при их совпадении размещающую в памяти одномерный массив и переписывающую в него соответствующую диагональ. Функция должна найти все совпадающие диагонали и возвратить массив указателей. Разместить в памяти исходную матрицу, использовать функцию и напечатать результат. 23. Описать функцию, получающую указатель на одномерный массив целых чисел и его длину и переворачивающую этот массив. Используя эту функцию, разработать программу, переворачивающую строки динамической целочисленной матрицы, номера которых пользователь вводит в режиме диалога. 24. Разместить в памяти два массива целых чисел из M и N элементов. Ввести в каждый из массивов числа, упорядоченные по возрастанию. Описать функцию, размещающую в памяти массив длиной M+N переписывающую в него числа из исходных массивов так, чтобы результирующий массив также оказался упорядоченным возрастанию и возвращающую указатель на этот массив. по 25. Описать функцию, получающую 2 массива чисел, находящую во втором массиве макс. последовательность чисел, содержащуюся в первом и возвращающую указатель на эту последовательность, напечатать эти строки и найденную последовательность. 26. Даны 2 квадратные матрицы размером K и M. Если первая целиком входит во вторую то удалить её и напечатать измененную вторую матрицу размером M-K. 27. Разместить в памяти массив из N целых чисел, ввести элементы этого массива и, используя указатели, упорядочить этот массив по возрастанию ( написав для этого функцию) и выдать на печать K наибольших значений элементов ( используя для этого функцию печати массива). 28. Разместить в памяти два массива из K и M элементов (K<M) и ввести их. Описать функцию проверяющую, имеется ли во втором массиве под-массив, совпадающий с первым и возвращающую указатель на этот под-массив. Напечатать найденный под-массив и его индекс в его исходном массиве.