
- •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
22.Стандартные процедуры и функции Unit Graph.
Procedure Arc(X, Y : Integer; StAngle, EndAngle, Radius : Word);
Рисует дугу окружности.
Procedure Bar(X1, Y1, X2, Y2 : Integer);
Рисует закрашенный прямоугольник, используя текущие стиль и цвет закраски.
Procedure Bar3D(X1, Y1, X2, Y2 : Integer; Depth : Word; Top : Boolean);
Рисует параллелепипед, используя текущий стиль
и цвет закраски.
Procedure Circle(X, Y : Integer; Radius : Word);
Рисует окружность текущим цветом, используя точку (X, Y) как центр.
Procedure ClearDevice;
Очищает текущее устройство вывода и устанавливает текущий указатель в точку (0, 0).
Procedure CloseGraph;
Закрывает графическую систему.
Procedure DrawPoly(NumPoints : Word; Var PolyPoints);
Рисует контур многоугольника, используя текущий цвет и тип линии.
Procedure Ellipse(X, Y : Integer; StAngle, EndAngle : Word; XRadius, YRadius : Word);
Рисует дугу эллипса.
Procedure FillEllipse(X, Y : Integer; XRadius, YRadius : Word)
Рисует закрашенный эллипс.
Procedure FillPoly(NumPoints : Word; Var PolyPoints);
Рисует закрашенный многоугольник, используя преобразователь сканирования.
Procedure FloodFill(X, Y : Integer; Border : Word);
Закрашивает замкнутую область, используя текущие стиль и цвет закраски.
Procedure GetFillSettings(Var FillInfo : FillSettingsType);
Возвращает текущий цвет и шаблон закраски, установленные обращениями к процедурам SetFillPattern и SetFillStyle.
Procedure GetLineSettings(Var LineInfo : LineSettingsType);
Возвращает текущий тип, шаблон и толщину линии, установленные с помощью процедуры SetLineStyle.
Procedure InitGraph (Var GraphDriver : Integer; Var GraphMode : Integer; PathToDriver : String);
Инициализирует графическую систему и переводит видеокарту в графический режим.
Procedure Line(X1, Y1, X2, Y2 : Integer);
Рисует линию из точки с координатами (X1, Y1) в точку с координатами (X2, Y2).
Procedure OutText(TextString : String);
Посылает строку на устройство вывода в позиции текущего указателя.
Procedure PieSlice(X, Y : Integer; StAngle, EndAngle, Radius : Word);
Рисует и закрашивает сектор окружности.
Procedure PutPixel(X, Y : Integer; Color : Word);
Ставит точку в позиции (X, Y).
Procedure Rectangle(X1, Y1, X2, Y2 : Integer);
Рисует прямоугольник, используя текущий тип и цвет линии.
Procedure SetBkColor(ColorNum : Word);
Устанавливает текущий цвет фона, используя палитру.
Procedure SetColor(Color : Word);
Устанавливает текущий цвет, используя палитру.
Procedure SetFillPattern(Pattern : FillPatternType; Color : Word);
Устанавливает определяемый пользователем шаблон закраски.
35.Генерирование перестановок с минимальным числом транспозиций соседних элементов
var p,pc:array[1..100] of integer;
pr:array[1..100] of boolean;
n:integer;
procedure perm;
var i,x,k,d:integer;
begin
for i:=1 to n do begin p[i]:=i;pc[i]:=1;pr[i]:=true end;
pc[n]:=0;i:=1;
act;
while i < n do begin
i:=1;x:=0;
while pc[i]=n-i+1 do begin
pr[i]:=not pr[i];pc[i]:=1;
if pr[i] then inc(x);inc(i)
end;
if i < n then begin
if pr[i] then k:=pc[i]+x
else k:=n-i+1-pc[i]+x;
d:=p[k];p[k]:=p[k+1];p[k+1]:=d;
act;
inc(pc[i])
end;
end;
end;
25,26. Разработка алгоритмов и программ с использованием динамических массивов
Динамический массив — это массив, в котором при объявлении указывается только тип его элементов. Размеры динамических массивов изменяются в ходе выполнения программы.
Динамический массив задается с помощью нижеприведенной конструкции:
array of baseType;
Язык Object Pascal поддерживает многомерные массивы. Самым простым является одномерный массив.
Динамический одномерный массив:
var MyFlexibleArray: array of Real;
Данное объявление не занимает память под будущий массив. Для того чтобы это сделать, можно воспользоваться вызовом процедуры SetLength. Например, команда
SetLength(MyFlexibleArray, 20);
отводит в памяти массив на 20 вещественных чисел с индексами от 0 до 19.
Примечание
Индексами динамических массивов всегда являются целые числа. Стартовый индекс — всегда 0.
Доступ к элементам динамического массива аналогичен доступу к элементам статического массива.
Для задания многомерного динамического массива можно использовать конструкцию языка:
array of array of baseType;
Например, создать двумерный динамический массив можно следующим образом:
var MyArray: array of array of integer;
Для того чтобы установить длину многомерного динамического массива с помощью процедуры setLength, нужно выполнить ее для всех индексов массива. Например,
SetLength(MyArray, 10,20);
{Иллюстрация использования динамических массивов: программа выводит на экран содержимое двух одномерных массивов разной длины с помощью одной процедуры ArrayPrint}
Program rr2;
Uses wincrt;
const
A:array [-1..2] of Integer = (0,1,2,3);
B: array [5..7] of Integer = (4,5,6);
Procedure ArrayPrint(aArray: array of Integer);
var
k: Integer;
begin
for k := 0 to High(aArray) do
Writeln(aArray[k]:8);
end;
begin
ArrayPrint(A);
ArrayPrint(B)
end.
Как видно из этого примера, фактические границы массивов А и В, передаваемых в качестве параметров вызова процедуре ArrayPrint, не имеют значения. Однако размерность открытых массивов (количество индексов) всегда равна 1 - за этим следит компилятор. Если бы, например, мы добавили в программу двумерный массив С
var
С: array [1..3,1..5] of Integer;
то обращение
ArrayPrint(С)
вызывало бы сообщение об ошибке
Error26: Type mismatch.
(Ошибка 26: Несоответствие типов.)