Учебно-методический комплекс учебной дисциплины сдм. 02 «программирование» подготовки магистров по направлению 050200 «Физико-математическое образование» магистерская программа «Информатика в образовании»

Вид материалаУчебно-методический комплекс

Содержание


Примерные темы практических работ
Вопросы для контроля самостоятельной работы
Основные понятия дисциплины
Рекомендуемая литература
Подобный материал:
1   2   3   4   5   6
Примерные темы практических работ
  1. Составление простейших программ для освоения операций ввода-вывода и инструкций языка.
  2. Решение задач на использование условных и циклических операторов.
  3. Решение задач на использование оператора выбора.
  4. Массивы и сортировки.
  5. Массивы и указатели.
  6. Строки и ссылки.
  7. Использование функции и рекурсии.
  8. Структуры.
  9. Однонаправленный и двунаправленный списки.
  10. Классы и члены.
  11. Работа с файлами

ВОПРОСЫ ДЛЯ КОНТРОЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

  1. Что такое алгоритм. Назовите свойства алгоритма.
  2. СИ++ - язык программирования высокого уровня.
  3. Перечислите основные этапы создания исполняемой программы на языке СИ++.
  4. Что такое директивы препроцессора в СИ++?
  5. Перечислите виды программных ошибок.
  6. Что такое массив и как с ними работать? Использование датчика случайных чисел для формирования массива.
  7. Перечислите классы задач по обработке массивов.
  8. Перечислите операции с указателями.
  9. Что такое ссылки, строки, указатель?
  10. Функции в СИ++.
  11. Дайте определение локальных и глобальных переменных.
  12. Что представляют однонаправленные и двунаправленные списки?
  13. Что такое стек и очередь?
  14. Приведите примеры разработки, реализации и использования классов.
  15. Дополнительные свойства классов.
  16. Что такое конструкторы и деструкторы?
  17. Как работают с файлами?



ОСНОВНЫЕ ПОНЯТИЯ ДИСЦИПЛИНЫ

(термины)

ANSI – Национальный институт стандартизации США. ANSI C++ - это спецификация, которая необходима компиляторам C++ для поддержки полных, обновленных и корректных версий языка C++. ANSI C++ включает определенное количество функциональных возможностей, таких как обработка исключительных ситуаций, шаблоны и булевы типы, которых не было в ранних версиях C++.

Абстрактный класс (Abstract class) – класс, который нельзя использовать для создания объектов, но который может быть полезен как общий шаблон (то есть интерфейс) для других классов. В абстрактном классе есть хотя бы одна чисто виртуальная функция.

Адрес (Address) – нумерованная область в памяти, в которой хранится элемент данных или код программы.

Аргумент (Argument) – значение, которое передается функции.

Ассоциативность (Associativity) – правило (или слева направо, или справа налево), которое определяет, как вычислять выражение, состоящее из двух или более операторов с одним и тем же уровнем приоритета.

Базовый класс (Base class) – класс, от которого осуществляется наследование, объявляя подкласс.

Булево выражение (Boolean) – истинное/ложное значение или истинная/ложная операция. В полной версии ANS С++ поддерживается специальный тип bool. Если этот тип не доступен, вы можете использовать тип int для хранения значений истина/ложь. C++ описывает истину и ложь значениями 1 и 0 соответственно, но любое ненулевое значение интерпретируется как истина.

Встраиваемая функция (inline function) – это функция, утверждения которой вставляются в код функции, которая ее вызывает. В нормальном вызове функции управление программы перескакивает на новое место и затем возвращается, когда заканчивается выполнение. Этого не происходит со встраиваемой функцией.

Выражение (Expression) – один из фундаментальных составляющих блоков программы на C++. В общем, выражением является все, что имеет значение.

Глобальная переменная (Global variable) – переменная, используемая более чем одной функцией в модуле, т.е. функциями одного исходного файла.

Данное-член (Data member) – поле данных класса. Если данное-член не объявлен статическим static (об этом ключевом слове не рассказывалось в этой книге), то каждый объект получает свою собственную копию объекта данных.

Деструктор (Destructor) – это функция-член, выполняющая очистку и завершение действий при разрушении объекта.

Директива (Directive) – общая команда компилятору. Директива отличается от выражения тем, что она не объявляет переменных и не создает выполняемый код.

Заголовочный файл (Header file) – это файл объявлений и (опционально) директив; он должен быть включен (при помощи использования директивы #include) в остальные файлы.

Инкапсуляция (Encapsulation) – возможность скрыть или защитить содержимое.

Исключение (Exception) – необычное событие, возникшее в процессе выполнения программы, обычно вследствие ошибки, которое требует немедленной обработки программой.

Исходный файл (Source file) – текстовый файл, содержаний выражения C++ (и директивы, опционально).

Класс (Class) – определенный пользователем тип данных (или тип данных, определенный в библиотеке). В C++ класс можно объявлять, используя ключевые слова class, struct или union.

Когда вы объявляете функцию-член и размещаете ее определение внутри объявления класса, то она автоматически становится встраиваемой.

Код (Code) – еще один синоним слова «программа». Слово «код» подразумевает скорее программистский взгляд на программу, а не взгляд пользователя, который видит только конечный результат рабочего цикла программы. Когда программисты говорят о «коде», они обычно подразумевают исходный код, то есть набор выражений C++, составляющих программу.

Компилятор (Compiler) – языковой транслятор, который считывает вашу C++ программу и выдает машинный код и, в конечном счете, исполняемый файл, который фактически может быть запущен на компьютере.

Константа (Constant) – значение, которое нельзя изменить.

Конструктор (Constructor) – функция-член, которая вызывается при создании объекта. Конструктор «объясняет», как инициализировать объект. Конструктор носит такое же имя, как и класс, в котором он объявлен, и не имеет возвращаемого значения. (Но неявно конструктор возвращает экземпляр класса).

Литерная константа (Literal constant) – численная или строковая константа, в отличие от символического имени, которое может стать константой (при помощи использования ключевого слова const).

Локальная переменная (Local variable) – переменная, которая является закрытой (private) для определенной функции или блока утверждения. Ее преимущество состоит в том (например), что каждая функция может иметь собственную переменную х, но изменения х внутри одной функции не будет путаться со значением х другой функции. Эта особенность - вариант права функции на закрытость - является ключевым моментом современных языков программирования.

Массив (Array) – структура данных, состоящая из нескольких элементов, которые имеют одинаковый тип. Доступ к элементам осуществляется через индексный номер.

Наследование (Inheritance) – возможность предоставлять классу атрибуты другого, ранее объявленного класса. Это осуществляется посредством создания подклассов. Новый класс автоматически содержит все члены, объявленные в базовом классе. (Исключение: класс не наследует конструкторы).

Непрямой (доступ) (Indirection) – доступ к данным, через указатель.

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

Объявление (Declaration) – выражение, предоставляющее информацию о типе переменной, класса или функции. Объявление функции может быть или прототипом (который содержит только информацию о типе), или описанием (в котором описывается, что именно делает функция). В C++ каждая переменная и функция, кроме функции main, должна быть объявлена до ее использования.

Операнд (Operand) – выражение, участвующее в операции. Один или более операндов объединяются для формирования более сложных выражений.

Оператор (Operator) – символ, который объединяет одно или более выражений в более сложное выражение. Некоторые операторы являются унарными; это означает, что они могут быть применены только к одному операнду. Существуют также бинарные операторы; это означает, что они могут, объединять два операнда.

Описание, функция (Definition, function) – последовательность выражений, описывающих работу функции. Во время выполнения функции управление программой передается этим выражениям.

Переменная (Variable) – именованная ячейка для хранения данных программы.

Плавающая точка (Floating point) – формат данных, который может хранить как дробные части чисел, так и сами числа в более широком диапазоне, чем целочисленные форматы (int, char, short, long). В компьютере числа с плавающей точкой хранятся в двоичном формате (основа 2) и отображаются в десятичном виде. Основной тип с плавающей точкой в C++ - это double, который соответствует «двойной точности».

Подкласс (Subclass) – класс, который наследуется от другого класса. Подкласс автоматически включает все члены базового класса, кроме его конструкторов. Любые явные объявления в подклассе создают дополнительные или подмененные члены.

Приведение (Cast) – операция, которая изменяет тип данных выражения.

Приоритет (Precedence) – правила, определяющие, какие операции должны выполняться первыми в сложном выражении.

Прототип (Prototype) – объявление функции, в котором указывается только информация о типе. (Это не объявление.)

Реализация (Implementation) – это слово имеет множество различных значений в разных контекстах; но в C++ это слово обычно относится к определению функции для виртуальной функции.

Ссылка (Reference) – переменная или аргумент, который служит дескриптором другой переменной или аргумента.

Строка (String) – последовательность текстовых символов, которую можно использовать для представления слов и фраз или даже полных предложений.

Строковый литерал (String literal) – текстовая строка, заключенная в кавычки и представляющая собой постоянную строковую величину. Когда компилятор C++ видит строковый литерал, он сохраняет символы в сегменте данных, а затем при обработке кода заменяет строковый литерал адресом данных.

Указатель (Pointer) – переменная, содержащая адрес другой переменной. (Указатель также может быть установлен на NULL, в этом случае он ни на что не указывает.)

Утверждение (Statement) – основной элемент синтаксиса программы C++. Утверждение C++ можно считать аналогом команды или предложения естественного языка, такого как английский. Как и длина предложения, длина выражения C++ не фиксирована. Оно может быть прервано в любой момент, как правило, точкой с запятой. Определение функции состоит из последовательности утверждений.

Функция (Function) – группа утверждений, выполняющих какую-либо задачу. Количество действий, которые может выполнять функция, не ограничено, но в идеале все действия, осуществляемые определенной функцией, должны быть направлены на решение одной какой-либо задачи.

Функция-член (Member function) – функция, объявленная внутри класса. Функции-члены (иногда называемые «методами» в других языках) - это важный аспект объектно-ориентированного программирования. Они определяют операции над объектами класса.


РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА

Основная
  1. Подбельский В.В. Язык Си++: Учеб. пособие. – 5-е изд. – М.: Финансы и статистика, 2003. – 560 с.: ил.
  2. Савич У. Программирование на Си++. 4-е изд. – СПб.: Питер; Киев: Издательская группа BHV, 2004. – 781 с.: ил.
  3. Оверленд Брайан С++ без страха: [учеб. пособие: пер. с англ.] – М.: Изд-во Триумф, 2005. – 432 с.: ил.
  4. Астахова, И.Ф Язык C+: Пробное учебное пособие / ВГУ., Воронеж: Б.и., 2001
  5. Франка П. C++. Учебный курс / СПб.: Питер, 2004
  6. Лафоре Р. Объектно-ориентированное программирование в С++/ СПб.: Питер, 2003
  7. Б. Страуструп., Язык программирования C++, 3-е изд./Пер. с англ., М.: «Невский Диалект» — «Издательство БИНОМ», 1999 г. — 991 с., ил.
  8. Березин Б.И., Березин С.Б., Начальный курс С и С++ . – М .: ДИАЛОГ - МИФИ, 1999. –288 с.
  9. Ирэ, Пол. Объектно-ориентированное программирование с использованием C++. Киев: ДиаСофт, 1995.
  10. Лаптев В.В. С++. Экспресс-курс. – СПб.: БХВ-Петербург, 2004. – 512 с.: ил.

Дополнительная
  1. Голуб А.И. С и C++. Правила программирования. – М.: Бином, 1996.-272с.
  2. Дейтел П.Дж., Дейтел X.М. Как программировать на C++. Введение в объектно-ориентированное проектирование с использованием UML / Пер. с англ. – М.: Бином, 2002. – 1152 с.
  3. Кениг Э., My Б. Э. Эффективное программирование на C++. Серия C++ In-Depth, т. 2 / Пер. с англ. – М.: Вильяме, 2002. – 384 с., ил.
  4. Керниган Б.В., Пайк Р. Практика программирования / Пер. с англ. – СПб.: Невский Диалект, 2001. – 381 с., ил.
  5. Липпман С.Б. Основы программирования на C++. Серия C++ In-Depth, т. 1 / Пер. с англ. – М.: Вильяме, 2002. – 256 с., ил.
  6. Павловская Т.А. C/C++. Программирование на языке высокого уровня. – СПб.: Питер, 2002. – 464 с., ил.
  7. Романов Е.Л. Язык Си++ в задачах, вопросах и ответах. Серия Учебники НГТУ. – Новосибирск: НГТУ, 2003. – 428 с.
  8. Сэджвик Р. Фундаментальные алгоритмы на C++. Анализ. Структуры данных. Сортировка. Поиск / Пер. с англ. – К.: ДиаСофт, 2001.
  9. Халперн П. Стандартная библиотека C++ на примерах / Пер. с англ. – М.: Вильяме, 2001. – 336 с., ил.
  10. Хенкеманс Д., Ли М. Программирование на C++ / Пер. с англ. – СПб.: Символ-Плюс, 2002. – 416 с., ил.