Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Многомерные массивы. Массив – это конечная упорядоченная именованная последовательность элементов одного и того же типа

...

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

Массивы

Массив – это конечная упорядоченная именованная последовательность элементов одного и того же типа. При объявлении массива после его имени в квадратных скобках задается его размер (число элементов). В общем случае измерений у массива может быть несколько. В соответствии с их количеством различают одномерные, двумерные, трехмерные и другие массивы.

Математический “аналог” одномерного массива – вектор. Примером одномерного массива может служить набор из двенадцати це­лых чисел, соответствующих числу дней в каждом календарном месяце. Объявление этого массива в программе может быть, например, таким:

int days[12];

В данной строке объявлен массив с именем days, состоящий из 12 элементов типа int.

Для того чтобы обратиться к определенному эле­менту массива, используется операция индексирования []. В квадратных скобках указывается целочисленное выражение, определяющее порядковый номер (индекс) элемента массива. Операнды операции индексирования – массив и значение индекса, результат – значение соответствующего элемента массива. Операция индексирования – одна из операций, имеющих наивысший приоритет. Нумерация элементов массива начинается с 0.

Присвоим, например, всем элементам массива days начальные значения (инициализируем массив days), помня о том, что начальный элемент массива days имеет индекс 0, а последний, соответственно, 11:

days [0] = 31;

days [1] = 28;

days [11] = 31;

Размер массива должен быть известен в мо­мент компиляции, поэтому при объявлении массива в качестве его размера можно указывать только целую константу. При обращении же к элементу массива в качестве зна­чения индекса может выступать любая переменная или выражение, представляемое ими значение вычисляется во время выполнения программы и преобразуется к це­лому значению.

Вывести на экран все элементы массива days можно, например, с помощью оператора for:

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

cout << days[i];

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

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

int a[10];

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

cin >> a[i];

Когда начальные значения элементов массива известны, при объявлении массива можно использовать список начальных значений, заключаемый в фигурные скобки:

int a[10] = { 71, 28, 40, -4, 231, 1, -30, 0, 30, 31};

Значений в списке может быть меньше, чем элементов в массиве, в этом случае оставшиеся элементы массива получают нулевые начальные значения.

Автоматическое генерирование случайных значений осуществляется стандартной функцией rand(), описанной в файле заголовков stdlib.h. Пример инициализации массива с помощью датчика случайных чисел:

#include <stdlib.h>

...

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

a[i]=rand();

Алгоритм генерации случайных чисел “отталкивается” от значения выбранной начальной точки. При одной и той же начальной точке одним и тем же будет и набор генерируемых случайных значений. Стандартная начальная точка задается значением 1. При необходимости "точку отсчета" можно изменить с помощью стандартной функции srand(), например:

srand(2);

Имеется воз­можность определить массивы с несколькими индексами (измерениями).

Математический “аналог” двумерных массивов – матрицы, состоящие из строк и столбцов. Например, объявление

int m[10][5];

объявляет матрицу (таблицу) целых чисел размером 10 на 5, то есть из 10 строк и 5 столбцов. По-другому интерпре­тировать данное объявление можно как объявление массива из 10 элемен­тов, каждый из которых – одномерный массив (вектор) целых чисел длиной 5. Общее количество целых чисел в массиве m равно 50.

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

m[1][2]=0;

присваивает значение 0 третьему элементу второй строки матрицы m.

Как и при объявлении одномерного массива, при объявлении многомерного массива все его размеры должны быть заданы константами.

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

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

double temp[2][3] = {

{ 3.2, 3.3, 3.4},

{ 4.1, 3.9, 3.9} };

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

При использовании “структурированного” списка начальных значений недостающие элементы строк заменяются нулями.

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

<== предыдущая лекция | следующая лекция ==>
Вычисление значения выражения | Массивы с неопределенным размером (безразмерные массивы)
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 415; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.