МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Государственное образовательное учреждение высшего профессионального образования "Ижевский государственный технический университет" УТВЕРЖДАЮ Ректор ______________ И.В. Абрамов "_____"________________ 200__г. РАБОЧАЯ ПРОГРАММА По дисциплине "Программирование на языке высокого уровня" для специальностей 220300 – Системы автоматизированного проектирования 220200 - Автоматизированные системы обработки информации и управления 552800 – Информатика и вычислительная техника Форма обучения дневная Семестр 1-2 Лекции Практические (семинарские) работы Лабораторные работы Контрольные работы (семестр, кол-во) Курсовая работа (семестр) Курсовой проект (семестр) Зачеты (семестр) Экзамены (семестр) Самостоятельная работа Всего (аудиторных занятий) Всего 34+34 ч. 17+17 ч. 17+17 ч. 1(3),2(3) Ижевск 2003 1 2 124 ч. 136 ч. 260 ч. 2 Кафедра "Автоматизированные системы обработки информации и управления". Составители: доцент каф. АСОИУ Барков Игорь Александрович, ст. преподаватель каф. АСОИУ Коробейников Андрей Александрович, ст. преподаватель каф. АСОИУ Шутов Евгений Анатольевич. Рабочая программа составлена на основании государственного образовательного стандарта высшего профессионального образования и утверждена на заседании кафедры Протокол от "____" ________________ 200 г. № ______. Заведующий кафедрой ____________________ В.Н. Кучуганов "____"____________ 200 г. СОГЛАСОВАНО: Председатель учебно-методической комиссии по специальности ____________________ В.Н. Кучуганов "____"____________ 200 г. Количество часов рабочей программы соответствует количеству часов рабочего учебного плана специальности 220300 Системы автоматизированного проектирования, 220200 Автоматизированные системы обработки информации и управления, 552800 Информатика и вычислительная техника. Начальник учебно-инженерного отдела ____________________ А.М. Ефимова "____"____________ 200 г. 3 1. ЦЕЛЬ И ЗАДАЧИ ИЗУЧЕНИЯ ДИСЦИПЛИНЫ 1.1. Цель преподавания дисциплины Получение базовых теоретических сведений и практических навыков программирования на языке высокого уровня (ЯВУ). 1.2. Задачи изучения дисциплины: - изучение структур данных компьютера и языка высокого уровня; - изучение приемов алгоритмизации и программирования при решении задач на ЭВМ; - изучение объектно-ориентированной методологии решения задач на ЭВМ; - освоение системы программирования Turbo Pascal и Delphi; - получение навыков оформления программной документации. 1.3. Место дисциплины в учебном процессе Дисциплина является базовой для изучения других дисциплин специальности, связанных с программированием. 1.4. Структура дисциплины Дисциплина рассчитана на два семестра. В первом семестре раскрываются общие концепции языков высокого уровня. Подробно рассматривается язык высокого уровня Turbo Pascal. Уделяется особое внимание алгоритмизации и структурному подходу к написанию программ. Делается акцент на операции ввода-вывода и на динамические структуры памяти. Во втором семестре подробно рассматривается объектноориентированный подход к написанию программ. Детально рассматриваются свойства объектов с точки зрения программирования. Изучается среда программирования Delphi. Частично рассматривается взаимодействие программных систем. 2. ТЕМАТИЧЕСКИЙ ПЛАН УЧЕБНОЙ ДИСЦИПЛИНЫ 2.1. Наименование тем, объем в часах Часть 1. Программирование в среде Паскаль Максимальная Количество аудиторных часов Наименование учебная при очной форме обучения тем и разденагрузка стуВсего лекц. практ. лаб. лов дента, час 1. Основные компоненты языка. 2. Структура Паскаль программы. 3. Базовые типы данных. 5 3 2 8 6 2 15 9 3 Самостоятельная работа студентов 1 2 2 2 2 2 4 6 4 4. Составные части операторов. 5. Конструирование типов данных (ТД). 6. Организация ввода-вывода. Файлы. 7. Алгоритмы записи/чтения из файла. 8. Расположение данных в текстовом файле. 9. Процедуры и функции. 10. Модули. 11. Адресный тип данных и динамические структуры данных. 12. Обработка линейных списков. 13. Обработка деревьев. 14. Обработка графов. Итого: 9 7 2 2 3 2 9 7 3 2 2 2 15 9 5 2 2 6 9 5 2 2 1 4 8 4 2 1 1 4 7 3 2 1 4 3 1 1 13 5 3 10 2 2 15 5 3 10 2 2 136 68 34 2 2 8 8 2 10 8 17 17 68 Часть 2. Объектно-ориентированная технология проектирования программных систем (ООТППС) Максимальная Количество аудиторных часов Наименование учебная при очной форме обучения Самостоятельная тем и разделов нагрузка стуработа студентов Всего лекц. практ. лаб. дента, час 1. Методы проектирования программных систем. Абстрагирование. 2. Методы проектирования программных систем. Инкапсуляция. 3. Методы проектирования программных систем. Модульность. 4. Методы проектирования программных систем. Иерархия. 5. Методы проектирования программных систем. Типизация. 6. Методы проектирования программных систем. Параллелизм. 7. Методы проектирования программных систем. Сохраняемость. 1,33 0.33 0.33 1 1,33 0.33 0.33 1 1,34 0.34 0.34 1 1,33 0.33 0.33 1 1,33 0.33 0.33 1 1,34 0.34 0.34 1 1,33 0.33 0.33 1 5 8. Логическая и физическая модели. 9. Статическая и динамическая модели. 10. Изобразительные средства описания моделей. Диаграммы классов. 11. Изобразительные средства описания моделей. Диаграммы объектов. 12. Изобразительные средства описания моделей. Диаграммы взаимодействия. 13. Изобразительные средства описания моделей. Диаграммы состояний и переходов. 14. Изобразительные средства описания моделей. Диаграммы модулей. 15. Изобразительные средства описания моделей. Диаграммы процессов. Итого: 2,33 0.33 0.33 2 2,34 0.34 0.34 2 6 3 1 2 3 5 3 1 2 2 3 1 1 2 3 1 1 2 2,5 0.5 0.5 2 2,5 0.5 0.5 2 36 12 8 4 0 24 Часть 3. Объектно-ориентированное программирование в среде Делфи Наименование тем и разделов 1. Основные понятия 2. Базовые структуры данных (RTTI). 3. Класс TObject. 4. RTTI класса и RTTI объекта. Жизнь классов и объектов. 5. Доступ к RTTI и методы класса. 6. Поля и свойства 7. Статические методы. 8. Виртуальные методы. 9. Динамические методы. 10. Инкапсуляция. 11. Наследование. 12. Полиморфизм. 13. Важнейшие классы. TPersistent. 14. Важнейшие классы. TComponent. 15. Важнейшие классы. TApplication. Максимальная учебная нагрузка студента, час 2 Количество аудиторных часов при очной форме обучения практ. лаб. Самостоятельная работа студентов всего лекц. 1 1 1 3 1 1 2 3 2 1 1 1 1 1 2 1 1 1 3 7 2 5 1 1 1 2 2 1 2 8 6 2 2 2 2 6 4 1 1 2 2 7 8 8 5 6 6 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 1 1 1 2 1 1 1 6 16. Важнейшие классы. TScreen. 17. Важнейшие классы. TPrinter. 18. Важнейшие классы. TForm. 19. Важнейшие классы. TClipBoard. 20. Обработка событий. 21. Обработка сообщений Windows. 22. Обработка исключительных ситуаций. 23. Разработка приложений по стандарту MDI. 24. Разработка приложений по стандарту SDI. Итого: 2 1 1 1 2 1 1 1 2 1 1 1 2 1 1 1 3 2 1 1 1 3 2 1 1 1 4 2 1 1 2 4 3 1 2 1 2 1 1 88 56 26 1 13 17 32 2.2. Тематический план лекционных занятий Семестр I № п/п 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Объем в часах Наименование темы лекции Основные компоненты языка. Способы документирования синтаксиса. Синтаксические диаграммы. Формы БНФ. Структура Паскаль программы. Раздел объявления модулей. Раздел объявления констант. Раздел объявления типов. Раздел объявления переменных. Раздел описания процедур и функций. Раздел операторов. Базовые типы данных. Целый тип данных. Вещественный (действительный) тип данных. Литерный (символьный) тип данных. Строковый тип данных. Логический тип данных. Составные части операторов. Составной оператор. Оператор условия. Операторы цикла. Конструирование типов данных (ТД). Перечислимый тип данных. Ограниченный тип данных(диапазон). Регулярный тип данных (массив). Комбинированный тип данных (запись). Множественный тип данных. Организация ввода-вывода. Файловый тип данных. Двоичные типизированные файлы. Текстовые файлы. Процедуры и функции для работы с двоичными типизированными и текстовыми файлами. Алгоритмы записи/чтения из файла. Стандартный алгоритм чтения всего файла. Не типизированные файлы. Расположение данных в текстовом файле. Запись/чтение целых, вещественных, литерных. Форматированный вывод. Процедуры и функции. Предназначение процедур и функций. Описание процедур и функций. Формальные параметры. Вызов процедур и функций. Модули. Динамические структуры данных. Указательный (адресный) тип данных. Понятие «куча». Процедуры и функции для работы с динамической памятью. Организация линейного списка в динамической памяти. Обработка линейных списков. Стек. Организация стека. Рекурсия. Рекурсивные алгоритмы. Организация древовидной структуры данных в динамической памяти. Виды деревьев. Обработка деревьев. Организация графов в динамической памяти. Обработка графов. Итого: 2 2 3 2 3 4 2 2 3 3 2 2 2 2 34 7 Семестр II № п/п 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Объем в часах Наименование темы лекции Методы проектирования программных систем. Абстрагирование. Инкапсуляция. Модульность. Иерархия. Типизация. Параллелизм. Методы проектирования программных систем. Сохраняемость. Логическая и физическая модели. Статическая и динамическая модели. Изобразительные средства описания моделей. Диаграммы классов. Изобразительные средства описания моделей. Диаграммы объектов. Диаграммы взаимодействия. Изобразительные средства описания моделей. Диаграммы состояний и переходов.Диаграммы модулей . Диаграммы процессов. Базовые структуры данных (RTTI). Класс TObject. Жизнь классов и объектов. Доступ к RTTI и методы класса. Инкапсуляция. Свойства. Наследование. Методы. Полиморфизм. Статические методы. Виртуальные методы. Динамические методы. Важнейшие классы. TPersistent. Важнейшие классы. TComponent. . TApplication. Важнейшие классы. TScreen. TPrinter. Важнейшие классы. TForm. TclipBoard. Разработка приложений по стандарту MDI, SDI. Обработка исключительных ситуаций. Итого: 2 2 2 2 2 2 2 2 3 1 2 2 2 2 2 2 2 34 2.3. Тематический план практических занятий № п/п 1 2 3 4 № п/п 1 2 3 4 Семестр I Наименование темы практического занятия Итого: Объем в часах 4 4 7 2 17 Итого: Объем в часах 4 7 4 2 17 Заполнение двумерного массива заданным рисунком Системы счисления Работа с файлами и динамической памятью Рекурсивные алгоритмы Семестр II Наименование темы практического занятия Поля. Методы. Свойства. Инкапсуляция. Наследование. Статические, виртуальные, динамические методы. Обработка исключительных ситуаций. Работа с классами 2.4. Тематический план лабораторных работ № п/п 1 2 3 4 Семестр I Наименование темы лабораторного занятия Работа с двумерными массивами Сортировка двумерного массива по заданной схеме Работа с двоичными типизированными и текстовыми файлами Работа с типами данных Объем в часах 4 5 4 4 Итого: 17 8 № п/п 1 2 3 4 Семестр II Наименование темы лабораторного занятия Работа с классами в Delphi Работа с классами Tcanvas и Tclipboard в Delphi Работа с наборами компонентов Delphi Модификация существующих компонентов Delphi Итого: Объем в часах 4 4 4 5 17 2.5. Задачи для проведения практических занятий Семестр I 1. Написать программу вычисления треугольника, если известны длины 2-х его сторон и величина угла между этими сторонами. 2. Написать программу решения квадратного уравнения a*x2+b*x+c=0 при заданных коэффициентах a,b,c. 3. Все максимальные элементы данной целочисленной квадратной матрицы порядка 10 заменить нулями. 4. Заполнить случайными числами массив из 10 чисел. Ввести массив и вывести минимальный элемент. 5. Дано две матрицы. Найти их произведение и сумму. 6. Дана матрица. Транспонировать данную матрицу. 7. Дано целочисленная матрица порядка N. Найти номера строк, элементы которых образуют симметричную последовательность. 8. Дана действительная матрица n*n. Просмотреть те элементы, которые расположены в строках, которые начинаются с отрицательного элемента. Найти сумму тех из них, которые расположены ниже главной диагонали. 9. Дана квадратная матрица, заполненная целыми числами в произвольном порядке, размерностью N*N. Необходимо отсортировать данную матрицу по неубыванию (невозрастанию) одним из методов сортировки, по выданному рисунку. Учесть различные алгоритмы для чётного и нечётного значения переменной N. 10. Дано: натуральное число N. Среди чисел от 1 до N найти все такие значения, последние цифры которых представляется в виде квадрата последней цифры. 6*6=36; 5*5=25. 11. Дана целочисленная квадратная матрица порядка 8. Найти наименьшее из значений элементов столбца, которые обладают наибольшей суммой модулей элементов, если таких столбцов несколько, то взять первый. 12. .Дано натуральное число n, действительное число x, действительная матрица размерностью n*2n. Получить последовательность B1,…,Bn из нулей и единиц, где Bi=1 если элементы i-й строки не превосходят x, и Bi=0 в противном случае. 13. Дан текстовый файл. Нужно проверить баланс скобок. Семестр II 1. Написать программу «Секундомер». Предусмотреть поля для отображения текущего времени, отображения интервала смены показаний текущего времени. Предусмотреть кнопки пуска и останова секундомера, а также сброса текущего времени. Для построения экранной формы использовать стандартные визуальные компоненты TLabel, TEdit, TButton, TUpDown, TForm. Для управления секундомером использовать стандартный невизуальный компонент TTimer. Общий вид экрана приведен на рисунке. 2. Разработать программу «Выбор оптимальной схемы расчета за взятый по кредиту товар». Общий вид экрана приведен на рисунке. Поле «Сумма кредита» показывает стоимость товара. Поле «Месяц – Сумма» показывает суммы, которые нужно вносить по месяцам. При расчетах по кредиту можно вносить дополнительные взносы. Возможны три схемы дополнительных взносов. 9 Схема 1. Одинарный взнос. В этом случае выбирается позиция «Одинарный». После выбора этой схемы на поле «Дополнительный взнос» появляется надпись «Месяц взноса» и поле, в которое вводится номер месяца. Кроме того, указывается сумма взноса. После нажатия на кнопку «Вычислить» выводится распределение выплачиваемых сумм по месяцам. Считается, что после внесения одинарного взноса оставшаяся по кредиту сумма равномерно распределяется по оставшимся месяцам. Схема 2. Диапазон. В этом случае выбирается позиция «Диапазон». После выбора этой схемы на поле «Дополнительный взнос» появляется надпись «Месяц первого взноса» и поле, в которое вводится номер месяца, а также «Месяц последнего взноса» с полем ввода. Кроме того, указывается ежемесячная сумма дополнительного взноса. После нажатия на кнопку «Вычислить» выводится распределение выплачиваемых сумм по месяцам. Считается, что после внесения каждого взноса оставшаяся по кредиту сумма равномерно распределяется по оставшимся месяцам. Схема 3. Во все месяцы. В этом случае выбирается позиция «Во все». После выбора этой схемы на поле «Дополнительный взнос» появляется надпись «Сумма взноса» с полем ввода ежемесячной дополнительной суммы взноса. После нажатия на кнопку «Вычислить» выводится распределение выплачиваемых сумм по месяцам. Считается, что после внесения каждого взноса оставшаяся по кредиту сумма равномерно распределяется по оставшимся месяцам. Общий вид экрана приведен на рисунке. Для построения экранной формы использовать стандартные визуальные компоненты TLabel, TEdit, TButton, TGroupBox, TStringGrid, TForm. 3. Разработать программу ввода записей из поля TEdit в поле TMemo. Общий вид экрана приведен на рисунке. 10 4. Написать программу обработки каталогов. Общий вид экрана приведен на рисунке. 5. Написать программу «Календарь». Общий вид экрана приведен на рисунке. 11 2.6. Варианты лабораторных работ Лабораторная работа 1-2. Задание Цель работы: произвести сортировку элементов квадратной матрицы в соответствии с заданной схемой (I), порядком сортировки (II) и методом упорядочивания (III). I. Предлагаемые варианты путей, по которым производится сортировка: 1 2 3 4 5 6 7 8 II. Порядок сортировки: по не возрастанию, по не убыванию III. Метод сортировки: «пузырьком» (перестановками), вставками, выборкой, «быстрая». Примечание 1. Рассмотреть варианты четного и нечетного размера исходной матрицы. Примечание 2. «По не возрастанию» («По не убыванию») означает, что среди значений элементов матрицы могут быть повторяющиеся, тогда каждый элемент должен быть не более (не менее) предыдущего. Указание. Запрещается вводить дополнительные массивы, вся сортировка осуществляется только в исходном двумерном массиве. Лабораторная работа 3. Задание 1. 2. 3. 4. 5. Задать запись с 4-мя полями (для каждого варианта свои поля) Записать в двоичный (типизированный) файл минимум 3-4 записи Распечатать созданный двоичный файл побитно В отчете выделить каждую запись и каждое поле в записи Объяснить содержимое каждого байта Лабораторная работа 4. Изучение текстового редактора Microsoft Word и электронных таблиц Microsoft Excel Семестр II Лабораторная работа 1-2. Задание Нарисовать заданную геометрическую фигуру, которая перемещается по заданной траектории и постоянно изменяет свой масштаб («дышит»). Программу писать и отлаживать в среде программирования Delphi 3. На форме приложения предусмотреть: регулятор относительного размера траектории; регуляторы диапазона и скорости масштабирования фигуры; регулятор скорости перемещения фигуры по траектории; настройку цвета фона и тона прорисовки. Приложение должно иметь законченный вид, быть проработанным с дизайнерской и эргономической точки зрения. ПРИМЕЧАНИЯ. 1. Окно прорисовки на форме приложения должно иметь значение alClient в опции Align (всегда занимать максимальное пространство на форме). 2. При изменении размеров формы приложения масштаб и центр прорисовки должны соответственно измениться, т.е. изображение всегда должно быть вписано в размеры формы окна прорисовки. 12 3. Координаты точек траектории и вершин фигуры целесообразно выбирать в диапазоне от -1 до 1. 4. В случае использования таймера для перемещения фигуры по траектории с целью обеспечения эффекта мультипликации (непрерывного движения со скоростью прорисовки 25 кадров в секунду) интервал отсчета следует принять равным 40мс. Скорость перемещения фигуры по траектории никоим образом не связана со скоростью прорисовки кадров, а определяется величиной шага смещения (чем больше шаг – тем выше скорость). Следует избегать перегрузки обработчика таймера вычислительными действиями, так как это приводит к «торможению» работы всей операционной системы. Варианты траекторий Варианты фигур 1. 2. 5. 6. 3. 4. 7. 8. 1. 2. 3. 4. 5. 6. 7. 8. Лабораторная работа 3-4. Задание Используя класс TClipboard в Delphi 3 зарегистрировать собственный формат обмена информацией через Clipboard (буфер обмена). Предусмотреть перехват события WM_DRAWCLIPBOARD – изменение содержимого буфера обмена, то есть при изменении буфера обмена одной программой другие должны сразу отобразить новое содержимое буфера «у себя». Пояснения и рекомендации 1. В качестве программы, передающей и принимающей данные из буфера обмена использовать программу лабораторной работы №1, соответственно расширив ее интерфейс: кнопками «Копировать» и «Вставить»; текстовым полем для отображения передаваемой информации; меню с командами «Копировать», «Вставить», «Вырезать» и «Удалить», сохранить/читать из текстового файла. Предусмотреть возможность редактирования фигуры из текстового поля. 2. Добавить в окно прорисовки счетчик кадров, для отображения количества кадров за одну секунду. В программе должно быть объявлено не менее четырех классов: форма приложения, фигура, траектория, буфер обмена. При чтении/записи с помощью OpenDialog и SaveDialog последние должны в качестве стартового каталога предоставлять текущий каталог, где размещается приложение. 3. В качестве данных, подлежащих обмену через Clipboard, взять координаты вершин фигуры (см. задание на ЛР1). 4. При чтении фигуры из буфера обмена в первую очередь проверяется наличие в нем пользовательского (двоичного) формата. В случае отсутствия в буфере обмена пользовательского формата извлекается текстовый формат. 5. Если текст, передаваемый вашему приложению, содержит в числах координат недопустимые символы, то используйте блок try .. except, чтобы корректно обработать преобразование (например StrToFloat) и выдать соответствующее сообщение на экран (например ShowMessage). При преобразовании из строки в число с помощью функции StrToFloat необходимо помнить, что представление десятичной точ- 13 ки в операционной системе Windows настраивается пользователем и для корректного перевода потребуется использование переменной DecimalSeparator. 6. Не рекомендуется многократно опрашивать (например, в циклах) компоненты имеющие событие OnChange. 3. ТЕМАТИКА САМОСТОЯТЕЛЬНЫХ РАБОТ (РЕФЕРАТОВ, КОНТРОЛЬНЫХ РАБОТ) Контрольные работы. Семестр I 1. 2. 3. Заполнение двумерного массива заданным рисунком. Преобразование чисел в двоичную и шестнадцатеричную системы счисления. Работа с файлами и динамической памятью. 4. 5. 6. Поля. Методы. Свойства. Инкапсуляция. Наследование. Статические, виртуальные, динамические методы. Обработка исключительных ситуаций. Контрольные работы. Семестр II 4. ВОПРОСЫ К ЗАЧЕТУ 1) Паскаль. Типы данных в языках программирования. 2) Паскаль. Базовые типы данных. 3) Паскаль. Оператор присваивания. 4) Паскаль. Оператор условный. 5) Паскаль. Оператор выбора. 6) Паскаль. Оператор цикла с порядком. 7) Паскаль. Оператор цикла с предусловием. 8) Паскаль. Оператор цикла с постусловием. 9) Паскаль. Конструирование типов данных. 10) Паскаль. Перечислимый тип данных. 11) Паскаль. Ограниченный тип данных (диапазон). 12) Паскаль. Регулярный тип данных (массив). 13) Паскаль. Комбинированный тип данных (запись). 14) Паскаль. Множественный тип данных. 15) Паскаль. Модель ввода-вывода. 16) Паскаль. Двоичные (типизированные) файлы. 17) Паскаль. Текстовые файлы. 18) Паскаль. Расположение данных в текстовом файле. 19) Паскаль. Процедуры и функции. Назначение, принципы построения и использования. 20) Паскаль. Процедуры и функции. Передача параметров. 21) Паскаль. Динамические структуры данных. 22) Паскаль. Обработка линейных списков. 23) Паскаль. Обработка очередей. 24) Паскаль. Обработка стеков. 25) Паскаль. Обработка деревьев. 26) Паскаль. Обработка графов. 14 5. ВОПРОСЫ К ЭКЗАМЕНУ Часть 1. Объектно-ориентированная технология проектирования программных систем (ООТППС) 1) ООТППС. Методы проектирования программных систем. Абстрагирование. 2) ООТППС. Методы проектирования программных систем. Инкапсуляция. 3) ООТППС. Методы проектирования программных систем. Модульность. 4) ООТППС. Методы проектирования программных систем. Иерархия. 5) ООТППС. Методы проектирования программных систем. Типизация. 6) ООТППС. Методы проектирования программных систем. Параллелизм. 7) ООТППС. Методы проектирования программных систем. Сохраняемость. 8) ООТППС. Логическая и физическая модели. 9) ООТППС. Статическая и динамическая модели. 10) ООТППС. Изобразительные средства описания моделей. Диаграммы классов. 11) ООТППС. Изобразительные средства описания моделей. Диаграммы объектов. 12) ООТППС. Изобразительные средства описания моделей. Диаграммы взаимодействия. 13) ООТППС. Изобразительные средства описания моделей. Диаграммы состояний и переходов. 14) ООТППС. Изобразительные средства описания моделей. Диаграммы модулей. 15) ООТППС. Изобразительные средства описания моделей. Диаграммы процессов. Часть 2. Объектно-ориентированное программирование в среде Делфи 1) Делфи. Базовые структуры данных (RTTI). 2) Делфи. Класс TObject. 3) Делфи. RTTI класса и RTTI объекта. Жизнь классов и объектов. 4) Делфи. Доступ к RTTI и методы класса. 5) Поля и свойства 6) Делфи. Статические методы. 7) Делфи. Виртуальные методы. 8) Делфи. Динамические методы. 9) Делфи. Инкапсуляция. 10) Делфи. Наследование. 11) Делфи. Полиморфизм. 12) Делфи. Важнейшие классы. TPersistent, TComponent. 13) Делфи. Важнейшие классы. TApplication. 14) Делфи. Важнейшие классы. TScreen. 15) Делфи. Важнейшие классы. TPrinter. 16) Делфи. Важнейшие классы. TForm. 17) Делфи. Важнейшие классы. TClipBoard. 18) Делфи. Важнейшие классы. TStream. 19) Делфи. Обработка событий. 20) Делфи. Обработка сообщений Windows. 21) Делфи. Обработка исключительных ситуаций. 22) Делфи. Разработка приложений по стандарту MDI. 23) Делфи. Разработка приложений по стандарту SDI. 6. ДОПОЛНИТЕЛЬНЫЕ СРЕДСТВА, ИСПОЛЬЗУЕМЫЕ ПРИ ОБУЧЕНИИ 1. Компьютеры, работающие под управлением операционных систем Windows NT 2. Среда разработки Borland Pascal 7.0, Delphi 3 и выше. 15 7. ВОПРОСЫ ДЛЯ ПРОВЕРКИ ОСТАТОЧНЫХ ЗНАНИЙ Синтаксис оператора IF. Синтаксис оператора FOR. Синтаксис оператора WHILE. Синтаксис оператора REPEAT. Объявление переменных типа ARRAY. Создание типа RECORD. Создание ограниченного типа. Синтаксис объявления переменной типа: текстовый файл; двоичный типизированный файл; не типизированный файл. 9. Процедуры и функции для работы с файлами. 10. Динамические структуры данных. Объявление типизированных указателей. 11. Понятие «куча». Процедуры и функции для работы с кучей. 12. Представление линейного списка в динамической памяти. 13. Стек и его представление в динамической памяти. 14. Рекурсия. Организация рекурсии. 15. Представление деревьев в динамической памяти. 16. Представление графов в динамической памяти. 17. Наследование в объектном программировании. 18. Полиморфизм в объектном программировании. 19. Инкапсуляция в объектном программировании. 20. Статические методы. 21. Виртуальные методы. 22. Динамические методы. 1. 2. 3. 4. 5. 6. 7. 8. УЧЕБНО-МЕТОДИЧЕСКАЯ ЛИТЕРАТУРА Основная литература 1. 2. 3. 4. Барков И.А., Коробейников А.А. Программирование на языке высокого уровня. Конспект лекций. – Ижевск: ИжГТУ, 2001. Барков И.А. Объектно-ориентированное программирование. Конспект лекций. – Ижевск: ИжГТУ, 2002. Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal 7.0. – М.: Бином универсал. – Киев: ЮНИОР, 1997. Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0. – М.: Диалог– МИФИ, 1995. Дополнительная литература 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Поляков Д.Б., Круглов Н.Ю. Программирование в среде Турбо-Паскаль: Версия 5.5. – М.: Изд-во МАИ, 1992. К. Боон. Паскаль для всех. – М.: Энергоиздат, 1988. Культин Н.Б. Turbo Pascal в задачах и примерах. – СПб.: БХВ-Петербург, 2003. Евстигнеев В.А., Касьянов В.Н. Теория графов. – Новосибирск: Наука. Сиб. Предприятие РАН, 1988. Свами. Графы, сети и алгоритмы. – М.: МИР, 1984. Федоров А., Рогаткин Д. Borland Pascal в среде Windows. – Киев: Диалектика, 1993. Климова Л.М. Pascal 7.0. Практическое программирование. Решение типовых задач. – М.: КУДИЦОБРАЗ, 2000. –528с. Кнут и Молчанов Немнюгин С.А. Turbo Pascal. Учебник. – СПб.: «Питер», 2001. Попов В.Б. Turbo Pascal. 1999. Майшина Э. Алгоритмы оптимизации на сетях и графах. – М.: ,1981. Фаронов В.В. Turbo Pascal 7.0 начальный курс, 1997. Фаронов В.В. Delphi 3. Учебный курс, 1998. Федоров А.Г. Delphi 3.0 для всех, 1998.