Учебно-методический комплекс по дисциплине ен. В. 02 Язык С++ индекс по гос/наименование дисциплины

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

Содержание


Содержание учебно-методического комплекса
Федеральное агентство по образованию
I рабочая программа
010100 – Математика
Рекомендована к утверждению Рассмотрена и одобрена на
Сведения о переутверждении рабочей программы учебной дисциплины
1 ПОЯСНИТЕЛЬНАЯ ЗАПИСКА 1.1 Требования государственного образовательного стандарта к содержанию данной дисциплины
1.2 Цели, учебные задачи дисциплины, место и роль учебной дисциплины в подготовке специалиста
1.3 Виды учебной деятельности студентов
2 Содержание программы
3 Тематический план изучения учебной дисциплины
4 Программа лекционных занятий
Темы лекционных занятий
5 Программа практических (семинарских), лабораторных занятий
Темы лабораторных занятий
6 Программа самостоятельной работы
Темы для самостоятельного изучения
7.1 Контрольных работ
8 Контроль знаний студентов
9 Учебно-методическое обеспечение рабочей программы
...
Полное содержание
Подобный материал:

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОУВПО «Марийский государственный университет»
Физико-математический факультет


Кафедра теоретической и прикладной физики

УТВЕРЖДАЮ


Декан физико-математического
факультета

«24» ноября 2009 г.


/Попов Н.И./

(подпись/Ф.И.О)


УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС ПО ДИСЦИПЛИНЕ


ЕН.В.02 Язык С++

(индекс по ГОС/наименование дисциплины)


СПЕЦИАЛЬНОСТЬ/НАПРАВЛЕНИЕ

010101 - Математика




(код и наименование специальности/направления в соответствии с лицензией)


Составитель Попов А.А. д.ф.-м.н., профессор

(должность, Ф.И.О., ученая степень, звание автора программы)


Йошкар-Ола

2009


УТВЕРЖДЕНО

на заседании кафедры

теоретической и прикладной физики

(название кафедры)


Протокол № 4 от

«20» ноября 2009 г.

Зав. кафедрой /Косов А.А./

(подпись/Ф.И.О)

УТВЕРЖДЕНО


на заседании УМК

Протокол № 1 (ВЗ) от

«23» ноября 2009 г.

Председатель УМК /Косов А.А./

(подпись/Ф.И.О)




СОДЕРЖАНИЕ УЧЕБНО-МЕТОДИЧЕСКОГО КОМПЛЕКСА


I Рабочая программа учебной дисциплины

II Методические рекомендации по изучению учебной дисциплины

III Учебно-методические материалы

IV Материалы текущего контроля, промежуточной аттестации и итогового контроля знаний

V Словарь терминов и персоналий

VI Программа государственного экзамена, итогового междисциплинарного экзамена

VII Программное и методическое обеспечение практики

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОУВПО «Марийский государственный университет»

Физико-математический факультет

УТВЕРЖДАЮ


Декан физико-математического факультета

/Попов Н.И./

(подпись/Ф.И.О.)


«24» ноября 2009 г.

I РАБОЧАЯ ПРОГРАММА


Учебная дисциплина Язык С++

(название дисциплины)

ЕН.В.02

(индекс по ГОС)


Специальность 010100 – Математика

(код и наименование в соответствии с лицензией)


Кафедра теоретической и прикладной физики

(название)


Курс 3 семестр 5 форма обучения очная




Лекции 18

(кол-во часов)

Практические занятия 0

(кол-во часов)

Лабораторные занятия 18

(кол-во часов)

Самостоятельная работа 36

(кол-во часов)

Курсовая работа (проект) нет

(семестр)

Зачет 5

(семестр)

Экзамен нет

(семестр)


Программа разработана Поповым А.А., д.ф.-м.н., профессором

(должность, Ф.И.О., ученая степень, звание автора программы)


Йошкар-Ола

2009

Рекомендована к утверждению Рассмотрена и одобрена на


решением учебно-методической заседании кафедры

комиссии (учебно-методического теоретической и прикладной

совета) физико-математического физики

факультета (название кафедры)

(название факультета / института, специальности)

протокол заседания № 1 от протокол заседания № 4 от

«11» сентября 2009 г. «20» ноября 2009 г.

Косов А.А. Косов А.А.

(подпись, Ф.И.О. председателя) (подпись, Ф.И.О., зав. кафедрой)


СОГЛАСОВАНО с выпускающей кафедрой математического анализа и ТФ

(название кафедры)


протокол заседания № 2 от «15» октября 2009 г. Кокурин М.Ю.

(Ф.И.О. зав. кафедрой, подпись)


Сведения о переутверждении рабочей программы учебной дисциплины

на очередной учебный год и регистрация изменений



Учебный

год

Решение кафедры

(№ протокола, дата заседания
кафедры, Ф.И.О., подпись
зав. кафедрой)


Автор изменения

(Ф.И.О., подпись)

Номер
изменения



























































































































1 ПОЯСНИТЕЛЬНАЯ ЗАПИСКА



1.1 Требования государственного образовательного стандарта к содержанию данной дисциплины

































1.2 Цели, учебные задачи дисциплины, место и роль учебной дисциплины в подготовке специалиста

Язык программирования С/С++ является вторым изучаемым языком высокого уровня. Основной направленностью дисциплины является изучение особенностей языка C/C++ в сравнении с языком Pascal.

В результате изучения дисциплины «Язык программирования C++» во 3 семестре студенты должны приобрести систематические знания об основных операторах алгоритмического языка С/C++, уметь работать в среде Turbo C++ при составлении консольных приложений и научиться составлять приложения средствами визуального проектирования.


1.3 Виды учебной деятельности студентов

Лекции, лабораторные работы


1.4 Контроль знаний студентов

Индивидуальный контроль знаний в процессе выполнения и сдачи лабораторных работ, зачет


1.5 Другие пояснения автора


2 СОДЕРЖАНИЕ ПРОГРАММЫ

Структура программы на языке C.

Базовые типы данных.

Операторы ввода и вывода.

Операции языка C/C++.

Условный оператор if.

Оператор множественного выбора switch.

Операторы цикла.

Программирование с использованием массивов.

Программирование с использованием строк.

Программирование функций.

Структуры.

Программирование с использованием внешних файлов.

Структура программы на языке C++.

Классы.

Наследование.

Перегрузка функций.

Перегрузка операторов.


3 ТЕМАТИЧЕСКИЙ ПЛАН ИЗУЧЕНИЯ УЧЕБНОЙ ДИСЦИПЛИНЫ




№ п/п раздела

№ п/п темы

Наименование разделов и тем

Количество часов по учебному плану

Всего

В том числе

Аудиторная нагрузка

Самостоятельная работа

Лекции

Практические
(семинарские)
занятия

Лабораторные
занятия

1

2

3

4

5

6

7

8




1

Структура программы на языке C. Базовые типы данных. Операторы ввода и вывода. Операции языка C/C++.

4

2







2







Условный оператор if. Оператор множественного выбора switch. Операторы цикла.

10

2




4

4




2

Программирование с использованием массивов.

8

2




2

4




3

Программирование с использованием строк.

8

2




2

4




4

Программирование функций.

10

2




2

6




5

Структуры.

8

2




2

4




6

Программирование с использованием внешних файлов.

8

2




2

4




7

Структура программы на языке C++. Классы.

8

2




2

4




8

Наследование. Перегрузка функций. Перегрузка операторов.

8

2




2

4







ИТОГО:

72

18




18

36



4 ПРОГРАММА ЛЕКЦИОННЫХ ЗАНЯТИЙ


4.1 Тематический план лекций


№№ п/п

Темы лекционных занятий

Кол-во
часов


1

2

3

1

Структура программы на языке C. Базовые типы данных(char, int, float, double, void). Операторы ввода и вывода (scanf, printf). Спецификаторы ввода и вывода(%с, %f, %e, %lf, %le, %ld, %s). Операции языка C/C++. Приоритет операций.

2

2

Условный оператор if. Оператор множественного выбора switch.

Операторы цикла for, while и do ... while.

2

3

Объявление массивов. Формирование массива. Доступ с элементам массива через указатель.

2

4

Объявление строк. Ввод и вывод строки (gets, getch, scanf, puts, printf). Функции обработки строк(strlen, strcat, strcpy, strcmp, strchr, strstr). Функции идентификации символов(islower, isupper, isalpha, isdigit).

2

5

Функции с оператором return. Функция с типом void, составленная в рамках языка C. Функция с типом void, использующая ссылочный тип языка C++. Массивы в функциях. Глобальные параметры.

2

6

Объявление структуры. Инициализация составных переменных. Использование структур в функциях.

2

7

Указатель файла. Открытие и закрытие файла. Запись чисел в файл и чтение из файла. Изменение элементов во внешнем файле. Запись

и чтение символов.

2

8

Структура программы на языке C++: новый вид заголовка, объявление класса, объявление функции класса, организация доступа к функциям класса, функции ввода и вывода в языке C++, тип данных bool, структуры и классы.

2

9

Наследование. Перегрузка функций. Перегрузка операторов.

2




Итого:

18



5 ПРОГРАММА ПРАКТИЧЕСКИХ (СЕМИНАРСКИХ),
ЛАБОРАТОРНЫХ ЗАНЯТИЙ


5.1 Тематический план практических (семинарских) занятий, лабораторных
занятий



№№ п/п

Темы лабораторных занятий

Кол-во
часов


1

2

3

1

Программы линейной структуры

2

2

Программы разветвляющейся структуры

2

3

Программы циклической структуры

2

4

Массивы

2

5

Строки

2

6

Функции

2

7

Файлы

2

8

Классы

2

9

Перегрузка операторов

2




Итого

18



6 ПРОГРАММА САМОСТОЯТЕЛЬНОЙ РАБОТЫ


6.1 Тематический план самостоятельной работы


№№ п/п

Темы для самостоятельного изучения

Кол-во
часов


1

2

3

1

Структура программы на языке C. Базовые типы данных. Операторы ввода и вывода. Операции языка C/C++.

2

2

Условный оператор if. Оператор множественного выбора switch. Операторы цикла.

4

3

Программирование с использованием массивов.

4

4

Программирование с использованием строк.

4

5

Программирование функций.

6

6

Структуры.

4

7

Программирование с использованием внешних файлов.

4

8

Структура программы на языке C++. Классы.

4

9

Наследование. Перегрузка функций. Перегрузка операторов.

4




ИТОГО:

36
7 ТЕМАТИКА


7.1 Контрольных работ

1. Программирование массивов.

2. Программирование подпрограмм.

3. Перегрузка операторов.

8 КОНТРОЛЬ ЗНАНИЙ СТУДЕНТОВ

Виды контроля

3-семестр

Текущий контроль

Индивидуальная проверка теоретических знаний при сдаче студентами лабораторных работ

Итоговый контроль

Зачет по дисциплине

Задания для самоконтроля

1. Составить метод main с типами void и int.

2. Организовать ввод и вывод целых чисел.

3. Организовать ввод и вывод вещественных чисел.

4. Организовать ввод и вывод символов.

5. Организовать ввод и вывод строк.

6. Организовать ввод и вывод массива.

7. Составить цикл for для вычисления суммы или произведения.

8. Составить задачу на цикл while и решить ее.

9. Составить задачу на цикл do ... while и решить ее.

10. Привести пример использования оператора множественного выбора switch.

11. Сформировать символьный массив и преобразовать его в строку.

12. Составить функцию с оператором return.

13. Составить функцию с типом void, возвращающую вычисленное значение через формальный параметр.

14. Составить функцию, возвращающую массив.

15. Привести пример, в котором используется составной тип данных.

16. Составить функцию, возвращающую составной тип данных.

17. Составить схему программы, использующую глобальные параметры.

18. Организовать чтение чисел из внешнего файла.

19. Организовать запись чисел, вводимых с клавиатуры, во внешний файл.

20. Составить схему программы, включающий класс.

21. Составить схему класса с перегрузкой оператора.

9 УЧЕБНО-МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ
РАБОЧЕЙ ПРОГРАММЫ


Список литературы


Основная литература

1. Павловская Т.А. C/C++. Программирование на языке высокого уровня.- СПб.: Питер, 2002. - 464с.

2. Березин Б.И., Березин С.Б. Начальный курс C и C++. - M.: Диалог-МИФИ, 2001. - 288с.

3. Шилдт Г. Полный справочник по C++. - M.: Издательский дом “Вильямс”, 2004. - 800с.

4. Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования C++. - Харьков: “Фолио”, Ростов-на-Дону: “Феникс”, 2001. - 500с.

5. Бен-Ари М. Языки программирования. Практический сравнительный анализ. -М. : Мир, 2000. - 366с.


Дополнительная литература

6. Культин Н.Б. Основы программирования в Turbo C++. - СПб.: БХВ-Петербург, 2007. - 464с.

7. Уоррен Г. Алгоритмические трюки для программистов. - М.: Издательский дом “Вильямс”, 2003. -288с.

8. Бочков С.О., Субботин Д.М. Язык программирования Си для персонального компьютера. -М.: Радио и связь, 1990. - 384с.


II МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ИЗУЧЕНИЮ УЧЕБНОЙ ДИСЦИПЛИНЫ

1. При рассмотрении базовых типов данных следует обратить внимание на то, char в отличие от языка Pascal является однобайтным целым типом, который при различных спецификаторах может восприниматься, как целый или символьный тип.

2. При рассмотрении структуры программы на языке C следует обратить на то, что программа оформлена в виде функции, но с заданным именем main.

3. Следует обратить внимание на многоступенчатый приоритет операций.

4. При рассмотрении операторов if и switch сравнить их с операторами языка Pas­cal if и case.

5. Операторы цикла for, while и do ... while сравнить с операторами языка Pascal for, while и repeat ... until.

6. При изучении массива обратить внимание на нумерацию элементов с 0 и на возможность обращение к элементу не по индексу, а через адрес элемента с помощью указателя.

7. При изучении строк обратить внимание о сходстве и различии строк и символь­ных массивов.

8. При изучении функций обратить внимание на возможность возвращения вычис­ленных в функции значений переменных через формальные параметры: с помощью ука­зателя и с помощью переменной ссылочного типа. При передаче в функцию массива об­ратить внимание на то, что в функцию передается только адрес элемента массива с ну­левым номером.

9. При изучении структуры обратить внимание на то, что сформированная внутри функции переменная с типом структуры, может быть возвращена в программу с помощью оператора return.

10. При рассмотрении внешних файлов обратить внимание на то, что для чисел и для символов используются разные функции чтения и записи.

11. При рассмотрении структуры программы на языке С++ следует обратить вни­мание, что все функции, рассмотренные в языке C, кроме функции main объединены внутри одного или нескольких классов, а функция main оперирует функциями класса че­рез созданный в ней объект класса.

12. При изучении наследования в сравнении с языком Pascal обратить внимание на то, что для языка C++ возможно множественное наследование.

13. При перегрузке операторов обратить внимание на то, что один и тот же опера­тор может выполнять различные функции в зависимости от вида операндов.


III УЧЕБНО-МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ

Вопросы для самопроверки

1. Какие существуют варианты метода main?

2. Какая существует особенность при использовании метода scanf по сравнению с методом printf?

3. Как организовать вывод вещественного числа c 2 цифрами после точки?

4. Какие функции используются для ввода символов?

5. Какие функции используются для ввода и вывода строк?

6. Какой спецификатор используется для перевода курсора на новую строку?

7. Как отличаются заголовки цикла, в одном из которых параметр цикла возрастает, в другом - убывает?

8. Каким образом завершается цикл while?

9. В чем состоит основное отличие цикла while от цикла do ... while?

10. Для чего необходимы операторы break в операторе множественного выбора switch?

11. Чем отличается символьный массив и от строки в языке C?

