Cout << "static_array";
staziss
Привет! Сегодня мы рассмотрим самую распространённую и лёгкую в использовании структуру данных, а именно массив.
Представление о массиве.
Чтобы понять как устроен массив, нам необходимо понять, как он организован в памяти. Массив - это непрерывная выделенная область в памяти.
Графическое представление массива можно представить в виде непрерывной ленты.

Адрес массива представляет собой адрес начального (нулевого) элемента массива. Для обращения к элементам массива используется порядковый номер (индекс) элемента, начальное значение которого равно 0. Так, если массив содержит 8 элементов, то индексы элементов массива меняются в пределах от 0 до 8 - 1 = 7.
Зачем мне нужен массив?
Массив удобен в работе, когда у нас есть большое количество элементов одного типа над которыми нужно произвести некоторые манипуляции. Например у нас есть 8 человек, нам предоставили данные о их росте и нужно отсортировать их по росту. Мы могли завести 8 переменных и записать туда эти значения.

На примере мы видим, что данная реализация очень громоздка, занимает 21 строчку кода. Ещё нам будет неудобно обращаться к каждому элементу, так как названия постоянно изменяются.

С использованием массива сразу видно сокращение размера кода.
Как реализовать массив?
Статический массив - это массив с заранее определённым размером, т.е нам необходимо изначально объявить размер массива.
const int size = 8; // вместо 8 можно записать любой размер
После объявления размера массива необходимо создать сам массив. Изначально нам надо определиться какого типа элементы будут в нашем массиве(int, double, char, string, и т.д). Потом нам необходима задать название нашему массиву(нужно научиться давать осмысленные названия для своих переменных, обычно массивы именуются arr - от английского array - массив).
int arr[size];
Так же если нам не нужно заполнять массив в ручную, а необходимо записать какую-нибудь маску или карту элементов, то для этого не нужно обязательно задавать размер массива.
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8};
В некоторых задачах нам необходимо объявить массив заполненный нулями(например, для решения задачи сортировки подсчётом).
int arr[size]{}; //заполнить массив нулями
Как работать с массивом?
Для работы с массивами нам необходимы циклы(обычно использую цикл for, так как он рассчитан на использование счётчика, но можно использовать while, но счётчик нужно инициализировать снаружи цикла). Начнём с самого необходимого, заполнение массива.

Мы создаём цикл for и задаём переменную i = 0 (счётчик), который при каждой итерации цикла будет увеличиваться на один, условием выхода из цикла является значение size - 1, т.е счётчик изменятся в отрезке [0; size - 1] после этого цикл завершается.
С выводом дела обстоят аналогично.

Для наглядности можете изменять этот код и смотреть на вывод.
После того как мы научились вводить и выводить массив, мы можем производить какие-нибудь операции над массивами. Все изменения в массиве связаны с индексами элементов. Например мы можем поменять местами первый и последний элемент массива.

Переменная temp необходима для буферизации элемента(подумайте почему используем буфер, ведь мы могли просто написать arr[0]=arr[size-1]; arr[size-1]=arr[0]). Но это простой алгоритм, а вдруг нам понадобиться отзеркалить всю последовательность, разве мы будем прописывать всё в ручную? Конечно нет! Для этого нам опять понадобятся циклы.

В этом алгоритме мы проходим счётчиком до середины массива, возможно сейчас вы не понимаете, как это работает, но сейчас всё станет понятно.

Т.е мы при каждой итерации цикла берём первый элемент и последний, меняем их местами и переходи на следующую итерацию, в которой счётчик делает сдвиг и мы уже обрабатываем уже второй и предпоследний элемент и так до конца цикла. Возможно у вас возникнет вопрос, а что будет если количество элементов в массиве будет нечётным, какое поведение будет у нашего массива? Попытайтесь сами понять почему алгоритм не сломается.
Поздравляю, вы научились объявлять массив и обращаться к его элементам! :)
Не бойтесь трудностей в процессе обучения, это абсолютно нормально. Если у вас есть какие-то вопросы по статье или предложения по улучшению ее качества, мы всегда рады обратной связи.
С ув. TechMentor.
Упражнения для закрепления материала.
1.Вывести цифры, которые входят в число
Условие:
Дано целое положительное число N.
Необходимо вывести в порядке возрастания все цифры, встречающиеся в десятичной записи данного числа N.
Входные данные:
Входной файл содержит единственное число N (1 ≤ N ≤ 10**9).
Выходные данные:
В выходной файл необходимо вывести через пробел в порядке возрастания цифры, встречающиеся в числе N.
Каждая встречающаяся цифра должна быть выведена один раз, вне зависимости от того, сколько раз она повторяется в числе.
Тест 1.
Входные данные:
365
Выходные данные:
3 6 5
Тест 2.
Входные данные:
1106
Выходные данные:
0 1 6