СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Разработка кода ИС Практическая работа №4

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Разработка кода ИС Практическая работа №4»

Практическая работа №4

Тема: Многомерные массивы.

Цель работы: изучить концепцию многомерных массивов в C#, освоить способы их объявления, инициализации, доступа к элементам и манипулирования данными.

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

Массивы которые имеют два измерения (ранг равен 2) называют двухмерными. Например, создадим одномерный и двухмерный массивы, которые имеют одинаковые элементы:

Визуально оба массива можно представить следующим образом:

Одномерный массив nums1

0

1

2

3

4

5

Двухмерный массив nums2

0

1

2

3

4

5

Поскольку массив nums2 двухмерный, он представляет собой простую таблицу. Все возможные способы определения двухмерных массивов:

Массивы могут иметь и большее количество измерений. Объявление трехмерного массива могло бы выглядеть так:

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

Определенную сложность может представлять перебор многомерного массива. Прежде всего надо учитывать, что длина такого массива - это совокупное количество элементов.

В данном случае длина массива numbers равна 6. И цикл foreach выводит все элементы массива в строку:

Но что если мы хотим отдельно пробежаться по каждой строке в таблице? В этом случае надо получить количество элементов в размерности. В частности, у каждого массива есть метод GetUpperBound(номер_размерности), который возвращает индекс последнего элемента в определенной размерности. И если мы говорим непосредственно о двухмерном массиве, то первая размерность (с индексом 0) по сути это и есть таблица. И с помощью выражения

можно получить количество строк таблицы, представленной двухмерным массивом. А через

можно получить количество элементов в каждой строке:

Массив массивов

От многомерных массивов надо отличать массив массивов или так называемый "зубчатый массив":

Здесь две группы квадратных скобок указывают, что это массив массивов, то есть такой массив, который в свою очередь содержит в себе другие массивы. Причем длина массива указывается только в первых квадратных скобках, все последующие квадратные скобки должны быть пусты: new int[3][]. В данном случае у нас массив nums содержит три массива. Причем размерность каждого из этих массивов может не совпадать.

Альтернативное определение массива массивов:

Зубчатый массив nums

1

2




1

2

3



1

2

3

4

5

Используя вложенные циклы, можно перебирать зубчатые массивы. Например:

Основные понятия массивов

Суммируем основные понятия массивов:

  • Ранг (rank): количество измерений массива

  • Длина измерения (dimension length): длина отдельного измерения массива

  • Длина массива (array length): количество всех элементов массива

Например, возьмем массив

Массив numbers двухмерный, то есть он имеет два измерения, поэтому его ранг равен 2. Длина первого измерения - 3, длина второго измерения - 4. Длина массива (то есть общее количество элементов) - 12.

Примеры массивов:

Задание:

1. Дан двумерный массив.
а) Вывести на экран элемент, расположенный в правом верхнем углу массива.
б) Вывести на экран элемент, расположенный в левом нижнем углу массива.
2. Дан двумерный массив.
а) Вывести на экран элемент, расположенный в правом нижнем углу массива.
б) Вывести на экран элемент, расположенный в левом верхнем углу массива.
3. Дан двумерный массив. Составить программу:
а) вывода на экран любого элемента второй строки массива;
б) вывода на экран любого элемента массива.
4. Дан двумерный массив. Составить программу:
а) вывода на экран любого элемента третьего столбца массива;
б) вывода на экран любого элемента массива.
5. Дан двумерный массив. Вывести на экран:
а) все элементы пятой строки массива;
б) все элементы s-го столбца массива.
6. Дан двумерный массив. Вывести на экран:
а) все элементы второго столбца массива;
б) все элементы m-й строки массива.

Контрольные вопросы:

  1. Что такое многомерный массив?

  2. Как объявить многомерный массив в C#?