
- •Содержание
- •Рекомендации к проведению лабораторных работ
- •Комментарии в тексте программы
- •Компиляция и запуск программы на выполнение
- •Переменные и константы
- •Операторы и выражения
- •Оператор присваивания
- •Арифметические операции
- •Логические операции
- •Составной оператор begin..end
- •Условный оператор if..then
- •Оператор-селектор case..of
- •Операторы обработки циклов
- •Цикл с параметром for .. do
- •Цикл с предусловием while..do
- •Цикл с постусловием repeat..until
- •Процедуры break и continue
- •Оператор with..do
- •Процедуры и функции
- •Процедуры
- •Функции
- •1. Фундаментальные структуры данных
- •Общее понятие типа данных
- •Простой тип
- •Перечислимые типы данных
- •Поддиапазонны
- •Строковый тип
- •Структурные типы
- •Массивы
- •Записи
- •Множества
- •Представление структур в памяти
- •Задание
- •2. Работа с последовательностями, файлы
- •Доступ к файлу
- •Операции над файлами
- •Окончание файла
- •Пример работы с файлом
- •Задание
- •3. Анализ алгоритмов
- •Рост функций
- •Задание
- •4. Простейшие методы сортировки массивов
- •Оценка алгоритмов сортировки
- •Шейкер-сортировка
- •Сортировка простыми вставками
- •Сортировка бинарными вставками
- •Задание
- •5. Улучшенные методы сортировки массивов
- •Сортировка с помощью включений с уменьшающимися расстояниями (сортировка Шелла)
- •Пирамидальная сортировка
- •Сортировка с разделением (быстрая сортировка)
- •Задание
- •6. Сортировка последовательных файлов
- •Сортировка простым слиянием
- •Естественное слияние
- •Задание
- •7. Рекурсивные алгоритмы
- •Сравнение рекурсии и итерации
- •Задание
- •8. Динамические структуры данных, связные списки
- •Списки
- •Пример создания и заполнения списка
- •Задание
- •9. Нелинейные структуры данных
- •Граф
- •Бинарное дерево
- •Задание
- •10. Алгоритмы на графах
- •Алгоритмы обхода в глубину и по уровням
- •Построение минимального остовного дерева
- •Поиск кратчайшего пути
- •Задание
- •11. Поиск данных
- •Двоичный (бинарный) поиск элемента в массиве
- •Интерполяционный поиск элемента в массиве
- •Алгоритм Бойера-Мура
- •Задание
- •12. Хеширование
- •Отечественный стандарт хеширования
- •Создание хеш-функции
- •Хеш-функции для строковых значений, алгоритм Гонера
- •Задание
- •13. Методы сжатия текстовых данных
- •Метод “Running”
- •Словарные методы сжатия
- •Алгоритм Хаффмана
- •Задание
- •14. Алгоритмы вывода графических примитивов
- •Рисование отрезка
- •Прямое вычисление координат
- •Инкрементный алгоритм Брезенхэма
- •Простейший алгоритм закрашивания замкнутой области
- •Задание
- •15. Псевдослучайные последовательности
- •Метод середин квадратов
- •Линейный конгруэнтный метод
- •Генератор псевдослучайных чисел, поставляемый с системой
- •Оценка качества генератора ПСП
- •Задание
- •16. Параллельные алгоритмы
- •Пример многопоточного приложения
- •Задание
- •Задание на СКР
- •Вариант 1. Клеточные автоматы
- •Вариант 2. Раскрашивание карты
- •Вариант 3. Крисс-кросс
- •Вариант 4. Лабиринт
- •Список использованной литературы
- •Приложение A. Справочник по функциям Delphi
- •Операции с порядковыми типами
- •Математические функции и процедуры
- •Генерация псевдослучайного числа
- •Преобразование типов данных
- •Работа с памятью
- •Приложение Б. Компонент-сетка TStringGrid
- •Приложение В. Компонент-диаграмма TChart
- •Приложение Д. Элементарный поток – класс TThread

83
Приложение A. Справочник по функциям Delphi
Операции с порядковыми типами
Функция |
Содержание |
|
|
function Ord(X): Longint; |
Возврат порядкового значения X |
function Odd(X: Longint): Boolean; |
Если Х – нечетное число, то true иначе false |
function Succ(X); |
Следующее по порядку значение X |
function Pred(X); |
Предыдущее значение X |
procedure Inc (var X [ ; N: Longint ] ); |
Приращение X на N, аналог X:=X + N |
procedure Dec (var X[ ; N: Longint]); |
Уменьшение X на N, аналог X:=X - N |
function Low(X); |
Минимальное порядковое значение X |
function High (X); |
Максимальное порядковое значение X |
function Chr(X: Byte): Char; |
Возвратит символ таблицы ASCII соответствующий поряд- |
|
ковому значению Х |
Математические функции и процедуры
Функция |
Описание |
|
|
Округление чисел |
|
|
|
function Abs(X); |
Возвращает абсолютное значение числа – |
|
число по модулю. |
function Frac(X: Extended): Extended; |
Возвращает дробную часть числа. |
Function Int(X: Extended): Extended; |
Возвращает целую часть от числа. |
|
|
function Round(X: Extended): Int64; |
Округляет до целого числа. |
function Floor(X: Extended): Integer; |
Округляет вещественное число до целого в |
|
его меньшую сторону. |
function Ceil(X: Extended):Integer; |
Округляет вещественное число до целого в |
|
большую сторону. |
function Trunc(X: Extended): Int64; |
Преобразует вещественное число в целое |
|
усекая дробную часть. |
function Odd(X: Longint): Boolean; |
Возвращает true если X – нечётное число. |
Математические функции |
|
|
|
function Sqr(X: Extended): Extended; |
Возведение в квадрат |
function IntPower (Base: Extended; Exponent: Inte- |
Возводит число Base в степень Exponent |
ger): Extended; |
(целого типа). |
function Power (Base, Exponent: Extended): Extended; |
Возводит число Base в степень Exponent |
|
(действительного типа). |
function Sqrt (X: Extended): Extended; |
Квадратный корень. |
function Exp (X: Real): Real; |
Экспонента. |
procedure Frexp (X: Extended; var Mantissa: Extended; |
Возвращает мантиссу и порядок заданной |
var Exponent: Integer) register; |
величины. |
function Ln(X: Real): Real; |
Натуральный логарифм . |
Function LnXP1(X: Extended): Extended; |
Натуральный логарифм числа (X+1). |
function Log2(X: Extended): Extended; |
Логарифм X по основанию 2. |
function Log10(X: Extended): Extended; |
Логарифм X по основанию 10. |
function LogN(N, X: Extended): Extended; |
Логарифм X по основанию N. |
Генерация псевдослучайного числа
|
Метод |
Описание |
|
|
|
|
|
|
|
|
|

|
|
84 |
|
|
|
|
|
|
procedure Randomize; |
Автоматическая инициализация генератора |
|
|
|
псевдослучайных чисел. |
|
|
function RandG (Mean, StdDev: Extended): Extended; |
Генерирует псевдослучайное число, ис- |
|
|
|
пользуя распределение Гаусса. |
|
|
function Random [( Range: Integer)]; |
Генерирует псевдослучайное число в пре- |
|
|
|
делах от 0 до значения Random. Для уста- |
|
|
|
новки начального значения генератора |
|
|
|
псевдослучайных чисел используйте пере- |
|
|
|
менную RandSeed: LongInt. |
|
Преобразование типов данных
Метод |
Описание |
|
|
function IntToStr (Value: Integer): |
Преобразует целое число в строку. |
string; |
|
function StrToInt (const S: |
Преобразует строку в целое число. |
string): Integer; |
|
function StrToIntDef (const S: |
Работает как StrToInt(), но при ошибке преобразования воз- |
string; Default: Integer): Integer; |
вращает значение Default |
function IntToHex (Value: Integer; |
Преобразует целое число в строку, соответствующую его шестна- |
Digits: Integer): string; |
дцатеричному представлению. |
function FloatToStr (Value: Ex- |
Преобразует число с плавающей точкой в строку. |
tended): string; |
|
function CurrToStr (Value: Cur- |
Преобразует денежный тип в строку. |
rency): string; |
|
function StrToCurr (const S: |
Преобразует строку в денежный тип. |
string): Currency; |
|
Работа с памятью
Функция |
Описание |
|
|
procedure New (var P: Pointer); |
Создаёт новую динамическую переменную и устанавливает указа- |
|
тель на неё. |
procedure Dispose (var P: Pointer); |
Очищает блок памяти, выделенный под динамическую переменную. |
procedure GetMem (var P: Pointer; |
Создаёт динамическую переменную и указатель P на блок памяти. |
Size: Integer); |
|
procedure FreeMem (var P: Pointer[; |
Освобождает блок памяти связанный с указателем P. |
Size: Integer]); |
|