Джесс Либерти - Освой самостоятельно С++ за 21 день.

Тут можно читать онлайн Джесс Либерти - Освой самостоятельно С++ за 21 день. - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Освой самостоятельно С++ за 21 день.
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.11/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Джесс Либерти - Освой самостоятельно С++ за 21 день. краткое содержание

Освой самостоятельно С++ за 21 день. - описание и краткое содержание, автор Джесс Либерти, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В книге широко представлены возможности новейшей версии программного продукта Microsoft Visual C++. Подробно описаны средства и подходы программирования современных профессиональных приложений. Материалы книги дополнены многочисленными демонстрационными программами, в процессе разработки которых максимально используются возможности программных инструментов Microsoft Visual Studio. Особое внимание уделено новинкам версии 6.0 и новейшим технологиям объектно-ориентированного программирования, включая использование библиотеки MFC и шаблонов классов, а также создание связанных списков. Отдельное занятие посвящено вопросам объектно-ориентированного анализа и проектирования приложений. Подробно рассмотрены все средства и подходы конструирования собственных пользовательских классов.

Книга рассчитана на широкий круг читателей, интересующихся современными проблемами программирования.

Освой самостоятельно С++ за 21 день. - читать онлайн бесплатно полную версию (весь текст целиком)

Освой самостоятельно С++ за 21 день. - читать книгу онлайн бесплатно, автор Джесс Либерти
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Сложные конструкции с оператором while

Сложность логического выражения, являющегося условием в операторе while, не ограничена. Это позволяет использовать в конструкции while любые логические выражения C++. При построении выражений допускается использование логических операций: && (логическое И), 11 (логическое ИЛИ), а также ! (логическое отрицание). В листинге 7.3 показан пример использования более сложных условий в конструкциях с оператором while.

Листинг 7.3. Сложные условия в конструкциях while

1: // Листинг 7.3.

2: // Сложные условия в конструкциях while

3:

4: include

5:

6: int main()

7: {

8: unsigned short small;

9: unsigned long large;

10: const unsigned short MAXSMALL=65535;

11:

12: cout << "Enter a small number: ";

13: cin >> small;

14: cout << "Enter a large number: ";

15: cin >> large;

16:

17: cout << "small: " << small << "...";

18:

19: // на каждой итерации проверяются три условия

20: while (small < large && large > 0 && small < MAXSMALL)

21: {

22: if (small % 5000 == 0) // после каждых 5000 строк выводится точка

23: cout << ".";

24:

25: small++;

26:

27: large-=2;

28: }

39:

30: cout << "\nSmall: " << small << " Large: " << large << endl;

31: return 0;

32: }

Результат:

Enter а small number: 2

Enter а large number: 100000

small: 2

Small: 33335 Large: 33334

Анализ:Программа представляет собой простую логическую игру. Вначале предлагается ввести два числа — small и large. После этого меньшее значение увеличивается на единицу, а большее уменьшается на два до тех пор, пока они не "встретятся". Цель игры: угадать число, на котором значения "встретятся".

В строках 12—15 осуществляется ввод значений. В строке 20 проверяется три условия продолжения цикла.

1. Значение переменной small не превышает значения large.

2. Значение переменной large неотрицательное и не равно нулю.

3. Значение переменной small не превышает значения константы MAXSMALL.

Далее, в строке 23, вычисляется остаток от деления числа small на 5000, причем значение переменной small не изменяется. Если small делится на 5000 без остатка, результатом выполнения этой операции будет 0. В этом случае для визуального представления процесса вычислений на экран выводится точка. Затем в строке 26 значение переменной small увеличивается на 1, а в строке 28 значение large уменьшается на 2.

Цикл завершается, если хотя бы одно из условий перестает выполняться. После этого управление передается в строку 29, следующую за телом цикла.

Операторы break и continue

Часто бывает необходимо перейти на следующую итерацию цикла еще до завершения выполнения всех операторов тела цикла. Для этого используется оператор continue.

Кроме того, в ряде случаев требуется выйти за пределы цикла, даже если условия продолжения цикла выполняются. В этом случае используется оператор break.

