Лабораторная работа №3 Программирование задач обработки двумерных массивов: различия между версиями

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