1. Изучить ссылочный тип и его использование для создания динамических переменных и работы с ними.
2. Рассмотреть возможные способы хранения матриц в динамически распределяемой области памяти.
3. Разработать алгоритм и составить программы для решения задачи соответствующего варианта для четырех случаев, матрицы следует разместить в "куче" при выполнении следующих условий:
а) число строк и число столбцов - константы;
б) число строк - константа, а число столбцов - исходное данное;
c) число строк - исходное данное, число столбцов - константа;
д) число строк и число столбцов - исходные данные.
4. Ввод, вывод и обработку матриц описать отдельными подпрограм-мами. Для случаев а) - д), где возможно, использовать одни и те же подпрограммы.
5. Подобрать наборы тестовых данных.
Варианты заданий
1. Даны две прямоугольные матрицы A и B. Определить, верно ли что A = B Т.
2. Дан массив вещественных квадратных матриц. Вывести матрицы с наименьшей нормой. В качестве нормы матрицы взять максимум абсолютных величин ее элементов.
3. Определить, найдутся ли среди строк данной матрицы строки, состоящие из одних и тех же элементов.
4. Дана вещественная матрица. Найти скалярное произведение первой из строк, в которой находится наибольший элемент матрицы, на последнюю из строк, содержащую наименьший элемент.
5.
Дана прямоугольная матрица размером m ´ n (m < n), все элементы которой различны. Найти среднее геометрическое модулей элементов в заштрихованной области (рис.11).
Рис.11
6. Дана матрица, все элементы которой различны. Назовем псевдодиагональю множество элементов этой матрицы, лежащих на прямой, параллельной прямой, содержащей элементы ai , n - i +1, где n – порядок матрицы. Найти сумму максимальных элементов псевдодиагоналей данной матрицы.
7. Определить множество общих элементов строк данной матрицы.
8.
Найти минимальный элемент прямоугольной матрицы в заштрихованной области (рис.12), где max – максимальный элемент матрицы.
Рис.12
9. Дана матрица A. Найти произведение A × АТ.
10. Определить количество классов эквивалентных строк данной матрицы. Строки считать эквивалентными, если равны суммы их элементов.
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. В каких случаях в Паскале возможно использование идентификатора до его описания?
ЛАБОРАТОРНАЯ РАБОТА №11
Основные понятия языка Си
Цель работы: знакомство с основными типами данных, операциями, операторами языка Си и с форматным вводом и выводом в Си.