4866

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

Лекция

Информатика, кибернетика и программирование

Одномерные и многомерные массивы Массив представляет собой набор переменных одного типа. Элементы массива размещаются в памяти последовательно и индексируются начиная с 0. Доступ к элементам осуществляется напрямую по индексу. Размерность массива оп...

Русский

2012-11-28

36.5 KB

15 чел.

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

Массив представляет собой набор переменных одного типа. Элементы массива размещаются в памяти последовательно и индексируются начиная с 0. Доступ к элементам осуществляется напрямую по индексу. Размерность массива определяется при его объявлении и может быть либо явно задана константным выражением либо выведена исходя их количества элементов при инициализации:

// Объявление массива из 100 элементов,

// все элементы неинициализированы

 char mas1[100];

 // Объявление массива с одновременной инициализацией,

 // размерность массива равна количеству элементов в списке: 5

 int mas2[] = { 16, 8, 4, 2, 1 };

 // Объявление массива из 10 элементов, инициализированы

 // только первые 3 элемента (с индексами 0, 1, 2), остальные

// элементы инициализированы нулями

 long mas3[10] = { 10, 20, 30 };

Доступ к элементам массива осуществляется по соответствующему индексу с помощью оператора []. Первый элемент массива размерности N имеет индекс 0, последний – N-1. В следующем примере массив заполняется значениями, введенными пользователем, и выводится в обратном порядке:

const short N = 5;

 double mas[N];

 for ( int i = 0; i < N; ++i )

 std::cin >> mas[i];

 for ( int i = N-1; i >= 0; --i )

 std::cout << mas[i] << " ";

std::cout << std::endl;

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

const unsigned int N = 5;

int A[N] = { 1, 2, 3, 4, 5 };

int B[N];

// Копируем массив A в массив B

for ( int i = 0; i < N; ++i )

  B[i] = A[i];

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

Многомерные массивы объявляются и инициализируются аналогично:

 // Объявление многомерного массива размерности 3x4x5,

 // все элементы неинициализированы

 double mas4[3][4][5];

// Объявление многомерного массива с одновременной

// инициализацией.

 int mas5[3][3] = { { 11, 12, 13 }

                 , { 21, 22, 23 }

    , { 31, 32, 33 }

    };

Все элементы многомерных массивов также располагаются в памяти последовательно, причем первыми меняются значения самого правого индекса. Например, для массива char mas[2][3] будет выделено 6 байт памяти, в которых элементы массива будут размещены в следующем порядке:

 mas[0][0] mas[0][1] mas[0][2] mas[1][0] mas[1][1] mas[1][2]

         1           2           3           4           5         6

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

#include <iostream>

int main()

{

setlocale( 0, "Rus" );

 

 const short N = 5;

 double mas[N][N];

 // Заполнение матрицы случайными числами

std::cout << "Исходная матрица" << std::endl;

 for ( int i = 0; i < N; ++i )

{

 for ( int j = 0; j < N; ++j )

 {

  mas[i][j] = rand() % 100;

  std::cout << mas[i][j] << "\t";

 }

 std::cout << std::endl;

}

std::cout << std::endl;

 // Транспонирование матрицы

 for ( int i = 0; i < N; ++i )

{

 for ( int j = i + 1; j < N; ++j )

 {

  double temp = mas[i][j];

  mas[i][j] = mas[j][i];

  mas[j][i] = temp;

 }

}

 

 // Вывод на экран

std::cout << "Транспонированная матрица" << std::endl;

 for ( int i = 0; i < N; ++i )

{

 for ( int j = 0; j < N; ++j )

  std::cout << mas[i][j] << "\t";

 std::cout << std::endl;

}

system( "pause" );

 return 0;

}

 


 

А также другие работы, которые могут Вас заинтересовать

11378. ГИПЕРТОНИЯ, АНТИГИПЕРТЕНЗИВНЫЕ СРЕДСТВА 103.5 KB
  В зависимости от этиологии гипертонию подразделяют на два типа:первичную и вторичную симптоматическую. симптоматическая гипертония симптом заболевания какоголибооргана: почек эндокринных желез сосудов сердца ЦНС... Лечат основ...
11379. МОЧЕГОННЫЕ СРЕДСТВА (ДИУРЕТИКИ) 97.5 KB
  МОЧЕГОННЫЕ СРЕДСТВА ДИУРЕТИКИ Изменение объема и электролитного состава жидкостей организма наблюдаются довольно часто и являются серьезными клиническими проблемами. Задержка солей и воды в организме с увеличением гидратации тканей образованием отеков и скоплен...
11380. Стимуляторы дыхания (Дыхательные аналептики) 76 KB
  При лечении острых и хронических заболеваний органов дыхания которые широко распространены в медицинской практике могут быть использованы лекарственные средства из различных групп в том числе противомикробные противоаллергические и другие противовирусные. В данн
11381. Средства, влияющие на ЖКТ. Средства, влияющие на аппетит 194 KB
  Лекции по курсу Фармакология тема: Средства влияющие на ЖКТ I. Средства влияющие на аппетит Физиологическая система регуляции аппетита включает центральное и периферическое звенья. Центральные механизмы: в ядрах гипоталамуса находятся центр голода и цен...
11382. Средства, влияющие на гемопоэз 98 KB
  Средства влияющие на гемопоэз Введение. Кровь состоит из форменных элементов и плазмы. Форменные элементы имеют небольшую продолжительность жизни от несколько дней до нескольких месяцев эритроциты = 120 дней тромбоциты = 10 дней. В организме постоянно идет процесс р
11383. ЛЕКАРСТВЕННЫЕ СРЕДСТВА, ВЛИЯЮЩИЕ НА СВЕРТЫВАНИЕ КРОВИ 211.5 KB
  ЕКАРСТВЕННЫЕ СРЕДСТВА ВЛИЯЮЩИЕ НА СВЕРТЫВАНИЕ КРОВИ I Введение В организме две эти системы находятся в динамическом равновесии и в зависимости от конкретных условий преобладает одна или другая. Если равновесие нарушается то либо повышается к...
11384. Моторика и тонус миометрия регулируется нейрогуморальными механизмами 48.5 KB
  Введение. I. Моторика и тонус миометрия регулируется нейрогуморальными механизмами. А В миометрии находятся МХР α1 и β2 АР Возбудители МХР и α –АР стимулирующее действие. Возбудители β2 – АР угнетающее действие Б Стимулирующее влияние на сократительную актив
11385. Гормональные препараты, Механизм действия гормонов 119 KB
  СПХФА Кафедра фармакологии Лекции по курсу Фармакология тема: Гормональные препараты доц. Н.А. Анисимова 2008 г. Схема организации эндокринной системы В гипоталамус поступает и
11386. Стероидные гормоны. Препараты гормонов коры надпочечников 75 KB
  Стероидные гормоны Препараты гормонов коры надпочечников Кора надпочечников вырабатывает несколько десятков стероидных соединений ЦППГФК среди них 3 группы гормонов. Биосинтез секреция и метаболизм всех стероидных гормонов взаимосвязан. Кортикостероиды: минера...