- •1.Рекурсия: прямая и косвенная.
- •2. Объект. Способы описания. Инкапсуляция. Полиморфизм. Наследование.
- •1.Процедуры и функции.
- •2. Способы представления графов.
- •1.Структура Unit-a.
- •2.Введение в Delphi. Главное окно: пиктографические кнопки, палитра компонентов. Окна: формы, инспектора объектов, кода программы. Основы визуального программирования.
- •1.Организация библиотек. Стандартные библиотечные модули и модули пользователя.
- •1.Файлы в Паскале: текстовые файлы, типизированные файлы, нетипизированные файлы, их назначение и использование.
- •2. Построение остовного дерева поиском в глубину (нерекурсивный вариант).
- •1.Создание удобного пользовательского интерфейса: системы меню, окна для ввода, корректировки, просмотра информации. Модуль Crt.
- •2.Сортировка подсчетом
- •1.Стандартные процедуры и функции Unit Graph. Методы создания анимации.
- •2.Основы визуального программирования. Пустая форма и ее модификация. Компоненты страницы Standard. Размещение нового компонента.
- •1.Сортировка обменом
- •2.Объект. Конструктор и деструктор. Виртуальные функции.
- •1.Переменные действительного типа, их объявление и использование.
- •2. Сортировка выбором
- •1.Статическое и динамическое распределение памяти. Понятие указателя.
- •2.Процедуры и функции модуля graph.
- •1.Доступ к системным ресурсам. Определение переменной как absolute.
- •2.Процедуры и функции модуля crt, их использование.
- •1.Динамические структуры данных и их организация с помощью указателей.
- •2.Файлы без типа, их применение.
- •1.Введение в комбинаторику. Генерация k–элементного подмножества данного множества. Размещения. Сочетания.
- •2. Законы алгебры логики. Таблицы истинности.?????
- •1.Генерация всех перестановок n–элементного множества в антилексикографическом порядке.
- •2. Создание и обработка типизированных файлов.?????
- •1.Алгоритм генерирования перестановок с минимальным числом транспозиций.
- •2. Объявление массивов????
- •1.Введение в теорию графов. Способы представления графов: матрицы смежности и инцидентности, списки инцидентностей.
- •2.Функции библиотеки dos. Прерывания. Обработка прерываний.?????
- •1.Связные компоненты графа. Деревья. Бинарное дерево как связный граф без циклов.????
- •2. Сортировка вставками
- •1.Поиск в глубину в графе
- •2. Итерационные циклы
- •Цикл с предусловием. Оператор while ... Do.
- •Цикл с постусловием. Оператор repeat... Until.
- •Обозначение циклов на блок-схемах согласно госТу.
- •1.Поиск в ширину в графе
- •2. Оператор выбора case
- •1.Эйлеровы пути в графе.
- •2. Ввод-вывод с помощью текстовых файлов.
- •1.Алгоритмы с возвратом, их реализация с помощью рекурсий и с использованием стека. Гамильтоновы циклы.
- •2. Объект. Инициализация и разрушение объекта.
- •1.Кратчайшие пути. Алгоритмы Дейкстры, Флойда.
- •2.Процедурные типы. Передача функций как параметров.
- •1.Передача параметров вызываемым программам.?????
- •2. Объект. Свойства объектов.
- •1.Очереди и операции над ними.
- •2. Сортировка слиянием
- •1.Структурированные типы данных: массивы, символьные переменные и строки, множества.
- •1. Массивы.
- •2. Строковый тип данных.
- •3. Множества.
- •4. Записи.
- •2. Условный оператор.
- •1.Создание и обработка одномерных динамических массивов.
- •2. Операторы цикла.
- •1.Стеки и операции над ними.
- •2. Поразрядная сортировка
- •1.Процедуры и функции.
- •2. Бинарные деревья, их создание. Способы обхода дерева.
- •1.Односвязные линейные списки и операции над ними.
- •2. Записи. Организация, размещение. Записи с вариантами.??????
- •1.Двухсвязные линейные списки и кольца, операции над ними.
- •2. Затем создаём два указателя:
- •1.Обход списка в прямом направлении и его вывод на экран монитора:
- •2.Обход списка в обратном направлении и его вывод на экран монитора:
- •2. Сортировка и поиск информации. Методы внутренней сортировки.
2.Объект. Конструктор и деструктор. Виртуальные функции.
Объект (object) - переменная классового типа. Перед использованием объекта необходимо его инициализировать с помощью конструктора, а после использования — разрушить с помощью деструктора.
Конструкторы и деструкторы являются специализированными формами методов. Конструкторы и деструкторы обладают способностью размещения и удаления динамических объектов. Как и все другие методы, конструкторы и деструкторы могут наследоваться, а объекты могут содержать любое число конструкторов и деструкторов.
Конструктор не может быть виртуальным
constructor Field.Copy(var F: Field);
begin
Self := F;
end;
Деструкторы ("сборщики мусора") являются противоположностями конструкторов и используются для очистки объектов после их использования. Обычно очистка состоит из удаления всех полей-указателей в объекте.
Примечание: Деструктор может быть виртуальным и часто является таковым. Деструктор редко имеет параметры.
Виртуальный метод (виртуальная функция) — в объектно-ориентированном программировании метод (функция) класса, который может быть переопределён в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения.
Виртуальные методы — один из важнейших приёмов реализации полиморфизма. Они позволяют создавать общий код, который может работать как с объектами базового класса, так и с объектами любого его класса-наследника.
Билет № 9
1.Переменные действительного типа, их объявление и использование.
Тип переменной определяет диапазон значений, которые может принимать переменная, и допустимые над этими значениями действия. В языке Pascal есть следующие встроенные типы данных:
вещественные (действительные) — принимающие действительные числовые значения; к ним относятся real, single, double и extended, отличающиеся точностью.
целые — для представления целых чисел: integer и longint.
логический — boolean (допускает только два значения: false и true
символьный — char (значение — любой символ используемой кодовой таблицы).
Переменная в языке Pascal создается с помощью объявления переменных:
var имена : тип; например, var a, b: real; k: integer;
Чтобы переменная получила значение или изменила его, используется оператор (команда) присваивания: имя_переменной := выражение;
2. Сортировка выбором
Идея метода довольно проста: найти наибольший элемент файла и поставить его на место N, найти следующий максимум и поставить его на место N-1 и т.д. до 2-го элемента
program Sort_Vybor1;
var
A:array[1..100] of integer;
N,i,m,k,x : integer;
begin
write('количество элементов массива ');
read(N);
for i:=1 to n do read(A[i]);
for k:=n downto 2 do {k- количество элементов для поиска max }
begin
m:=1; { m - место max }
for i:=2 to k do if A[i]>A[m] then m:=i;
{меняем местами элементы с номером m и номером k}
x:=A[m]; A[m]:=A[k]; A[k]:=x;
end;
for i:=1 to n do write(A[i],' '); {упорядоченный массив}
end.
Билет № 10