
ПРОГРАММА ДИСЦИПЛИНЫ
Программирование на языке С++
для направления 080700.62 «Бизнес-информатика»
Утверждена Учебно-методическим Советом ПФ ГУ-ВШЭ Председатель_______________ «_______»________________________2010 г. | Одобрена на заседании кафедры Информационных технологий в бизнесе протокол _____________________________ Зав. кафедрой_______________ «______»_______________________2010 г. |
Пермь 2010 год
I. Пояснительная записка
1. Автор программы: к. т. н.
2. Требования к студентам:
Для успешного изучения данного курса студенты должны владеть основными знаниями и навыками, полученными при изучении курса Информатика и программирование на первом курсе: знать принцип организации и функционирования персонального компьютера в различных режимах, характеристики его основных устройств, принципы организации компьютерных сетей, и иметь навыки работы в среде программирования, основные операторы языка Паскаль, стандартные типы данных, структурированные типы данных и принципы их обработки.
3. Аннотация:
Дисциплина предназначена для студентов второго курса направления 080700.62 Бизнес – информатики. Основная цель курса состоит в том, чтобы дать студентам краткое и четкое изложение языка С++ в соответствии со стандартом ISO/IEC 14882, дать правильное представление о возможностях С++ и способах их применения.
Программа курса предполагает проведение лекционных и практических занятий, а также самостоятельную работу студентов при выполнении практических занятий в классе, оборудованном IBM-совместимыми компьютерами.
Лекционный курс охватывает основные вопросы использования С++ при решении практических задач работы со структурированными типами данных, создания многомодульных приложений, дает ключ к дальнейшему изучению объектно-ориентрованных технологий программирования.
Проведение практических занятий предполагает написание программ в компьютерном классе.
Обязательное программное обеспечение, используемое при изучении данного курса: операционная система Microsoft Windows XP со справочной системой, среда разработки Visual Studio 2008(2010)
4. Учебная задача курса:
В результате изучения курса студенты должны:
· Знать
- основные элементы язык программирования С++;
- последовательность и этапы разработки прикладных программ;
- принципы, методы и способы написания и отладки программ;
· Уметь
- программировать на языке С++;
- программировать основные алгоритмы обработки данных;
- разрабатывать программы в современных инструментальных средах.
· Иметь представление:
- об основах структурного программирования;
- об основах конструирования программ.
· Обладать навыками
- работы в современных инструментальных средах программирования.
· Владеть
- приемами и методами структурного программирования;
- приемами и методами тестирования и отладки программ
5. Формы контроля:
· текущий контроль: выполнение практических работ по каждой теме курса завершается проведением домашней работы;
· итоговый контроль заключается в проведении зачета в форме контрольной работы;
· итоговая оценка складывается из результатов, полученных в ходе текущих контрольных мероприятий, оценки работы на практических занятиях и оценки, полученной при проведении зачета в соответствии с положением о рейтинге.
II. Содержание программы:
Раздел I. Простые С++ программы.
Тема 1. Основные элементы языков программирования.
Языки программирования. Классификация языков программирования. Языки программирования высокого уровня. Программа на языке программирования высокого уровня. Элементы языка С++. Структура С++-программы. Функция main. Препроцессор.
Концепция типов данных в программировании. Типы данных в С++. Простые и структурированные типы. Встроенные типы данных. Преобразование типов. Выражения. Операции.
Представление основных структур управления: итерация, ветвление, повторение, процедуры. Основные операторы: условный, выбора, цикла, составной, пустой. Ввод - вывод.
Тема 2. Хранение и обработка информации в структурах данных.
Производные типы. Массивы. Определение и инициализация массивов. Формирование массивов. Способы перебора массивов. Классы задач с использованием массивов. Простые методы сортировки. Дихотомический поиск в отсортированном массиве.
Указатели. Адресная арифметика. Динамическая память. Ссылки. Массивы и указатели. Динамические массивы.
Символьные строки. Строки в стиле С. Строки в стиле С++ (string).
Раздел II. Организация программ.
Тема 3. Функции в С++.
Способы конструирования программ. Процедуры и функции. Формальные и фактические параметры.
Функции в С++. Определение. Прототип. Способы передачи параметров. Функции с переменным количеством параметров. Подставляемые (inline) функции. Передача массивов в функции. Перегрузка функций. Шаблоны функций. Указатели на функцию. Передача функции в качестве параметра.
Рекурсивные функции.
Модульность. Многомодульные программы. Область действия имен. Раздельная компиляция.
Тема 4. Типы данных, определяемые пользователем.
Переименование типов. Перечисления. Структуры и объединения в С++.
Динамические структуры данных.
Списки. Виды списков. Способы реализации списков. Основные операции со списками: создание, просмотр, удаление, добавление, поиск. Стек и очередь.
Бинарные деревья. Дерево поиска. Построение и обход дерева. Удаление и добавление элементов.
III. Учебно-методическое обеспечение дисциплины:
1. Литература:
Базовый учебник:
С/С++ Программирование на языке высокого уровня. – СПБ.: БХВ - Питер, 20Доп. МО РФ
Основная:
Подбельский Си++: Учеб. пособие.–М.:Финансы и статистика, 2008.–687с.
Дополнительная
Плаксин и отладка программ – для профессионалов будущих и настоящих. М.: БИНОМ. Лаборатория базовых знаний, 2007.
Анисимов А. Е., Пупышев заданий по основаниям программирования: Учеб. пособие. М.: 20с.
2. Тематика заданий по различным формам текущего контроля:
Приложение 1. Тематика домашнего задания.
Приложение 2. Вопросы для самоконтроля.
3. Методические рекомендации (материалы) преподавателю:
Базовый учебник содержит хорошо отработанную теоретическую часть. Однако его практическая часть не полностью обеспечивает требования программы. Для проведения всех видов практических и лабораторных занятий разработано дополнительное методическое обеспечение. Тематический план дисциплины, тексты лекций и учебно-методические разработки ко всем видам практических занятий опубликованы с локальной сети университета и могут использоваться преподавателями как при подготовке к занятию, так и в ходе занятия.
4. Методические указания студентам содержатся в используемой при проведении курса литературе, изданной сотрудниками кафедры Информационных технологий в бизнесе Пермского филиала ГУ ВШЭ. Учебно-методические разработки ко всем видам практических занятий опубликованы с локальной сети университета и могут использоваться студентами как при подготовке к занятию, так и в ходе занятия.
5. Рекомендации по использованию информационных технологий.
Все практические занятия проводятся в компьютерном классе, содержащую локальную вычислительную сеть на базе ПК типа Pentium. Программное обеспечение сети должно поддерживать новые информационные технологии и включать в себя следующие комплексы:
1. Операционные системы Windows XP, Windows Vista.
2. Антивирусные программы.
3. MS Visual Studio 2008(2010).
4. Программы поддержки телекоммуникационных систем
Автор программы __________________________ к. т.н.
IV. Тематический расчет часов по программе дисциплины «Программирование на С++» для направления 080700.62 «Бизнес-информатика»
с№ п/п | Наименование разделов и тем | Аудиторные часы | Самостоятельная работа | Всего часов | ||
Лекции | Семинар. или практ. занятия | Всего | ||||
Раздел I. Простые С++ программы | ||||||
1 | Основные элементы языков программирования | 2 | 2 | 4 | 20 | 24 |
2 | Хранение и обработка информации в структурах данных | 4 | 4 | 8 | 20 | 28 |
Раздел II. Организация программ | ||||||
3 | Функции в С++ | 4 | 6 | 10 | 20 | 30 |
4 | Типы данных, определяемые пользователем | 4 | 2 | 6 | 20 | 26 |
Итого: | 14 | 14 | 28 | 80 | 108 |
Автор программы __________________________ к. т.н.
Приложение 1
Тематика домашнего задания:
Работа с однонаправленным списком Сформировать однонаправленный список, тип информационного поля указан в варианте. Распечатать полученный список. Выполнить обработку списка в соответствии с заданием. Распечатать полученный список. Удалить список из памяти. Работа с двунаправленным списком Сформировать двунаправленный список, тип информационного поля указан в варианте. Распечатать полученный список. Выполнить обработку списка в соответствии с заданием. Распечатать полученный список. Удалить список из памяти. Работа с деревьями Сформировать идеально сбалансированное бинарное дерево, тип информационного поля указан в варианте. Распечатать полученное дерево. Выполнить обработку дерева в соответствии с заданием, вывести полученный результат. Преобразовать идеально сбалансированное дерево в дерево поиска. Распечатать полученное дерево.Приложение 2
Вопросы для самоконтроля
Что представляет собой структура программы в С++? Перечислить стандартные типы данных С++ и их размеры. Какие операции применяются к целочисленным типам данных? Какие типы циклов существуют в С++? Чем переключатель (switch) отличается от переключателя (case) в Паскале? Какие операторы переходов существуют в С++? Зачем нужны директивы препроцессора? Каким образом в С-программу подключаются библиотеки? Какие способы передачи данных в функцию существуют? Чем передача параметров в функцию по адресу отличается от передачи параметров по значению? Что такое указатель? Какие операции применяются к указателям? Что такое ссылка? Чем ссылка отличается о указателя? Каким образом связаны массивы и указатели? Каким образом одномерные массивы передаются в функции? Каким образом двумерные массивы передаются в функции? Каким образом строки в стиле С передаются в функции? Каким образом выполняется вывод в стиле С и С++? Что собой представляют inline функции? Что собой представляют функции с переменным числом параметров? Что собой представляют функции с умалчиваемыми параметрами? Что собой представляют указатели на функции? Что собой представляют шаблоны функций? Что такое инстанцирование шаблона? Как задать пользовательский тип данных? Что собой представляют динамические структуры данных?Приложение 3
План семинарских занятий
Практическое занятие №1. | Тема | Выполнение программы простой структуры. Вычисление выражений с использованием стандартных функций |
Вопросы | 1. Для задачи 1 определить тип заданных выражений и найти их значения. 2. Составить систему тестов и вычислить полученное выражение для нескольких значений Х, определить при каких Х выражение не может быть вычислено. 3. Для задачи 2 записать выражение, зависящее от координат точки X1 и Y1 и принимающее значение TRUE, если точка принадлежит заштрихованной области, и FALSE, если не принадлежит. 4. Составить систему тестов и вычислить полученное выражение для нескольких точек, принадлежащих и не принадлежащих заштрихованной области. 5. Для задачи 3 вычислить значение выражения, используя различные вещественные типы данных (float и double). 6. Объяснить полученные результаты. 7. Результаты всех вычислений вывести на печать. | |
Практическое занятие №2. | Тема | Использование основных операторов языка С++ |
Вопросы | Решить указанные в варианте задачи, используя основные операторы языка С++. При решении задачи, использовать все типы циклов (for, while, do while). | |
Практическое занятие №3. | Тема | Функции и массивы в С++ |
Вопросы | 1. Используя функции сформировать с помощью ДСЧ одномерный массив и вывести его на печать. 2. Выполнить обработку одномерного массива в соответствии с вариантом, используя функции, результат вывести на печать. 3. Используя функции сформировать с помощью ДСЧ двумерный массив и вывести его на печать. 4. Выполнить обработку двумерного массива в соответствии с вариантом, используя функции, результат вывести на печать. 5. Ввести с клавиатуры строку символов и обработать ее в соответствии со своим вариантом, используя функции. | |
Практическое занятие №4. |
| Динамические массивы |
Вопросы | 1. Сформировать динамический одномерный массив, заполнить его случайными числами и вывести на печать. 2. Выполнить указанное в варианте задание и вывести полученный массив на печать. | |
Практическое занятие №5. | Тема | Динамические массивы |
Вопросы | 1. Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать. 2. Выполнить указанное в варианте задание и вывести полученный массив на печать. | |
Практическое занятие №6. | Тема | Функции в С++ |
Вопросы | 1. Написать функцию с умалчиваемыми параметрами в соответствии с вариантом, продемонстрировать различные способы вызова функции:
2. Написать функцию с переменным числом параметров в соответствии с вариантом, продемонстрировать вызов функции с различным числом параметров. 3. Написать перегруженные функции в соответствии с вариантом. Написать демонстрационную программу для вызова этих функций. 3. Написать шаблон функций вместо перегруженных функций из задания 3. Написать демонстрационную программу для вызова этих функций. списка параметров 4. Решить уравнение указанным в варианте методом. Уравнение передать в функцию как параметр с помощью указателя. | |
Практическое занятие №7. | Тема | Прием домашнего задания по теме «Динамические структуры данных» |
Вопросы | 1. Сформировать однонаправленный список, тип информационного поля указан в варианте. 2. Выполнить обработку списка в соответствии с заданием. 3. Сформировать двунаправленный список, тип информационного поля указан в варианте. 4. Выполнить обработку списка в соответствии с заданием. 5. Сформировать идеально сбалансированное бинарное дерево, тип информационного поля указан в варианте. 6. Выполнить обработку дерева в соответствии с заданием, вывести полученный результат. 7. Преобразовать идеально сбалансированное дерево в дерево поиска. |


