Лабораторная работа №15

Динамические переменные

Цель работы: получение навыков работы с указателями и динамическими переменными структурированных типов.

Задания для подготовки к работе

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

2. Рассмотрите возможные способы хранения матриц в динамически распределяемой области памяти. Изобразите схемы хранения для каждого случая.

3. Разработайте алгоритм и составьте программы для решения задачи соответствующего варианта для четырех случаев, матрицы следует разместить в "куче" при выполнении следующих условий:

а) число строк и число столбцов - константы;

б) число строк - константа, а число столбцов - исходное данное;

c) число строк - исходное данное, число столбцов - константа;

д) число строк и число столбцов - исходные данные.

4. Ввод, вывод и обработку матриц опишите отдельными подпрограммами. Для случаев а)- д), где возможно, используйте одни и те же подпрограммы.

5. В блок-схемах обработки матриц не используйте операции разыменования, а обращайтесь к элементам матрицы как к элементам двумерного массива.

6. Опишите блок-схему алгоритма решения задачи с использованием блоков «предопределенный процесс».

7. Закодируйте алгоритм.

8. Подберите наборы тестовых данных с обоснованием их выбора.

Задания к работе

1. Наберите программу, отладьте ее, протестируйте.

2. Выполните анализ ошибок, выявленных при отладке программы.

Содержание отчет а

1. Формулировка задачи.

2. Ответы на пункты 2 – 8 заданий для подготовки к работе.

3. Описание ошибок, выявленных при отладке программы с указанием вида ошибки, и почему она была сделана.

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

1. Даны две матрицы одинаковых размеров. Определить, можно ли выбрать из каждой из них по строке с равными множествами элементов.

2. Даны две прямоугольные матрицы A и B. Определить, верно ли что A= BТ.

3. Определить, найдутся ли среди строк данной матрицы строки, состоящие из одних и тех же элементов.

4. Дана вещественная матрица. Найти скалярное произведение первой из строк, в которой находится наибольший элемент матрицы, на последнюю из строк, содержащую наименьший элемент.

5.

 
 

Дана прямоугольная матрица размером m ´ n (m < n), все элементы которой различны. Найти среднее геометрическое модулей элементов в заштрихованной области (рис.11).

Рис.11

6.

 
 

Найти минимальный элемент прямоугольной матрицы в заштрихованной области (рис.12), где max – максимальный элемент матрицы.

Рис.12

7. Определить множество общих элементов строк данной матрицы.

8. Дана матрица A. Найти произведение A×АТ.

9. Определить количество классов эквивалентных строк данной матрицы. Строки считать эквивалентными, если равны суммы их элементов.

10. Дана матрицаю. Назовем псевдодиагональю множество элементов этой матрицы, лежащих на прямой, параллельной прямой, содержащей элементы ai , n - i +1, где n – порядок матрицы. Найти сумму максимальных элементов псевдодиагоналей данной матрицы

11. Дана матрица. Если суммы элементов строк матрицы попарноразличны, то транспонировать матрицу.

12. Определить, верно ли, что для данной матрицы выполнено с условие: скалярное произведение каждой пары различных строк равно нулю, а скалярное произведение каждой строки на себя равно единице.

13. Дан массив квадратных матриц. Определить число матриц, строки которых упорядочены по невозрастанию элементов.

14.

 
 

Дана матрица, все элементы которой различны. Найти максимальный элемент матрицы в заштрихованной области (рис.13), где
min – минимальный элемент матрицы.

Рис. 13

15. Дана вещественная матрица. Упорядочить ее строки по неубыванию их наибольших элементов.

16. Определить количество классов эквивалентных столбцов данной прямоугольной матрицы. Столбцы считать эквивалентными, если равны множества их элементов.

17. Дана матрица. Упорядочить ее строки по убыванию первых элементов строк, если это возможно.

18. Дан массив целочисленных квадратных матриц. Вывести матрицы, имеющие наибольшее число нулевых строк.

19. Дана прямоугольная матрица. Упорядочить столбцы матрицы по невозрастанию минимальных элементов столбцов.

20. Дана матрица, все элементы которой различны. Обменять строки, в которых находятся максимальный и минимальный элементы.

21. Дана матрица. Упорядочить ее строки по неубыванию сумм элементов строк.

22. Дана матрица. Определить k – количество "особых" элементов данной матрицы, считая элемент "особым", если в строке слева от него находятся меньшие элементы, а справа – бóльшие.

23. Дана матрица. Определить k – количество "особых" элементов матрицы, считая элемент "особым", если он больше суммы остальных элементов своего столбца.

24. Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке и наибольшим в столбце. Для данной целочисленной матрицы вывести индексы всех ее седловых точек.

25. Дана матрица, все элементы которой различны. Назовем псевдодиагональю множество элементов этой матрицы, лежащих на прямой, параллельной прямой, содержащей элементы ai , i . Найти сумму максимальных элементов всех псевдодиагоналей данной матрицы.

26. Дан массив квадратных матриц. Определить, найдется ли в этом массиве пара взаимно обратных матриц.

27. Даны две матрицы одинаковых размеров. Определить, можно ли перестановкой строк одной из них получить другую.

28. Даны две матрицы одинаковых размеров. Определить, можно ли перестановкой элементов строк одной из них получить другую.

29. Дан массив вещественных квадратных матриц. Вывести матрицы с наименьшей нормой. В качестве нормы матрицы взять максимум абсолютных величин ее элементов.

30. Определить, найдется ли пара таких строк данной матрицы, что одна из них может быть получена циклическим сдвигом элементов другой строки.

Контрольные вопросы

1. Изобразите синтаксическую диаграмму описания ссылочного типа.

2. Что является значением ссылочного типа?

3. В каких случаях используются динамические переменные и динамические структуры?

4. Какие операции определены над указателями?

5. В каких случаях в Паскале возможно использование идентификатора до его описания?\



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: