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

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

Книгу Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

287 0 18:03, 26-08-2023
Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп
26 август 2023

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

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

    1 ... 23 24 25 26 27 28 29 30 31 ... 337
    Перейти на страницу:
    могут храниться в переменной, ее тип определяет также операции, которые можно применять к ней, и их смысл. Рассмотрим пример.

    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)

    1 ... 23 24 25 26 27 28 29 30 31 ... 337
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


    Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Людмила Хофман Людмила Хофман10 июнь 22:13 У меня перевернулся мир после прочтения ваших книг! Так приятно и чисто на душе, ведь по сути неважно кто с кем , а только любовь... Долгая игра - Рейчел Рид
    2. Анна Анна08 июнь 11:28 Спасибо за новую историю жизни и любви на сайте,прочитала с удовольствием .... Давай поженимся - Юлия Резник
    3. Елена Елена08 июнь 11:13 Прочла несколько романов этого, без сомнения, талантливого автора. Впечатление прекрасное, но хотелось бы когда-нибудь прочесть... Предатель. Ты врал мне годами - Арина Арская
    Все комметарии
    Новинки бесплатной онлайн библиотеки