Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОДИЧКА прикладное ПРОГРАМ.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

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

  1. Может ли массив быть элементом массива?

  2. В каком случае массивы совместны по присваиванию?

  3. Пусть элементами массива A (a[1], a[2], a[3], a[4]) являются соответственно x, -x, x2, -x2.

  4. Можно ли выполнять обход двумерного массива, организовав внешний цикл по столбцам, а внутренний — по строкам?

  5. Целесообразно ли использовать ли вложенные циклы, если совершается обход только главной диагонали квадратной матрицы? одной строки матрицы? одного столбца матрицы?

Лабораторная работа № 15-16 «Использование многомерных массивов»

Цель работы: знакомство и получение навыков при навыков при работе с массивами.

Образовательные результаты, заявленные во фгос третьего поколения:

Студент должен

уметь:

-осуществлять разработку кода программного модуля на современных языках программирования;

- оформлять документацию на программные средства;

- использовать инструментальные средства для автоматизации оформления документации;

знать:

- основные этапы разработки программного обеспечения;

- основные принципы технологии структурного и объектно-ориентированного программирования;

- методы и средства разработки технической документации.

Краткие теоретические и учебно-методические материалы по теме лабораторной работы

По аналогичному принципу располагаются в памяти и массивы большей размерности. Предположим, b – трехмерный массив, имеющий размеры L×M×N.Тогда номер k элемента трехмерного массива b[l][i][j] в последовательности может быть вычислен по формуле

k= (l*M+i)*N+j или k= l*M*N+i*N+j.

Основная форма описания массива размерности R такова:

тип имя_массива [размер1][ размер2] …[размерR]; где размер1, размер2, размерR – количество значений соответствующего индекса массива.

Пример: Первая величина (4) задает количество строк, вторая (3) – количество столбцов. Объект ia определен как массив из четырех строк по три элемента в каждой. Многомерные массивы тоже могут быть инициализированы:

int ia[ 4 ][ 3 ] = {

{ 0, 1, 2 },

{ 3, 4, 5 },

{ 6, 7, 8 },

{ 9, 10, 11 }

};

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

int ia[4][3] = { 0,1,2,3,4,5,6,7,8,9,10,11 };

Следующее определение инициализирует только первые элементы каждой строки. Оставшиеся элементы будут равны нулю:

int ia[ 4 ][ 3 ] = { {0}, {3}, {6}, {9} };

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

int ia[ 4 ][ 3 ] = { 0, 3, 6, 9 };

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

int main()

{

const int rowSize = 4;

const int colSize = 3;

int ia[ rowSize ][ colSize ];

for ( int i = 0; i < rowSize; ++i ) for ( int j = 0; j < colSize; ++j ) ia[ i ][ j ] = i + j j;}

Конструкция

ia[ 1, 2 ]

является допустимой с точки зрения синтаксиса С++, однако означает совсем не то, чего ждет неопытный программист. Это отнюдь не объявление двумерного массива 1 на 2. Агрегат в квадратных скобках – это список выражений через запятую, результатом которого будет последнее значение 2 (см. оператор “запятая” в разделе 4.2). Поэтому объявление ia[1,2] эквивалентно ia[2]. Это еще одна возможность допустить ошибку