Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа № 6

.doc
Скачиваний:
28
Добавлен:
25.03.2015
Размер:
147.46 Кб
Скачать

Кафедра информатики

Сборник лабораторных работ по курсу «Алгоритмизация и программирование».

Лабораторная работа № 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

Определить число элементов матрицы A, значения которых лежат в интервале (c, b]. Напечатать это число. Значения c, b задаются по вводу.

2. n = m = 6

Определить в каждом столбце матрицы A, число элементов, значения которых лежат в интервале [c, b]. Напечатать эти числа. Значения c, b задаются по вводу.

3 . n = 4, m = 5

О пределить в каждой строке матрицы A, число элементов, значения которых лежат в интервале [c, d]. Напечатать эти числа. Значения c, d задаются по вводу.

4. n = m = 5

Определить в главной диагонали матрицы A число элементов, значение которых превышает значение выражения c*i+b, где i – номер строки. c и b задаются по вводу. Напечатать число элементов и номера строк, которым они принадлежат.

5. n = 5, m = 4.

Числовое значение переменной b ввести по вводу. Определить число элементов матрицы, имеющих значения большее среднего значения элементов матрицы. Напечатать его.

6. n = 3, m = 6.

Числовое значение переменной b ввести по вводу. Определить среднее значение элементов столбцов матрицы A. Напечатать их с указанием номера соответствующего столбца.

  1. n = 4, m = 6.

Определить средние значения элементов строк матрицы A, напечатать эти значения с указанием номера соответствующей строки.

8. n = 5, m = 3.

Вычислить среднее значение элементов матрицы A, определить и напечатать число элементов в строках матрицы, имеющих четные номера, значение которых превышает найденное среднее значение.

9. n = m = 6.

Вычислить среднее значение элементов главной диагонали, напечатать его. Напечатать элементы 2-ой и 3-ей строки с номерами столбцов, если значения этих элементов больше среднего значения в диагонали.

10. n = 4, m = 6.

Вычислить средние значения элементов первой и последней строки. Напечатать значения элементов этих строк, номера их столбцов, в том случае, когда эти значения превышают сумму найденных средних.

11. n = 3, m = 6.

Вычислить средние значения элементов столбцов, имеющих нечетные номера, напечатать элементы этих столбцов с указанием номера строки, в том случае, если их значения будут меньше средних значений по соответствующим столбцам.

12. n = m = 6.

Вычислить средние значения элементов строк, имеющих четные номера, напечатать элементы, значения которых больше значений соответствующих средних по строке.

13. n = 3, m = 6.

Элементы матрицы, имеющие отрицательные значения, сделать равными нулю, подсчитать и напечатать число этих элементов.

14. n = 4, m = 5.

Элементы матрицы, значения которых превышают значения выражения , напечатать вместе с номерами их строк и столбцов. d, b – переменные, числовые значения которых задаются по вводу.

15. n = 5, m = 6.

Числовое значение переменной d задается по вводу. Сравнить первые элементы во второй и третьей строках. В случае если элемент второй строки больше элемента третьей строки, увеличить числовое значение элементов второй строки на величину , в противном случае – увеличить числовые значения элементов третьей строки на величину, полученную из выражения . Напечатать элементы второй и третьей строк.

16. n = m = 5.

Числовое значение переменной d задается по вводу. Среди первых элементов строк имеющих нечетные номера, найти максимальное значение, элементы соответствующей строки напечатать.

17. n = m = 5.

Числовое значение переменной b задается по вводу. Найти элемент главной диагонали, имеющий максимальное значение. Напечатать элементы и номер соответствующей ему строки.

18. n = m = 6.

Числовое значение переменной d задается по вводу. Найти сумму элементов первой строки, напечатать полученное значение, умножить элементы третьей строки на полученное число. Напечатать элементы третьей строки.

19. n = 4, m = 5.

Найти сумму элементов второго столбца, напечатать полученное число, прибавить его к элементам четвертого столбца, напечатать эти элементы.

20. n = 5, m = 6.

Числовое значение переменных Q, d задаются по вводу. Сравнить элементы первых трех столбцов с Q, в том случае, если хотя бы один элемент матрицы будет больше величины 2*Q, остановить просмотр элементов, напечатать «недопустимое значение», в противном случае завершить просмотр всех элементов матрицы, напечатать «данные отвечают условиям».

21. n = 4, m = 6.

Найти максимальное значение среди первых элементов строк, напечатать этот элемент и его номер, осуществить перестановку соответствующих по j элементов второй строки и строки имеющей максимальный по значению первый элемент. Напечатать элементы преобразованной матрицы.

23. n = m = 6.

Числовые значения переменных d, T задаются по вводу. Поменять местами соответствующие по j элементы второй строки и первой из строк, имеющей сумму элементов, больше T. Напечатать элементы исходной и преобразованной матрицы.

24. n = 4, m = 6.

Числовое значение переменной b задается по вводу. Поменять местами соответствующие по i элементы соседних столбцов, имеющих нечетные и четные номера. Отсчет вести с первого столбца по возрастанию номеров столбцов. Напечатать элементы исходной и преобразованной матрицы.

25. n = 5, m = 6.

Числовые значения b, c задаются по вводу. Найти максимальный по значению элемент матрицы, напечатать его значение и индексы. Поменять местами соответствующие по j элементы строки, содержащий максимальный в матрице элемент и элементы третьей строки. Напечатать элементы исходной и преобразованной матрицы.

26. n = 6, m = 6.

Числовые значения переменных b, c задаются по вводу. Найти первый по возрастанию номеров строк элемент, принимающий максимальное значение, напечатать его значение и индексы, умножить строку с максимальным элементов на b. Напечатать исходную и преобразованную матрицу.

27. n = 5, m = 6.

Числовые значения переменных x и y задаются по вводу. Найти первые по возрастанию номеров строк элементы, имеющие минимальные и максимальные значения, напечатать их значения и номера индексов. Поменять местами элементы строк, которым принадлежат найденные элементы. Напечатать исходную и преобразованную матрицу.

28. n = m = 6.

Числовые значения переменных x, y задаются по вводу. В главной диагонали матрицы найти элементы, принимающие максимальное и минимальное значения, поменять местами элементы строк, которым они принадлежат. Напечатать исходную и преобразованную матрицу.

29. n = m = 5.

Числовые значения переменных x, y задаются по вводу. Найти среднее значение элементов матрицы. Во второй и третьей строке получить число элементов, значение которых больше средней величины. Элементы строки, для которой это значение больше поменять местами с соответствующими элементами первой строки. Напечатать элементы исходной и преобразованной матрицы.

30. n = 4, m = 7.

Числовые значения переменных x, y задаются по вводу. Найти среднее значение для элементов первого и элементов второго столбца, подсчитать в каждом число элементов, значение которых больше среднего, элементы столбца, имеющего это значение наибольшим поменять местами с соответствующими по j элементами последнего столбца. Напечатать элементы исходной и преобразованной матрицы.

10