Разделы презентаций


Записи

  Запись - это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот

Слайды и текст этой презентации

Слайд 1Лекция 7 (часть 2) Записи

Лекция 7 (часть 2)   Записи

Слайд 2  Запись - это структура данных, состоящая из фиксированного числа

компонентов, называемых полями записи.
В отличие от массива, компоненты (поля)

записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.   
Структура объявления типа записи такова:
<имя записи> = RECORD <сп.полей> END
где
< имя записи > - правильный идентификатор; RECORD, END - зарезервированные слова (запись, конец); <сп.полей> - список полей; представляет собой последовательность разделов записи, между которыми ставится точка с запятой.
  Запись - это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. 	В отличие от

Слайд 3    Каждый раздел записи состоит из одного или нескольких идентификаторов полей,

отделяемых друг от друга запятыми. За идентификатором (идентификаторами) ставится двоеточие

и описание типа поля (полей), например:
type
BirthDay = record
day, month: byte;
year: word
end;
var
a,b: Birthday;
. . . . .
    В этом примере тип BIRTHDAY (день рождения) есть запись с полями DAY, MONTH и YEAR (день, месяц и год); переменные A и В содержат записи типа BIRTHDAY. Как и в массиве, значения переменных типа записи можно присваивать другим переменным того же типа, например
a := b;
   	Каждый раздел записи состоит из одного или нескольких идентификаторов полей, отделяемых друг от друга запятыми. За идентификатором

Слайд 4    К каждому из компонентов записи можно получить доступ, если

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

имя поля:
a.day := 27;
b.year := 2012;
    Для вложенных полей приходится продолжать уточнения:
type
BirthDay = record
day,month: byte;
year: word
end;
var
с = record
name: string;
bd: BirthDay
end;
begin
. . . . .
if c.bd.year = 2012 then . . .
end.
    К каждому из компонентов записи можно получить доступ, если использовать составное имя, т.е. указать имя переменной,

Слайд 5    Чтобы упростить доступ к полям записи, используется оператор присоединения

WITH:
WITH DO
    где
WITH, DO - ключевые слова;

<переменная> - имя переменной типа запись, за которым, возможно, следует список вложенных полей; <оператор> - любой оператор Турбо Паскаля,
    Например:
with c.bd do month := 9;
    Это эквивалентно
with с do with bd do month := 9
    или
with c,bd do month := 9;
    или
с.bd.month := 9;
    Чтобы упростить доступ к полям записи, используется оператор присоединения WITH: WITH DO     гдеWITH, DO -

Слайд 6Турбо Паскаль разрешает использовать записи с так называемыми вариантными полями,

например:
type
Forma = record
Name: string;
case

byte of
0: (Birthplace: string [40]);
1: (Country: string [20];
EntryPort: string [20];
EntryDate: 1..31;
ExitDate: 1..31)
end;
    В этом примере тип FORMA определяет запись с одним фиксированным полем NAME и вариантной частью, которая задается предложением CASE... OF. Вариантная часть состоит из нескольких вариантов (в примере - из двух вариантов: 0 и 1). Каждый вариант определяется константой выбора, за которой следует двоеточие и список полей, заключенный в круглые скобки. В любой записи может быть только одна вариантная часть, и, если она есть, она должна располагаться за всеми фиксированными полями.
Турбо Паскаль разрешает использовать записи с так называемыми вариантными полями, например: type Forma = record  Name:

Слайд 7Замечательной особенностью вариантной части является то обстоятельство, что все заданные

в ней варианты накладываются друг на друга, т.е. каждому из

них выделяется одна и та же область памяти. Это открывает дополнительные возможности преобразования типов, например:
var
mem4: record
case byte of
0: (by: array [0..3] of byte);
1: (wo: array [0..1] of word);
2: (lo: longint);
end;
    В этом примере запись MEM4 имеет три варианта, каждый из которых занимает в памяти один и тот же участок из 4 байт. В зависимости от того, к какому полю записи мы обращаемся в программе, этот участок может рассматриваться как массив из 4 байт (поле BY), массив из двух целых типа WORD (поле WO) или, наконец, как одно целое число типа LONGINT (поле LO).
Замечательной особенностью вариантной части является то обстоятельство, что все заданные в ней варианты накладываются друг на друга,

Слайд 8КОНСТАНТЫ-ЗАПИСИ
    Определение константы-записи имеет следующий вид:
: = ()
где

-- идентификатор константы; -- тип записи; -- список

значений полей.
    Список значений полей представляет собой список из последовательностей вида: имя поля, двоеточие и константа. Элементы списка отделяются друг о друга двоеточием.
КОНСТАНТЫ-ЗАПИСИ    Определение константы-записи имеет следующий вид: : = ()где -- идентификатор константы;   -- тип записи;

Слайд 9Например:
type
point = record
х, у: real
end;

vect = array [0..1] of point;
month = (Jan, Feb,

Mar, Apr, May, Jun, Jly, Aug, Sep, Oct, Nov, Dec);
date = record
d: 1..31;
m: month;
у: 1900..2099
end;
const
origon: point = (x: 0; у: -1);
line: vector = ((x: -3.1; у: 1.5), (х: 1.9; у: 3.0));
SomeDay: date = (d: 16; m: Mar; у: 2012);
    Поля должны указываться в той последовательности, в какой они перечислены в объявлении типа. Если в записи используется хотя бы одно поле файлового типа, такую запись нельзя объявить типизированной константой.
Например: type point = record  х, у: real end; vect = array [0..1] of point; month

Слайд 10Для записей с вариантными полями указывается только один из возможных

вариантов констант. Например:
type
forma = record
case Boolean

of
true: (Birthplace: string [40]);
false: (Country: string [20];
EntryPort: string [20];
EntryDate: array [1..3] of word;
count: word)
end;
const
Percon1: forma = (Country: 'Норвегия';
EntryPort: 'Мурманск';
EntryDate: (16, 3, 89);
count: 12);
Percon2: forma = (Birthplace: 'Москва');
Для записей с вариантными полями указывается только один из возможных вариантов констант. Например: type forma = record

Слайд 11Пример: Из ведомости 3-х студентов с их оценками ( порядковый 

номер,  Ф.И.О. и три оценки) определить количество отличников и средний

бал каждого студента.
Program Spic; Type wed = record {Тип wed включает 3 поля: n, fio, bal} n : integer ; fio : string[40] ; bal : array [1..3] of integer {Поле bal – массив из 3 оценок } end; Var spisok : wed ; {Запись spicok типа wed} i, j, kol, s : integer; sr : real; Begin kol:=0; {kol- количество отличников} With spisok do {with присоединяет имя записи spisok ко всем } For i:=1 to 3 do { полям внутри цикла For по i } begin n:=i; Write (' Vvedite FIO # ', i ,' '); Readln (fio); s:=0; For j:= 1 to 3 do begin write ( 'Vvedite ocenky: ' ); readln ( bal [j] ); s := s+ bal [j]; end; if s=15 then kol:=kol+1; {подсчет количества отличников} sr := s/3; writeln ( fio, ', Sredniy bal = ', sr:4:1); end; writeln ( ' Kolichestvo otlichnikov = ', kol ); readln; end.
Пример: Из ведомости 3-х студентов с их оценками ( порядковый  номер,  Ф.И.О. и три оценки) определить количество

Слайд 12Результат работы программы:

Результат работы программы:

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика