36563

Структурный тип запись

Контрольная

Информатика, кибернетика и программирование

Например анкета служащего содержит такие данные как фамилия имя отчество строковый тип год рождения целый тип разряд целый тип и многие другие данные. Объединение таких данных общий структурный типанкета затруднительно сделать в рамках массива или множества. Естественным средством структурирования в этом и подобных случаях является структурный тип Запись.

Русский

2013-09-22

45 KB

3 чел.

Структурный тип запись.

Например, анкета служащего содержит такие данные, как фамилия, имя, отчество (строковый тип), год рождения (целый тип), разряд (целый тип) и многие другие данные. Объединение таких данных общий структурный тип-анкета затруднительно сделать в рамках массива или множества. Естественным средством структурирования в этом и подобных случаях является структурный тип - Запись. Этот структурный тип специально введен для объединения любого конечного числа неоднородных данных. Объединяемые данные составляют поля записи. Однако, объединяя неоднородные данные, мы уже не можем рассчитывать иметь эффективный доступ к полям посредством их индексации (т.е. вычислимых имён), как это было в случае массивов: это может привести к несоответствию типов в выражениях. Доступ к полям записи осуществляется посредством составных имён (имён с точкой), имеющим, как и простые имена переменных, статическую природу (имена, неизменяемые в процессе выполнения программы). Запись является одной из наиболее общих форм композиции неоднородных данных. Она распространяется не только на объединение полей-типов данных, но и на объединение полей-типов данных с процедурами и функциями, приводя к понятию объекта, как новой категории программных структур. Рассмотрим структурный тип Запись применительно к объединению полей-типов данных.

2. Описание типа Запись и доступ к полям записи.

Тип Запись описывается в следующей форме:

type < имя типа-запись> = record < список полей > end;

где: < список полей > - последовательность разделов, разделяемых точкой с запятой; каждый раздел имеет структуру < список имен полей > : < тип поля >. Типом поля может быть любой тип, кроме типа файл. Если тип поля также является записью, мы имеем дело с иерархической структурой записей. Например:

type stud = record numb:byte;name:string[16]; aver:real end;{запись о студенте}

gr = record title:string; studs: array[1..15] of stud; end; {данные о группе }

Для работы с записями необходимо описать переменные типа-запись.

Например: var stud1:stud; {данные о студенте styd1} grA1:gr; {группа А1}

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

const st00:stud = (numb:0; name:''; aver:0.0);

Доступ к элементам записи осуществляется посредством составного имени, в котором указывается имя переменной-записи и имя поля записи, разделяемые точкой. Так, например, доступ к полю среднего балла студента stud1 имеет вид: stud1.aver. Если запись описывает иерархическую структуру с несколькими уровнями, то составное имя содержит кроме имени записи также имена всех промежуточных полей-уровней, разделяемые точками. Например, для доступа к полю среднего балла 8 студента группы следует использовать составное имя: grA1.studs[8].aver.

3. Обработка записей.

Для составных имён допустимы все те же средства обработки, что и для простых переменных: операторы присваивания и использование имен при построении выражений или условий. Так для составных имен оператор присваивания имеет вид:

< составное имя > := < выражение соответствующего типа-поля >;

Например: gr1.studs[8].aver:=4.6;

При обработке записей можно избежать использования полных имен полей записей, используя специальный оператор with. Оператор присоединения with позволяет упростить доступ к полям записей за счёт выделения "общих частей" в составных именах. Оператор with имеет следующую синтаксическую структуру:

with < переменная > do < оператор >;

где: < переменная > - имя переменной-записи, за которым может также следовать иерархический список полей (разделяемых точкой);

 < оператор > - любой оператор Турбо Паскаля. В нём можно использовать имена полей вместо составных имён. Последовательность операторов, выполняемых внутри оператора with должна заключаться в скобки begin end .

Оператор with является единственным видом операторов, введенным специально для обработки записей. Во всем остальном обработка записей опирается на обычные средства Турбо Паскаля, доступные для большинства типов.

Удобным оператором обработки записей является оператор выбора case-of , ветви которого можно эффективно использовать для обработки полей, сопоставляя каждой ветви поле записи.

Тип Запись может иметь вариантную часть, которая способна изменяться при различных выполнениях программы, обеспечивая различную структуру записи при разных выполнениях. По структуре вариантная запись подобна оператору выбора case-of, но у ключа выбора может быть указан тип (любой порядковый тип). После of перечисляются поля записи в форме:

< константа выбора> : ( < список полей > );

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

 Замечание:

В Турбо Паскале имеется стандартный тип-запись DateTime для представления даты и времени. Имеется ряд стандартных процедур и функций работы с этими типами, описываемые подробно в справочной литературе.

4. Пример программы обработки записей.

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

 

 program stud_group;

{ Ввод списка группы и сортировка по убыванию среднего балла}

 uses CRT;

 type stud =record num:byte; {номер}

name:string[15]; {Фамилия И.О.}

average:real {Средний балл}

 end; {тип stud - Запись данных о студенте}

group =array[1..5] of stud; {тип group - список данных о 5 студентах}

 var A:group; {Список группы студентов}

 j,k,l:byte;max:real;

 begin ТextBackground(cyan); TextColor(white); ClrScr;

window(10,5,60,22); TextBackground(green); ClrScr;

 writeln('Ввод данных о студентах:');writeln('N Ф.И.О. Средний балл');

 for j:=1 to 5 do {чтение данных о студенте} with A[j] do readln(num,name,average);

 writeln('Успеваемость группы:');max:=A[1].average;l:=1;

