Стефан Дэвис - С++ для чайников .
- Название:С++ для чайников .
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс. Компьютерное издательство Диалектика
- Год:2007
- Город:Москва
- ISBN:0-7645-6852-3, 978-5-8459-0723-3
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стефан Дэвис - С++ для чайников . краткое содержание
1
empty-line
4
С++ для чайников . - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
_________________
74 стр. Часть 1. Первое знакомство с С++
После объяснения правил пользователю ( какие данные нужно ввести, чтобы выйти из цикла, и что делает эта программа ) управление получает нечто подобное бесконечному циклу for . Сначала на экран выводится запрос на введение числа с клавиатуры. Проверить его на соответствие критерию выхода из цикла можно только после того, как оно считано программой. Если введёное число отрицательно, управление переходит к оператору break и программа выходит из цикла. Если же число оказывается положительным, программа пропускает команду break и к накопленной сумме добавляет новое значение. После выхода из цикла программа выводит значение общей суммы всех введённых чисел и завершает работу.
«При повторяющемся выполнении операций над переменной в цикле проследите, чтобы инициализация переменной осуществлялась ещё до входа в цикл. В нашем случае программа обнулила переменнуюaccumulator перед входом в цикл, в котором к ней добавляются новые числа. Вот пример результата работы программы:»
[ Советы ]
Эта программа суммирует числа, введённые пользователем
Выполнение цикла заканчивается после ввода отрицательного числа
Введите следующее число: 1
Введите следующее число: 2
Введите следующее число: 3
Введите следующее число: -1
Общая сумма равна 6
Press any key to continue...
Несколько реже используется команда continue . Столкнувшись с ней, программа немедленно возвращается к началу цикла. Остальные инструкции цикла игнорируются.
«В следующем фрагменте программы отрицательные числа, которые может ввести пользователь, игнорируются. Завершает цикл ввод нулевого значения. Полностью данную программу под именемContinueDemo вы найдёте на прилагаемом компакт-диске.»
[ Диск ]
while ( 1 )
{
/* Ввод значения */
cout << "Введите значение" ;
cin >> inputVal ;
/* Если число отрицательное */
if ( inputVal < 0 )
{
/* Выводим сообщение об ошибке */
cout << "Не допускается ввод "
<< "отрицательных чисел\n" ;
/* Возвращаемся к началу цикла */
continue ;
}
/* Введено приемлемое значение */
}
_________________
75 стр. Глава 5. Операторы управления программой
►Вложенные команды управления...76
Возвратимся к проблеме перерисовывания экрана монитора. Конечно, некоторые типы структур циклов можно использовать для прорисовки каждого пикселя линии слева направо ( или для евреев и арабов сканирование экрана осуществляется справа налево? ). Но как реализовать повторяющееся перерисовывание каждой сканируемой линии сверху вниз? ( Для австралийских экранов, наверное, снизу вверх? ) Для этого нужно включить цикл, сканирующий пиксели слева направо, внутрь цикла, сканирующего линии сверху вниз.
В случае если команды одного цикла находятся внутри другого, цикл называют вложенным. В качестве примера вы можете модифицировать программу BreakDemo в программу, которая накапливает сумму чисел любого количества последовательностей. В этой программе, названной NestedDemo , во внутреннем цикле суммируются числа, введённые с клавиатуры, пока пользователь не введёт отрицательное значение. Внешний цикл суммирует полученные суммы значений последовательностей до тех пор, пока накопленная сумма примет отличное от нуля значение.
/* NestedDemo — вводится последовательность чисел. */
/* Числа суммируются, пока пользователь не введёт отрицательное число. Этот процесс будет повторяться, пока общая сумма не станет равной 0. */
#include
#include
#include
using namespace std ;
int main( int argc , char* pszArgs[ ] )
{
setlocale ( LC_ALL , ".1251" ) ; /* печать русских текстов */
cout << "Эта программа суммирует "
<< "последовательности чисел.\n Ввод каждой "
<< "последовательности завершается "
<< "вводом отрицательного числа \n"
<< "Чтобы завершить ввод последовательностей,"
<< "нужно ввести\nдва отрицательных числа подряд\n" ;
/* Внешний цикл работает с последовательностями чисел */
int accumulator ;
do
{
/* Начинаем ввод очередной последовательности чисел */
accumulator = 0 ;
cout << "\nВведите очередную последовательность\n" ;
/* Бесконечный цикл */
for ( ; ; )
{
/* Введение очередного числа */
int value = 0 ;
cout << "Введите очередное число: " ;
cin >> value ;
/* Если оно отрицательное... */
if ( value < 0 )
{
/* ...выходим из цикла */
_________________
76 стр. Часть 1. Первое знакомство с С++
break ;
}
/* ...иначе добавляем число к общей сумме */
accumulator = accumulator + value ;
}
/* Вывод результата вычислений... */
cout << "\nОбщая сумма равна "
<< accumulator
<<"\n" ;
/* ... если накопленная общая сумма чисел последовательности не равна нулю, начинаем работать со следующей последовательностью */
} while ( accumulator != 0 ) ;
cout << "Программа завершена\n" ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ;
return 0 ;
}
►Инструкция выбора...77
Последняя управляющая инструкция эффективна, если существует необходимость выбора при ограниченном количестве возможных вариантов. Она похожа на усложнённую инструкцию if , которая вместо проверки одного условия анализирует множество разных возможностей:
switch ( выражение )
{
case c1 :
/* Переходим сюда, если выражение == c1 */
break ;
case c2 :
/* Переходим сюда, если выражение == c2 */
break ;
default :
/* Если ни одно условие не выполнено, переходим сюда */
}
Читать дальшеИнтервал:
Закладка: