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