Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Программирование алгоритмов с использованием двумерных массивов




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

       Двумерный массив (матрица) трактуется как одномерный массив, тип элементов которого также является одномерным массивом. Сформировать такую структуру можно следующим образом:

       type

           tVect = array[1..5] of integer;

           tMatr = array[1..4] of tVect;                или

           tMatr = array[1..4] of array[1..5] of integer;

Эквивалентным определением является структура:

        tMatr = array[1..4,1..5] of integer;

Затемследует описать переменную соответствующего типа в разделе описания переменных var. Например,

Var Matr: tMatr;

Возможно выполнить описание массива с использованием только раздела var. Например,

         Var Matr: array[1..4,1..5] of integer;

В результате статически выделяется память для массива из 20 элементов типаinteger, которая освобождается при завершении работы блока, где массив описан.  Для обращения к элементу двумерного массива применяется операция индексации Matr[ i][ j] или Matr[i, j], где первый индекс указывает на номер строки, а второй – на номер столбца. В качестве индекса можно использовать любой порядковый тип. Над элементами массива можно выполнять все операции допустимые для заявленного типа.

      Пример 15. Обеспечить ввод и вывод двумерного массива в виде матрицы. Для реализации необходимо использовать вложенную циклическую структуру. Во внешнем цикле следует изменять строковый, в во внутреннем – столбцовый индексы. После ввода или вывода каждой строки матрицы следует переводить курсор на начало следующей строки.

Program Example_15;

Uses   SysUtils;

{$APPTYPE CONSOLE}

Const line = 2; col = 3;

Var   matr: array [1..line, 1..col] of integer;

            i,j: integer;

Begin

Writeln;

 writeln (' Введите ', line,'*', col,' элементов матрицы в порядке по строкам:');

for i:= 1 to line do

begin

write(' ':5);

for j:= 1 to col do read (matr[i,j]);

readln

end;

writeln (' Вывод элементов мартицы в порядке по строкам:');

for i:= 1 to line do

begin

for j:= 1 to col do write (matr[i,j]:5);

writeln

end;

readln;

E nd.

Результат работы приложения представлен в окне вывода (рис.8):

Рис.8. Результат работы приложения (пример 15)

 

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

При реализации приложения необходимо использовать подпрограммы на усмотрение автора. При обработке заданного массива нельзя использовать дополнительные массивы.       

1. Дана квадратная вещественная матрица порядка N. Вычислить K -ю степень этой матрицы.

2. Дана вещественная матрица размером N* M. Переставляя ее строки и столбцы, добиться того, чтобы наименьший элемент оказался в верхнем левом углу.

3. Дана вещественная матрица размером N* M. Упорядочить ее строки по возрастанию наименьших элементов в строках матрицы.

4. Задана квадратная матрица порядка N, состоящая из 0 и 1. Повернуть элементы массива на 900 против часовой стрелки.

5. Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и наибольшим в своем столбце (или наоборот, наибольшим в своей строке и наименьшим в своем столбце). Для заданной целочисленной матрицы размером N* M определить все седловые точки.

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

7. Дана вещественная матрица размером N* M. Определить: строки, содержащие хотя бы один нулевой элемент; столбец, в котором находится самая длинная серия одинаковых элементов.

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

9. Даны две вещественные квадратные матрицы A и B порядка N. Показать, что произведения матриц A* B <> B* A.

10. Даны: вещественная матрица A и единичная матрица E одинаковых размеров N* N. Показать, что произведения матриц A* E = E* A

11. Дана вещественная матрица размером N* M. Найти сумму наименьших элементов ее нечетных строк и наибольших элементов ее четных строк.

12. Дана вещественная квадратная матрица A порядка N. Удалить из матрицы строку и столбец, где находится минимальный элемент, и затем определить обратную матрицу.

13. Дана вещественная квадратная матрица A порядка  N. Составить матрицу B, в которую записать все элементы матрицы A, расположенные в прямоугольном фрагменте между минимальным и максимальным элементами. 

14. Дана действительная квадратная матрица порядка 2 * N. Получить новую матрицу, переставляя ее блоки размера N * N.

1 2 3 1
3 4   4 2

15. Дана действительная квадратная матрица порядка 2 * N. Получить новую матрицу, переставляя ее блоки размера N * N.

1 2 4 3
3 4   2 1

16. Дана вещественная матрица А размером N* M. Определить максимальные элементы матрицы, лежащих выше главной диагонали, и все элементы, находящиеся в «окрестности» этих элементов.

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

18. Дана вещественная квадратная матрица A порядка N. Найти минимальную сумму элементов из всех диагоналей, параллельных побочной, начиная с одноэлементной диагонали.

19. Дана вещественная квадратная матрица A порядка N. Определить минимальные элементы матрицы, лежащих ниже побочной диагонали, и все элементы, находящиеся в «окрестности» этих элементов.

20. Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке и наибольшим в своем столбце (или наоборот, наибольшим в своей строке и наименьшим в своем столбце). Для заданной целочисленной матрицы А размером N* M удалить все строки и столбцы, где находятся седловые точки.

21. Дана вещественная матрица А размером N* M. Удалить из матрицы все строки и столбцы, где находятся минимальные элементы.

22. Дана вещественная матрица А размером N* M. Удалить из матрицы все строки и столбцы с нулевыми элементами, которые лежат выше главной и побочной диагоналей матрицы.

23. Дана вещественная матрица А размером N* M. Элемент матрицы назовем локальным минимумом, если он меньше всех окружающих его элементов. Заменить в этой матрице все локальные минимумы матрицы на значение, задаваемое с клавиатуры.

24. Дана вещественная матрица А размером N* M. Составить новую матрицу, состоящую из строк и столбцов исходной матрицы, где находятся минимальные элементы матрицы.

25. Дана вещественная матрица А размером N* M. Составить новую матрицу, состоящую из строк и столбцов исходной матрицы, где находятся максимальные элементы матрицы.





Поделиться с друзьями:


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 654 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

80% успеха - это появиться в нужном месте в нужное время. © Вуди Аллен
==> читать все изречения...

4350 - | 4262 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.