12. В каком случае для функции обязателен оператор return?

13. Каким образом функция в языке C может возвращать вычисленные значения через формальные параметры?

14. В чем отличие функции, возвращающей массив, и функции, возвращающей число?

15. Для каких данных удобней использовать составной тип?

16. Каким образом можно возвратить из функции составной тип данных?

17. В каких случаях удобней использовать глобальные параметры?

18. Как организовать чтение чисел из внешнего файла?

19. Как организовать запись чисел, вводимых с клавиатуры, во внешний файл?

20. Какой спецификатор имеют члены класса по умолчанию?

21. В чем состоит смысл перегрузки операторов?

IV МАТЕРИАЛЫ ТЕКУЩЕГО КОНТРОЛЯ, ПРОМЕЖУТОЧНОЙ АТТЕСТАЦИИ
И ИТОГОВОГО КОНТРОЛЯ ЗНАНИЙ

ЗАДАЧИ ДЛЯ ЗАЧЕТА

ЗАДАЧИ ГРУППЫ А
  1. Даны целые числа x, y. Найти наибольшее.
  2. Дано действительное число. Принадлежит ли оно интервалам (1,1, 3] или [5, 10,3).
  3. Вычислить в произвольной точке значение функции t(x), если


  1. Дано натуральное число n. Вычислить: ;
  2. Дано натуральное число n. Вычислить: ;
  3. Дано натуральное число n, действительное x. Вычислить: ;
  4. Дана вещественная матрица размером m×n. Найти сумму элементов.
  5. Дана вещественная матрица размером m×n. Найти минимальный элемент.
  6. Дана вещественная матрица размером m×n. Найти максимальный элемент.
  7. Дана целая матрица размером m×n. Найти количество чётных элементов.
  8. Дана целая матрица размером m×n. Найти количество нечётных элементов.
  9. Дана вещественная матрица размером m×n. Найти количество отрицательных элементов.
  10. Дана вещественная матрица размером m×n. Найти количество нулевых элементов.
  11. Дана строка символов. Найти ее длину.
  12. Дана строка символов и символ x. Подсчитать, сколько раз среди символов строки встречается символ x.
  13. Дана строка символов. Подсчитать, общее число вхождений символов +, - ,*, / в строку.
  14. Дана строка символов. Подсчитать количество предложений в строке.
  15. Дана строка символов. Выяснить, имеется ли в строке пара соседствующих букв но или он.
  16. Задать запись описывающую вектор. Найти сумму двух векторов.
  17. Задать запись описывающую вектор. Найти разность двух векторов.
  18. Задать запись описывающую вектор. Найти угол между векторами.
  19. Задать запись описывающую вектор. Найти скалярное произведение векторов.
  20. Задать запись описывающую комплексное число. Найти произведение двух комплексных чисел.
  21. Задать запись описывающую треугольник. Найти его периметр и площадь.
  22. Даны действительные числа a и b. Получить f(a)+f(b), где .
  23. Даны действительные числа a и b. Получить f(a)-f(b), где .
  24. Даны действительные числа a и b. Получить f(af(b), где .

ЗАДАЧИ ГРУППЫ Б
  1. Дано натуральное число n. Вычислить: .
  2. Дано натуральное число n, действительное x. Вычислить: .
  3. Даны действительные числа x,  (x0, >0). Вычислить с точностью : .
  4. Дана целая матрица размером m×n. Найти номера строк, сумма элементов которых равна 0.
  5. Дана вещественная матрица размером m×n. Найти минимальные элементы столбцов.
  6. Дана квадратная вещественная матрица порядка n. Найти сумму диагональных элементов.
  7. Дана вещественная матрица размером m×n. Найти сумму наибольших элементов строк.
  8. Дана вещественная матрица размером m×n. Найти сумму элементов с чётными индексами строк и нечётными индексами столбцов.
  9. Дана целая квадратная матрица порядка n. Найти количество нечетных элементов, расположенных в заштрихованной части матрицы.


  1. Дана строка символов. Подсчитать, сколько раз среди символов строки встречается символ + и сколько раз символ -.
  2. Дана строка символов. Заменить в ней все цифры знаками *.
  3. Дана строка символов. Подсчитать количество букв латинского алфавита в строке.
  4. Дана строка символов. Найти в строке позицию последней запятой.
  5. Дана строка символов. Подсчитать количество слов в строке. (Слова разделены пробелами.)
  6. Дана строка символов. Удалить из нее все символы, кроме цифр.
  7. Дана строка символов. Удалить из нее символы *.
  8. Дан список из n записей о студентах. Каждая запись содержит следующие поля: фамилия, имя, отчество, средняя успеваемость. Вывести список студентов у которых средний балл от 4,0 до 5,0.
  9. Дан список из n записей о студентах. Каждая запись содержит следующие поля: фамилия, имя, отчество, курс. Вывести список студентов 1-го и 2-го курса.
  10. Даны действительные числа a и b. Получить 1,75f(a)+4f(b), где .
  11. Даны действительные числа a и b. Получить 1/2 f(a)3- f(b)5, где .
  12. Даны действительные числа a, b, c. Получить sin(f(a, b))-f(b, c), где .
  13. Дана строка символов. Найти ее длину. (Для нахождения длины строки написать функцию, которая в работе не использует функции заголовочного файла string.h).
  14. Вычислить значение e с заданной точностью. (Для вычисления значения e с заданной точностью написать функцию).
  15. Дана вещественная квадратная матрица A порядка 3. Найти ее определитель. (Для нахождения определителя матрицы написать функцию).
  16. Дан массив из n элементов. Найти среднее значение элементов массива. (Для нахождения среднего значения написать функцию).
  17. Найти скалярное произведение векторов. (Для нахождения скалярного произведения векторов написать функцию).
  18. Найти произведение двух комплексных чисел. (Для нахождения произведения комплексных чисел написать функцию).



V СЛОВАРЬ ТЕРМИНОВ И ПЕРСОНАЛИЙ



Алгоритм - последовательность действий при решении задачи.
Программа - реализация алгоритма на языке программирования.

Идентификатор - название константы, типа или переменной, используемое в программе.

Цикл - многократное выполнение одних и тех же действий при различных параметрах.

Массив - совокупность переменных, имеющих одинаковый тип и объединенных под одним именем.

Массив символов - последовательность символов, объединенных под одним именем.

Строка - массив символов, заканчивающийся нулевым байтом и имеющий дополнительную языковую поддержку.

Структура - составной тип данных, в рамках которого объявляются переменные простых типов или переменные других составных типов.

Файл - совокупность данных, сохраненных на диске под определенным именем.

Указатель файла - указатель на структуру с информацией о имени файла, статусе файла, текущем положении курсора.

Подпрограмма - сегмент программы, к которому можно обратиться из любого места внутри программы.

Рекурсивная подпрограмма - подпрограмма, которая обращается сама к себе.

Сортировка - перестановка элементов в порядке возрастания или в порядке убывания.

Указатель - переменная, в которой хранится адрес ячейки.

Ссылочный тип - тип, определяющий указатель.

Составной указатель - составной тип данных, в котором объединяются переменные простых типов и составные указатели.

Класс - сложная структура, включающая данные и описание методов для манипуляции с этими данными.

Объект - экземпляр класса для его вызова методов.

Инкапсуляция - механизм, связывающий воедино код и данные, которыми он манипулирует.

Полиморфизм - возможность передачи управления одноименным методам различных классов.

Наследование - процесс, в ходе которого один объект может приобретать свойства другого.

Перегрузка функций - использование одного имени для нескольких функций.

Перегрузка оператора - распространение действия оператора на созданные программистом объекты.

VI ПРОГРАММА ГОСУДАРСТВЕННОГО ЭКЗАМЕНА, ИТОГОВОГО МЕЖДИСЦИПЛИНАРНОГО ЭКЗАМЕНА

экзамен не предусмотрен

VII ПРОГРАММНОЕ И МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ПРАКТИКИ

практика не предусмотрена