Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Семинар 5. Массивы






Массивом называется конечная последовательность однотипных элементов. У всех этих элементов одно имя (имя массива), но разные порядковые номера (индексы). Элементы располагаются в последовательных ячейках памяти. Массив является простейшим структурированным типом данных.

Одномерные массивы

Одномерный массив описывается в программе следующим образом:

ТипЭлементов ИмяМассива [ КоличествоЭлементов ] ;

Тип элементов и их количество определяют, сколько памяти потребуется для хранения элементов массива. Эта величина определяется на этапе компиляции, и изменить ее впоследствии невозможно, поэтому КоличествоЭлементов может быть либо константой, либо константным выражением.

При описании массива его можно инициализировать. В этом случае количество элементов можно опускать, и компилятор определит его автоматически. Значения для инициализации массива записываются в фигурных скобках через запятую. Можно инициализировать только часть элементов, тогда количество элементов массива должно быть больше, чем количество элементов для инициализации. Ниже приведены примеры описания одномерных массивов:

Элементы массива нумеруются с нуля, следовательно, номер последнего элемента равен КоличествоЭлементов - 1. При обращении к элементам массива автоматический контроль за выходом значения индекса из диапазона [0, КоличествоЭлементов – 1] не производится.

Для доступа к элементу после имени массива в квадратных скобках нужно указать его номер (индекс). Например, a[3], b[i], d[i-2*j]. С элементами массива можно выполнять те же действия, что и с обычными переменными этого типа.

Если массив является параметром функции, то в функцию рекомендуется передавать указатель на его первый элемент. Информация о количестве элементов передается в отдельном параметре. В этом случае функция сможет обрабатывать массивы разного размера.

Пример 5.1. Вычисление суммы элементов одномерного массива

Напишем функцию, которая вычисляет сумму элементов массива. Функция имеет два параметра: m – количество элементов в массиве, X – массив, элементы которого нужно просуммировать. В примере приведены 2 варианта этой функции, которые отличаются способом описания формального параметра X.

Пример 5.2. Заполнение массива случайными числами

Часто, особенно при отладке, требуется заполнять массивы случайными числами из заданного диапазона [a, b]. Напишем функции, которые решают эту задачу для массивов типа int и double.

В своей программе мы используем библиотечные функции:

rand – возвращает псевдослучайное целое число от нуля до RAND_MAX (32767);

srand – параметр seed этой функции устанавливает начальную точку для функции rand. Чтобы при каждом запуске получать различные последовательности чисел, в качестве значения параметра seed в программе используется значение функции time;

time – возвращает число секунд, прошедших с 00: 00: 00 1 января 1970 года.

Для работы с функциями rand и srand требуется библиотека < cstdlib>, для функции time – библиотека < time.h>.

Вызвать приведенные функции мы можем, например, так:

Пример 5.3. Вывод одномерного целого массива на экран в одну строку

Двумерные массивы (матрицы)

Двумерный массив описывается в программе следующим образом:

ТипЭлементов ИмяМассива [ КоличествоСтрок ] [ КоличествоСтолбцов ] ;

В памяти матрицы хранятся в последовательных ячейках «по строкам»: сначала первая строка, за ней – вторая и т.д.

При инициализации матрицы она может представляться как массив строк, тогда каждая строка заключается в свои фигурные скобки (в этом случае количество строк можно не указывать), либо элементы перечисляются в том порядке, в котором они располагаются в памяти:






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.