Стефан Дэвис - С++ для чайников .
- Название:С++ для чайников .
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс. Компьютерное издательство Диалектика
- Год:2007
- Город:Москва
- ISBN:0-7645-6852-3, 978-5-8459-0723-3
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стефан Дэвис - С++ для чайников . краткое содержание
1
empty-line
4
С++ для чайников . - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
cout << "Эта программа суммирует числа,"
<< " введённые пользователем\n" ;
cout << "Цикл прерывается, когда"
<< " пользователь вводит\n"
<< "отрицательное число\n" ;
/* Сохраняем числа в массиве */
int inputValues[ 128 ] ;
int numberOfValues = 0 ;
for ( numberOfValues = 0 ; numberOfValues < 128 ; numberOfValues++ )
{
/* Ввод очередного числа */
int integerValue ;
cout << "Введите следующее число: " ;
cin >> integerValue ;
/* Если оно отрицательное... */
if ( integerValue < 0 )
{
/* ...тогда выходим из цикла */
break ;
}
/* ...иначе сохраняем число в массиве */
inputValues[ numberOfValues ] = integerValue ;
}
/* Теперь выводим значения и их сумму */
displayArray( inputValues , numberOfValues ) ;
cout << "Сумма введённых чисел равна "
<< sumArray( inputValues , numberOfValues )
<< endl ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ; return 0 ;
}
/* displayArray — отображает элементы массива integerArray длиной sizeOfloatArray */
void displayArray( int integerArray[ ] , int sizeOfArray )
{
cout << "В массиве хранятся"
<< " следующие значения:\n" ;
for ( int i = 0 ; i < sizeOfArray ; i++ )
{
cout.width( 3 ) ;
cout << i << ": " << integerArray[ i ] << endl ;
}
cout << endl ;
}
_________________
94 стр. Часть 2. Становимся функциональными программистами
/* sumArray — возвращает сумму элементов целочисленного массива */
int sumArray( int integerArray[ ] , int sizeOfArray )
{
int accumulator = 0 ;
for ( int i = 0 ; i < sizeOfArray ; i++ )
{
accumulator += integerArray[ i ] ;
}
return accumulator ;
}
Программа ArrayDemo начинается с объявления прототипов функций sumArray( ) и displayArray( ) , которые понадобятся нам позже. Главная часть программы содержит довольно скучный цикл ввода значений. На этот раз вводимые значения сохраняются в массиве inputValues .
Если введённое значение отрицательно, цикл прерывается при помощи инструкции break , если же нет — оно копируется в массив. Целочисленная переменная numberOfValues используется в качестве индекса массива. Она инициализирована нулём в начале цикла for . При каждой итерации индекс увеличивается. В условии выполнения цикла for осуществляется контроль за тем, чтобы количество введённых чисел не превышало 128, т.е. размера массива ( после введения 128 чисел программа переходит к выводу элементов массива на экран независимо от того, ввёл пользователь отрицательное число или нет ).
«В объявлении массиваinputValues было указано, что его максимальная длина равна 128. При записи большего числа данных, чем определено в объявлении, ваша программа может работать неправильно и даже аварийно завершать работу. Поэтому лучше застраховаться и оставить больше места для хранения данных. Неважно, насколько велик массив; всегда нужно следить за тем, чтобы операции с массивом не приводили к выходу за его пределы.»
[ Атас! ]
Функция main заканчивается выводом на экран содержимого массива и суммы его элементов.
«Среда Dev-C++ может помочь вам в работе с исходными текстами, в которых имеется много функций. На рис. 7.1 показано содержимое вкладкиClasses ( Классы ) , в которой перечисляются все функции в исходном файле. Двойной щелчок на имени функции переносит вас в окне редактирования в строку с этой функцией.»
[ Советы ]
Функция displayArray( ) содержит обычный цикл for , который используется для прохождения по массиву. Каждый очередной элемент массива добавляется к переменной accumulator . Передаваемый функции параметр sizeOfArray включает количество значений, содержащихся в массиве.
Напомню ещё раз, что индекс массива в С++ отсчитывается от 0 , а не от 1. Кроме того, обратите внимание, что цикл for прерывается в тот момент, когда значение i становится равным sizeOfArray . Вы же не хотите добавлять все 128 элементов массива integerArray к accumulator ? Ни один элемент массива, индекс которого больше или равен числу sizeOfArray , учитываться не будет. Вот как выглядит пример работы с этой программой:
_________________
95 стр. Глава 7. Хранение последовательностей в массивах
Эта программа суммирует числа, введённые пользователем
Цикл прерывается, когда пользователь вводит
отрицательное число
Введите следующее число: 1
Введите следующее число: 2
Введите следующее число: 3
Введите следующее число: -1
В массиве хранятся следующие значения:
0: 1
1: 2
2: 3
Сумма введённых чисел равна 6
Press any key to continue...
Рис. 7.1. Вкладка Классы выводит информацию о функциях, составляющих программу
Инициализация массива...96
Локальная переменная нежизнеспособна до тех пор, пока ей не присвоят значение. Другими словами, пока вы в ней что-то не сохраните, она будет содержать мусор. Локальное описание массива происходит так же: пока каждому элементу не присвоят какие-либо значения, в ячейках массива будет содержаться мусор. Локальную переменную следует инициализировать при её объявлении, и ещё в большей степени это справедливо для массивов. Слишком уж легко наткнуться на неработоспособную ячейку в неинициализированном массиве.
К счастью, массив может быть инициализирован сразу во время объявления, например:
float floatArray[ 5 ] = { 0.0 , 1.0 , 2.0 , 3.0 , 4.0 } ;
В этом фрагменте элементу floatArray[ 0 ] присваивается значение 0 , floatArray[ 1 ] — 1 , floatArray[ 2 ] — 2 и т.д.
_________________
96 стр. Часть 2. Становимся функциональными программистами
Размер массива может определяться и количеством инициализирующих констант. Например, перечислив в скобках значения инициализаторов, можно ограничить размер массива floatArray пятью элементами. С++ умеет очень хорошо считать ( по крайней мере, его можно с уверенностью использовать для этого ). Так, следующее объявление идентично представленному выше:
float floatArray[ ] = { 0.0 , 1.0 , 2.0 , 3.0 , 4.0 } ;
Все элементы массива можно инициализировать одним и тем же значением, указав его только один раз. Например, далее все 25 элементов массива floatArray инициализируются значением 1.0.
Читать дальшеИнтервал:
Закладка: