Загрузил Егор Романчук

ЛАБОРАТОРНАЯ РАБОТА №1 Динамические массивы

реклама
Министерство образования Российской Федерации
Тверской государственный технический университет
Динамические одномерные и двумерные
массивы
Методические указания
к лабораторной работе №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) и ввести
их. Описать функцию проверяющую, имеется ли во втором массиве
под-массив, совпадающий с первым и возвращающую указатель на
этот под-массив. Напечатать найденный под-массив и его индекс в его
исходном массиве.
Скачать