ПРОГРАММИРОВАНИЕ

Лектор: доцент М. А. Бульонков

2 семестр

1. Введение

Понятия алгоритма, программы, обрабатываемой информации.

2. Основные понятия и механизмы среды ввода и
исполнения программ

Логическая схема компьютера. Основные виды вычислительных средств. Представление о машинном языке и языке ассемблера. Функциональное назначение операционных систем. Среда программирования, компиляции и исполнения программ ( на примере интегрированной среды Турбо Паскаля), использование модулей.

3. Основные принципы организации и
структурирования программ

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

4. Основные понятия и языковые средства описания
программных объектов

Понятие типа данных: атрибуты типа, предопределенные и пользовательские типы, конструкторы типов, тождественность и совместимость типов. Скалярные типы: множество значений, операции, свойства, представление значений. Арифметические типы, их представление, свойства операций. Конструкторы скалярных типов. Преобразования типов.
Структурные типы данных - записи и массивы: описание структуры, доступ к элементам и операции. Множественный тип: доступ к элементам, конструктор множества, операции над множествами. Строки и операции над ними. Файловый тип: виды файлов, доступ к элементам, основные операции.

5. Основные средства обработки данных

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

6. Алгоритмические основы написания эффективных программ

Основные программно-эффективные схемы вычислений (экстремум, схема Горнера, член и сумма ряда, и т.п.).
Базовые алгоритмы обработки последовательностей: просмотр, поиск, сортировка, слияние упорядоченных последовательностей.
Рекурсивные алгоритмы и средства их представления в языке Паскаль, особенности исполнения рекурсивных подпрограмм.
Ссылочный (указательный) тип. Динамические данные: специфика определения и представления статических и динамических данных, операции создания и уничтожения динамических данных. Списки как базовые динамические структуры данных: конструирование списков, их просмотр и другие операции над ними.
Динамические данные сложной структуры (деревья, бинарные деревья и графы), их представления и основные алгоритмы их обработки (построение, обход и преобразования).
Процедурный тип. Реализация "обобщенных" алгоритмов в виде подпрограмм с параметрами процедурного типа.
Абстрактный и инкапсулированный типы данных. Пример стека.
Модульное программирование: понятия модуля, межмодульного интерфейса, назначение модулей, составные части определения модуля, объекты модуля, возможности модульного программирования в Турбо Паскале.

7. Основные принципы и средства организации
программного интерфейса

Интерактивный и пакетный (файловый) ввод информации. Комментируемый и форматированный вывод информации. Организация работы с экраном (меню, окна) и клавиатурой. Ввод и вывод в текстовом и графическом режимах.

8. Системы программирования

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

9. Основные принципы разработки программ

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

Литература

  1. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль, М.: Наука, 1988.
  2. Вирт Н. Алгоритмы + структуры данных = программы, М.: Мир, 1985.
  3. Грис Д. Наука программирования, М.: Мир, 1984.
  4. Хьюз Дж., Мичтом Дж. Структурный подход к программированию, М.: Мир, 1985.
  5. Прайс Д. Программирование на языке Паскаль, М.: Мир, 1987.
  6. Бородич Ю.С., Вальвачев А.Н., Кузьмич А.И. Паскаль для персональных компьютеров, Минск: Выш. шк.:БФ ГИТМП "Ника", 1991.
  7. Агафонов В.Н., Бежанова М.М., Поттосин И.В., Сабельфельд В.К. Сборник упражнений по программированию на языке Паскаль, Новосибирск: НГУ, 1985.
  8. Чеблаков Б.Г. Сборник задач по программированию на языке Паскаль с решениями. Учеб. Пособие, Новосибирск: НГУ, 1991.
  9. Пильщиков В.Н. Сборник упражнений по языку Паскаль, М.: Наука, 1989.
  10. Зуев Е. А. Программирование на языке Turbo - Pa scal 6.0 - 7.0 , М.: Веста, Радио и связь, 1993.
  11. Касьянов В.Н., Сабельфельд В.К. Сборник заданий по практикуму на ЭВМ, М.: Наука, 1986.
  12. Фаронов В.В. Паскаль в Windows, М.: МВТУ-ФЕСТО Дидактик, 1995.
  13. Климов Ю.С., Касаткин А.И., Мороз С.М. Программирование в среде Turbo Pascal 6.0, Минск: Вышейшая школа, 1992.
  14. Вирт Н. Алгоритмы и структуры данных, Досса, Хамарайан, 1997.