|
Программирование >> Аргументация конструирования
Хранение последовательностей в массивах & atfiou главе... Преимущества массивов V Работа с массивами / И мвапие символьных массивов V Управление строками / Устранение устаревших функций вывода ЛМ ассивом называется носдедоватедьность неременных одного тина, ис~ пользующая одно имя; для ссылки на конкретное значение в ней используется индекс. Массивы удобны для хранения огромного количества взаимосвязанных значений. Например, голы, забитые каждым игроком футбольной команды, сохранять именно в массивах. В C++ допускаются и мерные массивы. Например, массивы с количеством голов можно сохранить в массиве месяцев - это позволит работать с количеством голов, забитых каждым игроком в определенном месяце. Из этой главы вы узнаете, как инициализировать и использовать массивы не только для работы, но и для развлечения. А еще я расскажу об очень полезном виде мае-сивов - строках, которые в C++ являются массивом значений типа char. массивов Рассмотрим следующую проблему. Вам нужна программа, которая сможет считывать последовательность чисел, введенных с клавиатуры. Будем использовать уже привычное правило, согласно которому ввод чисел завершается после первого отрицательного значения. Программа один раз считывает числа и только после того, как все числа прочитаны, отображает их на стандартном устройстве вывода. Можно попытаться хранить числа в независимых переменных, например: cin >> valuel; If (value, 1 >= С) { cin value2; If ;value2 >= 0) Однако нетрудно заметить, что этот подход позволит управлять последовательностью, которая будет состоять всего лишь из нескольких чисел, а кроме того, такая запись выглядит довольно уродливо. В нашем случае нужна такая структура данных, которая, как и любая переменная, имеет свое имя, но может содержать больше одной переменной. Для этого как раз и используются массивы. С помощью массивов можно легко решить проблему работы с подобными последовательностями. В приведенном далее фрагменте объявляется массив value Array, в котором можно хранить до 128 целых значений. Затем он заполняется числами, введенными с клавиатуры. int value; объявление массива, способного содержать до 12 8 чисел типа int int valueArray[128]; определение индекса, для доступа к элементам массива; его значение не должно превышать 128 for (int i = 0; i < 128; cin >> value; выходим из цикла, если вводит отрицательное число if (value < 0) break; valueArray[i] = value; Во второй строке кода (без учета комментариев) объявлен массив valueArray. Первым в объявлении указывается тип элементов массива (в нашем случае это int), за ним следует имя массива, последним элементом являются открывающая и закрывающая квадратные скобки, в которых записывается максимальное число элементов массива. В нашем случае массив valueArray может содержать до 128 целочисленных значений. Компьютер считывает число с клавиатуры и сохраняет его в следующем элементе массива valueArray. Доступ к элементам массива обеспечивается с помощью имени массива и индекса, указанного в квадратных скобках. Первое целое массива обозначается как valueArray [0], второе - как valueArray [1] И т.д. Запись valueArray [i] представляет собой 1-й элемент массива. Индексная переменная i должна быть перечислимой, т.е. ее типом может бгть char, int или long. Если valueArray является массивом целых чисел, то элемент имеет тип int. !PaS6t§ia с массивами В представленной ниже программе осуществляется ввод последовательности целых чисел (до первого отрицательного числа), затем эта последовательность и сумма ее элементов выводятся на экран. муОето - демонстрирует использование ивов. Считывает последовател[зНость целых чисел и отображает их по порядку include <stdio.h> #include <iostream.h> объявления прототипов функций int sunArray(int integerArray[], int sizeOfloatArray); void displayArray(int IntegerAriay11/ int sizeOfloatArray); indnt nArg, char* pszArgs[]} Описываем счетчик цикла int nAccuiaulator = 0; cout << Эта программа суммирует числа, << введенные пользователемХп ; cout << Цикл прерывается, когда пользователь вводит << отрицательное число\п ; сохраняем числа в массиве int inputValuesll28]; int гumberOfValues = 0; for(; numberOfValues < 128; numberOfValuest+) ввод очередного числа int integerValue; cout Введите следующее число: ; cin integerValue; если оно отрицательное... if {integerValue < 0) . , .тогда выходим из цикла break; ,/ ...иначе сохраняем число в массиве inputValues[numberOfValues] = integerValue; теперь выводим значения и их сумму displayArray(inputValues, numberOfValues) ; cout << Сумма введенных чисел равна << \п ; return 0; displayArray - отображает элементы массива IntegerArray длиной sizeOfloatArray void displayArray(int IntegerArray[], int sizeOfArray) cout << В массиве хранятся << следующие значения:\п ; for (int i = 0; i < sizeOfArray; i + + ) cout.width(3); cout 1 : IntegerArray[i) \n ; cout << \n ; surray - возвращает сумму элементов целочисленного массива int sumArray(int int sizeOfArray) int accumulator = for (int i = 0; i < sizeOfArray; accumulator += IntegerArray[i]; accumulator;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |