Учебно-методический комплекс по дисциплине ен. Ф. 041. Программирование индекс по гос/наименование дисциплины

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

Содержание


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

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

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


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

УТВЕРЖДАЮ


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

« » 2009 г.


/Попов Н.И./

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


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


ЕН.Ф.041. Программирование

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


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

010701 - Физика




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


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

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


Йошкар-Ола

2009


УТВЕРЖДЕНО

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

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

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


Протокол №

« » 200 г.

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

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

УТВЕРЖДЕНО


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

Протокол №

« » 200 г.

Председатель УМК / /

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




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


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

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

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

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

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

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

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

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

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

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

УТВЕРЖДАЮ


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

/Попов Н.И./

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


« » 2009 г.

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


Учебная дисциплина Программирование

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

ЕН.Ф.041

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


Специальность 010701 - Физика

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


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

(название)


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




Лекции 18, 18

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

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

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

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

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

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

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

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

(семестр)

Зачет 2

(семестр)

Экзамен 3

(семестр)


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

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


Йошкар-Ола

2009

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


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

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

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

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

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

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

« » 20 г. « » 20 г.

Косов А.А.

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


СОГЛАСОВАНО с выпускающей кафедрой

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


протокол заседания № от « » 20 г.

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


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

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



Учебный

год

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

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


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

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

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



























































































































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



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




ЕН.Ф.04

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







Программирование (язык Ñ,C++/Pascal): Характеристики языка. Структура программы. Принципы структурного программирования. Алгоритмы. Типы данных. Переменные и константы. Описание переменных. Массивы. Основные арифметические операции. Циклы. Условные операторы. Стандартные функции ввода/вывода. Передача параметров при вызове функций. Глобальные и локальные переменные. Строки. Указатели. Структуры. Работа с файлами. Интерактивная графика. Компьютерная анимация. Современные методы программирования. Понятие об объектном программировании.






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

В результате изучения дисциплины “Программирование” во 2 семестре студенты должны приобрести систематические знания об основных операторах алгоритмического языка Паскаль, уметь составлять простые программы.

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


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

Лекции, самостоятельная работа


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

Проведение коллоквиума, зачет, экзамен


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

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



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

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

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

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

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

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

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

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

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

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

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

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

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


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




№ п/п раздела

№ п/п темы

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

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

Всего

В том числе

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

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

Лекции

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

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

1

2

3

4

5

6

7

8







семестр 2:



















1

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

2

2













2

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

2

2













3

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

3

3













4

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

3

2







1




5

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

3

2







1




6

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

3

3













7

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

2

2













8

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

2

2
















3 семестр



















1

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

3

2







1




2

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

6

6













3

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

4

4













4

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


4

4













5

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

2

2



















20,19

18, 18












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


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


№№ п/п

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

Кол-во
часов


1

2

3




2 семестр




1

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

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

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

2

2

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

2

3

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

3

4

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

2

5

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

2

6

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

3

7

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

2

8

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

2




3 семестр




1

Рекурсивные подпрограммы (прямая и косвенная рекурсии, директива forward, схема косвенной рекурсии)

2

2

