Экзаменационные вопросы по предмету:
«Программирование»
3 курс ПИ, заочники, 831,832 гр

  1. История развития языка программирования PASCAL.
    Создание языка программирования Pascal. Pascal - как язык обучения программированию. Pascal - как язык профессиональной разработки программ. Диалекты и компиляторы паскаля: turbo pascal, object pascal, delphi, pascal ABC, freepascal.
  2. Требуемые понятия для создания простейших программ.
    Лексемы языка. Выражения и операции. Операторы. Типы данных. Функции. Модули. Организация ввода-вывода. Общая структура программы. Объявление переменных, типов, констант, меток, процедур и функций. Области видимости. Составной оператор программы.
  3. Структура выражений.
    Унарные и бинарные операции, типы аргументов и результата, автоматическое преобразование типа во время выполнения операций. Арифметические операции. Логические операции, строковые, операции над множеством, отношения, операция @. Приоритет операций.
  4. Понятие оператора.
    Отличие оператора от операции. Составной оператор. Простые операторы. Оператор присваивания. Особенности оператора присваивания. Оператор вызова процедуры. Операция вызова функции, ее использование в качестве оператора. Оператор перехода goto. Ограничения в применения оператора перехода. Причины нежелательности применения оператора перехода.
  5. Операторы ветвлений.
    Условный оператор if. Полная и сокращенная запись. Вложенные операторы if. Оператор выбора сase. Взаимозамена условного оператора и оператора выбора.
  6. Операторы циклов.
    Цикл со счетчиком for, две его формы. Ограничения на переменную-счетчик. Цикл с предусловием while. Цикл с постусловием repeat. Области применения каждого вида цикла. Вложенные циклы одинаковых и разных видов. Прерывание и переход на следующую итерацию цикла: операторы break и continue. Выход из вложенных циклов с помощью оператора goto и процедуры exit.
  7. Понятие типа данных.
    Дихотомия типов данных и переменных. Простые и структурные типы. Статические и динамические типы. Совмещение переменных различного типа в оперативной памяти с помощью директивы absolute. Преобразования типов. Принципы описания характеристик типа данных: объем, байтовая последовательность расположения в оперативной памяти, битовая структура, диапазоны значения, точность (для вещественных типов данных), операции и функции для работы с типом данных. Функции pascal для получения информации о размере типа данных, границах типа, модификации байтовой структуры, перемещения и заполнения больших объемов данных в оперативной памяти.
  8. Порядковые типы.
    Встроенный порядковый тип: целочисленные, логические, символьные типы. Характеристики встроенных порядковых типов. Производные порядковые типы: перечислимый тип и тип поддиапазона.
  9. Вещественные типы.
    Использование математического сопроцессора для выполнения операций над вещественными типами. Характеристики вещественных типов данных.
  10. Тип данных массив.
    Одномерные и многомерные массивы. Типы индекса. Литералы массива. Обращение к элементу массива. Итерация по массиву. Заполнение и обработка массива циклами. Платформо-зависимые ограничения на объем массива. Характеристики массива как типа данных.
  11. Тип данных строка.
    Литералы строк. Обращение к отдельным символам строки. Строка статичного максимального объема, с хранением актуальной длины. Характеристики строки как типа данных.
  12. Понятие структуры (тип запись).
    Литералы записи. Обращение к полям структуры. Базовая и вариантная часть структуры. Разделение одной области памяти различными типами переменных с помощью вариантной части записи. Использование особенностей вариантной части для исследования типов данных. Характеристики записи как типа данных.
  13. Понятие указателя.
    Типы указателей, преобразование типов указателя. Получение адреса переменной. Выделение и освобождение памяти для указателей. Понятие «утечка памяти». Понятие "система сборки мусора". Последовательное перемещение по оперативной памяти с помощью указателей. Характеристики указателя как типа данных.
  14. Тип множество.
    Множество как математическая абстракция. Встроенный тип множества в pascal. Литералы множества. Доступ к элементам множества. Визуализация содержимого множества. Ограничения на диапазоны значений типа множества. Типичные задачи, решаемые использованием множеств. Характеристики множества как типа данных.
  15. Файловые типы.
    Файл, как последовательность данных во внешней памяти. Файлы последовательного и прямого доступа. Типы файлов в pascal: текстовые, типированные и нетипированные. Последовательность обработки файлов. Режимы открытия текстовых файлов, последовательные запись-чтение, механизмы определения конца файла. Файлы прямого доступа: режимы открытия, чтение-запись, перемещение по файлу, определение текущей позиции, размера файла. Обработка ошибок доступа к файлу. Характеристики файлов как типа данных.
  16. Функции и процедуры.
    Определение функции в pascal. Формальные параметры. Параметры-значения и параметры-переменные. Возврат результата из функции. Вызов функции, фактические параметры. Использование функций в выражениях. Процедуры: отличия от функций. Процедурные типы данных.
  17. Модули.
    Понятие модуля, модульного программирования. Компоновка программы из набора модулей. Модули в pascal. Подключение модулей. Структура модуля: интерфейсная секция, секция реализации, секция инициализации. Области видимости в модуле. Подключение модулей в модулях: прямые и косвенные ссылки. Решение проблемы циклических ссылок.
  18. Рекурсия
    Рекурсивные определения. Рекрсивные алгоритмы. Фрейм активации процедур и функций, бесконечная рекурсия. Итерация и рекурсия.
  19. Поиск.
    Задачи поиска. Линейный и бинарный поиск. Поиск одного и нескольких элементов. Асимптотическая сложность поиска.
Литература
  1. Слинкин Д.А. Основы программирования на Турбо-Паскале
  2. Слинкин Д.А., Горелов Н.Н. Разбор и реализация алгоритмов типовых задач курса «Языки и методы программирования (ТУРБО-ПАСКАЛЬ)»
  3. Е.Р. Алексеев, О.В. Чеснокова, Т.В. Кучер. Free Pascal и Lazarus: Учебник по программированию
  4. Delphi Russian Knowledge Base(rus, chm)