
- •1. Условный оператор, оператор выбора
- •5. Метод пошаговой детализации (последовательного уточнения) разработки алгоритмов.
- •2. Операторы организации циклов
- •3. Обработка двумерных массивов.
- •4. Процедуры и функции
- •37. Алгоритмы генерирования k-элементных подмножеств множества
- •6. Использование множеств для решения задач
- •7. Процедуры и функции обработки строк
- •8. Сортировка и поиск информации. Методы внутренней сортировки: Сортировка «пузырек»
- •9.Сортировка подсчетом.
- •10.Сортировка простым обменом
- •11. Методы внутренней сортировки: «Шейкер-сортировка»
- •12. Методы внутренней сортировки: Сортировка «Хаора»
- •14. Методы внутренней сортировки: Пирамидальная сортировка
- •16.Сортировка бинарными вставками
- •17. Методы внутренней сортировки: Сортировка «Шелла»
- •15 Сортировка простыми вставками.
- •19.Чтение типизированных файлов
- •18. Сортировка слиянием
- •20.Алгоритмы удаления записей типизированного файла.
- •19.Сортировка естественным слиянием.
- •28. Динамическая структура очередь, ее создание и использование.
- •20. Поразрядная сортировка
- •32. Деревья: построение бинарного дерева
- •52.Чтение типизированных файлов
- •21. Рекуррентные выражения. Рекурсия: прямая и косвенная.
- •22.Стандартные процедуры и функции Unit Graph.
- •53.Алгоритмы удаления записей типизированного файла.
- •27. Динамическая структура стек, ее создание и использование.
- •34. Алгоритмы генерирования перестановок (антилексикографическом порядке )
- •29. Списки: односвязные
- •33. Алгоритм генерирования перестановок в лексикографическом порядке.
- •30.Списки: двухсвязные
- •31. Динамическая структура кольцо, ее создание и использование.
- •34. Алгоритмы генерирования перестановок
- •51. Создание типизированных файлов.
- •36. Алгоритмы генерирования множества всех подмножеств
- •65. Создание таблиц базы данных с помощью Database Desktop.
- •38. Введение в теорию графов. Способы представления ориентированных и неориентированных графов: матрицы смежности
- •39. Поиск в ширину в графе
- •40. Поиск в глубину в графе
- •41,42. Построение остовного дерева графа.
- •43. Поиск кратчайшего пути в графе (Алгоритм Дейкстры)
- •44.Алгоритм Форда поиска кратчайших расстояний в графе.
- •45.Алгоритм Флойда поиска кратчайших расстояний в графе.
- •46. Алгоритмы с возвращением, их реализация с помощью рекурсий и динамических структур. Примеры алгоритмов с возвращением.
- •50.Типизированные файлы, их назначение и использование. Основные процедуры обработки типизированных файлов
- •47,48. Типы файлов, объявление, логическая и физическая организация файловой системы, процедуры и функции обработки файлов
- •67,68 Компоненты страниц Data Access, Data Controls. Создание базы данных, псевдонима бд
- •62 Компоненты страницы Samples, их назначение, свойства, примеры применения
- •56.Полиморфизм. Виртуальные методы. Таблица виртуальных методов
- •54.Понятие объекта.(класса). Инкапсуляция. Иерархия классов (типов). Правила наследования
- •57. Компоненты страницы Standard, их назначение, свойства, примеры применения.
- •49. Нетипизированные файлы
- •58.Компоненты страницы Additional, их назначение, свойства, примеры применения
- •1. TBitBtn
- •2. TSpeedButton
- •3. TMaskEdit
- •4. TDrawGrid
- •60. Компоненты страницы System, их назначение, свойства, примеры применения
- •71. Создание справочной системы
- •61,. Компоненты страницы Dialogs их назначение, свойства, примеры применения
- •63. Задание и изменение свойств компонентов с помощью Инспектора объектов и программно
- •64. Обработка событий, связанных с использованием компонентов.
- •70. Мультимедийные возможности Delphi
- •66. Создание и использование модуля данных Data Module.
- •69. Графические возможности Delphi
31. Динамическая структура кольцо, ее создание и использование.
Koльцо - это вид связанного списка, в котором указатель последнего элемента ссылается на первый элемент.
К кольцу применим обход элементов, доступ возможен к любому элементу структуры.
Кольцо является динамической структурой – может изменяется и количество, и набор составляющих его элементов.
Опишем кольцо на языке программирования:
Type
TypeCircle = ^K;
K = record
Data : integer;
Next : TypeCircle;
End;
Var
Circle1 : TypeCircle;
Формирование кольца
Рассмотрите процедуру формирования кольца. Для работы этой процедуры заводятся две локальные переменные типа TypeCircle для хранения адресов промежуточного и завершающего звена списка, последним оператором преобразуемого в кольцо.
Procedure FofmK(Var u : TypeCircle);
Var
x, y : TypeCircle;
i, N, d : integer;
Begin
write('Введите количество звеньев кольца: ');
readln(N);
for i := 1 to N do
begin
new(x); {выделяем память для хранения нового элемента кольца}
write('Введите данные в звено: ');
readln(d);
x^.Data := d; {заносим информацию в поле данных}
if u=nil {если кольцо еще не создано}
then
u := x {то указатель первого элемента ставим на новый элемент}
else
y^.Next := x; {присоединяем новый элемент к последнему элементу}
y := x; {переносим указатель у на последний элемент}
end;
x^.Next := u; {преобразуем получившийся список в кольцо}
End;
Над кольцом определены три операции: занесение элемента в кольцо, извлечение элемента из кольца и обход кольца.
Задание. Составьте программу, содержащую две процедуры: процедуру занесения элемента в кольцо и процедуру извлечения элемента из кольца по какому-либо условию. (Можно воспользоваться текстом предыдущей программы.)
Обход кольца
Для того чтобы обойти кольцо и вывести на экран содержащуюся в нем информацию, необходимо в локальной переменной типа TypeCircle запомнить адрес первого выводимого элемента. В этом случае можно избежать повторения и зацикливания программы. Вывод данных можно начинать с любого элемента кольца; это зависит от адреса первого элемента, переданного в процедуру обхода.
Рассмотрите процедуру обхода кольца.
Procedure PrintК(u : TypeCircle);
Var
x : TypeCircle;
Begin
x := u;
repeat
write(x^.Data,' ');
x := x^.Next;
until x = u;
readln;
End;
34. Алгоритмы генерирования перестановок
Рассмотрим алгоритм генерирования перестановок в антилексикографическом порядке.
Нашу последовательность можно разделить на блоки. Первые n-1 позиций блока, содержащих элемент p в последней позиции определяет последовательность перестановок множества.
Uses
Crt;
Var
i, n : Integer;
p : Array [1..10] of Integer;
procedure Revers ( m: Integer);
var
i, j, pow : Integer;
begin
i:=1;
j:=m
while i < j do
begin
pow:= p[i];
p[i]:= p[j];
p[j]:= pow;
i:= i+1;
j:= j-1;
end;
end;
procedure Antilex (m : Integer);
var
i, pow : Integer;
begin
if m =1 then
begin
for i:=1 to n do
Write ( p[i], ‘ ‘);
Writeln;
end
else
for i:=1 to m do
begin
Antilex (m-1);
if i < m then
begin
pow:= p[i];
p[i]:= p[m];
p[m]:= pow;
Revers (m-1);
end;
end;
Begin
ClrScr;
Write (‘Введите n’);
Readln (n);
for i:=1 to n do
p[i]:=i;
Antilex (n);
ReadKey;
End.