Программная обработка информации, представленной в виде записей

Под записью понимается структура данных, состоящая из фиксированного числа элементов. Каждый элемент записи имеет свой идентификатор и тип. Идентификатор в пределах записи должен быть уникальным. Для обращения к отдельным элементам записи указываются составные имена. Составное имя состоит из имени записи, после которого ставится точка и записывается идентификатор элемента записи. Например, "PotrM.Date". Использование записей позволяет объединять в единое целое совокупность логически связанных реквизитов документа.

В программное среде Delphi, для описания структурных взаимосвязей различных реквизитов предназначено утверждение “Record”, которое описывается в разделе “Type”.

Конструкция “Record” записывается в соответствии со следующим синтаксисом:

<имя структуры> = Record

<имя элемента>: <тип>;

[<имя элемента>:<тип>;]

End;

Выделение памяти для заданной структуры выполняется в разделе “Var” при описании переменных указанного типа.

Например:

Type

TPotrM = Record

Date: String [4];

ShCzeh: String [6];

NameMat: String [20];

Potr: Real;

End;

Var

PotrM: TPotrM;

При обработке документов, представленных в виде записей, можно использовать имена записей. Например,

W:= PotrM:

Пример.

Имеется документ, который содержит информацию по потребности материалов на текущий период. Документ содержит следующие реквизиты:

Во-первых, дата, представленная в виде четырех символов. Первые два символа определяют месяц. Третий и четвертый символ определяют год.

Во-вторых, код цеха, представленный в виде шести символов.

В-третьих, код материала, представленный в виде десяти символов.

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

Программный код, обеспечивающий определение квартала, к которому относится документ, имеет следующий вид:

Program PrjPotrM;

{$APPTYPE CONSOLE}

Uses

SysUtils;

Type

TPotrM = Record

Date: String [4];

ShCzeh: String [6];

NameMat: String [20];

Potr: Real;

End;

Var

PotrM: TPotrM;

Kv, Mes, Rc: Integer;

SMes: String;

Begin

// Ввод записи

Writeln ('Vvedite daty');

Readln (PotrM.Date);

Writeln ('Kod Czexa');

Readln (PotrM.ShCzeh);

Writeln ('Kod materiala');

Readln (PotrM.NameMat);

Writeln('Potrebnoct v materiale');

Readln (PotrM.Potr);

// Определение квартала

SMes:= Copy(PotrM.Date, 1, 2);

Val(SMes,Mes,Rc); Kv:=0;

Case Mes Of

1..3: Kv:= 1;

4..6: Kv:= 2;

7..9: Kv:= 3;

10,11,12: Kv:= 4;

Else

Writeln('Oshibka v zadanii nomera mesjacza');

End;

Writeln ('Kvartal ',Kv);

Readln;

End.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: