Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп Страница 27

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

Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп краткое содержание

Прочтите описание перед тем, как прочитать онлайн книгу «Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп» бесплатно полную версию:

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка.
Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие.
Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток.
Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

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

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

могут храниться в переменной, ее тип определяет также операции, которые можно применять к ней, и их смысл. Рассмотрим пример.

int count;

cin >> count;               // оператор >> считывает целое число в объект count

string name;

cin >> name;                // оператор >> считывает строку в переменную name

int c2 = count+2;           // оператор + складывает целые числа

string s2 = name + " Jr. "; // оператор + добавляет символы

int c3 = count–2;           // оператор – вычитает целые числа

string s3 = name – "Jr. ";  // ошибка: оператор – для строк не определен

 

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

int age = –100;

Очевидно, что человек не может иметь отрицательный возраст (хотя почему бы и нет?), но никто не сказал компилятору об этом, поэтому он успешно создаст код для этого определения. Приведем таблицу полезных операторов для наиболее распространенных типов.

Пустые ячейки означают, что операция не может применяться к данному типу непосредственно (хотя существует множество косвенных способов их использования; см. раздел 3.9.1). Со временем мы объясним все эти операции. Дело в том, что существует множество полезных операций и их смысл у схожих типов почти одинаков.

Рассмотрим пример, в котором фигурируют числа с плавающей точкой.

// простая программа, демонстрирующая работу операторов

int main()

{

  cout << "Пожалуйста, введите значение с плавающей точкой: ";

  double n;

  cin >> n;

  cout << "n == " << n

  << "\nn+1 == " << n+1

  << "\n три раза по n == " << 3*n

  << "\n два раза по n == " << n+n

  << "\nn в квадрате == " << n*n

  << "\n половина n == " << n/2

  << "\n корень квадратный из n == " << sqrt(n)

  << endl; // синоним перехода на новую строку ("end of line")

}

Очевидно, что обычные арифметические операции имеют традиционные обозначения, а их смысл известен нам со школьной скамьи. Естественно также, что не все операции над числами с плавающей точкой реализованы в виде операторов, например квадратный корень можно извлечь лишь с помощью функции. Многие операции представлены именованными функциями. В данном случае для извлечения квадратного корня из числа n используется функция sqrt(n) из стандартной библиотеки. Система обозначений близка к математической. Более подробно функции рассматриваются в разделах 4.5 и 8.5.

ПОПРОБУЙТЕ

Запустите эту небольшую программу. Затем измените ее так, чтобы считать значение типа int, а не double. Обратите внимание на то, что функция sqrt() для целых чисел не определена, поэтому присвойте число переменной типа double и лишь затем примените к ней функцию sqrt(). Кроме того, выполните несколько других операций. Обратите внимание на то, что операция для целых чисел представляет собой целочисленное деление, а операция — вычисление остатка, так что 5/2 равно 2 (а не 2.5 или 3), а 5%2 равно 1. Определения целочисленных операций *, / и % гарантируют, что для двух положительных переменных a и b типа int выполняется равенство a/b*b+a%b==a.

Для типа string предусмотрено меньше операций, но, как будет показано в главе 23, для него создано много специальных функций. Тем не менее к ним можно применять обычные операторы, как показано в следующем примере:

// ввод имени и отчества

int main()

{

  cout << "Пожалуйста, введите свое имя и отчество \n";

  string first;

  string second;

  cin >> first >> second;             // считываем две строки

  string name = first + ' ' + second; // конкатенируем строки

  cout << "Hello, " << name << '\n';

}

Для строк оператор + означает конкатенацию; иначе говоря, если переменные s1 и s2 имеют тип string, то s1+s2 является строкой, в которой вслед за символами строки s1 следуют символы строки s2. Например, если строка s1 имеет значение "Hello", а строка s2 — значение "World", то s1+s2 содержит значение "HelloWorld". Особенно полезным является сравнение строк.

// ввод и сравнение имен

int main()

{

  cout << "Пожалуйста, введите два имени\n";

  string first;

  string second;

  cin >> first >> second;    // считываем две строки

  if (first == second) cout << " имена совпадают \n";

  if (first < second)

    cout << first << " по алфавиту предшествует " << second <<'\n';

  if (first > second)

    cout << first << " по алфавиту следует за " << second <<'\n';

}

Здесь для выбора действия в зависимости от условия использована инструкция if, смысл которой будет подробно изложен в разделе 4.4.1.1.

3.5. Присваивание и инициализация

 

 Одним из наиболее интересных операторов является присваивание, которое обозначается символом =. Этот оператор присваивает переменной новое значение. Рассмотрим пример.

int a = 3; // начальное значение переменной a равно 3

a = 4; // переменная а принимает значение 4

       //("становится четверкой")

int b = a; // начальное значение переменной b является копией

           // значения переменной a (т.е. 4)

b = a+5; // переменная b принимает значение a+5 (т.е. 9)

a = a+7; // переменная a принимает значение a+7 (т.е. 11)

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