 
        
        Кафедра информатики
Сборник лабораторных работ по курсу «Алгоритмизация и программирование».
Лабораторная работа № 6
Обработка двумерных числовых массивов данных
Цель работы.
Практика составления алгоритмов и программ обработки числовых двумерных массивов.
Краткая теория
Массивом называется упорядоченная последовательность переменных, обозначенных одним именем. Элемент массива - переменная с индексами. Элемент двумерного массива содержит два индекса. Двумерный массив является отображением в памяти ЭВМ совокупностей данных, оформляемых в виде таблиц, матриц. Положение элемента в матрице определяется двумя числами - номером строки номером столбца, которые соответствуют числовым значениям индексов. При записи элемента массива индексы располагаются после имени массива, в квадратных скобках. Так в переменной А[3,5] – число 3 соответствует номеру строки, 5 – номеру столбца. Индексами могут быть константы, переменные, арифметические выражения. При работе с массивами, особенно в операциях ввода – вывода необходимо знать последовательность расположения элементов массива в памяти ЭВМ. Для двумерных массивов в языке Pascal допускается работа со строками матрицы.
Например, если описать двумерный массив c[5x4] следующим образом
type stroka = [1..5] of real;
matr = [1..4] of stroka;
var a: stroke; c: matr;
То для перестановки, скажем, первой и третьей строки матрицы, достаточно написать следующие операторы:
a:= c[1];
c[1]:= c[3];
c[3]:= a;
Пример
Ввести таблицу A числовых данных, состоящую из 4 строк и 5 столбцов, и переменную D.
| 11.782 | -0.234 | 197.342 | 254.132 | 0.597 | 
| -8.301 | 116.539 | -11.362 | 0.231 | 0.226 | 
| 32.874 | 23.453 | 21.239 | 216.433 | -34.54 | 
| 43.329 | 65.009 | 25.371 | -0.418 | 34.109 | 
Cоставить алгоритм и программу, которые позволят вычислить суммы элементов строк, напечатать номер строки и значения элементов ее, если сумма элементов строки имеет значение, большее значения переменной D.
Блок – схема алгоритма представлена на рис. 1.
 
Контрольные вопросы.
1. Правила записи в языке Фортран переменной с двумя индексами.
2. Индексы, индексные выражения.
3. Описатель двухмерного массива.
4. Расположение элементов двухмерного массива в памяти ЭВМ.
5. Как записать в общем виде: элемент двухмерного массива; для случая квадратной матрицы – элемента главной диагонали; элемента первого, второго и т.д. столбцов; элемента первой, второй и т. д. строки?
6. Особенности ввода – вывода элементов массивов.
7. Использование операторов цикла в операциях обработки массивов.
Содержание задания.
Вычислить элементы матрицы A={a i j }, {i=1, 2, .., n; j = 1, 2, .., m}. Произвести обработку элементов матрицы по указанным правилам, напечатать полученные значения. Напечатать исходную и результирующую матрицы.
Варианты задания.
1.	 n = m
= 5
				n = m
= 5
Определить число элементов матрицы A, значения которых лежат в интервале (c, b]. Напечатать это число. Значения c, b задаются по вводу.
2.	 n
= m = 6
		n
= m = 6
Определить в каждом столбце матрицы A, число элементов, значения которых лежат в интервале [c, b]. Напечатать эти числа. Значения c, b задаются по вводу.
3 .
.	 n
= 4, m = 5
			n
= 4, m = 5
О 
 пределить
в каждой строке матрицы A,
число элементов, значения которых лежат
в интервале [c,
d]. Напечатать
эти числа. Значения c,
d задаются по вводу.
пределить
в каждой строке матрицы A,
число элементов, значения которых лежат
в интервале [c,
d]. Напечатать
эти числа. Значения c,
d задаются по вводу.
4.	 n
= m = 5
		n
= m = 5
Определить в главной диагонали матрицы A число элементов, значение которых превышает значение выражения c*i+b, где i – номер строки. c и b задаются по вводу. Напечатать число элементов и номера строк, которым они принадлежат.
5.	 n
= 5, m = 4.
			n
= 5, m = 4.
Числовое значение переменной b ввести по вводу. Определить число элементов матрицы, имеющих значения большее среднего значения элементов матрицы. Напечатать его.
6.	 n
= 3, m =
6.
			n
= 3, m =
6. 
Числовое значение переменной b ввести по вводу. Определить среднее значение элементов столбцов матрицы A. Напечатать их с указанием номера соответствующего столбца.
- 
 n
	= 4, m = 6. n
	= 4, m = 6.
Определить средние значения элементов строк матрицы A, напечатать эти значения с указанием номера соответствующей строки.
8.	 n
= 5, m = 3.
		n
= 5, m = 3.
Вычислить среднее значение элементов матрицы A, определить и напечатать число элементов в строках матрицы, имеющих четные номера, значение которых превышает найденное среднее значение.
9.	 
		 n
= m = 6.
n
= m = 6. 
Вычислить среднее значение элементов главной диагонали, напечатать его. Напечатать элементы 2-ой и 3-ей строки с номерами столбцов, если значения этих элементов больше среднего значения в диагонали.
10.	 n
= 4, m =
6.
		n
= 4, m =
6. 
Вычислить средние значения элементов первой и последней строки. Напечатать значения элементов этих строк, номера их столбцов, в том случае, когда эти значения превышают сумму найденных средних.
11.	 n
= 3, m = 6.
		n
= 3, m = 6. 
Вычислить средние значения элементов столбцов, имеющих нечетные номера, напечатать элементы этих столбцов с указанием номера строки, в том случае, если их значения будут меньше средних значений по соответствующим столбцам.
12.	 n
= m = 6.
	n
