Лабораторная работа №3 Программирование задач обработки двумерных массивов: различия между версиями
(Новая: ==Теоретические сведения== Элементы двумерных массивов имеют два индекса. Доступ к данным двумерного ...) |
м (Защищена страница «Лабораторная работа №3 Программирование задач обработки двумерных массивов» [edit=sysop:move=sysop]) |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 3: | Строка 3: | ||
==Пример== | ==Пример== | ||
− | + | Задана матрица целых чисел (в каждой строке нет повторов). Преобразовать ее так, чтобы в аждой строке наибольший элемент стоял на первом месте, а наименьший на последнем. | |
Program Matr; | Program Matr; | ||
Var i, j, k, num_max, num_min: interge; | Var i, j, k, num_max, num_min: interge; | ||
Строка 33: | Строка 33: | ||
===Вариант 1.=== | ===Вариант 1.=== | ||
− | 1. | + | 1.По вещественной квадратной матрице A(5, 5) построить вектор B(5) по правилу: bi присвоить значение 0, если в строке с номером i матрицы есть хотя бы один отрицательный элемент, и значение 1 в противном случае. |
− | 2 | + | 2.Найти наибольшие элементы каждой строки матрицы A(n*m) и записать их в массив Y. |
− | |||
− | |||
===Вариант 2.=== | ===Вариант 2.=== | ||
− | 1. | + | 1.Дана матрица A(5, 5). Получить матрицу C(4, 4) вычеркивая из матрицы A строки и столбца, на пересечении которых находится максимальный элемент. |
− | 2 | + | 2.Найти наименьший элемент матрицы B(n, m) и записать нули в строку и в столбец, на пересечении которых он находится. |
− | |||
− | |||
===Вариант 3.=== | ===Вариант 3.=== | ||
− | 1. | + | 1.В массиве X(m*n) в каждой строке выбирается min элемент, затем среди этих чисел выбирают max. Напечатать промежуточные и окончательные результаты. |
− | 2 | + | 2.В матрице A(n*n) поменять местами первый элемент с наименьшим диагональным элементом. |
− | |||
− | |||
===Вариант 4.=== | ===Вариант 4.=== | ||
− | 1. | + | 1.Вычислить сумму элементов матрицы A(n*n), расположенных над главной диагональю. |
− | 2 | + | 2.Дана матрица Х (6, 6). Если максимальный элемент главной диагонали больше 20, то вычислить сумму элементов матрицы, расположенных выше главной диагонали. Иначе - сумму элементов матрицы, расположенных ниже главной диагонали. |
− | |||
− | |||
===Вариант 5.=== | ===Вариант 5.=== | ||
− | 1 | + | 1.Найти среднее арифметическое элементов каждой строки матрицы M(n*n) и запомнить их в массиве Y. |
− | |||
− | |||
− | + | 2.В действительной матрице А (5, 5) поменять местами строку, содержащую максимум со столбцом, содержащим минимум. | |
===Вариант 6.=== | ===Вариант 6.=== | ||
− | 1 | + | 1.Дана вещественная матрица A(n*m). Получить: k - число компонент матрицы A, принадлежащих отрезку [3; 5]; s - сумму компонент, не принадлежащих отрезку [7; 10]. |
− | |||
− | |||
− | + | 2.Даны две матрицы. Найти максимальные значения из элементов матриц, расположенных на главной диагонали и ниже ее. Сравнить их и значение наибольшего элемента присвоить переменной Р. | |
===Вариант 7.=== | ===Вариант 7.=== | ||
− | 1. | + | 1.Дана действительная квадратная матрица B(n*n). Найти сумму элементов каждого четного столбца матрицы. |
− | 2 | + | 2.Дана матрица A(5, 5). Найти max среди элементов, расположенных на главной диагонали и min среди элементов побочной диагонали. |
− | |||
− | |||
===Вариант 8.=== | ===Вариант 8.=== | ||
− | 1. | + | 1.Дана действительная квадратная матрица C(n*m). Найти сумму элементов каждой нечетной строки матрицы. |
− | 2.Дана действительная квадратная матрица | + | 2.Дана действительная квадратная матрица порядка 10. Заменить нулями все ее элементы, расположенные на главной диагонали и выше. |
− | + | ===Вариант 9.=== | |
+ | 1.Дана действительная матрица A(n*n). Найти номера строк, все элементы которых больше 10. | ||
− | + | 2.Дана матрица А(n, m). Строку, содержащую максимальный элемент, поменять местами со строкой, содержащей минимальный элемент. | |
− | |||
− | 2 | ||
− | |||
===Вариант 10.=== | ===Вариант 10.=== | ||
− | 1 | + | 1.Найти количество нулей в каждом столбце заданной числовой матрицы и запомнить их в одномерном массиве. |
− | |||
− | |||
− | + | 2.Найти наибольший элемент среди элементов, расположенных ниже главной диагонали в заданной квадратной матрице. |
Текущая версия на 08:40, 22 февраля 2008
Содержание
Теоретические сведения
Элементы двумерных массивов имеют два индекса. Доступ к данным двумерного массива осуществляется по двум индексам элементов. Ввод, вывод и обработка двумерных массивов производится с использованием вложенных циклов. Следующая программа, содержит пример обработки данных, организованных в двумерный массив:
Пример
Задана матрица целых чисел (в каждой строке нет повторов). Преобразовать ее так, чтобы в аждой строке наибольший элемент стоял на первом месте, а наименьший на последнем.
Program Matr; Var i, j, k, num_max, num_min: interge; Const m: array[1..3,1..4] of integer=((5,3,8,6),(2,1,5,3),(8,9,4,7)); {Объявление типизированной константы - массива} begin for i:=1 to 3 do {Внешний цикл по стройкам массива} begin num_max:=1; num_min:=1; {Начальные значения индексов наибольшего и наименьшего элементов} for j:=2 to 4 do {Внутренний цикл по столбцам - определения наибольшего и наименьшего элементов каждой строки} if m[i,j]>m[i,num_max] then num_max:=j else if m[i,j]<m[i,num_min] then num_min:=j; { Перестановка элементов в строке} k:=m[i,num_max]; m[i,num_max]:=m[i,1];m[i,1]:=k; k:=m[i,num_min]; m[i,num_min]:=m[i,4]; m[i,4]:=k; end; for i:=1 to 3 do {Сложный цикл вывода двумерного массива по строкам} begin for j:=1 to 4 do write(m[i,j]:2); writeln; end; end.
Задания
Составьте блок-схемы и программы к задачам своего варианта:
Вариант 1.
1.По вещественной квадратной матрице A(5, 5) построить вектор B(5) по правилу: bi присвоить значение 0, если в строке с номером i матрицы есть хотя бы один отрицательный элемент, и значение 1 в противном случае.
2.Найти наибольшие элементы каждой строки матрицы A(n*m) и записать их в массив Y.
Вариант 2.
1.Дана матрица A(5, 5). Получить матрицу C(4, 4) вычеркивая из матрицы A строки и столбца, на пересечении которых находится максимальный элемент.
2.Найти наименьший элемент матрицы B(n, m) и записать нули в строку и в столбец, на пересечении которых он находится.
Вариант 3.
1.В массиве X(m*n) в каждой строке выбирается min элемент, затем среди этих чисел выбирают max. Напечатать промежуточные и окончательные результаты.
2.В матрице A(n*n) поменять местами первый элемент с наименьшим диагональным элементом.
Вариант 4.
1.Вычислить сумму элементов матрицы A(n*n), расположенных над главной диагональю.
2.Дана матрица Х (6, 6). Если максимальный элемент главной диагонали больше 20, то вычислить сумму элементов матрицы, расположенных выше главной диагонали. Иначе - сумму элементов матрицы, расположенных ниже главной диагонали.
Вариант 5.
1.Найти среднее арифметическое элементов каждой строки матрицы M(n*n) и запомнить их в массиве Y.
2.В действительной матрице А (5, 5) поменять местами строку, содержащую максимум со столбцом, содержащим минимум.
Вариант 6.
1.Дана вещественная матрица A(n*m). Получить: k - число компонент матрицы A, принадлежащих отрезку [3; 5]; s - сумму компонент, не принадлежащих отрезку [7; 10].
2.Даны две матрицы. Найти максимальные значения из элементов матриц, расположенных на главной диагонали и ниже ее. Сравнить их и значение наибольшего элемента присвоить переменной Р.
Вариант 7.
1.Дана действительная квадратная матрица B(n*n). Найти сумму элементов каждого четного столбца матрицы.
2.Дана матрица A(5, 5). Найти max среди элементов, расположенных на главной диагонали и min среди элементов побочной диагонали.
Вариант 8.
1.Дана действительная квадратная матрица C(n*m). Найти сумму элементов каждой нечетной строки матрицы.
2.Дана действительная квадратная матрица порядка 10. Заменить нулями все ее элементы, расположенные на главной диагонали и выше.
Вариант 9.
1.Дана действительная матрица A(n*n). Найти номера строк, все элементы которых больше 10.
2.Дана матрица А(n, m). Строку, содержащую максимальный элемент, поменять местами со строкой, содержащей минимальный элемент.
Вариант 10.
1.Найти количество нулей в каждом столбце заданной числовой матрицы и запомнить их в одномерном массиве.
2.Найти наибольший элемент среди элементов, расположенных ниже главной диагонали в заданной квадратной матрице.