Одномерные массивы
Массив – это множество переменных одного и того же типа, имеющих одно общее имя (имя массива). Отдельная единица таких данных, входящих в массив, называется элементом массива. В качестве элементов массива или переменной с индексом могут быть данные любого типа (один тип данных для каждого массива).
Доступ к отдельной переменной осуществляется по индексу.
Индекс определяет положение элемента в массиве. Индекс элемента массива и его содержимое – это разные понятия.
Объявление одномерного массива, синтаксис: тип_ массива имя_массива [ число элементов массива ]
Правила объявления массива:
- Индекс первого элемента массива в С++ равен 0 (нулю).
- Объявление массива в С++ влечет за собой точное определение числа его элементов (количество элементов массива должно быть всегда целым числом).
- Доступ к отдельным элементам массива осуществляется по имени массива и индексу элемента массива: a[0] = 1; a[1] = 2.
- В инструкции объявления массива удобно использовать константу, объявленную в директиве # define N 5
Правила использования элементов массива:
- Необходимо присваивать значение элементу массива до того, как он будет считываться
- При решении задач использовать допустимый индекс
int mas[10]; // объявленный массив
x = mas[11]; // ошибка, элементы с таким индексом не существуют
- В качестве индекса элемента массива можно использовать выражение целого типа – константу или переменную
x[2*i - 1]; mas[i + 1]; a[2*i]
Инициализация массивов
Инициализацию массивов можно проводить при их объявлении.
int mas[12] = {2, 4, 7, 11, 12, 13, 8, 5, 1, 2, 6, 9};
mas[0] = 2; mas[4] = 12; mas[8] = 1; mas[11] = 9;
Если в списке инициализации значений указано меньше, чем объявлено в размере массива, то имеет место частичная инициализация. В этом случае иногда после последнего значения в инициализирующем выражении для наглядности ставят запятую:
int mas[12] = {2, 4, 7, }; или int mas[12] = {2, 4, 7};
остальные элементы принимают значение равные нулю.
int mas[10] = {0} – массив mas [10] инициализирован нулевыми элементами.
При объявлении массива с одновременной его инициализацией, разрешается опускать значение размера в квадратных скобках. При этом компилятор самостоятельно подсчитает количество элементов в списке инициализации.
int mas[ ] = {0, 2, 4, 6, 8, 10};
Если в программе потребуется определить, сколько элементов в массиве, то можно воспользоваться формулой
int size = sizeof (mas) / sizeof (mas[0]); где
sizeof (mas) определяет возвращает общий размер, занимаемый массивом mas[ ] в памяти (в байтах);
sizeof (mas[0]) - размер одного элемента массива/
sizeof – оператор для определения числа байтов, необходимых для хранения объекта
Ввод элементов массива
а) инициализация при объявлении массива
float a[5] = {1.3, 2.5, 4.4, 7.9}
б) float a[10]; // объявление массива
cout << “Ввод элементов массивап“<<’ \ n’;
for (int i=0; i<10; i++) cin >> a[i];
в) ввод по формуле:
double a[7]; int i; // объявление
for (i=0; i<=6; i++) a[i] = cos(i*i);
г) использование генератора случайных чисел
# include < stdlib.h >
main ( )
{ randomize( );
int a[10];
for (int i = 0; i < 10; i++) a[i] = random(30); [в интервале 0÷30]
( или a[i] = 10 + random[41]).
Вывод элементов массива
а) for (i=0; i<=9; i++)
cout << a[i] << ‘\n’; //вывод в столбик
б) for (i=0; i<=9; i++)
cout << a[i] << ‘\t’; // вывод в строку
cout << ‘ \ n’;
Пример с одномерным массивом (Решение задачи можно посмотреть, скачав файл "Задача-8"):
Дан одномерный массив целых чисел. Найти сколько раз введенное с клавиатуры число встречается в массиве.
#include<iostream.h>
#define n 10
main ()
{int mas [n], i, a, kol=0;
cout<<"Vvedite masiv"<<'\n';
for (i=0; i<n; i++)
cin>>mas[i];
cout<<"Vvedite chislo dlya poiska"<<'\n';
cin>>a;
for (i=0; i<n; i++)
if (a==mas[i]) kol++;
if (kol==0) cout<<"Vvedennogo chisla v massive net"<<'\n';
else cout<<"Vvedenoe chislo vstrechaetsya "<<kol<<" raz(a)"<<'\n';
return 0;
}
|