Программирование >>  Аргументация конструирования 

1 ... 19 20 21 [ 22 ] 23 24 25 ... 108


Хранение последовательностей в массивах

& 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;



1 ... 19 20 21 [ 22 ] 23 24 25 ... 108

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика