C++.Бархатный путь



         

Введение - часть 2


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

    • грамматика языка C++;
    • информация о контроле типов, типизации и прочих важных характеристиках языков программирования;
    • сведения об алгоритмах преобразования, дополнительном коде и о преобразовании дробной части вещественного числа. Эти приложения включены в книгу с единственной целью: чтобы при обсуждении того, ЧТО ДЕЛАЕТСЯ, не возникало вопросов по поводу того, КАК ЭТО ДЕЛАЕТСЯ;
    • элементы теории комплексных чисел. Комплексные числа - наш полигон. Многие конструкции языка C++ мы в дальнейшем будем отрабатывать применительно к множеству комплексных чисел;
    • элементарные сведения об устройстве ЭВМ.

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

    Дело в том, что C++ является языком "общения" человека с компьютером. Основным "читателем" текстов на языке C++ является транслятор. Это особая программа, в обязанности которой входит проверка правильности текста программы и его последующий перевод на язык процессора - основного устройства ЭВМ, который и обеспечивает выполнение программы. У процессора свой взгляд на программу. Он не имеет никакого представления о содержательной стороне описываемых алгоритмов. Процессору важны адреса, регистры, прерывания.

    Язык программирования позволяет описывать алгоритмы и данные. Однако его выразительные возможности не исчерпываются множеством содержательных алгоритмов и связанных с ними структур данных. Даже самые абсурдные с точки зрения программиста, реализующего сколько-нибудь значимый алгоритм, предложения языка остаются абсолютно правильными и корректными для транслятора. Примеры, основанные на содержательных алгоритмах, неизбежно оставляют за рамками изложения множества предложений, на которых, порой, и выявляются характерные черты языка.

    Несколько слов о названии книги. Понятие бархатного пути связано с железной дорогой. Бархатный путь - это высокое качество железнодорожного полотна и мастерство вождения локомотива. Бархатный путь предполагает мягкое взятие состава с места, его плавный разгон и ведение поезда без толчков, качки, лязга и скрежета. Путешествие по железной дороге - не самый лучший способ знакомства с местностью, по которой проложена эта самая дорога. Из окна вагона можно не заметить даже очень крутого поворота пути, а узкая полоска защитных насаждений вдоль железнодорожных путей порой кажется густым лесом. Проезжая через населённые пункты, часто удаётся разглядеть лишь заборы и привокзальные постройки. Так и страницы книги о языке программирования - не самое лучшее место для описания алгоритмов.

    Однако поездка по железной дороге на дрезине, вне расписания, с остановками у переездов и мостов, стрелок, семафоров, поворотных кругов, горок и замедлителей является лучшим способом ознакомиться с устройством этой самой дороги. Такое путешествие - прекрасная возможность всё рассмотреть, потрогать и покрутить.

    При работе над книгой использовался компилятор, входящий в состав интегрированной среды разработки приложений Borland C++ 4.5. Его следует воспринимать исключительно как простое средство передвижения по "бархатному пути" - своего рода hand car. Выбор транслятора для этой книги абсолютно не принципиален. Следует лишь иметь в виду, что выполнение примеров, которые приводятся в этой книге, в других инструментальных средах в ряде случаев может привести к иным результатам. Это связано с тем, что многие свойства языка C++ (размеры данных основных типов, способы их размещения в различных сегментах памяти и т.д.) зависят от конкретной реализации языка. Однако это нисколько не противоречит тому, о чём говорится в книге. Впрочем, везде, где это необходимо, в тексте содержатся соответствующие предупреждения.

    C++ - это сложный, логически стройный и красивый язык. Его хорошее знание приводит к мастерскому владению этим языком. И здесь уже будет по силам решение любой задачи.




    Содержание  Назад