С++ предоставляет программисту стандартные заголовочные файлы, такие как cstdio или iostream. В частности, в файле iostream содержится прототип использованной в главе 4, "Выполнение логических операций", функции setf( ) для вывода чисел в шестнадцатеричном виде.
«Так сложилось, что годами программисты использовали расширение .h для заголовочных файлов. Однако в последние годы это соглашение для заголовочных файлов стандартной библиотеки С++ было отменено стандартом ( например, заголовочный файл cstdio ранее назывался stdio.h ). Однако многие программисты продолжают давать расширение .h своим заголовочным файлам. Даже в программировании есть традиции!»
[Атас!]
_________________
91 стр. Глава 6. Создание функций
В этой главе...
►Использование символьных массивов 98
►Тип string 103
Массивом называется последовательность переменных одного типа, использующая одно имя; для ссылки на конкретное значение применяется индекс. Массивы удобны для хранения больших количеств взаимосвязанных значений. Например, голы, забитые каждым игроком футбольной команды, естественно сохранять именно в массивах. В С++ допускаются и многомерные массивы. Например, массивы с количеством голов можно сохранить в массиве месяцев — это позволит работать с количеством голов, забитых каждым игроком в определённом месяце.
Из этой главы вы узнаете, как инициализировать и использовать массивы не только для работы, но и для развлечения. А ещё я расскажу об очень полезном виде массивов — строках, которые в С++ являются массивом значений типа char.
►Преимущества массивов...92
Рассмотрим следующую проблему. Вам нужна программа, которая сможет считывать последовательность чисел, введённых с клавиатуры. Будем использовать уже привычное правило, согласно которому ввод чисел завершается после первого отрицательного значения. Однако данная программа, в отличие от уже рассмотренных в главах 5, "Операторы управления программой", и 6, "Создание функций", после того, как все числа прочитаны, отображает их на стандартном устройстве вывода.
Можно попытаться хранить числа в независимых переменных, например:
cin >> value1 ;
if ( value1 >= 0 )
{
cin >> value2 ;
if ( value2 >= 0 )
{
...
Однако нетрудно заметить, что этот подход позволит управлять последовательностью, которая будет состоять всего лишь из нескольких чисел, а кроме того, такая запись выглядит довольно уродливо. В нашем случае нужна такая структура данных, которая, как и любая переменная, имеет своё имя, но может содержать больше одной переменной. Для этого как раз и используются массивы.
_________________
92 стр. Часть 2. Становимся функциональными программистами
С помощью массивов можно легко решить проблему работы с подобными последовательностями. В приведённом далее фрагменте объявляется массив valueArray, в котором можно хранить до 128 целых значений. Затем он заполняется числами, введёнными с клавиатуры,
int value ;
/* объявление массива, способного содержать до 128 чисел типа int */
int valueArray[ 128 ] ;
/* определение индекса, используемого для доступа к элементам массива; его значение не должно превышать 128 */
for ( int i = 0 ; i < 128 ; i++ )
{
cin >> value ;
/* выходим из цикла, если пользователь вводит отрицательное число */
if ( value < 0 ) break ;
valueArray[ i ] = value ;
}
Во второй строке кода ( без учёта комментариев ) объявлен массив valueArray. Первым в объявлении указывается тип элементов массива ( в нашем случае это int ), за ним следует имя массива, последним элементом являются открывающая и закрывающая квадратные скобки, в которых записывается максимальное число элементов массива. В нашем случае массив valueArray может содержать до 128 целочисленных значений.