Лабораторная работа №3 Программирование задач обработки двумерных массивов: различия между версиями
(Новая: ==Теоретические сведения== Элементы двумерных массивов имеют два индекса. Доступ к данным двумерного ...) |
|||
Строка 3: | Строка 3: | ||
==Пример== | ==Пример== | ||
− | + | Задана матрица целых чисел (в каждой строке нет повторов). Преобразовать ее так, чтобы в аждой строке наибольший элемент стоял на первом месте, а наименьший на последнем. | |
Program Matr; | Program Matr; | ||
Var i, j, k, num_max, num_min: interge; | Var i, j, k, num_max, num_min: interge; |
Версия 07:14, 20 февраля 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. Изучить алгоритм программы-примера и его исполнение.
2. По вещественной квадратной матрице A(5, 5) построить вектор B(5) по правилу: bi присвоить значение 0, если в строке с номером i матрицы есть хотя бы один отрицательный элемент, и значение 1 в противном случае.
3. Найти наибольшие элементы каждой строки матрицы A(n*m) и записать их в массив Y.
Вариант 2.
1.Изучить алгоритм программы-примера и его исполнение.
2.Дана матрица A(5, 5). Получить матрицу C(4, 4) вычеркивая из матрицы A строки и столбца, на пересечении которых находится максимальный элемент.
3.Найти наименьший элемент матрицы B(n, m) и записать нули в строку и в столбец, на пересечении которых он находится.
Вариант 3.
1. Изучить алгоритм программы-примера и его исполнение.
2. В массиве X(m*n) в каждой строке выбирается min элемент, затем среди этих чисел выбирают max. Напечатать промежуточные и окончательные результаты.
3. В матрице A(n*n) поменять местами первый элемент с наименьшим диагональным элементом.
Вариант 4.
1. Изучить алгоритм программы - примера и его исполнение.
2. Вычислить сумму элементов матрицы A(n*n), расположенных над главной диагональю.
3. Дана матрица Х (6, 6). Если максимальный элемент главной диагонали больше 20, то вычислить сумму элементов матрицы, расположенных выше главной диагонали. Иначе - сумму элементов матрицы, расположенных ниже главной диагонали.
Вариант 5.
1.Изучить алгоритм программы-примера и его исполнение.
2. Найти среднее арифметическое элементов каждой строки матрицы M(n*n) и запомнить их в массиве Y.
3.В действительной матрице А (5, 5) поменять местами строку, содержащую максимум со столбцом, содержащим минимум.
Вариант 6.
1.Изучить алгоритм программы-примера и его исполнение.
2. Дана вещественная матрица A(n*m). Получить: k - число компонент матрицы A, принадлежащих отрезку [3; 5]; s - сумму компонент, не принадлежащих отрезку [7; 10].
3. Даны две матрицы. Найти максимальные значения из элементов матриц, расположенных на главной диагонали и ниже ее. Сравнить их и значение наибольшего элемента присвоить переменной Р.
Вариант 7.
1.Изучить алгоритм программы-примера и его исполнение.
2.Дана действительная квадратная матрица B(n*n). Найти сумму элементов каждого четного столбца матрицы.
3.Дана матрица A(5, 5). Найти max среди элементов, расположенных на главной диагонали и min среди элементов побочной диагонали.
Вариант 8.
1.Изучить алгоритм программы-примера и его исполнение.
2.Дана действительная квадратная матрица C(n*m). Найти сумму элементов каждой нечетной строки матрицы.
3.Дана действительная квадратная матрица порядка 10. Заменить нулями все ее элементы, расположенные на главной диагонали и выше.
Вариант 9.
1.Изучить алгоритм программы - примера и его исполнение. 2.Дана действительная матрица A(n*n). Найти номера строк, все элементы которых больше 10. 3.Дана матрица А(n, m). Строку, содержащую максимальный элемент, поменять местами со строкой, содержащей минимальный элемент.
Вариант 10.
1.Изучить алгоритм программы - примера и его исполнение.
2.Найти количество нулей в каждом столбце заданной числовой матрицы и запомнить их в одномерном массиве.
3.Найти наибольший элемент среди элементов, расположенных ниже главной диагонали в заданной квадратной матрице.