
- •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
4. Процедуры и функции
Многократно повторяющиеся вычисления рекомендуется оформлять в виде отдельного блока (подпрограммы). Обращение к подпрограмме реализуется в любой точке головной программы. В языке Pascal подпрограмму можно оформить двумя способами:
1.в виде подпрограммы-функции
2.в виде подпрограммы-процедуры
Отличия процедуры и функции:
1.способом описания заголовка
2.способом вызова в головной программе
3.в теле функции присутствует оператор, который имени функции присваивает значение вычисленного выражения.
Функции пользователя:
Формат: function <имя функции> [(<список формальных параметров>)]: <тип возвращаемого значения>;
<описания>
…….
begin
<оператор 1>
….
<оператор n >
<имя функции>:=<выражение>;
end;
Имя функции – уникальное имя, которое выбирает сам программист. Список параметров может отсутствовать. Вызов функции осуществляется по имени функции со списком фактических параметров (или без) в выражении или процедуре вывода.
Например:
<переменная> := <имя функции> [(<список фактических параметров>)];
При вызове все формальные параметры заменяются фактическими, образуя
так называемое модифицированное тело функции и выполняется модифицированное тело так, как если бы оно стояло в точке вызова.
Процедуры пользователя
Формат:
procedure <имя процедуры> [(список формальных параметров)];
<описание>
begin
<оператор 1>
…
<оператор n>
end
Вызов процедуры:
<имя процедуры> [(список фактических параметров)];
Область действия переменных
Переменные, описанные внутри блока, называются локальными. Они действуют внутри данного блока. При выходе из блока значения переменных теряются.
Переменные, объявленные во внешнем блоке по отношению к внутреннему
блоку, называются глобальными. Они действуют на всем протяжении этого блока, включая и внутренние блоки.
37. Алгоритмы генерирования k-элементных подмножеств множества
Без ограничения общности можно принять, что множество х = { 1, 2, 3,…n}, тогда каждому к-элементному подмножеству взаимнооднозначно соответствует возрастающая последовательность длины «к» с элементами из х. Например, подмножеству {3, 5, 1} соответствует {1, 3, 5}.
Пример:
Генерирование всех к-элементных подмножеств n-элементного множества.
Var
i, p, k, n : Integer;
b: Array [1..10] of Integer;
Begin
ClrScr;
Write (‘ Введите n, k ‘);
Readln (n, k);
for i:=1 to n do
b [ i ]:= i;
p:= k;
while p > = 1 do
begin
for i:=1 to k do
Write ( b [ i ], ‘ ‘);
Writeln;
if b [ k ] = n then
p:= p –1
else
p:= k;
if p >= 1 then
for i:= k downto p do
b [ i ]:= b [ p ] + i – p +1;
end;
ReadKey;
End.
6. Использование множеств для решения задач
Множество – структурированный тип данных. Представляет собой
набор взаимосвязанных по какому-либо признаку или группе признаков объектов, который можно рассматривать как единое целое. Каждый объект множества
называется элементом множества и занимает в памяти 1 бит. Количество элементов колеблется от 0 до 255. Все эти элементы должны принадлежать одному из
скалярных типов кроме вещественного. Этот тип называется базовым. Значения элементов множества указываются в квадратных скобках.
Объявление множества:
Type
Prostoe = Set of (3,5,7,11);
Var
pr : Prostoe;
Положительные качества использования в программах множеств:
- упрощаются сложные операторы if;
- улучшается наглядность программ;
- возможна экономия памяти;
- может уменьшаться время компиляции и время выполнения программы
Недостаток:
В языке Pascal отсутствуют процедуры ввода – вывода элементов множества.
Пример:
Создать множество из элементов типа Сhar, конец ввода обозначить “Z”. Найти во множестве элемент с минимальным номером в таблице кодов и
распечатать элементы множества в алфавитном порядке.
Uses
Crt;
Var
s : Set of Char;
ch , rejim : Char;
procedure Konstr; {формирование множества}
begin
Writeln (‘множество конструируется из символов ‘a .. z’);
Writeln (‘введите элементы множества’);
s:=[]; {инициализация множества}
Readln (ch);
while True do {организация бесконечного цикла}
begin
s:=s+[ch];
Readln (ch);
if ch =’z’ then
Exit;
end;
end;
procedure MinS;
begin
ch:=’ ‘;
while not (ch in S) do
ch := Succ (ch); {переход к следующему символу в кодовой таблице}
Writeln (‘элемент с минимальным номером равен’, ch);
end;
procedure Rasp;
var
c1:Char;
begin
for c1:=’a’ to ‘z’ do
if c1 in s then {содержит ли множество s символ ch}
Writeln (c1);
end;
Begin
ClrScr;
While True do
begin
Writeln (‘1 – создание’);
Writeln (‘2 – поиск элемента с минимальным номером’);
Writeln (‘3 – вывод элементов множества’);
Writeln (‘4 – выход’);
Readln (rejim);
case rejim of
‘1’: Konstr;
‘2’: MinS;
‘3’: Rasp;
‘4’: Halt;
end;
ReadKey;
End.