Программирование >>  Структурное программирование 

1 ... 7 8 9 [ 10 ] 11 12 13 ... 342


Обзор книги

Книга разделена на несколько крупных частей. Первая часть - главы с 1 по 5, представляет собой детальное изложение процедурного программирования на С++, включая типы данных, ввод-вывод, управляющие структуры, функции, массивы, указатели и строки.

Вторая часть - главы с 6 по 8, обстоятельно рассматривает абстрагирование данных, классы, объекты и перегрузку операций. Эту часть можно по праву назвать Программирование с объектами .

Третья часть - главы 9 и 10, излагает наследование, виртуальные функции и полиморфизм, т.е. основы истинного объектно-ориентированного программирования.

Следующая часть - главы 11 и 14, описывает ввод-вывод, ориентированный на потоки в стиле С++, включая потоки ввода-вывода клавиатуры, экрана, файлов и массивов символов; обсуждается обработка файлов как последовательного, так и произвольного доступа.

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

Следующая часть - глава 15, подробно излагает динамические структуры данных, такие, как связные списки, очереди, стеки и деревья.

Последняя часть основного текста - главы с 16 по 18, обсуждает различные темы, включая манипуляции с битами, символами и строками, препроцессор, а также разнообразные Другие темы .

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

Теперь давайте рассмотрим каждую главу в отдельности.

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

Глава 2, Управляющие структуры , знакомит с понятием алгоритма решения задачи. Объясняется важность эффективного использования управляющих структур в создании программ, которые понятны, легко отлаживаются, поддерживаются и с большой вероятностью работают с первой попытки. Глава знакомит со структурами следования, выбора (if, if/else и switch) и



повторения (while, do/while и for). В ней подробно исследуется повторение и сравниваются варианты циклов, управляемых счетчиком и меткой. Глава объясняет методику нисходящей пошаговой детализации, которая является ключевой для создания хорошо структурированных программ, и представляет популярное средство построения программ - псевдокод. Методы и подходы, используемые в главе 2, способствуют эффективному применению управляющих структур в любом языке программирования, а не только в С++. Эта глава помогает студенту выработать навыки качественного программирования в преддверии более серьезных задач, с которыми он встретится далее. Глава завершается рассмотрением логических операций && (И), (ИЛИ) и ! (НЕ).

Глава 3, Функции , посвящена проектированию и построению программных модулей. Возможности С++, относящиеся к функциям, включают функции стандартной библиотеки, функции, определяемые программистом, рекурсию, вызовы по значению и по ссылке. Методики, представленные в главе 3, существенны для построения правильно структурированных программ, особенно тех больших программ, которые будущие системные и прикладные программисты будут по все вероятности разрабатывать в реальной жизни. Рассматривается стратегия разделяй и властвуй как эффективное средство решения сложных проблем путем разделения их на более простые взаимодействующие компоненты. Студенты с удовольствием изучают случайные числа и моделирование, они ценят рассмотрение азартных игр, элегантно использующее управляющие структуры. Глава предлагает основательное введение в рекурсию и содержит таблицу, в которой перечислены десятки примеров и упражнений по рекурсии, содержащихся в остальной части книги. Некоторые учебники рассматривают рекурсию лишь в последней главе; мы же считаем, что эту тему лучше раскрывать постепенно на протяжении всего курса. Обширный набор из 60 упражнений в конце главы включает несколько классических рекурсивных задач, как, например, задача о Башнях Ханоя. Глава рассматривает так называемые расширения С++ языка С , включая встраиваемые функции, ссылочные параметры, аргументы по умолчанию, унарную операцию разрешения области действия, перегрузку функций и шаблоны функций.

