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

1 ... 5 6 7 [ 8 ] 9 10 11 ... 342


Предисловие

Добро пожаловать в мир С++! Эта книга создана двумя авторами - один из них в возрасте, другой молодой. Старший (Харви М. Дейтел; Массачу-сетский Технологический институт, 1967) занимался программированием и преподавал его более 30 лет. Младший (Пол Дж. Дейтел; Массачусетский Технологический институт, 1991) занимался программированием около десяти лет и обнаружил немало дефектов в учебниках и методике преподавания. Старший компаньон программирует и преподает исходя из своего опыта; младший - из неистощимого источника энергии. Старший жаждет четкости; младший - эффективности. Старший ценит элегантность и красоту; младший - результаты. Мы объединились, чтобы создать книгу, которую, как мы надеемся, сочтут информативной, интересной и занимательной.

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

С++ начинает заменять С как один из языков разработки систем в промышленности и есть основания считать, что С++ станет доминируюш;им языком в середине - конце 90-ых годов. Харви Дейтел преподает вводные курсы программирования в университетах на протяжении двух десятилетий, подчеркивая необходимость разработки ясных и хорошо структурированных программ. Значительное внимание в этих курсах уделялось основным принципам программирования с упором на эффективное использование управляющих структур и функционализацию. Мы представили этот материал точно в таком виде, в котором Харви Дейтел делает это в своих университетских курсах. Есть, конечно, определенные камни преткновения, но там, где они встречаются, мы честно указываем их и приводим процедуры, эффективно их обходящие. Наш опыт говорит, что студенты воспринимают курс по С++ примерно так же, как и вводные курсы по Паскалю или С. Хотя есть одна заметная разница: у студентов очень высока мотивация к изучению передового языка, каким является С++, v передовых принципов программирования (объектно-ориентированного программирования), которые становятся им полезны, как только они покидают стены университета. Это увеличивает их энтузиазм при изучении материала, что очень помогает, учитывая сложность С++ по сравнению с Паскалем или С.

Наша цель была простой: создать учебник по программированию на С++ для вводных университетских курсов, читаемых студентам с малым опытом программирования или вовсе без такового, но тем не менее мы стремились обеспечить глубину и строгость изложения теории и прикладных вопросов, требуемые в традиционных курсах высокого уровня по С++. Чтобы достичь этих целей, мы создали книгу большего объема, чем другие труды по С++, так как наша книга учит принципам как процедурного, так и объектно-ориентированного программирования. Сотни студентов изучили этот материал в наших курсах. Десятки тысяч студентов во всем мире изучали С и знакомились с С++ по нашей близкой к данной теме книге Как программировать на С , выходящей сейчас вторым изданием.



Введение в объектное ориентирование начинается с главы 1!

Мы столкнулись с серьезной проблемой при создании этой книги. Должна ли книга давать чисто объектно-ориентированный подход? Или же она должна давать смешанный подход, балансируя между процедурным и объектно-ориентированным программированием?

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

Так что мы выбрали следующий подход. Первые пять глав книги знакомят с процедурным программированием на С++. Они описывают принципы программирования, управляющие структуры, функции, массивы, указатели и строки. Эти главы освещают компоненты С ANSI в C-f+ и усовершенствования С, сделанные в С++.

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

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

Главы 6, 7 и 8 освещают абстрагирование данных, классы и перегрузку операций в С++. Эти главы также содержат разделы Размышления об объектах , которые облегчают студентам продвижение через различные стадии программирования их лифтов на С+-Ь.

Теперь приведем детальный обзор остальных частей книги.

Об этой книге

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



Эта книга написана двумя преподавателями, которые большую часть своего времени заняты обучением по актуальным для практики темам в университетских курсах и на семинарах для профессионалов. Книга решает прежде всего задачи обзения. Например, фактически по каждой новой теме как С++, так и объектно-ориентированного программирования, приводится законченная рабочая программа на С++ и тут же показывается результат ее выполнения. Чтение этих программ весьма похоже на их ввод в компьютер с последующим прогоном.

Среди других педагогических приемов книга содержит:

цели и план каждой главы;

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

алфавитные перечни терминов в каждой главе;

вопросы для самопроверки и ответы на них в каждой главе;

наиболее богатое собрание упражнений среди всех учебников по С++.

Упражнения варьируются от простых вопросов на повторение пройденного до серьезных задач программирования и крупных проектов. Преподаватели, ищущие темы для курсовых проектов, найдут много подходящих задач в упражнениях глав 3-18. Мы вложили много труда в эти упражнения, чтобы повысить ценность курса для студентов. Имеется пособие для преподавателя на дискетах в форматах PC и Макинтош с программами, встречающимися в основном тексте, и ответами на почти все вопросы, помещенные в конце глав (к данному изданию эти дискеты не прилагаются - прим. ред.).

При написании этой книги мы использовали варианты компиляторов С++, работающие на рабочих станциях Sun SPARCstation, компьютерах Apple Macintosh (Symantech Си++), IBM PC (Turbo С++, Borland С++, CSET++ фирмы IBM и Microsoft C/C++ версии 7 и Visual С++) и DEC VAX/VMS (DEC С++). Большая часть программ из текста книги будут работать на всех этих компиляторах при незначительной их модификации или вовсе без таковой. Мы публикуем версии, разработанные нами на Borland С++.

Этот текст следует предварительному стандарту ANSI на Си++. Если вам нужны дополнительные подробности о языке, смотрите справочные пособия для вашей конкретной системы или достаньте копию Рабочего документа по предлагаемому предварительному международному стандарту для информационных систем - языку программирования С++ в Американском Национальном Институте Стандартов (ANSI) по адресу: СВЕМА, 1250 Eye Street, NW, Suite 200, Washington DC 20005. Мы использовали различные материалы из этого документа по разрешению специально выданному нам ANSI/CBEMA. Ниже следует ссылка на это разрешение.

Приведенный здесь материал взят из рабочего документа по предлагаемому предварительному Американскому Национальному Стандарту - языку программирования С++. Работы по его утверждению и техническому развитию ведутся Аккредитованным Комитетом Стандартов ХЗ, Информационной Технологией и ее Техническим комитетом ХЗЛб, Язык Программирования С++, соответавенно. Для дальнейших подробностей связывайтесь с Секретариатом ХЗ, 1250 Eye Streer°WW7 Washingl!on,-- C 20 005.



1 ... 5 6 7 [ 8 ] 9 10 11 ... 342

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