УП МГП ФТШ - Язык Паскаль - Программа курса

(1996-1998 гг.)
Малое государственное предприятие "Физтех-школа" при МФТИ

Алексей Владимирович Горшков

ПРОГРАММА КУРСА
ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ СЕМЕЙСТВА PASCAL

Введение. – с.4
Список рекомендуемой литературы. – с.4

ЧАСТЬ   1. Азбука языка Паскаль. Линейное, процедурное и структурное программирование.

Тема 1. ОБЩИЕ СВЕДЕНИЯ. Про алгоритмы. Про программы вообще. Основные разновидности программ. Немного философии. Инструментальные средства. Устройства. Единицы измерения ко-личества информации. – с.4

Тема 2. ВИДЫ И ЯЗЫКИ ПРОГРАММИРОВАНИЯ. Основные виды программирования: линейное, процедурное, структурное, модульное, объектное, динамическое. Разновидности языков программи-рования по ориентации. Разновидности языков программирования по уровню. Основные приёмы разработки и оформления, стиль программирования. – с.8

Тема 3. СРЕДА ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ ПАСКАЛЬ. Состав интегрированной среды программирования. Получение встроенных подсказок, распознавание сообщений об ошибках. Управление окнами. Работа с блоками текста. Пункты главного меню. Настройки. Компиляция и запуск программ. – с.9

Тема 4. ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКА PASCAL. Стандарт языка и его реализации. Алфавит язы-ка Паскаль. Комментарии. Директивы компилятору. Служебные слова. Имена. Числа. Знаки и стро-ки знаков. Логические значения. Указатели. Что такое операторы. Простейшая программа на Паска-ле. – с.10

Тема 5. СТРУКТУРА ПРОГРАММЫ НА ПАСКАЛЕ. Общая структура программы. Объявления и описания. Составные операторы. Вложенные операторы. Предварительные сведения об операторе присваивания и простая программа с ним. О подпрограммах вообще. Подпрограмма-процедура; па-раметры процедур: постоянные данные, переменные. Форматный вывод данных. Подпрограмма-функция; параметры функций: постоянные данные, переменные, значения функций. Примеры про-цедур и функций. Что такое подпрограмма-модуль. Области действия описаний, глобальные и ло-кальные описания. Пример программы стандартного вида. – с.12

Тема 6. ОСНОВНЫЕ ТИПЫ ДАННЫХ и понятие о производных типах. Скалярные типы. Особен-ности целых типов. Функции для упорядоченных типов. Функции для скалярных типов. Функции для действительных типов. Операции для логического типа. Что такое ссылочный тип. Что такое тип Дата+Время. Способы преобразования типов. Побитовые операции. Машинное представление дан-ных и возможная потеря точности. – с.18

Тема 7. ОСНОВНЫЕ ОПЕРАТОРЫ ЯЗЫКА ПАСКАЛЬ. Пустой. Присваивание.  Безусловный пе-реход на метки, его польза и вред. О теориях Янова, Бома–Джакопини, понятие о структурном про-граммировании. Условный безальтернативный переход. Условный переход с явной альтернативой. Повторения с предусловием. Повторение с постусловием. Цикл с возрастающим счётчиком. Цикл с убывающим счётчиком. Вложенные циклы. – с.20

Тема 8. ПЕРЕЧИСЛИМЫЕ И ОГРАНИЧЕННЫЕ ТИПЫ, ОПЕРАТОР ВАРИАНТА И ПРОЦЕДУРЫ ВЫХОДА. Перечислимый тип. Ограниченный тип. Оператор варианта без альтерна-тивы. Оператор варианта с явной альтернативой. Выходы и остановы, со значением и без. – с.24

Тема 9. НЕКОТОРЫЕ СОСТАВНЫЕ ТИПЫ: МАССИВЫ И СТРОКИ. Перечень составных типов. Регулярный тип (массив), одномерные  и многомерные массивы. Примеры использования массивов. Азбука вычислительной математики (задание). Строки. – с.26

