Двумерные и многомерные массивы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Двумерные и многомерные массивы



Представьте себе таблицу, состоящую из нескольких строк. Каждая строка состоит из нескольких ячеек. Тогда для точного определения положения ячейки нам потребуется знать не одно число (как в случае таблицы линейной), а два: номер строки и номер столбца. Структура данных в языке Паскаль для хранения такой таблицы называется двумерным массивом. Описать такой массив можно двумя способами:

I.

Var A: Array [1..20] Of Array [1..30 ] Of Integer;

II.

Var A: Array [1..20,1..30 ] Of Integer;

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

Отдельный элемент двумерного массива адресуется, естественно, двумя индексами. Например, ячейка, находящаяся в 5-й строке и 6-м столбце будет называться A[5][6] или A[5,6].

Для иллюстрации способов работы с двумерными массивами решим задачу: "Задать и распечатать массив 10X10, состоящий из целых случайных чисел в интервале [1,100]. Найти сумму элементов, лежащих выше главной диагонали."

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

Program M5;

Var A: Array [1..10,1..10] Of Integer;

I, K: Byte; S: Integer;

Begin

S:=0;

For I:=1 To 10 Do

Begin

For K:=1 To 10 Do

Begin

A[I,K]:= Trunc (Random *100)+1;

Write (A[I,K]:6);

If K>I Then S:=S+A[I,K]

End;

Writeln

End;

Writeln ('Сумма элементов выше гл. диагонали равнаV',S)

End.

 

Если модель данных в какой-либо задаче не может свестись к линейной или плоской таблице, то могут использоваться массивы произвольной размерности. N-мерный массив характеризуется N индексами. Формат описания такого типа данных:

Type

<Имя типа> = Array[ <диапазон индекса1>, <диапазон индекса2>,... <диапазон индекса N> ] Of <тип компонент>;

Отдельный элемент именуется так:

<Имя массива> [ <Индекс 1>,<Индекс 2>,...,<Индекс N> ]

 

 

Варианты заданий:

I.

1.Создать одномерный массив из 17 элементов. Вычислить наименьшее значение из элементов, имеющих нечетные индексы. Вывести его значение и индекс.

2. Создать одномерный массив из 16 элементов. Вычислить наибольший элемент и его индекс из нечетных элементов.

3. Создать одномерный массив из 14 элементов. Вычислить максимальный элемент из элементов, имеющих четные индексы. Вывести эти значения.

4.Создать одномерный массив из 18 элементов. Каких чисел в последовательности больше: отрицательных или положительных? Вывести результат.

5. Создать одномерный массив из 13 элементов. Вычислить наименьшее значение из четных элементов. Вывести его значение и индекс.

6. Создать одномерный массив из 17 элементов. Вычислить произведение отрицательных элементов.

7. Создать одномерный массив из 16 элементов. Вычислить максимальное значение из элементов, имеющих четные индексы.

8. Создать одномерный массив из 15 элементов. Вычислить среднеарифметическое значение нечетных элементов с нечетными индексами.

9. Создать одномерный массив из 19 элементов. Все нулевые элементы заменить максимальным значением. Вывести новый массив.

10. Создать одномерный массив из 17 элементов. Отрицательные элементы заменить на те же значения, но с обратным знаком. Вывести новый массив.

11. Создать одномерный массив из 14 элементов. Вычислить среднеарифметическое элементов, меньших А (А вводится с клавиатуры).

12. Создать одномерный массив из 20 элементов. Вычислить сумму нечетных элементов с четными индексами.

13. Создать одномерный массив из 17 элементов. Вычислить среднеарифметическое значение элементов, больших А (А вводится с клавиатуры).

14. Создать одномерный массив из 16 элементов. Поменять местами наибольший элемент массива с наименьшим. Вывести новый массив.

15. Создать одномерный массив из 13 элементов. Сколько элементов больше числа А (А вводится с клавиатуры).

16. Создать одномерный массив из 18 элементов. Все отрицательные элементы заменить на минимальное значение массива. Вывести новый массив.

17. Создать одномерный массив из 17 элементов. Сколько нечетных элементов с нечетными индексами?

18. Создать одномерный массив из 14 элементов. Заменит все нули числом 100.

19. Создать одномерный массив из 17 элементов. Поменять местами наименьший элемент с первым элементом массива. Вывести новый массив.

20. Создать одномерный массив из 18 элементов. Сколько четных элементов с четными индексами?

