|
|||||||||
|
|||||||||
|
|
Специальные ресурсы/Информатика и информационные технологии/Основные понятия и языки программирования
[ Учебные материалы ]
Эта книга предназначена для того, чтобы помочь читателю научиться программировать
на языке "C". Она содержит учебное введение, цель которого - позволить новым пользователям
начать программировать как можно быстрее, отдельные главы по всем основным особенностям
языка и справочное руководство. Обучение построено в основном на чтении, написании
и разборе примеров, а не голой формулировке правил. Примеры, приводимые в книге,
по большей части являются законченными реальными программами, а не отдельными фрагментами.
Все примеры были проверены непосредственно с текста книги, где они напечатаны в виде,
пригодном для ввода в машину. Кроме указаний о том, как сделать использование языка
более эффективным, мы также пытались, где это возможно, проиллюстрировать полезные
алгоритмы и принципы хорошего стиля и разумной разработки.
С/С++. Программирование на языке высокого уровня.
Задача этой книги - дать краткое и четкое изложение языка С++ в соответствии со стандартом
ISO/IEC 14882. Она предназначена для студентов, изучающих язык "с нуля", но будет
полезна и более искушенным в программировании. Цель, которая ставилась при написании
книги - дать правильное представление о возможностях языка С++ и способах их применения,
толчок к дальнейшему изучению этого и других языков программирования и ключ к пониманию
современных объектно-ориентированных технологий.
Контрольные задания по ключевым темам представлены в 20 вариантах, и автор надеется,
что преподаватели оценят проявленную о них заботу.
Абстракция данных и решение задач на С++. Стены и зеркала, 3-е издание.
Книга представляет собой классический учебник для высшей школы, содержащий глубокое
изложение вопросов, связанных с абстракцией и структурами данных, а также их реализацией
на языке С++. Помимо предоставления прочных основ методов абстракции данных, в ней
особо подчеркивается различие между спецификацией и реализацией, что является принципиально
важным в объектно-ориентированном подходе. В книге подробно обсуждаются ключевые
понятия объектно-ориентированного программирования, включая инкапсуляцию, наследование
и полиморфизм, однако в центре внимания всегда находится именно абстракция данных,
а не синтаксические конструкции языка С++.
Книга будет полезна всем, кто заинтересован в глубоком изучении важнейших аспектов
ООП и полном освоении соответствующих возможностей языка С++.
Оглавление
Предисловие................................................................................13
ЧАСТЬ 1. МЕТОДЫ РЕШЕНИЯ ЗАДАЧ..............................................................23
Глава 1. Принципы программирования и разработки программного обеспечения...................24
Глава 2. Рекурсия: зеркала.................................................................69
Глава 3. Абстракция данных: стены.........................................................123
Глава 4. Связанные списки.................................................................169
Глава 5. Рекурсивный метод решения задач..................................................236
ЧАСТЬ 2. РЕШЕНИЕ ЗАДАЧ С ПОМОЩЬЮ АБСТРАКТНЫХ ТИПОВ ДАННЫХ.................................267
Глава 6. Стеки............................................................................268
Глава 7. Очереди..........................................................................319
Глава 8. Особенности языка С++............................................................358
Глава 9. Эффективность алгоритмов и сортировка............................................408
Глава 10. Деревья.........................................................................455
Глава 11. Таблицы и очереди с приоритетами................................................535
Глава 12. Эффективные реализации таблиц...................................................579
Глава 13. Графы...........................................................................645
Глава 14. Методы работы с внешними запоминающими устройствами.............................681
Приложение А. Основы языка С++............................................................719
Приложение Б. ASCII-коды символов.........................................................788
Приложение В. Заголовочные файлы и стандартные функции в языке С++........................790
Приложение Г. Метод математической индукции...............................................795
Приложение Д. Стандартные шаблонные классы................................................800
Приложение Е. Операторы языка С++.........................................................803
Словарь терминов..........................................................................806
Ответы на вопросы для самопроверки........................................................825
Предметный указатель......................................................................844
Очень небольшое руководство по языку программирования C.
Генерация высококачественного кода для программ, написанных на СИ
Хотя все компиляторы с языка Си предназначены для генерации наиболее быстрых и компактных
программ, качество оптимизации кода у них может быть совершенно различное.
История языка C/C++. Пример использования
Благодаря чему сложился такой статус языка С? Исторически этот язык неотделим от
операционной системы Unix, которая в наши дни переживает свое второе рождение. 60-е
годы были эпохой становления операционных систем и языков программирования высокого
уровня. В тот период для каждого типа компьютеров независимо разрабатывались ОС и
компиляторы, а нередко даже свои языки программирования (вспомним, например, PL/I).
В то же время, общность возникающих при этом проблем уже стала очевидной. Ответом
на осознание этой общности стала попытка создать универсальную мобильную операционную
систему, а для этого понадобился не менее универсальный и мобильный язык программирования.
Таким языком стал С, а Unix стала первой ОС, практически полностью написанной на
языке высокого уровня....
@C++ и Java: совместное использование
Язык JAVA во многом произошел от С/С++, у которых были позаимствованы синтаксис и
базовая семантика. Однако связь между ними не ограничивается только этим. Используя
JNI (JAVA NATIVE INTERFACE), можно вызывать С/С++-функции из JAVA-программы и, наоборот,
из программы, написанной на С/С++, можно создавать JAVA-объекты и вызывать JAVA-методы.
Несмотря на то, что использование JNI в большинстве случаев ведет к потере многоплатформенности
JAVA-кода, данная возможность расширяет сферу применения самого языка JAVA на приложения,
для которых это условие не является необходимым. В таких системах использование JNI
позволяет сочетать современный объектно-ориентированный подход JAVA - главное преимущество
этой технологии, с существующим (LEGACY) системно-зависимым (PLATFORM SPECIFIC) кодом
на С/С++. Это является важным и необходимым условием перехода к использованию JAVA-технологии
при разработке компонентов сервера.
Описан универсальный язык программирования Си. Приве-
дены структура и синтаксис языка, правила написания прог-
рамм, даны начальные сведения о взаимодействии программ на
Си с операционной системой Демос
C++Builder предназначен для быстрой разработки приложений (RAD), построенных на современном
фундаменте объектно-ориентированного программирования (ООП). C++Builder сам постепенно
будет помогать вам овладевать премудростями RAD, ООП и языка C++, поначалу требуя
лишь минимальных предварительных знаний. Ваши навыки будут расширяться по мере роста
сложности ваших разработок: чем сложнее задача, тем больший по объему код потребуется
написать для ее реализации. Получение знаний перестает быть самоцелью. Вы сами убедитесь
в том, что C++Builder в корне меняет процесс разработки насколько легче и быстрее
вы сможете получать работающие и надежные программы для операционных систем Windows,
чем при использовании традиционных интерфейсных оболочек других систем.
Особенности мобильного программирования на языке Си
Особая роль языка программирования Си состоит в том, что он, с одной стороны, позволяет писать для UNIX-систем практически столь же эффективный код, что и языки ассемблера, а с другой, является основным средством переноса программ между UNIX-системами. Можно сказать, что Си является машинно-независимым языком ассемблера для UNIX-систем.Однако, если говорить о переносимости программ между компьютерами с разной архитектурой, имея в виду использование языка Си (не слишком высокого уровня), то нужно учитывать ряд требований, которым должна удовлетворять программа.
В этой книге содержатся фундаментальные материалы, связанные с организацией, сортировкой и поиском данных в основной и внешней памяти. Соответствующие знания необходимы программистам всех уровней (от разработчиков простых прикладных программ до создателей сложнейших систем), квалифицированным пользователям программных продуктов, которые хотят хорошо понимать суть происходящего и, конечно, преподавателям разнообразных компьютерных дисциплин и их студентам.
Методы сортировки и поиска (Часть первая)
В этой книге содержатся фундаментальные материалы, связанные с организацией, сортировкой и поиском данных в основной и внешней памяти. Соответствующие знания необходимы программистам всех уровней (от разработчиков простых прикладных программ до создателей сложнейших систем), квалифицированным пользователям программных продуктов, которые хотят хорошо понимать суть происходящего и, конечно, преподавателям разнообразных компьютерных дисциплин и их студентам.
Методы сортировки и поиска (Часть первая)
В этой книге содержатся фундаментальные материалы, связанные с организацией, сортировкой и поиском данных в основной и внешней памяти. Соответствующие знания необходимы программистам всех уровней (от разработчиков простых прикладных программ до создателей сложнейших систем), квалифицированным пользователям программных продуктов, которые хотят хорошо понимать суть происходящего и, конечно, преподавателям разнообразных компьютерных дисциплин и их студентам.
Структура множественного выбора.
Сегодня мы рассмотрим управляющую структуру: структуру множественного выбора. Оператор структуры множественного выбора называется switch. Такая структура тоже в конечном итоге структура ветвления, но если if – это разделение пути надвое («да»- мы идем в одну сторону, «нет»- в другую), то switch – это разветвление на большее число вариантов, нежели 2. Ивана- царевича вспомнили? Налево пойдешь- по голове получишь, но жив останешься, направо пойдешь- коня потеряешь, ну а если прямо пойдешь… сами помните. Собственно это типичный вариант структуры множественного выбора.
Структура выбора (оператор if)
Описание алгоритма обработки событий с помощью структуры выбора. В данном случае рассматривается действие оператора if.
Понятие об алгоритмах. Псевдокод. Блок-схемы.
Понятие алгоритма. Что это такое. Что важнее алгоритм, с помощью которого пишется программа, или язык? Ответ в этой статье.
В языке С при объявлении переменных ОБЯЗАТЕЛЬНО необходимо указывать соответствующие этим переменным типы. Какие же они бывают? Ответ Вы найдёте в этой статье.
Вы не знаете, что такое инкремент? А что такое декремент?
Это операторы, которые используются тогда, когда Вам нужно увеличить или уменьшить определённое значение в таком виде int a; a++ ...
Но тут следует обговорить некоторые детали использования таких преобразований.
Простые программы. Ввод данных. Комментарии.
Данная статья адресована в большей степени для новичков.
Рассматриваются основы написания интерактивных программ (программы, в которых пользователь принимает непосредственное участие, вводя какие-либо данные.)
Внутренняя форма представления данных в компьютере и недесятичные системы счисления.
Хранение данных
Любой программист рано или поздно сталкивается с проблемой хранения данных в компьютере. Как именно хранятся данные? В чем разница между типами данных? Что происходит, когда один тип преобразуется в другой? Наконец, почему иногда в программах 120+10 дает 130, а иногда - -126 ???
Ответы на эти и некоторые другие вопросы в данной статье.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Copyright © 2003 «Инженерное образование» E-mail: techno@bmstu.ru | тел.: +7 (095) 263-68-63 |
|