ЧАСТЬ 2. Некоторые сложные типы данных – множества, записи, файлы.
Модульное программирование.

Тема 10. МНОЖЕСТВА. Множественные типы. Обозначение множеств. Задание множественного типа и переменных. Операции над множествами и множественные выражения. Пример "Решето Эратосфена". – с.32

Тема 11. ЗАПИСИ. Комбинированные типы (записи). Иерархические записи. Обращение к полям записи. Оператор присоединения. Описание полей записи. – с.34

Тема 12. ФАЙЛЫ. Файловый тип. Буферная переменная. Текстовые файлы. Нетипизированные файлы.   Типизированные файлы. Процедуры и функции, необходимые для работы с файлами. Осо-бенности текстовых файлов. Особенности типизированных файлов. Особенности нетипизированных файлов. Примеры ввода и вывода данных. – с.35

Тема 13. ОСОБЫЕ СЛУЧАИ. Некоторые директивы компилятора. Борьба с ошибками ввода-вывода. Борьба с переполнениями. Борьба с делением на 0. Обработчики исключений. – с.38

Тема 14. МАЛЕНЬКИЕ ХИТРОСТИ. Функции в определениях постоянных. Сложные постоянные. "Типизированные постоянные", т.е. переменные с начальным значением. Побочные эффекты вызова процедур, функций и циклов. Формальное  вычисление функций. Рекурсия функций; ее положи-тельные и отрицательные стороны. Приоритет операторов. Разногласия в классификациях типов. – с.40

Тема 15. СОДЕРЖАНИЕ ОСНОВНЫХ МОДУЛЕЙ. Стандартные модули системы программирова-ния Turbo (или Borland) Pascal. – с.44
    Константы, переменные, процедуры и функции модуля System.
    Константы, переменные, процедуры и функции модуля Crt.
    Константы, переменные, процедуры и функции модуля WinCrt.
    Константы, переменные, процедуры и функции модуля Dos.
    Константы, переменные, процедуры и функции модуля WinDos.
    Имена внешних устройств.   

Тема 16. ГРАФИКА. Возможности. Необходимые составляющие и настройка. Пример простой гра-фической программы. Константы, переменные, процедуры и функции модуля Graph. 256-цветная графика. Полноцветная графика. Компоновка векторных шрифтов в состав исполняемого модуля. Компоновка графических драйверов в составе исполняемого файла. Ещё несложные, но симпатич-ные примеры графических программ. Пример подвижной фигуры на сложном фоне. Сравнение спо-собов мультипликации. – с.47

Тема 17. СОБСТВЕННЫЕ МОДУЛИ. Части модуля. Избежание переопределения в записях, объек-тах, модулях. Пример модуля. Компиляция модуля. Пример использования оригинального модуля. Задание на самостоятельную работу. – с.57

Тема 18. ОТЛАДКА. Действия по трассировке и отладке программ. – с.59

ЧАСТЬ 3. Вариативное, объектное и динамическое программирование.

Тема 19. ВАРИАТИВНЫЕ ОПИСАНИЯ И ПАРАМЕТРЫ ОБРАЩЕНИЙ. Нетипизированные пара-метры в обращениях. Открытые параметры в обращениях. Вариативные записи Б-Паскаля. Тип-вариант О-Паскаля, его достоинства и недостатки. "Процедурный" тип данных. – с.62

Тема 20. ОБЪЕКТЫ. Типы-объекты (алгебры). Методы и данные. Статические объекты. Инкапсу-ляция, наследование, полиморфизм. Виртуальные методы.

Тема 21. ПАМЯТЬ И АДРЕСА. Структура памяти ЭВМ. Модели памяти. Адреса и размещение ко-дов и данных. Режимы операционной системы. Абсолютные переменные. Оптимизация размещения данных в памяти.

Тема 22. УКАЗАТЕЛИ, ДИНАМИЧЕСКИЕ ОБЪЕКТЫ И ОПЕРАТОРЫ. Динамические перемен-ные. Передача аргументов функций по ссылке и по значению. Ссылочный тип (указатели). Действия над ссылками. Адресный оператор и другие операторы, процедуры и функции для работы с динами-ческими объектами. Указатель на функцию. Указатель на указатель. Связь указателей и массивов. Распределение памяти и избежание выхода за границы массивов.

Тема 23. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ. Строки и цепочки. Двунаправленные списки. Кольца. Очереди и стеки. Таблицы. Двоичное дерево. Базы данных.

Тема 24. БИБЛИОТЕКИ. Создание динамически компонуемых библиотек. Организация взаимодей-ствия программ и библиотек, написанных на разных языках Borland Pascal и Borland C++.

ЧАСТЬ 4. Элементы системного и низкоуровневого программирования.

Тема 25. ОКРУЖЕНИЕ. Переменные “окружающей среды” ОС. Командная строка.

Тема 26. ЭЛЕМЕНТЫ НИЗКОУРОВНЕВОГО ПРОГРАММИРОВАНИЯ. Регистры процессора. "Прерывания" BIOS и DOS. Ввод и вывод данных через порты ЭВМ. Простейшие возможности встроенного ассемблера. Inline команды процессора.

Тема 27. ВЗАИМОДЕЙСТВИЕ ПРОГРАММ. Исполнение программ друг из друга. Передача дан-ных из программы в программу. Резидентные программы. Перекрытия (оверлеи). Константы, пере-менные, процедуры и функции модуля Overlay.

Тема 28. ДРАЙВЕРЫ И НЕСТАНДАРТНЫЕ ПРЕРЫВАНИЯ. Стандартные драйверы ОС. Конфи-гурирование ПЭВМ. Создание и загрузка собственных программ в качестве драйверов. Создание и загрузка собственных программ в качестве прерываний ОС.

Тема 29. ОПЕРАЦИОННЫЕ СИСТЕМЫ. Общие сведения об ОС, принципах и методах построения ОС различного назначения.

ПРОГРАММА ПРАКТИЧЕСКОЙ ЧАСТИ
(Звёздочками указана степень повышенной трудности необязательных задач)

Раздел: “Компьютерная Техника и т.п.”:

1. Звуковые эффекты.
2. Приём данных с клавиатуры, распознавание нажатой клавиши.
3. Меню программ с дружественным интерфейсом.
4. Графические (“визуальные”) эффекты.
5. Простейшие мультфильмы и игровая графика, тренажеры.
6. Считывание изображения с экрана.
7. Приём данных с простых манипуляторов.
8. Управление принтером.
9. Оконный интерфейс.
10. Операционная оболочка.
11. Строчные и текстовые редакторы.
12. Низкоуровневое программирование: порты, прерывания.
13. “Нуль-модем".
14. * Самодельный графический редактор.
15. * Русификаторы.
16. ** Звуковой проигрыватель. Звукозапись.
17. ** Видеопроигрыватель. Видеозапись.
18. *** Сетевые протоколы.

Раздел: “Математика, лингвистика и т.п.”:

1. Математические процедуры.
2. Графические процедуры.
3. Олимпиадные задачи.
4. Архиваторы (упаковщики).
5. Секретная связь.
6. Достоверная, помехоустойчивая связь.
7. Самообучающиеся базы данных.
8. Словари (работа с файлами).
9. * Самодельные электронные таблицы.
10. * Автоматическое форматирование текстов программ.
11. ** Стратегические игры (“волк и козлы”, реверси, шашки и т.п.).
12. ** Рекурсивный разбор выражений. Простейший калькулятор-интерпретатор.
13. **Распознавание образов.
14. ** Антивирусы и модели вирусов.
15. ** Модель томографа.
16. ** Экспертные системы.
17. *** Простейший интерпретатор и компилятор программ.
18. *** Интерактивные базы данных для Internet.
19. **** Разработка операционной системы.

(1996 г.)


Рецензии