Лабораторная работа №3 Программирование задач обработки двумерных массивов: различия между версиями
м (Защищена страница «Лабораторная работа №3 Программирование задач обработки двумерных массивов» [edit=sysop:move=sysop]) |
|
(нет различий)
|
Текущая версия на 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.Найти наибольший элемент среди элементов, расположенных ниже главной диагонали в заданной квадратной матрице.