КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Обработка двумерных числовых массивов данных
Цель работы. Практика составления алгоритмов и программ обработки числовых двумерных массивов.
Краткая теория Массивом называется упорядоченная последовательность переменных, обозначенных одним именем. Элемент массива - переменная с индексами. Элемент двумерного массива содержит два индекса. Двумерный массив является отображением в памяти ЭВМ совокупностей данных, оформляемых в виде таблиц, матриц. Положение элемента в матрице определяется двумя числами - номером строки номером столбца, которые соответствуют числовым значениям индексов. При записи элемента массива индексы располагаются после имени массива, в квадратных скобках. Так в переменной А[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.
Cоставить алгоритм и программу, которые позволят вычислить суммы элементов строк, напечатать номер строки и значения элементов ее, если сумма элементов строки имеет значение, большее значения переменной D. Блок – схема алгоритма представлена на рис. 1.
Контрольные вопросы. 1. Правила записи в языке Фортран переменной с двумя индексами. 2. Индексы, индексные выражения. 3. Описатель двухмерного массива. 4. Расположение элементов двухмерного массива в памяти ЭВМ. 5. Как записать в общем виде: элемент двухмерного массива; для случая квадратной матрицы – элемента главной диагонали; элемента первого, второго и т.д. столбцов; элемента первой, второй и т. д. строки? 6. Особенности ввода – вывода элементов массивов. 7. Использование операторов цикла в операциях обработки массивов.
Содержание задания. Вычислить элементы матрицы A={a i j }, {i=1, 2, .., n; j = 1, 2, .., m}. Произвести обработку элементов матрицы по указанным правилам, напечатать полученные значения. Напечатать исходную и результирующую матрицы.
Варианты задания.
1. Определить число элементов матрицы A, значения которых лежат в интервале (c, b]. Напечатать это число. Значения c, b задаются по вводу.
2. Определить в каждом столбце матрицы A, число элементов, значения которых лежат в интервале [c, b]. Напечатать эти числа. Значения c, b задаются по вводу.
4.
Определить в главной диагонали матрицы A число элементов, значение которых превышает значение выражения c*i+b, где i – номер строки. c и b задаются по вводу. Напечатать число элементов и номера строк, которым они принадлежат.
5. Числовое значение переменной b ввести по вводу. Определить число элементов матрицы, имеющих значения большее среднего значения элементов матрицы. Напечатать его.
6. Числовое значение переменной b ввести по вводу. Определить среднее значение элементов столбцов матрицы A. Напечатать их с указанием номера соответствующего столбца.
7. Определить средние значения элементов строк матрицы A, напечатать эти значения с указанием номера соответствующей строки.
8. Вычислить среднее значение элементов матрицы A, определить и напечатать число элементов в строках матрицы, имеющих четные номера, значение которых превышает найденное среднее значение.
9. Вычислить среднее значение элементов главной диагонали, напечатать его. Напечатать элементы 2-ой и 3-ей строки с номерами столбцов, если значения этих элементов больше среднего значения в диагонали.
10. Вычислить средние значения элементов первой и последней строки. Напечатать значения элементов этих строк, номера их столбцов, в том случае, когда эти значения превышают сумму найденных средних.
11. Вычислить средние значения элементов столбцов, имеющих нечетные номера, напечатать элементы этих столбцов с указанием номера строки, в том случае, если их значения будут меньше средних значений по соответствующим столбцам.
12. Вычислить средние значения элементов строк, имеющих четные номера, напечатать элементы, значения которых больше значений соответствующих средних по строке.
13. Элементы матрицы, имеющие отрицательные значения, сделать равными нулю, подсчитать и напечатать число этих элементов.
14. Элементы матрицы, значения которых превышают значения выражения
15. Числовое значение переменной d задается по вводу. Сравнить первые элементы во второй и третьей строках. В случае если элемент второй строки больше элемента третьей строки, увеличить числовое значение элементов второй строки на величину
16. Числовое значение переменной d задается по вводу. Среди первых элементов строк имеющих нечетные номера, найти максимальное значение, элементы соответствующей строки напечатать.
17. Числовое значение переменной b задается по вводу. Найти элемент главной диагонали, имеющий максимальное значение. Напечатать элементы и номер соответствующей ему строки.
18. Числовое значение переменной d задается по вводу. Найти сумму элементов первой строки, напечатать полученное значение, умножить элементы третьей строки на полученное число. Напечатать элементы третьей строки.
19. Найти сумму элементов второго столбца, напечатать полученное число, прибавить его к элементам четвертого столбца, напечатать эти элементы.
20. Числовое значение переменных Q, d задаются по вводу. Сравнить элементы первых трех столбцов с Q, в том случае, если хотя бы один элемент матрицы будет больше величины 2*Q, остановить просмотр элементов, напечатать «недопустимое значение», в противном случае завершить просмотр всех элементов матрицы, напечатать «данные отвечают условиям».
21. Найти максимальное значение среди первых элементов строк, напечатать этот элемент и его номер, осуществить перестановку соответствующих по j элементов второй строки и строки имеющей максимальный по значению первый элемент. Напечатать элементы преобразованной матрицы.
23. Числовые значения переменных d, T задаются по вводу. Поменять местами соответствующие по j элементы второй строки и первой из строк, имеющей сумму элементов, больше T. Напечатать элементы исходной и преобразованной матрицы.
24. Числовое значение переменной b задается по вводу. Поменять местами соответствующие по i элементы соседних столбцов, имеющих нечетные и четные номера. Отсчет вести с первого столбца по возрастанию номеров столбцов. Напечатать элементы исходной и преобразованной матрицы.
25. Числовые значения b, c задаются по вводу. Найти максимальный по значению элемент матрицы, напечатать его значение и индексы. Поменять местами соответствующие по j элементы строки, содержащий максимальный в матрице элемент и элементы третьей строки. Напечатать элементы исходной и преобразованной матрицы.
26. Числовые значения переменных b, c задаются по вводу. Найти первый по возрастанию номеров строк элемент, принимающий максимальное значение, напечатать его значение и индексы, умножить строку с максимальным элементов на b. Напечатать исходную и преобразованную матрицу.
27. Числовые значения переменных x и y задаются по вводу. Найти первые по возрастанию номеров строк элементы, имеющие минимальные и максимальные значения, напечатать их значения и номера индексов. Поменять местами элементы строк, которым принадлежат найденные элементы. Напечатать исходную и преобразованную матрицу.
28. Числовые значения переменных x, y задаются по вводу. В главной диагонали матрицы найти элементы, принимающие максимальное и минимальное значения, поменять местами элементы строк, которым они принадлежат. Напечатать исходную и преобразованную матрицу.
29. Числовые значения переменных x, y задаются по вводу. Найти среднее значение элементов матрицы. Во второй и третьей строке получить число элементов, значение которых больше средней величины. Элементы строки, для которой это значение больше поменять местами с соответствующими элементами первой строки. Напечатать элементы исходной и преобразованной матрицы.
30. Числовые значения переменных x, y задаются по вводу. Найти среднее значение для элементов первого и элементов второго столбца, подсчитать в каждом число элементов, значение которых больше среднего, элементы столбца, имеющего это значение наибольшим поменять местами с соответствующими по j элементами последнего столбца. Напечатать элементы исходной и преобразованной матрицы.
|