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

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Новая: ==Теоретические сведения== Элементы двумерных массивов имеют два индекса. Доступ к данным двумерного ...)
 
Строка 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.Найти наибольший элемент среди элементов, расположенных ниже главной диагонали в заданной квадратной матрице.