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

Тут можно читать бесплатно Стенли Липпман - Язык программирования C++. Пятое издание. Жанр: Компьютеры и Интернет / Программирование, год -. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте «WorldBooks (МирКниг)» или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Стенли Липпман - Язык программирования C++. Пятое издание

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

Прочтите описание перед тем, как прочитать онлайн книгу «Стенли Липпман - Язык программирования C++. Пятое издание» бесплатно полную версию:
Лучшее руководство по программированию и справочник по языку, полностью пересмотренное и обновленное под стандарт С++11!Вы держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под стандарт С++11. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. В соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать их наилучшие способы применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.Стенли Б. Липпман работал старшим консультантом в Jet Propulsion Laboratory, архитектором группы Visual С++ корпорации Microsoft, техническим сотрудником Bell Laboratories и главным инженером- программистом по анимации в кинокомпаниях Disney, DreamWorks, Pixar и PDI.Жози Лажойе, работающий ныне в кинокомпании Pixar, был членом канадской группы разработчиков компилятора C/C++ корпорации IBM, а также возглавлял рабочую группу базового языка С++ в составе международной организации по стандартизации ANSI/ISO.Барбара Э. Му имеет почти тридцатилетний опыт программирования. На протяжении пятнадцати лет она работала в компании AT&T, сотрудничая с Бьярне Страуструпом, автором языка С++, и несколько лет руководила группой разработчиков С++.• Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования• Изучите принципы и узнайте почему язык С++11 работает именно так• Воспользуйтесь множеством перекрестных ссылок, способных помочь вам объединить взаимосвязанные концепции и проникнуть в суть• Ознакомьтесь с современными методиками обучения и извлеките пользу из упражнений, в которых подчеркиваются ключевые моменты, позволяющие избежать проблем• Освойте лучшие методики программирования и закрепите на практике изученный материалИсходный код примеров можно загрузить с веб-страницы книги на сайте издательства по адресу: http://www.williamspublishing.com

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

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

Таким образом, пока не достигнут конец файла (или не произошла ошибка ввода), условие остается истинным и выполняется тело цикла while. Тело состоит из одного составного оператора присвоения, который добавляет значение переменной value к текущему значению переменной sum. Однажды нарушение условия завершает цикл while. По выходе из цикла выполняется следующий оператор, который выводит значение переменной sum, сопровождаемое манипулятором endl.

Ввод конца файла с клавиатуры

Разные операционные системы используют для конца файла различные значения. Для ввода символа конца файла в операционной системе Windows достаточно нажать комбинацию клавиш <Ctrl+z> (удерживая нажатой клавишу <Ctrl>, нажать клавишу <z>), а затем клавишу <Enter> или <Return>. На машине с операционной системой UNIX, включая Mac OS-X, как правило, используется комбинация клавиш <Ctrl+d>.

Возвращаясь к компиляции

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

Синтаксические ошибки. Речь идет о грамматических ошибках языка С++. Приведенный ниже код демонстрирует наиболее распространенные синтаксические ошибки, снабженные комментариями, которые описывают их суть.

// ошибка: отсутствует ')' список параметров функции 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::, при доступе к имени, определенному в библиотеке, а также орфографические ошибки в именах идентификаторов.

#include <iostream>

int main() {

 int v1 = 0, v2 = 0;

 std::cin >> v >> v2; // ошибка: используется "v" вместо "v1"

 // cout не определен, должно быть std::cout

 cout << v1 + v2 << std::endl;

 return 0;

}

Сообщение об ошибке содержит обычно номер строки и краткое описание того, что компилятор считает неправильным. Исправлять ошибки имеет смысл в том порядке, в котором поступают сообщения о них. Зачастую одна ошибка приводит к появлению других, поэтому компилятор, как правило, сообщает о большем количестве ошибок, чем имеется фактически. Целесообразно также перекомпилировать код после устранения каждой ошибки или небольшого количества вполне очевидных ошибок. Этот цикл известен под названием "редактирование, компиляция, отладка" (edit-compile-debug).

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

Упражнение 1.16. Напишите собственную версию программы, которая выводит сумму набора целых чисел, прочитанных при помощи объекта cin.

1.4.4. Оператор if

Подобно большинству языков, С++ предоставляет оператор if, который обеспечивает выполнение операторов по условию. Оператор if можно использовать для написания программы подсчета количества последовательных совпадений значений во вводе:

#include <iostream>

int main() {

 // currVal - подсчитываемое число; новые значения будем читать в val

 int currVal = 0, val = 0;

 // прочитать первое число и удостовериться в наличии данных

 // для обработки

 if (std::cin >> currVal) {

  int cnt = 1; // сохранить счет для текущего значения

  while (std::cin >> val) { // читать остальные числа

   if (val == currVal)      // если значение то же

    ++cnt;                  // добавить 1 к cnt

   else {                   // в противном случае вывести счет для

                            // предыдущего значения

    std::cout << currVal << " occurs "

              << ent << " times" << std::endl;

    currVal = val;          // запомнить новое значение

    cnt = 1;                // сбросить счетчик

   }

  } // цикл while заканчивается здесь

  // не забыть вывести счет для последнего значения

  std::cout << currVal << " occurs "

            << cnt << " times" << std::endl;

 } // первый оператор if заканчивается здесь

 return 0;

}

Если задать этой программе следующий ввод:

42 42 42 42 42 55 55 62 100 100 100

то результат будет таким:

42 occurs 5 times

55 occurs 2 times

62 occurs 1 times

100 occurs 3 times

Большая часть кода в этой программе должна быть уже знакома по прежним программам. Сначала определяются переменные val и currVal: currVal будет содержать подсчитываемое число, а переменная val — каждое число, читаемое из ввода. Новыми являются два оператора if. Первый гарантирует, что ввод не пуст.

if (std::cin >> currVal) {

 // ...

} // первый оператор if заканчивается здесь

Подобно оператору while, оператор if проверяет условие. Условие в первом операторе if читает значение в переменную currVal. Если чтение успешно, то условие истинно и выполняется блок кода, начинающийся с открытой фигурной скобки после условия. Этот блок завершается закрывающей фигурной скобкой непосредственно перед оператором return.

Как только подсчитываемое стало известно, определяется переменная cnt, содержащая счет совпадений данного числа. Для многократного чтения чисел со стандартного устройства ввода используется цикл while, подобный приведенному в предыдущем разделе.

Телом цикла while является блок, содержащий второй оператор if:

if (val == currVal) // если значение то же

 ++cnt;             // добавить 1 к cnt

else {              // в противном случае вывести счет для

                    // предыдущего значения

 std::cout << currVal << " occurs "

           << cnt << " times" << std::endl;

 currVal = val;     // запомнить новое значение

 cnt = 1;           // сбросить счетчик

}

Условие в этом операторе if использует для проверки равенства значений переменных val и currVal оператор равенства (equality operator) (оператор ==). Если условие истинно, выполняется оператор, следующий непосредственно за условием. Этот оператор осуществляет инкремент значения переменной cnt, означая очередное повторение значения переменной currVal.

Если условие ложно (т.е. значения переменных val и currVal не равны), выполняется оператор после ключевого слова else. Этот оператор также является блоком, состоящим из оператора вывода и двух присвоений. Оператор вывода отображает счет для значения, которое мы только что закончили обрабатывать. Операторы присвоения возвращают переменной cnt значение 1, а переменной currVal — значение переменной val, которое ныне является новым подсчитываемым числом.

В языке С++ для присвоения используется оператор =, а для про верки равенства — оператор ==. В условии могут присутствовать оба оператора. Довольно распространена ошибка, когда в условии пишут =, а подразумевают ==.

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

Упражнение 1.17. Что произойдет, если в рассматриваемой здесь программе все введенные значения будут равны? Что если никаких совпадающих значений нет?

Перейти на страницу:
Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.
Комментарии / Отзывы
    Ничего не найдено.