Стенли Липпман - Язык программирования C++. Пятое издание
- Название:Язык программирования C++. Пятое издание
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2014
- Город:Москва
- ISBN:978-5-8459-1839-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стенли Липпман - Язык программирования C++. Пятое издание краткое содержание
Вы держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под
. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. В соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.
С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать их наилучшие способы применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.
Стенли Б. Липпман Жози Лажойе Барбара Э. Му • Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием
• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования
• Изучите принципы и узнайте почему язык С++11 работает именно так
• Воспользуйтесь множеством перекрестных ссылок, способных помочь вам объединить взаимосвязанные концепции и проникнуть в суть
• Ознакомьтесь с современными методиками обучения и извлеките пользу из упражнений, в которых подчеркиваются ключевые моменты, позволяющие избежать проблем
• Освойте лучшие методики программирования и закрепите на практике изученный материал
Исходный код примеров можно загрузить с веб-страницы книги на сайте издательства по адресу: http://www.williamspublishing.com
Язык программирования C++. Пятое издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
int val = 1;
Переменная val
существует только в цикле for
; ее невозможно использовать после завершения цикла. Оператор инициализации выполняется только однажды перед запуском цикла for
.
Условие сравнивает текущее значение переменной val
со значением 10
:
val <= 10
Условие проверяется при каждом цикле. Пока значение переменной val
меньше или равно 10
, выполняется тело цикла for
.
Выражение выполняется после тела цикла for
. В данном случае выражение использует префиксный оператор инкремента, который добавляет 1
к значению переменной val
:
++val
После выполнения выражения оператор for
повторно проверяет условие. Если новое значение переменной val
все еще меньше или равно 10
, то тело цикла for
выполняется снова. После выполнения тела значение переменной val
увеличивается снова. Цикл продолжается до нарушения условия.
В рассматриваемом цикле for тело
осуществляет суммирование.
sum += val; // эквивалентно sum = sum + val
В итоге оператор for
выполняется так.
1. Создается переменная val
и инициализируется значением 1
.
2. Проверяется значение переменной val
(меньше или равно 10
). Если условие истинно, выполняется тело цикла for
, в противном случае цикл завершается и управление переходит к оператору, следующему за ним.
3. Приращение значения переменной val
.
4. Пока условие истинно, повторяются действия, начиная с пункта 2.
Упражнение 1.12. Что делает следующий цикл for
? Каково финальное значение переменной sum
?
int sum = 0;
for (int i = -100; i <= 100; ++i)
sum += i;
Упражнение 1.13. Перепишите упражнения раздела 1.4.1, используя циклы for
.
Упражнение 1.14. Сравните циклы с использованием операторов for
и while
в двух предыдущих упражнениях. Каковы преимущества и недостатки каждого из них в разных случаях?
Упражнение 1.15. Напишите программы, которые содержат наиболее распространенные ошибки, обсуждаемые во врезке «Ввод конца файла с клавиатуры». Ознакомьтесь с сообщениями, выдаваемыми компилятором.
1.4.3. Ввод неизвестного количества данных
В приведенных выше разделах мы писали программы, которые суммировали числа от 1 до 10. Логическое усовершенствование этой программы подразумевало бы запрос суммируемых чисел у пользователя. В таком случае мы не будем знать, сколько чисел суммировать. Поэтому продолжим читать числа, пока будет что читать.
#include
int main() {
int sum = 0, value = 0;
// читать данные до конца файла, вычислить сумму всех значений
while (std::cin >> value)
sum += value; // эквивалентно sum = sum + val
std::cout << "Sum is: " << sum << std::endl;
return 0;
}
Если ввести значения 3 4 5 6
, то будет получен результат Sum is: 18
.
Первая строка функции main()
определяет две переменные типа int
по имени sum
и value
, инициализируемые значением 0
. Переменная value
применяется для хранения чисел, вводимых в условии цикла while
.
while (std::cin >> value)
Условием продолжения цикла while
является выражение
std::cin >> value
Это выражение читает следующее число со стандартного устройства ввода и сохраняет его в переменной value
. Как упоминалось в разделе 1.2, оператор ввода возвращает свой левый операнд. Таким образом, в условии фактически проверяется объект std::cin
.
Когда объект типа istream
используется при проверке условия, результат зависит от состояния потока. Если поток допустим, т.е. не столкнулся с ошибкой и ввод следующего значения еще возможен, это условие считается истинным. Объект типа istream
переходит в недопустимое состояние по достижении конца файла (end-of-file) или при вводе недопустимых данных, например строки вместо числа. Недопустимое состояние объекта типа istream
в условии свидетельствует о том, что оно ложно.
Таким образом, пока не достигнут конец файла (или не произошла ошибка ввода), условие остается истинным и выполняется тело цикла while
. Тело состоит из одного составного оператора присвоения, который добавляет значение переменной value
к текущему значению переменной sum
. Однажды нарушение условия завершает цикл while
. По выходе из цикла выполняется следующий оператор, который выводит значение переменной sum
, сопровождаемое манипулятором endl
.
Разные операционные системы используют для конца файла различные значения. Для ввода символа конца файла в операционной системе Windows достаточно нажать комбинацию клавиш (удерживая нажатой клавишу , нажать клавишу ), а затем клавишу или . На машине с операционной системой UNIX, включая Mac OS-X, как правило, используется комбинация клавиш .
Одной из задач компилятора является поиск ошибок в тексте программ. Компилятор, безусловно, не может выяснить, делает ли программа то, что предполагал ее автор, но вполне способен обнаружить ошибки в форме записи. Ниже приведены примеры ошибок, которые компилятор обнаруживает чаще всего.
Синтаксические ошибки . Речь идет о грамматических ошибках языка С++. Приведенный ниже код демонстрирует наиболее распространенные синтаксические ошибки, снабженные комментариями, которые описывают их суть.
// ошибка: отсутствует ')' список параметров функции main()
int main ( {
// ошибка: после endl используется двоеточие, а не точка с запятой
std::cout << "Read each file." << std::endl:
// ошибка: отсутствуют кавычки вокруг строкового литерала
std::cout << Update master. << std::endl;
// ошибка: отсутствует второй оператор вывода
std::cout << "Write new master." std::endl;
// ошибка: отсутствует ';' после оператора return
return 0
}
Ошибки несовпадения типа . Каждый элемент данных языка С++ имеет тип. Значение 10
, например, является числом типа int
. Слово "привет"
с парными кавычками — это строковый литерал. Примером ошибки несовпадения является передача строкового литерала функции, которая ожидает целочисленным аргумент.
Ошибки объявления . Каждое имя, используемое в программе на языке С++, должно быть вначале объявлено. Использование необъявленного имени обычно приводит к сообщению об ошибке. Типичными ошибками объявления является также отсутствие указания пространства имен, например std::
, при доступе к имени, определенному в библиотеке, а также орфографические ошибки в именах идентификаторов.
Интервал:
Закладка: