ПРОГРАММА ДИСЦИПЛИНЫ

Программирование на языке С++

для направления 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.  Преобразовать идеально сбалансированное дерево в дерево поиска.