Массив – это своеобразная структура данных. Она хранит в себе набор знаний (элементов массива), которые идентифицируются по индексу или их так называемому сочетанию, принимающему целые значение из некоторого заданного промежутка. Последний должен быть обязательно непрерывным.
Массивы, которые хранят в своем составе неупорядоченные сведения – это множества. С ними знаком каждый математик. Массивы одномерного типа – это реализация абстрактного типа данных. Носит название вектора. В отдельных языках программирования соответствующий элемент кода может носить название:
- ряд;
- таблица;
- матрица;
- вектор.
Далее предстоит разобраться с тем, что собой представляют массивы в программировании. Рассмотрим в качестве примеров несколько языков программирования. Упомянутые ранее элементы в них работают со своими особенностями, хоть и примерно одинаково. Предстоит разобраться с видами, а также ключевыми нюансами каждого типа «упорядоченного множества». Также нужно будет изучить принципы заполнения массива в том или ином случае.
Разновидности
Перед началом работы с соответствующим элементом разработки нужно выяснить, каким он может быть. Различают самые разные размерности массивов. Это – количество индексов, необходимое для однозначной (конкретизированной) адресации элемента в пределах заданного «упорядоченного множества». Здесь можно выделить следующие виды:
- Одномерные. Индекс будет всего один.
- Двумерные. «Адресов обращения» два.
- Три и более. Встречаются на практике крайне редко.
Огромную роль играет форма (или структура). Она представлена сведениями о количестве размерностей и размере (протяженности) массива по каждой размерностей. Может выступать в виде самостоятельного одномерного массива.
Изучаемый элемент в элементарном случае обладает константной длиной по всем размерностям, а также способен содержать данные только одного, прописанного при описании, типа. Некоторые языки разработки поддерживают так называемые динамические массивы. У них длина может корректироваться в процессе выполнения заданного программного кода.
Также есть гетерогенные массивы – хранящие в разных элементах информацию совершенно разных типов. В языках разработки принято выделять специфические массивные виды:
- ассоциативные;
- деревья отрезков;
- разреженные;
- параллельные;
- V-списки.
Одномерные массивы обладают нестрогим соответствием векторам, а двумерные – матрицам. Это – самые распространенные варианты. Именно с ними предстоит работать далее.
Индексы – общие понятия
Индекс меняется в зависимости от выбранного программистом языка разработки. Можно выделить три типа «упорядоченных множеств»:
- с отчетом с нуля;
- отсчет начинается с единички;
- отсчет от специфического значения, которое заранее задается разработчиком.
Первый вариант предусматривается преимущественно в низкоуровневых языках разработки, но и в ЯП высокого уровня тоже встречается. Пример – СИ-семейство. В некоторых языках разработки допускается определение диапазона индексов в виде произвольного диапазона значений любого типа данных, приводимого к целому. Это – набор перечислений, целых, а также символов. Логический тип данных тут тоже применяется. Такой вариант актуален для Модула-2, Ада и Паскаль.
Несколько слов о динамическом типе
Динамический массив – это «упорядоченное множество», размер которого умеет меняться по мере работы приложения. Обычные массивы носят название статистических или фиксированных
Динамические массивы реализовываются на уровне программирования, а также на уровне системных библиотек. Во втором случае он представляет собой объект стандартной библиотеки. Все манипуляции с соответствующим элементом будут проходить в пределах заданного «хранилища».
Если язык программирования поддерживает динамические массивы, в процессе создания исходного кода, в нем предусматриваются такие особенности и возможности:
- Описание динамического массива. На уровне языка оно может быть представлено синтаксической конструкцией. В случае с библиотеками – библиотечным типом данных, значение которого устанавливается стандартным образом. При создании (описании) динамического «упорядоченного множества» нужно указать его начальный размер. Это требование не является обязательным.
- Операции определения текущего размера динамического массива.
- Изменение размеров заданного «упорядоченного множества».
Теперь можно рассмотреть процессы задания и заполнения массивов более подробно. Но сначала выясним, что является массивом одномерного характера.
Одномерный массив
Данный элемент программного кода встречается на практике достаточно часто. И заполнить его можно без особых затруднений. Обратите внимание на то, что у одномерных «упорядоченных множеств» обращение происходит по одному единственному индексу. Такой вариант носит название «линейного».
Одномерный массив – это конечное (или итоговое) количество однотипных элементов. Они объединяются друг с другом при помощи общего заданного имени. Каждый элемент имеет собственный порядковый номер. Обращение к ним осуществляется по имени, а также индексу (установленному порядковому номеру).
Линейным такой программный компонент называется из-за того, что в нем каждый элемент будет следовать друг за другом, напоминая линию или цепочку. «Упорядоченное множество» представляется при помощи простейшей таблицы. Она включает в себя несколько строчек:
- имеющиеся значения (их нужно предварительно задать);
- индексы элементов.
Начальный индекс зависит от выбранного языка программирования. В Pascal можно задавать его произвольно. Согласно действующим правилам разработки лучше начинать с единицы. Это упростит дальнейшую работу с рассматриваемым компонентом. Итоговый (конечный) индекс будет определяться в соответствии с имеющейся задачей. Численно он соответствует размеру заданного множества, которое отражает количество содержащихся в нем элементов.
В основном работать предстоит с числовыми массивами. Они включают в себя вещественные и целые значения. Пример – цепочка 1 2 3 4 5 6 7 8 9. Это – не только множество, но и массив.
Выше – наглядный пример соответствующего одномерного компонента.
Особенности в C++
Рассмотрение двумерного массива – более сложная задача. Если представить себе его в математической форме, получится своеобразная матрица. На практике встречается не так часто, как одномерные варианты, поэтому более подробно их изучать пока не будем.
«Упорядоченные множества» имеют немало типовых задач. В основном они все сводятся к:
- заполнению массива информацией;
- проведению тех или иных операций с заданным «множеством»;
- выводу непосредственного результата.
Обычно после постановки задачи становится очевидной часть решения. Далее будут рассмотрены типовые ситуации, которые помогут при создании приложений в C++ и других языках.
Организация
Здесь стоит запомнить следующие принципы:
- Память под массив может выделяться несколькими способами – динамически и автоматически.
- Автоматический подход применяется тогда, когда размер массива известен на этапе компиляции. Это значит, что соответствующий параметр задается в момент написания исходного кода.
- Динамическое выделение памяти актуально для ситуаций, при которых используется «упорядоченное множество данных» с неизвестным «объемом».
- Массивы могут быть глобальными (определенными за пределами функции), а также локальными (объявленные внутри блоков кода или функций).
- Память для локального автоматического массива будет выделяться в стеке. Из-за этого его размер должен быть небольшим. В противном случае существует риск столкновения с перегрузкой и завершением работы приложения.
- Глобальные автоматические массивы в плане вопросов переполнения стеков являются безопасными. Но такие элементы видны всему программному коду, расположенному после объявления массивов. Это иногда провоцирует прямо применение «упорядоченных множеств», игнорируя передачу в функции при помощи параметров.
А еще для массивов с динамическим выделением памяти актуально ее распределение через так называемые кучи. Это – память, которая выделяется операционной системой для использования конкретным программным обеспечением.
Инициализация массива происходит обычно в момент его создания. Вот общая форма описания одномерного соответствующего компонента:
тип имя_массива [размер];
Эту запись надо использовать в программном коде, чтобы задать массив в C++. Соответствующая форма записи актуальна почти для всех языков программирования.
Заполнение значениями
Провести заполнение массива можно несколькими способами. Соответствующий момент напрямую зависит от условий поставленной изначально задачи. Предусматриваются такие варианты:
- путем ввода с клавиатуры;
- через генерацию случайных чисел;
- по выставленным принципам, формулам или условиям.
В некоторых задачах поддерживается чтение данных из файла. Это достаточно сложная и редкая ситуация, которую изучать более подробно не будем.
Рассматривая наглядные примеры на разных языках программирования, будем использовать разнообразные массивы информации. В Pascal для наглядности возьмем множество, которое включает в себя 5 элементов:
var i: integer
var a array [1…5]; {здесь происходит определение массива данных a, который включает в себя всего 5 элементов}
Данный код будет применяться при попытках заполнить «упорядоченное множество» теми или иными элементами в описываемых ситуациях. Это – элементарный случай, помогающий более быстро и эффективно разобраться в изучаемой тематике.
Случайные числа
Первый вариант – это использование генератора случайных чисел. Такой подход позволяет заполнять «упорядоченные множества» элементами, которые не вводятся пользователем непосредственно с клавиатуры. Достаточно распространенная ситуация.
Так выглядит процесс на примере C++:
Здесь:
- Функция rand() будет при каждом запуске приложения генерировать одну и ту же последовательность случайных чисел.
- Чтобы избавиться от описанного выше нюанса, нужно «разогнать» функцию при помощи начального случайного значения. На помощь приходят time() и srand().
- Заполнение «множества» элементами случайного характера нужно организовывать непосредственно внутри цикла.
Вот – пример, в котором используется глобальный автоматический массив. Он включает в себя 10 элементов типа of integer. Интервал, в котором определяются случайные значения – от -100 до 100 включительно. Особое внимание здесь необходимо уделить включению заголовочных файлов.
В случае с Pascal ситуация будет выглядеть в виде программного кода так:
Здесь происходит заполнение изначального «упорядоченного множества» из пяти элементов случайными значениями в диапазоне от 0 (включительно) до 10. Такой подход помогает удостовериться в правильности функционирования и работоспособности имеющегося программного кода.
Ввод с клавиатуры
Всего несколько строк в приложении – и «упорядоченное множество информации» будет заполнено случайными элементами. Это – наиболее распространенная ситуация. Но иногда требуется заполнить имеющееся «множество» иначе. А именно – путем ввода значений в massiv с клавиатуры.
Для C++ такая ситуация – более сложный случай. За основу возьмем предыдущим пример. В него нужно внедрить возможность указания значений элементов массива с клавиатуры. Для этого в начало кода требуется внести заголовочный файл #include <iosteram>. Вместо инициализации случайными значениями нужно записать что-то вроде такого кода:
Метод работает неплохо, но результат будет зависеть от выбранного компилятора. Иногда он оказывается непредсказуемым. Из-за этого в C++ рекомендуется пользоваться такой формой:
В случае с Pascal все намного проще. Тут нужно использовать «стандартные» переменные (int i) и операторы цикла for.
В программном коде ввод элементов массива с клавиатуры будет иметь такой вид. Здесь n – это количество элементов в определенном «упорядоченном множестве».
Правила
Иногда в задаче есть условия, принципы, правила, а также формулы, согласно которым необходимо задавать значения элементов «множества». В этом случае подойдет иная концепция. Ее лучше рассмотреть на примере Pascal:
Тут предстоит заполнить массив квадратами натуральных чисел. Соответствующий пример актуален для большинства типовых задач. Если необходимо использование многомерного массива, лучше пользоваться оператором присваивания («=», пишется без кавычек). Особенно тогда, когда «множество» не слишком большое.
В JavaScript
JavaScript – это еще один популярный язык разработки. Он применяется преимущественно для веб-программирования и создания программного обеспечения для работы с Сетью. Тут тоже предстоит работать с «упорядоченными множествами».
Здесь для того, чтобы добавить элемент в массив, рекомендуется пользоваться такими методами:
- .push() – позволяет заполнить массив с конца, добавляется один элемент;
- .unshift() – добавление в самое начало;
- .splice() – используется для добавления одного или нескольких элементов, начиная с указанного.
Выше – фрагмент кода, который поможет лучше объяснить принцип работы соответствующих методов.
Вывод
Теперь понятно, чему равен результат описанных операций. Заполнить «упорядоченное множество» теми или иными данными обычно недостаточно для решения задачи. Результат необходимо вывести.
В C++ это делается так:
Для того, чтобы воспользоваться соответствующей операцией в Pascal, тоже придется использовать цикл. Без него задуманное действие не представляется возможным:
А это – код, который актуален для JavaScript:
Он помогает вывести содержимое в элемент массива с id = “array”.
Типовой шаблон для Pascal
Тут и здесь можно увидеть несколько шаблонов для решения типовых задач на C++ и JavaScript соответственно, связанные с массивами данных. В случае с Pascal можно задействовать всего один программный код. Выглядит он следующим образом:
Все, что останется программисту – это внести необходимые изменения в код согласно поставленной изначально задаче.
Как быстро научиться программировать
Работа с массивами и его элементами, особенно в случае с многомерным типом, не всегда является элементарной. Программисту придется изучить немало туториалов и литературы по выбранному языку программирования.
Быстрее освоить соответствующее направление помогут разнообразные видеоуроки и туториалы. Вот – наглядный пример того, как заполнить элементы «упорядоченного множества» значениями, введенными непосредственно с клавиатуры. Но такой подход отнимает много времени и сил. А еще не всегда удается найти материал, соответствующий обозначенной задаче.
Для того, чтобы освоить любой язык программирования, а также работу с элементами массивов, рекомендуется отдать предпочтение дистанционным онлайн курсам. На них пользователю гарантируют:
- Сжатые сроки обучения. Оно отнимает от нескольких месяцев до года.
- Возможность быстро освоить инновационные IT-профессии и совершенно любые языки программирования. Есть предложения для опытных разработчиков и новичков. Можно выбрать всего одно направление или несколько одновременно.
- Постоянное кураторство и богатую практику. В процессе специалисты помогут ученику сформировать первое портфолио.
- Интересные домашние задания.
- Обучающий процесс, полностью построенный в режиме «онлайн». Лекции и вебинары можно смотреть в любое время и с совершенно разных устройств. Это помогает совмещать обучение с работой, домом, детьми и семьей.
- Грамотно составленные программы обучения. Они учитывают все последние изменения тех или иных языков разработки.
- Наиболее полную подачу материала. В процессе учебы пользователю пояснят не только, что значит new int, но и более сложные моменты простыми словами.
В конце клиент получит электронный сертификат, подтверждающий полученные навыки и умения.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!
<!DOCTYPE html>
<html dir="ltr" lang="ru-RU">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<title>Массивы в программировании: описание и наполнение данными OTUS</title>
<!-- All in One SEO 4.5.2.1 - aioseo.com -->
<meta name="description" content="Массив – это своеобразная структура данных. Она хранит в себе набор знаний (элементов массива), которые идентифицируются по индексу или их так называемому сочетанию, принимающему целые значение из некоторого заданного промежутка. Последний должен быть обязательно непрерывным. Массивы, которые хранят в своем составе неупорядоченные сведения – это множества. С ними знаком каждый математик. Массивы одномерного типа –" />
<meta name="robots" content="max-image-preview:large" />
<link rel="canonical" href="https://otus.ru/journal/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi/" />
<meta name="generator" content="All in One SEO (AIOSEO) 4.5.2.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/#article","name":"\u041c\u0430\u0441\u0441\u0438\u0432\u044b \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438: \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 OTUS","headline":"\u041c\u0430\u0441\u0441\u0438\u0432\u044b \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438: \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u043c\u0438","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2022\/11\/oj-1080x720-31.png","width":1080,"height":720},"datePublished":"2022-11-23T20:13:55+00:00","dateModified":"2022-11-23T20:13:56+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/otus.ru\/journal\/","nextItem":"https:\/\/otus.ru\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/#listItem"},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/#listItem","position":2,"name":"\u041c\u0430\u0441\u0441\u0438\u0432\u044b \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438: \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u043c\u0438","previousItem":"https:\/\/otus.ru\/journal\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","url":"https:\/\/otus.ru\/journal\/","sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"],"contactPoint":{"@type":"ContactPoint","telephone":"+74999389202","contactType":"Customer Support"}},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d4c499a104d7c2522fa41f89e6819499?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/#webpage","url":"https:\/\/otus.ru\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/","name":"\u041c\u0430\u0441\u0441\u0438\u0432\u044b \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438: \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 OTUS","description":"\u041c\u0430\u0441\u0441\u0438\u0432 \u2013 \u044d\u0442\u043e \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u043d\u0430 \u0445\u0440\u0430\u043d\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043d\u0430\u0431\u043e\u0440 \u0437\u043d\u0430\u043d\u0438\u0439 (\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0438\u043b\u0438 \u0438\u0445 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u043c\u0443 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044e, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u043c\u0443 \u0446\u0435\u043b\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0430. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u043c. \u041c\u0430\u0441\u0441\u0438\u0432\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442 \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043d\u0435\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u2013 \u044d\u0442\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430. \u0421 \u043d\u0438\u043c\u0438 \u0437\u043d\u0430\u043a\u043e\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a. \u041c\u0430\u0441\u0441\u0438\u0432\u044b \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u2013","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2022\/11\/oj-1080x720-31.png","@id":"https:\/\/otus.ru\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/#mainImage","width":1080,"height":720},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/#mainImage"},"datePublished":"2022-11-23T20:13:55+00:00","dateModified":"2022-11-23T20:13:56+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS JOURNAL","description":"Blog about IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//otus.ru' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='stylesheet' id='wp-block-library-css' href='https://otus.ru/journal/wp-includes/css/dist/block-library/style.min.css?ver=6.4.7' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='wbcr-comments-plus-url-span-css' href='https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/css/url-span.css?ver=2.2.0' type='text/css' media='all' />
<link rel='stylesheet' id='wpel-style-css' href='https://otus.ru/journal/wp-content/plugins/wp-external-links/public/css/wpel.css?ver=2.59' type='text/css' media='all' />
<link rel='stylesheet' id='ez-toc-css' href='https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.61' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li {font-size: 95%;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-core-css' href='https://otus.ru/journal/wp-content/themes/contentberg/style.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-lightbox-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/lightbox.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/fontawesome/css/font-awesome.min.css?ver=1.8.3' type='text/css' media='all' />
<script type="text/javascript" id="breeze-prefetch-js-extra">
/* <![CDATA[ */
var breeze_prefetch = {"local_url":"https:\/\/otus.ru\/journal","ignore_remote_prefetch":"1","ignore_list":["\/wp-admin\/"]};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js" id="breeze-prefetch-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/lazysizes.js" id="lazysizes-js"></script>
<link rel="https://api.w.org/" href="https://otus.ru/journal/wp-json/" /><link rel="alternate" type="application/json" href="https://otus.ru/journal/wp-json/wp/v2/posts/5042" /><link rel='shortlink' href='https://otus.ru/journal/?p=5042' />
<link rel="alternate" type="application/json+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fmassivy-v-programmirovanii-opisanie-i-napolnenie-dannymi%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fmassivy-v-programmirovanii-opisanie-i-napolnenie-dannymi%2F&format=xml" />
<script>var Sphere_Plugin = {"ajaxurl":"https:\/\/otus.ru\/journal\/wp-admin\/admin-ajax.php"};</script><link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
#menu-item-10406 .wpel-icon {
display: none;
}
#menu-item-10407 .wpel-icon {
display: none;
}
.otus-login-site a .wpel-icon {
display: none;
}
.menu-menju-navykov-container a .wpel-icon {
display: none;
}
.otus-login-site a
{
background: #ffd709;
border-radius: 12px;
color: #0f0f10;
font-size: 14px;
font-weight: 700;
line-height: 20px;
display: block;
text-align: center;
padding: 8px 25px;
}
.main-footer.dark {
background: linear-gradient(90deg, #a64fc5, #4f54e6);
border-color: transparent;
}
.main-footer.bold .copyright {
color: #fff;
}
.main-footer.bold .to-top i {
color: #fff;
}
.main-footer.bold .back-to-top {
color: #fff;
}
.nav__scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.scrollable-menu .menu {
display: flex;
}
.nav__scroll
{
background: linear-gradient(90deg, #a64fc5, #4f54e6);
}
.scrollable-menu .menu .menu-item {
flex: 0 0 auto;
padding: 15px 15px;
}
.scrollable-menu .menu .menu-item a {
color: #fff;
}
.nav__scroll::-webkit-scrollbar{background-color:#fff;height:5px;}
.nav__scroll::-webkit-scrollbar-thumb{background-color:#dcdcdc;}
.nav__scroll::-webkit-scrollbar-track{-webkit-border-radius:0;border-radius:0;background-color:#fff;}/
body {
min-width: 320px;
}
.banner-click img {
margin: 0 auto;
display: block;
}
.banner-click {
cursor: pointer;
}
.banner-footer-area {
margin-bottom: 20px;
}
.banner-left-area {
margin-top: 40px;
} </style>
<!--Start VDZ Yandex Metrika Plugin-->
<!-- Yandex.Metrika counter --><script type="text/javascript" >(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(34531570, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce:"dataLayer"});</script>
<noscript><div><img src="https://mc.yandex.ru/watch/34531570" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><!--START ADD EVENTS FROM CF7--><script type='text/javascript'>document.addEventListener( 'wpcf7submit', function( event ) {
//event.detail.contactFormId;
if(ym){
//console.log(event.detail);
ym(34531570, 'reachGoal', 'VDZ_SEND_CONTACT_FORM_7');
ym(34531570, 'params', {
page_url: window.location.href,
status: event.detail.status,
locale: event.detail.contactFormLocale,
form_id: event.detail.contactFormId,
});
}
}, false );
</script><!--END ADD EVENTS FROM CF7-->
<!--End VDZ Yandex Metrika Plugin-->
</head>
<body class="post-template-default single single-post postid-5042 single-format-standard right-sidebar lazy-normal has-lb">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="0">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="https://otus.ru/journal/" title="OTUS JOURNAL" rel="home" data-wpel-link="internal">
<span class="text-logo"><img src="/journal/wp-content/themes/contentberg/img/logo_site.svg" alt="OTUS JOURNAL"></span>
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="0">
<div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li id="menu-item-109" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-1 menu-item-109"><a href="https://otus.ru/journal/category/pro-it/" data-wpel-link="internal"><span>Про IT</span></a></li>
<li id="menu-item-113" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-cat-4 menu-item-113"><a href="https://otus.ru/journal/category/polza/" data-wpel-link="internal"><span>Полезное</span></a></li>
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-3 menu-item-114"><a href="https://otus.ru/journal/category/lifestyle/" data-wpel-link="internal"><span>Лайфстайл</span></a></li>
<li id="menu-item-10406" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10406"><a href="https://otus.ru/catalog/courses" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Обучение</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10407" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10407"><a href="https://otus.ru/about" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Информация</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
<div class="otus-login-site">
<a href="https://otus.ru/login/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Войти<span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
<a href="#" title="Search" class="search-link"><i class="fa fa-search"></i></a>
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="nav nav_disable nav_colored nav_transparent course-categories__nav nav__scroll ">
<div class="container wrap">
<div class="links inline simple light scrollable-menu">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov" class="menu"><li id="menu-item-10413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10415" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10416" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10417" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10420" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10421" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
</div>
</div>
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<article id="post-5042" class="the-post post-5042 post type-post status-publish format-standard has-post-thumbnail category-polza tag-programmirovanie">
<header class="post-header the-post-header cf">
<div class="post-meta the-post-meta">
<span class="post-cat">
<a href="https://otus.ru/journal/category/polza/" class="category" data-wpel-link="internal">Полезное</a>
</span>
<h1 class="post-title">
Массивы в программировании: описание и наполнение данными
</h1>
<a href="https://otus.ru/journal/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi/" class="date-link" data-wpel-link="internal"><time class="post-date">23 ноября, 2022</time></a>
</div>
<div class="featured">
<a href="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-31.png" class="image-link" data-wpel-link="internal"><img width="770" height="515" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20770%20515%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-contentberg-main size-contentberg-main lazyload wp-post-image" alt="Массивы в программировании: описание и наполнение данными" title="Массивы в программировании: описание и наполнение данными" decoding="async" fetchpriority="high" data-srcset="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-31-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-31-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-31-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-31-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-31-270x180.png 270w" data-src="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-31-770x515.png" data-sizes="(max-width: 770px) 100vw, 770px" /> </a>
</div>
</header><!-- .post-header -->
<div class="post-content description cf entry-content content-normal">
<div id="ez-toc-container" class="ez-toc-v2_0_61 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title " >Содержание</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#%D0%A0%D0%B0%D0%B7%D0%BD%D0%BE%D0%B2%D0%B8%D0%B4%D0%BD%D0%BE%D1%81%D1%82%D0%B8" title="Разновидности">Разновидности</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-2" href="#%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D1%8B_%E2%80%93_%D0%BE%D0%B1%D1%89%D0%B8%D0%B5_%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D1%8F" title="Индексы – общие понятия">Индексы – общие понятия</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-3" href="#%D0%9D%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D1%81%D0%BB%D0%BE%D0%B2_%D0%BE_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%BC_%D1%82%D0%B8%D0%BF%D0%B5" title="Несколько слов о динамическом типе">Несколько слов о динамическом типе</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-4" href="#%D0%9E%D0%B4%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2" title="Одномерный массив">Одномерный массив</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-5" href="#%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B2_C" title="Особенности в C++">Особенности в C++</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-6" href="#%D0%9E%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F" title="Организация">Организация</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-7" href="#%D0%97%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8" title="Заполнение значениями">Заполнение значениями</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-8" href="#%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0" title="Случайные числа">Случайные числа</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-9" href="#%D0%92%D0%B2%D0%BE%D0%B4_%D1%81_%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D1%8B" title="Ввод с клавиатуры">Ввод с клавиатуры</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-10" href="#%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0" title="Правила">Правила</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-11" href="#%D0%92_JavaScript" title="В JavaScript">В JavaScript</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-12" href="#%D0%92%D1%8B%D0%B2%D0%BE%D0%B4" title="Вывод">Вывод</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-13" href="#%D0%A2%D0%B8%D0%BF%D0%BE%D0%B2%D0%BE%D0%B9_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%B4%D0%BB%D1%8F_Pascal" title="Типовой шаблон для Pascal">Типовой шаблон для Pascal</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-14" href="#%D0%9A%D0%B0%D0%BA_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%BE_%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C" title="Как быстро научиться программировать">Как быстро научиться программировать</a></li></ul></nav></div>
<p>Массив – это своеобразная структура данных. Она хранит в себе набор знаний (элементов массива), которые идентифицируются по индексу или их так называемому сочетанию, принимающему целые значение из некоторого заданного промежутка. Последний должен быть обязательно непрерывным.</p>
<p>Массивы, которые хранят в своем составе неупорядоченные сведения – это множества. С ними знаком каждый математик. Массивы одномерного типа – это реализация абстрактного типа данных. Носит название вектора. В отдельных языках программирования соответствующий элемент кода может носить название:</p>
<ul>
<li>ряд;</li>
<li>таблица;</li>
<li>матрица;</li>
<li>вектор.</li>
</ul>
<p>Далее предстоит разобраться с тем, что собой представляют массивы в программировании. Рассмотрим в качестве примеров несколько языков программирования. Упомянутые ранее элементы в них работают со своими особенностями, хоть и примерно одинаково. Предстоит разобраться с видами, а также ключевыми нюансами каждого типа «упорядоченного множества». Также нужно будет изучить принципы заполнения массива в том или ином случае.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A0%D0%B0%D0%B7%D0%BD%D0%BE%D0%B2%D0%B8%D0%B4%D0%BD%D0%BE%D1%81%D1%82%D0%B8"></span>Разновидности<span class="ez-toc-section-end"></span></h2>
<p>Перед началом работы с соответствующим элементом разработки нужно выяснить, каким он может быть. Различают самые разные размерности массивов. Это – количество индексов, необходимое для однозначной (конкретизированной) адресации элемента в пределах заданного «упорядоченного множества». Здесь можно выделить следующие виды:</p>
<ol>
<li>Одномерные. Индекс будет всего один.</li>
<li>Двумерные. «Адресов обращения» два.</li>
<li>Три и более. Встречаются на практике крайне редко.</li>
</ol>
<p>Огромную роль играет форма (или структура). Она представлена сведениями о количестве размерностей и размере (протяженности) массива по каждой размерностей. Может выступать в виде самостоятельного одномерного массива.</p>
<p>Изучаемый элемент в элементарном случае обладает константной длиной по всем размерностям, а также способен содержать данные только одного, прописанного при описании, типа. Некоторые языки разработки поддерживают так называемые динамические массивы. У них длина может корректироваться в процессе выполнения заданного программного кода.</p>
<p>Также есть гетерогенные массивы – хранящие в разных элементах информацию совершенно разных типов. В языках разработки принято выделять специфические массивные виды:</p>
<ul>
<li>ассоциативные;</li>
<li>деревья отрезков;</li>
<li>разреженные;</li>
<li>параллельные;</li>
<li>V-списки.</li>
</ul>
<p>Одномерные массивы обладают нестрогим соответствием векторам, а двумерные – матрицам. Это – самые распространенные варианты. Именно с ними предстоит работать далее.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D1%8B_%E2%80%93_%D0%BE%D0%B1%D1%89%D0%B8%D0%B5_%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D1%8F"></span>Индексы – общие понятия<span class="ez-toc-section-end"></span></h2>
<p>Индекс меняется в зависимости от выбранного программистом языка разработки. Можно выделить три типа «упорядоченных множеств»:</p>
<ul>
<li>с отчетом с нуля;</li>
<li>отсчет начинается с единички;</li>
<li>отсчет от специфического значения, которое заранее задается разработчиком.</li>
</ul>
<p>Первый вариант предусматривается преимущественно в низкоуровневых языках разработки, но и в ЯП высокого уровня тоже встречается. Пример – СИ-семейство. В некоторых языках разработки допускается определение диапазона индексов в виде произвольного диапазона значений любого типа данных, приводимого к целому. Это – набор перечислений, целых, а также символов. Логический тип данных тут тоже применяется. Такой вариант актуален для Модула-2, Ада и Паскаль.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D1%81%D0%BB%D0%BE%D0%B2_%D0%BE_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%BC_%D1%82%D0%B8%D0%BF%D0%B5"></span>Несколько слов о динамическом типе<span class="ez-toc-section-end"></span></h2>
<p>Динамический массив – это «упорядоченное множество», размер которого умеет меняться по мере работы приложения. Обычные массивы носят название статистических или фиксированных</p>
<p>Динамические массивы реализовываются на уровне программирования, а также на уровне системных библиотек. Во втором случае он представляет собой объект стандартной библиотеки. Все манипуляции с соответствующим элементом будут проходить в пределах заданного «хранилища».</p>
<p>Если язык программирования поддерживает динамические массивы, в процессе создания исходного кода, в нем предусматриваются такие особенности и возможности:</p>
<ol>
<li>Описание динамического массива. На уровне языка оно может быть представлено синтаксической конструкцией. В случае с библиотеками – библиотечным типом данных, значение которого устанавливается стандартным образом. При создании (описании) динамического «упорядоченного множества» нужно указать его начальный размер. Это требование не является обязательным.</li>
<li>Операции определения текущего размера динамического массива.</li>
<li>Изменение размеров заданного «упорядоченного множества».</li>
</ol>
<p>Теперь можно рассмотреть процессы задания и заполнения массивов более подробно. Но сначала выясним, что является массивом одномерного характера.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D0%B4%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2"></span>Одномерный массив<span class="ez-toc-section-end"></span></h2>
<p>Данный элемент программного кода встречается на практике достаточно часто. И заполнить его можно без особых затруднений. Обратите внимание на то, что у одномерных «упорядоченных множеств» обращение происходит по одному единственному индексу. Такой вариант носит название «линейного».</p>
<p>Одномерный массив – это конечное (или итоговое) количество однотипных элементов. Они объединяются друг с другом при помощи общего заданного имени. Каждый элемент имеет собственный порядковый номер. Обращение к ним осуществляется по имени, а также индексу (установленному порядковому номеру).</p>
<p>Линейным такой программный компонент называется из-за того, что в нем каждый элемент будет следовать друг за другом, напоминая линию или цепочку. «Упорядоченное множество» представляется при помощи простейшей таблицы. Она включает в себя несколько строчек:</p>
<ul>
<li>имеющиеся значения (их нужно предварительно задать);</li>
<li>индексы элементов.</li>
</ul>
<p>Начальный индекс зависит от выбранного языка программирования. В Pascal можно задавать его произвольно. Согласно действующим правилам разработки лучше начинать с единицы. Это упростит дальнейшую работу с рассматриваемым компонентом. Итоговый (конечный) индекс будет определяться в соответствии с имеющейся задачей. Численно он соответствует размеру заданного множества, которое отражает количество содержащихся в нем элементов.</p>
<p>В основном работать предстоит с числовыми массивами. Они включают в себя вещественные и целые значения. Пример – цепочка 1 2 3 4 5 6 7 8 9. Это – не только множество, но и массив.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/LDoPrr6ZWdRFZvMidimHfBypVnzuKekZ4F_ZYNWXF89hcVUgJjqmgaobeaemuAJinWWwT05lk1_3hAJhDKzCkd52uwbQc9Gb1vIchTA6j9Ydwp9o59HO9vng47r3SqZZ4OgKWB2aP1kBXq7izrY3s1cj4mMKRSO7pAADdIkcZgBsc4U3s-dFv5nRY8C12yVxBfb5-jfCvw" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>Выше – наглядный пример соответствующего одномерного компонента.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B2_C"></span>Особенности в C++<span class="ez-toc-section-end"></span></h2>
<p>Рассмотрение двумерного массива – более сложная задача. Если представить себе его в математической форме, получится своеобразная матрица. На практике встречается не так часто, как одномерные варианты, поэтому более подробно их изучать пока не будем.</p>
<p>«Упорядоченные множества» имеют немало типовых задач. В основном они все сводятся к:</p>
<ul>
<li>заполнению массива информацией;</li>
<li>проведению тех или иных операций с заданным «множеством»;</li>
<li>выводу непосредственного результата.</li>
</ul>
<p>Обычно после постановки задачи становится очевидной часть решения. Далее будут рассмотрены типовые ситуации, которые помогут при создании приложений в C++ и других языках.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F"></span>Организация<span class="ez-toc-section-end"></span></h3>
<p>Здесь стоит запомнить следующие принципы:</p>
<ol>
<li>Память под массив может выделяться несколькими способами – динамически и автоматически.</li>
<li>Автоматический подход применяется тогда, когда размер массива известен на этапе компиляции. Это значит, что соответствующий параметр задается в момент написания исходного кода.</li>
<li>Динамическое выделение памяти актуально для ситуаций, при которых используется «упорядоченное множество данных» с неизвестным «объемом».</li>
<li>Массивы могут быть глобальными (определенными за пределами функции), а также локальными (объявленные внутри блоков кода или функций).</li>
<li>Память для локального автоматического массива будет выделяться в стеке. Из-за этого его размер должен быть небольшим. В противном случае существует риск столкновения с перегрузкой и завершением работы приложения.</li>
<li>Глобальные автоматические массивы в плане вопросов переполнения стеков являются безопасными. Но такие элементы видны всему программному коду, расположенному после объявления массивов. Это иногда провоцирует прямо применение «упорядоченных множеств», игнорируя передачу в функции при помощи параметров.</li>
</ol>
<p>А еще для массивов с динамическим выделением памяти актуально ее распределение через так называемые кучи. Это – память, которая выделяется операционной системой для использования конкретным программным обеспечением.</p>
<p>Инициализация массива происходит обычно в момент его создания. Вот общая форма описания одномерного соответствующего компонента:</p>
<p>тип имя_массива [размер];</p>
<p>Эту запись надо использовать в программном коде, чтобы задать массив в C++. Соответствующая форма записи актуальна почти для всех языков программирования.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%97%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8"></span>Заполнение значениями<span class="ez-toc-section-end"></span></h2>
<p>Провести заполнение массива можно несколькими способами. Соответствующий момент напрямую зависит от условий поставленной изначально задачи. Предусматриваются такие варианты:</p>
<ul>
<li>путем ввода с клавиатуры;</li>
<li>через генерацию случайных чисел;</li>
<li>по выставленным принципам, формулам или условиям.</li>
</ul>
<p>В некоторых задачах поддерживается чтение данных из файла. Это достаточно сложная и редкая ситуация, которую изучать более подробно не будем.</p>
<p>Рассматривая наглядные примеры на разных языках программирования, будем использовать разнообразные массивы информации. В Pascal для наглядности возьмем множество, которое включает в себя 5 элементов:</p>
<p>var i: integer</p>
<p>var a array [1…5]; {здесь происходит определение массива данных a, который включает в себя всего 5 элементов}</p>
<p>Данный код будет применяться при попытках заполнить «упорядоченное множество» теми или иными элементами в описываемых ситуациях. Это – элементарный случай, помогающий более быстро и эффективно разобраться в изучаемой тематике.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0"></span>Случайные числа<span class="ez-toc-section-end"></span></h3>
<p>Первый вариант – это использование генератора случайных чисел. Такой подход позволяет заполнять «упорядоченные множества» элементами, которые не вводятся пользователем непосредственно с клавиатуры. Достаточно распространенная ситуация.</p>
<p>Так выглядит процесс на примере C++:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/jQsaATwNBO1HljiV6PuWkr_uWoWb4Heaqjd1YTepMP3bUBXNHQqpo-IOZS5d7QOzTdv4J3VnGbfNhjJJqsZk1psZnYo16vVR5QHlSneGr1uBWkV7x6DeLLkSGzQl-yt5KE6EuPY4js-5QMuD5URq8QPKbQYmk70isoPp8OKxqY9TuhPGJvo3b7coP1uvsc1qmIZpjb6Xhg" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>Здесь:</p>
<ol>
<li>Функция rand() будет при каждом запуске приложения генерировать одну и ту же последовательность случайных чисел.</li>
<li>Чтобы избавиться от описанного выше нюанса, нужно «разогнать» функцию при помощи начального случайного значения. На помощь приходят time() и srand().</li>
<li>Заполнение «множества» элементами случайного характера нужно организовывать непосредственно внутри цикла.</li>
</ol>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/JtGyGQXRD5xkDEW7cGnXY_EQnL8xhfjOajjAYu1WUsFsYmHtYJt6AfDF2FcqXEQUzT0wUrV6CTll5nrDpj2VbkBlQCmS9vCmTmVQ4t6iSTPHFvr6lnW9AQTACBYfI7JIe8SlcUDAPcwwZSKZq-uLnygPRo8SlnUROfX1axbaK1pR-kMyHZ_Dd3Ow3WCfccVe_inr_0CWQw" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>Вот – пример, в котором используется глобальный автоматический массив. Он включает в себя 10 элементов типа of integer. Интервал, в котором определяются случайные значения – от -100 до 100 включительно. Особое внимание здесь необходимо уделить включению заголовочных файлов.</p>
<p>В случае с Pascal ситуация будет выглядеть в виде программного кода так:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/Ku4cvxRts3kYh6mpWycNfmLJdWgm09X53BrqggToHalofihIi1OhaTvbvBW0sioYDrMxs8Yv3UDnv56UbWv3zzznNDfhCRjPJh87zlBB6KThiJgITuBxX-bmKzLmMCTOS2GL6h1Gk_5CammCd72AN9JSH58aB6ZlcLFEvp7k6SNNlKO0_1pj-5So0vZkd8OEiqlgVV0wcQ" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>Здесь происходит заполнение изначального «упорядоченного множества» из пяти элементов случайными значениями в диапазоне от 0 (включительно) до 10. Такой подход помогает удостовериться в правильности функционирования и работоспособности имеющегося программного кода.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%92%D0%B2%D0%BE%D0%B4_%D1%81_%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D1%8B"></span>Ввод с клавиатуры<span class="ez-toc-section-end"></span></h3>
<p>Всего несколько строк в приложении – и «упорядоченное множество информации» будет заполнено случайными элементами. Это – наиболее распространенная ситуация. Но иногда требуется заполнить имеющееся «множество» иначе. А именно – путем ввода значений в massiv с клавиатуры.</p>
<p>Для C++ такая ситуация – более сложный случай. За основу возьмем предыдущим пример. В него нужно внедрить возможность указания значений элементов массива с клавиатуры. Для этого в начало кода требуется внести заголовочный файл #include <iosteram>. Вместо инициализации случайными значениями нужно записать что-то вроде такого кода:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/RPLzZpVKvcTdXIItRINAx76Eg5MK2W_cbssiZRq2xKCaItoeNj5B-jhj10LZcpYyrlVdJKby0m-yYk9gtjRXdGg8aw5U1of2tXJiSAXBXh55p_3GO6gbMbxbOdH2lRht4qSjrx27DuZVWB-Ntmu8ipbLJv73OoAqWN7thJDZ34i51i2YN0u2ZubZaozQK5xN8gevQ-TWUQ" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>Метод работает неплохо, но результат будет зависеть от выбранного компилятора. Иногда он оказывается непредсказуемым. Из-за этого в C++ рекомендуется пользоваться такой формой:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/vFD5K5mGcyvis8SkP_y66_t17mBufg7_SzaC6VHPvKtKPne591A0LrMJ1Nboj1_EVD4Y2fsCE520AfztXYwGkFTZ1Azz5NjDmPJq0xnz9-i_J2ZeXBq-hf1zp1WoJXVFxZKF-99ScTE34C1s94L_4MqD3qMnnXT_Zm29_9RqCUjqY1TZ9yboisfsc045dL4a7304F3hwQw" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>В случае с Pascal все намного проще. Тут нужно использовать «стандартные» переменные (int i) и операторы цикла for.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/nW_Jh85lmg-C8CO_OobSi__yJrjpt3Cta96hPpfnxz6rDqomIM5AgsEFNQzAWAFkhsOieL7bkSJetrtkcCzjd0XUMLLl5UGiJdg9j3IIaO_SIQtWh2ylyYgWL0QGVUMwGHhEtztlqIOrmT4otNWzS2vgiZbQA7Zdw0kJjBgv-dKkMsBx4xPsxS02nWvs3b24znMuPlqj3w" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>В программном коде ввод элементов массива с клавиатуры будет иметь такой вид. Здесь n – это количество элементов в определенном «упорядоченном множестве».</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0"></span>Правила<span class="ez-toc-section-end"></span></h3>
<p>Иногда в задаче есть условия, принципы, правила, а также формулы, согласно которым необходимо задавать значения элементов «множества». В этом случае подойдет иная концепция. Ее лучше рассмотреть на примере Pascal:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/dUKc9D4DD9TSsCewowWRD3SVwEq9nJNDjyIPF-M_yb9ZUQIVDV6s3BE8o1GTO_jNlwDT0xdLqnovmVv_8YFGiXiNJz7iuRAKvs0ysqfhzvUn-0xPDGZgPOxmH0Cprm07rSSXA-3ztUmcJ7RquATjSpI6g20JaMFlN3yLOVtLQYTb_hRuqKnZ1jupVACfWmSjCnYNNO2uHg" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>Тут предстоит заполнить массив квадратами натуральных чисел. Соответствующий пример актуален для большинства типовых задач. Если необходимо использование многомерного массива, лучше пользоваться оператором присваивания («=», пишется без кавычек). Особенно тогда, когда «множество» не слишком большое.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%92_JavaScript"></span>В JavaScript<span class="ez-toc-section-end"></span></h3>
<p>JavaScript – это еще один популярный язык разработки. Он применяется преимущественно для веб-программирования и создания программного обеспечения для работы с Сетью. Тут тоже предстоит работать с «упорядоченными множествами».</p>
<p>Здесь для того, чтобы добавить элемент в массив, рекомендуется пользоваться такими методами:</p>
<ul>
<li>.push() – позволяет заполнить массив с конца, добавляется один элемент;</li>
<li>.unshift() – добавление в самое начало;</li>
<li>.splice() – используется для добавления одного или нескольких элементов, начиная с указанного.</li>
</ul>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/lvPGkB7akUydpjjZjikr2CLmzLrjSfBITD-S63wPp6j8q_m47UCkeNdE66SyZstGciW2Oso8PE4DDuYF8NLfReEilvtl5cqkoHbZG40EhKNipYsqHE3_loBFJmZ0VIyBRPfNFyof-FpyFc6vRqZ-Y88Ifyk797Trxsd14s0amVJb29FdQUdfw9vNhaDDD93J1Bj5zbjKvA" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>Выше – фрагмент кода, который поможет лучше объяснить принцип работы соответствующих методов.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%92%D1%8B%D0%B2%D0%BE%D0%B4"></span>Вывод<span class="ez-toc-section-end"></span></h2>
<p>Теперь понятно, чему равен результат описанных операций. Заполнить «упорядоченное множество» теми или иными данными обычно недостаточно для решения задачи. Результат необходимо вывести.</p>
<p>В C++ это делается так:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/HJOBYrwoNPlix6jRaDWslt6ovEIb0HJC5QxZdaOo3TKvzUhQzxU9dIh6vF4NgMYZz4uiOTdZTdxUV0gYxzxmsQLGWCZ-J0njlJf0qqkGp1tavcDmrX1-7LRd6i9tcyotDA53y7PaVxAXpzDZGDHXXzBfMKcEOxXXu0fICVTDMAISLLqXcTQYPoYnOFvTJzeHivl92DK6Bg" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>Для того, чтобы воспользоваться соответствующей операцией в Pascal, тоже придется использовать цикл. Без него задуманное действие не представляется возможным:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/yXl1hU26L1onJTIxo4AGwDFtUipgxmG5KC-lYabipCgSAp4qZn3ECDkmhZWLfQr7b8O8_Cpx3xHJQPrfDJevJAYhMcGgca_s7IQ9GGlUSq-CfP0HN7Qr1nvZU5aLd3ri7Nn3VJxkHKq66vuBqS_mlVcRH4_4krMMDu6h2yPD5FFsogkW4QsLNzFaRfW0bYNcEMD6NBvJUw" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>А это – код, который актуален для JavaScript:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/NAp6Cy6SJstJW0Yn-dMZU0pYFOtfuKN1BakXhKiDwVSC787Zw7tYDBqvJZTCrnt71wmteTZwiz6YeppkdmiXZ5t8fmGUZvKeSZqgaeU-eIGdBrwW7HE2KXY61BFJGjpJv6ciESDX7QxLPiPMz15t_O4xNyqQZhCYf1b31TkTDttVFUS-A59KLWJcugn6mxdfP-FpAYjxMA" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>Он помогает вывести содержимое в элемент массива с id = “array”.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A2%D0%B8%D0%BF%D0%BE%D0%B2%D0%BE%D0%B9_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%B4%D0%BB%D1%8F_Pascal"></span>Типовой шаблон для Pascal<span class="ez-toc-section-end"></span></h2>
<p><a href="https://code-live.ru/post/cpp-array-tutorial/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тут<span class="wpel-icon wpel-image wpel-icon-6"></span></a> и <a href="https://itchief.ru/javascript/working-with-arrays#kak-dobavit-element-v-massiv" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">здесь<span class="wpel-icon wpel-image wpel-icon-6"></span></a> можно увидеть несколько шаблонов для решения типовых задач на C++ и JavaScript соответственно, связанные с массивами данных. В случае с Pascal можно задействовать всего один программный код. Выглядит он следующим образом:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/AK-wWarpmwNOOK32xrj1_sPFiAAscNowgC-5MD0dbv7iQluEyoIXSzXHYD0e7YtCPqiJjWXw0tFp6IyEPnYuseItTItaf1KvplPUJBCQO7bKky9kmuhbWV-alIBokzkcLDOsjp6F9SX0ig02vcplVAxQwp4Q40y7il7FZw3r7jfhptenyIHDmTogXdmlBXPg4z63RKhM9w" alt="Массивы в программировании: описание и наполнение данными"/></figure>
<p>Все, что останется программисту – это внести необходимые изменения в код согласно поставленной изначально задаче.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9A%D0%B0%D0%BA_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%BE_%D0%BD%D0%B0%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C"></span>Как быстро научиться программировать<span class="ez-toc-section-end"></span></h2>
<p>Работа с массивами и его элементами, особенно в случае с многомерным типом, не всегда является элементарной. Программисту придется изучить немало туториалов и литературы по выбранному языку программирования.</p>
<p>Быстрее освоить соответствующее направление помогут разнообразные видеоуроки и туториалы. <a href="https://www.youtube.com/watch?v=7rcwQQT2txY" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Вот<span class="wpel-icon wpel-image wpel-icon-6"></span></a> – наглядный пример того, как заполнить элементы «упорядоченного множества» значениями, введенными непосредственно с клавиатуры. Но такой подход отнимает много времени и сил. А еще не всегда удается найти материал, соответствующий обозначенной задаче.</p>
<p>Для того, чтобы освоить любой язык программирования, а также работу с элементами массивов, рекомендуется отдать предпочтение дистанционным онлайн курсам. На них пользователю гарантируют:</p>
<ol>
<li>Сжатые сроки обучения. Оно отнимает от нескольких месяцев до года.</li>
<li>Возможность быстро освоить инновационные IT-профессии и совершенно любые языки программирования. Есть предложения для опытных разработчиков и новичков. Можно выбрать всего одно направление или несколько одновременно.</li>
<li>Постоянное кураторство и богатую практику. В процессе специалисты помогут ученику сформировать первое портфолио.</li>
<li>Интересные домашние задания.</li>
<li>Обучающий процесс, полностью построенный в режиме «онлайн». Лекции и вебинары можно смотреть в любое время и с совершенно разных устройств. Это помогает совмещать обучение с работой, домом, детьми и семьей.</li>
<li>Грамотно составленные программы обучения. Они учитывают все последние изменения тех или иных языков разработки.</li>
<li>Наиболее полную подачу материала. В процессе учебы пользователю пояснят не только, что значит new int, но и более сложные моменты простыми словами.</li>
</ol>
<p>В конце клиент получит электронный сертификат, подтверждающий полученные навыки и умения.</p>
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a href="https://otus.ru/?utm_source=oj" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Otus<span class="wpel-icon wpel-image wpel-icon-6"></span></a>!</em></p>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://otus.ru/journal/tag/programmirovanie/" rel="tag" data-wpel-link="internal">программирование</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotus.ru%2Fjournal%2Fmassivy-v-programmirovanii-opisanie-i-napolnenie-dannymi%2F" class="link facebook wpel-icon-right" target="_blank" title="Share on Facebook" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-facebook"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fmassivy-v-programmirovanii-opisanie-i-napolnenie-dannymi%2F&text=%D0%9C%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D1%8B%20%D0%B2%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%3A%20%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B8%20%D0%BD%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8" class="link twitter wpel-icon-right" target="_blank" title="Share on Twitter" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-twitter"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fotus.ru%2Fjournal%2Fmassivy-v-programmirovanii-opisanie-i-napolnenie-dannymi%2F" class="link linkedin wpel-icon-right" target="_blank" title="LinkedIn" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-linkedin"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fmassivy-v-programmirovanii-opisanie-i-napolnenie-dannymi%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2022%2F11%2Foj-1080x720-31.png&description=%D0%9C%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D1%8B%20%D0%B2%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%3A%20%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B8%20%D0%BD%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8" class="link pinterest wpel-icon-right" target="_blank" title="Pinterest" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-pinterest-p"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
</div>
</div>
</div>
<div class="post-nav">
<div class="post previous cf">
<a href="https://otus.ru/journal/komandnaya-stroka-kak-aktivirovat-fajl-v-windows/" title="Prev Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-left"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/komandnaya-stroka-kak-aktivirovat-fajl-v-windows/" class="image-link" rel="previous" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Командная строка – как активировать файл в Windows" decoding="async" data-srcset="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-30-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-30-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-30-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-30-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-30-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-30-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-30-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-30.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-30-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Командная строка – как активировать файл в Windows" /> </a>
<div class="post-meta">
<span class="label">Prev Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/komandnaya-stroka-kak-aktivirovat-fajl-v-windows/" data-wpel-link="internal">Командная строка – как активировать файл в Windows</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/komandnaya-stroka-kak-aktivirovat-fajl-v-windows/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2022-11-23T19:43:59+00:00">23 ноября, 2022</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">7 Mins Read</span>
</div>
</div> </div>
</span>
</div>
<div class="post next cf">
<a href="https://otus.ru/journal/osobennosti-razrabotki-biznes-prilozhenij/" title="Next Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-right"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/osobennosti-razrabotki-biznes-prilozhenij/" class="image-link" rel="next" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Особенности разработки бизнес-приложений" decoding="async" data-srcset="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-32-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-32-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-32-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-32-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-32-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-32-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-32-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-32.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-32-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Особенности разработки бизнес-приложений" /> </a>
<div class="post-meta">
<span class="label">Next Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/osobennosti-razrabotki-biznes-prilozhenij/" data-wpel-link="internal">Особенности разработки бизнес-приложений</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/osobennosti-razrabotki-biznes-prilozhenij/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2022-11-23T20:21:17+00:00">23 ноября, 2022</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">7 Mins Read</span>
</div>
</div> </div>
</span>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Читать ещё</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" title="Уровень готовности CTO к 2026" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Уровень готовности CTO к 2026" title="Уровень готовности CTO к 2026" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" class="post-link" data-wpel-link="internal">Уровень готовности CTO к 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-16T19:50:59+00:00">16 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" title="Новые уроки ноября: только топ-темы по программированию" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Новые уроки ноября: только топ-темы по программированию" title="Новые уроки ноября: только топ-темы по программированию" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" class="post-link" data-wpel-link="internal">Новые уроки ноября: только топ-темы по программированию</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-09T23:24:11+00:00">9 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/schjot-idjot-na-chasy/" title="Счёт идёт на часы" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Счёт идёт на часы" title="Счёт идёт на часы" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-370x245.png 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/schjot-idjot-na-chasy/" class="post-link" data-wpel-link="internal">Счёт идёт на часы</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-10-30T15:04:59+00:00">30 октября, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
<aside class="col-4 sidebar">
<div class="inner">
<ul>
<li id="search-2" class="widget widget_search"><h5 class="widget-title"><span>Поиск по блогу</span></h5>
<form method="get" class="search-form" action="https://otus.ru/journal/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Введите запрос и нажмите Enter" value="" name="s" title="Search for:" />
</label>
<button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
</form>
</li>
<li id="tag_cloud-5" class="widget widget_tag_cloud"><h5 class="widget-title"><span>Метки</span></h5><div class="tagcloud"><a href="https://otus.ru/journal/tag/android-2/" class="tag-cloud-link tag-link-74 tag-link-position-1" style="font-size: 12.472222222222pt;" aria-label="Android (34 элемента)" data-wpel-link="internal">Android</a>
<a href="https://otus.ru/journal/tag/c-3/" class="tag-cloud-link tag-link-91 tag-link-position-2" style="font-size: 10.916666666667pt;" aria-label="C (23 элемента)" data-wpel-link="internal">C</a>
<a href="https://otus.ru/journal/tag/c-2/" class="tag-cloud-link tag-link-81 tag-link-position-3" style="font-size: 12.666666666667pt;" aria-label="C# (35 элементов)" data-wpel-link="internal">C#</a>
<a href="https://otus.ru/journal/tag/c/" class="tag-cloud-link tag-link-20 tag-link-position-4" style="font-size: 12.472222222222pt;" aria-label="c++ (34 элемента)" data-wpel-link="internal">c++</a>
<a href="https://otus.ru/journal/tag/computer-science/" class="tag-cloud-link tag-link-209 tag-link-position-5" style="font-size: 15.972222222222pt;" aria-label="computer science (78 элементов)" data-wpel-link="internal">computer science</a>
<a href="https://otus.ru/journal/tag/css/" class="tag-cloud-link tag-link-288 tag-link-position-6" style="font-size: 8.6805555555556pt;" aria-label="CSS (13 элементов)" data-wpel-link="internal">CSS</a>
<a href="https://otus.ru/journal/tag/data-science/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="Data Science (11 элементов)" data-wpel-link="internal">Data Science</a>
<a href="https://otus.ru/journal/tag/devops/" class="tag-cloud-link tag-link-98 tag-link-position-8" style="font-size: 10.138888888889pt;" aria-label="devops (19 элементов)" data-wpel-link="internal">devops</a>
<a href="https://otus.ru/journal/tag/docker/" class="tag-cloud-link tag-link-143 tag-link-position-9" style="font-size: 8.2916666666667pt;" aria-label="Docker (12 элементов)" data-wpel-link="internal">Docker</a>
<a href="https://otus.ru/journal/tag/gamedev/" class="tag-cloud-link tag-link-25 tag-link-position-10" style="font-size: 11.694444444444pt;" aria-label="gamedev (28 элементов)" data-wpel-link="internal">gamedev</a>
<a href="https://otus.ru/journal/tag/hr/" class="tag-cloud-link tag-link-103 tag-link-position-11" style="font-size: 8pt;" aria-label="hr (11 элементов)" data-wpel-link="internal">hr</a>
<a href="https://otus.ru/journal/tag/html/" class="tag-cloud-link tag-link-217 tag-link-position-12" style="font-size: 11.208333333333pt;" aria-label="HTML (25 элементов)" data-wpel-link="internal">HTML</a>
<a href="https://otus.ru/journal/tag/ios/" class="tag-cloud-link tag-link-101 tag-link-position-13" style="font-size: 8.9722222222222pt;" aria-label="iOS (14 элементов)" data-wpel-link="internal">iOS</a>
<a href="https://otus.ru/journal/tag/it/" class="tag-cloud-link tag-link-50 tag-link-position-14" style="font-size: 10.527777777778pt;" aria-label="IT (21 элемент)" data-wpel-link="internal">IT</a>
<a href="https://otus.ru/journal/tag/java/" class="tag-cloud-link tag-link-75 tag-link-position-15" style="font-size: 15.680555555556pt;" aria-label="Java (73 элемента)" data-wpel-link="internal">Java</a>
<a href="https://otus.ru/journal/tag/javascript/" class="tag-cloud-link tag-link-83 tag-link-position-16" style="font-size: 14.319444444444pt;" aria-label="JavaScript (53 элемента)" data-wpel-link="internal">JavaScript</a>
<a href="https://otus.ru/journal/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-17" style="font-size: 11.888888888889pt;" aria-label="Linux (29 элементов)" data-wpel-link="internal">Linux</a>
<a href="https://otus.ru/journal/tag/machine-learning/" class="tag-cloud-link tag-link-167 tag-link-position-18" style="font-size: 8.6805555555556pt;" aria-label="Machine Learning (13 элементов)" data-wpel-link="internal">Machine Learning</a>
<a href="https://otus.ru/journal/tag/otus-book/" class="tag-cloud-link tag-link-261 tag-link-position-19" style="font-size: 9.9444444444444pt;" aria-label="otus book (18 элементов)" data-wpel-link="internal">otus book</a>
<a href="https://otus.ru/journal/tag/php/" class="tag-cloud-link tag-link-45 tag-link-position-20" style="font-size: 10.527777777778pt;" aria-label="PHP (21 элемент)" data-wpel-link="internal">PHP</a>
<a href="https://otus.ru/journal/tag/python/" class="tag-cloud-link tag-link-27 tag-link-position-21" style="font-size: 16.944444444444pt;" aria-label="Python (99 элементов)" data-wpel-link="internal">Python</a>
<a href="https://otus.ru/journal/tag/qa/" class="tag-cloud-link tag-link-155 tag-link-position-22" style="font-size: 11.402777777778pt;" aria-label="qa (26 элементов)" data-wpel-link="internal">qa</a>
<a href="https://otus.ru/journal/tag/sql/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 12.861111111111pt;" aria-label="SQL (37 элементов)" data-wpel-link="internal">SQL</a>
<a href="https://otus.ru/journal/tag/team-lead/" class="tag-cloud-link tag-link-364 tag-link-position-24" style="font-size: 9.9444444444444pt;" aria-label="team lead (18 элементов)" data-wpel-link="internal">team lead</a>
<a href="https://otus.ru/journal/tag/unity/" class="tag-cloud-link tag-link-24 tag-link-position-25" style="font-size: 8pt;" aria-label="unity (11 элементов)" data-wpel-link="internal">unity</a>
<a href="https://otus.ru/journal/tag/algoritmy/" class="tag-cloud-link tag-link-30 tag-link-position-26" style="font-size: 9.9444444444444pt;" aria-label="Алгоритмы (18 элементов)" data-wpel-link="internal">Алгоритмы</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh/" class="tag-cloud-link tag-link-40 tag-link-position-27" style="font-size: 10.138888888889pt;" aria-label="Базы данных (19 элементов)" data-wpel-link="internal">Базы данных</a>
<a href="https://otus.ru/journal/tag/matematika/" class="tag-cloud-link tag-link-44 tag-link-position-28" style="font-size: 10.916666666667pt;" aria-label="Математика (23 элемента)" data-wpel-link="internal">Математика</a>
<a href="https://otus.ru/journal/tag/arhitektura-po/" class="tag-cloud-link tag-link-10 tag-link-position-29" style="font-size: 9.4583333333333pt;" aria-label="архитектура ПО (16 элементов)" data-wpel-link="internal">архитектура ПО</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh-2/" class="tag-cloud-link tag-link-251 tag-link-position-30" style="font-size: 10.138888888889pt;" aria-label="базы данных (19 элементов)" data-wpel-link="internal">базы данных</a>
<a href="https://otus.ru/journal/tag/vebinar/" class="tag-cloud-link tag-link-201 tag-link-position-31" style="font-size: 13.930555555556pt;" aria-label="вебинар (48 элементов)" data-wpel-link="internal">вебинар</a>
<a href="https://otus.ru/journal/tag/dajdzhest/" class="tag-cloud-link tag-link-308 tag-link-position-32" style="font-size: 10.722222222222pt;" aria-label="дайджест (22 элемента)" data-wpel-link="internal">дайджест</a>
<a href="https://otus.ru/journal/tag/zapis-vebinara/" class="tag-cloud-link tag-link-226 tag-link-position-33" style="font-size: 14.902777777778pt;" aria-label="запись вебинара (61 элемент)" data-wpel-link="internal">запись вебинара</a>
<a href="https://otus.ru/journal/tag/zapis-uroka/" class="tag-cloud-link tag-link-272 tag-link-position-34" style="font-size: 16.069444444444pt;" aria-label="запись урока (80 элементов)" data-wpel-link="internal">запись урока</a>
<a href="https://otus.ru/journal/tag/informacionnaya-bezopasnost/" class="tag-cloud-link tag-link-232 tag-link-position-35" style="font-size: 10.138888888889pt;" aria-label="информационная безопасность (19 элементов)" data-wpel-link="internal">информационная безопасность</a>
<a href="https://otus.ru/journal/tag/karera-v-it/" class="tag-cloud-link tag-link-292 tag-link-position-36" style="font-size: 9.9444444444444pt;" aria-label="карьера в IT (18 элементов)" data-wpel-link="internal">карьера в IT</a>
<a href="https://otus.ru/journal/tag/podborka/" class="tag-cloud-link tag-link-7 tag-link-position-37" style="font-size: 12.666666666667pt;" aria-label="подборка (35 элементов)" data-wpel-link="internal">подборка</a>
<a href="https://otus.ru/journal/tag/podborka-statej/" class="tag-cloud-link tag-link-219 tag-link-position-38" style="font-size: 15.777777777778pt;" aria-label="подборка статей (75 элементов)" data-wpel-link="internal">подборка статей</a>
<a href="https://otus.ru/journal/tag/programmirovanie/" class="tag-cloud-link tag-link-65 tag-link-position-39" style="font-size: 22pt;" aria-label="программирование (332 элемента)" data-wpel-link="internal">программирование</a>
<a href="https://otus.ru/journal/tag/proekt/" class="tag-cloud-link tag-link-321 tag-link-position-40" style="font-size: 11.888888888889pt;" aria-label="проект (29 элементов)" data-wpel-link="internal">проект</a>
<a href="https://otus.ru/journal/tag/proektnaya-rabota/" class="tag-cloud-link tag-link-310 tag-link-position-41" style="font-size: 11.597222222222pt;" aria-label="проектная работа (27 элементов)" data-wpel-link="internal">проектная работа</a>
<a href="https://otus.ru/journal/tag/seti/" class="tag-cloud-link tag-link-181 tag-link-position-42" style="font-size: 12.958333333333pt;" aria-label="сети (38 элементов)" data-wpel-link="internal">сети</a>
<a href="https://otus.ru/journal/tag/testirovanie/" class="tag-cloud-link tag-link-69 tag-link-position-43" style="font-size: 13.930555555556pt;" aria-label="тестирование (48 элементов)" data-wpel-link="internal">тестирование</a>
<a href="https://otus.ru/journal/tag/upravlenie-komandoj/" class="tag-cloud-link tag-link-63 tag-link-position-44" style="font-size: 11.694444444444pt;" aria-label="управление командой (28 элементов)" data-wpel-link="internal">управление командой</a>
<a href="https://otus.ru/journal/tag/habr-2/" class="tag-cloud-link tag-link-203 tag-link-position-45" style="font-size: 13.930555555556pt;" aria-label="хабр (48 элементов)" data-wpel-link="internal">хабр</a></div>
</li>
</ul>
</div>
</aside>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer dark bold">
<section class="lower-footer cf">
<div class="wrap">
<div class="links">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
<p class="copyright"> © 2015-2026 OTUS </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<div class="search-modal-wrap">
<div class="search-modal-box" role="dialog" aria-modal="true">
<form method="get" class="search-form" action="https://otus.ru/journal/">
<input type="search" class="search-field" name="s" placeholder="Search..." value="" required />
<button type="submit" class="search-submit visuallyhidden">Submit</button>
<p class="message">
Type above and press <em>Enter</em> to search. Press <em>Esc</em> to cancel. </p>
</form>
</div>
</div>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js" id="wbcr-comments-plus-url-span-js"></script>
<script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"30"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js" id="ez-toc-js-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/custom-script.js" id="custom-script-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/magnific-popup.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.fitvids.js" id="jquery-fitvids-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/object-fit-images.js" id="object-fit-images-js"></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/journal\/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi\/"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theme.js" id="contentberg-theme-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theia-sticky-sidebar.js" id="theia-sticky-sidebar-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.slick.js" id="jquery-slick-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jarallax.js" id="jarallax-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/masonry.min.js" id="masonry-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
</body>
</html>
<!-- Cache served by breeze CACHE - Last modified: Mon, 09 Mar 2026 15:31:59 GMT -->