Пример использования этих операторов приведен в листинге 7.4. Это несколько усложненный вариант уже знакомой игры. В этом случае, кроме меньшего и большего значений, предлагается ввести шаг и целевое значение. Как и в предыдущем примере, на каждой итерации цикла значение переменной small увеличивается на единицу. Значение large уменьшается на два, если меньшее число не кратно значению переменной шага (skip). Игра заканчивается, когда значение переменой small становится больше, чем значение large. Если значение переменной large совпадает с целевым значением (target), выводится сообщение и игра прерывается.

Цель игры состоит в том, чтобы угадать число, в которое "попадет" значение target.

Листинг 7.4. Использование break и continue

1: // Листинг 7.4.

2: // Пример использования операторов break и continue

3:

4: #include

5:

6: int main()

7: {

8: unsigned short small;

9: unsigned long large;

10: unsigned long skip;

11: unsigned long target;

12: const unsigned short MAXSMALL=65535;

13:

14: cout << "Enter a smail number: ";

15: cin >> small;

16: cout << "Enter a large number: ";

17: cin >> large;

18: cout << "Enter a skip number: ";

19: cin >> skip;

20: cout << "Enter a target number; ";

21: cin >> target;

22:

23: cout << "\n"

24:

25: // установка условий продолжения цикла

26: while (small < large && large > 0 && small < MAXSMALL)

27:

28: {

29:

30: small++;

31:

32: if (small % skip == 0) // уменьшить значение large?

33: {

34: cout << "skipping on:" << small << endl;

35: continue;

36: }

37:

38: if (large == target) // проверка попадания в цель

39: {

40: cout << " Target reached!";

41: break;

42: }

43:

44: large-=2;

45: } // конец цикла

46:

47: cout << "\nSmall: " << small << " Large: " << large << endl;

48: return 0;

49: }

Результат:

Enter a small number: 2

Enter a large number: 20

Enter a skip number: 4

Enter a target number: 6

skipping on 4

skipping on 8

Small: 10 Large: 8

Анализ:Как видим, игра закончилась поражением пользователя, поскольку меньшее значение превысило большее, а цель так и не была достигнута.

В строке проверяются условия продолжения цикла. Если значение переменной small меньше значения large, а также если large больше нуля и small не превышает значение константы SMALLINT, управление передается первому оператору тела цикла.

В строке 32 вычисляется остаток от деления значения переменной small на значение skip. Если значение small кратно skip, оператор continue запускает следующую итерацию цикла (срока 26). В результате такого перехода пропускается проверка целевого значения и операция уменьшения значения переменной large.

Сравнение значений target и large выполняется в строке 38. Если эти значения равны, игра заканчивается победой пользователя. В этом случае программа выводит сообщение о победе, работа цикла прерывается оператором break и управление передается в строку 46.

Использование конструкции while(true)

В качестве условия, проверяемого при переходе на очередную итерацию цикла, может выступать любое выражение, корректное с точки зрения синтаксиса языка C++. Цикл выполняется до тех пор, пока это выражение истинно. Для организации так называемых бесконечных циклов в качестве такого выражения применяется логическая константа true. Листинг 7.5 демонстрирует пример бесконечного цикла, выполняющего счет до десяти.

Листинг 7.5. Еще один пример использования оператора while

1: // Листинг 7.5.

2: // Пример "бесконечного" цикла

3:

4: #include

5:

6: int main()

7: {

8: int counter = 0;

9:

10: while (true)

11: {

12: counter++;

13: if (counter > 10)

14: break;

15: }

16: cout << "Counter: " << counter << "\n";

17: return 0;

18: }

Результат:

Counter: 11

Анализ: Понятно, что условие продолжения цикла, заданное в строке 10, будет выполняться всегда. В теле цикла (строка 12) значение переменной counter увеличивается на единицу. Работа цикла продолжается до тех пор, показначение counter не превысит 10. Выполнение цикла прерывается оператором break в строке 14, и на экран выводится значение переменной counter (строка 16).

Несмотря на то что данная программа работает, ее структуру нельзя назвать оптимальной. Это типичный пример некорректного использования оператора while. Правильным решением была бы организация проверки значения counter в условии продолжения цикла.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Джесс Либерти читать все книги автора по порядку

Джесс Либерти - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Освой самостоятельно С++ за 21 день. отзывы


Отзывы читателей о книге Освой самостоятельно С++ за 21 день., автор: Джесс Либерти. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x