{ Вывод данных из А в порядке убывания среднего балла}

 for j:=1 to 5 do {вывод данных с макс. средним баллом}

 begin for k:=1 to 5 do { поиск элемента с макс.средним баллом}

 with A[k] do if average>max then begin max:=average;l:=k end;

 with A[l] do {вывод и обнуление в А выведенных данных}

 begin writeln(name,' ',average:1:2);average:=0;max:=0

 end end {Окончание вывода сортированных данных}

 end { stud_group}.

Задача 4.2.6(1)

program alex1;

type mas=array[1..4,1..5]of integer;

mass=array[1..5]of integer;

var a:mas;

i,j,y:integer;

m:mass;

procedure proc(x:mas;k:integer;var max:integer);

var i:integer;

begin

max:=x[1,k];

for i:=2 to 4 do

if x[i,k]>max then max:=x[i,k];

end;

begin

for i:=1 to 4 do

for j:=1 to 5 do

read(a[i,j]);

for i:=1 to 5 do

proc(a,i,m[i]);

y:=m[1]*m[5]+m[2]*m[4]+m[3]*m[3]+m[4]*m[2]+m[5]*m[1];

writeln('y=',y);

readln;

end.


 

А также другие работы, которые могут Вас заинтересовать

24534. Современные архитектуры файловых систем 22.75 KB
  На верхнем уровне располагается так называемый переключатель файловых систем который обеспечивает интерфейс между запросами приложения и конкретной файловой системой к которой обращается это приложение. Архитектура современной файловой системы Каждый компонент уровня файловых систем выполнен в виде драйвера соответствующей файловой системы и поддерживает определенную организацию файловой системы. Переключатель является единственным модулем который может обращаться к драйверу файловой системы. Драйвер файловой системы может быть написан в...
24535. Физические организации файловой системы FAT 68.16 KB
  Физические организации файловой системы FAT.6 Физическая организация файловой системы FAT. Как уже отмечалось аббревиатура FAT file allocation table расшифровывается как таблица размещения файлов. Файловая система FAT поддерживает всего два типа файлов: обычный файл и каталог.
24536. Физические организации файловой системы NTFS 42.33 KB
  Физические организации файловой системы NTFS. Физические организации файловой системы NTFS. Аббревиатура NTFS означает New Technology File System новая технология файловой системы. NTFS содержит ряд значительных усовершенствований существенно отличающих ее от других файловых систем.
24537. Системы программирования: состав систем программирования. Этапы разработки ПО 124.23 KB
  Современные системы программирования как правило представляют собой интегрированную среду разработки integrated development environment IDE к компонентам которой относятся следующие программные средства: текстовый редактор editor предназначенный для создания текстов исходной программы на языке высокого уровня ЯВУ или ассемблере макроассемблере; компилятор compiler составитель предназначенный для трансляции перевода исходного текста входной программы в эквивалентную ей выходную программу объектный код на языке нижнего...
24538. Виды ресурсов вычислительной системы 14.16 KB
  Ресурсы запрашиваются используются и освобождаются процессами. По форме реализации различают: аппаратные ресурсы Hard; программные ресурсы Soft; информационные ресурсы. По способу выделения ресурса различают: неделимые ресурсы предоставляются процессу в полное распоряжение; делимые ресурсы предоставляются процессу в соответствии с запросом на требуемое количество ресурса. Делимые ресурсы в свою очередь можно разделить на те которые могут использоваться процессами одновременно или попеременно.
24539. Структура и виды программного обеспечения (ПО). Характеристика системного ПО 15.33 KB
  ПО Прикладное Операционные системы Система управления файлами Операционные оболочки Утилиты Системы программирования Базы данных САПР Электронные таблицы Издательские системы ПО для математических расчетов Системное Рис. Cистемное ПО можно разделить на следующие группы: операционные системы ОС; системы управления файлами; операционные оболочки; утилиты; системы программирования. Современные системы программирования представляют собой интегрированную среду разработки IDE объединяющую редактор текста компилятор языка...
24540. Классификация ОС 13.63 KB
  Примером таких ОС является семейство Windows и Linux. Среди ОС специального назначения можно выделить следующие разновидности: ОС для карманных компьютеров сотовых телефонов и другой бытовой техники например PalmOS и Windows CE Consumer Electronics бытовая электроника; ОС для встроенных систем телевизоров СВЧ печей стиральных машин и т. По режиму обработки задач различают однозадачные например MSDOS MSX и многозадачные ОС OC EC OS 2 UNIX Windows. По способу взаимодействия пользователя с системой различают...
24541. Назначение и основные функции операционной системы (ОС) для автономного компьютера 13.74 KB
  Назначение и основные функции операционной системы ОС для автономного компьютера.2 Операционные системы для автономного компьютера Операционная система компьютера представляет собой комплекс взаимосвязанных программ который действует как интерфейс между приложениями и пользователями с одной стороны и аппаратурой компьютера с другой стороны. В соответствии с этим определением ОС выполняет две группы функций: предоставление пользователям и программистам вместо реальной аппаратуры компьютера расширенной виртуальной машины с которой удобней...
24542. Сетевые операционные системы: функциональные компоненты и варианты построения 46.02 KB
  Сетевые операционные системы: функциональные компоненты и варианты построения.3 Сетевые операционные системы. Различают сетевые и распределенные ОС. Распределенная ОС предоставляет пользователю сетевые ресурсы в виде ресурсов единой централизованной виртуальной машины.