Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
informatica.doc
Скачиваний:
8
Добавлен:
22.09.2019
Размер:
890.88 Кб
Скачать

37) Методы класса tstrings

Многофункциональный класс, предназначенный для хранения текстовых строк и связанных с ними объектов (любых потомков TObject). TStrings - абстрактный класс; он только описывает методы работы с наборами строк и сопутствующих им объектов, но как именно они хранятся, на его уровне не определено. Его потомки очень многочисленны; они играют основную роль в компонентах-списках (TListBox, TComboBox), редакторе (TMemo) и других.

procedure AddStrings (Strings: TStrings); Добавляет в список группу строк из другого объекта Strings типа TStrings.

procedure Assign (Source: TPersistent); Уничтожает прежнее содержимое набора и подставляет вместо него Source, если источник имеет тип TStrings. В противном случае возникает исключительная ситуация EConvertError.

procedure BeginUpdate;

procedure EndUpdate; Пара процедур, которые устанавливают и сбрасывают флаг обновления набора. Между ними, для ускорения работы, нужно заключать все операции по копированию, удалению и т. д. большого количества элементов.

procedure Clear; Очищает список.

procedure Insert (Index: Integer; const S: string); Вставляет строку S под номером Index.

procedure Delete (Index: Integer); Удаляет строку с номером Index.

function IndexOf (const S: string): Integer; Возвращает индекс (номер в наборе) строки S. Если она не найдена, функция возвращает -1.

function IndexOfObject (AObject: TObject): Integer; Возвращает индекс первой строки, связанной с заданным объектом. Если такой строки нет в списке, возвращается -1.

function IndexOfName (const Name: String): Integer; Применяется для списков, имеющих структуру "Имя=Значение". Возвращает номер строки, в которой Имя равно заданному значению Name. Если такой строки нет в списке, возвращается -1.

function Equals (Strings: TStrings): Boolean; Сравнивает строки вызвавшего его объекта со строками объекта Strings и возвращает True в случае равенства (сравниваются число строк и все строки попарно).

function Add (const S: string): Integer; Добавляет строку S в конец набора и в случае успеха возвращает присвоенный ей индекс (он должен быть равен значению Count до добавления строки).

function AddObject (const S: string; AObject: TObject): Integer; Добавляет в список строку и связанный с ней объект. Возвращает индекс добавленной строки и объекта.

procedure Append (const S: string); Добавляет строку в конец списка. Метод аналогичен Add, но не возвращает индекс строки.

procedure Exchange (Index1, Index2: Integer); Меняет местами пары "строка-объект" с индексами Index1 и Index2.

procedure Move (CurIndex, NewIndex: Integer) ; Перемещает пару "строка-объект" с позиции CurIndex в позицию NewIndex.

procedure InsertObject (Index: Integer; const S: string; AObject: TObject); Вставляет объект AObject и соответствующую ему строку S в набор под индексом Index.

38) Метод rsa.

Алгоритм RSA состоит из следующих пунктов:

Выбрать простые числа p и q;

Вычислить n = p * q;

Вычислить m = (p - 1) * (q - 1);

Выбрать число d взаимно простое с m;

Выбрать число e так, чтобы e * d = 1 (mod m);

Числа e и d являются ключами. Шифруемые данные необходимо разбить на блоки - числа от 0 до n - 1. Шифрование и дешифровка данных производятся следующим образом:

Шифрование: b = ae (mod n)

Дешифровка: a = bd (mod n)

Следует также отметить, что ключи e и d равноправны, т.е. сообщение можно шифровать как ключом e, так и ключом d, при этом расшифровка должна быть произведена с помощью другого ключа.

На практике при использование метода RSA длина p и q составляет 100 и более десятичных знаков, что обеспечивает высокую криптостойкость шифротекста.

39)

Модулями называют заранее скомпилированные библиотеки подпрограмм, которые программист может использовать для создания новых программ.

Все ресурсы модуля делятся на две группы: внешние – предназначенные для использования другими программными единицами, и внутренние – рабочие ресурсы данного модуля.

Структура модуля выглядит следующим образом:

Unit <имя модуля>;

Interface

<интерфейсная секция>

Implementation

<секция реализации>

[Begin

<секция инициализации>]

End,

Имя модуля должно совпадать с именем файла, в котором он содержится. Интерфейсная секция содержит объявление ресурсов (в том числе заголовки подпрограмм), к которым возможны обращения извне. Секция реализации содержит описание подпрограмм, объявленных в интерфейсной секции, и описание внутренних ресурсов модуля (локальных переменных, типов, подпрограмм). Обращение к этим ресурсам возможно только из подпрограмм, описанных в том же модуле. Секция инициализации содержит операторы, которые выполняют некоторые действия, необходимые для нормальной работы процедур модуля (например, открывают файлы, инициализируют некоторые переменные и т.п.). Операторы секции инициализации выполняются один раз (при подключении модуля) до начала выполнения основной программы. Эта секция в модуле может отсутствовать.

Программа, которая использует ресурсы нескольких модулей, должна в области описаний содержать спецификацию используемых модулей:

Uses <имя модуля1>, <имя модуля2>, ...;

В спецификации uses необходимо указывать только те модули, ресурсы которых данная программная единица (программа или модуль) использует непосредственно. Если подключаемый модуль использует другие модули, то их подключение уже описано в нем. Секции инициализации подсоединяемых модулей выполняются в порядке их подключения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]