Глава 4, Массивы , описывает структурирование данных в массивы или группы связанных элементов одного типа. В главе приводятся многочисленные примеры одномерных и двумерных массивов. Общепризнанно, что правильное структурирование данных столь же важно в разработке хорошо структурированных программ, как и эффективное использование управляющих структур. Примеры, приведенные в главе, посвящены распространенным операциям с массивами, печати гистограмм, сортировке данных, передаче массивов функциям и введению в область анализа данных обследований (с простой статистикой). Особенностью этой главы является рассмотрение элементарных методик сортировки и поиска, представление двоичного поиска как радикальной альтернативы линейного поиска. 38 упражнений в конце главы включают набор интересных и перспективных задач, таких, как улучшенные методики сортировки, проектирование системы бронирования билетов на авиалинии, введение в основы построения траектории черепахи (прославившейся в языке LOGO), задачи Путешествие коня и Восемь ферзей, которые знакомят с понятиями эвристического программирования, широко используемого в области искусственного интеллекта. Упражнения завершаются восемью рекусивными задачами, включая сортировку отбором, палиндромы, линейный поиск, двоичный поиск, задачу Восьми ферзей, распечатку



массива, обратную распечатку строки и нахождение минимального значения в массиве.

Глава 5, Указатели и строки , описывает одно из наиболее мощных средств языка С++. Глава дает детальное объяснение операций с указателями, вызова по ссылке, выражений с указателями, арифметики указателей, связи указателей с массивами, массивов указателей и указателей функций. В С++ существует тесная связь между указателями, массивами и строками; поэтому мы знакомим с основами работы со строками и обсуждаем наиболее часто применяемые при этом функции, а именно, getlin (ввод строки текста), strcpy и strncpy (копирование строки), strcat и strncat (сцепление двух строк), stremp и strncmp (сравнение двух строк), strtok (разбиение строки на лексемы) и strlen (вычисление длина строки). 49 упражнений этой главы включают классическую гонку черепахи и зайца, алгоритмы тасования и раздачи карт, рекурсивную быструю сортировку и рекурсивное блуждание по лабиринту. Включен также специальный раздел, озаглавленный Построение вашего собственного компьютера . Этот раздел объясняет принципы программирования на машинном языке и предлагает спроектировать и реализовать моделирующую программу, позволяющую читателю писать и выполнять программы на машинном языке. Это уникальное задание будет особенно полезно читателю, который хочет понять, как в действительности работают компьютеры. Нашим студентам этот проект очень нравится и они часто предлагают существенные усовершенствования его; многие из этих усовершенствований мы переадресовали читателю в упражнениях. В главе 15 другой аналогичный специальный раздел помогает читателю построить свой компилятор; программа на машинном языке, построенная этим компилятором, может затем выполняться с помощью моделирующей программы, созданной в главе 5. Информация от компилятора к моделирующей программе передается через файл последовательного доступа (см. главу 14). Второй специальный раздел главы 5 включает упражнения на операции со строками, связанные с анализом текста, обработкой слов, печатью дат в различных форматах, защите чеков, написанию словесного эквивалента суммы чека, азбуке Морзе и переводу метрических мер в английскую систему мер.

Глава 6, Классы и абстрагирование данных , начинает серьезное рассмотрение объектов. Глава предоставляет прекрасную возможность обучения правильному абстрагированию данных с помощью языка (С++), специально предназначенного для реализации абстрактных типов данных (АТД). В последние годы абстрагирование данных стало важной темой вводных компьютерных курсов. Главы 6, 7 и 8 содержат цельное изложение абстрагирования данных. В главе 6 рассматривается реализация АТД в виде структур struct, в виде классов в стиле С++, доступ к элементам классов, разделение интерфейса и реализации, использование функций доступа и функций-утилит, инициализация объектов конструкторами, уничтожение объектов деструкторами, присваивание по умолчанию побитовым копированием и повторное использование программного обеспечения. Упражнения главы предлагают студентам разработку классов комплексных чисел, рациональных чисел, времени, дат, прямоугольников, больших целых чисел и для игры в тик-так-тоу. Студентам обычно нравятся игровые программы.

Глава 7, Классы, часть П , продолжает изучение классов и абстрагирования данных. В главе рассматриваются объявление и использование константных объектов, константные функции-элементы, композиция - процесс создания классов, содержащих в качестве элементов объекты других классов,



1 ... 7 8 9 [ 10 ] 11 12 13 ... 342

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика