- •Билет 1
- •Билет 2
- •Способы представления графов
- •Билет 3
- •Билет 4
- •Билет 5
- •Билет 6
- •Билет 7
- •Основы визуального программирования
- •Билет 8
- •Обменная сортировка.
- •Конструкторы и деструкторы
- •Билет 9
- •Билет 10
- •Статическое и динамическое распределение памяти. Понятие указателя.
- •Процедуры и функции модуля graph.
- •Билет 11
- •Доступ к системным ресурсам в операционной системе pc-dos
- •Билет 12
- •Билет 13
- •Билет 14
- •Билет 15
- •Алгоритм генерирования перестановок с минимальным числом транспозиций
- •1. Введение в теорию графов. Способы представления графов: матрицы смежности и инцидентности, списки инцидентностей, списки ребер.
- •2. Функции библиотеки dos. Прерывания. Обработка прерываний.
- •Связные компоненты графа. Деревья. Бинарное дерево как связный граф без циклов
- •2.Сортировка вставками
- •2)Итерационные циклы
- •1.Эйлеровы пути в графе.
- •2.Ввод-вывод с помощью текстовых файлов.
- •Алгоритм Дейкстры (Dijkstra)
- •Вопрос 1.
- •Вопрос 2.
- •Создание и обработка одномерных динамических массивов.
- •Операторы цикла.
- •2.Сортировка распределением
- •1)Односвязные линейные списки
- •2) Записи. Организация, размещение. Записи с вариантами.
- •1.Алгоритмы с возвратом, их реализация с помощью рекурсий и с использованием стека. Гамильтоновы циклы.
Билет 5
1) Один и тот же физический файл можно по-разному представить в программе. Язык Паскаль предлагает три вида такого представления:
1)типизированные файлы,
2)текстовые файлы,
3)не типизированные файлы.
Типизированный файл - последовательность элементов одного типа.
Описание файлового типа имеет синтаксис: file of <тип элементов>.
Допустим, мы имеем дело с файлом, в котором записываются переменные типа Word, тогда переменная файлового типа может быть введена двояко: с явным объявлением файлового типа: Type WordFile = file of word; Var MyFile : WordFile;
или без объявления файлового типа: Var MyFile : file of word;
Текстовый файл можно рассматривать как последовательность символов, разбитую на строки длиной от 0 до 256 символов. Для описания используется стандартный тип Text:
Var
F: text; {F - файловая переменная}
Не типизированный файл рассматривается в Pascal как совокупность символов или байтов. Представление Char или Byte не играет никакой роли, а важно лишь с точки зрения объема памяти, занимаемого данными. Такое представление стирает все различия между файлами независимо от типа их объявления. На практике это приводит к тому, что любой файл, подготовленный как текстовый или типизированный, можно открыть и начать работу с ним, как с не типизированным набором данных. Для определения в программе не типизированного файла служит зарезервированное слово File:
Var
UntypedFile : File;
Остовное дерево связного неориентированного графа — ациклический связный подграф данного графа, в который входят все его вершины. Остовное дерево состоит из некоторого подмножества рёбер графа, таких, что из любой вершины графа можно попасть в любую другую вершину, двигаясь по этим рёбрами, и в нём нет циклов, то есть из любой вершины нельзя попасть в саму себя, не пройдя какое-то ребро дважды
Пусть задан граф G=(V,E), где V — множество вершин графа, E — множество ребер графа. Предположим, что в начальный момент времени все вершины графа окрашены в белый цвет. Выполним следующие действия:
Из множества всех белых вершин выберем любую вершину, обозначим её V1.
Выполняем для неё процедуру DFS(V1).
Повторяем шаги 1-3 до тех пор, пока множество белых вершин не пусто.
Процедура DFS (параметр — вершина U € V)
Перекрашиваем вершину U в черный цвет.
Для всякой вершины W, смежной с вершиной U и окрашенной в белый цвет, выполняем процедуру DFS(W).
const
MAX_N = 10;
var
graph: array [1..MAX_N, 1..MAX_N] of boolean; // массив для определения графа
visited: array [1..MAX_N] of boolean;
procedure dfs(v: integer);
var
i: integer;
begin
visited[v] := true;
for i := 1 to MAX_N do
if graph[v, i] and not visited[i] then
dfs(i);
end;
Билет 6
Создание грамотного пользовательского интерфейса – процесс трудоемкий и требующий максимального внимания к деталям. Создаваемый интерфейс должен максимально реализовывать возможности программы, но вместе с тем не перегружать пользователя обилием меню, кнопок, изображений и текста. Организация меню в приложении
Любое приложение, как правило, имеет как главное, так и несколько вспомогательных меню. В Delphi имеются такие технологии для быстрой разработки таких меню. Организация в приложении главного меню
Страница стандартная , MainMenu
Основное свойство items содержит разделы главного меню.
Любой раздел может содержать подразделы. Разделы главного меню располагается горизонтально. Подразделы друг под другом.
Порядок создания главного меню:
1.Включить в форму компонент MAINMENU
2. Создать разделы и подразделы главного меню. Для этого используется конструктор главного меню. Конструктор запускается двойным щелчком мыши или через свойство ITEMS. Для каждого раздела меню задать название раздела в свойстве CAPSION, через ENTER перейти к созданию следующего раздела или подраздела. В каждый раздел можно включать подразделы.
Вспомогательное меню можно создать для любого компонента формы.
Вспомогательное меню вызывают с помощью правой кнопки мыши, когда курсор находится на вспомогательном меню. Чтобы связать компоненты с соответствующим меню следует в свойстве PopupMenu этого компонента выбрать имя нужного вспомогательного меню.
Для компонента MEMO создать вспомогательное меню следующего вида: ЦВЕТ ФОНА, ЦВЕТ СИМВОЛОВ, РАЗМЕР СИМВОЛОВ, ВЫРАВНИВАНИЕ (СЛЕВА, СПРАВА, ПО ЦЕНТРУ)
Модуль Crt позволяет выводить цветные символы на цветном экране. Хотя по-прежнему отображение будет происходить в текстовом режиме. Текстовый режим означает, что на экране могут выводиться только определенные символы в определенных местах (знакоместах). Можно представить экран, разделенным вертикальными и горизонтальными линиями на ячейки. В эти ячейки можно «вписывать» различные символы. У каждой ячейки есть адрес.
Модуль Crt содержит ряд процедур, позволяющих задавать цвет символов и экрана, очищать экран, менять позицию курсора и др.
Для того чтобы в программе можно было использовать содержимое модуля Crt, его надо импортировать (подключить) в программу. Делается это в секции, которая начинается со слова uses.
Сортировка подсчётом — алгоритм сортировки, в котором используется диапазон чисел сортируемого массива (списка) для подсчёта совпадающих элементов. Применение сортировки подсчётом целесообразно лишь тогда, когда сортируемые числа имеют (или их можно отобразить в) диапазон возможных значений, который достаточно мал по сравнению с сортируемым множеством, например, миллион натуральных чисел меньших 1000. Эффективность алгоритма падает, если при попадании нескольких различных элементов в одну ячейку, их надо дополнительно сортировать. Необходимость сортировки внутри ячеек лишает алгоритм смысла, так как каждый элемент придётся просматривать более одного раза.
Этот метод подходит для сортировки целых чисел из не очень большого диапазона (сравнимого с размером массива). Идея вот в чем: для каждого элемента найти, сколько элементов, меньших определенного числа, и поместить это число на соответствующие место. Делается это так: за линейный проход по массиву мы для каждого из возможных значений подсчитываем, сколько элементов имеют такое значение. Потом добавляем к каждому из найденных чисел суму всех предыдущих. Получая, таким образом, сколько есть элементов, значения которых не больше данного значения. Далее, опять-таки за линейный проход, формируем из исходного массива новый отсортированный. При этом следим, чтобы два одинаковых элемента не были записаны в одно место.
