Учебно-методический комплекс по дисциплине ен,Ф. 01. Компьютерные науки индекс по гос/наименование дисциплины icon

Учебно-методический комплекс по дисциплине ен,Ф. 01. Компьютерные науки индекс по гос/наименование дисциплины



Смотрите также:
Учебно-методический комплекс по дисциплине ен,Ф. 01...
Учебно-методический комплекс по дисциплине дс...
Учебно-методический комплекс по дисциплине ен. Ф...
Учебно-методический комплекс по дисциплине ен. Ф...
Учебно-методический комплекс по дисциплине ен. Ф. 041...
Учебно-методический комплекс по дисциплине ен. Ф...
Учебно-методический комплекс по дисциплине ен. Ф...
Учебно-методический комплекс по дисциплине опд. В...
Учебно-методический комплекс по дисциплине дс. В...
Учебно-методический комплекс по дисциплине опд. Ф...
Учебно-методический комплекс по дисциплине Сети ЭВМ и телекоммуникации (наименование дисциплины)...
Учебно-методический комплекс по дисциплине Системное программное обеспечение (наименование...



скачать


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

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


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

УТВЕРЖДАЮ


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

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


/Попов Н.И./

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


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


ЕН,Ф.01. Компьютерные науки


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


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

010100 – Математика




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


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

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


Йошкар-Ола

2009


УТВЕРЖДЕНО

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

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

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


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

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

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

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

УТВЕРЖДЕНО


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

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

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

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

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




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


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

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

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

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

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

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

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

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

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

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

УТВЕРЖДАЮ


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

/Попов Н.И./

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


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

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


Учебная дисциплина Компьютерные науки

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

ЕН.Ф.01

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


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

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


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

(название)


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




Лекции 17, 18

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

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

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

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

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

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

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

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

(семестр)

Зачет 2,3

(семестр)

Экзамен нет

(семестр)


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

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


Йошкар-Ола

2009

^

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


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

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

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

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

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

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

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

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

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


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

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


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

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


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

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



Учебный

год

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

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


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

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

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



























































































































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



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




ЕН.Ф.01
^
Компьютерные науки

Понятие информации, общая характеристика процессов сбора, передачи, обработки накопления информации; технические и программные средства реализации информационных процессов. Основные понятия: алгоритм для ЭВМ, базовые конструкции для записи алгоритмов, циклы «для», «пока», «если-то-иначе», выбор, условный и безусловный переход; простейшие типы данных: целый, вещественный, символьный, логический и их представление в ЭВМ; массивы данных; организация ввода и вывода; понятие о файловой системе; файлы последовательного доступа и прямого доступа; форматный и бесформатный ввод/вывод; простейшие алгоритмы обработки данных: вычисление по формулам, последовательный и бинарный поиск, сортировка, итерационные алгоритмы поиска корней уравнений, индуктивная обработка последовательностей данных, рекуррентные вычисления.

Структуры данных: вектор, матрица, запись (структура), стек, дек, очередь, последователь-ность, список, множество, бинарное дерево; реализация структур данных на базе линейной памяти ЭВМ; непрерывный и ссылочный способы реализации структур данных; реализации множества (битовая, непрерывная, хеш-реализация); алгоритмы обработки коллизий в хеш-реализации.

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

Структуры данных в прикладных программах; примеры использования и реализации различных структур (редактор текстов, стековой калькулятор); принципы построения файловых систем; каталог, таблица размещения файлов, распределение блоков файла по диску.

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

Понятие об операционной системе: процесс, состояние процесса, прерывание, планирование процессов, понятие о тупиках и способах их устранения.

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

Понятие об архитектуре ЭВМ: процессор и система его команд, структура памяти ЭВМ и способы адресации, выполнение команды в процессоре, взаимодействие процессора, памяти и периферийных устройств.

Локальные и глобальные сети ЭВМ; основы защиты информации и сведений, составляющих государственную тайну; методы защиты информации.

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

600



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

В результате изучения дисциплины «Компьютерные науки» во 2 семестре студенты должны приобрести систематические знания об основных операторах алгоритмического языка Паскаль, уметь работать в интегрированной среде Турбо Паскаль и составлять простые программы.

В результате изучения дисциплины «Компьютерные науки» во 3 семестре студенты должны приобрести систематические знания о динамических структурах данных, об объектно-ориентированном программировании, методах сортировок и поиска, рекурсивных алгоритмах, уметь составлять средней сложности программы в текстовом и графическом режиме работы монитора.


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

Лекции, практические занятия, лабораторные работы


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

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


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

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


Обзор языков программирования высокого уровня.

Оператор присваивания. Простые основные типы данных. Идентификаторы.

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

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

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

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

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

Оператор goto.

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

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

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

Подпрограммы модуля Crt.

Подпрограммы модуля Graph.

Рекурсивные подпрограммы.

Динамические структуры.

Объектно-ориентированное программирование.

Простые методы сортировки массивов

Алгоритмы поиска


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




№ п/п раздела

№ п/п темы

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

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

Всего

В том числе

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

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

Лекции

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

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

1

2

3

4

5

6

7

8







семестр 2:



















1

Введение. Обзор языков программирования высокого уровня

2

1







1




2

Оператор присваивания. Простые основные типы данных. Идентификаторы.

6

1




2

3




3

Условный оператор if. Операторы цикла

21

2

5

7

7




4

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

14

1

3

5

5




5

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

15

2

3

5

5




6

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

11

2




4

5




7

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

5

2

1




2




8

Составление подпрограмм на языке Паскаль

17

2

3

5

7




9

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

6

1




2

3




10

Подпрограммы модуля Crt

4

1

1




2




11

Подпрограммы модуля Graph.

11

2

1

4

4







ИТОГО:

112

17

17

34

44







семестр 3:



















1

Рекурсивные подпрограммы.

12

2




4

6




2

Динамические структуры

28

6




10

12




3

Объектно-ориентированное программирование

28

6




12

10




4

Простые методы сортировки массивов

19

3




6

10




5

Алгоритмы поиска

12

1




4

7







ИТОГО:

99

18




36

45
^



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




№№ п/п

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

Кол-во
часов


1

2

3




2 семестр




1

Введение. Обзор языков программирования высокого уровня (Fortran, Algol, Cobol, PL/1, Basic, Jovial, Simula, Pascal, Modula, С,, Java, C#)

1

2

Оператор присваивания. Простые основные типы данных.

Идентификаторы. Преобразование типов (trunc, round, div, mod, chr, ord) .

Операторы ввода и вывода. Стандартные функции для программироваия арифметических выражений.

1

3

Условный оператор if. Операторы цикла (оператор цикла for, оператор цикла while, оператор цикла repeat…until). Оператор множественного выбора case.

2

4

Программирование с использованием массивов (объявления массива, ввод элементов массива, формирование массива с помощью генератора случайных чисел, задание массива в виде последовательности констант, двумерный массив, формирование символьного массива)

1

5

Программирование с использованием строк (объявление строки, объявленная длина строки, инициализация строки, реальная длина строки, процедуры и функции, используемые при обработке строк: Length, Insert, Delete, Copy, Pos, Val, Str)

2

6

Программирование с использованием внешних файлов (текстовые файлы, объявление текстового файла, двоичные файлы, объявление двоичного файла, процедуры и функции обработки текстовых файлов: assign,reset, rewrite, append, readln, writeln, close,eof, eoln, read, write, seek).

2

7

Оператор goto(Label, альтернативные конструкции вместо оператора goto). Программирование с использованием множеств (объявление множества, перечисляемый тип, ограниченный тип, инициализация множества и принадлежность элемента множеству, операции над множествами: сравнение, присваивание, объединение множеств, пересечение множеств, разность множеств)

2

8

Составление подпрограмм на языке Паскаль (структура функции, структура процедуры, процедуры, возвращающие значения)

2

9

Программирование с использованием записей (объявление записи, оператор присоединения with).

1

10

Подпрограммы модуля Crt (процедуры ClrScr, TextBackGround, Window, GotoXY, TextColor, ClrEol, функции KeyPressed, ReadKey).

1

11

Подпрограммы модуля Graph (инициализация графического режима: DetectGraph, InitGraph, CloseGraph; построение фигур и линий: SetViewPort, SetBkColor, Line, SetColor, SetLineStyle, Rectange, DrawPoly, Circle, Ellipse, FillEllipse,fillPoly, PieSlice, Bar, Bar3D, SetFillStyle; вывод текста в графическом режиме: OutTextXY, MoveTo, OutText, SetTextStyle)

2




3 семестр




1

Рекурсивные подпрограммы (прямая и косвенная рекурсии, директива forward, схема косвенной рекурсии, кривые Гильберта, стек и стековая память, задачи, использующие рекурсивные вызовы)

2

2

Динамические структуры данных (указатели, разыменование указателей, операторы New и Dispose, связь статических и динамических переменных, ссылочный тип, объявление списка, основные операции для списков: формирование линейного списка, рекурсивная процедура формирование линейного списка, распечатка линейного списка, преобразование линейного списка в кольцевой список, преобразование кольцевого списка в линейный список, распечатка кольцевого списка, удаление линейного списка, удаление узла с заданной информационной частью из линейного списка, вставка узла в линейный список, рекурсивная процедура вставки узла в линейный список; стек: принцип обслуживания LIFO, добавление элемента в стек, извлечение элемента из стека; очередь: принцип обслуживания FIFO, формирование очереди; двоичное дерево: идеально сбалансированное дерево, дерево поиска, задача поиска по дереву с включением, удаление дерева,

различные варианты обхода дерева, АВЛ-деревья, балансировка дерева, однократные LL- и RR-повороты, двукратные LR- и RL-повороты

Иллюстрации операций с двоичными деревьями [электронный ресурс] – Режим доступа: http://new.marsu.ru/GeneralInformation/structur/BasicUnits/fackultet/fmf/department_of_theoretical_physics/educational_methodical_complexes.php.

6

3

Объектно-ориентированное программирование (абстракция данных, инкапсуляция, объявление класса, программирование с использованием классов, методы, наследование без переопределения методов, наследование с переопределением методов, виртуальные методы, конструкторы, полиморфизм, деструкторы, ранее и позднее связывание классов, использование динамических структур данных в классах: объявление класса, как составного указателя)

6

4

Простые методы сортировки массивов (сортировка прямыми включениями, параметры локальные и глобальные, сортировка бинарными включениями, сортировка прямым выбором, сортировка прямым обменом).

Улучшенные методы сортировки (сортировка Шелла, сортировка с помощью двоичного дерева, быстрая сортировка: инвариант рекурсивного алгоритма)

3

5

Алгоритмы поиска (бинарный поиск, интерполяционный поиск)

1



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




№№ п/п

^ Темы практических занятий

Кол-во
часов


1

2

3




2 семестр




1

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

5

2

Операторы цикла (оператор цикла for, оператор цикла while, оператор цикла repeat…until).

3

3

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

3

4

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




5

Составление подпрограмм на языке Паскаль

1

6

Подпрограммы модуля Crt

3

7

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

1

8

Подпрограммы модуля Graph

1




№№ п/п

^ Темы лабораторных работ

Кол-во
часов





2 семестр




1

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


3

2

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


3

3

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


4

4

“Массивы”


5

5

“Строки”


5

6

“Подпрограммы”


5

7

“Записи”


4

8

“Обработка внешних файлов”


5




ИТОГО

34




2 семестр




1

“Рекурсивные подпрограммы”


4

2

"Построение графиков”


6

3

“Классы”


4

4

“Наследование”


6

5

“Обработка списков”


8

6

“Сортировка и поиск”


8




ИТОГО

36



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




№№ п/п

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

Кол-во
часов


1

2

3




семестр 2:




1

Введение. Обзор языков программирования высокого уровня

1

2

Оператор присваивания. Простые основные типы данных. Идентификаторы.

3

3

Условный оператор if. Операторы цикла

7

4

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

5

5

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

5

6

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

5

7

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

2

8

Составление подпрограмм на языке Паскаль

7

9

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

3

10

Подпрограммы модуля Crt

2

11

Подпрограммы модуля Graph.

4




ИТОГО:

44

1

семестр 3:




2

Рекурсивные подпрограммы.

6

3

Динамические структуры

12

4

Объектно-ориентированное программирование

10

5

Простые методы сортировки массивов

10

6

Алгоритмы поиска

7




ИТОГО:

45



7 ТЕМАТИКА


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

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

Программирование строк

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

Основные операции для списков.

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

Побитовые операции.

Программы с модулями.


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

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




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

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

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

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

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

1. Написать фрагмент программы, формирующий сумму и произведение.

2. Сформировать символьный массив, состоящий из случайно сгенерированных строчных букв латинского алфавита.

3. Найти наибольший общий делитель двух целых чисел a и b, используя операцию целочисленного деления mod.

4. Организовать завершение бесконечного цикла repeat until для удержания экрана.

5. Организовать цикл for, в котором индекс цикла убывает.

6. Организовать цикл while, который может досрочно завершаться без использования оператора goto.

7. Организовать любой итерационный процесс ( последующее значение выражается через предыдущее ) с помощью цикла repeat ... until.

8. Сформировать и распечатать двумерную матрицу.

9. Преобразовать символьный массив в строку.

10. Преобразовать строку в символьный массив.

11. Найти длину строки, не используя функцию Length.

12. С помощью цикла repeat ... until и процедуры val организовать ввод целого числа, длинного целого числа или вещественного числа с контролем и повтором.

13. Использовать оператор case для исключения из строки лишних пробелов между словами.

14. Посчитать сумму всех цифр строки.

15. Записать массив из строк в текстовый файл.

16. В двоичном файле произвести обмен наибольшего элемента и первого элемента.

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

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

19. Распечатать все элементы множества строчных латинских букв в алфавитном порядке.

20. Сформировать множество из элементов символьного массива.

21. Написать функцию, которая возвращает сумму цифр числа, входящего в функцию в виде формального параметра.

22. Написать функцию, которая число с инвертированными цифрами числа, входящего в функцию в виде формального параметра.

23. Написать функцию, которая возвращает сумму первой и последней цифр числа, входящего в функцию в виде формального параметра.

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

25. Написать процедуру, которая возвращает сформированную в ней квадратную матрицу заданного порядка.

26. Используя известную сортировку прямым выбором, применить ее только к отрицательным членам массива, оставляя остальные на своих местах.

27. Используя известную сортировку прямым обменом, применить ее к элементам массива таким образом, чтобы на нечетных шагах элементы собирались слева, а при четных - справа.

28. Привести пример использования вложенных операторов with.

29. Используя операторы GotoXY и ClrEol, в многовариантной задаче организовать ввод и вывод данных в одно и тоже место экрана.

30. Используя функцию readkey, получить таблицу кодировки для символов клавиатуры.

31. Используя функцию readkey, организовать движение прямоугольника в графическом режиме монитора.

32. Используя функцию readkey, организовать движение прямоугольника в текстовом режиме монитора.

33. Вывести на экран в графическом режиме работы монитора вычисленную таблицу значений функции.

34. Написать процедуру, которая печатает двоичное представление произвольного числа без использования строк или массивов.

35. Составить модуль, который содержит одну функцию.

36. Не изменяя положения указателя, но последовательно его разыменовывая, прочитать число из 5 узла списка, считая, что количество узлов не меньше 5.

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

38. Написать процедуру распечатки двунаправленного списка, как слева направо, так и справа налево.

39. Используя идею быстрой сортировки расположить отрицательные элементы массива в обратной последовательности, оставив остальные на своих местах.

40. Написать процедуру, которая переименовывает все внешние файлы указанной группы.

41. Написать процедуру, которая удаляет все внешние файлы указанной группы.

42. Написать процедуру, которая дает возможность просматривать все файлы указанной группы.


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


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


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

1. Вирт Н. Алгоритмы + структуры данных = программы. - М., Мир, 1985.- 406с.

2. Вирт Н. Алгоритмы и структуры данных. – М., Мир, 1989. - 360с.

3. Зуев Е.А. Язык программирования Turbo Pascal 6.0. – М.: Унитех, 1992. - 298с.

4. Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. – СПб.: BHV – Санкт- Петербург, 1997. - 240с.

5. Немнюгин С.А. Turbo Pascal: практикум. – СПб.: Питер, 2002. - 256с.

6. Офицеров Д.В., Старых В.А. Программирование в интегрированной среде Турбо-Паскаль. Справочное пособие. – Минск, Беларусь, 1992. - 240с.

7. Пильщиков В.И. Сборник упражнений по языку Паскаль. – М.: Наука, 1989. - 160с.

8. Программирование на языке Паскаль: задачник / под ред. Усковой О.Ф. – СПб.: Питер, 2002. - 192с.

9. Фаронов В.В. Turbo Pascal 7.0.: Учебное пособие. – М.: Нолидж, 1997.-580с. -336с.

10. Юркин А.Г. Задачник по программированию. – СПб.: Питер, 2002. - 192с.


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

11. Ахо А.В., Хопкфорт Дж.Э., Ульман Дж. Д. Структуры данных и алгоритмы. – М.: Издательский дом “Вильямс”, 2001. - 384с.

12. Бентли Дж. Жемчужины программирования. – СПб.: Питер, 2002. - 304с.

13. Окулов С.М. Программирование в алгоритмах. – М.: БИНОМ. Лаборатория знаний, 2004. - 341с.

14. Ускова О.Ф., Огаркова Н.В., Воронина И.Е., Бакланов М.В., Мельников М.В. Программирование алгоритмов обработки данных. – СПб.: БХВ-Петербург, 2003. - 192с.

15. Шикин Е.В., Боресков А.В. Зайцев А.А. Начала компьютерной графики. – М.: ДИАЛОГ-МИФИ, 1993. - 138с.


Список авторских методических разработок

1. Динамические схемы для иллюстрации простых и улучшенных методов сортировки: приложения на языке Java, иллюстрирующие сортировки

- прямыми включениями,

- бинарными включениями,

- прямым выбором,

- прямым обменом,

- шейкерную сортировку,

- сортировку Шелла,

- пирамидальную сортировку,

- быструю сортировку.

2. Иллюстрация рекурсивных алгоритмов: задача о ханойских башнях с графической реализацией, задача о расстановки 8 ферзей с графической реализацией.

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

семестр 3:


1. Для быстрого освоения практического программирования необходимо освоить преоб­разование типов Особенное внимание следует уделить функциям trunс и round для пре­образования вещественного к целому, операциям div и mod для решения задач в области целых чисел, функция chr, преобразующая целое в символьное и функция ord, преобразующее символьное в целое.

2. После изучения операторов ввода (read, readln) и вывода (write, writeln) можно составлять тестовые программ для изучения преобразований типов.

3. После освоения оператора цикла for можно составлять программы по вычислению сумм и произведений.

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

5. После освоения цикла repeat ... until можно организовать повторный ввод исходных данных и решать задачи с итерационными схемами.

6. Условный оператор if и оператор множественного выбора case позволяют реализовать ветвления программы, когда при выполнении разных условий выполняются разные группы операторов.

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

8. Освоение строк позволит обрабатывать тексты. Следует обратить внимание на ини­циализацию строки, на определение реальной длины строки, на отличие строки от сим­вольного массива и также освоить функции обработки строк: Length, Insert, Delete, Copy, Pos и функции Val преобразования строки в целое или вещественное число и функции Str преобразования вещественного или целого числа в строку.

9. Работу с внешними файлами необходимо начать с открытия и закрытия файла (тексто­вого или двоичного), далее научиться читать данные из одного файла и записывать их в другой файл (для завершения цикла while использовать логическую функцию eof). При таком подходе остается добавить в цикл обработку каждого числа. Причем данная обработка не связана с темой “Файлы”, а основана на ранее полученных знаниях.

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

11. Использование множеств в программе для ряда задач делает их решение более про­стым. Альтернативой решения таких задач является реализация неочевидного логического алгоритма.

12. Только небольшие программы могут быть составлены без подпрограмм. Даже не­большая задача может быть разделена на подзадачи, каждой из которых ставится в со­ответствие подпрограмма. В языке Паскаль - это функция или процедура. Следует уделить внимание изучению их различия и сходства. Обратить внимание на различные виды формальных параметров. Необходимо научиться возвращать вычисленные значения через формальные параметры, используя как процедуру, так и функцию.

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

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

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

Особое внимание следует уделить функции ReadKey, которая считывает код нажатой клавиши без отображения символа клавиши на экране.

16. Подпрограммы модуля Graph позволяют программисту перейти от текстового к гра­фическому режиму для решения специфических задач, например, построение графика функции или вывод комментариев типографским шрифтом.


семестр 3:


1. Рекурсивные подпрограммы дополняют тему “Подпрограммы” и используются для ряда специфических задач(кривые Гильберта, “Ханойские башни”, расстановка 8 ферзей и др.)

2. Любая большая программа состоит из модулей. При изучении модулей следует уделить внимание структуре модуля и структуре программы с модулем.

3. Динамические структуры данных являются обобщением темы “Записи” введением со­ставного указателя. Составной указатель следует рассматривать, как рекурсивный тип данных, позволяющий каждый узел из данных связать с точно таким же узлом и расположить данные в динамической памяти, образуя список, или динамический массив. Все операции со списками удобно представить в виде подпрограмм. Подобный подход дает возможность решать задачи любой сложности, объединяя подпрограммы в программу в исходном виде, или незначительно их модифицируя. Операцию поиска узла с заданной информационной частью и его удаление удобно оформить в виде рекурсивной логической функции. Такой вид функции позволяет ее использовать в заголовке цикла while и решать сложные задачи.

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

6. При рассмотрении двунаправленного списка следует обратить внимание на преимуще­ство и недостатки его использования в сравнение с однонаправленным списком.

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

8. При рассмотрении наследования следует обратить внимание на его различные варианты: наследование без переопределения методов, наследование с переопределением методов. Во втором варианте ввести в рассмотрение виртуальный метод и конструктор, которые обеспечивают позднее связывание классов.

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

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

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


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

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

1. Перечислить и кратко охарактеризовать основные языки высокого уровня.

2. Какими действиями наделяет компилятор оператор присваивания?

3. Каким образом можно преобразовать вещественное число в целое?

4. С помощью каких функций можно установить взаимно-однозначное соответствие между символом и его порядковым номером в таблице кодировки ASCII?

5. Как показать, что заданное целое число b является делителем целого числа числа a?

6. С какой целью применяется оператор readln без параметров?

7. Что можно сказать о количестве повторений операторов, расположенных в цикле for и в цикле while?

8. Могут ли операторы цикла while не повториться ни разу? Ответ обосновать.

9. Могут ли операторы цикла repeat ... until не повториться ни разу? Ответ обосновать.

10. Как задать массив из констант?

11. Как организовать вывод на экран двумерного массива в виде матрицы?

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

13. Каким образом будет формироваться массив из случайных чисел, если перед формиро­ванием опустить оператор randomize?

14. Чем отличается объявленная длина строки от реальной длины строки?

15. Каким образом следует добавлять символы к строке: заносить символ в элемент строки за последним значащим символом или в качестве операндов использовать идентификатор строки и добавляемый символ?

Что будет в первом случае, а что во втором?

16. Элементы строки нумеруются с 1. Какая информация находится в нулевом элементе строки? С помощью какой функции она может быть выделена?

17. При каком условии процедуры val и str по результату своей работы можно считать вза­имно обратными?

18. Можно ли организовать работу оператора множественного выбор case, чтобы не исполь­зовать альтернативу else? Или существуют такие задачи, когда без альтернативы нельзя обойтись?

19. При работе с файлами, какой из операторов всегда обязателен?

20. Чем отличается текстовый файл от файла, состоящего из массива строк?

21. Чем отличаются объявления двоичного файла и текстового файла?

22. Для чего необходим оператор seek?

23. В чем преимущество и недостаток использования оператора goto?

24. Какие типы данных используются при объявлении множеств? Ответ обосновать.

25. Как задать пустое множество и организовать заполнение множества элементами?

26. Какие отличия в структурах процедуры и функции?

27. Можно ли, организовать работу функции таким образом, чтобы она возвращала более одного параметра?

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

29. Какой из методов сортировки работает быстрее: простыми включениями или бинарными включениями?

Результат обосновать.

30. Что общее у всех простых методов сортировки?

31. В каких случаях удобно использовать составной тип данных?

32. В каких случаях удобно использовать оператор присоединения with?

33. Чем отличаются процедуры ClrScr и ClrEol?

34. Чем отличаются процедуры readln и readkey?

35. Как инициализировать графический режим работы монитора?

36. Как вывести на экран в графическом режиме целое или вещественное число?

37. Какие из побитовых операций позволяют выделить любой двоичный разряд в целом числе?

38. Какие из побитовых операций позволяют инвертировать любой двоичный разряд в це­лом числе?

39. Чем прямая рекурсия отличается от косвенной рекурсии?

40. Когда используется директива forward?

41. В каких задачах не рекомендуется использовать рекурсию?

42. С какой целью используются модули и как они организуются?

43. Что понимается под словосочетанием: “разыменование указателя”?

44. С какой целью используются операторы New и Dispose?

45. Какое минимальное количество полей в составном указателе, определяющем узел од­нонаправленного списка?

46. Чем с формальной точки зрения отличается линейный список от кольцевого?

47. Какие основные операции для обработки списков?

48. Для каких структур данных используются принципы обслуживания LIFO и FIFO?

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

50. В чем отличие однонаправленного списка от двунаправленного при их итерации?

51. Чем отличается класс от записи,

52. Для чего необходимы виртуальные методы и конструкторы?

53. Может ли составной указатель содержать методы?

54. В чем основные отличия улучшенных сортировок от простых?

55. Что такое инвариант рекурсивного алгоритма?

56. Для чего необходима запись с вариантами Registers?

57. Существует ли возможность одновременного просмотра всех файлов указанной группы, если заранее неизвестно их количество?

58. Можно ли из программы на языке Pascal удалить какой-либо внешний файл или пере­именовать его?


^
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 ПРОГРАММНОЕ И МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ПРАКТИКИ

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





Скачать 471,57 Kb.
оставить комментарий
Попов А.А
Дата04.03.2012
Размер471,57 Kb.
ТипУчебно-методический комплекс, Образовательные материалы
Добавить документ в свой блог или на сайт

отлично
  1
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Документы

наверх