Динамические структуры данных (указатели, разыменование указателей, операторы New и Dispose, ссылочный тип, объявление списка, основные операции для списков: формирование линейного списка, рекурсивная процедура формирование линейного списка, распечатка линейного списка, преобразование линейного списка в кольцевой список, преобразование кольцевого списка в линейный список, распечатка кольцевого списка, удаление линейного списка, удаление узла с заданной информационной частью из линейного списка, вставка узла в линейный список; двоичное дерево: идеально сбалансированное дерево, дерево поиска, задача поиска по дереву с включением, удаление дерева, различные варианты обхода дерева, АВЛ-деревья, балансировка дерева, однократные LL- и RR-повороты, двукратные LR- и RL-повороты.

6

3

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

4

4

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

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

4

5

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

2



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


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



№№ п/п

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

Кол-во
часов


1

2

3











































































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


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


№№ п/п

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

Кол-во
часов


1

2

3




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

1




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

1




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

1






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: практикум. – СПб.: Питер, 2002. - 256с.

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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

семестр 2:

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. При более наглядной иллюстрации алгоритма иногда необходимо напечатать числа разным цветом, вывести сменяющие друг друга числа в одном месте экрана. Для этих целей используют функции модуля Crt.

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


семестр 2:


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

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

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

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

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

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

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

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. При работе с файлами, какой из операторов всегда обязателен?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

семестр 2:

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

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

3. Преобразование типов. Функции trunc, round, div, mod, chr, ord.

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

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

6. Условный оператор if. Программирование двойных неравенств.

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

8. Оператор цикла while. Реализация с помощью цикла while алгоритма образования числа с обратным порядком цифр относительно исходного числа.

9. Оператор цикла repeat …until. Реализация с помощью цикла repeat … until алгоритма определения корня уравнения итерационным методом.

10. Объявление массива. Ввод элементов массива. Задание массива в виде последовательности констант.

11. Формирование массива с помощью генератора случайных чисел. Объявление двумерного массива и его распечатка в виде матрицы.

12. Объявление символьного массива. Формирование символьного массива с помощью генератора случайных чисел.

13. Объявление строки. Объявленная длина строки. Инициализация строки. Реальная длина строки.

14. Подпрограммы Length, Insert и Delete.

15. Подпрограммы Copy, Pos и Val.

16. Циклический сдвиг символов в строке.

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

18. Реализация алгоритма удаления лишних пробелов в строке с использованием оператора case.

19. Реализация алгоритма деления строки на слова с использованием оператора case.

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

21. Использование функций eof и eoln при обработке файлов.

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

23. Организация обмена элементов в двоичном файле.

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

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

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

27. Программирование с использованием множеств: объявление множества; инициализация множества; принадлежность элемента множеству, операции над множествами.

28. Алгоритм определения одинаковых символов двух строк с использованием множеств.

29. Оператор goto. Формирование массива из случайно сгенерированных различных целых чисел с использованием оператора goto.

30. Реализация алгоритма формирования массива из случайно сгенерированных различных целых чисел без использования оператора goto.

31. Сортировка прямыми включениями.

32. Сортировка бинарными включениями.

33. Сортировка прямым выбором.

34. Сортировка прямым обменом.

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

36. Подпрограммы Crt.


семестр 3:

1. Условный оператор if. Программирование двойных неравенств.

2. Оператор цикла for. Вычисления c помощью цикла for суммы и произведения чисел.

3. Оператор цикла while. Реализация с помощью цикла while алгоритма образования числа с обратным порядком цифр относительно исходного числа.

4. Оператор цикла repeat …until. Реализация с помощью цикла repeat … until алгоритма определения корня уравнения итерационным методом.

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

6. Использование функций eof и eoln при обработке файлов.

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

8. Организация обмена элементов в двоичном файле.

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

10. Указатели. Разыменование указателей. Операторы New и Dispose.

11. Связь статических и динамических переменных. Ссылочный тип.

12. Объявление списка. Инициализация списка. Итерация списка.

13. Формирование линейного списка.

14. Формирование линейного списка (рекурсивная процедура)

15. Распечатка линейного списка.

16. Преобразование линейного списка в кольцевой список.

17. Преобразование кольцевого списка в линейный список.

18. Распечатка кольцевого списка.

19. Удаление линейного списка.

20. Удаление узла с заданной информационной частью из линейного списка.

21. Вставка узла в линейный список.

22. Вставка узла в линейный список (рекурсивная процедура).

23. Стек.

24. Очередь.

25. Тип данных для динамического массива. Формирование динамического массива.

26. Выбор элемента по индексу в динамическом массиве. Изменение элемента по индексу.

27. Тип данных для двунаправленного списка. Формирование двунаправленного списка. Распечатка двунаправленного списка.

28. Сортировка Шелла.

29. Сортировка с помощью двоичного дерева.

30. Быстрая сортировка.

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

32. Объявление класса. Программирование с использованием классов.

33. Наследование без переопределения методов класса.

34. Наследование с переопределением методов класса.

Виртуальные методы. Конструкторы.

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

V СЛОВАРЬ ТЕРМИНОВ И ПЕРСОНАЛИЙ
Алгоритм - последовательность действий при решении задачи.
Программа - реализация алгоритма на языке программирования.

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

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

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

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

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

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

Файловая переменная - переменная программы, которая ставится в соответствие внешнему файлу.

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

Функция - подпрограмма, которая возвращает значение.

Процедура - подпрограмма, которая не возвращает значение.

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

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

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

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

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

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

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


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

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

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

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