Стенли Липпман - Язык программирования C++. Пятое издание

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

Стенли Липпман - Язык программирования C++. Пятое издание краткое содержание

Язык программирования C++. Пятое издание - описание и краткое содержание, автор Стенли Липпман, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Лучшее руководство по программированию и справочник по языку, полностью пересмотренное и обновленное под стандарт С++11!
Вы держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под
. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. В соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.
С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать их наилучшие способы применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.
Стенли Б. Липпман Жози Лажойе Барбара Э. Му • Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием
• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования
• Изучите принципы и узнайте почему язык С++11 работает именно так
• Воспользуйтесь множеством перекрестных ссылок, способных помочь вам объединить взаимосвязанные концепции и проникнуть в суть
• Ознакомьтесь с современными методиками обучения и извлеките пользу из упражнений, в которых подчеркиваются ключевые моменты, позволяющие избежать проблем
• Освойте лучшие методики программирования и закрепите на практике изученный материал
Исходный код примеров можно загрузить с веб-страницы книги на сайте издательства по адресу: http://www.williamspublishing.com

Язык программирования C++. Пятое издание - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования C++. Пятое издание - читать книгу онлайн бесплатно, автор Стенли Липпман
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

В цикле forпроисходит вызов функции lround(n(е))для округления возвращенного вызовом n(е)значения до ближайшего целого числа. Получив целое число, соответствующее случайному числу с плавающей точкой, используем его для индексирования вектора счетчиков. Поскольку вызов n(е)может создавать числа и вне диапазона от 0 до 9, проверим полученное число на принадлежность диапазону прежде, чем использовать его для индексирования вектора vals. Если число принадлежит диапазону, увеличиваем соответствующий счетчик.

Когда цикл заканчивается, вывод содержимого вектора valsвыглядит следующим образом:

0: ***

1: ********

2: ********************

3: **************************************

4: **********************************************************

5: ******************************************

6: ***********************

7: *******

8: *

Выведенные строки содержат столько звездочек, сколько раз встретилось соответствующее значение, созданное генератором случайных чисел. Обратите внимание: эта фигура не совершенно симметрична. Если бы она была симметрична, то возникли бы подозрения в качестве генератора случайных чисел.

Класс bernoulli_distribution

Как уже упоминалось, есть одно распределение, которое не получает параметр шаблона. Это распределение bernoulli_distribution, являющееся обычным классом, а не шаблоном. Это распределение всегда возвращает логическое значение trueс заданной вероятностью. По умолчанию это вероятность .5.

В качестве примера распределения этого вида напишем программу, которая играет с пользователем. Игру начинает один из игроков (пользователь или программа). Чтобы выбрать первого игрока, можно использовать объект класса uniform_int_distributionс диапазоном от 0 до 1. В качестве альтернативы этот выбор можно сделать, используя распределение Бернулли. С учетом, что игру начинает функция play(), для взаимодействия с пользователем может быть использован следующий цикл:

string resp;

default_random_engine e; // e имеет состояние, поэтому располагается

// вне цикла!

bernoulli_distribution b; // по умолчанию четность 50/50

do {

bool first = b(e); // если true, программа ходит первой

cout << (first ? "We go first"

: "You get to go first") << endl;

// играть в игру, угадывая, кто ходит первым

cout << ((play(first)) ? "sorry, you lost"

: "congrats, you won") << endl;

cout << "play again? Enter 'yes' or 'no'" << endl;

} while (cin >> resp && resp[0] == 'y');

Для повторного запроса на продолжение игры используем цикл do while(см. раздел 5.4.4).

Язык программирования C Пятое издание - изображение 653Поскольку процессоры возвращают ту же последовательность чисел (см. раздел 17.4.1), их объявляют за пределами циклов. В противном случае при каждой итерации создавался бы новый процессор, выдающий каждый раз те же значения. Распределения также могут хранить состояние и также должны определяться вне циклов.

Одна из причин использования в этой программе распределения bernoulli_distributionзаключается в том, что это предоставит программе лучший шанс пойти первой:

bernoulli_distribution b(.55); // предоставить программе небольшое

// преимущество

Такое определение bпредоставит программе 55/45 шансов на первый ход.

Упражнения раздела 17.4.2

Упражнение 17.31. Что случилось бы в программе игры данного раздела, будь объекты bи еопределены в цикле do?

Упражнение 17.32. Что случилось бы, будь строка respопределена в цикле?

Упражнение 17.33. Напишите версию программы преобразования слова из раздела 11.3.6, допускающую несколько преобразований для заданного слова и случайно выбирающую применяемое преобразование.

17.5. Еще о библиотеке ввода и вывода

Глава 8 познакомила вас с базовой архитектурой и наиболее часто используемой частью библиотеки ввода-вывода. В этом разделе рассматриваются три более специализированных средства, поддерживаемых библиотекой ввода-вывода: управление форматом, не форматированный ввод-вывод и произвольный доступ.

17.5.1. Форматированный ввод и вывод

Кроме флага состояния (см. раздел 8.1.2), каждый объект iostreamимеет также флаг формата, контролирующий подробности формата ввода и вывода. Флаг формата контролирует такие аспекты, как формат записи целочисленных значений, точность значений с плавающей запятой, ширина выводимого элемента и т.д.

Библиотека определяет набор перечисленных в табл. 17.17 и 17.18 манипуляторов (manipulator) (см. раздел 1.2), изменяющих флаг формата потока. Манипулятор — это функция или объект, влияющие на состояние потока и применяемые как операнд оператора ввода или вывода. Как и операторы ввода и вывода, манипулятор возвращает потоковый объект, к которому он применяется; таким образом, можно объединить манипуляторы и данные в один оператор.

Таблица 17.17. Манипуляторы, определенные в объекте iostream

boolalpha Отображать значения trueи falseкак строки
*noboolalpha Отображать значения trueи falseкак 0и 1
showbase Создавать префикс, означающий базу целочисленных значений
*noshowbase Не создавать префикс базы чисел
showpoint Всегда отображать десятичную точку для значений с плавающей запятой
*noshowpoint Отображать десятичную точку, только если у значения есть дробная часть
showpos Отображать +для положительных чисел
*noshowpos Не отображать +в неотрицательных числах
uppercase Выводить 0Xв шестнадцатеричной и Eв экспоненциальной формах записи
*nouppercase Выводить 0xв шестнадцатеричной и ев экспоненциальной формах записи
*dec Отображать целочисленные значения с десятичной базой числа
hex Отображать целочисленные значения с шестнадцатеричной базой числа
oct Отображать целочисленные значения с восьмеричной базой числа
left Добавлять дополняющие символы справа от значения
right Добавлять дополняющие символы слева от значения
internal Добавлять дополняющие символы между знаком и значением
fixed Отображать значения с плавающей точкой в десятичном представлении
scientific Отображать значения с плавающей точкой в экспоненциальном представлении
hexfloat Отображать значения с плавающей точкой в шестнадцатеричном представлении (нововведение С++11)
defaultfloat Вернуть формат числа с плавающей точкой в десятичный (нововведение С++11)
unitbuf Сбрасывать буфер после каждой операции вывода
*nounitbuf Восстановить обычный сброс буфера
*skipws Пропускать отступы в операторах ввода
noskipws Не пропускать отступы в операторах ввода
flush Сбросить буфер объекта ostream
ends Вставить нулевой символ, а затем сбросить буфер объекта ostream
endl Вставить новую строку, а затем сбросить буфер объекта ostream

*Означает стандартное состояние потока

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

Интервал:

Закладка:

Сделать


Стенли Липпман читать все книги автора по порядку

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




Язык программирования C++. Пятое издание отзывы


Отзывы читателей о книге Язык программирования C++. Пятое издание, автор: Стенли Липпман. Читайте комментарии и мнения людей о произведении.


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

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