Вы находитесь на странице: 1из 6

Массивы

Что такое массив?


Массив — совокупный тип данных, который позволяет получить доступ ко всем переменным одного и того
же типа данных через использование одного идентификатора.
Пример 1
Рассмотрим случай, когда нужно записать результаты тестов 30 студентов в классе. Без использования массива нам
придется выделить 30 почти одинаковых переменных!
Без массива: Используя массив:
// Выделяем 30 целочисленных переменных (каждая с int testResult[30]; // выделяем 30 целочисленных
разным именем) переменных, используя фиксированный массив
int testResultStudent1;
int testResultStudent2;
int testResultStudent3; В объявлении переменной массива мы используем
// ... квадратные скобки [ ], чтобы сообщить
int testResultStudent30; компилятору, что это переменная массива (а не
обычная переменная), а в скобках — количество
выделяемых элементов (это называется длиной
или размером массива).
Элементы массива
Каждая из переменных в массиве называется элементом. Элементы не имеют своих собственных
уникальных имен. Вместо этого для доступа к ним используется имя массива вместе с оператором индекса
[] и параметром, который называется индексом, и который сообщает компилятору, какой элемент мы
хотим выбрать. Этот процесс называется индексированием массива.

Важно: В отличие от повседневной жизни, отсчет Пример 2


в программировании и в языке С++ всегда #include <iostream>
начинается с 0, а не с 1! int main()
{
int array[5]; // массив из пяти чисел
array[0] = 3; // индекс первого элемента - 0 (нулевой элемент)
В массиве длиной N элементы array[1] = 2;
массива будут пронумерованы от 0 array[2] = 4;
до N-1! Это называется диапазоном array[3] = 8;
массива. array[4] = 12; // индекс последнего элемента - 4
std::cout << "The array element with the smallest index has the value "
<< array[0] << "\n";
std::cout << "The sum of the first 5 numbers is " << array[0] + array[1] +
array[2] + array[3] + array[4] << "\n";
return 0;
}
Инициализация фиксированных массивов
Инициализации массивов с помощью списка инициализаторов:

int array[5] = { 4, 5, 8, 9, 12 }; // используется список инициализаторов для инициализации фиксированного


массива

Длина массива
Если вы инициализируете фиксированный массив с помощью списка инициализаторов, то компилятор
может определить длину массива вместо вас, и вам уже не потребуется её объявлять.
Следующие две строки выполняют одно и то же:

int array[5] = { 0, 1, 2, 3, 4 }; // явно указываем длину массива


int array[] = { 0, 1, 2, 3, 4 }; // список инициализаторов автоматически определит длину массива
Ввод и вывод элементов массива
Для того чтобы работать с массивом, необходимо задать начальные значения элементов массива. Сделать
это можно несколькими способами:
1) определение элементов массива как констант; int array[5] = { 0, 1, 2, 3, 4 };
2)  ввод элементов массива с клавиатуры; for (int i = 0; i < 10; i++)
  cin >> a[i];
3) использование случайных чисел для определения значений;
Для этого используется функция rand(), которая генерирует случайное целое число из промежутка
[0; 32768). Если элементы массива должны принадлежать отрезку [a; b], то можно определить
значение элемента массива как a[i]= rand() % (b – a + 1) + a;

4) использование функций (собственных или стандартных) для определения значений;


5) ввод элементов массива из текстового файла.

ifstream fin("input.txt"); //ввод данных


ofstream fout("output.txt");//вывод данных

Для работы с файлами используются специальные типы данных, называемые потоками. Поток ifstream
служит для работы с файлами в режиме чтения (ввод данных). Поток ofstream служит для работы с
файлами в режиме записи (вывод данных). В программах на C++ при работе с текстовыми файлами
необходимо подключать библиотеку fstream
Пример 3. Написать программу, которая сформирует массив из n четных чисел из отрезка [20, 70] случайным
образом. Записать числа из массива в текстовый файл. Вывести на экран k-й элемент массива.
#include <iostream>
#include <fstream>
#include <ctime> Алгоритм решения задачи.
#include <cstdlib> 1. Ввод исходных данных.
using namespace std; 2. Генерация массива.
int main() 2.1. Для того чтобы элементы массива были только
{ четными, необходимо каждый полученный элемент
srand(time(NULL)); умножать на 2. 
int n; 2.2. Поскольку элементы умножаются на два,
cout<<"n = "; границы исходного отрезка нужно уменьшить в два
cin>>n; раза. 
int a[n]; 2.3. Вывод массива по элементам.
ofstream fout("output.txt"); 3. Ввод значения k и вывод результата.
for (int i = 0; i < n; i++){
a[i] = 2 * (rand() % 26 + 10);
fout << a[i] << " ";
}
int k;
cout << "k = ";
cin >> k;
cout << a[k];
return 0;
}

Вам также может понравиться