= m = 6.
Вычислить средние значения элементов строк, имеющих четные номера, напечатать элементы, значения которых больше значений соответствующих средних по строке.
13.	 n
	n = 3, m = 6.
= 3, m = 6.
Элементы матрицы, имеющие отрицательные значения, сделать равными нулю, подсчитать и напечатать число этих элементов.
14.	 
	 n
= 4, m = 5.
		n
= 4, m = 5.
Элементы матрицы, значения которых
превышают значения выражения 
 ,
напечатать вместе с номерами их строк
и столбцов. d, b
– переменные, числовые значения которых
задаются по вводу.
,
напечатать вместе с номерами их строк
и столбцов. d, b
– переменные, числовые значения которых
задаются по вводу.
15.	 n
= 5, m = 6.
	n
= 5, m = 6.
Числовое значение переменной d
задается по вводу. Сравнить первые
элементы во второй и третьей строках.
В случае если элемент второй строки
больше элемента третьей строки, увеличить
числовое значение элементов второй
строки на величину 
 ,
в противном случае – увеличить числовые
значения элементов третьей строки на
величину, полученную из выражения
,
в противном случае – увеличить числовые
значения элементов третьей строки на
величину, полученную из выражения 
 .
Напечатать элементы второй и третьей
строк.
.
Напечатать элементы второй и третьей
строк.
16.	 n
= m = 5.
			n
= m = 5.
Числовое значение переменной d задается по вводу. Среди первых элементов строк имеющих нечетные номера, найти максимальное значение, элементы соответствующей строки напечатать.
17.	 n
= m = 5.
		n
= m = 5.
Числовое значение переменной b задается по вводу. Найти элемент главной диагонали, имеющий максимальное значение. Напечатать элементы и номер соответствующей ему строки.
18.	 n
= m = 6.
		n
= m = 6.
Числовое значение переменной d задается по вводу. Найти сумму элементов первой строки, напечатать полученное значение, умножить элементы третьей строки на полученное число. Напечатать элементы третьей строки.
19.	 n
= 4, m = 5.
		n
= 4, m = 5.
Найти сумму элементов второго столбца, напечатать полученное число, прибавить его к элементам четвертого столбца, напечатать эти элементы.
20.	 n
= 5, m = 6.
			n
= 5, m = 6.
Числовое значение переменных Q, d задаются по вводу. Сравнить элементы первых трех столбцов с Q, в том случае, если хотя бы один элемент матрицы будет больше величины 2*Q, остановить просмотр элементов, напечатать «недопустимое значение», в противном случае завершить просмотр всех элементов матрицы, напечатать «данные отвечают условиям».
21.	 n
= 4, m = 6.
			n
= 4, m = 6.
Найти максимальное значение среди первых элементов строк, напечатать этот элемент и его номер, осуществить перестановку соответствующих по j элементов второй строки и строки имеющей максимальный по значению первый элемент. Напечатать элементы преобразованной матрицы.
23.	 n = m = 6.
		n = m = 6.
Числовые значения переменных d, T задаются по вводу. Поменять местами соответствующие по j элементы второй строки и первой из строк, имеющей сумму элементов, больше T. Напечатать элементы исходной и преобразованной матрицы.
24.	 n
= 4, m = 6.
		n
= 4, m = 6.
Числовое значение переменной b задается по вводу. Поменять местами соответствующие по i элементы соседних столбцов, имеющих нечетные и четные номера. Отсчет вести с первого столбца по возрастанию номеров столбцов. Напечатать элементы исходной и преобразованной матрицы.
25.	 n
= 5, m = 6.
		n
= 5, m = 6.
Числовые значения b, c задаются по вводу. Найти максимальный по значению элемент матрицы, напечатать его значение и индексы. Поменять местами соответствующие по j элементы строки, содержащий максимальный в матрице элемент и элементы третьей строки. Напечатать элементы исходной и преобразованной матрицы.
26.	 n
= 6, m = 6.
		n
= 6, m = 6.
Числовые значения переменных b, c задаются по вводу. Найти первый по возрастанию номеров строк элемент, принимающий максимальное значение, напечатать его значение и индексы, умножить строку с максимальным элементов на b. Напечатать исходную и преобразованную матрицу.
27.	 n
= 5, m = 6.
			n
= 5, m = 6.
Числовые значения переменных x и y задаются по вводу. Найти первые по возрастанию номеров строк элементы, имеющие минимальные и максимальные значения, напечатать их значения и номера индексов. Поменять местами элементы строк, которым принадлежат найденные элементы. Напечатать исходную и преобразованную матрицу.
28.	 n
= m = 6.
			n
= m = 6.
Числовые значения переменных x, y задаются по вводу. В главной диагонали матрицы найти элементы, принимающие максимальное и минимальное значения, поменять местами элементы строк, которым они принадлежат. Напечатать исходную и преобразованную матрицу.
29.	 n
= m = 5.
		n
= m = 5.
Числовые значения переменных x, y задаются по вводу. Найти среднее значение элементов матрицы. Во второй и третьей строке получить число элементов, значение которых больше средней величины. Элементы строки, для которой это значение больше поменять местами с соответствующими элементами первой строки. Напечатать элементы исходной и преобразованной матрицы.
30.	 n
= 4, m = 7.
			n
= 4, m = 7.
Числовые значения переменных x, y задаются по вводу. Найти среднее значение для элементов первого и элементов второго столбца, подсчитать в каждом число элементов, значение которых больше среднего, элементы столбца, имеющего это значение наибольшим поменять местами с соответствующими по j элементами последнего столбца. Напечатать элементы исходной и преобразованной матрицы.
	
