Модули, назначение, структура модуля, правила записи

Компонент MainMenu

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

свойства:

Caption- текст, содержащийся в пункте меню

Checked-указывает, что в разделе меню будет отображаться маркер флажка, показывающий, что данный раздел выбран.

Enabled- если Enabled равно False, пункт изображается серым цветом и не воспринимает сообщений

Break-используется в длинных меню, чтобы разбить список разделов на несколько столбцов.

Items- Список элементов меню типаTMenuEtem

Создание главного меню
Каждый пункт меню или подменю, т.е. каждый элемент свойства Items,является объектом типа TMenuItem, обладающим своими свойствами,методами, событиями. Свойство Name задает имя объекта, соответствующего разделу меню. Во избежание путаницырекомендуется задавать объектам осмысленные имена.Для вставки нового пункта меню необходимо выбрать пункт меню,выше или левее которого требуется сделать вставку и нажать клавишу Ins или вызвать команду Insert из контекстного меню (появляется при щелчке на окне правой кнопкой мыши). Чтобы переместить пункт меню в другое место, необходимо отбуксировать его туда мышью. Для удаления выбранного пункта меню нужно нажать Del или вызвать команду Delete из контекстного меню. Для создания подменю необходимо выбрать пункт меню, для которого требуется создать подменю, и нажать Ctrl+-> или вызвать команду Create Submenu из контекстного меню. В процессе кон- струирования меню инспектор объектов отражает свойства пункта меню, в данный момент создаваемого пользователем.

Компонент StringGrid

Компонент StringGrid предназначен для отображения и хранения текстовой информации в виде таблицы.

Размер таблицы определяется свойствами ColCount и RowCount. Они задают количество столбцов и строк соответственно. При необходимости эти свойства можно менять и программно. Размеры же ячеек в пикселях задают свойства DefaultColWidth и DefaultRowHeight. Если же надо задать размер некоторого столбца или некоторой строки отдельно, то надо воспользоваться свойствами ColWidths или RowHeights соответственно. Свойства FixedCols и FixedRows определяют сколько столбцов и строк будут использоваться для названий столбцов и строк. По умолчанию эти два свойства равны единице. Такие столбцы и строки выделяются серым цветом (это определяет свойство FixedColor) и при прокрутке нашей таблицы остаются зафиксированными. В принципе их можно использовать как угодно, но чаше всего в них помещают названия столбцов и строк.Для того, чтобы получить доступ к некоторой ячейке, надо использовать свойство Cells.

Модель двухключевой криптосистемы

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

Методы класса TString

function Add(const S: string): Integer; virtual; - добавляет строку в набор данных и возвращает ее индекс;
function AddObject (const S: string ; AObject: TObject) : Integer; virtual; - добавляет пару строка-объект в набор данных, возвращает индекс новой пары строка-объект;
procedure Addstrings (Strings: TStrings); virtual; - добавляет к текущему набору новый набор строк;
procedure Append (const S : string); - добавляет строку в набор данных, но не возвращает индекс новой строки;
procedure Assign (Source: TPersistent) ; override; - уничтожает прежний набор строк и загружает из Source новый набор. Если строки в новом наборе связаны с объектами, то объекты также будут загружены;
procedure Clear; virtual; abstract; - очищает набор данных и освобождает связанную с ним память;
procedure Delete (Index: Integer); virtual; abstract; - уничтожает элемент набора с индексом Index и освобождает связанную с ним память. Нумерация строк начинается с нуля;
destructor Destroy; override; - уничтожает объект класса TStrings. Рекомендуется не вызывать данный метод в приложении, а вместо него использовать метод Free;
function Equals (Strings: TStrings) Boolean; - сравнивает построчно текущий набор данных с набором Strings и возвращает True, если наборы идентичны;
procedure Exchange (Indexl, Index2: Integer); virtual; - меняет местами строки с индексами IndexlиIndex2;
function GetText: PChar; virtual; - помещает значение свойства Text в динамически создаваемый буфер;
function IndexOf(const S: string): Integer; virtual; - для строки S возвращает ее индекс или -1, если такой строки в наборе нет;
function IndexOfName (const Name: string): Integer; - возвращает индекс строки с именем Name;
procedure Insert (Index: Integer; const S: string); virtual; abstract; - вставляет строку в набор и присваивает ей индекс Index;
procedure InsertObject (Index: Integer; const S: string; AObject: TObject); - вставляет строку и объект в набор и присваивает им индекс Index;
procedure LoadFromFile(const FileName: string); virtual; - загружает набор строк из файла;
procedure LoadFromStream (Stream: TStream); virtual; - загружает набор из потока;
procedure Move(CurIndex, NewIndex: Integer); virtual; - перемещает строку из положения CurIndex в положение NewIndex;
procedure SaveToFile(const FileName: string); virtual; - сохраняет набор строк в файле с именем FileName;
procedure SaveToStream(Stream: TStream); virtual; - сохраняет набор строк в потоке;
procedure SetText (Text: PChar); virtual; - считывает строки из буфера и записывает их в набор строк.

38. метод RSA-криптографический алгоритм с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел.

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

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

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

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

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

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

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

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

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

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

модули, назначение, структура модуля, правила записи

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

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

Например, запись вида

Program Pm1;

Uses Mtx, Mfa ;

означает, что в программе Pm1 используется два модуля : Mtx и Mfa.

Структура модуля.

Unit <имя> ; - заголовок модуля

interface

. . . . . . . . . . . интерфейсная часть

implementation

. . . . . . . . . . . . исполняемая часть

initialization

. . . . . . инициирующая часть (необязательна)

finalization

. . . . . . . . . . завершающая часть

END.

Правило записи. Если какой либо модуль в списке модулей использует другие модули из этого списка, то он должен быть указан после всех используемых модулей. Смысл использования модулей заключается в том, что при трансляции программы составные части модуля будут помещены в соответствующие разделы программы.

40. типы моделей данных- это совокупность структур данных и операций их обработки.

Иерархическая модель данных, как следует из названия, имеет иерархическую структуру, т.е. каж­дый из элементов связан только с одним стоящим выше элементом, но в то же время на него могут ссылаться один или несколь­ко стоящих ниже элементов.В терминологии иерархической моде­ли используются более конкретные понятия: «элемент» (узел); «уро­вень» и «связь». Узелчаще всего представляет собой атрибут (при­знак), описывающий некоторый объект. Иерархически модель схематически изображается в виде графа, в котором каждый узел является вершиной. Эта модель представляет собой совокупность элементов, расположенных в порядке их подчинения от общего к частному и образующих граф — дерево с иерархической структу­рой. Такой граф имеет единственную вершину, не под­чиненную никакой другой вершине и находящуюся на самом верх­нем (первом) уровне. Число вершин первого уровня определяет число деревьев в базе данных. Сетевая модель данных. Эта модель использует ту же термино­логию, что и иерархическая модель: «узел», «уровень» и «связь». Единственное отличие между иерархической и сетевой моделями данных заключается в том, что в последней каждый элемент дан­ных (узел) может быть связан с любым другим элементом (узлом). Реляционная модель данных.Основная идея реляционной модели данных заключается в том, чтобы представить любой набор данных в виде двумерного массива — таблицы. В простейшем слу­чае реляционная модель описывает единственную двумерную таб­лицу, но чаще всего эта модель описывает структуру и взаимоотношения между несколькими различными таблицами.

Наши рекомендации