21. Создать одномерный массив из 17 элементов. Заменить все отрицательные элементы на значение А (А вводится с клавиатуры).

22.Создать одномерный массив из 14 элементов. Поменять местами первый и последний элементы. Вывести новый массив.

23.Создать одномерный массив из 16 элементов. Найти наименьшее значение и его индекс из отрицательных элементов.

24.Создать одномерный массив из 17 элементов. Вычислить произведение четных элементов с нечетными индексами.

25.Создать одномерный массив из 12 элементов. Поменять местами наибольший элемент с последним. Вывести новый массив.

 

II.

1.Создать матрицу 7х7. Найти скалярное произведение строки, в которой наибольший элемент матрицы на столбец с наименьшим элементом. Результат вывести.

2. Создать матрицу 5х5. Каждый элемент столбца разделить на диагональный элемент, стоящий в том же столбце. Результат вывести.

3. Создать матрицу 6х4. В каждой строке найти наибольший элемент и поменять местами с соответствующим диагональным элементом. Результат вывести.

4. Создать матрицу 4х5. Для каждой строки найти наименьший элемент. вычислить произведение этих элементов.

5. Создать матрицу 3х5. Для каждого столбца с нечетным номером вычислить произведение элементов этого столбца. Результат вывести.

6. Создать матрицу 6х4. Найти наибольшие элементы каждой строки и поменять их местами с первыми элементами этих строк. Вывести результат.

7. Создать матрицу 6х4. Найти сумму нечетных элементов четных строк. Если таких нет – выдать сообщение.

8. Создать матрицу 4х4. Для каждого столбца с четным номером вычислить сумму квадратов элементов этого столбца. Вывести результат.

9. Создать матрицу 5х5. Вычислить среднеарифметическое значение элементов матрицы S. Вычислить, сколько элементов матрицы равно S, больше, меньше S. Вывести результат.

10. Создать матрицу 3х5. Найти минимальные элементы каждого столбца и поменять их с последними элементами этих столбцов. Вывести результат.

11. Создать матрицу 6х4. Найти произведение четных элементов нечетных столбцов. Если таких нет – вывести сообщение.

12.Создать матрицу 6х7. Для каждого столбца найти наибольший элемент. Вычислить и напечатать сумму найденных элементов.

13.Создать матрицу 5х6. Среди отрицательных элементов найти наименьший. Если отрицательных элементов нет – выдать сообщение.

14.Создать матрицу 4х6. Найти количество элементов в каждом столбце, меньших среднеарифметического значения элементов данного столбца.

15.Создать матрицу 5х4. Поменять местами столбцы, содержащие наибольший элемент и наименьший элементы. Вывести новую матрицу.

16.Создать матрицу 3х4. Элементы четных столбцов заменить на значение А (А вводится с клавиатуры). Вывести новую матрицу.

17.Создать матрицу 5х6. Среди отрицательных элементов найти наименьший элемент. Если отрицательных элементов нет – выдать сообщение.

18.Создать матрицу 6х3. Все ненулевые элементы заменить противоположными по знаку. Вывести новую матрицу.

19.Создать матрицу 6х6. Сформировать одномерный массив, каждый элемент которого равен произведению четных положительных элементов соответствующего столбца. Вывести новую матрицу.

20.Создать матрицу 7х6. Найти количество в каждой строке элементов, больших среднеарифметического значения элементов данной сроки.

21.Создать матрицу 5х4. Поменять местами строки, содержащие максимальный и минимальный элементы. Вывести новую матрицу.

22.Создать матрицу 4х4. Элементы в нечетных строках матрицы заменить на значение Х (Х водится с клавиатуры). Вывести новую матрицу.

23.Создать матрицу 5х5. Вычислить сумму элементов, находящихся «над» главной диагональю матрицы.

24.Создать матрицу 6х6. Вычислить произведение элементов, находящихся «под» главной диагональю матрицы.

25.Создать матрицу 4х4. Вычислить сумму элементов побочной диагонали матрицы.

 

Содержание отчета

1. Титульный лист.

2. Постановка задачи.

3. Краткие теоретические сведения.

4. Программный код с комментариями.

5. Результаты работы программы в виде скриншота.

6. Выводы.

 

 

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



Поделиться:


Последнее изменение этой страницы: 2017-02-09; просмотров: 185; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.186.6 (0.014 с.)