Для работы с множеством однотипных данных ( строками, датами, целочисленными значениями и т. п. ) удобно использовать массивы. Например, можно создать массив для хранения списка рабочих, работающих на одном заводе. Вместо создания переменных для каждого рабочего, например рабочий_1, рабочий_2 и т. д., достаточно создать один массив, где каждой фамилии из списка будет присвоен порядковый номер.
Массив в таблице ниже имеет 8 элементов, каждый из которых сохраняет число вещественного типа. Элементы в массиве пронумерованы. Такого рода массив, представляющий собой простой список данных одного и того же типа, называют одномерным массивом. Для доступа к данным, хранящимся в определенном элементе массива, необходимо указать имя массива и порядковый номер этого элемента, называемый индексом. Обратите внимания, что массив в таблице имеет максимальный индекс 7, хотя размер массива 8 ячеек, так как начинается он с нуля.
12.7 | 0.13 | -1.5 | 0 | 21.9 | -3.7 | 5.0 | 121.7 |
0-й элемент | 1-й элемент | 2-й элемент | 3-й элемент | 4-й элемент | 5-й элемент | 6-й элемент | 7-й элемент |
Когда возникает необходимость хранения данных в виде таблиц, в формате строк и столбцов, то придется использовать двумерные массивы. В таблице ниже приведен пример массива, состоящего из четырех строк и четырех столбцов. Строки в нем считаются первым измерением, а столбцы вторым. Для доступа к данным, хранящимся в этом массивы, необходимо указать имя массива и два индекса, первый должен соответствовать номеру, а второй номеру столбца, в котором хранится необходимый элемент.
1 столбец | 2 столбец | 3 столбец | 4 столбец | |
1 строка | 3.5 | 7.8 | 1.3 | 0.6 |
2 строка | -1.4 | 0.3 | 0 | 12.1 |
3 строка | -5.7 | -0.78 | 5.0 | 6.9 |
4 строка | 45.1 | 124.0 | -24.7 | 0.96 |
Описание массивов
Описать массив в C++ можно так:
Тип имя_массива [размерность];
Размерность — это количество элементов в массиве. Например:
int x[10]; // описание маасива из 10 целых чисел float a[20]; // описание маасива из 20 вещественных чисел
Размерность массива и тип его элементов определяют объем памяти, который необходим для хранения массива, поэтому размерность — это целое положительное константное выражение.
const int n=15; // определенна целая положительная константа double B[n]; // описан массив из 15 вещественных чисел
Как я уже говорил, элементы массива в C++ нумеруются с нуля. Первый элемент всегда имеет номер ноль, а номер последнего элемента на единицу меньше заданной при его описании размерности:
char C[5]; // описан массив из 5 символов, нумерация от 0 до 4
Доступ к каждому элементу массива осуществляется с помощью индекса — порядкового номера элемента. Для обращения к элементу массива указывают его имя, а затем в квадратных скобках индекс
имя_массива [индекс];
Например:
const int n=15; double C[n],S; S=C[0]+C[n-1]; //сумма первого и последнего элементов массива C
Массиву, как и любой другой переменной, можно присвоить начальное значение. Для этого значения элементов массива нужно перечислить в фигурных скобках через запятую:
тип имя_переменной [размерность] = {элемент_0, элемент_1, …};
Например:
float a[6] = {1.23, 2.4, 5.6, 6.1}; //формируется массив из шести вещественных чисел, //значения элементам присваиваются по порядку, //элементы, значения которых не указаны обнуляются: //a[0]=1.23, a[1]=2.4, a[2]=5.6, a[3]=6.1, a[4]=0, a[5]=0
Ввод и вывод элементов массива осуществляется поэлементно. Например вот так:
#include "stdafx.h" #include <iostream> using namespace std; int main () { int X[10],N,i; cout<<"\n N="; cin>>N; //ввод размера массива for (i=0; i<N; i++) { cout<<"\n X["<<i<<"]="; //сообщение о вводе элемента cin>>X[i]; //ввод элементов массива в цикле cout<<"\t X["<<i<<"]="<<X[i]; //вывод массива } system("pause"); return 0; }
В последующих уроках мы рассмотрим основные операции над массивами, такие как сортировка элементов в массиве, поиск максимального элемента, метод «пузырька» и т. п.. Что касается двумерных массивов, то о них будет подробно рассказано в уроках про матрицы.