Программирование
Геологический факультет МГУ, кафедра сейсмометрии и геоакустики, тел. 939-33-42.
Автор - асс. Марченко Антон Леонардович.
Курс читается в 3 и 4 семестрах для студентов специальности 011200-геофизика.
Объем курса - 90 часов, лекции - 30 часов, практические занятия - 60 часов.
Форма контроля. Прием практических работ с собеседованием; зачеты в 3 и 4 семестрах.
Аннотация. Курс посвящен языку программирования C++ и основам объектно-ориентированного программирования.
Содержание курса
1. Базовые понятия
Организация памяти ЭВМ. Виртуальная модель памяти. Процессор ЭВМ. Системы счисления и алгоритмы преобразования. Преобразование дробной части вещественного числа. Дополнительный код. Язык и грамматика. Формы Бэкуса-Наура. Грамматика и проблема смысла. Развитие языков программирования. Основные характеристики языков программирования. Типы данных. Контроль типов. Семантика языка. Транслятор. Компоновщик. Тип компоновки.
2. Структура операторов языка C++
Алфавит C++. Правила образования идентификаторов. Ключевые слова и имена C++. Операции и знаки пунктуации. Литералы. Структура предложения C++. Объекты и переменные. Основные типы C++. Комментарии. Объявление и определение переменных и констант. Перечень операций. Приоритет операций и скобочная структура выражений. Разделители. Первичное выражение. Постфиксное выражение. Унарное выражение. Выражение приведения. Выражения с указателями. Мультипликативные выражения. Аддитивтивные выражения. Выражения сдвига. Выражения отношения. Выражения равенства. Побитовые выражения. Логические выражения. Выражения присваивания. Выражения с операцией запятая. Константные выражения. Выражение и l-выражение.
3. Структура программы C++
Операторы C++. Программа. Модули и сегменты. Программный модуль. Атрибуты объектов: класс памяти. Объявление переменных. Область действия имени. Пространство имен и область видимости объекта. Время жизни объекта. Глобальные переменные и константы. Помеченный оператор. Оператор перехода. Оператор return. Выбирающий оператор. Операторы цикла. Оператор continue как средство управления циклом. Определение указателя. Указатели на константу и константные указатели. Ссылки. Специальный тип void. Массивы. Синтаксис объявления. Константные выражения. Основные свойства массивов. Способы навигации. Массив и константный указатель. Массивы и операция sizeof. Массив констант. Многомерный массив. Многомерные массивы и указатели. Символьная строка. Препроцессор. Директива препроцессора define. Директива include. Управление препроцессором. Функциональные макроопределения. Предопределенные макроопределения. Перечисления. Функция. Прототип. Предварительная инициализация параметров функции. Вызов функции. Точка вызова и точка возврата. Функции с переменным количеством параметров. Размещение параметров.
4. Объектно-ориентированное программирование в C++
Механизмы преобразования основных типов данных в C++. Список средств порождения производных типов. typedef-объявление. Тип функции и указатель на функцию. Класс. Объявление класса. Объединения. Область видимости класса. Встроенные функции. Интерфейс класса. Совместно используемые функции. Инициализация объекта класса. Конструкторы. Основные свойства. Переопределение конструктора. Инициализация объекта: параметры и инициализаторы. Конструктор копирования. Конструкторы преобразования и преобразующие функции. Операция new и порождение объектов. Удаление объектов и освобождение памяти. Деструкторы. Массивы объектов. Указатель this. Статические члены класса. Наследование. Базовые и производные классы. Инкапсуляция и управление доступом. Характеристики уровней доступа. Друзья класса. Указатели на объекты. Виртуальные функции. Чистые виртуальные функции и абстрактные классы. Виртуальные деструкторы. Множественное наследование. Виртуальные классы. Вложенные классы. Операторные функции. Шаблоны функций и классов. Ввод-вывод в C++. Работа с файлами. Механизмы обработки исключительных ситуаций.
Практические занятия
Практические занятия преследуют две цели:
1. Выработку навыков самостоятельной работы с вычислительной техникой, освоение методов работы в среде DOS и Windows.
2. Закрепление лекционного материала. С этой целью предполагается ознакомление слушателей с компилятором Borland C++, самостоятельное написание не менее пяти программ различной сложности в каждый семестр. Предполагается, что это будут программы, в которых методы объектно-ориентированного программирования используются для решения задач, связанных с организацией ввода-вывода, работой с массивами и указателями, реализацией вычислительных алгоритмов и алгоритмов сортировки.
Литература
Бабэ Бруно. Просто и ясно о Borland C++. М., БИНОМ, 1994.
Джамса К. Учимся программировать на языке C++. М., Мир, 1997.
Подбельский В.В. Язык C++. М., Финансы и статистика, 1995.
Пол И. Объектно-ориентированное программирование с использованием C++. Киев, НИИПФ ДиаСофт Лтд, 1995.
Сван Т. Освоение Borland C++ 4.5. Киев, Диалектика, 1996.
Стенли Б. Липпман. C++ для начинающих. Т.1,2. М., Унитех; Рязань, Гэлион, 1992.
Сэвитч У. C++ в примерах. М., ЭКОМ, 1997.
Фейсон Т. Объектно-ориентированное программирование на Borland C++ 4.5. Киев, Диалектика, 1996.
Шилдт Г. Самоучитель C++. С.-Пб, BHV-С.-Пб., 1997.
Эллис М., Строуструп Б. Справочное руководство по языку C++ с комментариями. М., Мир, 1992.
|