Массивы
Многие алгоритмы обработки данных связаны с выполнением однообразных действий над группой величин одного типа. В этом случае целесообразно работать с этими данными как с массивом.
Массив – это структура данных, состоящая из фиксированного числа элементов, имеющих одинаковое имя, одинаковый тип и расположенных в памяти последовательно.
Операция выбора элемента массива называется индексацией; синтаксически она записывается как имя массива, за которым в квадратных скобках следует значение индекса (номера) выбираемого элемента.
Массив – это структура данных с произвольным доступом, то есть время доступа к значению элемента массива не зависит от номера элемента.
Описание массива имеет следующий формат:
тип имя_массива[размер_массива];
В С++ первый элемент любого массива – это нулевой элемент. Таким образом индекс первого элемента – 0, второго – 1, третьего – 2 и так далее.
Рассмотрим инициализацию массива, ввод и вывод значений его элементов на примере программы, которая вычисляет сумму значений элементов массива.
Пример 3_1_1. Одномерный массив
# include < iostream >
using std::endl;
using std::cout;
Int main()
{
const int ArraySize=5; // размер массива
int a [ ArraySize ] = {12, 3, 42, 5, 34};// инициализация массива:
// a [0]=12, a [1]=3, a [2]=43,
// a [3]=5, a [4]=34
//начальные значения можно ввести и с клавиатуры:
/*
for (int i=0; i<ArraySize; ++i)
cin>>a[i];
*/
for (int i=0; i<ArraySize;++i) // вывод значений элементов
cout << a [ i ]<< endl; //массива
int to tal=0; //сумма значений элементов массива
for (int i=0; i<ArraySize; ++i) // цикл вычисления суммы
total+=a[i];
cout << " Сумма элементов массива: " <<total<<endl;
system("pause");
return 0;
}
Пример 3_1_2. Сортировка массива методом «пузырька»
#include <iostream>
using std::endl;
using std::cout;
Int main()
{
const int ArraySize=5 // размер массива
int a[ArraySize] = {12, 3, 42, 5, 34}; // инициализация массива
int i, j, temp;
//сортировка элементов массива
for (i =0; i < ArraySize -1; i ++) //каждый проход цикла ставит на свое
for (j = ArraySize -1; j > i; j --) //место одно значение
if (a[j]<a[j-1])
temp=a[j], a[j]=a[j-1], a[j-1]=temp;// перестановка элементов
//вывод значений элементов массива
for (i =0; i < ArraySize -1;++ i)
cout<<a[i]<<endl; // результат: 3, 5, 12, 34, 42
system (" pause ");
return 0;
}
Пример 3_1_3. Двумерный массив
#include <iostream>
using std::endl;
using std::cout;
Int main()
{
const int ArraySize1=3, // размер1 массива(количество строк таблицы)
ArraySize2=2; // размер2 массива(количество столбцов)
// инициализация массива:
int a[ArraySize1][ArraySize2] ={ {12, 3}, // a[0][0]=12, a[0][1]=3,
{42, 5}, // a[1][0]=42, a[1][1]=5,
{10, 34} // a[2][0]=10, a[2][1]=34
};
//начальные значения можно ввести и с клавиатуры:
/*
for(int i=0; i<ArraySize1; ++i)
for(int j=0; j<ArraySize2; ++j)
cin>>a[i][j];
*/
for (int i=0; i<ArraySize1;++i){ // вывод значений элементов
for (int j=0; j<ArraySize2; ++j) // массива
cout<<a[i][j]<<" ";
cout<<endl;
}
//сумма значений элементов массива
int total=0;
for (int i=0; i<ArraySize1; ++i)
for (int j=0; j<ArraySize2; ++j)
total+=a[i][j];
cout << " Сумма элементов массива: " <<total<<endl;
system("pause");
return 0;
}
Строки – массивы символов
Массивы могут использоваться для хранения не только числовых данных, но и для хранения символьной информации – символов и строк.
Символьный массив, представляющий строку, должен быть достаточно большим для того, чтобы вместить все символы строки и специальный завершающий символ – '\0'.
Инициализировать массив символов можно символьной константой. Например:
char string1[]= " hello ";
Размер массива определяется компилятором по длине строки инициализации. Для данного массива (string1) размер = 5 (длина строки " hello ") + 1 (завершающий символ) = 6.
Символьному массиву можно задать в качестве начального значения сисок отдельных символьных констант, указанных в списке инициализации. Например, предыдущее объявление эквивалентно следующему:
char string 1[]= {' h ', ' e ', ' l ', ' l ', ' o ', '\0' };
Так как строка является символьным массивом, можно получить доступ к отдельным символам, как к элементам массива. Например, string1[0] – символ ' h ',а string1[5] – символ ' o '.






